Github.desktop.stars.js

在Github首页显示stars列表

  1. // ==UserScript==
  2. // @name Github.desktop.stars.js
  3. // @namespace http://zhihaofans.com
  4. // @version 0.0.2
  5. // @description 在Github首页显示stars列表
  6. // @author zhihaofans
  7. // @match https://github.com/
  8. // @grant none
  9. // @require https://cdn.bootcss.com/jquery/1.9.1/jquery.min.js
  10. // @note Greasyfork地址:https://greasyfork.org/zh-CN/scripts/25101
  11. // @note Github地址:https://github.com/zhihaofans/Github.desktop.stars.js
  12. // ==/UserScript==
  13. var username="";
  14. function CheckLogin(){
  15. if(jQuery("meta.js-ga-set").attr('content')=="Logged In"){
  16. return true;
  17. }else{
  18. return false;
  19. }
  20. }
  21. function initlist(_username){
  22. var items = '';
  23. var itemlimit=10;
  24. var hideitem='';
  25. var hideitems='';
  26. var showbutton='';
  27. jQuery.getJSON( "https://api.github.com/users/"+_username+"/starred", function( data ){
  28. var starlen=data.length;
  29. jQuery.each( data, function( key, val ) {
  30. var ispublic='public';
  31. var relink='/'+val.full_name;
  32. var restar=val.stargazers_count;
  33. var rename=val.name;
  34. var reauther=val.owner.login;
  35. if(val.private===true){
  36. ispublic="private";
  37. }
  38. var temptext='<li class="'+ispublic+' source "><a href="'+relink+'" class="mini-repo-list-item css-truncate" data-ga-click="Dashboard, click, Popular repos list item - context:user visibility:public fork:false"><svg aria-label="Repository" class="octicon octicon-repo repo-icon" height="16" role="img" version="1.1" viewbox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z" /></svg><span class="repo-and-owner css-truncate-target"><span class="owner css-truncate-target" title="'+reauther+'">'+reauther+'</span>/<span class="repo" title="'+rename+'">'+rename+'</span></span><span class="stars"> '+restar+'<svg aria-label="stars" class="octicon octicon-star" height="16" role="img" version="1.1" viewbox="0 0 14 16" width="14"><path fill-rule="evenodd" d="M14 6l-4.9-.64L7 1 4.9 5.36 0 6l3.6 3.26L2.67 14 7 11.67 11.33 14l-.93-4.74z" /></svg></span></a></li> ';
  39. if(key>itemlimit){
  40. hideitem+=temptext;
  41. }else{
  42. items+=temptext;
  43. }
  44. });
  45. if(starlen>itemlimit){
  46. hideitems='<span id="hidestars" style="display: none;">'+hideitem+'</span>';
  47. }
  48. var listhtml='<div class="boxed-group js-repo-filter flush" role="navigation" id="yourstars"><div class="boxed-group-action"><a href="/'+username+'?tab=stars" class="btn btn-sm btn-primary"> Show all stars</a></div><h3> Starred repositories <span class="counter"> '+String(itemlimit)+'/'+String(starlen)+'</span></h3><div class="boxed-group-inner"><ul class="mini-repo-list js-repo-list">'+items+hideitems+'</ul></div></div>';
  49. var listdata=jQuery(".dashboard-sidebar.column.one-third").html();
  50. jQuery(".dashboard-sidebar.column.one-third").html(listhtml+listdata);
  51. });
  52. }
  53. jQuery(document).ready(function() {
  54. if(CheckLogin()===true){
  55. username=jQuery("meta[name='user-login']").attr('content');
  56. initlist(username);
  57. }
  58. });