Skip to content

Instantly share code, notes, and snippets.

@YungSang
Last active August 29, 2015 13:56
Show Gist options
  • Save YungSang/8812722 to your computer and use it in GitHub Desktop.
Save YungSang/8812722 to your computer and use it in GitHub Desktop.
Taberareloo 用パッチ: pplog Bone Zapper / 骨リモコン
// ==Taberareloo==
// {
// "name" : "pplog Bone Zapper"
// , "description" : "Zapping pplog back and forth"
// , "include" : ["content"]
// , "match" : ["https://www.pplog.net/", "https://www.pplog.net/u/*"]
// , "version" : "0.2.0"
// , "downloadURL" : "https://gist.github.com/YungSang/8812722/raw/userscript.pplog.bone.zapper.tbrl.js"
// }
// ==/Taberareloo==
(function() {
var zapping = [].concat($X("//a[@href='/zapping']")).shift();
if (!zapping) {
return;
}
var poems = localStorage.getItem('poems');
poems = poems ? JSON.parse(poems) : [];
var poem_index = parseInt(localStorage.getItem('poem_index') || '0', 10);
var index = poems.indexOf(location.href);
if (index === -1) {
poems.push(location.href);
poem_index = poems.length - 1;
localStorage.setItem('poems', JSON.stringify(poems));
}
else {
poem_index = index;
}
localStorage.setItem('poem_index', poem_index);
document.addEventListener('keyup', function (ev) {
if (ev.currentTarget !== document) {
return;
}
if (ev.ctrlKey || ev.altKey || ev.shiftKey || ev.metaKey) {
return;
}
var poem;
switch (ev.keyCode) {
case 37: // left
poem = poems[poem_index - 1];
if (poem) {
localStorage.setItem('poem_index', poem_index - 1);
zapping.classList.add('clicked');
location.href = poem;
}
break;
case 38: // up
localStorage.removeItem('poem_index');
localStorage.removeItem('poems');
zapping.classList.add('clicked');
location.href = 'https://www.pplog.net/';
break;
case 39: // right
poem = poems[poem_index + 1];
if (poem) {
localStorage.setItem('poem_index', poem_index + 1);
zapping.classList.add('clicked');
location.href = poem;
}
else {
localStorage.setItem('poem_index', poem_index + 1);
zapping.classList.add('clicked');
location.href = 'https://www.pplog.net/zapping';
}
break;
}
});
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment