您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Skrypt dodający na Mikroblogu Wykop.pl przycisk pozwalający na ukrywanie wpisów.
// ==UserScript== // @name Mirkoukrywacz // @namespace wykophidepost // @version 1.0.4 // @description Skrypt dodający na Mikroblogu Wykop.pl przycisk pozwalający na ukrywanie wpisów. // @author zranoI // @include /^https?:\/\/.*wykop\.pl\/mikroblog.*/ // @grant none // ==/UserScript== function getCookie(name) { if (document.cookie.length <= 0) { return ""; } var start = document.cookie.indexOf(name + "="); if (start === -1) { return ""; } start += name.length + 1; var end = document.cookie.indexOf(";", start); if (end === -1) { end = document.cookie.length; } return unescape(document.cookie.substring(start, end)); } function createCookie(name, value, days) { var expires; if (days) { var date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); expires = "; expires=" + date.toGMTString(); } else { expires = ""; } document.cookie = name + "=" + value + expires + "; path=/"; } function isListEmpty(list) { var listIsEmpty = true; $.each(list, function (index, value) { if (value !== "") { listIsEmpty = false; return; } }); return listIsEmpty; } function createUnhideListItemCode(postId) { var htmlCode = '<li id="unhide-list-item-' + postId + '"><b>'; htmlCode += '<a style="width: 65%; display: inline-block; border-bottom: none !important;" href="http://www.wykop.pl/wpis/' + postId + '">' + postId + '</a>'; htmlCode += '<a style="text-align: right; width: 35%; display: inline-block; border-bottom: none !important; cursor: pointer;" id="unhide-post-' + postId + '">usuń</a>'; htmlCode += '</b></li>'; return htmlCode; } function createUnhideMenu(unhideAllId) { var htmlCode = '<div id="unhide-menu-dropdown" class="dropdown m-hide" style="margin-left: -40px; width: 200px; display: none;"><div><ul>'; htmlCode += '<li><a style="text-align: center; cursor: pointer;" id="' + unhideAllId + '">Wyczyść ukryte</a></li>'; htmlCode += '<li><a style="text-align: center; cursor: pointer;" href="http://www.wykop.pl/dodatki/pokaz/867">O skrypcie</a></li>'; htmlCode += '</ul>'; htmlCode += '<ul id="unhide-menu-list" style="max-height: 200px;">'; var hiddenIdsWithDates = getCookie("hidden_ids").split(","); if (isListEmpty(hiddenIdsWithDates)) { hiddenIdsWithDates = []; } hiddenIds = getHiddenIdsFromCookieList(hiddenIdsWithDates); $.each(hiddenIds, function (key, value) { htmlCode += createUnhideListItemCode(value); }); htmlCode += '</ul></div></div>'; var unhideMenu = $(htmlCode); unhideMenu.hover(function () { clearTimeout(window.hovertimeout); }, function () { window.hovertimeout = setTimeout(function () { unhideMenu.hide(); }, 500); }); return unhideMenu; } function removeUnhideButtonsForId(postId) { if ($("#unhide-menu-list li:last-child").attr('id') === "unhide-list-item-" + postId) { window.hovertimeout = setTimeout(function () { $("#unhide-menu-dropdown").hide(); }, 500); } $("#unhide-list-item-" + postId).remove(); $("#undo-button-" + postId).remove(); } function unhidePostWithId(id) { var post = $("div.dC[data-id=" + id + "]").parent(); post.css("display", ""); } function unhideAll() { var hiddenIdsWithDates = getCookie("hidden_ids").split(","); if (isListEmpty(hiddenIdsWithDates)) { hiddenIdsWithDates = []; } hiddenIds = getHiddenIdsFromCookieList(hiddenIdsWithDates); $.each(hiddenIds, function (key, value) { unhidePostWithId(value); removeUnhideButtonsForId(value); }); createCookie("hidden_ids", "", 1); } function unhidePost(postId) { unhidePostWithId(postId); var hiddenIdsWithDates = getCookie("hidden_ids").split(","); if (isListEmpty(hiddenIdsWithDates)) { hiddenIdsWithDates = []; } var hiddenIds = getHiddenIdsFromCookieList(hiddenIdsWithDates); var postIdAndDate = ""; $.each(hiddenIdsWithDates, function(index, value) { if (value.startsWith(postId)) { postIdAndDate = value; return false; } }); hiddenIdsWithDates.splice(hiddenIdsWithDates.indexOf(postIdAndDate), 1); createCookie("hidden_ids", hiddenIdsWithDates.join(","), 1); } function addUnhideMenuButtonClickHandler(button) { button.click(function () { var postId = /unhide\-post\-(\d+)/.exec($(this).attr('id'))[1]; unhidePost(postId); removeUnhideButtonsForId(postId); }); } function addMainScriptButton() { var listItem = $('<li>'); var button = $('<a style="cursor: pointer;">Mirkoukrywacz</a>'); var unhideAllId = "unhide-all-button"; var unhideMenu = createUnhideMenu(unhideAllId); button.click(function () { unhideMenu.show(); }); button.hover(function () { clearTimeout(window.hovertimeout); }, function () { window.hovertimeout = setTimeout(function () { unhideMenu.hide(); }, 500); }); listItem.append(button); listItem.append(unhideMenu); $("ul.mainnav").children().last().after(listItem); $("#unhide-all-button").click(unhideAll); $("a[id^=unhide-post]").each(function () { addUnhideMenuButtonClickHandler($(this)); }); } function addUndoButtonClickHandler(button, postId, post) { button.remove(); $("#unhide-list-item-" + postId).remove(); var hiddenIdsWithDates = getCookie("hidden_ids").split(","); if (isListEmpty(hiddenIdsWithDates)) { hiddenIdsWithDates = []; } hiddenIdsWithDates.splice(hiddenIdsWithDates.indexOf(postId), 1); post.css("display", ""); createCookie("hidden_ids", hiddenIdsWithDates.join(","), 1); } function getHiddenIdsFromCookieList(hiddenIdsWithDates) { var hiddenIds = []; $.each(hiddenIdsWithDates, function(index, value) { hiddenIds.push(value.split("|")[0]); }); return hiddenIds; } function hideButtonClickHandler(postId, addUndo) { triggerLazyLoad(); var post = $("div.dC[data-id=" + postId + "]").parent(); if (addUndo) { var undoButton = $('<li id="undo-button-' + postId + '" style="width: 100%;" class="button">Cofnij ukrycie</li>'); undoButton.click(function() { addUndoButtonClickHandler($(this), postId, post); }); post.after(undoButton); } else { $('html, body').animate({ scrollTop: post.offset().top - 50 }, 0); } post.css("display", "none"); $("#unhide-menu-list").append($(createUnhideListItemCode(postId))); addUnhideMenuButtonClickHandler($("#unhide-post-" + postId)); var hiddenIdsWithDates = getCookie("hidden_ids").split(","); if (isListEmpty(hiddenIdsWithDates)) { hiddenIdsWithDates = []; } var hiddenIds = getHiddenIdsFromCookieList(hiddenIdsWithDates); if (hiddenIds.indexOf(postId) === -1) { hiddenIdsWithDates.push([postId, Date.now() / 1000 / 60 / 60 / 24].join("|")); } createCookie("hidden_ids", hiddenIdsWithDates.join(","), 1); } function addTopHideButtons() { $(".entry.iC > div.dC").each(function () { var postId = $(this).attr("data-id"); var topButton = $('<button class="button mikro" style="margin-left: 5px;">Ukryj wpis</button>'); topButton.click(function () { return hideButtonClickHandler(postId, true); }); $(this).find("div > .author.ellipsis").children().eq(2).after(topButton); }); } function addBottomHideButton(postBodyDiv) { var bottomButton = $('<button class="button mikro" style="margin-left: 10px; margin-bottom: 10px;">Ukryj wpis</button>'); bottomButton.click(function () { return hideButtonClickHandler(postBodyDiv.attr("data-id"), false); }); postBodyDiv.siblings().last().after(bottomButton); } function triggerLazyLoad() { $("img").each(function() { $(this).attr("src", $(this).attr("data-original")); }); } function removeOldCookieElements(hiddenIdsWithDates) { var newHiddenIdsWithDates = []; $.each(hiddenIdsWithDates, function (index, value) { var date = value.split("|")[1]; if (Date.now() / 1000 / 60 / 60 / 24 - date < 1) { newHiddenIdsWithDates.push(value); } }); return newHiddenIdsWithDates; } function addShowMoreCommentsClickHandler() { $("p.more > a").click(function() { addBottomHideButton($(this).parent().parent().siblings().eq(0)); }); } $(document).ready(function () { var hiddenIdsWithDates = getCookie("hidden_ids").split(","); hiddenIdsWithDates = removeOldCookieElements(hiddenIdsWithDates); createCookie(createCookie("hidden_ids", hiddenIdsWithDates, 1)); if (hiddenIdsWithDates.indexOf("") === -1) { var hiddenIds = getHiddenIdsFromCookieList(hiddenIdsWithDates); $.each(hiddenIds, function (index, value) { $("div.dC[data-id=" + value + "]").parent().css("display", "none"); }); } triggerLazyLoad(); addMainScriptButton(); addTopHideButtons(); addShowMoreCommentsClickHandler(); });