douban_group_compare

By NullPointer Last update Dec 27, 2008 — Installed 953 times. Daily Installs: 2, 0, 2, 5, 3, 1, 4, 0, 2, 0, 6, 5, 1, 1, 2, 0, 9, 2, 0, 2, 0, 0, 1, 3, 3, 2, 0, 1, 1, 5, 3, 1

There are 10 previous versions of this script.

// ==UserScript==
// @name           douban_group_compare
// @namespace      http://npchen.blogspot.com
// @description    在用户的小组页面高亮共同参加的兴趣小组(v1.3.1)
// @include        http://www.douban.com/people/*/groups
// @require        http://userscript-autoupdate-helper.googlecode.com/svn/trunk/autoupdatehelper.js
// @author         NullPointer (http://www.douban.com/people/NullPointer)
// @version        1.3.1
/* @reason 
   1.3.1 修正可能会导致sliding navbar频繁更新的bug.
   @end*/
// ==/UserScript==

var thisScript = {
   name: "共同兴趣小组",
   id: "33420",
   version: "1.3.1"
};
var updater = new Updater(thisScript); 
updater.check();

if(typeof unsafeWindow.jQuery !== "undefined") {
  var jQuery = unsafeWindow.jQuery;
  var $ = jQuery 
}

function get_actionlink(id, prefix, title, func){
  var pp = $("<p></p>").attr("id",id).attr("class", "pl2");
  var alink = $("<a href=javascript:{}>"+title+"</a>").click(func);
  pp.append(prefix).append(alink);
  return pp;  
}

var hisgroups;

$(document).ready(function(){
    hisgroups = $("div#in_tablem dl.ob dt a");
  
    var markon = get_actionlink('on','>','高亮我也参加的小组', highlight);
    var markoff = get_actionlink('off','>', 'Loading中,请稍候· · · ', unhighlight);
    
    var hider = get_actionlink('hide','>','隐藏未高亮的小组', hideUNHL);
    var shower = get_actionlink('show','>', '显示全部小组', showall);
    
    markon.show(); markoff.hide(); hider.hide(); shower.hide();
    
    $("div#tablerm").append($('<p/>')).append(markon).append(markoff)
     .append(hider).append(shower);
}); 

function iswhite(a){
  return a.parent().css("background-color")=="rgb(255, 255, 255)";
}

function hideUNHL(){
  hisgroups.filter(function(){
        return iswhite($(this))
  }).parent().parent().hide();
  $("p#hide").hide(); $("p#show").show();
}

function showall(){
   hisgroups.parent().parent().show(); 
   $("p#show").hide(); $("p#hide").show();
}

function unhighlight(){
    $("#on").toggle(); $("#off").toggle();
    $.each(hisgroups, function(){
        $(this).parent().css("background","white");
    });
}

function highlight(){ 
    $("#on").toggle(); $("#off").toggle();
    var mgurl = "http://www.douban.com/group/mine #in_tablem";
    $("<div id='mygroups'/>").load(mgurl,function(){
      var mygroups = $("#mygroups dl.ob dd a");
      var myurls = new Array(mygroups.length);
      var i=0;          
      var j=0;
      $.each(mygroups, function(){myurls[i++]=$(this).attr("href");});
      
      $.each(hisgroups, function(){
         var u = $(this).attr("href");
         if ($.inArray(u, myurls)!=-1) {
           $(this).parent().css("background","DarkSeaGreen");  
           j++;
         }
         else {
           $(this).parent().css("background","white");
         }
        });           
      var hstr = "有"+j+"个共同兴趣小组(点击取消高亮)" ;   
      var hh = get_actionlink('off', '>', hstr, unhighlight);      
      $("#off").html(hh.html()); $("#off").click(unhighlight);
      
      if (j>0) $('#hide').show();
      
      $("body").remove("#mygroups");
    }).appendTo("body").hide(); 
    
}