练手小工具 之 纯文本跨设备传输 (做出来了) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
SuperMild
5.49D

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

  •  
  •   SuperMild
    ahui2016 2022 年 2 月 27 日 3437 次点击
    这是一个创建于 1518 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大概两个星期前我突然有了一个练手的构思 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  
    PRO
       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 确实,
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2729 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 49ms UTC 06:31 PVG 14:31 LAX 23:31 JFK 02:31
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86