「TGWSAdmin」に関する日記(2)

ここTGWSの管理のために作ったツール。当然ながら非公開だよ。

<前 次>

アンパンマンDBとPhpTestTemplateGeneratorとさくらのVPS for Windows Server

アンパンマンDB

曖昧リンク検出のため、まずは全記事列挙を作りました。
これを馬鹿正直に全部リンク解析すると時間がかかるので、ここは方法をうまく考えたいところです。

それと、Anpanatorのテストのひな型作成。
CRAP指数がでかすぎるし、使い方もよくわからない代物になっていたので、そのあたりの整理も兼ねて。

PhpTestTemplateGenerator

初期メッセージ追加 · mifumi323/PhpTestTemplateGenerator@6c54ace
大したことじゃないんですが、本っっ当に大したことじゃないんですが、最初に起動したときに使い方の簡単なメッセージを出すようにしました。
ええ、久しぶりにテスト作ろうとして、使い方忘れてました。
これでもう使い方忘れても安心!

さくらのVPS for Windows Server

予定作業としては、こんな感じ。

  • 新VPSをクーポンを使って契約
  • TGWSAdminのアプリを移転(せっかくなので最新ビルドにする)
  • TGWSAdminのデータを移転
  • スタートアップを移行
  • タスクスケジューラを移行
  • IISの設定を移転
  • TGWSのVPS接続先IPを新IPに変更
  • ドメインの設定を新IPに変更

リストアップしてみると意外と多いな…。

美文のキャラ倉庫とTGWSAdmin

日記

昨日言っていた件、PHP側のバグを疑っていたんですが、日記の問題じゃありませんでした。
WordPressの記事に、不可視の制御文字が紛れ込んでいて、それがパース出来なくなっていたのでした。
そんな文字そもそもインターネットの記事に出すものじゃないので、記事から問題の文字を探して抹消して解決を見ました。

↓だいたいこいつのせい。
バナナゲーム2 – 美文のキャラ倉庫

TGWSAdmin

Twitter系のタスクで画像のALTに対応してみました。
Tweetinviを使っているので、以下のページを参考に。
Media Upload — Tweetinvi 5.0.4 documentation

まあ、ALTが最も必要になりそうなアンパンマン日替わり紹介botはTGWSAdmin使ってないんで関係ないんですけどね。

あと、ツイートの文字数計測を実際のTwitterに近い仕様にしました。
半角英数とかの7bit文字を全角の半分扱い、というやつです。
本当はほかにもいろいろなルール(URLは数に入れないなど)があるのですが、全部目指したらきりがないので、とりあえず今回の修正で妥協しました。

VRChatとTGWSAdmin

VRChat


VRChat
VRChatインストールしてみました。
今のところは機能を見たいだけなのであんまり積極的に使う気はないですが、しばらくはあれこれ試してみようと思います。

松田美文 - VRChat
プロフィールページはログインしないと見えないと思う。

TGWSAdmin

以前削除した、時間指定ツイート機能を復活させました。
ここのところTwitterの公式クライアントがいろいろと我慢ならなくなってきたので、この機能も公式に頼らずに自力で実現することにしました。

TGWSAdmin

大きすぎる画像を自動縮小する機能を作成。
Twitterに上げられるのは5MBなので、それに合わせるようにちょっとずつ縮小します。
事前にファイルサイズを確認して縮小しておく必要が無くなって楽なのです。

TGWSAdmin

ツイート一覧の画面が全画像を一度に読み込もうとして重いので、ファイル名だけ出すようにして、クリックしたら個別に画像表示するようにしてみました。
基本的に一覧で興味あるのは画像があるかどうかで、一覧上の小さな表示ではどんな画像かもともとわかりませんからね。

LMMSとTGWSAdmin

LMMS

LMMSインストールしてみました。
DAW、まあ要するに、音楽作成ソフトです。
昔はFrieveさんのMusic Studio入れてたんですが、不安定なところがあったとか、近頃更新されなくなったとか、MIDI以外の作り方結局わかんなかったとか、PC変えたときに再インストールしてなかったとかで、今日日MIDIもないだろうということで、音声ファイルとして出力する方が標準なやつを探してきました。
ひとまずは手持ちのMIDIをインポートしてどうにかするところからかな。

TGWSAdmin

ファイル結合しない処理、完成!たぶん!!

TGWSAdminとAuth0

TGWSAdmin

ファイル結合しない処理の続き。
一気に作り切ってしまうのではなく、ちょっとずつ段階的に実装を進めています。

Auth0

ちょっと全部ひとまとめにし過ぎて、私が今やりたいこととは合わないかなーと言う気がしてきています。
Twitterでのログインに絞って、自前で実装しちゃうかも。

プロフィールとTGWSAdminとドラゴンクエスト10

プロフィール

古い形式のページを削除しました。
もう新しいのが出てからずいぶん経つし、古いページにしかないものは基本的にはないので(ないこともないけど、それは意図的に削除したので残っているとまずい)。

TGWSAdmin

アクセスログが壊れるという現象が最近発生していて、フィルタしつつファイル結合している部分が怪しいのではないかと考えて、ファイル結合を行わず、フィルタ処理は非破壊で行うように修正中です。
結合後のファイルサイズも結構大きくなっていて、遠からずファイル結合の処理は捨てる必要があったので、この機会についでに…。
ちなみに、以前言っていたTweetinviの件は、.NET5移行試行前にとっくに解決済みです。

ドラゴンクエスト10

お宝ゲット
明日じゃなかったけど撮りました。
お宝ゲットのしぐさ!

TGWSAdmin

.NET5に移行するの諦めました。
文字コードの問題とか、ライブラリの入れ直しとか、いろいろやりましたが、PropertyGridがなぜか実行時におかしくなるのと、ContextMenuStripがデザイン時に編集できないのが致命的でした。
0から作った場合にはPropertyGridは普通に動作してくれたんですが、それとの違いがどうにもつかめず。
ContextMenuStripに関しては、デザイナーの問題だからこっちでは手の出しようがないですね…。
どのみちWeb側に機能を持っていきたいので、先進的なものを挑戦するのは控えようかと思います。

TGWSAdmin

.NET5に移行を試行中。
今のところうまく動いているように見えるけど、本番稼働はトラブルに対応できる土曜日以降にしよう。

Tweetinvi

TGWSAdminで使っているTweetinviが今バージョン4なんですが、バージョン5が新たに出ていました。
しかもTwitter APIバージョン2にも対応しているようです。
ということで、さっそくバージョンアップを試みたのですが、かなり変わっていて、そのままでは動くどころかビルドすらできませんでした。
結構大掛かりな修正が必要になりそうです。

WellKnownUriParser

TGWSAdminのバグが直ったことでリファラ情報がまた入ってくるようになったので、リファラに入っていた検索サイトのパターンをWellKnownUriParserに反映しました。
NuGet Gallery | MifuminLib.WellKnownUriParser 0.1.0-alpha5

これを使っているのんびりナマライザはどうしようかと考えたのですが、どうせ使っている人もいないだろうし、また後でということになりました。
TGWSAdminのほうは、自分が使うので最新版反映しました。

TGWSAdmin

リファラが正しく取れない問題が解決したので、徐々に復旧中。
怪しいリファラも増えてた。
いちいち見に行く人はいないと思うけど、アクセス統計のページは怪しいリンク集になってしまってるから、近寄らないようにね。

TGWSAdmin

ちょっと前からリファラが正しく取れていないような気がするので、調査中。

アンパンマンDBとTGWSAdminとCircleCI

アンパンマンDB

一時保存の挙動を改善。
これまでは、プレビューしただけでも一時保存が消えてしまって、途中まで書いたやつの続き書こうかな→やっぱやーめた、で、書きかけのが消し飛んでいたのですが、編集を確定するか別の一時保存を作るまでは消えないようになりました。

TGWSAdmin

リファラチェックの結果がたまり過ぎていたので自動整理の仕組みを作成。
一年前にチェックした結果とか残してても仕方ないですからね。

CircleCI

作業領域にRAMディスク使えるらしいので試してみました。
確かに普通のディスクを使うよりは速くなるけど…一番のボトルネックがライブラリのダウンロードなので、期待したほど劇的な高速化はしませんでしたね。
テスト項目が増えてテスト自体に時間がかかるようになってきたら、特にファイル読み書き系のテストが増えてきたら、効果が上がってくることになるかな。

TGWSAdmin

リファラスパム除去の動きが怪しい気がしたので調査中。
リファラチェックに行った時だけ違うレスポンスが帰ってきたりするのか…?

AccessAnalyzer

最終的に、今使っているプロジェクトに対するインパクトがなるべく少なくなるように、既存の機能は一切潰さないまま、新しく.NET Standard版を作成し、こちらも既存のインターフェースを可能な限り保つように作りました。
そして、導入しやすいように、.NET Standard版はNuGetパッケージを作成。
Install-Package MifuminLib.AccessAnalyzer -Version 0.1.0-alpha1

ついでにナマライザのUIもNuGet化しようかと思ったのですが、こちらはついでというには少々重いタスクになりそうだったので、見送りました。

AccessAnalyzer

どうにもナマライザとTGWSAdminで一緒に扱うときに扱いにくくて、ちょっと扱い方変えようかと検討中。
ある種の大胆な試みは、事実上失敗に終わった。

<前 次>