「Twitter」に関する日記(5)

<前 次>

ドラゴンクエスト10とアンパンマンDBとみんなのタグ

ドラゴンクエスト10

ゲーム内資産5000万ゴールド突破。
レンダーヒルズまで折り返し地点です。
まあ、真面目に金策やっている人なら結構すぐ貯めちゃうらしいですが。

アンパンマンDB

Twitterのハッシュタグのページを更新
いよいよ映画公開が明日に迫ったということで、「#映画33作目も公開だし好きなアンパンマン映画を3つあげる」追加です。

キャラ「カマンベールくん」を追加
やっとカマンベール回見たので。

アンパンマンDB(みんなのタグ)

「逆引き編集」というアイディア。
現状は、記事を選んでから、タグが当てはまるかどうかを次々投票する仕組みですが、それとは逆に、最初に一つのタグを指定して、それに当てはまる記事・当てはまらない記事を次々選んでいくという考え方です。
具体例で言うと、「女」というタグを選んで、こいつは女だから「+」、こいつは男だから「-」と次々入れていく感じです。
検索に役立てるには、一人のデータが充実するより、みんなのデータが少しずつ出そろった方がいいですからね。

アンパンマンDBとPHPとVoidolとInternet Explorer

アンパンマンDB

Twitterのハッシュタグのページを更新
「アンパンマンポテト」を追加しました。
「アンパンマン」タグで検索していると、ちょくちょくおいしそうなポテトの写真が出てくるので。

PHP(Today I Learned)

PHP: プロパティ - Manual
プロパティ自体は昔から使っていたけど、8.1からはreadonlyが付けられます。
最初に代入した値以外に変更できなくして、想定外の変更によるバグを防ぐ、イミュータブルを実現できるというやつです。
で、もう一つ…

PHP: コンストラクタとデストラクタ - Manual
8.0から追加されたコンストラクタのプロモーション機能と組み合わせると、コンストラクタを書くだけで、最初にデータを全部受け取って保持するイミュータブルなクラスが簡単に書けてしまうというわけなのです。

まあ、今開発しているものは、ミュータブル(変更可能)なことに意味があるクラスなので、readonlyの方は使ってないのですが。
でも多分、今後どこかで必ず使うことになると思います。
…覚えていれば。

Voidol

Voidolを期間限定で無償配布します。PC Watch様にも取り上げていただきました。 | クリムゾンテクノロジー株式会社
ボイスチェンジャー、インストールしてみました。
私はあまり声出し配信とかしないのですが、VRChatをインストールしてたり、やっぱりたまには配信したくなるかもしれなかったりするし、そのときに地声から離れたらちょっとは抵抗感なくなるのかなと。
まだ試運転すらしていないですが、何かしら喋るネタでも探して試してみようかな。

Internet Explorer

IEはとっくにサポート終わってるわけですが、IEと一緒に使えなくなってしまったサイトが世の中にはいろいろとあったそうで、うちのサイトはどうなのか、というのを一応語っておこうと思います。

まず、そもそも当サイトTGWSは、Internet Explorerに対応していません。

一部のコンテンツ(具体的に言うとミディビ)だけは、IEにだけ残されたプラグイン機能に依存していましたが、そっちはそっちで、早々にプラグインの方がサポート外になったので、IEがサポートを続けようとももはや動きません。
このようなコンテンツは、歴史的な理由で残しているだけなので、今後も、特段の事情がない限りは、サポート外のまま残ります。

一方、ページ構成としては、一部を除き、JavaScriptやCSSが正常に機能しなくてもHTMLの基本的な機能だけで成り立つようになっています。
なので、IEでもそれ以外でも、何なら古いバージョンでも、多少崩れながらも意味が解る程度には表示できるかと思います。
おそらく、将来ブラウザが進化しても、それなりに表示できることでしょう。

なので、IEがサポート終了したことで、私のサイトが変わることはありませんし、移転や閉鎖の予定もありません。

美文のキャラ倉庫とTGWSAdmin

日記

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

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

TGWSAdmin

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

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

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

mifumitterと美文のキャラ倉庫

mifumitter

先日言っていた別の方法がうまくいきそうなので、通知画面の開き方をちょっと改良しました。
「別の方法」って言うのは、Windows ServerでTwitter開きっぱなしにしていたブラウザを、最小化せずに、目立たないところに置いておくことでした。
まあ、これが本当に有効なのかはまた時間が経ってみないとわかりませんけどね。

で、今それとは別のトラブルに見舞われていまして…。
mifumitterの検索では、その検索だけで有効な検索ミュートがあるのですが、ミュートした人数が増えると、検索結果を表示できずに落ちてしまうようになったのです。

美文のキャラ倉庫

2022年5月26日 – 美文のキャラ倉庫
キャラまたいっぱい追加しました。
まだ古いデータからのコピペが中心ですが、一部のキャラは軽く追記や構成変更を行っています。

Twitter

言ったそばからいらない通知が再発したので、ちょっと別の方法を試しています。

mifumitterと美文のキャラ倉庫

mifumitter

TGWSAdmin用に契約していたWindows Serverでブラウザの画面にTwitter開きっぱなしにしたら、あんなにもしつこかった何の通知にもなっていない無益な通知がぱったり来なくなったので、気楽に通知を見られる状況になり、以前削除していた公式の通知へのリンクを復活させました。

美文のキャラ倉庫

旧CharaBoxからデータ移行中。
構想だけは膨らみまくったBomber丸Worldのキャラクター数がすごいことになっていて、まだまだ記入が終わりません。
昔弟と共有していて追記されたものは取り除かないといけなかったり、単純に表記を修正したかったりして、自動的に移行するというわけにはいかないので、ほとんどコピペではありますが、手作業です。
これが終わったら、うちまとに書いた内容とのマージ作業、それから記事間のリンクの整備ですね。

星のドラゴンクエストとmifumitter

星のドラゴンクエスト

星のドラゴンクエスト | ゲーム記
ゲーム記のページ公開しました。
最初の星もクリアしないうちに、嫌になってやめちゃったんですよね…。
いいところ何も書いてないんですが、あれこれ書こうとすると、全部の要素悪く言ってしまいそうだったんで、抑えました。

mifumitter


検索画面作りました。
ほとんどホームタイムラインの流用でできると思っていたのですが、リツイートを除外するクエリが違っていて、少し時間がかかりました。

Search Tweets - How to build a query | Docs | Twitter Developer Platform
これも公式に書いてありましたね、「-is:retweet」です。
v1.1のころの「exclude:nativeretweets」よりわかりやすく短くなりました。

検索機能自体はこれでおおむね完成です。
あとは、元の画面でやっていた検索の保存とか、検索用ミュートユーザー機能を付けていくことになります。

アンパンマンDBと更新履歴とTwitter API

アンパンマンDB

予告通り、アニメの管理メモ消しました。

更新履歴

先日の問題とは別に、そもそもPHPCRSS自体がいまひとつだと思っているので、ちょっと根本的なところから作り直しを始めました。
カテゴリ複数所属とかをできるようにしようと思っています。

Twitter API

昨日言っていたいいね取得が動かない件、原因がわかりました。
古すぎるいいねは、新しいいいねに流されて、取得できなくなってしまうのです。
不本意ですが、正しい挙動のようです。
まあ、それを見越してv2のAPIによる別の方法も併用しているのですけどね。
永久ではありませんが、まだ当分はアンパンマンワンドロへの悪影響はない見込みです。

アンパンマンDBとドラゴンクエスト10

アンパンマンDB

影響がある人はほぼいないと思いますが、アニメDBの管理メモ項目消します。
もともと自分用のメモに使っていたのですが、その用途は個人メモという形で置き換えられましたし、その後も残っていた区分付きタイトルの表示も、そのための専用項目を設けたので、管理メモとしては不要になりました。

Twitter API

先日から集中的に作っていたmifumitterとは別件ですが、アンパンマンワンドロ用に使っているいいね取得のプログラムが連続でテスト失敗しています。
今のところ、ワンドロへの影響はなさそうですが、今後もテスト失敗し続けるようなら、条件を特定しないと、同じ条件を踏んだ人が参加できないことになりかねません。
一時的な不調なら、対応不要かもしれませんが、しばらく様子を見守ろうと思います。

ドラゴンクエスト10

竜王城の決戦・再演(2022/5/12)|目覚めし冒険者の広場
再演だ!
過去に使えた交換用アイテムは使えないようなので、過去取れなかったのを取り直すにも、新たに集め直す必要があるようです。
報酬は、なんか使いどころが見えてきませんが、まあ、集めるだけ集めてみたいですね。

新バトルコンテンツ『深淵の咎人たち』開戦! (2022/5/10更新)|目覚めし冒険者の広場
こっちはちょうど今日から開始らしかったけど、私は挑戦権すらなしでした。
バージョン3進めないと!

mifumitter

どうやら検索等でもリツイートの省略の扱いは同じようです。
というより、ツイートを返すAPI自体が、Twitter API v2ではリクエスト・レスポンスともにほぼ共通する形式を持っていて、APIの目的ごとに追加のパラメータを持っているだけのようです。
となると、リツイートのメディアの補完に対応した共通部品を作るという方向性がいいかな。

mifumitter

リツイートのメディアがうまく取れない問題に遭遇。
まずそもそもの前提として、リツイートには、リツイートそのもののデータと、リツイートされた元ツイートのデータが含まれます。
そのリツイートそのものの本文は、「RT @○○: 元ツイートの本文」という形式になっているのですが、先頭に付く「RT @○○: 」の分だけ本文が長くなって、元ツイートが一定以上長いと末尾から省略されてしまいます。
で、どうやらリツイートに添付するべきデータは、Twitter API v2では本文末尾に付加されるURLを元に特定しているようで、末尾省略が発生すると、URLが消えたり不完全になったりして、特定できなくなってしまうようなのです。
解決するには、末尾省略を検出して元ツイートのデータを改めてリクエストする…とかかなぁ。

mifumitterとドラゴンクエスト10

mifumitter

詳細表示できるようになったし次はホームライムラインを!…と思ったら、
What's the equivalent `1.1/statuses/home_timeline.json` in V2 - Twitter API / Twitter API v2 - Twitter Developers
どうにもstatuses/home_timelineに直接対応するAPIはv2にはない模様。
なんてこった。
やりたいのはツイート一つ一つの情報を最新フォーマットで取得することなので、ツイートIDをv1.1で取得して、そのIDを元に/2/tweets(複数のツイートをID指定で取得)を使えば何とかなりそうです。

ドラゴンクエスト10

飛行士のシャツセット
おきがえリポちゃん ~ 飛行士のシャツセット ~ (2022/4/21)|目覚めし冒険者の広場
毎月のあれ。
空飛ぶ奴の恰好みたいなことを言ってたから空飛んで写真撮りました。
写真置き場「2022-04-25」

第11回 アストルティア・クイーン総選挙 大予選会! (2022/4/25 更新)|目覚めし冒険者の広場
こっちの投票もとりあえずやっときました。
一日一キャラ一票ずつらしいけど、毎日やるかどうかは未定。
気が向いたらね。

mifumitterとドラゴンクエスト10

mifumitter

タイムラインや検索結果をTwitter API v2対応にする準備。
表示の方は、先日実装した個別表示を連続でやるだけなので、呼び出すAPIをv2にすればOK。
ただ、表示だけをv2に対応したいわけではなく、公式クライアントにない機能を付けたいので、それを想定した作りを目指しています。

