Greasy Fork is available in English.
Pixiv搜索结果按收藏数从大到小排序,适配[TS] Pixiv++ V3 | Pixiv search result sort by bookmark count.
// ==UserScript== // @name Pixiv搜索结果排序 | Pixiv search sort // @name:zh-TW Pixiv搜索結果排序 | Pixiv search sort // @description Pixiv搜索结果按收藏数从大到小排序,适配[TS] Pixiv++ V3 | Pixiv search result sort by bookmark count. // @description:zh-TW Pixiv搜索結果按收藏數從大到小排序,適配[TS] Pixiv++ V3 | Pixiv search result sort by bookmark count. // @icon https://www.pixiv.net/favicon.ico // @version 0.4.1 // @author olOwOlo // @namespace https://olowolo.com // @homepage https://github.com/olOwOlo/script/tree/master/pixiv-search-sort // @supportURL https://github.com/olOwOlo/script // @license MIT // @match *://www.pixiv.net/search.php?* // @run-at document-start // @grant none // ==/UserScript== // /* * Copyright (c) 2017 olOwOlo * Released under the MIT License. * *********************** * ***** Release Note ***** * 0.4.1 - 修复:P 站更新 * 0.4.0 - P站已更新,现在只支持单页排序 * 0.3.0 - 为兼容最新ECMAScript标准,使用babel与webpack处理脚本,可读性更好的源码可于Github查看 */ /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { /******/ configurable: false, /******/ enumerable: true, /******/ get: getter /******/ }); /******/ } /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 0); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__(1); /***/ }), /* 1 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; (function () { 'use strict'; document.addEventListener('DOMContentLoaded', function () { return sortInContainer(0); }); /** * sort in one page * @param index * @param rest */ function sortInContainer(index) { var rest = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6; var containers = document.querySelectorAll('#js-react-search-mid > div'); if (containers.length !== 0) { var container = containers[index]; var itemsArray = Array.from(container.children); itemsArray.sort(function (a, b) { return getBookmarkCount(b) - getBookmarkCount(a); }).forEach(function (item) { return container.appendChild(item); }); } else if (rest > 0) { myLog('Container Not Found. Rest time is ' + rest); setTimeout(function () { return sortInContainer(index, rest - 1); }, 500); } } /** * return the bookmark-count * @param item * @returns {number} */ function getBookmarkCount(item) { var bookmarkCount = item.getElementsByClassName('bookmark-count')[0]; return typeof bookmarkCount === 'undefined' ? 0 : Number(bookmarkCount.text); } var DEBUG = false; function myLog(message) { if (DEBUG) console.log(message); } })(); /***/ }) /******/ ]);