¶有關於對Matrix AppService的開發
主要是針對Element-classic與web的缺失進行開發,缺失的部分包含Sticker, emote, Reaction, Search等項目
先前對於前三項已經大致穩定開發,後者則在MAS後的現在才開始著手進行動工,目前大致上找到了調用方法,可以用中文分詞等等的方法來查找到訊息了
¶關於Widget Api
這部分應該會是在一個一直無法進行調用的部分,因此請忽略這裡
先前會頻繁調用失敗都是因為版本號問題,0.1.0的widget.js不存在,因此我手動查找了相關文檔發現0.1.0只是參考,其版本號須因應當時發布版本修正。
經更正版本號後又有其他有關於網頁保護等等的問題導致依舊無法載入,嘗試過使用本地載入但還是不起作用,所以目前對於這部分我們放棄處理。
¶關於Search的問題
如果按照先前的做法我們是讓AS直接調用讓HS進行搜尋,但可能會報錯,因此我們想說使用Search-bot來處理代理搜尋,但是因為這只能搜尋到Search-bot加入後的資訊,所以我再次提出修正是使用當前使用者進行代理搜尋,因此可以很好的搜尋到訊息。
搜尋到訊息後可在貼圖裡面的搜尋Tab點要跳轉的訊息,會由Search-bot送出一條DM給你,請點擊該訊息連結由前端自動進行跳轉,這部分是考量如果前端自跳轉會有兩個問題:
* 如果是當前頁籤,因為是嵌入性網頁,因此element會禁止嵌入網頁此外其連結也可能導致下面這樣的出錯
* 如果是新分頁,因為是matrix.to這樣的訊息連結,因此會導向外站並導引使用者使用其官方的element或其他官方client網站,並不會導回如我們伺服器方自訂的client站點,如使用者的使用習慣為其他client站點,則可能會造成問題
因此我們決定用這種方式來解決問題,並且理論上的應該可以對手機端的element-classic有很好的支援,以上。
此外,對於圖片部分我們認為不用納入搜尋,因為element自帶媒體庫可直接滑動瀏覽。
還有,加密訊息仍然不支援搜尋,這是因為HS無法對訊息進行解密,而AS也不會有使用者之密鑰,且element-web版本身在搜尋上也就不支援加密房間的訊息進行搜尋,如果要動用加密訊息的搜索,我們可能需要調用matrix-nio等可具有解密庫的工具
(但還是可能會造成問題,由於目前我們是使用代理搜尋,所以可以用搜尋使用者可搜尋到的未加密明文訊息,但如果回歸以client端的matrix-nio,他會是一個單一使用者,且需要儲存單一階段token以及會需要動用相關解密、驗證工作階段等一系列較為麻煩的操作,況且這相對也不符合matrix對於加密訊息的精神--讓HS無法監控到使用者的訊息,因此綜整來說我們會放棄這部分的開發還請見諒。雖然Client端如FluffyChat好像可以做到加密訊息的中文分詞搜尋,但是我們在這部分真的比較難著墨就是了,也不用期待element或其他client會對這部分加以開發--因為這基本上違反了matrix在加密訊息上的精神)
故如果希望訊息可以被搜索,請務必不要加密房間,如果加密了房間就無法回到未加密狀態了還請留意。以及如果貼圖或是表情貼等等訊息送出顯示驚嘆號或是表明未加密訊息也屬於正常現象,因為是由AS向HS發布代理訊息,因此HS肯定會知道發布的訊息內容,也因此必定是明文發送的訊息。
關於訊息部分也都只會在本伺服器內流通,亦即本伺服器不會也無法與其他伺服器如matrix.org連動聯邦,是孤兒伺服器,所以本伺服器也主要是與龍女有相關的私訊、訊息通知等等為主要目的,若非與龍女相關希望可以在外與其他matrix伺服器進行交流,建議註冊matrix.org的帳號,如果需要龍女加入,龍女的外部帳號是@nudoragon:matrix.org,如果要在內部私訊龍女,請搜尋@nudoragon:matrix.nudoragon.com,(基本上搜尋前面的nudoragon應該就可以搜索到了)我只是懶得讓使用者使用matrix時自動加入與nudoragon的對話,理論上的說這是可行的
Blog或是Search-bot為目前有的服務機器人,因此如果有藉由這兩個的媒介傳送訊息,還請記得允許以接收通知或訊息
此外由於matrix.nudoragon.com由MAS接管,如果只是希望作為通知用途,高手使用者在手機端推薦SchildiNext作為多帳號管理matrix的client,在裡面設定開啟多帳號功能後即可多開帳號(ElementX系要求使用傳統簽入或是MAS簽入,無法純SSO簽入,故昨日我們遷移至了MAS)
如果需要Classic版的(支援貼圖AS),請下載Schildi Legacy或是Element-classic都可以使用
如果是Web使用者,推薦使用Element.nudoragon.com,在nudoragon的領域做nudoragon的事情,這樣也不會占用普通的app.element.io的帳號通道,就可以實現多帳號的管理
目前大致上如此!雖然可能說明的有點雜,但這大概是目前的開發狀況~