見ている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));
})();
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));
})();
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));
})();
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));})();
コメント
コメントを投稿