顯示具有 Messanger 標籤的文章。 顯示所有文章
顯示具有 Messanger 標籤的文章。 顯示所有文章

2025-08-28

LINE公司將要停止Chrome版Extension的服務

 LINE目前只提供Android、iPhone、Windows、MacOS環境的軟體,從來就沒提供Linux版LINE,在Linux環境唯一的辦法是使用Chrome延伸(Extension)LINE,這是一個閹割版的LINE,它不能用來講話、不能閱讀筆記本、不能刪除群組裡個別留言。

 以另一個通訊軟體Telegram來看,它除了有Android、iPhone、Windows、MacOS環境的軟體之外,還有Linux環境用的獨立軟體,此外它更有網頁版,就是只要用瀏覽器登入https://web.telegram.org之後,不必安裝任何額外軟體或Extension就能使用Telegram,真的是考慮到所有使用者的方便。

 反觀LINE,日前LINE母公司韓國Naver公司公告,即將停止LINE軟體Chrome版的服務,也就是除了Android手機、iPhone手機、MacOS電腦、Windows電腦安裝LINE軟體之外,完全沒有辦法使用LINE來通訊。

 從新聞報導上看到,這個決策首先影響到的是視障者,固然LINE有手機版軟體,手機對視力正常人而言沒有什麼問題,但對視障者來說只能靠手機的語音提示來操作,因為手機的鍵盤是虛擬的,它是一整個平面,而非實體鍵盤可以靠觸摸操作,所以在手機上打字有相當的困難。

 視障者唯有使用Chrome加LINE延伸(Extension),因為使用實體鍵盤,對視障者而言較方便操作實體鍵盤。

 以目前電腦版LINE軟體(Windows或MacOS)來說,它的介面完全不考慮視障者的使用,於是無法被電腦上語音輔助軟體有效讀取,讓視障者無法操作。唯有依附Chrome的LINE延伸軟體因為它的介面是瀏覽器本身,才能跟電腦本身的語音輔助軟體順利互動,讓視障者方便聽取使用。

 其次LINE取消Chrome延伸軟體影響到的,就是『不用Windows不用MacOS』而是用Linux的人。因為LINE不願意提供Linux環境的軟體,因此目前Linux的LINE用戶最多人用的就是Chrome的延伸LINE軟體。

 既然是閹割版,就是只有對話、貼圖等幾個最基本的功能,一旦沒有了Chrome延伸LINE,等同不能用LINE了。

 使用scrcpy成了使Linux電腦環境下,使用LINE的最後一條生路!

 scrcpy並不是針對使用LINE而設計的,它是把Android手機整個畫面『投影』到Linux電腦,在電腦上用滑鼠、鍵盤來操作手機上的任何軟體,藉此來操作LINE。

 首先移除Linux裡原有的scrcpy以及adb,下載最新版scrcpy(因為在個別distro裡的scrcpy有些bug,而3.3.1目前使用上沒發現問題)

 https://github.com/Genymobile/scrcpy/releases/tag/v3.3.1

 解開後把adb, scrcpy, scrcpy-server放在你的$PATH路徑

➀Android手機連上跟Linux電腦同一個LAN裡的Wifi,然後看它的IP(例如192.168.8.8)
➁Android用USB連到Linux電腦
➂指令: adb devices (確認Android手機已連接好)
➃指令: adb tcpip 5555 (設定電腦端走TCP/IP協定並透過port 5555)
➄把Android手機的USB拔除(斷開與Linux電腦的實體連接,從此之後Android手機不必再次透過USB連到Linux電腦,只需透過Wifi即可操作) 
➅指令: adb connect 192.168.8.8:5555
這時會顯示: connected to 192.168.8.8:5555
➆指令: scrcpy --tcpip=192.168.19.31 或只用scrcpy --tcpip
也可以加 -S(大寫) 讓電腦與手機連線後,手機螢幕不亮
scrcpy --tcpip -S --shortcut-mod=lalt <-- 最後這個參數是指定『左Alt』使為操作鍵
加參數 --screen-off-timeout=90 指定90秒後螢幕關閉、中斷跟電腦連線
手機螢幕暗掉之後,用滑鼠右鍵按一下可以重新點亮

 連接後要輸入密碼,先按住滑鼠右鍵把手機螢幕往上拉,露出輸入密碼的欄位,輸入密碼後連線會斷開,然後重新執行一次scrcpy --tcpip -S --shortcut-mod=lalt,這時就不必再打密碼。
左Alt+→ 螢幕順時針轉
左Alt+← 螢幕道時針轉
左Alt+↑ 音量加大
左Alt+↓ 音量減少
左Alt+r 把螢幕顯示由垂直轉成橫向

 把Android手機文字拷備到Linux電腦
➀用滑鼠在Android手機上長按,標示一個區域
➁按Ctrl-c
➂滑鼠回到Linux電腦,按Ctrl-v,把剛才的標示區文字貼到Linux電腦

 從Linux電腦把文字拷備到Android手機
➀在Linux電腦把文字拷備(不同軟體裡有不同的按鍵方式)
➁把滑鼠移到Android螢幕上,按Ctrl-v

 在Linux電腦查詢Android手機裡的目錄
adb shell ls -l
查詢OpenCamera所拍攝的照片
adb shell ls -l /storage/sdcard0/DCIM/OpenCamera/
把某一張照片從手機上抓到Linux電腦裡
adb pull /storage/sdcard0/DCIM/OpenCamera/IMG_20250808_085918.jpg
把Telegram.apk上傳到Android手機
adb push Telegram.apk /storage/sdcard0/Download/

 LINE推新聞給你、叫你用LINE Pay買東西、LINE Music、LINE Game、……LINE包山包海,口袋賺滿賺翻,不提供Linux版軟體也就算了,還要終止Chrome這個閹割版LINE的服務,真的是貪得無厭的廠商!

 LINE公司的經營者心裡持的大概是『給你用Chrome延伸版LINE是施捨,老子現在連施捨都不願意了,怎樣?咬我啊!』這樣的心態吧?!

 

2017-12-02

telegram-cli觀察記

已經觀察了六天,發現telegram-cli拉高CPU loading的時間不一定,有時連續
一整天每個小時都出現很多(幾十次)衝到50%以上的情形,有時卻好幾個小時都
不曾出現10%以上的loading,但可以確定的是「不是OS造成程式loading high的
問題」,懷疑是網路通訊連接到telegram server有阻礙,因此一直retry導致
loading high。這六天的紀錄也沒有出現70%以上的(使用A10 single core)。

"-P XXXX"好用的地方在於telegram-cli仍可以續繼操作,又可以接受外部程式
送來的payload,並將它送出。

2017-11-26

telegram-cli 使用後記

telegram-cli使用兩年多好像沒什麼不良,但最近卻發現主機常常system reboot,
查來查去,推測是telegram-cli把CPU loading拉很高,最後引發system reboot.

好吧,那來加個監測CPU loading並且把情況回報給自己的帳號,這樣就可以找到
最後的黑盒子內容。
telegram-cli 加上 -P 2323 的參數,開一個小門來讓外部程式送訊

監視CPU的程式可以用
pn = popen('pidof telegram-cli').readline().strip()
P='top -bn1 -p %s|tail -n1|awk \'{print $9}\''%pn
while True:
   L = popen(P).readline().strip()
   如果 L 大於 10 就送個簡訊
   system('echo "msg XXX_YY %s %s"|nc localhost 2323 -q1'%(L,strftime('%T')))
   如果 L 大於 90 就把它殺了
   system('sudo pkill telegram-cli')

2015-12-31

LINE for Linux

使用LINE 交談是不得已,這麼說,是因為LINE 不願意提供給 Open source free software
社群一個有效的方便使用環境,但是台灣太多人用LINE,不用就不方便。

之前有人以反向工法解譯出可以用 Python 來傳送LINE 交談的方法,但是
不久 LINE公司就發文威脅該作者,那段程式碼便被移出網路不能公開了。

為了在 Linux 下使用 LINE,我試過以 wine 跑 LINE for Windows 或是
跑 kvm qemu 跑一個 Windows 來執行 LINE for Windows, 結果都有
使用上的不方便。

最後,發現 LINE 有 for chromium browser 的plugin, 於是試用了一下,
發現這是在幾種 Linux 環境下 LINE 不好用的方式裡
「最不會不好用」的方式,於是就這樣「不得已」的在 Linux 環境下
使用起 LINE 來,也推薦給使用 Linux 並且要用 LINE 的朋友用。

簡單講就是:
1. 安裝 chromium-browser (在Linux 環境)
2. 在chromium-browser 裡安裝 LINE app plugin
之後並不須要開啟 chromium-browser 而是把以下這段指令寫在某個
可供開啟的地方,例如 fluxbox 的 menu 裡:
"chromium-browser --app-id=menkifleemblimdogmoihpfopnplikde"
然後就可以在 Linux 圖型介面環境下啟用 LINE 了。
或者說,在任何 terminal 裡執行上面那段指令,就會啟用 LINE。

MK802 telegram + ESP8266 自動控制

由於ESP8266 本身俱有網路功能,只要有wifi 就能簡單建構起來。
這裡使用文字介面的 telegram-cli 加 esp8266(執行 telnetd service)。

利用 telegram-cli 當載具,可以接收來自地表各處給的指令(中國除外)、
向OS(Linux) 送出指令,介面由 python 組成(在我五月寫的 Telegram 機器人
那一篇有說明,用一台小小 的 MK802 (或Raspberry Pi)就可以達成。

MK802 到ESP8266 的介面也是藉由 python 來達成
ESP8266 用nodemcu 跑 telnetd service

與ESP8266 互動的部份:
espc = pexpect.spawn('telnet %s 23'%esp8266_IP)
--以下sendline() 內容可以改成任何指令
espc.sendline('gpio.mode(%s,gpio.OUTPUT)'%pin)
espc.expect('> ')
--取得執行後的資訊
espMSG=espc.before
print(espMSG)

ESP8266 執行 telnetd service 的部份:
s=net.createServer(net.TCP,180)
s:listen(23,function(c)
  function s_output(str)
    if(c~=nil) then c:send(str) end
  end
  node.output(s_output, 0)
  c:on("receive",function(c,l)
    node.input(l)
  end)
  c:on("disconnection",function(c)
    node.output(nil)
  end)
  print(" >> DE BV1AL <<")
end)
 
2015年要結束了,最後一天來灌點水! 

2015-05-22

大家來寫 Telegram 機器人

微軟把MSN玩死了,現在沒有MSN server可玩,以前根據 msnlib 寫的機器人都不能動了!
而 LINE 則是商業軟體,有人解出它的通訊模式, 寫成python 模組,就被LINE公司發函封口!
所以也不能寫 LINE 機器人。

還好有open source 的 Telegram !
Telegram 真是好物,因為它是open source 所以有了各種可能!
Telegram 跟LINE 的使用方式幾乎完全一樣,會用 LINE 的人幾乎立即可以上手。
Telegram 跟LINE 一樣有iOS, Android, Windows, MacOS 等版本, 但不同的是
Telegram 有Linux 版本!

Telegram 更有文字模式版本!就是 telegram-cli
git clone --recursive https://github.com/vysheng/tg.git
cd tg; ./configure --disable-liblua (用不到 lua 的話)
make
不過在make 之前你可能要先裝
libreadline-dev libconfig-dev libssl-dev libevent-dev 幾項libraries.
雖然它不是Telegram 團隊寫的,但因為 Telegram 是open source, 所以
telegram-cli 跟Telegram 完全相容!

網路上有一些以 lua 或 python 寫的 telegram-cli BOT, 也就是搭配 telegram-cli
可以自動收發資訊的外層程式,但是各有限制,所以我想想不如自己寫一個。

自己寫的好處是完全以容易寫、方便自己用,為目標,
只要利用 python 的 pexect 就能完成一個相當實用的 telegram-cli 機器人!

這裡來說一下重點,重點抓到後,細節可以千變萬化!

第一是
tg = pexpect.spawn('telegram-cli -k /path/server.pub -CNW')
tg.timeout = None
這樣會保持不跳開

第二是
tg.expect("> ")
這是 telegram-cli 在 standby 狀態時的提示符號,我們等它出現這個值,
然後來定義一些常數以便往下能使用。

第三是
while True:
進入無限迴圈,這樣便能處理「收、發」,這裡第一個要的是
tg.expect(">>> ")
這是有外來的資訊時會出現的指標,根據這個指標我們可以獲取兩段資訊。

在 ">>> " 出現之前的一段,是來訊的序號以及發訊人
Usend = tg.before.split()     #這是我們要的前一段
UID = Usend[-2]+'_'+Usend[-1] #這個可以得到對方的代號,用來送訊給對方

後一段就是資訊文,要再次利用系統提示號來區隔資訊文
tg.expect("> ")
在上面那個 ">>> " 之後,到這個 "> " 之前的一段,就是資訊文,或者就像是
我們在 LINE 聊天所送出的文字。
Umsg = tg.before
Ump = Umsg.split()
這裡故意分成一個未分割的 Umsg,以及一個分割的 Ump

如果 Umsg 的開頭是 "[photo" 或 "[image"
if Umsg.startswith('[photo') or Umsg.startswith('[image'):
我們的機器人就自動下載存檔(所以一開始 telegram-cli 的執行參數要有大寫 "N")
tg.sendline('load_photo %s'%Usend[-4])

上面只是一個例子,我們還可以定好指令字串,像收到對方送來 "get /path/file"
就可以區隔出他的指令是 "get" 也就是
if Ump[0] == 'get':
然後再區隔出後面非固定長度的的路徑+檔名
FILE = Umsg[4:].strip() 然後加上來訊對方的 UID
tg.sendline('send_file %s %s'%(UID,FILE))
來送出對方指定要抓取的檔名

也可以訂一個指令,像說
if Ump[0] == 'temp':
然後經由analog GPIO 去讀取 LM35 感溫晶體來回報目前溫度
tg.sendline('send_text %s %s'%(UID,temperature))

當然我們還可以訂一個自由指令,就是不事先訂好的字串,像說
if Ump[0] == 'cmd':
然後再來區隔出 'cmd ' 之後的任何字串
Ucmd = Umsg[4:].strip()
然後以 os.system 或 os.popen 來進行自由指令的執行
os.system('%s > /path/ucmd.txt'%Ucmd) 再由
tg.sendline('send_text %s /path/ucmd.txt'%UID)

這樣我們又有機器人可玩了!