2014年5月31日 星期六

utorrent server utf8 encoding issue, CJK character will mess up the filename

我的BT機一直在調整...
BT client最初使用Transmission、Deluge,可是libtorrent似乎有bug
常常出現奇怪的link list錯誤,client就整個掛了,最後換成utorrent Linux版

加上ubuntu 12.04一直有些小問題,某些套件始終沒有更新
OS也從ubuntu換成Debian...

utorrent server即使還是Beta版本,但也算是相當穩定,占用的資源也不多
web ui不管是Desktop或是mobile版本都相當好操作
也可以透過utorrent自己提供的remote utorrent進行操作

只是有個問題困擾了我很久
抓謎片的時候,總是會出現奇怪的狀態
例如下載狀態顯示紅色的錯誤,
有一些謎片下載之後進度跑沒多少或是接近完成的時候會自動停止,而且抓不完
或是下載完成後不會移動到指定的下載目錄

進console去看,發現中文或日文都是一堆的問號
大概就可以猜測到,問題是沒有支援utf8,CJK字元造成的亂碼問題
(CJK: Chinese Japanese Korean)
只是環境已經確定有支援utf8了,為啥軟體還是有問題?
一直沒有沒有查到相關的解法...

今天換個關鍵字找到一篇網誌,
解决ArchLinux的utorrent文件名中文乱码问题
雖然OS不同,但問題的根源是一樣的

簡單說就是啟動軟體的時候,Locale的設定不正確

判斷的方式就是檢查utorrent.log
第一行會顯示目前使用的編碼
[20:53:51] Locale C
代表目前使用POSIX標準編碼,這個編碼不支援utf8
[20:53:51] Locale en_US.UTF-8
後面有utf8的後綴字才表示有支援utf8

修正的方式比較髒一點
直接修改utorrent的啟動script,加上切換locale的指令
以debian 7+utorrent server 3.3為例
修改/etc/init.d/utorrent
在執行utorrent前加上export LANG=en_US.UTF-8
強制切換locale

修改之後重新啟動utorrent即可

先前如果曾經下載過有包含CJK字元的種子
因為下載的時候已經造成亂碼無法回復,只能刪除重新下載
已經下載的資料也會因為檔名與torrent中的資訊不同,必須要手動刪除

留個紀錄:D

2014年5月26日 星期一

Hash to Magnet link converter

BT可以不需要torrent,直接透過magnet下載檔案,但magnet的普及一直沒有提升...
起碼比較大型的幾個論壇都沒有要求要放magnet link...

大多數論壇下載種子要扣積分,積分再多總有一天會扣完,
特別是我這種不太喜歡回覆沒有意義的潛水夫...

幸好,大多數論壇的制式文章中要求放驗證全碼...
就是BT torrent的hash值,每個種子都有近乎唯一的hash值可以辨認,
因此透過hash其實可以直接透過BT的DHT網路,直接取回torrent檔案
類似ed2k的KAD功能,缺點是對p2p網路的負擔會比較重一點

而magnet其實就是利用hash值加上預先定義的一些資訊,
供使用者直接下載

我總習慣直接google搜尋hash,另外找可以直接下載的torrent或是magnet直接下載
但其實,hash可以直接轉為magnet連結,只是少了許多資訊
為了省事,所以寫了一個簡單的script,
抓出文章中的hash值,自動加上magnet連結

因為chrome取消了直接安裝user script的功能,需透過tempermonkey之類的user script管理程式安裝
所以可參考這篇網誌的介紹,了解一下TemperMonkey是啥東西...
[How To] TamperMonkey:管理UserScript的Google Chrome擴充套件

Google web store: Tampermonkeyhttps://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo?hl=zh-TW

安裝好Tempermonkey後,就可以直接下載User script進行安裝

Hash to Magnet link converter
Download : http://rawgit.com/mosquito520/userscript/master/Hash_to_Magnet_link_converter.tamper.js
螢幕截圖 內容BJ4...
Change List:
v5: 
不知道為啥,漸漸有些文章直接放上不同檔案的Hash,導致判讀的困難
所以增加一個動態的表單,當輸入或貼上hash的時候直接產生magnet link

v6:
更改script source到github


預設支援伊莉與卡提諾兩個論壇
若有其他論壇有類似的內容,可以直接在Tempermonkey中修改應用的網站

若碰到沒辦法支援的論壇或是內容,可以嘗試自行修改
或留言給我,但我不一定會改XD

Fix msmtp does not work in old ubuntu/debian version

主要是舊版msmtp沒有處理好email header 現在的smtp伺服器會檢查mail header 寄件人跟帳號不一致不給寄 收件人不是合法mail address自然不能寄 #!/bin/bash # Workaround until mtmsp >= 1.8....