We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
有時使用者送來熱訊時,並不會被正確偵測爲熱訊訊息,造成 PttChrome 不送出通知。
相關 issues:#77 & #78
見 parseWaterball() 的正規表示式:
parseWaterball()
PttChrome/src/js/string_util.js
Lines 154 to 160 in 88e3562
/\x1b\[1;33;46m\u2605(\w+)\x1b\[0;1;37;45m (.+) \x1b\[m\x1b\[K/g
這是在清除畫面底部後,某個使用者第一次送過來的熱訊的正規表示式。
/\x1b\[24;\d{2}H\x1b\[1;37;45m([^\x1b]+)(?:\x1b\[24;18H)?\x1b\[m/g
這是未清除畫面底部時,同一個使用者連續送過來的熱訊的正規表示式。
注意使用者代號被跳過。這是由於 pfterm 對輸出畫面資料的最佳化。
其中 \x1b\[24;\d{2}H 所匹配的,是設定游標位置的控制碼(屬於「移位碼」):
\x1b\[24;\d{2}H
24
\d{2}
然而,由於 pfterm 的輸出最佳化,使用者端所接收到的熱訊訊息的格式,實際上不一定會符合以上任一狀況。 比如:如果有兩個代號前幾字相同的使用者送來熱訊,那麼輸出時就會從使用者代號不相同的部分開始輸出,這時就不會被以上兩個正規表示式匹配。
將 App.prototype.onData() 內的判斷邏輯,改爲偵測可能是熱訊的資料。 而當偵測到有熱訊送來,則從畫面擷取眞正的熱訊訊息。
App.prototype.onData()
The text was updated successfully, but these errors were encountered:
No branches or pull requests
問題描述
有時使用者送來熱訊時,並不會被正確偵測爲熱訊訊息,造成 PttChrome 不送出通知。
相關 issues:#77 & #78
細節描述
見
parseWaterball()
的正規表示式:PttChrome/src/js/string_util.js
Lines 154 to 160 in 88e3562
/\x1b\[1;33;46m\u2605(\w+)\x1b\[0;1;37;45m (.+) \x1b\[m\x1b\[K/g
這是在清除畫面底部後,某個使用者第一次送過來的熱訊的正規表示式。
/\x1b\[24;\d{2}H\x1b\[1;37;45m([^\x1b]+)(?:\x1b\[24;18H)?\x1b\[m/g
這是未清除畫面底部時,同一個使用者連續送過來的熱訊的正規表示式。
注意使用者代號被跳過。這是由於 pfterm 對輸出畫面資料的最佳化。
其中
\x1b\[24;\d{2}H
所匹配的,是設定游標位置的控制碼(屬於「移位碼」):24
是畫面底部的橫行的編號 (最上方的橫行的編號是 1)。\d{2}
是跳過了使用者代號後,熱訊內文的開頭所在的縱列的編號 (最左方的縱列的編號是 1)。然而,由於 pfterm 的輸出最佳化,使用者端所接收到的熱訊訊息的格式,實際上不一定會符合以上任一狀況。
比如:如果有兩個代號前幾字相同的使用者送來熱訊,那麼輸出時就會從使用者代號不相同的部分開始輸出,這時就不會被以上兩個正規表示式匹配。
可能解法
將
App.prototype.onData()
內的判斷邏輯,改爲偵測可能是熱訊的資料。而當偵測到有熱訊送來,則從畫面擷取眞正的熱訊訊息。
The text was updated successfully, but these errors were encountered: