Chienomi

最近行った小さな開発や変更まとめ

開発::util

最近、わざわざ記事にするまでもないような細々した内容が多いので、ここに簡単にまとめておく。

Chienomi

Pandocの自動折り返し機能によって属性値が折り返され、適切に動作しない要素があったため、

pandoc_additional_options:
  wrap: preserve

を追加して折り返されないようにした。

ユーザーにとってわかりやすい部分でいうと、Share to Fediverseで変なところに改行が入っていたのが改善された。

また、併せてGeneric Web Appsも改修したが、こちらはユーザーには露出しない要素である。

新しいソフトウェア msgbridge

msgbridgeはホストに対してメッセージを送るためのソフトウェアである。

常にアクティブなサーバーがある前提で、主に通知を受け取るために使う。

サーバー上でmsgbridge-server-set.rb <HOST> <TYPE> <MESSAGE>を実行することでメッセージがプールされ、msgbridge-server-get.rb <HOST>を実行することで出力することができる。

メッセージはマルチパートのYAMLになる。

この出力をmsgbridge-client.rbにパイプすることでダイアログ表示やサウンド再生などを行える。

基本的にsshでログインして実行&パイプをポーリングする形式が想定されている。

このソフトウェアについて、あったらいいなとずっと思っていたものの、言うて今すぐ使う予定がないという事情から、作りっぱなしの状態になっており、ユースケースの紹介をするに至らず、かつ有益な人がかなり限られることから、記事にはしていない。

DLsite Voice Utils / VoiceStatでの試行錯誤

それを含めたものをアップしたかどうか覚えていないが、「トレンド評価に音ゲーのテンションゲージ方式を採用したらどうか」というアイディアがあり、それを試した。

従来よりも複雑で、かつ効果的に見えたのだが、実際は良いものではなく、実用的ではないという判断になった。

最大の要因は、私はそれなりに集めているつもりだが、それでも全体数が500程度で、1項目に対してフィルタすると多くても15、平均は4くらいになるということだった。

15ノーツしかない音ゲーをイメージしてもらえば、その理由は簡単にわかると思う。

ソフトウェアの更新

MailDeliver

無効なUTF-8文字を含むメールが入力されるとMail.newが例外を吐いて落ちてしまう問題を改善した。

実際のところ解釈できない理由がUTF-8の正当性だとは限らない上に、例外種別からその理由を判定できないため雑な対応なのだが、実際のところ運用していてそれ以外のケースに遭遇していないため暫定的にこれで良しとしている。

また、maildeliver-q.rbを引数なしで実行した場合にエラーになっており、AltPostLocalでのtypoなどでこの問題が発生するケースがあるため、これを明示的な例外(RuntimeError)に変更した。

My Browser Profile Chooser

Floorp(flp)とMidori(mdr)のサポートを追加した。

Midoriは以前サポートされており、サポートが削除されたものだが、現在はFloorpベースになっており、Firefoxのコマンドと互換性があるため、その形で改めてサポートされた。

LocalWebMediaPlayer

ファイル名に#?を含む場合にうまく動作しない問題を修正した。

また、(OFLな)ウェブフォントを含めるようにした。