Temp Drafts Pagination Fix

Temporary fix for missing drafted posts when not using endless scrolling.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         Temp Drafts Pagination Fix
// @version      0.1
// @description  Temporary fix for missing drafted posts when not using endless scrolling.
// @namespace    https://greasyfork.org/users/65414
// @require      http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
// @match        *.tumblr.com/blog/*/drafts*
// @grant        GM_addStyle
// ==/UserScript==

(function($) {

  const b = {
    'context': '._3r0gp ~ * main._2ClZE',
    'name': 'Next',
    'pattern': '{c} div > button[aria-label="{n}"]',
    'url': `${location.origin}/blog/{u}/drafts?before_id={id}`
  };

  const s = (id,s,u) => s.replace('{c}', b.context)
                         .replace('{id}', id)
                         .replace('{n}', b.name)
                         .replace('{u}', u);

  const wrap = (e) => {
    let id = $('._1DxdS._2jOH-[data-id]:last-of-type').attr('data-id'),
        t = e ? e.target.querySelectorAll(s(null,b.pattern,null))
              : s(null,b.pattern,null),
        u = $('._1xyZl a[title]').attr('title');
    $(t).each(function() {
      GM_addStyle (`a[href="${s(id,b.url,u)}"] {text-decoration: none;}`, 0);
      let a = document.createElement('a');
      $(a).attr('href', s(id,b.url,u))
      a.innerHTML = this.outerHTML;
      $(a).insertBefore(this);
      $(this).remove();
    })
  };

  $(document).bind('DOMNodeInserted', (e) => wrap(e))
             .ready(() => wrap());

})(jQuery);