それと、ツイートに埋め込まれた動画はAPIで取得できないようで、公式クライアントに飛ばすしかないのですが、公式クライアントが嫌いすぎるので、なるべく公式クライアント要素の少ない、動画部分だけに集中できる表示方法を探していました。
https://platform.twitter.com/embed/Tweet.html?id=1500068088980537348
ツイート自体の埋め込みURLです。
埋め込みURLはみんなに見せるためのページが出るので鍵垢には無力ですが、見たくなる動画を投稿する人ってだいたいオープンに活動しているので、鍵垢のときだけ例外的に普通のTwitterに飛ばしたら良さそう。
いや、mifumitterと公式クライアントでアカウントが違うこともあるから必ずしもうまくはいかないか…?

ドラゴンクエスト10

『ドラゴンクエストタクト』コラボイベント「おともだちを作るの!」 (2022/4/23)|目覚めし冒険者の広場
ドラクエタクトとのコラボイベントが28日から始まるみたいですね。
タクトの方はやる予定は今のところありませんが、10だけで10側の景品はもらえるようなので、問題はなさそうです。

mifumitterとアンパンマン日替わり紹介bot

mifumitter

今後やりたいことの多くに絡んでくる、ツイートの個別表示を作っています。
Twitter API v2ではデータ構造が大きく変わっているので、/2/tweets/:idのドキュメントを見ながら作っています。
投票やリプライ数なんかも取れるのが、v1よりいいところなんですよね。

アンパンマン日替わり紹介bot

画像の添付に失敗するとそのツイート自体に失敗する現象に遭遇。
ネットワーク系のエラーは必ずしもすぐ直るわけではないけれど、リトライ機構は入れておいた方がいいかもしれません。

TwitterLibとアンパンマン日替わり紹介bot

TwitterLib

mifumi323/twitter-lib - Packagist
うちのサイトで自作して使っている薄いラッパー、2年ぶりぐらいにアップデートしました。
サイト内ではちょくちょく機能追加してたんですが、一般公開用は全然だったので。

アンパンマン日替わり紹介bot

Twitter API v2が使えるようになった関係で、引用リツイート数もわかるようになったので、注目のツイートの計算方法を変えてみました。
Twitter公式で見えるリツイート数は公式RT+引用数なので、それに合わせた形です。
TwitterLibのアップデートは今回のことを見越してのことでしたが、諸々の都合で、結局TwitterLibの方は過去の更新だけを公開しました。

Twitter API

Standard search API | Docs | Twitter Developer Platform
GET /2/tweets/search/recent | Docs | Twitter Developer Platform
Twitterの検索API調べてました。
検索クエリの上限文字数を知りたかったのですが、一般ユーザー向けとしては、以下のように書いてありました。

バージョン1.1:500文字
バージョン2:512文字

で、「文字(characters)」って何なの?ってことで、実測したのが以下のツイート。


バージョン1.1ではバイト数単位のようで、バージョン2は12文字増えたと思いきや500バイトすら検索できない模様。
マルチバイト文字で500バイト前後のパターンも試してみるか…。

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

Twitter API v2

GET /2/tweets/:id | Docs | Twitter Developer Platform
Twitter API v2をいろいろ試していました。
投票とか引用とかは1.1になかった機能ですね。
私が使うのは大体自分専用のmifumitter向けになると思いますが、アンパンマンワンドロとか日替わり紹介botとかにも何かしら使えそうです。

ドラゴンクエスト10

ミフミンの海賊のクエストちょっとだけ進行。
お使いは滞りなく終わったけど、やっぱりきな臭い方向に動き出しました。

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

Twitter API

Twitter API v2開発準備してきました。
v1.1を利用中だと、審査なしで高度な方のElevated Accessが使えます。
で、

GET /2/tweets/:id/liking_users | Docs | Twitter Developer Platform
このAPIがアンパンマンワンドロのいいねチェックに使えないかなーって思って、試しているところです。

ドラゴンクエスト10

【2021再演】FFXIコラボイベント「シャントット博士来たる」
FF11コラボイベントの再演いつからだったかなと思ったら、とっくに始まっててもうすぐ終わりじゃないですか!!
新報酬があるのでその分だけでもやっておこう。

ちょうど今日始まったプリズランの方は、私の好みなイベントじゃないので、今回もパスの方向かな…。

<前 次>