Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

【提案】ブックマークレット置き場 #134

Closed
1 task done
KEINOS opened this issue Sep 12, 2018 · 6 comments
Closed
1 task done

【提案】ブックマークレット置き場 #134

KEINOS opened this issue Sep 12, 2018 · 6 comments

Comments

@KEINOS
Copy link
Member

KEINOS commented Sep 12, 2018

この提案は急ぎではありません。この issue は Qiita墓場と 新着 Qiita 記事のトゥート(&墓場に保存)の機能が済んでから進めたいと思いますが、それまでのブレスト&覚書としてアップしました。

提案(TL;DR)

Qiita/Qiitadon 専用のブックマークレット置き場の設置

TS;DR

理由

昨今の Qiitadon における Qiita のスパム記事に対するムーブメントにおいて、 @alice1017 さんのブックマークレット公開を機に動きがありました。

Qiita/Qiitadon を Better Place にする」という Google にも負けない崇高なサークル活動の銘において、これらを取りまとめてはいかがでしょう。

方法

javascript 平文をリポジトリに置いたら、https://qithub.tk/tools/bookmarklet/ などで一覧表示させ、そこからブックマークバーにドラッブ&ドロップで使えるものにしたいです。

イメージとしては、以下の paiza.IO に置いてある「このページをトゥート」ブックマークレットのような感じ。

https://paiza.io/projects/h21KPTgHM3Xo5-pbQMIrRw

現在、ざっと見て認識している範囲でのブックマークレットは以下の通り。(まだまだありますが、、)

1. 現在見ているQiita記事を一発でスパム通知するブックマークレット by @alice1017 - 出典: https://qiitadon.com/@alice1017/100710242497017014
javascript:(function(){f=document.getElementById("new_public_issue_report");f.elements["public_issue_report[reason]"].value="spam";f.submit();})();

2. 現在見ているWebサイトのURL+タイトル+選択テキストの引用をトゥートするブックマークレット by @KEINOS
  • 動作確認:Chrome 69.0.3497.81(Official Build, 64 ビット)@ macOS 10.13.6 HighSierra
javascript:(function()%7Bvar br%3D%27%5Cn%27%3Bvar CR%3D%27/%5Cr/g%27%3Bvar hr%3D"-".repeat(13)%3Bfunction breakLineWithFixWidth(s)%7Bvar reg%3Dnew RegExp("(.%7B"%2BparseInt(13)%2B"%7D)","g")%3Breturn s.replace(reg,"%241"%2Bbr)%7Dfunction getSelectedStringAsQuote()%7Bvar s%3D%27%27%3Bif(window.navigator.appName%3D%3D%27Microsoft Internet Explorer%27)%7Bs%3Ddocument.selection.createRange().text%7Delse%7Bs%3Dwindow.getSelection()%7Dif(!s%7C%7Cs%3D%3D%27%27)%7Bs%3D%27%27%7Delse%7Bs%3Ds%2Bbr%3Bs%3Ds.replace(CR,%27%27)%3Bif(!0)%7Bs%3DbreakLineWithFixWidth(s)%7Dvar l%3Ds.split(br)%3Bvar t%3D%27%27%3Bfor(var i%3D0%3Bi<l.length%3Bi%2B%2B)%7Bif(!(i%3D%3Dl.length-1%26%26l%5Bi%5D.length%3D%3D0))%7Bt%2B%3D%27> %27%2Bl%5Bi%5D.trim()%2Bbr%7D%7Ds%3Dt%7Dreturn s%7Dfunction makeComment()%7Bvar s%3DgetSelectedStringAsQuote()%3Bvar t%3Ddocument.title%3Bvar u%3Ddocument.URL%3Bs%3Ds%2Bbr%2B%27%27%2Bt%2B%27%27%2Bbr%2Bu%3Breturn s%7Dvar s%3DencodeURIComponent(makeComment())%3Bvar t%3D"https://qiitadon.com/intent/statuses/new%3Ftext%3D"%2Bs%3Bwindow.open(t,%27tooting%27,%27width%3D470,height%3D288%27)%7D)()%3B void(0)%3B

3. Qiitadon 内で選択した単語をWikipediaで検索するブックマークレット by @KEINOS
  • 出典:
  • 動作確認:Chrome 69.0.3497.81(Official Build, 64 ビット)@ macOS 10.13.6 HighSierra
javascript:(function%28%29%7Bconsole.log%28"-".repeat%2835%29%29%3Bconsole.log%28" Qiita Bookmarklet for Wikipedia Search"%29%3Bconsole.log%28" Ver. %24%7Bversion%7D"%29%3Bconsole.log%28" Latest ver see%3A %25o"%2C"%24%7Burl_original%7D"%29%3Bconsole.log%28"-".repeat%2835%29%29%3Bfunction camel2spsep%28str%29%7Bvar REGEXP_ONLYFIRST%3D"%5BA-Z%5D%5Ba-z%5D"%3Bvar REGEXP_REPTDCAPT%3D"%5BA-Z%5D%2B%24"%3Bseparator%3D"_"%3Bconsole.log%28"Camel to space%3A %25s"%2Cstr%29%3Breturn str.replace%28RegExp%28REGEXP_ONLYFIRST%2C%27g%27%29%2Cfunction%28match%29%7Breturn separator%2Bmatch%7D%29.replace%28RegExp%28REGEXP_REPTDCAPT%2C%27g%27%29%2Cfunction%28match%29%7Breturn separator%2Bmatch%7D%29.trim%28%29%7D%3Bfunction setStyle_Wiki%28obj%29%7Bobj.style.borderStyle%3D"solid"%3Bobj.style.borderColor%3D"rgb%2878%2C163%2C10%29"%3Bobj.style.marginBottom%3D"1em"%3Bobj.style.padding%3D"0.5em"%3Bobj.style.fontSize%3D"1em"%3Bobj.style.textAlign%3D"justify"%3Bobj.style.textJustify%3D"inter-ideograph"%7Dfunction getUrlWiki%28keyword%2Ccallback%29%7Bkeyword%3DencodeURIComponent%28keyword%29%3Bconsole.log%28%27URL created with keyword%3A %25s%27%2Ckeyword%29%3Breturn "https%3A%2F%2Fblog.keinos.com%2Fqiitadon%2Fwikipediaapi.php%3F"%2B"keyword%3D"%2Bkeyword%2B"%26output%3Djson%26callback%3D"%2Bcallback%7Dfunction pushJSON%28url%29%7Bconsole.log%28%27Requesting JSONP to URL%3A %25o%27%2Curl%29%3Bvar loadJson%3Ddocument.createElement%28%27script%27%29%3Bif%28url%3D%3D"final"%29%7BloadJson.innerText%3D"getJSON%28%29%3B"%7Delse%7BloadJson.src%3Durl%7DloadJson.type%3D%27text%2Fjavascript%27%3Bdocument.head.appendChild%28loadJson%29%7D%3Bvar keyword_raw%3D%27%27%3Bif%28window.navigator.appName%3D%3D%27Microsoft Internet Explorer%27%29%7Bkeyword_raw%3Ddocument.selection.createRange%28%29.text%7Delse%7Bkeyword_raw%3Dwindow.getSelection%28%29.toString%28%29%7Dif%28%21keyword_raw%7C%7Ckeyword_raw%3D%3D%27%27%29%7Bkeyword_raw%3DdecodeURIComponent%28location.pathname.replace%28%27%2Ftags%2F%27%2C%27%27%29%29%7Dvar wikiArea%3Ddocument.getElementById%28"wikipedia-wrapper"%29%3Bif%28%21wikiArea%29%7BwikiArea%3Ddocument.createElement%28"div"%29%3BwikiArea.id%3D%27wikipedia-wrapper%27%3BwikiArea.innerHTML%3D"<div id%3D%27wikipedia-title%27><%2Fdiv><div id%3D%27wikipedia-body%27><%2Fdiv>"%3Bvar snsArea%3Ddocument.getElementsByClassName%28"compose-form"%29%3BsnsArea%5B0%5D.parentNode.insertBefore%28wikiArea%2CsnsArea%5B0%5D.nextSibling%29%7Dvar wikiTitle%3Ddocument.getElementById%28%27wikipedia-title%27%29%3Bvar wikiBody%3Ddocument.getElementById%28%27wikipedia-body%27%29%3Bvar keyword_enc%3DencodeURIComponent%28keyword_raw%29%3Bvar keyword_uncml%3Dcamel2spsep%28keyword_raw%29%3Bvar keyword_captl%3Dkeyword_raw.charAt%280%29.toUpperCase%28%29%2Bkeyword_raw.slice%281%29%3BsetStyle_Wiki%28wikiArea%29%3BwikiTitle.style.fontWeight%3D"bold"%3BwikiTitle.style.paddingBottom%3D"0.5em"%3BwikiTitle.innerHTML%3D"検索用語:<span id%3D%27wikipedia-keyword%27>"%2Bkeyword_raw%2B"<%2Fspan>"%3BwikiBody.innerText%3D"データを読み込み中..."%3Bvar getJsonElement%3Ddocument.createElement%28%27script%27%29%3BgetJsonElement.innerText%3D"var isResultFound%3D%211%3Bfunction getJSON%28json%29%7Bconsole.log%28JSON.stringify%28json%2Cundefined%2C4%29%29%3Bconsole.table%28json%29%3Bvar wikiArea%3Ddocument.getElementById%28%5C"wikipedia-wrapper%5C"%29%3Bif%28wikiArea%29%7Bvar wikiTitle%3Ddocument.getElementById%28%5C"wikipedia-title%5C"%29%3Bvar wikiBody%3Ddocument.getElementById%28%5C"wikipedia-body%5C"%29%3Bvar wikiKeyword%3Ddocument.getElementById%28%5C"wikipedia-keyword%5C"%29%3Bvar keyword_raw%3DwikiKeyword.innerText%3Bvar keyword_enc%3DencodeURIComponent%28keyword_raw%29%3Bif%28json%29%7Bconsole.log%28%5C"Search result found%3A%25s%5C"%2Cjson%5B0%5D.title%29%3BwikiTitle.innerHTML%3D%5C"<div id%3D%27wikipedia-keyword%27>%5C"%2Bjson%5B0%5D.title%2B%5C"<%5C%2Fdiv>%5C"%3Bvar msg_Hit%3D%27%27%3Bvar wikiContent%3Djson%5B0%5D.body.split%28%27%5Cu3002%27%29.join%28%27%5Cu3002<br>%27%29%3Bmsg_Hit%2B%3D%5C"<div id%3D%27wikipedia-result%27>%5C"%3Bmsg_Hit%2B%3D%5C"<div id%3D%27wikipedia-content%27>%5C"%2BwikiContent%2B%27<%5C%2Fdiv>%27%3Bmsg_Hit%2B%3D%5C"<div>%5B<a href%3D%27https%3A%5C%2F%5C%2Fja.wikipedia.org%5C%2Fw%5C%2Findex.php%3Fsearch%3D%5C"%2Bkeyword_enc%2B%5C"%27 target%3D_blank>%5C"%2B%5C"Wikipedia%5Cu672c%5Cu5bb6%5Cu3067%5C"%2Bkeyword_raw%2B%5C"%5Cu3092%5Cu518d%5Cu691c%5Cu7d22%5Cu3059%5Cu308b<%5C%2Fa>...%5D<%5C%2Fdiv>%5C"%3Bmsg_Hit%2B%3D%5C"<div>%5B<a href%3D%27https%3A%5C%2F%5C%2Feow.alc.co.jp%5C%2F%5C"%2Bkeyword_enc%2B%5C"%27 target%3D_alc>%5C"%2Bkeyword_raw%2B%5C"%5Cu3092ALC%5Cu3067%5Cu8abf%5Cu3079%5Cu308b<%5C%2Fa>...%5D<%5C%2Fdiv>%5C"%3Bmsg_Hit%2B%3D%5C"<div>%5B<a href%3D%27http%3A%5C%2F%5C%2Fqiita.com%5C%2Fsearch%3Fq%3D%5C"%2Bkeyword_enc%2B%5C"%27 target%3D_qiita>%5C"%2Bkeyword_raw%2B%5C"%5Cu3092Qiita%5Cu3067%5Cu8abf%5Cu3079%5Cu308b<%5C%2Fa>%5D<%5C%2Fdiv>%5C"%3Bmsg_Hit%2B%3D%5C"<%5C%2Fdiv>%5C"%3BwikiBody.innerHTML%3Dmsg_Hit%7Delse%7Bconsole.log%28%5C"Search result NOT found%3A%25s%5C"%2Ckeyword_raw%29%3Bvar msg_NoHit%3D%27%27%3Bmsg_NoHit%2B%3D%5C"<div id%3D%27wikipedia-result%27>%5C"%3Bmsg_NoHit%2B%3D%5C"<div>WikipediaAPI%5Cu3067%5Cu306f%5Cu3001%5Cu3053%5Cu306e%5Cu7528%5Cu8a9e%5Cu306f%5Cu898b%5Cu3064%5Cu304b%5Cu308a%5Cu307e%5Cu305b%5Cu3093%5Cu3067%5Cu3057%5Cu305f%5Cu3002<%5C%2Fdiv>%5C"%3Bmsg_NoHit%2B%3D%5C"<div>%5B<a href%3D%27https%3A%5C%2F%5C%2Fja.wikipedia.org%5C%2Fw%5C%2Findex.php%3Fsearch%3D%5C"%2Bkeyword_enc%2B%5C"%27 target%3D_wikipedia>%5C"%2Bkeyword_raw%2B%5C"%5Cu3092Wikipedia%5Cu672c%5Cu5bb6%5Cu3067%5Cu8abf%5Cu3079%5Cu308b<%5C%2Fa>...%5D<%5C%2Fdiv>%5C"%3Bmsg_NoHit%2B%3D%5C"<div>%5B<a href%3D%27https%3A%5C%2F%5C%2Feow.alc.co.jp%5C%2F%5C"%2Bkeyword_enc%2B%5C"%27 target%3D_alc>%5C"%2Bkeyword_raw%2B%5C"%5Cu3092ALC%5Cu3067%5Cu8abf%5Cu3079%5Cu308b<%5C%2Fa>...%5D<%5C%2Fdiv>%5C"%3Bmsg_NoHit%2B%3D%5C"<div>%5B<a href%3D%27http%3A%5C%2F%5C%2Fqiita.com%5C%2Fsearch%3Fq%3D%5C"%2Bkeyword_enc%2B%5C"%27 target%3D_qiita>%5C"%2Bkeyword_raw%2B%5C"%5Cu3092Qiita%5Cu3067%5Cu8abf%5Cu3079%5Cu308b<%5C%2Fa>%5D<%5C%2Fdiv>%5C"%3Bmsg_NoHit%2B%3D%5C"<%5C%2Fdiv>%5C"%3BwikiBody.innerHTML%3Dmsg_NoHit%7D%7Delse%7Bconsole.log%28%5C"No wiki area created%5C"%29%7D%7D%3Bfunction getJSON_raw%28json%29%7Bif%28json%26%26%21isResultFound%29%7Bconsole.log%28%5C"Got a match with raw keyword.%5C"%29%3BgetJSON%28json%29%3BisResultFound%3D%210%7Delse if%28json%26%26isResultFound%29%7Bconsole.log%28%27Got a match with raw keyword but did not push.Bool is %210.%27%29%7Delse%7Bconsole.log%28%5C"No match with raw keyword.%5C"%29%7D%7Dfunction getJSON_enc%28json%29%7Bif%28json%26%26%21isResultFound%29%7Bconsole.log%28%5C"Got a match with enc keyword.%5C"%29%3BgetJSON%28json%29%3BisResultFound%3D%210%7Delse if%28json%26%26isResultFound%29%7Bconsole.log%28%27Got a match with enc keyword but did not push.Bool is %210.%27%29%7Delse%7Bconsole.log%28%5C"No match with enc keyword.%5C"%29%7D%7Dfunction getJSON_uncml%28json%29%7Bif%28json%26%26%21isResultFound%29%7Bconsole.log%28%5C"Got a match with uncml keyword.%5C"%29%3BgetJSON%28json%29%3BisResultFound%3D%210%7Delse if%28json%26%26isResultFound%29%7Bconsole.log%28%27Got a match with uncml keyword but did not push.Bool is %210.%27%29%7Delse%7Bconsole.log%28%5C"No match with uncml keyword.%5C"%29%7D%7Dfunction getJSON_captl%28json%29%7Bif%28json%26%26%21isResultFound%29%7Bconsole.log%28%5C"Got a match with captl keyword.%5C"%29%3BgetJSON%28json%29%3BisResultFound%3D%210%7Delse if%28json%26%26isResultFound%29%7Bconsole.log%28%27Got a match with captl keyword but did not push.Bool is %210.%27%29%7Delse%7Bconsole.log%28%5C"No match with captl keyword.%5C"%29%7D%7D"%3Bdocument.head.appendChild%28getJsonElement%29%3Bvar url_api_wiki_raw%3DgetUrlWiki%28keyword_raw%2C"getJSON_raw"%29%3Bvar url_api_wiki_enc%3DgetUrlWiki%28keyword_enc%2C"getJSON_enc"%29%3Bvar url_api_wiki_uncml%3DgetUrlWiki%28keyword_uncml%2C"getJSON_uncml"%29%3Bvar url_api_wiki_captl%3DgetUrlWiki%28keyword_captl%2C"getJSON_captl"%29%3BpushJSON%28url_api_wiki_raw%29%3BpushJSON%28url_api_wiki_enc%29%3BpushJSON%28url_api_wiki_uncml%29%3BpushJSON%28url_api_wiki_captl%29%3BpushJSON%28"final"%29%7D%29%28%29%3B

4. 現在表示している画像を、Google画像検索で検索するブックマークレット by @munierujp
javascript:location.href='https://www.google.co.jp/searchbyimage?image_url='+location.href;

目的(Future 案)

現在進行中の「新着 Qiita 記事の投稿 API」は QiiTime の API 同様に、API を叩くだけで最新 Qiita 記事の情報が JSON 形式で返ってきます。(裏ではトゥートしているのですが)

つまり、JSONP でデータを取得できれば、上記の 3 のブックマークレットを応用して、Qiitadon のデッドスーペースに情報を表示できるということでもあります。

これにより、「機能拡張 なくてもいいけど、あるとよりよい機能は?」にある「Qiitadon でサイネージ」が実現可能になるのですが、その前の布石としてブックマークレット置き場があれば、周知しやすいベースができるのではないか、と。

このサイネージに流せる情報は(JSON で吐き出せれば)無限大だと思います。BOT と API を増やせば良いだけ。

新着 Qiita 記事以外にも IT 記事のサイトの RSS を流したり、Qithub bot のフォロワーがブーストしたトゥートを流したり。

TL;DR(進捗・結論 2018/09/12 現在)

  • 審議中 ( ´・ω) (´・ω・) (・ω・`) (ω・` )

@munierujp
Copy link

現在表示している画像を、Google画像検索で検索するブックマークレット

これってQiita/Qiitadon関係ありませんが、何かと間違えていないでしょうか。
(全然コンテキストを把握してません)

@KEINOS
Copy link
Member Author

KEINOS commented Sep 13, 2018

これってQiita/Qiitadon関係ありませんが、何かと間違えていないでしょうか。 @munierujp

ああっ!言われてみればそうですね!
個人的に Qiita の記事や、 Qiitadon でボケ(ネタ探し)する時に使わせてもらっていたので、それ系と勝手に重いコンダラでした!

Qiitadon ユーザーが作ったブックマークレット置き場の作成という形にしたいのですが、、掲載すると迷惑ですか?「ちょっと、、、」であれば、まったく問題ないので速攻で削除いたします!

@munierujp
Copy link

いえいえ、何か面白いことに使っていただけるのであればなによりです 😎

@KEINOS
Copy link
Member Author

KEINOS commented Oct 14, 2018

本件ですが、Qiita 記事にブックマークを取りまとめて、Qithub の共有Qiita記事 として置くだけでも良いのでは?と思ってきました。 > @hidao80 @alice1017

@hidao80
Copy link
Member

hidao80 commented Oct 14, 2018

確かにそうですね。👍
munierujp さんのコードを内包する必要もなくなりますし、プロジェクトの肥大化を防ぐという名目でも有効であると考えます。
Qiita / Qiitadon 内で解決できるのであれば、GitHub をかます必要はないでしょう。

Qiita 記事にブックマークレットを取りまとめるに👍

同意であれば、意思表示と Issue の Close をお願いします。> @alice1017

@alice1017
Copy link
Member

@KEINOS @hidao80
Qiita記事作成に同意です 👍
本issueをクローズさせて頂きます。 🙏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants