Created
June 14, 2012 14:42
-
-
Save poochin/2930761 to your computer and use it in GitHub Desktop.
Dashboard で一度見たポストを覚えて再度表示されないようにします
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // ==UserScript== | |
| // @name I've seen it in tumblr. | |
| // @match http://www.tumblr.com/dashboard* | |
| // @version 1.0.0 | |
| // @description 一度見たポストを表示しないようにさせます | |
| // | |
| // @author poochin | |
| // @license MIT | |
| // @updated 2012-06-14 | |
| // ==/UserScript== | |
| (function IveSeenItInTumblr() { | |
| var reblog_keys, | |
| enable; | |
| function postappended(post) { | |
| var reblog_key; | |
| reblog_key = post.querySelector('a.reblog_button').getAttribute('data-reblog-key'); | |
| if (reblog_keys[reblog_key]) { | |
| console.log('Delete:', post.getAttribute('id')); | |
| post.parentNode.removeChild(post); | |
| } | |
| else { | |
| reblog_keys[reblog_key] = 1; | |
| } | |
| } | |
| function appendToPosts(e) { | |
| if (enable == false) { | |
| } | |
| else if (e.target.nodeType == document.ELEMENT_NODE) { | |
| postappended(e.target); | |
| } | |
| } | |
| function init() { | |
| enable = localStorage.getItem('itintumblr_enable'); | |
| enable = (enable == null ? false : enable == 'true'); | |
| reblog_keys = localStorage.getItem('itintumblr_reblog_keys'); | |
| reblog_keys = (reblog_keys == null ? {} : JSON.parse(reblog_keys)); | |
| } | |
| function command_field() { | |
| var base, right_column, itintumblr, toggle_messages; | |
| toggle_messages = ['toEnable', 'toDisable']; | |
| base = [ | |
| '<fieldset id="itintumblr">', | |
| '<legend>I\'ve seen it in tumblr.</legend>', | |
| '<button class="enable_toggle_button"></button>', | |
| '<button class="save_button">Save</button>', | |
| '<button class="clear_button">Clear</button>', | |
| '</fieldset>'].join(''); | |
| right_column = document.querySelector('#right_column'); | |
| right_column.innerHTML += base; | |
| itintumblr = right_column.querySelector('#itintumblr'); | |
| itintumblr.querySelector('.enable_toggle_button').innerText = toggle_messages[enable + 0]; | |
| itintumblr.querySelector('.enable_toggle_button').addEventListener('click', function(e) { | |
| enable = !enable; | |
| localStorage.setItem('itintumblr_enable', enable); | |
| e.target.innerText = toggle_messages[enable + 0]; | |
| }, true); | |
| itintumblr.querySelector('.save_button').addEventListener('click', function(e) { | |
| localStorage.setItem('itintumblr_reblog_keys', JSON.stringify(reblog_keys)); | |
| }, true); | |
| itintumblr.querySelector('.clear_button').addEventListener('clear', function(e) { | |
| localStorage.removeItem('itintumblr_reblog_keys'); | |
| reblog_keys = {}; | |
| }, true); | |
| } | |
| function main() { | |
| init(); | |
| command_field(); | |
| document.querySelector('#posts').addEventListener('DOMNodeInserted', appendToPosts, true); | |
| if (enable) { | |
| Array.prototype.slice.call(document.querySelectorAll('#posts > li.post:not(.new_post)')).map(postappended); | |
| } | |
| } | |
| function isExecPage() { | |
| if (/^https?:\/\/[^\/]+\/.*/.test(location) /* for Opera */) { | |
| return true; | |
| } | |
| } | |
| if (window.document.body) { | |
| if (isExecPage() /* for Opera */) { | |
| main(); | |
| } | |
| } | |
| else { | |
| window.document.addEventListener('DOMContentLoaded', main, false); | |
| } | |
| })(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment