見ているwebページの文章をマストドンでシェアするためのブックマークレット

 私には必要ないのだけど、ブラウザで見ているページの一部を引用して、ページタイトルとURLを含めてマストドンにシェアするためのブックマークレットがあれば良いと思う。でも、Twitterの時と異なり、個人が運営しているサーバーに対する負荷も気になる。だから、これまでは作ろうと思ってなかったのだけど、とりあえず、コードだけは残しておこうと思う。

 Twitterで同じようなことをする際にはシェア用のURLの後ろにシェアする文字列が連なっているURLにアクセスしていて、その為のブックマークレットは簡単に作れた。マストドンでも同じような方法でブックマークレットを作れるらしい。
 私が使っている"mastodon-japan.net"の場合は"https://mastodon-japan.net/share?text=~"の"~"に投稿したい文字列が入力されるようなブックマークレットを作れば良い。"fedibird.com"の場合は"https://fedibird.com/share?text=~"の"~"に投稿したい文字列が入力されるようなブックマークレットを作れば良い。
 それぞれのコードは次のとおりである。

mastodon-japan.netの場合
javascript:(function(){if(document.getSelection()!=''){window.open('https://mastodon-japan.net/share?text='+encodeURIComponent('"'+document.getSelection()+'"\n'+document.title+'\n')+encodeURIComponent(document.location.href));}else{window.open('https://mastodon-japan.net/share?text='+encodeURIComponent(document.title+'\n')+encodeURIComponent(document.location.href));};})();
fedibird.comの場合
javascript:(function(){if(document.getSelection()!=''){window.open('https://fedibird.com/share?text='+encodeURIComponent('"'+document.getSelection()+'"\n'+document.title+'\n')+encodeURIComponent(document.location.href));}else{window.open('https://fedibird.com/share?text='+encodeURIComponent(document.title+'\n')+encodeURIComponent(document.location.href));};})();
mstdn.jpの場合
javascript:(function(){if(document.getSelection()!=''){window.open('https://mstdn.jp/share?text='+encodeURIComponent('"'+document.getSelection()+'"\n'+document.title+'\n')+encodeURIComponent(document.location.href));}else{window.open('https://mstdn.jp/share?text='+encodeURIComponent(document.title+'\n')+encodeURIComponent(document.location.href));};})();

追記(2024/6/3)

Xのポストをマストドンでシェアするためのブックマークレット。

mastodon-japan.netの場合
javascript:(function(){
  function convertFormat(input){
    var regex=/(Xユーザーの)(.*)(さん: 「)(.*)(」 \/ )(X)(.*)/g;
    var match = regex.exec(input);
    var name=match[2];
    var quote=match[4];
    var output=`:x_twitter: ${name}さん\n「${quote}」\n`;
    return output;
  };
  window.open('https://mastodon-japan.net/share?text='+encodeURIComponent(convertFormat(document.title))+encodeURIComponent(document.location.href));
})();
fedibird.comの場合
javascript:(function(){
  function convertFormat(input){
    var regex=/(Xユーザーの)(.*)(さん: 「)(.*)(」 \/ )(X)(.*)/g;
    var match = regex.exec(input);
    var name=match[2];
    var quote=match[4];
    var output=`:x_twitter: ${name}さん\n「${quote}」\n`;
    return output;
  };
  window.open('https:://fedibird.com/share?text='+encodeURIComponent(convertFormat(document.title))+encodeURIComponent(document.location.href));
})();
mstdn.jpの場合
javascript:(function(){
  function convertFormat(input){
    var regex=/(Xユーザーの)(.*)(さん: 「)(.*)(」 \/ )(X)(.*)/g;
    var match = regex.exec(input);
    var name=match[2];
    var quote=match[4];
    var output=`:x_twitter: ${name}さん\n「${quote}」\n`;
    return output;
  };
  window.open('https:://mstdn.jp/share?text='+encodeURIComponent(convertFormat(document.title))+encodeURIComponent(document.location.href));
})();

追記(2024/6/5)

Xのポストをマストドンでシェアするためのブックマークレット。

fedibird.comの場合(改行を削除しない)
javascript:(function(){function convertFormat(input){var regex=/(Xユーザーの)(.*)(さん: 「)(.*)(」 \/ )(X)(.*)/gs;var match=regex.exec(input);var name=match[2];var quote=match[4];var output=`:x_twitter: ${name}さん\n"${quote}\n"\n`;return output;};window.open('https:://fedibird.com/share?text='+encodeURIComponent(convertFormat(document.querySelector('meta[property="og:title"]').content))+encodeURIComponent(document.location.href));})();

追記(2024/7/28)

Xのポストをマストドンでシェアするためのブックマークレット。

mastodon-japan.netの場合(改行を削除しない&タイムスタンプも追加;引用付きポスト対応、但しリプライの無いポストに限る)
javascript:(function(){function convertFormat(input){var regex=/(X%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%AE)(.*)(%E3%81%95%E3%82%93: %E3%80%8C)(.*)(%E3%80%8D \/ )(X)(.*)/gs;var match=regex.exec(input);var name=match[2];var quote=match[4];try{var timeElement=document.querySelectorAll('time')[1].textContent;}catch(error){var timeElement=document.querySelector('time').textContent;};var output=`:x_twitter: ${name}%E3%81%95%E3%82%93\n${timeElement}\n"${quote}\n"\n`;return output;};window.open('https:://mastodon-japan.net/share?text='+encodeURIComponent(convertFormat(document.querySelector('meta[property="og:title"]').content))+encodeURIComponent(document.location.href));})();

コメント