nikolat / akari-report Goto Github PK
View Code? Open in Web Editor NEW灯(AKARI)に関する情報を書き留めておくプロジェクト
灯(AKARI)に関する情報を書き留めておくプロジェクト
_json2azvを使ってパースするとbool値(true/false)がいずれも0になる
Twitter API のレスポンスをパースする際などに注意が必要となる
現状の回避策としては事前にtrueを1に置換しておくしかない
プラグインの通信(UTF-8)において絵文字を返すと豆腐に化ける。
YAYAでは正常に表示される。
https://ukadon.shillest.net/@nikolat/109334991394615459
_dsstp がまるで動かない
関数を実行するとそこで処理が止まって以降の処理が走らない
公式ドキュメントの用例
speak2( string s )
{
array request;
request += "SEND SSTP/1.4";
request += "Sender: akari";
request += "ID: "+_systemdict["uniqueid"]["Reference0"];
request += "HWnd: "+_systemdict["hwnd"]["Reference0"];
request += "Charset: Shift_JIS";
request += "Script: "+s;
request += "";
request += "";
_dsstp( request, _systemdict["hwnd"]["Reference0"] );
}
の通りに記述してもダメ
ちなみに_systemdict["hwnd"]["Reference0"]はバイト値1区切りで各スコープのhwndが入るので_bytechar(1)で_strsplitして第一要素をint型にキャストしないといけない
それはそれとして_dsstp自体まるで動かない
現状の回避策は存在しない
HandUtil.dll等、同等の機能を持つSAORIを使うしかない
下記プラグインにてオフライン時に_httpgetをコールするとSSPをクラッシュさせる現象が確認された。
代わりにhttpc.dllを使用したらクラッシュしなくなったため_httpgetの不具合と考えられる。
しかし再現率は100%なのだがもっとシンプルな構成で再現を試みたが上手くいかなかった。
(ゴーストで非同期処理中にコールしたがクラッシュしなかった)
よりシンプルな構成で再現できたら追記したい。
公式ドキュメントの
array _customrequest( dict ref )
{
string s = _eventdict[ ref["ID"] ];
if( s == "" ) s = _fncstr( ref["ID"], ref );array ar;
ar += "SHIORI/3.0 200 OK";
ar += "Sender: akari";
ar += "Charset: Shift_JIS";
ar += "Value: "+s;
ar += "";
ar += "";return ar;
}
の通りに記述するとSHIORIレスポンスの空行が3行になる。
上記用例の空要素を1つ削除すれば_customrequestを省略した場合と同等となる。
ドキュメントの方が誤っている可能性もあるが、直感的に空要素を2個足した場合に空行2行となると理解する方が自然であるので、ドキュメントが正しく実装が間違っていると考えられる。
現状の回避策は空要素を1つ削除することであるが、そもそも空行が1個多いからといってSSPを始めとする処理系で大きな不具合は観測されておらず、影響はほぼ皆無である。
しかしSAORIとして利用する場合など呼び出し元の処理系は無限に想定され、プロトコル違反であることに変わりはなく修正されることが望ましい。
SSPから以下のリクエストが来るとエラーとなり、_customrequestの引数(dict ref)も空となる。
NOTIFY MAKOTO/2.0
Charset: UTF-8
Sender: SSP
SecurityLevel: local
ID: uniqueid
Reference0: ssp_fmo_header_XXXXXXXX_XXXXXXXX
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.