Sort Github repos by popularity

Sort user's Github repositories by popularity

当前为 2018-04-10 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Sort Github repos by popularity
  3. // @namespace http://tampermonkey.net/
  4. // @license MIT
  5. // @version 0.1
  6. // @description Sort user's Github repositories by popularity
  7. // @author joeytwiddle
  8. // @match https://github.com/*?tab=repositories
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. setTimeout(function() {
  13. 'use strict';
  14.  
  15. const container = document.querySelector('#user-repositories-list > ul');
  16. const reposNodeList = document.querySelectorAll('#user-repositories-list > ul > li');
  17. const repos = Array.prototype.slice.call(reposNodeList);
  18.  
  19. //console.log("Repo count:", repos.length);
  20.  
  21. repos.sort((a, b) => {
  22. return getPopularity(a) < getPopularity(b) ? +1 : -1;
  23. });
  24.  
  25. repos.forEach(ul => {
  26. container.removeChild(ul);
  27. });
  28.  
  29. repos.forEach(ul => {
  30. container.appendChild(ul);
  31. });
  32.  
  33. function getPopularity (li) {
  34. const starSvg = li.querySelector('[aria-label=star]');
  35. const textElem = starSvg && starSvg.nextSibling;
  36. const popularity = textElem && Number(textElem.textContent) || 0;
  37. //console.log("Popularity:", popularity);
  38. return popularity;
  39. }
  40. }, 1000);