このページを?る (Pawoo)
by
pacochi
2017-09-10 [2017/09/10 23:10:31]
今開いているページのタイトルと URL (と選択テキスト) を Pawoo でトゥートするためのウィンドウを開きます。
@@ -1,25 +1,52 @@
/*
* @title このページを?る
- * @description 今開いているページのタイトルと URL を pawoo.net でトゥートするための確認画面を開きます。
+ * @description 今開いているページのタイトルと URL (と選択テキスト) をマストドンでトゥートするためのウィンドウを開きます。
* @include *
* @license MIT License
* @javascript_url
*/
/*
-一行にしたの:
-void(open('https://pawoo.net/intent/statuses/new?text='+encodeURIComponent(document.title+'\n'+((document.querySelector('head meta[property="og:url"][content]')||{}).content||(document.querySelector('head link[rel="canonical"][href]')||{}).href||location.href))));
+https://github.com/tootsuite/mastodon/commit/c452e0b250c4484e2bbc3eed7fa65af8a473c301
+が本家に来た時用に拡張した。
+https://mstdn.maud.io/@hota/1686580
+コンフリクト起こってるらしい。
+*/
+
+((i, d = document, s = ('' + getSelection()).trim(), p) => {
+
+ f = e => {
+
+ open('https://' + (e.target ? e.target.textContent : e) + '/intent/statuses/new?text='
+ + encodeURIComponent(d.title + '\n' + (
+ // 元のコード: https://gist.github.com/noromanba/d730ccf3ae5e6916cd60
+ (d.querySelector('head meta[property="og:url"][content]') || {}).content ||
+ (d.querySelector('head link[rel="canonical"][href]') || {}).href ||
+ location.href
+ ) + (s.length ? `\n"${s}"` : '')));
+
+ if (p) d.body.removeChild(p);
-あえて canonical じゃない URL にしたい場合の:
-void(open('https://pawoo.net/intent/statuses/new?text='+encodeURIComponent(document.title+'\n'+location.href)));
+ };
+
+ if (i.length == 1) return f(i[0]);
+
+ p = d.body.appendChild(Object.assign(d.createElement('fieldset'), {
+ style: `background-color: white; position: fixed; z-index: ${Number.MAX_SAFE_INTEGER}; top: 0; bottom: 0; left: 0; right: 0; margin: auto; padding: 1em; width: 20em; height: ${i.length + 1}em;`
+ }));
+ i.forEach(n =>
+ p.appendChild(Object.assign(d.createElement('button'), {
+ textContent: n,
+ style: 'all: initial; background: silver; color: black; border:1px solid gray; display: block; margin: auto; height: 1em;'
+ })).addEventListener('click', f)
+ );
+
+})([
+/*
+ひとつまで減らすと選択肢出ずにそのまま窓が開く
*/
+'pawoo.net',
+//'mstdn.jp',
+//'friends.nico',
-void(open(
- 'https://pawoo.net/intent/statuses/new?text='
- + encodeURIComponent(document.title + '\n' + (
- // 元のコード: https://gist.github.com/noromanba/d730ccf3ae5e6916cd60
- (document.querySelector('head meta[property="og:url"][content]') || {}).content ||
- (document.querySelector('head link[rel="canonical"][href]') || {}).href ||
- location.href
- ))
-));
+]);
/*
* @title このページを?る
* @description 今開いているページのタイトルと URL (と選択テキスト) をマストドンでトゥートするためのウィンドウを開きます。
* @include *
* @license MIT License
* @javascript_url
*/
/*
https://github.com/tootsuite/mastodon/commit/c452e0b250c4484e2bbc3eed7fa65af8a473c301
が本家に来た時用に拡張した。
https://mstdn.maud.io/@hota/1686580
コンフリクト起こってるらしい。
*/
((i, d = document, s = ('' + getSelection()).trim(), p) => {
f = e => {
open('https://' + (e.target ? e.target.textContent : e) + '/intent/statuses/new?text='
+ encodeURIComponent(d.title + '\n' + (
// 元のコード: https://gist.github.com/noromanba/d730ccf3ae5e6916cd60
(d.querySelector('head meta[property="og:url"][content]') || {}).content ||
(d.querySelector('head link[rel="canonical"][href]') || {}).href ||
location.href
) + (s.length ? `\n"${s}"` : '')));
if (p) d.body.removeChild(p);
};
if (i.length == 1) return f(i[0]);
p = d.body.appendChild(Object.assign(d.createElement('fieldset'), {
style: `background-color: white; position: fixed; z-index: ${Number.MAX_SAFE_INTEGER}; top: 0; bottom: 0; left: 0; right: 0; margin: auto; padding: 1em; width: 20em; height: ${i.length + 1}em;`
}));
i.forEach(n =>
p.appendChild(Object.assign(d.createElement('button'), {
textContent: n,
style: 'all: initial; background: silver; color: black; border:1px solid gray; display: block; margin: auto; height: 1em;'
})).addEventListener('click', f)
);
})([
/*
ひとつまで減らすと選択肢出ずにそのまま窓が開く
*/
'pawoo.net',
//'mstdn.jp',
//'friends.nico',
]);
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。