FeedlyTool mini Save For Later

Display "Save for Later" count. This is the edition that was limited to Save For Later feature Chrome extension of "FeedlyTool".

当前为 2014-07-23 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name FeedlyTool mini Save For Later
  3. // @version 0.0.1
  4. // @author kik0220
  5. // @namespace https://sites.google.com/site/feedlytool/
  6. // @description Display "Save for Later" count. This is the edition that was limited to Save For Later feature Chrome extension of "FeedlyTool".
  7. // @description:ja 「Save for Later」の件数を表示します。これはChrome拡張「FeedlyTool」のSave For Later機能に限定したものです。
  8. // @icon http://feedlytool.kk22.jp/icon.png
  9. // @match http://feedly.com/*
  10. // @match https://feedly.com/*
  11. // @exclude http://feedly.com/#welcome
  12. // @exclude https://feedly.com/#welcome
  13. // @copyright 2013+, kik0220
  14. // ==/UserScript==
  15.  
  16. var accessToken = '';
  17. var userId = '';
  18. var location = '';
  19. var currentDir = '';
  20. var CSS = [
  21. '#feedlyTool_savedTab_count { float: right; font-size: 10px; opacity: 0.75; }',
  22. '#savedtab_label { float: left; }'
  23. ].join('');
  24.  
  25. GM_addStyle(CSS);
  26. document.addEventListener("DOMSubtreeModified", getCookie, false);
  27. document.body.addEventListener("DOMSubtreeModified", function (e) {
  28. if (location !== document.location.href) {
  29. location = document.location.href;
  30. getSaved();
  31. }
  32. }, false);
  33.  
  34. function getCookie(){
  35. var all = document.cookie;
  36. if(all === null){return;}
  37. all = all.split(';');
  38. for(var i = 0; i < all.length; i++){
  39. var cookie = all[i];
  40. if(cookie.indexOf('session@cloud=') < 0){continue;}
  41. var json;
  42. try{
  43. json = JSON.parse(cookie.replace('session@cloud=', ''));
  44. accessToken = json.feedlyToken;
  45. userId = json.feedlyId;
  46. } catch(e) {return;}
  47. document.removeEventListener("DOMSubtreeModified", getCookie, false);
  48. getSaved();
  49. return;
  50. }
  51. }
  52.  
  53. function getSaved(){
  54. if(!accessToken||!userId){return;}
  55. GM_xmlhttpRequest({
  56. method: 'GET',
  57. url: 'https://cloud.feedly.com/v3/markers/tags',
  58. headers: {
  59. 'Authorization': 'OAuth '+accessToken,
  60. },
  61. onload: function(responseDetails) {
  62. if(responseDetails.status !== 200){return;}
  63. var response = JSON.parse(responseDetails.responseText);
  64. var count = response.taggedEntries['user/'+userId+'/tag/global.saved'].length;
  65. var target = document.getElementById('feedlyTool_savedTab_count');
  66. var targetParent = document.getElementById('savedtab');
  67. if(target){
  68. target.innerText = count;
  69. } else if(targetParent) {
  70. targetParent.innerHTML += '<div id="feedlyTool_savedTab_count">'+ count +'</div>';
  71. }
  72. }
  73. });
  74. }