Mastodon用の会話取得ソース作るついでにTwitter用の会話取得ソースから無駄ページャを消し去った
頭とお腹が弱いボンクラプログラマー。
名前呼ぶ時はIDで呼んでください。
PHPとRubyが書けます。
FF14とbeatmaniaIIDXもやります。
⚠️ CW設定のない下品な発言が非常に多いです。どうにも辞められないので、無理な人は見ないでほしい。
【一部投稿コンテンツの著作権表示】
FINAL FANTASY XIV: (C) SQUARE ENIX CO., LTD. All Rights Reserved.
Mastodon用の会話取得ソース作るついでにTwitter用の会話取得ソースから無駄ページャを消し去った
無駄ページャもなんとなくそこにいるのは無駄なだけであって、レートリミット時とかに生えてきて再取得できる実装まですれば意味がでてくる
y4aNのStreamChannel、ユーザの有効化フラグとStream自体が活性に動作しているかのフラグがごちゃまぜになってるのだめでは?
ストリーミング接続管理が1手操作するたびにスクロールリセットされるから殺すぞって思ってたら、1手操作するたびにAdapter再生成してたから本気で2月くらいの自分を刺したくなった #yukari4a
スクロールロックもはや機能してないが、もしかしてそもそも実装忘れてるのかこれ
* AutoReload使用中、レートリミット時などにクラッシュする問題の修正
* OAuth認証後、ブラウザからコールバックで戻ってくる時にクラッシュする問題の暫定修正
* メニューを開いてすぐに操作した場合などにクラッシュする問題の修正
* サムネイルミュートの注釈をMastodonのトゥートにも出すようにした
* Mastodonの会話をたどれるようにした (リモート絡みをよく確認できていません…)
* ストリーミング接続管理で操作のたびにスクロールが最上部に戻る現象を修正
デプゲ: https://dply.me/d7i2s6
リリースノート: https://github.com/shibafu528/Yukari/wiki/Release-Notes
ずっとInterruptedIOExceptionが来てる状況、普通にクラッシュ情報の診断に支障をきたすのでしばらく機能実装の手を止めてこっちを解決する #yukari4a
Bintrayにexvのバイナリ放り投げた
https://bintray.com/shibafu528/maven/yukari-exvoice
そして「shibafu528の自宅の資源への依存を解消」とかいう変なコミットが爆誕
https://github.com/shibafu528/Yukari/commit/39f3aa352de2db61b2a79e54c9d16a5ada2c3631
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 0.0 id, 99.3 wa, 0.0 hi, 0.0 si, 0.0 st
つーかディスクがCPU I/O Wait上がったのと同時刻に3GB消費されてんだけど
「ストリーミング終了処理におけるIOExceptionとかケアできるわけないんだから潰すしかないだろ」が正しければこの変更でいいはず……大問題の1つが片づくはず
次はストリーミング通信中の例外ハンドリングと再接続だが、なんか本家リポジトリにワーキングブランチあるんだよな
丼ストリーミングでSSLException起こしてる端末あるっぽいけど、これ普通に4.xのSSLアレでは? #yukari4a
DM、最大取得件数50件で受信者と送信者が存在するなら、高々100 IDなわけでこれはlookupの最大数と一致するはず。
lookupの呼び出しは1回で済むわけで、これで取れなかったユーザは凍ってるのでは?
ということで、送信者か受信者いずれかの情報が取れなかったら受信結果からドロップさせることにするわ
あー、相手がこちらにRead権限のない鍵垢みたいなクソケースあるのかなあ。
@toshi_a users/showなら取れたと思う。user_timelineは取れない。
DMからsender_id, recipient_idをSetにブチこむ
↓
高々100件と想定して配列化してusers/lookup
↓
lookup結果をLongSparseArrayにブチこむ
↓
もう一度DMリストを舐めてLSAから拾いつつ1objに固める
みたいな処理なんだが~
UserStream disconnected @shibafu528 のToastメッセージがむなしく
y4aのメディア処理はURLを見て特定のサービスっぽければそのように処理を試みて、あとは末尾が有名な拡張子で終わってれば画像一般として処理っていう極めて単純なやつなので、たぶんQuery Parameterが入ったせいで解決失敗してる
拡張子見てそれっぽければOKにするにしても、せめてQuery Parameterは除去すべきですね
🎫 171、これy4a2.0でもやろうと思えば起きますね…… shibafu.yukari.media2名前空間って2.0か1.3くらいの頃に書いたやつのような。
Yukari Next 2.1.0.1607-dev (linkage 180825 85a5064)/exvoice arm64-v8a(Aug 20 2018 21:34:59)/HUAWEI/HW-01K/8.1.0
422 {"error":"Validation failed: Text can't be blank"}
1. QuickPost表示
2. Enter
3. Toast "テキストが入力されていません"
4. Enter
5. 422
これEnterキー捕捉した時に入力イベント潰してないのが悪いんじゃねーの
@ahiru 最初のEnterキー入力の時にバリデーションエラーした時点で、EditTextの内容が"\n"になってて空判定抜けるっぽ
Enter→投稿(これは入力チェックで中断される)→入力イベントが処理されて"\n"が入る→イェーイ
EnterのフックはEditTextのKeyListenerでやってるから、これ単にreturn trueすればハンドル済としてイベント消化されるんじゃなかったっけ?
この機能に気づく人自体が少ないから、レポートもとりたてて上がってなかったみたいな感じか
QuickPostからの投稿の遷移そりゃ想定外やw (ためしたらできたので判定がガバだなぁとなった)
@ahiru これたぶんDonStatus.kt#initが無茶苦茶な本文処理してるせいや
DonStatus.kt#initでの本文処理、ちゃんとcontentのHTMLパースしていい感じに整形してあげないといけないんだが、手抜きMAXだから改行コードが反映されるとかいうガバが起きてる
@ahiru せっかく長いおつきあいを圧縮する機能があるのに、マッチポンプかよ
Nextからy4a始めてくれた初心者向けのTipsですが、投稿欄に「::cmd」って打ったり、About画面で32回連打しろ
::cmdはy4aの真の能力を発揮するために使えるとは限らないけど、たまに有益だよ。セミモードとか。
ダイスコマンドに至っては実装直後にZeroDivExceptionを突かれたといういわくつきの物件だよ
cnコマンドはたぶんMastodonだと動かせない。はず。Twitterで使おうね。
@ahiru TweetActvitiyがstopして、バックエンドサービスが停止したパターンなら有り得る。
最近のAndroidスマホ、むしろ4.xの時よりActivityがStop状態に遷移しやすいんじゃないかすら感じるんだけど
常駐モードじゃないとすぐバインドの参照カウントが無くなってバックエンドサービスが落ちる
@ahiru 詳細設定にある。バックエンドサービスがフォアグラウンド常駐で開始するのでy4a全体が落ちる時間が減る。クラッシュする状態だと変わらんけど。
Xperia Z1 fだと案外y4aのプロセス停止しなかったのが、Zenfone 3に変えたらタスクチェンジで一瞬で停止させられて度肝を抜かれたことがあったな
クエリ実行の即死、あれを解決するのはTLの実装を一通り置き換えてからにしようかなぁとか考えてたり