jaoafa / JDA-VCSpeaker

🔊 Text channel, now with voice - JDA-VCSpeaker
2 stars 2 forks source link

投稿から読み上げまでの文章処理をリファクタリング #109

Open book000 opened 3 years ago

book000 commented 3 years ago

https://github.com/jaoafa/JDA-VCSpeaker/blob/main/src/main/java/com/jaoafa/jdavcspeaker/Event/Event_SpeakVCText.java

読みにくい + MsgFormatter とかに混在してて処理順番がよくわからん

yuuahp commented 3 years ago

ごめん...

yuuahp commented 3 years ago

数日間で何とかします

book000 commented 3 years ago

いやまあ私がいじくってわからなくなったところもあってエイリアスがどこでかかるべきかも考えたほうがいいのでアレです

yuuahp commented 3 years ago

フォーマットとかエイリアスパースとかいろいろ小分けした方がいいんかな

book000 commented 3 years ago

どういう形が見やすいのかねというところよねえ

yuuahp commented 3 years ago

メソッドチェーンとか

LibAlias.parse(string);
LibMsgFormatter.format(string);

的なのを並べてくとか?

book000 commented 3 years ago

うーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーん

まあ onMessageReceived(MessageReceivedEvent event) に処理をガンガン書いてる今のアレだと読みにくいのは確かなので各ファイルに処理渡してもいいかもしれん

yuuahp commented 3 years ago

全部直接書いたままでも見直せば多少短くなるとは思うけど、あの量を見やすく収めるってのは厳しいと思った

book000 commented 3 years ago

むむむ

yuuahp commented 3 years ago

まあでもやってみないとわかんないか...

book000 commented 3 years ago
  1. 対象外サーバ除外
  2. VCテキストチャンネル以外からのメッセージ除外
  3. Botによるメッセージ除外
  4. . 単体、/; から始まるテキストの場合は読み上げ除外
  5. 必要に応じて自動参加
  6. ignoreの適用
  7. リンクの置き換え適用
  8. 強調の適用 replacerEmphasizeMessage
  9. VoiceTextによるテキストパース
  10. 読み上げ

その後画像処理

この10処理(最初4つは違うから6処理?)を一つのライブラリ(それこそMessageFormatter的な)にまとめて、投稿のパース以外にも動作検証用にparseコマンドとか作ってそっちでも使えるようにするといいかも 個々の処理も関数分割して扱いやすくとか

book000 commented 3 years ago

つか画像処理もネストしすぎてたりメソッドチェーンしすぎてたりで読みづらいんだよなああの辺 難しいわ

book000 commented 3 years ago

ちなみにあやまっとったけど普通にあの辺のコードメインでいじってるのは私なので私が謝るべきアレです… https://github.com/jaoafa/JDA-VCSpeaker/commits/main/src/main/java/com/jaoafa/jdavcspeaker/Event/Event_SpeakVCText.java

yuuahp commented 3 years ago

とりあえずまあどうにかしてみるわ…

yuuahp commented 3 years ago

メソッドチェーンはあんまりやらない方がいい感じ?

book000 commented 3 years ago

メソッドチェーンは見づらさの割にstreamとか使いやすいし正直完全悪とも言えない… とりあえず先行は関数分けかなあ

yuuahp commented 3 years ago

帰ったらやってみる👍

book000 commented 3 years ago

適度にjavadocとか書いてコード追いやすくしとくといいかも💪