技術書典 6 のサークルチェックを楽にする

updated: 2019-03-23

まとめ

技術書典6のサークルチェックを楽にしたい.技術書典サークルチェッカー (https://seasidelab.github.io/tbf-circle/ ) というのがあった.
技術書典サークルチェッカーでつけたスターを,技術書典公式ページに反映したい.したいのでする.

詳細

  1. 技術書典サークルチェッカーを使ってサークルの概要をチェックする,気に入ったサークルにスターを付ける<
  2. 技術書典サークルチェッカーでスターを付けたサークル一覧データを得る<
  3. 一覧を技術書典の公式ページから入力する

上記処理の 2, 3 をブラウザのコンソールで実行できるようにした.

// サークルチェッカーのページで実行する https://seasidelab.github.io/tbf-circle/ // // サークルチェッカーでスターを付けたサークル一覧を取得 // => "{\"12345678\":\"12345678\",\"98765432\":\"98765432\"}" localStorage.getItem("star"); // これで取得した文字列を使う

サークルチェッカーで得た文字列をコピペする.

// 技術書典6のページでログインしてから実行する https://techbookfest.org/event/tbf06/circle // // 処理する時に使う wait ヘルパー let wait = function sleep(milliseconds) { return new Promise(resolve => setTimeout(resolve, milliseconds)); } (async function(){ // サークルチェッカーのページで取得してきたサークル一覧を入力する(Pasteする) let starList = Object.keys(JSON.parse(XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX)); console.log("start"); // 全サークルを取得 Array.prototype.slice.call(document.getElementsByClassName("circle-list-item-link")) // スターリストに入れているサークルだけ取得 .filter(circle => starList.includes(circle.getAttribute("href").split('/').slice(-1)[0])) // 技術書典のサークルチェックリストに入れるボタンを取得 .map( circle => circle .getElementsByClassName("circle-list-item-name")[0] .getElementsByTagName("button")[0]) // 既にスターを付けてるボタンを押すと toggle されてスターが外れるので,"追加"できるサークルだけにする .filter( btn => btn.getAttribute("mattooltip").includes("追加") ) // スターボタンを押す // 一応ちょっと wait 入れる .forEach(btn => { btn.click(); await wait(200); }); console.log("end") })();

Firefox 65.0.1 で実行した.
なお, wait 入れたりしてから動作確認してないので動くか不明