之前也用过很多笔记软件,比如印象笔记Evernote,为知笔记Wiznote,myBase,Onenote,甚至自己搭建了网页版的 Docsify,Just the Docs,以及WikiJS等等。不否认这些软件都是非常好的知识管理工具,有些甚至可应用在企业构建当中。后来无一不是因为或付费原因导致停止使用,或不能满足自己的记录需求,进而放弃,或因为使用门槛太高,技术能力达不到,而望笔记兴叹。更糟糕的是,如果决定更换笔记工具软件,此时存量笔记的转移是一个非常让人头痛的问题,每家的数据格式可以相互转换还好,否则将是灾难性的...... 无意间发现了Trilum这个开源工具,用了几天感觉还是很不错的。
另外,最近不止发现无良奸商超爱云跑路了,我之前自建的企业微信,生成的机器人 hook 地址也不可用了,只能再次寻找合适的消息推送方式。这次用的是使用邮件推送,或者依赖苹果 APNs 推送到 iPhone 的 App 上。
包括服务端和客户端的构建,其中服务端安装方式官方提供了很多,最推荐的还是Docker安装,简单快捷,便于维护;客户端安装支持Windows,Linux和MacOS,暂时没有移动端的应用,稍稍有点遗憾,但总的来说,瑕不掩瑜吧。
Trilium官方是英文版的,且不支持切换语言,这可能会劝退一部分英语不太好的用户,Github上Nriver对官方内容做了汉化,用起来非常Nice,习惯中文的用户会有很好的体验。这两个版本我都尝试了一下,总体上来说,中文版用起来确实更顺手一点,然而最后我还是选择了英文版,原因是看了中文版说明感觉汉化版有可能会改变原版的一些内容和功能,并且每次大版本更新,也可能会有不兼容的地方,为了保证数据的安全,还是选择了英文版。如下是英文版给出的解释,大体意思是说,服务端和客户端版本要一致,另外升级的时候会做自动迁移,不会出现格式不兼容的情况,但是低版本可能无法兼容高版本,想要回退的话需要提前备份或者使用迁移之前备份的数据库文件。
相关的安装方式在 Github 上都有,这里就不贴配置了。docker 启动起来之后,也可以配置 Nginx 反向代理,实现域名外网访问,具体配置,官方也有提供。
使用Docker刚部署好应用的时候,样式如下,视觉冲击还是蛮强烈的,不知道的还以为是回到了上世纪九十年代的互联网,个人觉得确实有点anti-morden😂😂😂。所以,后面需要去配置下,让它至少看起来有继续使用下去的欲望。再一次证明,人类,始终是视觉动物啊。
更换主题
官方提供了一些其他人开发的主题,每一个主题都有安装指导,其实还是相对简单的,我选择的是 trilium-theme-melon 这款,看起来很是清爽。安装步骤也很简单,大概翻译如下:
#appTheme=melon-4
custom/fonts
文件夹里面的全部字体,然后在该笔记导入全部字体#customResourceProvider="fonts/字体名称.字体文件后缀"
属性Trilium是一种开源的,层级化的笔记软件,所有笔记都是一个平等的节点或者叶子,没有页面,块等概念。支持无限层级,克隆,自定义JS/CSS脚本渲染,任意笔记加密,版本控制等等。让我感觉比较神奇的是,Trilium的标签和关系,这样的特征让这款笔记变得异常的好用,当然技术 OK 的话,更是用起来游刃有余,可发挥的空间非常大的。
官方的Wiki文档是需要从头到尾看一遍的,对后续使用很有帮助
关于这个主题,之前其实记录过一篇博客 -- 企业微信机器人提醒服务,但是由于种种原因,这篇是一个未完成的状态,暂时也不打算补充完整了。如之前所说,个人企业微信群莫名其妙的被解散了,机器人Hook URL也不能用了,只得另寻他法。
使用Python的smtp
模块和email
模块,前者负责构建邮件,后者负责发送邮件。
发送邮件需要一个发送邮箱和一个接收邮箱,发送邮箱需要开启IMAP/SMTP服务
和POP3/SMTP服务
,还需要创建一个第三方客户端登录操作授权码,如下图所示。
pythonfrom email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
import smtplib
import sys
mail_host = "smtp.163.com"
from_mail = 'zzzzzz@163.com'
from_mail_password = 'xxxxxxxxxxxx'
receiver_to = ['yyyyyy@163.com']
receiver_cc = []
to_mail = receiver_to + receiver_cc
msg = MIMEMultipart()
msg['From'] = from_mail
msg['To'] = ";".join(to_mail)
msg['Subject'] = sys.argv[1]
txt = sys.argv[2]
body = MIMEText(txt, 'plain', 'utf-8')
msg.attach(body)
if len(sys.argv) > 3:
for attachment in sys.argv[3:]:
filename = attachment.split('/')[-1]
attach_file = open(attachment, 'r').read()
attach = MIMEText(str(attach_file), 'base64', 'utf-8')
attach["Content-Type"] = 'application/octet-stream'
attach.add_header('Content-Disposition', 'attachment', filename=filename)
msg.attach(attach)
try:
server = smtplib.SMTP(mail_host)
server.docmd('helo', from_mail)
server.starttls()
server.login(from_mail, from_mail_password)
server.sendmail(from_mail, to_mail, msg.as_string())
server.quit()
print('sendemail successful!')
except Exception as err:
print('Sending email failed, the reason is as below:')
print(err)
如上脚本接收至少两个入参,分别为邮件主题和邮件正文内容,从第三个参数开始,都是附件参数了。
偶然间发现了Bark这个应用,还有一个同名的Repo,不过做的是文字转声音,也非常的棒。说回来Bark这个应用,是调用苹果的APNs服务,一条推送从发送到接收经过路线是:
发送端 👉 服务端(A) 👉 苹果 APNS 服务器 👉 你的设备 👉 Bark APP(B)
关于安全问题,可以参考开发者的文档,其实在我看来,已经算是很安全了。
根据Installation Guide可以看到有两种安装方式:Docker&Binary,虽然二进制形式的安装方式很简单,占用系统资源也比较小,Docker形式的安装更能方便的跟随版本更新,最后还是选择了后者。
docker-composeversion: "3.8" networks: default: name: inner external: true services: bark: image: finab/bark-server container_name: bark restart: always ports: - "10006:8080" networks: default: ipv4_address: 10.10.0.22 volumes: - ./local/data:/data environment: - TZ=Asia/Shanghai
客户端可能有两个地方需要配置,一个就是服务器列表,在一个就是加密设置。
其中上图中的msgsend.py
是使用Python收集一些必要信息,比如标题,内容,音乐铃声,图标以及分组等等。实际上,改脚本会调用APP中提供的那个加密脚本,最后发送请求,手机上接收到告警提示信息。
本文作者:Manford Fan
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!