首先感谢Discord群里的Tony365老师,这篇分享其实就是翻译并图文解释他的工作Lupin Telegram Bot. 他的代码还会不断更新进化,所以以后会不定时对这个分享进行补充.
2021.3.4更新
支持将现有笔记全部加密和解密
-
首先需要你的logseq 有开启加密的功能,并输入密码(千万不要忘记)
-
然后在"所有库"里面会有一把锁的图标 在"Reindex"旁边,点击这个图标
弹出来的对话框会给出你的"Public Key";
点击下方的click to view the private key
,打开后出现另一个私有密钥 -
这两个Key要依次输入到
config.ini
中
依次替换里面的两处红框 -
保存并重新运行程序之后,在Telegram界面输入指令
/encryptAll
, 等待一段时间,Lupin会把你笔记里的所有页面全部加密 -
反过来,输入
/decryptAll
,会把已经加密的所有页面全部恢复成明文.
2021.2.28 更新
支持主题切换
Telegram聊天机器人中输入/themes
,会出现主题切换的选项,你可以选择你喜欢的主题进行切换.
2021.2.19更新
支持自动生成日历
其实你都不需要做什么,只要更新Lupin的仓库,然后将config.sample.ini里面多出来的内容复制到你的现有的config.ini上面
里面默认的设置是这样的
第一个红色框框设为true代表自动生成日历
第二个代表是否让Lupin自动更新
第三个设置每周的第一天
第四个设置把日历放在哪个页面(默认放在目录里)
注意这个方法高度依赖Telegram和github,面向人群是喜欢折腾并会一些魔法的同学.
过程看似复杂,但是对于有一些编程经验的人来说其实并不难.
1 这是什么
它其实就是一个Telegram聊天机器人,你在Telegram里输入你的灵感,粘贴的文本,链接等等,它就会将其翻译成logseq格式的文本并推送到你的github笔记仓库中.
所以有三个限制: 1) 你要有telegram 2) 你要有一个Python环境的电脑(云服务器或者PAAS服务甚至个人电脑都可以) 3) 你的笔记要跟github同步
2 它的优点和功能
- 代码开源,自己的电脑或者自建服务器运行,数据不会泄露
- 设置里面能够限制Telegram帐号访问,安全有保证
- 避免了手机端登录github版logseq经常冲突的问题,如果只是快速输入的话还是很方便的
- 发送任何文本语句(包括#标签)就在前面加上时间戳
- 对于多字符的标签请用#[[a b c]]
- 发送TODO + 文本,会转换成todo list
- 发送链接, 会转换成"时间戳+#bookmark+链接标题"的形式
- 这个#bookmark可以在设置里改成任何标签
- 发送Youtube视频链接
- 发送图片到github 笔记repo/assest文件夹
- 利用Hypothes.is剪藏(包括高亮,标注)网页和PDF到logseq
- 制作flashcard小卡片,可以用手机自定义回顾每日anki
- 用手机回顾任何页面的思维导图
- 自动生成日历帮助你快速定位每日笔记
- 支持主题切换
- 支持自定义将文字发送到任何文件夹或文件中(默认的是每日笔记中)
- 支持全部加密/解密你的文本(使用https://github.com/FiloSottile/age的技术)
3 它的缺点
除了需要魔法和一定的logseq,git,以及python知识之外
-
暂时无法发送图片,未来肯定会加入这个功能已支持 - github版暂时不支持与本地互联,需要手动git同步并解决潜在的冲突问题; 但是未来如果打通了就可以将本地PDF标注高亮附加到笔记中
Hypothes.is的标签暂时不支持多单词
4 前置准备
4.1 Telegram bot
bot就是机器人的意思,使用的是Telegram的API来做你想做的事,功能极为强大.
- 打开你的Telegram,搜索"BotFather", 输入"/newbot", 提示让你起个名字,比如叫"testlogseq"
- (这个就是你频道的标题)
- 然后让你给这个bot选一个用户名username,建议用’bot’结尾,比如叫"handuo_bot"
- 这时候如果没有重名的问题就会提示"Done! Congrats"
- 提示里面有两个重要信息:
- 你的新机器人频道 t.me/handuo_bot, 点击就会进入这个聊天机器人的聊天界面
- 一个token, 相当于你这个机器人的密码,不要给别人看,要记住一会儿用.
- 万一你忘了这个token,要在"BotFather"频道里输入"/mybots",选择你的机器人"handuo_bot",然后点击第一个"API Token"
4.2 Github仓库的通行证
- 进入这个网址 Sign in to GitHub · GitHub
- 选择右上角的Personal access tokens,相当于创建一个密钥,用于让外面访问你github仓库的通行证
- 起个名字比如bot_token,选择Scopes,如下图所示
然后"Generate token",记住这个GithubToken,一会儿用.
4.3 Hypothes.is
这个是用来做剪藏的
- https://web.hypothes.is/ 里面注册
- 安装chrome extension,名字就是hypothes.is
- 到 https://hypothes.is/account/developer 里面生成你的API token,记住它,一会儿用
5 搭建步骤
5.1 环境搭建
因为这个程序要一直运行才可以让你随时用手机或电脑上的telegram给笔记输入内容,所以建议用云服务器跑这个机器人,当然本地电脑也是可以的.
- 首先注意你的电脑或服务器的时区设置正确
- 很多人的VPS上没有手动修改time zone,默认是UTC时区
- 安装python3.x环境(比如Python3.7),不会的自己搜.
- Win下如果找不到python命令说明环境变量没有设置好.
- 如果找不到’pip’或者’pip3’命令就额外安装
- 然后安装telegram-bot的库: 命令行中输入
pip install python-telegram-bot
或者pip3 install python-telegram-bot
- 安装github的py库:
pip install pyGitHub
或pip3 install pyGitHub
- 安装requests库:
pip install requests
或pip3 install requests
- 注意: 如果出现permission的错误,就在这些命令后面加上
--user
的参数
5.2 下载代码
git clone https://github.com/akhater/Lupin
或者到这个代码仓库点击"Code"选择"Download ZIP"然后解压
- 建议前者,因为现在开发者在不断更新代码,可以通过
git pull origin master
来更新代码
5.3 修改设置
- 将’config.sample.ini’重命名为’config.ini’
- 按照下图的示意进行修改
- 别忘了保存喔!
5.4 试运行
- 在命令行里运行:
python main.py
orpython3 main.py
- 看有没有报错,如果没有报错,进行下一步
5.5 得到ChatID
- 在Telegram你的机器人"testlogseq"里输入
/start
,会提示"Your ID is not Authorized, add xxxxxx to BotAuthorizedIDs inside config.ini & restart me" - 记住这个xxxx的数字,将其填入"config.ini"的第二行
- 保存后重新运行,然后再输入
/start
.
5.6 测试一下
输入一些测试文字,看看你的笔记那边是否已经同步了
5.7 后台运行
关于如何让你的python程序开机后台运行,网上应该有很多教程,这里就不赘述了.
6 如何使用Hypothes.is 进行剪藏
6.1 网页剪藏
-
首先点击插件里的hypothes.is图标 变成 .
-
选择一段文字
- 左边的annotate就是标注
- 右边的highlight就是高亮
-
编辑标注
编辑完标注,可以选择添加标签,然后别忘了点击post to public/private这个按钮,保存你的标注 -
页面笔记
红色圈圈还可以添加页面笔记
6.2 发送到telegram
- 输入
/anno
空格 后面加你看的这个网页的地址,比如我看的这个网页"https://web.hypothes.is/"- 输入
/anno https://web.hypothes.is/
- 输入
7 如何制作Anki 卡片
- 在你的logseq笔记中, 当你想做一个flashcard卡片的时候,输入如下格式的内容
- 在Telegram你的机器人"testlogseq"里输入
/srs import
,它会扫描更新你的所有卡片(要等一会儿) - 以后如果添加了新的卡片,就还要再输入这个指令一遍
- 然后你想回顾卡片了,就可以输入
/srs x
就会随机给你x张进行回顾
8 如何制作mindmap思维导图
- 输入
/getMM 页面名
,等一会儿,会返回给你一个HTML格式的单页脑图
命令总结
指令 | 描述 |
---|---|
/start | Just a greeting |
/uptime | returns Lupin Uptime |
/ver | returns Lupin running Version |
/help | help command (WIP) |
/anno URL | Import hypothesis annotations from URL |
/importFC | Imports your Flashcards into Lupin |
/srs import | alias of /importFC |
/srs x | starts a round of SRS for x flashcards |
/getMM pageTitle | Generates a dynamic MindMap for pageTitle |
/pullNow | Pulls all pages from your Git for fast access |
/themes | calls the theme changer |
/encryptAll | Encrypts all your pages with AGE keys |
/decryptAll | Decrypts all your pages back to clear text |