Skip to content

Instantly share code, notes, and snippets.

@Xitsa
Created January 15, 2021 08:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Xitsa/868755da6176d9a9e98de2a14b5a63bd to your computer and use it in GitHub Desktop.
Save Xitsa/868755da6176d9a9e98de2a14b5a63bd to your computer and use it in GitHub Desktop.
Vote reset bookmark
javascript:(function() { if (document.querySelector('.vote_reset_button')) { console.error('Lepra vote reset buttons already there on this page'); return; } var divs = document.querySelectorAll('.vote'); var sid = null; var uid = null;if (document.cookie.match(/uid=([0-9]+)(;|$)/)) { uid = RegExp.$1; } if (document.cookie.match(/sid=(.+?)(;|$)/)) { sid = RegExp.$1; } if (!sid || !uid) { return false; }[].forEach.call(divs, function(div) { var idAttr = div.getAttribute('id'); var id = null; var isPost = false; if (idAttr) { if (idAttr.match(/js-post_id_([0-9]+)/)) { id = RegExp.$1; isPost = true; } } else { var voteButton = div.querySelector('.vote_button'); if (voteButton.getAttribute('onclick').match(/voteHandler.vote\('([0-9]+)',/)) { id = RegExp.$1; } } if (!id) { return false; } var resetButton = document.createElement('a'); resetButton.innerHTML = '∅';var style = 'cursor: pointer; position: absolute;'; if (isPost) { style += 'left: -20px; font-size: 20px; top: -5px;'; } else { style += 'left: -12px; top: 20px;'; } resetButton.className = 'vote_reset_button'; resetButton.setAttribute('title', 'Сбросить голос'); resetButton.setAttribute('style', style); resetButton.setAttribute('onclick', (function(id, isPost, sid, uid) { return 'fetch("https://leprosorium.ru/api/' + (isPost ? 'posts' : 'comments') + '/' + id + '/vote/", {\n' + 'method: "POST",' + 'body: \'{"vote": 0}\',' + ' headers: {\n' + ' "Content-Type": "application/json",\n' + ' "X-Futuware-Sid": "' + sid + '",\n' + ' "X-Futuware-Uid": "' + uid + '"\n' + ' }\n' + '}).then(function() { ' + 'voteResultsHandler.showVoteResult(\'' + id + '\', \'' + (isPost ? 'post' : 'comment') + '\'); ' + 'var p = document.querySelector(\'div[data-reset="' + id + '"]\');' + 'p.querySelector(\'.vote_button_minus\').className = "vote_button vote_button_minus";' + 'p.querySelector(\'.vote_button_plus\').className = "vote_button vote_button_plus";' + '})'; })(id, isPost, sid, uid)); div.dataset.reset = id; div.append(resetButton); }); })();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment