Sort Feedly by Popularity

Sort Feedly items by popularity.

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey, Greasemonkey किंवा Violentmonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

You will need to install an extension such as Tampermonkey to install this script.

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey किंवा Violentmonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल..

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल..

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्क्रिप्ट व्यवस्थापक एक्स्टेंशन इंस्टॉल करावे लागेल.

(माझ्याकडे आधीच युझर स्क्रिप्ट व्यवस्थापक आहे, मला इंस्टॉल करू द्या!)

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

(माझ्याकडे आधीच युझर स्टाईल व्यवस्थापक आहे, मला इंस्टॉल करू द्या!)

// ==UserScript==
// @name        Sort Feedly by Popularity
// @namespace   scturtle
// @match       *://*.feedly.com/*
// @version     1
// @description Sort Feedly items by popularity.
// @grant       GM_addStyle
// ==/UserScript==
var mysort = function (event) {
  var col = document.querySelector('div#section0_column0');
  var items = col.querySelectorAll('div.u0Entry');
  items = Array.prototype.slice.call(items);
  items.sort(function (it1, it2) {
    var p1 = parseInt(it1.querySelector('.recommendationInfo > span').getAttribute('data-engagement'));
    var p2 = parseInt(it2.querySelector('.recommendationInfo > span').getAttribute('data-engagement'));
    return (p1 < p2) ? true : false;
  });
  var div = document.createElement('div');
  items.forEach(function (it) {
    div.appendChild(it)
  });
  col.innerHTML = div.innerHTML;
}
var cnt = 0;
var wait = function () {
  cnt += 1;
  var bar = document.querySelector('div.pageActionBar');
  if (bar === null) {
    setTimeout(wait, 1000);
  } else {
    var span = document.createElement('span');
    span.style = 'font-size: 20px; vertical-align: 5px;';
    span.textContent = '▼';
    span.className = 'pageAction';
    span.addEventListener('click', mysort);
    document.querySelector('div.pageActionBar').insertBefore(span, bar.children[0]);
  }
};
wait();