SuperMild
5.49D
V2EX  ›  分享创造

练手小工具 之 纯文本跨设备传输 (做出来了)

By SuperMild at 2022 年 2 月 27 日 · 3857 次点击

大概两个星期前我突然有了一个练手的构思 https://v2ex.com/t/833597

今天终于做出来了。

txt

A simple website for text copy and paste, with a CLI tool.
一个简单的纯文本复制黏贴网站 + 一个命令行工具

无图形界面的纯命令行“云剪贴板”

txt 最大的特色是支持纯命令行,方便在终端上使用。比如有以下命令:

  • txt 列出最近 5 条消息
  • txt list -n 3 列出最近 3 条消息(条数与起始位置都可以指定)
  • txt get [alias] 通过别名或流水号获取一条消息 (复制到本地剪贴板,同时打印到屏幕)
  • txt send [message] 发送消息到云端
  • txt search [keyword] 查找消息

txt 的消息(字符串)保存在服务器上,不管电脑、手机还是通过 ssh 登录服务器,都可以使用。

Alias (别名)

  • 使用命令 txt get t1 可获取第一条暂存消息,其中 't1' 改为 't2' 可获取第二条消息,依此类推。暂存消息上限 100 条(可自定义),超过上限自动删除旧消息(这类似于大多数剪贴板工具的行为)。
  • 使用命令 txt toggle t1 可把 't1' 转换成 'p1', 以 'p' 开头的流水号表示永久消息。永久消息没有上限,不会被自动删除。使用命令 txt get p1 可获取第一条永久消息。
  • 除了如上所示通过流水号指定消息外,每条消息还可以设置一个别名。例如,假设有一条消息的内容是自己的邮箱地址,设置了别名 'email', 则随时可以通过任何终端执行 txt get email 来获取该消息(复制到剪贴板,同时打印到屏幕)。
  • 别名功能非常好用,常用命令、常用网址、邮箱地址、手机号码、信用卡号,都可以记录在云端,即使更换设备,也可以随时获取。

更多可能性

  • 本软件区分主密码与日常操作密钥(以下简称“密钥”),因此命令行工具设置好密钥后,日常操作过程中无需输入密码,非常方便。
  • 密钥默认有效期 30 天(可自定义),因此,在便利的基础上,还有一定的安全性。输入主密码可生成新的密钥。
  • 后端每个 api 均接受密钥,在 post 表单时,表单内包含密钥即可。基于这个设计,iOS 的“快捷指令”与 Windows 的 AutoHotkey 等第三方工具均可以轻松地与 txt 联动,同时兼顾安全与便利(一般单一密码登录,密码不会过期,安全性低;如果要处理 cookie 又比较麻烦)。

demo (在线演示)

https://txt-demo.ai42.xyz (密码:abc)

txt-cli (安装命令行工具)

执行以下命令即可 (要求 py 3.10):

$ pip install txtcli
$ txt getkey  # 输入演示版密码 abc ,然后就可以正常使用了

txt-cli 的详细安装及使用说明请看 https://github.com/ahui2016/txt-cli

第 1 条附言  ·  2022 年 5 月 9 日
在线演示地址改为 https://txt-demo.ai42.cc (密码:abc)
13 条回复  •  2022-03-04 08:49:49 +08:00
Sanko
   1
Sanko  
   2022 年 2 月 28 日 via Android
很有意思,关注一下
Sanko
   2
Sanko  
   2022 年 2 月 28 日 via Android
前后端有地址吗,观摩学习一下
duke807
   3
duke807  
   2022 年 2 月 28 日 via Android
命令行的話,直接 ssh 訪問服務器上的 txt 文本不行嗎?
duke807
   4
duke807  
   2022 年 2 月 28 日 via Android
在终端上使用 和是否要為命令行軟件沒啥關系,我習慣用 matrix im 或 郵箱草稿 跨平台分享文本,copy 到終端上用比敲命令方便多了
xinyana
   5
xinyana  
   2022 年 2 月 28 日 via Android
虽然很不错,但是用不上,类似工具太多
Tink
   6
Tink  
   2022 年 2 月 28 日 via Android
我有一个给自己写来用的,仅限于能用。实在太丑就不发了
SuperMild
   7
SuperMild  
OP
   2022 年 2 月 28 日
@Sanko 我竟然忘了发,谢谢提醒,这个 https://github.com/ahui2016/txt
SuperMild
   8
SuperMild  
OP
   2022 年 2 月 28 日
@duke807
@xinyana

确实,功能不算很实用,主要目的是练手,练手效果还不错,做着做着又激发了新的灵感。
sunny1688
   9
sunny1688  
   2022 年 2 月 28 日
那篇文章不是说用 go 吗,怎么又是 python 了?
SuperMild
   10
SuperMild  
OP
   2022 年 2 月 28 日
@sunny1688 服务器是用 Go 做的,这个 https://github.com/ahui2016/txt
xjngbla
   11
xjngbla  
   2022 年 3 月 3 日
linux 执行文件是不是有问题,只能本地访问
SuperMild
   12
SuperMild  
OP
   2022 年 3 月 3 日
@xjngbla 如果放到公网建议套一层 Nginx 或 Caddy
xjngbla
   13
xjngbla  
   2022 年 3 月 4 日
@SuperMild 确实,
爱意满满的作品展示区。
© 2026 V2EX · 58ms · 3.9.8.5