您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Upvote or Downvote from a userpage on reddit
当前为
// ==UserScript== // @require http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js // @include http://www.reddit.com/user/* // @name updownuser // @version 0.0.1.20140825143127 // @namespace https://greasyfork.org/users/636 // @description Upvote or Downvote from a userpage on reddit // ==/UserScript== var currentPage = document.URL; var parsedPage = currentPage.split('/'); var modHash = null; var currentUser = null; var commentIDs = []; var topicIDs = []; var subredditList = []; function upVote(index) { var fullname = commentIDs[index]; $.post('http://www.reddit.com/api/vote', {'id': fullname, 'dir': 1, 'uh': modHash}); } function neutralVote(index) { var fullname = commentIDs[index]; $.post('http://www.reddit.com/api/vote', {'id': fullname, 'dir': 0, 'uh': modHash}); } function downVote(index) { var fullname = commentIDs[index]; $.post('http://www.reddit.com/api/vote', {'id': fullname, 'dir': -1, 'uh': modHash}); } function getHash(callback) { var query = new XMLHttpRequest; query.onreadystatechange = function () { if (query.readyState == 4) { var info = JSON.parse(query.responseText); modHash = info.data.modhash; callback(); } } query.open('GET', 'http://www.reddit.com/api/me.json', true); query.send(null); } function init() { $('div.menuarea').append('<div id=UPVOTE></div>'); $('div.menuarea').append('<div id=NEUTRAL></div>'); $('div.menuarea').append('<div id=DOWNVOTE></div>'); var upButton = document.createElement('button'); var downButton = document.createElement('button'); var neutral = document.createElement('button'); var upText = document.createTextNode('upvote'); var nText = document.createTextNode('neutral'); var downText = document.createTextNode('downvote'); upButton.appendChild(upText); neutral.appendChild(nText); downButton.appendChild(downText); $('#UPVOTE').append(upButton); $('#NEUTRAL').append(neutral); $('#DOWNVOTE').append(downButton); $('#UPVOTE').css({'position':'absolute','top':'77px', 'left':'150px'}); $('#NEUTRAL').css({'position':'absolute','left':'218px','top':'77px'}); $('#DOWNVOTE').css({'position':'absolute','left':'286px','top':'77px'}); $('#UPVOTE').click(function() { for(var i = 0; i < 25; i++) { upVote(i); var strippedTopic = topicIDs[i].split('_'); var strippedComment = commentIDs[i].split('_'); var url = 'http://www.reddit.com/r/' + subredditList[i] + '/comments/' + strippedTopic[1] + '/xml/' + strippedComment[1]; window.open(url); } }); $('#DOWNVOTE').click(function() { for(var i = 0; i < 25; i++) { downVote(i); var strippedTopic = topicIDs[i].split('_'); var strippedComment = commentIDs[i].split('_'); var url = 'http://www.reddit.com/r/' + subredditList[i] + '/comments/' + strippedTopic[1] + '/xml/' + strippedComment[1]; window.open(url); } }); $('#NEUTRAL').click(function() { for(var i = 0; i < 25; i++) { neutralVote(i); var strippedTopic = topicIDs[i].split('_'); var strippedComment = commentIDs[i].split('_'); var url = 'http://www.reddit.com/r/' + subredditList[i] + '/comments/' + strippedTopic[1] + '/xml/' + strippedComment[1]; window.open(url); } }); } function getIDs() { var query = new XMLHttpRequest(); query.onreadystatechange = function() { if(query.readyState == 4) { var info = JSON.parse(query.responseText); for(i = 0; i < info.data.children.length; i++){ commentIDs.push('t1_' + info.data.children[i].data.id); topicIDs.push(info.data.children[i].data.link_id); subredditList.push(info.data.children[i].data.subreddit); } } } query.open('GET', 'http://www.reddit.com/user/' + currentUser + '/comments.json', true); query.send(null); } if (parsedPage[3] == 'user') { currentUser = parsedPage[4]; getIDs(); getHash(init); }