2015年8月4日火曜日

Janetterで自分あて@無しリプライをする

※今回はプラグインではなくJanetterの改造となります。 より慎重にお願いします。

さて、Janetterの登録アカウント数がTwitterの定める上限に達してから久しいですが、最近Twitter公式への複数画像の投稿機能、DMの文字数制限撤廃対応など最低限のメンテナンスはしてくれています。とてもありがたいです。

しかし1つ、Twitterの機能に追従していないことがあります。それが「自分あて@無しリプライ」です。Twitterは基本的に対応するユーザーの「@screen_name」が本文に入っていないとInReplyToが付きません。一昔前までは自分あてリプライでもそうだったと記憶していますが、最近(と言っても2年以上前ですが)、自分あてリプライに限ってその機能が撤廃されました。
それによって、140字で収まらないような長文ツイートをするときに、InReplyToを付けることによってよりわかりやすく一連のツイートを関連付けることができます。

さて、どうやるのかですが、これはJanetterの改造になります。ですが、とてもシンプルです。
Janetter4.3.1.0の場合ですが、

C:\Program Files (x86)\Janetter2\Theme\Common\js\janet\tweetedit.js

の540、541行目が該当するコードになっております。
if(self._replayId>0 && textarea.val().indexOf('@' + self._replayTo)==-1)
    self.removeReplyTo();

InReplyToが付いていて、かつそのscreen_nameがテキストボックスに含まれてなければReplyToを削除するようにできています。

ここに条件を加えてあげましょう。「さらに、そのscreen_nameが自分のアカウント名じゃなかったら」を追加することで想定した動作になります。
if(self._replayId>0 && textarea.val().indexOf('@' + self._replayTo)==-1 && self._replayTo.toLowerCase()!=self._account.screen_name.toLowerCase())
    self.removeReplyTo();

これだけで完成です。自分あてリプライのときに限って、InReplyToが削除されなくなりました。

おそらくこのファイルはJanetterの更新で入れ替えられますから(このファイル内でDM字数制限撤廃機能が実装されていますし)、そのたびに修正する必要が出てくるかと思います。 その場合、もちろん何行目かも変わってくる可能性がありますが、まあその辺は臨機応変に。

0 件のコメント:

コメントを投稿