利用rsshub+rsstt实现订阅推特用户并推送消息到telegram

我们要实现一个订阅推特用户并将消息推送到 telegram 上,这里我们用 rss 的方式来实现,所以决定采用 rsshub 来生成订阅源,再用 rsstt 来实现订阅对应用户的 rss 源。这样就可以将订阅的推特用户消息推送到 telegram 频道或者用户上。 由于我买的是国内的服务器,但是访问 推特/telegram 需要科学上网。所以我们需要先在服务器上配置科学上网。 当然,如果你的服务器可以直接访问国外的网站,那就不需要配置科学上网这一步了。同时后续的 docker-compose.yml 文件里的 proxy 代理相关配置也不需要了。 配置科学上网 相关链接: https
阅读更多

利用 Github Actions 自动部署 Hexo 博客

转载自:https://sanonz.github.io/2020/deploy-a-hexo-blog-from-github-actions 介绍 Github Actions 可以很方便实现 CI/CD 工作流,类似 Travis 的用法,来帮我们完成一些工作,比如实现自动化测试、打包、部署等操作。当我们运行 Jobs 时,它会创建一个容器 (runner),容器支持:Ubuntu、Windows 和 MacOS 等系统,在容器中我们可以安装软件,利用安装的软件帮我们处理一些数据,然后把处理好的数据推送到某个地方。 本文将介绍利用 Github Actions 实现自动部署 hexo
阅读更多

Miniconda使用教程

Miniconda简介 Miniconda是一款小巧的python环境管理工具,安装包大约只有50M多点,其安装程序中包含conda软件包管理器和Python。一旦安装了Miniconda,就可以使用conda命令安装任何其他软件工具包并创建环境等。 下载 https://docs.conda.io/projects/miniconda/en/latest/ 常用命令 1.查看所有工具包 1 conda list 2.查看当前存在哪些虚拟环境 1 2 conda env list conda info -e 3.检查更新当前conda 1 conda updat
阅读更多

自定义pre-commit脚本

需求背景 QNSolutions_Web 是一个多项目集成的 repo,front 下是多个项目,而 solution 下是一个 monorepo。 现需要实现当某个项目中有文件变更 commit 时,只对该项目进行 lint-staged 操作,而不是对整个 repo 进行 lint-staged 操作。 Repo 结构如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 . ├── portal │ └── front │ ├── portal-solution │ ├── portal-solution-admin
阅读更多

记一次monorepo项目由yarn workspace+lerna迁移至pnpm

首先来说一下 npm、yarn、pnpm 的区别 npm vs yarn vs pnpm npm 在 npm3 之前,安装依赖包时采用简单的递归安装方法。而在npm3及之后,采用的是模块扁平化安装。 yarn(摘自https://juejin.cn/post/6964006257715838984) yarn 出生之后,解决了历史上 npm 的某些不足,比如 npm 缺乏对于依赖的完整性和一致性保障,以及 npm 安装速度过慢的问题等,尽管 npm 发展至今,已经在很多方面向 yarn 看齐,但 yarn 的安装理念仍然需要我们关注。 yarn 提出的安装理念很好的解决了当时 npm 的依
阅读更多

document.querySelector() 无法使用以数字开头的 id

一次开发中使用 document.querySelector 发现会报错 使用姿势如下: 1 document.querySelector(`#{xxx}`) xxx 为服务端返回的 uuid 变量,经排查发现当 xxx 是数字开头的时候就会报错。 原因如下: document.querySelector(selectors) 中 selectors 规范是: 包含一个或多个要匹配的选择器的 DOM 字符串 DOMString。 该字符串必须是有效的CSS选择器字符串;如果不是,则引发SYNTAX_ERR异常。请参阅使用选择器定位DOM元素以获取有关选择器以及如何管理它们的更
阅读更多

H5调用摄像头并切换摄像头

文章摘自:https://blog.csdn.net/weixin_43864427/article/details/105771863 webRTC polyfill 的库: https://github.com/webrtcHacks/adapter 第一次启用成功调用前置摄像头,第二次需要调用后置却黑屏或者失败 失败的原因很多,列举两个一开始我遇到的问题 1. 前置摄像头调用后,摄像功能需要关闭后才能正常执行第二次调用,否则会报错:设备被占用。解决方法,在每次执行调用方法前,先关闭摄像设备。 1 2 3 4 5 if (window.stream) { window.s
阅读更多

浏览器端如何在没有 HTTPS 环境下使用 WebRTC

需求:两台pc设备通过rtc来建立连接进行音视频通话。 相关issue:https://github.com/pili-engineering/QNRTC-Web/issues/54 电脑系统及版本:macOS Catalina 10.15.7 (19H15) 当前浏览器版本:版本 90.0.4430.85(正式版本) (x86_64) 方案1: 参考:https://blog.csdn.net/qq_40556950/article/details/105048931 方法一。 注:记得添加端口号,不然无效的。 方案2: 参考:https://juejin.cn/post/6844
阅读更多

关于 Chrome 音视频自动播放的问题

在 Chrome 音视频播放的时候,play() 返回的是一个 promise,当播放失败的时候一般会显示一个按钮让用户手动进行播放。 但是在浏览其他大型视频网站的时候,会发现他们的网站貌似没出现过该问题。于是去查阅了相关资料。 其实最主要查看 https://developer.chrome.com/blog/autoplay 即可得到答案。 总结就是 Chrome 有个自动播放的策略。 Chrome 中的自动播放策略 改善用户体验,减少安装广告拦截器的动机,并减少数据消耗 Chrome 66 中针对音频和视频元素推出的自动播放策略有效地阻止了 Chrome 中大约一半不需要的媒体
阅读更多

记一次数据过大导致safari渲染卡死

在一次项目开发中,Chrome 调试移动端项目没问题,但是在移动端的 safari 下,会导致 safari 卡死。 后经排查,是将 base64 的数据直接渲染到页面而导致的, 所以解决办法就是过滤掉 base64 的数据渲染。 说一下为什么要把 base64 渲染到页面,因为该项目是作为一个介绍 sdk 的使用姿势,然后展示数据。
阅读更多