Misskey.ioにノートするためのbookmarklet

ツイ廃の @riocampos ですw しかしとうとうツイ廃から離れる日が来てしまったようです。

Twitterでは日記にならなくなった

残念な事に TwitterAPI が有料化され、その影響で、私の Twitter ライフにとてもとても重要であった Twilog がサービス停止に追い込まれました。このため、 Twitter から Misskey.io への移行を行っております。 Mastodon でも良かったのですがなんとなく Misskey にしました。行き先は りおかんぽす (@riocampos) | Misskey.io です。Misskey や Mastodon など ActivityPub 対応の SNS からは @riocampos@misskey.io で検索してもらえれば見つかります。

そして日記目的には notestock を使います。ありがたやありがたや。

bookmarkletが欲しい

実は Misskey 投稿*1専用の bookmarklet が無くても、サイトのタイトルと URL を抜き出す別の bookmarklet を使っているので問題は無いのですが、なんとなく作っておくと便利かなと思って調べてみました。

参考:見ているページをFedibirdへシェアするJavascriptブックマークレット – momo+

Misskey じゃなく Mastodon の一種の Fedibird への bookmarklet ですが、これはおそらく Twitter 向けの bookmarklet をチョコっといじっただけですね。見覚えある Javascript です。

きっと Misskey もコレと同じく .../share?... とかでノートできるようになってるんじゃね?

調べたらその通りでしたw

Misskey Webの/shareを開くと、共有用の投稿フォームを開くことができます。この共有フォームを利用すると、外部のWebページから、ページの内容をユーザーにMisskeyで共有してもらいたいときに便利です。

共有フォーム | Misskey Hub

ってことで今まで使っていた Twitter 向け bookmarklet を見てみます。たしか Twitter サイトのどこかで配布してたと思うのですが、いま軽く検索しても見当たらなかったのでまあ問題ないでしょうw

javascript:(function(s,e){open("https://twitter.com/intent/tweet?original_referer=javascript:close&text="+e(document.title)+"&url="+e(location.href),"_blank","width=550,height=420,left="+(s.availLeft+s.availWidth/2-275)+",top="+(s.availTop+s.availHeight/2-210));})(screen,encodeURIComponent)

こいつをいじります。 https://twitter.com/intent/tweet? の部分を https://misskey.io/share? にしただけですw

そのまま改変版(タイトル\nURL):

javascript:(function(s,e){open("https://misskey.io/share?original_referer=javascript:close&text="+e(document.title)+"&url="+e(location.href),"_blank","width=550,height=420,left="+(s.availLeft+s.availWidth/2-275)+",top="+(s.availTop+s.availHeight/2-210));})(screen,encodeURIComponent)

ちゃんと動作します。なのでこれで良しw

と思ったのですが、これだとサイトのタイトルと URL との間が改行されてしまうことに気付きました。個人的には改行せず半角スペースで繋ぐように習慣づけているので、ちょっと改変します。

修正版(タイトル URL):

javascript:(function(s,e){open("https://misskey.io/share?original_referer=javascript:close&text="+e(document.title)+"%20"+e(location.href),"_blank","width=550,height=420,left="+(s.availLeft+s.availWidth/2-275)+",top="+(s.availTop+s.availHeight/2-210));})(screen,encodeURIComponent)

これでなお良し。

なおこの bookmarklet は Misskey.io 用になってますが、他の Misskey で使うときには https://misskey.io/ の部分をそれぞれの Misskey の URL に変更するだけで OK だと思います(未検証ですが大丈夫でしょう)。

おまけ:サイトのタイトルと URL を抜き出す別の bookmarklet

こんなヤツです。 iPhoneSafari ではこちらを使ってます。すっごく単純です。

javascript:window.prompt('',document.title +' '+ location.href);void(0);

もしくは ';+ を URL エンコードしたものでも良いでしょう。全く同じ動作をしますので可読性の面からは↑をオススメしたいです。

javascript:window.prompt(%27%27,document.title%20%2B%27%20%27%2B%20location.href)%3Bvoid(0)%3B

*1:Twitter での「ツイート」、Misskey では「ノート(note)」というそうな。