SDFイベント用ブックマークレット
ようやく都産貿浜松町館ができたので、うちから通える範囲で同人誌即売会がぼちぼちやるようになりました。
都産貿というと個人的にSDFのイベントかなと思うのですが、
(PiOだとケットコムっぽい)
SDFのサークルカット一覧が量が多いとちょっと見づらかったので。ブックマークレットを作ってみました。
WindowsのChromeでしか確認してませんが、たぶんMacとChromebookでも動くんじゃないかなあ。
これ使うイベント、ビッグサイトだわ……。
‘);$(“table”).each(function(){let html=$(“tr”,this).eq(0).find(“td”).html();let sp=html.split(“
“);let obj={};obj.circle=sp[0].trim();obj.genre=sp[1].trim();genre.push(sp[1].trim());obj.space=sp[2].trim();let author=$(“tr”,this).eq(0).find(“td”).eq(1).text();obj.author=author;let img=$(“tr”,this).eq(1).find(“td”).find(“img”).attr(“src”);obj.img=img;data.push(obj)});genre=Array.from(new Set(genre));genre.forEach(function(b,a){$genre.append(‘
“)});$genre.append(‘閉じる‘);data.forEach(function(b,a){data[a].genre_no=genre.indexOf(b.genre);let $col=$(‘
‘).append(“
“).append(“
“).append(“
“).append(“
“);if(null!=b.img){$col.append(‘‘).data(“obj”,data[a])}else{data[a].img=”./”;$col.append(‘‘).data(“obj”,data[a])}$col.wrapInner(“
“);$(“body p”).append($col)});$(“body p”).css({display:”flex”,”flex-wrap”:”wrap”});$(“table”).remove();$(“body”).prepend($genre);$(“h1”).after(‘表示中のチェックしたサークルをCSV形式でDL‘);$(“h1”).after(‘表示中のサークル全チェック / 全解除‘);$(document).on(“click”,”#genre input”,function(){$(“#genre input”).each(function(){if($(this).prop(“checked”)){$(‘p dl[data-genre=”‘+$(this).val()+'”]’).show()}else{$(‘p dl[data-genre=”‘+$(this).val()+'”]’).hide()}})}).on(“click”,”#genreBtn”,function(){if($(this).hasClass(“open”)){$(this).removeClass(“open”).addClass(“close”);$(this).siblings().hide();$(this).text(“開ける”)}else{$(this).removeClass(“close”).addClass(“open”);$(this).siblings().show();$(this).text(“閉じる”)}}).on(“click”,”dl”,function(){if($(this).hasClass(“chk”)){$(this).removeClass(“chk”);$(this).css(“background-color”,””)}else{$(this).addClass(“chk”);$(this).css(“background-color”,”#ff0″)}}).on(“click”,”#toggleChk”,function(){if($(this).hasClass(“chk”)){$(this).removeClass(“chk”).addClass(“remove”);$(“dl:visible”).removeClass(“chk”)}else{$(this).addClass(“chk”).removeClass(“remove”);$(“dl:visible”).addClass(“chk”)}$(“dl:visible”).trigger(“click”)}).on(“click”,”#dlChked”,function(){const c=”circle.csv”;let $circle=$(‘dl:visible[class=”chk”]’);let c_list=[[“イベント”,”スペース”,”サークル名”,”代表者”,”カットURL”,”URL”]];$circle.each(function(){let o=$(this).data(“obj”);let $c=$(““+o.circle+”“);let d=””;if(1===$c.children().length){$c=$c.find(“a”);d=$c.attr(“href”)}let img_url=o.img.replace(“./”,””);if(“”!==img_url){img_url=”https://sdf-event.sakura.ne.jp/mform/cutfile/”+img_url}let arr=[o.genre,o.space.replace(“SP-No.”,””),$c.text(),o.author,img_url,d];c_list.push(arr)});const f=c_list.map(function(g){return g.join(“,”)}).join(“\r\n”);const e=new Uint8Array([239,187,191]);const b=new Blob([e,f],{type:”text/csv”});const d=(window.URL||window.webkitURL).createObjectURL(b);const a=document.createElement(“a”);a.href=d;a.download=c;a.click();(window.URL||window.webkitURL).revokeObjectURL(d)});};document.body.appendChild(script);})();
使い方は
ブックマークにまんまコピペしてください。
もしくはテキストエリア内を全部コピーしてブックマークバーにD&Dしても入ると思います。
んでリストのページを開いて、
ブックマークレットを押してちょっとすると画面が書き換わります。
左上に出るのが今回のオンリーのジャンル一覧です。
邪魔かもしれないんで開閉できるようになってます。
適当に画面サイズに合わせてカラム数も変わるようになってます。
ジャンルのチェックの有無で表示数が変わります(これがやりたかっただけ)
サークル情報の適当なところを押すと色が変わってチェック状態になります。
この状態でCSVのDLボタンを押すとCSVが落ちてきます。
中身はこんな感じ
気になるサークルだけ抽出することも可能です。
サークルの全チェック/解除押すことで現在表示中のサークルのチェック状態を一括変更もできます。
基本的に【現在表示中のサークル情報】のチェックにしか作用しないので注意してください。
表示変えてJSで変更しているだけなので、
サイト内の情報をひたすらDLしてるとかそういう処理は一切してません。
画像も再読み込みしてないのでサイト自体にはリロード連発してるわけではないですが、
一応個人でお楽しみいただく範囲でということで。
運営側に怒られたら消します……。