3

写了一个微信阅读油猴脚本

 2 years ago
source link: https://hsingko.github.io/post/2021/04/wechat-read-monkeyscript/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

腾讯虽然一直不当人,但微信阅读的体验一直很不错,里面的出版书资源相当丰富,而且都是统统免费阅读,相比之下,亚马逊的 Kindle Unlimited 就显得太寒酸了。

腾讯当然不会这么好心,现在是他们用巨额资本排除竞争对手的阶段,在这样的攻势面前,其他电子图书供应商又有几个能撑得下去的呢?我就非常担心亚马逊说不定会抛弃电子书业务彻底退出中国市场。 不过作为读者而言,就让我们暂且享受这段“福利时光”吧。

油猴脚本#

如何安装油猴插件啥的就不提了,我写的这个脚本的功能是将微信阅读上的目录导出为 orgmode 的格式,并且在各级 headline 中添加了 TODO 关键字用来跟踪进度。

// ==UserScript== // @name 微信阅读插件 // @namespace Violentmonkey Scripts // @match https://weread.qq.com/web/reader/* // @grant GM_setClipboard // @version 1.0 // @author - // @require https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js // @description 1/18/2021, 1:53:39 PM // ==/UserScript==g

$(window).on('load', function(){ let btn = '<button class="readerControls_item orgbtn">org</button>' $('.readerControls').append(btn);

$('.orgbtn').click(function() { let org_str = ''; let book_title = $('.readerCatalog_bookInfo_title_txt')[0].textContent; org_str += `* TODO ${book_title} [/] \n`; // let book_author = $('.readerCatalog_bookInfo_author:first').textContent; const regex = /level(\d+)/; $('.chapterItem_link').each(function(idx, obj){ let level = parseInt(obj.className.match(regex)[1]); let chapter = obj.textContent; org_str += `*${'*'.repeat(level)} TODO ${chapter}\n`; }); GM_setClipboard(org_str); // let file_blob = new Blob(org_str, {type: "text/plain;charset=utf-8"}); // saveAs(file_blob, `${book_title}.org`) }); })

效果#

在微信阅读右侧悬浮框的最底部会出现一个 org 按钮,点击之后会在剪切板内生成 orgmode 格式的目录文本。

按钮

比如我选择了《龙:一种未明的生物》一书,点击之后会复制出如下文本:

* TODO 龙:一种未明的动物(增订本) [/] 
** TODO 版权信息
** TODO 卷首
** TODO 引言 关于“龙棚”的传说
** TODO 第一章 云遮雾障 龙归何处
** TODO 第二章 被遗忘的历史记载
** TODO 第三章 来自松嫩平原的目击报告
** TODO 第四章 在神话与现实之间
** TODO 第五章 千古悠悠说“豢龙”
** TODO 第六章 龙、蛇、蛟、鳄异同辨
** TODO 第七章 鱼性未泯的古老动物
** TODO 第八章 龙无尺水 无以升夭
** TODO 第九章 今人不见古时月
** TODO 第十章 从环境到政治的“指示生物”
** TODO 结语 一个半醒半睡的梦
** TODO 附录一 我写作《黑龙》一文的缘起
** TODO 附录二 为了寻访“黑龙”的目击者
** TODO 附录三 走访在肇源的土地上
** TODO 附录四 风来风去走风华
** TODO 附录五 十五年后再启程
** TODO 增订本后记

复制到 emacs 之后的效果:

在 emacs 中的效果

在 emacs 中的效果

为什么要写这个脚本#

前面也说了微信阅读上的图书资源非常丰富,很容易出现书才看了一半就又去看新书的情况,我就是这样,书架上添加了几百本书,但只看完了三十多本,剩下大半都是只看了 20% 左右。 问题就是缺乏一个集成进度管理、笔记功能的工具,而 emacs 的 orgmode 则恰好是这方面的无冕之王。 再配合 org-agenda 我可以以一本书的章节作为粒度进行日程规划:设置每天阅读的时间,设置一本书的 deadline. 这样就再也不会出现书读到一半就忘掉的情况。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK