Pank: August 2015 Archives

Build LINE API with AutoHotkey

user-pic
Vote 0 Votes

本篇不是講 carpedm20 用 Python 寫的那個非官方 LINE API
那個非官方的 API 似乎被 LINE 封鎖了, 2015-08-26 開始就不能使用
替代方案是用電腦版 LINE + AutoHotkey 自己做
簡單講就是把使用電腦版 LINE 的動作, 寫成一個 AutoHotkey Script , 帶參數進去就成了土法 API

Script 如下, 其中的座標要用 AutoIt3 Window Spy 進行調整成適合自己的環境, 每台電腦狀況不太一樣
CoordMode, Mouse, Screen ; 螢幕絕對座標
MouseClick, left, 944, 754, 2 ; 點兩下 LINE tray icon
CoordMode, Mouse, Relative ; 視窗相對座標
Sleep, 400
MouseClick, left, 70,66 ; 點「好友」圖示
MouseClick, left, 240,112 ; 點到搜尋欄
Send {BS 20}%1% ; 送出 20 個 Backspace (刪除上一個收訊者名稱) 及收訊者名稱
Sleep, 200
MouseClick, left, 100, 190, 2 ; 滑鼠到收訊者名稱點兩下
Sleep, 200
Send %2%{Enter} ; 輸入訊息及 Enter 送出
Sleep, 600 ; 這邊的停頓很重要, 停太少時間會導致訊息還沒送出就關閉視窗
Send ^w ; 關閉聊天視窗
return

存成 SendMessage.ahk
送訊息 SendMessage.ahk {個人或群組名稱} {訊息}
例如: SendMessage.ahk Pank 測試

這個方法的優點是不會被封鎖, 缺點是送訊息的速度沒辦法太快, 最快要 1 秒多
LINE 有改版時需留意 Layout 是否有變, 可能需要微調座標

進階一點可以用 Apache + PHP 弄個 API 遠端呼叫
訊息量多的話還需要弄個 Queue 來管理, 才不會有兩筆 Request 同時進來時,
造成 AutoHotkey Script 同時執行或執行時間有重疊而游標錯亂

unison
雙向同步工具, 支援 Local or Remote

Local and Remote 目錄同步範例: 以新的檔案為主, 舊檔會被新檔覆蓋
unison -batch -prefer newer /home/dir/ ssh://192.168.1.2//home/dir/

2.45.28 是 CentOS 下可成功 compile 的最新版本, compile 需安裝 ocaml,
它是用 Objective Caml 寫的

之後的版本都會出現如下錯誤
File "unison-2.48.3/fsmonitor/linux/watcher.ml", line 55, characters 5-10:
Error: Syntax error

RouterBoard OpenVPN

user-pic
Vote 0 Votes

先在 Client 端電腦安裝 OpenVPN GUI
裝好後 開 CMD 切換到 OpenVPN\easy-rsa 目錄
編輯 vars.bat.sample 檔, 主要留意 HOME 路徑是否正確, openssl.cnf.sample 保持預設值即可

初始化設定, 其實就是把 sample 檔 copy 到正式 file
init-config.bat

載入環境變數
vars.bat

清除資料, 第一次建 Key 也必需做
clean-all.bat

建立自簽 CA, 會在 keys 目錄內建立 ca.crt 及 ca.key
build-ca.bat

若 RouterBoard 端有勾選 Require Client Certificate 需要建立 Client 1 Key, 會在 keys 目錄內建立 client1.crt 及 client1.key
build-key.bat client1

RouterBoard 端動作
先把 ca.crt, ca.key 放在 RouterBoard Files
System / Certificates, Import ca.crt, 再 Import ca.key, 可以看到 KT Flag, Name cert_1
PPP / OVPN Server, Enable, Certificate 選擇剛剛匯入的 cert_1, Cipher 除了 null 全勾

Client 端用以下 Config client1.ovpn 即可連上
client
dev tun
proto tcp
remote 100.100.100.100 1194
auth-user-pass
ca ca.crt
;cert client1.crt ; 若 RouterBoard 端有勾選 Require Client Certificate 就需要
;key client1.key ; 若 RouterBoard 端有勾選 Require Client Certificate 就需要
redirect-gateway def1

About this Archive

This page is an archive of recent entries written by Pank in August 2015.

Pank: July 2015 is the previous archive.

Pank: September 2015 is the next archive.

Find recent content on the main index or look in the archives to find all content.

Monthly Archives