Auto-browser 通过 Emacs 控制日常浏览器访问常用页面。

日常使用最多的软件,一个是Emacs,另一个是浏览器-Chrome。目前能通过 Web 服务的来访问的,已经很少下载单独的软件了。

日常使用浏览器时,还是有一些不太方便的地方:

  1. 没有 Emacs 快捷键方便
  2. 一些功能例如词典、翻译,在 Emacs 里已经有了,不想在 Chrome 里用 js 再来一遍。

因此想到通过 Emacs 来控制日常的浏览器,访问其中的 Web 页面。

因此有了这个

它依赖

  1. Chrome
  2. python
  3. websocket-bridge
  4. drissionpage 一个控制 Chrome 的 Python 库,优点是代码简单,缺点是不像其他的库支持的浏览器那么多。

目前,实现了简单的语法来,异步的和 Chrome 通信,因此不会卡住 Emacs, 能够比较简单的实现支持访问某个页面 例如:

(auto-browser-run-linearly
     `((auto-browser-get-tab ,url)
       (auto-browser-anki-play-audio)
       (auto-browser-rewrite-image-to-base64)
       (auto-browser-locate-element ,selector)
       (auto-browser-get-element "html")
       (auto-browser-anki-show)))

auto-browser-run-linearly 通过链式回调来运行若干方法,对 Emacs 而言都是异步的:

  1. 跳转到 URL
  2. 播放页面的 audio 元素
  3. 把页面的图片转为base64
  4. 定位到 selector 指定的元素
  5. 获得该元素的 html
  6. 展示 anki 页面

优点是:

  1. 不需要考虑登录、cookie, 等等一系列的问题,这些全是你自己在日常的 Chrome 里自己登录。
  2. 不会开启多余的 Chrome 实例,直接复用现有的日常 Chrome (ps: 启动时需要指定 remote-debugging-port)

缺点:

  1. 强依赖 Python.
  2. 虽然不卡Emacs,但性能目前还不是特别好(页面加载出来了,不一定会立即反应到 Emacs 上)。

当前我实现了一些我常用的 web 页面:

  1. anki-web 用来复习 anki, 效果感觉不错。不过,日常还是在手机上复习的频率更高。
  2. miniflux 一个 web 的 RSS 阅读器。这样就可以在手机、pc、Emacs 上同步看文章了。
  3. web-ai 之前低价买的一个国产套皮 ai 聚合网站,效果凑合,好在自称终生有效。它没有提供 API。这样就可以在 Emacs 内访问了。

目前代码、文档都还比较粗糙。后续在日常使用中在继续打磨。感兴趣的小伙伴可以看看。

并且,还有哪些大家日常使用的 web 服务,觉得不错,但是希望能够通过 Emacs 访问的,大家可以提提意见。

9 个赞

twitter

  • reddit
  • hacker news
  • github
  • bluesky

感觉自己的想法和大佬的想法很接近,把 emacs 用作所有的前端,这样子,实际上 emacs 就成为了操作系统了

1 个赞

支持网页客户端的 IM:

  • slack
  • whatsapp
  • discord
  • telegram
  • line

尝试了一下接下 twitter 。但是它的 HTML 全部是div,并且没有什么有意义的 class,想要从中抽取有用的数据有点小麻烦。

telegram 如果只是静态展示信息、发送信息的话,应该比较容易。如果要自动更新信息。目前我想到的是在 Emacs 里定时拉取。

我觉得有点为难这个插件了

周末尝试支持了下 telegram,目前说不上好用,加载图片有点卡。但可以玩一玩。

目前就三个功能:

  1. auto-browser-telegram-list-dialogues 列出所有对话。(由于图片问题,没有对齐)
  2. auto-browser-telegram-open-dialogue 打开某个对话框
  3. auto-browser-telegram-send-message 在当前打开的对话框上下文里发送信息。
2 个赞

新增了一个简单的 Twitter 模式 auto-browser-twitter-following 打开Twitter 页面。

目前只展示了文字和图片。

通过 j、k 快捷键上下移动不同的 tweet, RET 进入到 tweet 详情。(实际就是在 Chrome 页面触发j、k、RET 按键,然后解析 HTML 展示。)

1 个赞

简直不要太强

虽然暂时只是玩具级 :rofl:

Telegram 最强客户端 :sunglasses:

1 个赞

如果 auto-browser 可以支持 notebookLM 就好了,据我所知好像没有 API,emacs 也没对应的插件

不过,应该有难度,因为它的使用要求人上传内容(提供链接,或者电子文档)

notebookLM 好用不?现在的 ai 产品太多了。我已经跟不上时代了。 :rofl:

很好,不会篡改原文的原意,对于长文本可以快速梳理结构,以及提取关键字

真的让阅读的效率,提升了 10 个档次,真希望有本地客户端,以及 API

因为它的交互流程其实挺难用的

评论很高呀。我赶紧试试。

请问大佬,有没有可能支持 Jupyter notebook/LeetCode

LeetCode 自荐这个:

1 个赞