Show Twitter List

Show twitter list in title.

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

  1. // ==UserScript==
  2. // @name Show Twitter List
  3. // @namespace https://wiki.gslin.org/wiki/ShowTwitterList
  4. // @version 0.0.20180811.0
  5. // @description Show twitter list in title.
  6. // @author Gea-Suan Lin <darkkiller@gmail.com>
  7. // @match https://twitter.com/*
  8. // @grant none
  9. // @run-at document-end
  10. // @license MIT
  11. // ==/UserScript==
  12.  
  13. (function() {
  14. 'use strict';
  15.  
  16. let last_location = '';
  17. let main = function(){
  18. if (document.location.href === last_location) {
  19. return;
  20. } else {
  21. last_location = document.location.href;
  22. }
  23.  
  24. let url_re = new RegExp('^https://twitter\.com/[^/]+$');
  25. if (!document.location.href.match(url_re)) {
  26. return;
  27. }
  28.  
  29. let el = document.querySelector('.ProfileCanopy-headerBg img');
  30. if (!el) {
  31. return;
  32. }
  33. let matched = el.getAttribute('src').match(new RegExp('https://pbs\.twimg\.com/profile_banners/([0-9]+)/'));
  34. if (!matched) {
  35. return;
  36. }
  37.  
  38. let url = '/i/' + matched[1] + '/lists';
  39. let req = new XMLHttpRequest();
  40. req.addEventListener('load', function(){
  41. let h = document.createElement('div');
  42. h.innerHTML = JSON.parse(this.responseText).html;
  43.  
  44. let c = h.querySelector('.membership-checkbox[checked="checked"]');
  45. if (!c) {
  46. return;
  47. }
  48.  
  49. let l = c.parentElement.innerText.trim();
  50. let title = document.getElementsByTagName('title')[0];
  51. title.innerHTML = '(' + l + ') ' + title.innerHTML;
  52. });
  53. req.open('GET', url);
  54. req.send();
  55. };
  56.  
  57. setInterval(main, 1000);
  58. main();
  59. })();