Advertisement
Guest User

feedly_SavedForLaterOpener.user.js

a guest
Oct 4th, 2014
301
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name     feedly - SavedForLater Opener
  3. // @include  http://feedly.com/*
  4. // @include  https://feedly.com/*
  5. // @version  1.0.0
  6. // @license  MIT License
  7. // ==/UserScript==
  8.  
  9. (function() {
  10. var func = function() {
  11.     var KEY_CODE = 87;        // [w] key
  12.     var MAX_WINDOW_OPEN = 5;  // max 1000
  13.     var ORDER = 'oldest';     // 'oldest' or 'newest'
  14.  
  15.     function SavedForLaterOpener() {
  16.         var resHeader = 'application/json';
  17.         var reqHeader = {
  18.             '$Authorization.feedly': '$FeedlyAuth',
  19.             'Content-Type': 'application/json'
  20.         };
  21.         try {
  22.             var xhr = streets.service('io');
  23.             // GET SavedForLater items
  24.             xhr.jget('!{cloud}/v3/streams/contents?streamId=user/' + encodeURIComponent(streets.getUserId()) + '/tag/global.saved&count=' + MAX_WINDOW_OPEN + '&ck=' + new Date().getTime() + '&ct=feedly.desktop&cv=' + feedlyApplicationVersion + '&unreadOnly=true&ranked=' + ORDER,
  25.                 function(jsonInfo) {
  26.                     if (jsonInfo === null || jsonInfo.items === null || jsonInfo.items.length === 0) {
  27.                         return;
  28.                     }
  29.                     for (var i = 0, length = jsonInfo.items.length; i < length; i++) {
  30.                       windowopen(jsonInfo.items[i].alternate[0].href);
  31.                         // DELTE SavedForLater item
  32.                         xhr.del('!{cloud}/v3/tags/' + encodeURIComponent('user/' + streets.getUserId() + '/tag/global.saved') + '/' + encodeURIComponent(jsonInfo.items[i].id) + '?ck=' + new Date().getTime() + '&ct=feedly.desktop',
  33.                             function() {},
  34.                             function() {}, resHeader, reqHeader);
  35.                     }
  36.                 },
  37.                 function() {}, resHeader, reqHeader);
  38.         } catch (e) {
  39.             console.error('FAILED to SavedForLaterOpener:', e);
  40.         }
  41.     }
  42.     function windowopen(url) {
  43.         var a = document.createElement('a');
  44.         a.target = '_blank';
  45.         a.href = url;
  46.         var event = document.createEvent('MouseEvents');
  47.         var clicktype = 0;
  48.         if(this.chrome) clicktype = 1;
  49.         event.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, clicktype, null);
  50.         a.dispatchEvent(event);
  51.         return true;
  52.     }
  53.     document.addEventListener('keydown', function(e) {
  54.         if (e.keyCode === KEY_CODE &&
  55.             !e.shiftKey && !e.ctrlKey && !e.altKey && !e.metaKey &&
  56.             !/^input|^textarea/i.test(e.target.tagName)) {
  57.             SavedForLaterOpener();
  58.         }
  59.     }, false);
  60. };
  61. var script = document.createElement('script');
  62. script.type = 'text/javascript';
  63. script.textContent = '(' + func.toString() + ')();';
  64. document.body.appendChild(script);
  65. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement