demodorinomemo

ヲタクのメモ

Hello! Project公式サイトのツアー情報からGoogleカレンダーに簡単に登録したい

前回は単発イベントを追加するためのブックマークレットを作りました

Hello! Project公式サイトのイベント情報からGoogleカレンダーに簡単に登録したい - みにしげさゆみさんへ

今回はコンサートツアーのページにGoogleカレンダーへイベントを追加するブックマークレットです。

PC環境のGoogleChromeとIE11で動作確認しました。FireFoxも多分大丈夫だと思います*1
モバイル環境だとandroid機とiPhone(SafariGoogleChrome)で動作確認しましたが、ブラウザのGoogleカレンダーがモバイル表示だと動作しないのでPCサイト表示にしないと駄目っぽいです

javascript:(function(){var calT=document.getElementsByTagName('h2')[1].innerText;var trl=document.getElementsByTagName('tr');for(i=1;i<trl.length;i++){var gcal=document.createElement('a');var trNode=trl[i].children;var cD=trNode[0].innerText.replace(/\(.+\)/gi,'').split('/');var cH=trNode[3].innerText.replace(/:/gi,'')+ '00';var cL=trNode[1].innerText.replace(/終了 /gi,'');var calD=new Date().getFullYear() + ('0'  + cD[0]).slice(-2) + ('0'  + cD[1]).slice(-2) + 'T' + cH;calD=calD + '/' + calD;gcal.href='https://www.google.com/calendar/render?action=TEMPLATE&text=' + calT + '&dates=' + calD + '&location=' + cL + '&details=' + document.URL;gcal.innerText=trNode[0].innerText;trNode[0].innerText='';trNode[0].appendChild(gcal);};})();

上のコードをコピーするか、下のリンクをお気に入りに追加すると使えます

ツアー日程をGoogleカレンダーに追加

FireFox

ツアー日程をGoogleカレンダーに追加(for FireFox)

使い方

f:id:dmdr0713:20150312223337p:plain
ツアー日程のページで実行すると
f:id:dmdr0713:20150312223407p:plain
日程の部分がリンクに置き換わるのでリンクを開くと
f:id:dmdr0713:20150312223500p:plain
Googleカレンダーのイベント追加のページに移動します。
開始時間と終了時間共に開演時間になるので終了時間は必要であれば各々で修正してください。
イベント追加のページに自動で入る部分は、ツアータイトル・日時・開演時間・公演場所・ツアーページのURLです。

開演時間じゃなくて開場時間が良いという場合はtrNode[3]の部分をtrNode[2]にすると良いと思います。その他自分の好きなように弄って下さい。

追記2015/03/13 0:54



キャスパーさんからアドバイス頂いたので反映。日付の修正はしました。FireFoxは分岐が面倒なので別途作りました↓
FireFox

javascript:(function(){var calT=document.getElementsByTagName('h2')[1].textContent;var trl=document.getElementsByTagName('tr');for(i=1;i<trl.length;i++){var gcal=document.createElement('a');var trNode=trl[i].children;var cD=trNode[0].textContent.replace(/\(.+\)/gi,'').split('/');var cH=trNode[3].textContent.replace(/:/gi,'')+ '00';var cL=trNode[1].textContent.replace(/終了 /gi,'');var calD=new Date().getFullYear() + ('0'  + cD[0]).slice(-2) + ('0'  + cD[1]).slice(-2) + 'T' + cH;calD=calD + '/' + calD;gcal.href='https://www.google.com/calendar/render?action=TEMPLATE&text=' + calT + '&dates=' + calD + '&location=' + cL + '&details=' + document.URL;gcal.textContent=trNode[0].textContent;trNode[0].textContent='';trNode[0].appendChild(gcal);};})();

終わり

*1:FireFoxだとinnerTextが使えないとのアドバイスを頂きました