Skip to content

Instantly share code, notes, and snippets.

@TheReluctantHeroes
Last active January 3, 2016 06:28
Show Gist options
  • Save TheReluctantHeroes/8422514 to your computer and use it in GitHub Desktop.
Save TheReluctantHeroes/8422514 to your computer and use it in GitHub Desktop.
为V2EX回复页面添加直接block回复者按钮
// ==UserScript==
// @name V2EX-Reply-Author-Blocker
// @namespace https://github.com/LuoboTixS/
// @version 1.2
// @description This script will append a 'block author' function among all replies in threads
// @include *://*.v2ex.com/t/*
// @include *://v2ex.com/t/*
// ==/UserScript==
unsafeWindow.BlockUserInReply = function(user_id,blocker_id){
$.get('/block/'+ user_id + '?t=' + blocker_id, function(data) {
});
$('#block_area_' + user_id).addClass("thanked").html("用户已屏蔽");
};
unsafeWindow.FindBlockerID = function(){
var blocker_source;
blocker_source = $('a:contains("报告这个主题")').attr('onclick');
blockerID = blocker_source.substring(blocker_source.indexOf("?t=")+3,blocker_source.lastIndexOf("';"));
};
unsafeWindow.AddBlockButton = function(receiver,user_id){
var htmlobj = "<a class='thank'style='margin-right:15px' href='#;' onclick='BlockUserInReply(" + user_id + ',' + blockerID + ")' id='block_area_" + user_id +"'>屏蔽该用户</a>"
$(receiver).find("div.thank_area").prepend($(htmlobj));
};
unsafeWindow.blockerID = 0;
$(function(){
$("div[id][class='cell'],div[id][class='inner']").each(function(){
if ( 0 == blockerID ) {
FindBlockerID();
};
var reply_id = reply_id || {};
var member_name = member_name || {};
var member_link = member_link || {};
var member_page_source = member_page_source || {};
var user_id = {};
var user_id_source = user_id_source || {};
var block_source = block_source || {};
var that = this;
reply_id = $(this).attr('id');
user_id_source = $(this).find("img[class='avatar']").attr('src');
if(user_id_source.indexOf("Favatar")>=0){
member_name = $(this).find("a[class='dark']").attr('href');
if (member_name.length > 1){
member_name = member_name.substring(member_name.lastIndexOf("/")+1);
member_link = "http://www.v2ex.com/api/members/show.json?username=" + member_name;
$.getJSON( member_link, function( data ) {
user_id = data.id;
AddBlockButton(that,user_id);
});
}else{
member_link = location.origin + $(this).find("a[href!='#;']").attr('href');
member_page_source=$.ajax({type:"GET",url:member_link,cache:true,async:false}).responseText;
block_source = $($(member_page_source).find("input")[2]).attr('onclick');
user_id = block_source.substring(block_source.indexOf("k/")+2,block_source.lastIndexOf("?t"));
AddBlockButton(this,user_id);
};
}else{
user_id = user_id_source.substring(user_id_source.lastIndexOf("/")+1,user_id_source.indexOf("_"));
AddBlockButton(this,user_id);
};
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment