Logo

site iconZiShu | 子舒

本RSS包含了奇趣周刊。前端程序员,骑行爱好者,摄影爱好者,INFJ 。
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

ZiShu | 子舒 RSS 预览

奇趣周刊 - 第 77 期

2024-11-21 08:00:00

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. Screenity - 屏幕录像和标注工具

https://screenity.io/

一款 Chrome 扩展,支持在屏幕的任意位置进行精彩的录制和信息标注,您可以同时录入清晰的麦克风音频或系统内部音频,并且还可享受便捷的点击高亮效果。此外,录制的视频能够轻松导出为 MP4、gif、webm 等多种流行文件格式,并且还提供简单易用的视频编辑功能,让您的创作更加完美!

1731374637523

2. 仿 GitHub 可视化的显示地球

https://github.com/janarosmonaliev/github-globe

Github 主页上的地球仪是用 ThreeJS 实现的,具有漂亮的阴影。

1731374922890

3. 适用于 Google Chrome 的简单记事本扩展程序

谷歌扩展

一个基于 Chrome 浏览器的扩展,可以用来临时记笔记。

1731383557534

4. 识别图片中的表格并转成 excel 文件

https://toexcel.zhiyakeji.com/

图片转 excel 使用了先进的 OCR 识别技术,能够精准的识别图片中的表格和文字,并将其还原并转成可编辑的 excel 文件。

1731394888134

5. 免费的在线记事本

https://hypernotepad.com/

免费在线记事本,可即时共享,无需安装,点开即可使用。

1731648894276

6. 检测网站嵌套能力的神器

只需输入目标网址,点击检测,即可快速获知该网址是否支持 iframe 嵌套。

https://iframecheck.online/

1732008068528

7. Awesome Bilibili Extra

https://github.com/HCLonely/awesome-bilibili-extra

Bilibili 脚本合集,收集一些让我们在使用 B 站时更加方便的浏览器扩展/脚本/程序。

8. Coolshapes Demo

https://github.com/realvjy/coolshapes-demo

该代码库包含一个简单的演示项目,用于检查来自 coolshapes-react 包的所有形状。

1732074351175

奇趣周刊 - 第 76 期

2024-11-14 08:00:00

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. Web Archive - 基于 Cloudflare 的网页归档工具

https://github.com/Ray-D-Song/web-archive

Web Archive 是基于 Cloudflare 的免费网页归档和共享服务,将网页保存为单个 html 文件并上传到服务器,服务器接收浏览器插件上传的 html 文件,并存储到数据库和存储桶中,最终在 Web 客户端显示这些文件。

1730192134470

2. CSS3 剪贴路径 (Clip-path) 在线生成器

https://www.techbrood.com/tool?p=css-clip-path

可以在线通过拖拽画幅节点,利用 Clip-path 属性剪切各种形状的图形,非常好用的工具。

1730335974148

3. danmu - 一个简单的弹幕插件

https://github.com/imtaotao/danmu

danmu 是一个在 GitHub 上开源的弹幕项目,提供了碰撞检测和高度自定义的弹幕屏幕样式,旨在为用户提供一个轻量级、高度可定制且易于集成的弹幕解决方案。

1730708232790

4. 浏览器扩展管理器

https://github.com/JasonGrass/auto-extension-manager

auto-extension-manager 是一个开源的浏览器扩展管理器,支持自定义规则自动启用或禁用扩展,提供多种匹配条件和动作,以及批量导出 / 导入扩展功能,同时支持多语言和丰富的配置选项。

1730710186460

5. EXIF 查看器

https://viewer.chuhai.tools/

优雅的查看照片的专业信息 EXIF,本地运行不上传云端,还是比较安全的。

1730776779737

6. 在线糖豆人游戏

https://passer-by.com/pacman/

经典街机糖豆人游戏在线版本。

1730869754508

7. 美观的代码截图工具

https://ray.so/

1730951631263

8. Blinko - 开源的个人笔记项目

https://github.com/blinko-space/blinko

Blinko 是一个创新的开源项目,专为那些想要快速捕捉和组织转瞬即逝的想法的个人而设计。Blinko 允许用户在想到想法的那一刻就无缝地记下想法,确保不丢失任何创造力的火花。

1731374393763

Lobechat 使用 Webdav 同步数据的研究

2024-11-12 08:00:00

1. 前言

Lobechat 就不做过多介绍了,一个开源、现代设计的人工智能聊天框架。

今天就来聊聊同步的问题,Lobechat 分为社区版和正式版,正式版需要付费订阅套餐,支持全局云同步,但是最便宜的套餐都要 4.9 刀,这让我 API 用户感觉有点难以接受。因为我需要的功能社区版都已经满足了,并不打算单独对云同步付费。

官方之前有通过 WebRTC 同步数据的方案,但在某个版本被废弃了,其实我也能理解,WebRTC 同步方案太过麻烦,且具有不稳定性,必须保证同时两台设备在线,而且实现原理让我感觉有一丝不安全性。

对 WebRTC 概念感兴趣的话可以看下官方的一篇文章:
https://github.com/lobehub/lobe-chat/discussions/368


其实除了正式版之外,还有服务器自建数据库等同步方法,但都需要一定的成本和技术壁垒。

因此我在社区版的基础上构思了一个脚本,通过 Webdav 技术实现对话记录、设置等同步。此方案成本基本为零,坚果云免费额度都绰绰有余。

2. Webdav / Tampermonkey

但研究开始之前,有两个概念需要先了解一下。

  1. Webdav

大多数网盘都支持通过 Webdav 技术进行同步,网盘会提供一套账号密码以及服务器地址,在前端调用 API,能够实现增删改查等操作。

  1. 油猴管理器(Tampermonkey)

油猴管理器(Tampermonkey)无疑是浏览器插件的伟大创作之一,可以对网页注入 js 脚本来实现一些功能。

3. 那么如何获取 Lobechat 数据呢?

我研究过 Lobechat 源码,它数据都存放在本地的 IndexedDB 数据库中,这是浏览器的一个存储机制,可以存放大量的数据,显示则是以数据库的格式。

1731404378265

然后我先手动导出一份 json 格式的全局数据(社区版只支持手动导入导出文件),拿这份文件跟 IndexedDB 数据库 做对比,发现字段基本保持一致,数据格式也不用转,全部都在其中。

于是我翻阅了一下官方文档,有可以利用的 API,操作查询这些数据,下面是我的一些思路。

先声明我想要拿到的数据,这些都在上面的截图中存在。

const dbName = "LOBE_CHAT_DB";
const storeNames = ["messages", "sessionGroups", "sessions", "topics", "users"];
let request = indexedDB.open(dbName);

request.onsuccess = (event) => {
  const db = event.target.result;
  let state = {
    messages: [],
    sessionGroups: [],
    sessions: [],
    topics: [],
    users: [],
  };

  let pendingStores = 0;

  storeNames.forEach((storeName) => {
    if (db.objectStoreNames.contains(storeName)) {
      pendingStores++;
      const transaction = db.transaction([storeName], "readonly");
      const objectStore = transaction.objectStore(storeName);
      const allRecords = objectStore.getAll();

      allRecords.onsuccess = (event) => {
        const result = event.target.result;
        state[storeName] = result;
        pendingStores--;

        if (pendingStores === 0) {
          /*
          * 整个数据库的数据都可以导出
          * 在此回调执行操作
          */ 
        }
      };
    } 
  });
};

4. 操作流程原型

既然可以查询,就可以覆盖,同样也有 API 支持,所以我就构思了一下流程,利用 Webdav 的增删改查,把这些数据传到网盘中,然后在另一台设备拉取,最后优化一下整个流程,让它更加可视化。

大致原型如下:

1731404855162

点击同步到云端,会通过 Webdav API 在网盘创建一个指定的文件夹 lobechat-webdav-backup(我自己随意命名的),在本地程序中生成一个 json 文件,IndexedDB 数据会被放入该文件中,然后通过 Webdav API 传输到网盘中。

点击下载到本地,会先通过 Webdav API 获取lobechat-webdav-backup下的 json 文件内容,利用 IndexedDB API 覆盖在浏览器 IndexedDB 数据库中。


在实际体验中,可以随时保存本地数据到云端,下载数据到本地,同步就很方便,使用了三天,没有出现同步出错的问题,脚本很稳定。

最终我把该脚本发布到 Greasyfork,可供大家直接使用,代码也已开源。

大慈岩悬空庙

2024-11-09 08:00:00

大慈岩位于浙江建德,半山腰有一座悬空庙,同时也是庆余年 2 的取景地,今天来到这里爬爬山打打卡。

用无人机拍出了全貌,地势也是十分惊险。

173116254742717311625340221731162501463

依山而建。

1731162559523

“重岩叠嶂。”

1731162269639

奇趣周刊 - 第 75 期

2024-11-07 08:00:00

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. Obsidian 官方剪藏插件

https://obsidian.md/clipper

安装浏览器插件后,在需要剪藏的文章页面打开扩展即可,可以自定义文档属性等功能。

1729757360814

2. PDF 文件生成播客

https://github.com/YOYZHANG/PodCastLM
https://ai.podcastlm.fun/

通过处理 PDF 的内容,生成适合音频播客的自然对话,并将其输出为 MP3 文件。

1729774232662

3. 检测页面是否能使用 iframe 嵌入

https://iframetester.dev/

4. 把 GitHub 链接转换成 LLM 可阅读格式的工具

https://githubtollm.replit.app/

支持整个项目、文件夹或单个文件,比如,你想用 LLM 阅读分析 GitHub 上的代码时,不用手动复制粘贴代码来转换了,直接输入 GitHub 地址它可以自动转换。

1729754968989

5. QtScrcpy - 小巧的 Android 投屏工具

https://github.com/barry-ran/QtScrcpy

支持通过 USB 或 WIFI 一键连接 Android 设备到电脑,实现屏幕显示和控制,无需 root 权限。并提供了丰富功能,包括实时屏幕显示、键鼠控制、屏幕录制、截图、批量操作、文件传输、剪贴板同步等。

1729834423650

6. 点开即玩的赛车小游戏

https://drive-mad.cc/

1729909199188

7. 在线棋类对战游戏

https://papergames.io/

1729941288376

8. 好玩的头像生成器

https://animate-avatar.netlify.app/

能够生成头像绘制过程的动画,而且也可以将动画 svg 导出,直接应用在博客或各种社交平台上。

1730166216144