「非公開ツール」に関する日記(2)

<前

Repeat Task

エラーは解消しました。
せっかく作った新システムを画面からは一切呼び出してませんでした。
もう、旧システムをごっそり捨てて、Repeat Taskは全部新システムに入れ替えました。
で、表示条件のパターンも便利なようにいくつか追加しました。
まだ足りてない条件パターンもあるのでそれはこれからの課題。

ドラゴンクエスト10とRepeat Task

ドラゴンクエスト10

ふくのかみ
毎月10日はDQXで遊ぼう! ~みんな一緒に福の神まつり~ (2023/4/3)|目覚めし冒険者の広場
テンの日。
福の神メダルが追加で配布されたので遠慮なく福引券いっぱいもらいました。

第12回 アストルティア・クイーン総選挙 大予選会! (2023/4/10 更新)|目覚めし冒険者の広場
あと、来年のバレンタインイベントの予選投票。
こっちはとりあえずワグミカに入れておきました。

Repeat Task

タスクの表示条件があったりするんですが、自分用なので、手抜きしてeval関数で評価するようになっています。
流石にこれじゃわかりにくいので、もっとわかりやすい条件をかけるようにしました。
が、去年言っていたところから大して進んでおらず、実装したところ、盛大にエラーが起きてしまいました。

日記とLocalCrawler

日記

日記の各記事に固定リンクを追加
昨日言っていたハッシュタグ風のカテゴリ表記、固定リンクとの差別化だったのでした。
固定リンク機能は正直管理人の私以外には大して意味がないような気がしますが、日記で時々やっている過去の日記への言及がこれでやりやすくなったのです。

LocalCrawler

自動でHTMLをバリデートするジョブを作りました。
Nu Html Checkerのコマンドラインツールを使っています。
これまでPHPはPHPUnitを導入するなどして間違いのないプログラムを作るよう心掛けてきましたが、そうやって出力されるHTMLは目視でしか確認してきませんでした。
そうすると、ブラウザが何とかリカバリーしてくれるエラーはすべて見過ごすことになってしまいます。
ということで作ったのですが、さっそく非推奨のimgタグのalign属性が無数に出てきました。
最近は使わなくなったのですが、昔作ったページを形だけHTML5に変換したときに発生したようですね。

星のカービィディスカバリーとRepeat Task

星のカービィディスカバリー

ゲーム記のページ作りました。
とりあえずは最低限の説明と進捗だけ。


本編の方は、ホワイティホルンズを進めて、デデデ大王を倒しました。
デデデ大王ってこんな激しい攻撃してくるやつだったっけ?


デデデ大王を倒した後は勢いでオリジネシア荒野大地もクリア。
2nd トレーラーで出てた不穏なエフィリン人形も出現しました。


そして新エリア、レッドガル禁足地へ。
禁足地に来たってことは、「新世界」の禁忌に踏み込むということなので、いよいよ終盤、ということでしょうかね。

Repeat Task

自分専用のちょっとしたツールだったので結構やっつけな再利用できないコードを書いていたんですが、それじゃダメだろうということで、部品として再利用できるように内部構造を修正していました。
とはいっても、ほぼクラスに包んでコピペ、なんですけどね。
やっつけなツールですもの。

LocalCrawler

暗号化なしのHTTP接続を探すジョブを作ってみました。
実際には正規表現で検索するジョブですが、これにURLのパターンを入れれば簡単に見つけ出すことができるのです。
なるべくセキュアなところにリンクしたいのです。

アンパンマン質問箱とLocalCrawler

アンパンマン質問箱

古いURL(質問箱跡地)にはもうほぼアクセスが無くなったので、更地にしました。
一応、わずかにアクセスのあったページには、新質問箱へのリダイレクトを付けています。
だからと言って新質問箱を再稼働するつもりは今のところないですが。

LocalCrawler

読み込めないページのリンク元を特定できるようになりました。
これでサイト内のリンク切れとかを見つけ出せます。

LocalCrawlerとTwitter APIとドラゴンクエスト10

LocalCrawler

先日から言っていた自分のサイトのテスト環境を全ページ走査する自分用ツール、一応LocalCrawlerって名前があるのでカテゴリを作っておきました。
全ページ保存しようとすると時間的にも容量的にも大変な気がしたので、全ページを通ってエラーのみ記録するようにしてみました。
そして、ページを保存するなどの機能は、コマンドラインオプションで指定できるようにしようかと画策中。

Twitter API

