您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Szybki podgląd notek
// ==UserScript== // @name Notatkowator 2000 // @namespace http://www.wykop.pl/ludzie/piokom123/ // @description Szybki podgląd notek // @author piokom123 // @version 1.3 // @grant none // @include http://www.wykop.pl/* // @include https://www.wykop.pl/* // @run-at document-end // ==/UserScript== // Ukłony dla @parasolki za nadanie dodatkowi tej boskiej nazwy ;) function main() { var loggedInNick = $('.logged-user .ellipsis span b').html(); var cacheCookieName = 'userNotesCache'; var cacheCookieExpirationName = 'userNotesCacheExpiration'; var cacheCookieMinutes = 15; var notes = {}; /** * Loads notes from cache or fetches them from website if cache doesn't exist or is invalid */ function loadNotes() { var cachedNotes = getData(cacheCookieName); if (typeof cachedNotes === 'undefined') { fetchNotes(); } else { notes = JSON.parse(cachedNotes); showNotes(notes); } } /** * Asynchronously fetches notes from website, saves it and shows */ function fetchNotes() { setTimeout(function() { $.ajax('https://www.wykop.pl/moj/notatki-o-uzytkownikach/') .done(function(data) { parseNotes(data); saveNotes(); showNotes(); }); }, 100); } /** * Parses user notes list HTML and returns as object */ function parseNotes(data) { notes = {}; $('#notesList li p', data).each(function(index, item) { notes[$('a b', item).html()] = parseNote(item.innerHTML); }); } /** * Parses HTML of one note */ function parseNote(content) { var parsedNote = ''; var match = content.split('</b></a>'); match = match[1].trim(); if (match.indexOf('|') === -1) { parsedNote = match; } else { match = match.split('|'); parsedNote = match[0]; } parsedNote = activateLinks(parsedNote); return parsedNote; } function activateLinks(content) { if (content.indexOf('http://') !== -1 || content.indexOf('https://') !== -1) { content = content.replace(/(https?:\/\/([^\s]+))/g, '<a href="$1" target="_blank">$1</a>'); } return content; } function saveNotes() { notesString = JSON.stringify(notes); saveData(cacheCookieName, notesString); } /** * Shows notes on website */ function showNotes() { $('.author .showProfileSummary b').each(function(index, item) { var nick = item.innerHTML.trim(); if (typeof notes[nick] !== 'undefined') { $(item.parentNode.parentNode).append('<span class="note2000 notesFor' + nick + '" style="padding-right: 55px; white-space: normal !important;">| ' + notes[nick] + '</span>'); } }); } /** * Gets data from local storage. Can return 'undefined' if data doesn't exist or is invalid. */ function getData(name) { if (typeof localStorage !== 'undefined') { var expirationCookie = getCookie(cacheCookieExpirationName); if (typeof expirationCookie === 'undefined') { return; } var data = localStorage.getItem(name); if (typeof data !== 'undefined' && data !== null && data !== '') { return data; } } } /** * Saves data to local storage and sets expiration cookie */ function saveData(name, value) { if (typeof localStorage !== 'undefined') { saveCookie(cacheCookieExpirationName, 'valid', cacheCookieMinutes); var data = localStorage.setItem(name, value); } } function getCookie(name) { var i, x, y, ARRcookies = document.cookie.split(";"); for (i = 0; i < ARRcookies.length; i++) { x = ARRcookies[i].substr(0,ARRcookies[i].indexOf("=")); y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1); x = x.replace(/^\s+|\s+$/g, ""); if (x === name) { return unescape(y); } } } function saveCookie(name, value, minutes) { var exdate = new Date(); exdate.setMinutes(exdate.getMinutes() + minutes); value = escape(value) + "; domain=.wykop.pl; path=/" + ((minutes===null) ? "" : "; expires=" + exdate.toUTCString()); document.cookie = name + "=" + value; } function addBlackListsStats() { jQuery(jQuery('.blackListForm')[0]).before( '<div style="width: 100%; padding: 25px; text-align: center">' + 'Osoby na #czarnolisto: <b>' + jQuery('div[data-type="users"] .usercard').length + '</b>' + ', w tym: <span class="color-2">bordo (<b>' + jQuery('div[data-type="users"] .color-2').length + '</b>)</span>' + ', <span class="color-1">pomarańczki (<b>' + jQuery('div[data-type="users"] .color-1').length + '</b>)</span>' + ', <span class="color-0">zielonki (<b>' + jQuery('div[data-type="users"] .color-0').length + '</b>)</span>' + ', <span class="color-1001">zbanowani (<b>' + jQuery('div[data-type="users"] .color-1001').length + '</b>)</span>' + ', <span class="color-1002">ragequity (<b>' + jQuery('div[data-type="users"] .color-1002').length + '</b>)</span>' + '<br />' + 'Tagi na #czarnolisto: <b>' + jQuery('div[data-type="hashtags"] .tagcard').length + '</b>' + '<br />' + 'Domeny na #czarnolisto: <b>' + jQuery('div[data-type="domains"] .tag').length + '</b>' + '</div>'); } function addNotesStats() { jQuery('#notesList').before( '<div style="width: 100%; padding: 25px; text-align: center">' + 'Wszystkie notatki: <b>' + jQuery('#notesList li').length + '</b>' + ', w tym o: <span class="color-2">bordo (<b>' + jQuery('#notesList .color-2').length + '</b>)</span>' + ', <span class="color-1">pomarańczkach (<b>' + jQuery('#notesList .color-1').length + '</b>)</span>' + ', <span class="color-0">zielonkach (<b>' + jQuery('#notesList .color-0').length + '</b>)</span>' + ', <span class="color-1001">zbanowanych (<b>' + jQuery('#notesList .color-1001').length + '</b>)</span>' + ', <span class="color-1002">ragequitach (<b>' + jQuery('#notesList .color-1002').length + '</b>)</span>' + '</div>'); } $(document).ready(function() { if (typeof loggedInNick === 'undefined') { return; } loadNotes(); $(document).on('DOMNodeInserted', function(e) { if ($('.author .showProfileSummary b', $(e.target)).length > 0) { var nodes = $('.author .showProfileSummary b', $(e.target)); for (var i = 0; i < nodes.length; i++) { node = $(nodes[i]); var nick = node.html().trim(); if (typeof notes[nick] !== 'undefined') { if ($('.note2000', node.parent().parent()).length != 0) { continue; } $(node.parent().parent()).append('<span class="note2000 notesFor' + nick + '" style="padding-right: 55px; white-space: normal !important;">| ' + notes[nick] + '</span>'); } } } }); if (document.location.href.indexOf('ustawienia/czarne-listy') !== -1) { addBlackListsStats(); } if (document.location.href.indexOf('moj/notatki-o-uzytkownikach') !== -1) { addNotesStats(); } }); } if (typeof $ == 'undefined') { if (typeof unsafeWindow !== 'undefined' && unsafeWindow.jQuery) { // Firefox var $ = unsafeWindow.jQuery; main(); } else { // Chrome addJQuery(main); } } else { // Opera >.> main(); } function addJQuery(callback) { var script = document.createElement("script"); script.textContent = "(" + callback.toString() + ")();"; document.body.appendChild(script); }