twtxt 純文字迷你馬離譜風的推文網絡
作者:gugod 發佈於: #software幾天前我發了一則推文說:
twtxt.net 想到所謂無中心的網絡,除了聯邦式的,也有點對點式的。好比直接訂閱個人站的 RSS/Atom,或是如 twtxt 這種純文字風的。
https://twitter.com/gugod/status/1348065369760518144
結果沒過多久 twtxt.net 的站長就捎了封電子郵件過來介紹 twtxt.net 等等,真是熱血啊。
雖然我在推文裡面提到 twtxt.net,但其實 twtxt 核心部分只是一支軟體程式,而跟那網站沒有直接關係。
源起為這個 github 倉儲:https://github.com/buckket/twtxt
其簡單扼要的介紹文為:
twtxt is a decentralised, minimalist microblogging service for hackers.
雖然自稱是「service」,但其實並沒有這成分在。這名為 twtxt
的程式,主要功能是將使用者推文添加到某個名為 twtxt.txt
的檔案裡面,以及時線(也就是很多其他人的 twtxt.txt
)之下載及閱讀。
所以這個純文字風的「網絡」,其實簡單的來說就是:
- 使用者自有一個網址,指向自有的那份
twtxt.txt
。(例如我的是: https://gugod.org/twtxt.txt ) - 使用者自行取得他人的
twtxt.txt
網址,集結成冊作為訂閱列表。 twtxt
程式能下載訂閱列表內的所有網址,並綜合成單一時線,以便閱讀twtxt
程式能輔助使用者製作新推文於twtxt.txt
當中
至於「把 twtxt.txt 放到自家伺服器上」這一環節,twtxt
程式其實沒有直接處理。使用者必需自購伺服器,自備 http server ,並自行處理檔案之同步。
而這 twtxt.txt
文字檔案格式也是超簡單。基本上每一行都代表一則推文資料。而一行的格式為:
<推文時間> \t <推文內容> \n
例如我那則推文,在 twtxt.txt
內就是這樣:
2021-01-10T09:37:55+09:00 想到所謂無中心的網絡,除了聯邦式的,也有點對點式的。好比直接訂閱個人站的 RSS/Atom,或是如 twtxt 這種純文字風的。
就是這樣,沒有別的了。算是簡化到不能再簡化了(連作者名都沒有)。
如果有 github 帳號。其實可以用 github gist 或者是 github pages 來當存放 twtxt.txt
的場所。
比方說我先建立了一個 gist,內有一個空檔名為 twtxt.txt
,然後:
git clone git@gist.github.com:59d552cea07a683162c2c1fe740d0f92.git ~/p/twtxt.txt
然後修改 twtxt
的 config.ini
,指定 twtfile
、pre_tweet_hook
、post_tweet_hook
三個設定值(該檔內有很多設定值,不只這三個,請參考其文件):
[twtxt]
twtfile = ~/p/twtxt.txt/twtxt.txt
pre_tweet_hook = "git -C ~/p/twtxt.txt/ pull"
post_tweet_hook = "cd ~/p/twtxt.txt/ && git add twtxt.txt && git commit -m '.' && git push"
如此一來每次以 twtxt tweet
去發推文時,就會自動發佈至 github gist 去。
而 github gist 中單一檔案的內容網址,就是在 gist 網址後面加上 /raw/
與檔名。
比方說我的這個放 twtxt.txt
的 gist 網址為:
https://gist.github.com/gugod/59d552cea07a683162c2c1fe740d0f92
那 twtxt.txt
檔案本身(不含 github gist web UI) 的網址則為:
https://gist.github.com/gugod/59d552cea07a683162c2c1fe740d0f92/raw/twtxt.txt
其實把這個網址分享給朋友訂閱就可以了。
如果進一步想用自家網域,可於自架的 nginx 伺服器中加設 location proxy_pass 如下:
location = /twtxt.txt {
proxy_pass https://gist.github.com/xxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/raw/twtxt.txt;
}
這種無中心的網絡機制主要的缺點,顯然是比較不容易去找到既有的內容來訂閱(所有類 p2p 系統的課題)。但看來 github 上有不少「twtxt registry」列表可以參考。想來是社群內人們這幾年來自行蒐集而成的結果吧。
twtxt.net 站長自己的 twtxt.txt
網址位於:
https://twtxt.net/user/prologic/twtxt.txt
看來更新十分之頻繁。