您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Скрипт для Лепры, позволяющий видеть, добавлять и изменять заметки прямо в посте и на глагне
当前为
// ==UserScript== // @name UserNotes // @author Gipnokote // @version 1.11 // @namespace https://leprosorium.ru/* // @include https://*leprosorium.ru/* // @description Скрипт для Лепры, позволяющий видеть, добавлять и изменять заметки прямо в посте и на глагне // @license MIT // run-at document-end // ==/UserScript== unsafeWindow.getNote = function(user_id, user_login){ var userLinks = $$('div.ddi a.c_user[data-user_id='+user_id+']'); var userNotes = $$('div.ddi span.usernote_'+user_id); userNotes.destroy(); var noteRequest = new futuAjaxNew({ type : 'GET', button : document.createElement('div'), url : router.generate('user_note'), data : 'user_login=' + encodeURIComponent(user_login) + '&author_login=' + encodeURIComponent(globals.user.login), onLoadFunction : function (response) { if (response.user_notes && response.user_notes[0]) { userLinks.map(function injectNotes(userLink) { var userNote = document.createElement('span'); userNote.setAttribute('class', 'usernote_' + user_id); userNote.innerHTML = ', [<span style="color:green;cursor:pointer;" onClick="setUserNote('+response.user_notes[0].id+', \''+user_id+'\', \''+user_login+'\', \''+response.user_notes[0].body.replace(/"/g,'"')+'\'); return false;">'+response.user_notes[0].body+'</span>]'; userNote.inject(userLink, 'after'); }); } else { userLinks.map(function injectNotes(userLink) { var userNote = document.createElement('span'); userNote.setAttribute('class', 'usernote_' + user_id); userNote.innerHTML = ', [<span style="color:green;cursor:pointer;" onClick="setUserNote(null, \''+user_id+'\', \''+user_login+'\', \'\');">+</span>]'; userNote.inject(userLink, 'after'); }); } } }); }; unsafeWindow.setNote = function (id, user_id, user_login, note) { var type; var url; if (id) { type = 'PUT'; url = router.generate('user_note_set', { note_id : id }); } else { type = 'POST'; url = router.generate('user_note'); } var noteRequest = new futuAjaxNew ({ button: document.createElement("div"), type: type, url: url, headerContentType: 'application/json', data: JSON.stringify({user_login: user_login, body: note}), onLoadFunction : function (response) { getNote(user_id, user_login); } }); }; unsafeWindow.setUserNote = function (id, user_id, user_login, currentNote){ var z = prompt('Введите заметку:',currentNote); if (z!==null) { setNote(id, user_id, user_login, z); } }; function eliminateDuplicates(arr) { var hashTable = {}; return arr.filter(function (el) { var key = JSON.stringify(el); var match = Boolean(hashTable[key]); return (match ? false : hashTable[key] = true); }); } function chunk(arr, chunkSize) { if (chunkSize <= 0) return []; var R = []; for (var i=0,len=arr.length; i<len; i+=chunkSize) R.push(arr.slice(i,i+chunkSize)); return R; } var uids = eliminateDuplicates($$('div.ddi a.c_user').getProperties('data-user_id', 'data-user_login')); var uid_chunks = chunk(uids, 5); uid_chunks.map(function process(uid_chunk, index) { setTimeout(function() { uid_chunk.map(function process(uid) { getNote(uid['data-user_id'], uid['data-user_login']); }); }, index * 250); });