新しく進化したTwitter APIの登場
Twitter APIのバージョン2です。
このバージョンだと、以前は使えなかったアンケート機能も非公式アプリで使えるようです。
これまた自分用ツールのmifumitterあたりで使えそうです。

ドラゴンクエスト10

ハロウィンイベントのクリア後のやつ頑張ってみたけど、500個集めたあたりでだるくなってやめました。
これ、個数以外の条件があるのか、それとも要求数が馬鹿みたいに多いのか?
流石に人が多くて重い場所でひたすらいいね連打は疲れます。

HTML5

そうだ、うちのサイトはブラウザ判定やSPAなんてこじゃれたことはしてないんだから、単にページのソースが欲しいだけならcurl系統の、HTTPリクエストを送るだけの機能を使えばいいんだ。
実に単純なことであった。

Selenium

HTML5のページだけバリデーションかけたいんなら<!DOCTYPE html>で判別すればいいじゃないかと思ったら!
DOCTYPE宣言はPageSourceから省かれている!!!

DOCTYPEに頼らずHTML5を判別する方法はないものか。
DOCTYPE宣言だけHTML5で、中身がHTML4.01なのは問題だから、それはエラーとして検出したい。
つまり、タグを見てHTML4.01じゃないからHTML5っていう判定はできない。

それはそうとして、「--blink-settings=imagesEnabled=false」のオプションを付けたら速くなった。
見たいのはHTMLだけなので、画像を読み込む必要はない。

W3C Markup Validator

ローカル環境で無作為にクロールしてバリデーションかけたら大変なことに!
古いHTML4.01やShift_JISのコンテンツは軒並みアウト!
古いCMS(主にPukiWiki)使ってる場所もすごい勢いでエラー!
これはさすがに直し切れるものではない!

HTML4.01自体は正当なHTMLなので、HTML5のバリデータにとってはそもそも対象外。
CMSはこちらで手出ししにくい部分なのと、そもそも古くて直す価値も低いことから、放置…というか、古かったらやっぱりHTML4.01なので、やはり対象外。
HTML5で書いたページに絞って仕切り直しかな。

非公開ツール

アンパンマンの録画をいい感じに管理するために個人的に使っているツールをちょっと改良。

LocalCrawler

自分のサイトのテスト環境の全ページに全力でアクセスしまくるプログラムによって外部アクセスが起きないように、サイト側で、テスト環境なら外部リソースを読み込まないようにしました。
そんでもって、似たようなページに連続アクセスしないように、レーベンシュタイン距離の離れたURLを選ぶようにしてみました。

LocalCrawler

自分のサイトのテスト環境の全ページに全力でアクセスしまくるプログラム作成。
しかし、本来は自分のサイトの外に出ないはずが、スクリプトや画像の埋め込みとして外へのリクエストが発生していたのでした。
アンパンマンDBとかは自動生成されるページも多いので時間がかかり、その対策も必要そうです。

Repeat Task

もうちょっと使いやすく改良。
evalを使って手っ取り早く実装した都合で、evalの制約を色々受けてたんですね。
でもやりたいことって基本シンプルだから、より簡便な記述で済むように、お決まりの部分は自動補完するようにしました。

ます…なんとかに少し興味。
せっかくオープンソースの分散型で誰でもサーバーを立てられるんだから、自宅サーバーで、それが無理でもVPSとかで自分だけのサーバーを立ててみたいですね。

Repeat Taskとアンパンマン

一般ユーザーには使えませんが、Repeat Task更新。
昼食の予定を夜に表示しても仕方ないのです。
10日にしかできないことを9日に表示しても仕方ないのです。
今できるタスクを管理するんだから、今できないことは非表示にする、そういう機能を作りました。

アンパンマン映画前売り券確保。
前売り特典のリュックも一応もらいました。

Repeat Task

インターバル系タスクの並び順や見た目を少し整えました。
特に期限などはなく急ぎもしないので、優先度低そうな感じで後ろのほうで余りものっぽくしています。

AccessAnalyzer

自分で使っているアクセス解析のプログラムをライブラリとして切り出してみました。
特定のプログラム用のを無理やり切り出しただけだからあまりしっかりとしたものではないですが、自作プログラム間で融通できるようにと考えて。
一応、GitHubにもおいています。

あと、Repeat Taskにインターバル系タスクを実装。
こっちも自分用のプログラムですが、期限を定めずたまにやるような、そして一度やったらしばらくはやらなくていいタスクを作れます。

Repeat Task

自分一人用で一般公開はしていないけど、作ってみました。
毎日はもちろんのこと、毎週や毎月、月内の第何週目とかも指定できるようにしました。

<前