Rss Helper

This is a good monkey

目前为 2018-11-20 提交的版本。查看 最新版本

// ==UserScript==
// @name         Rss Helper
// @version      0.0.1
// @description  This is a good monkey
// @author       SettingDust
//
// @include      http*://*
//
// @require      https://cdn.bootcss.com/jquery/3.3.1/jquery.js
//
// @grant        GM_addStyle
// @namespace https://greasyfork.org/users/149095
// ==/UserScript==

!(function(modules) {
    var installedModules = {};
    function __webpack_require__(moduleId) {
        if (installedModules[moduleId]) return installedModules[moduleId].exports;
        var module = (installedModules[moduleId] = {
            i: moduleId,
            l: !1,
            exports: {}
        });
        return (
            modules[moduleId].call(module.exports, module, module.exports, __webpack_require__),
            (module.l = !0),
            module.exports
        );
    }
    (__webpack_require__.m = modules),
        (__webpack_require__.c = installedModules),
        (__webpack_require__.d = function(exports, name, getter) {
            __webpack_require__.o(exports, name) ||
                Object.defineProperty(exports, name, {
                    enumerable: !0,
                    get: getter
                });
        }),
        (__webpack_require__.r = function(exports) {
            'undefined' != typeof Symbol &&
                Symbol.toStringTag &&
                Object.defineProperty(exports, Symbol.toStringTag, {
                    value: 'Module'
                }),
                Object.defineProperty(exports, '__esModule', {
                    value: !0
                });
        }),
        (__webpack_require__.t = function(value, mode) {
            if ((1 & mode && (value = __webpack_require__(value)), 8 & mode)) return value;
            if (4 & mode && 'object' == typeof value && value && value.__esModule) return value;
            var ns = Object.create(null);
            if (
                (__webpack_require__.r(ns),
                Object.defineProperty(ns, 'default', {
                    enumerable: !0,
                    value: value
                }),
                2 & mode && 'string' != typeof value)
            )
                for (var key in value)
                    __webpack_require__.d(
                        ns,
                        key,
                        function(key) {
                            return value[key];
                        }.bind(null, key)
                    );
            return ns;
        }),
        (__webpack_require__.n = function(module) {
            var getter =
                module && module.__esModule
                    ? function() {
                          return module.default;
                      }
                    : function() {
                          return module;
                      };
            return __webpack_require__.d(getter, 'a', getter), getter;
        }),
        (__webpack_require__.o = function(object, property) {
            return Object.prototype.hasOwnProperty.call(object, property);
        }),
        (__webpack_require__.p = ''),
        __webpack_require__((__webpack_require__.s = 0));
})([
    function(module, exports, __webpack_require__) {
        const Route = __webpack_require__(1),
            router = new (__webpack_require__(2))();
        router.push(new Route(/yande\.re\/.*/, __webpack_require__(3))),
            router.push(new Route(/www\.bilibili\.com\/.*/, __webpack_require__(8))),
            console.debug('[RSSHelper]', router),
            router.load(location.href);
    },
    function(module, exports) {
        module.exports = class {
            constructor(url, route) {
                (this._url = url), (this._route = route);
            }
            get url() {
                return this._url;
            }
            get route() {
                return this._route;
            }
            test(link) {
                return new RegExp(this.url).test(link);
            }
            match(link) {
                return new RegExp(this.url).exec(link);
            }
            call(args) {
                this.route(args);
            }
        };
    },
    function(module, exports) {
        module.exports = class {
            constructor() {
                this._routes = [];
            }
            push(router) {
                this.routes.push(router);
            }
            get routes() {
                return this._routes;
            }
            load(href) {
                this.routes.forEach((route) => {
                    route.test(href) &&
                        (console.debug('[RSSHelper]', route.match(href)),
                        route.call(route.match(href)));
                });
            }
        };
    },
    function(module, exports, __webpack_require__) {
        const Route = __webpack_require__(1),
            router = new (__webpack_require__(2))();
        router.push(new Route(/tags=(?:(.*))?/, __webpack_require__(4))),
            router.push(new Route(/(post)\?(?!tags=.+)/, __webpack_require__(5))),
            (module.exports = async (args) => {
                router.load(args), GM_addStyle(__webpack_require__(6).toString());
            });
    },
    function(module, exports) {
        const rssElem = $('<a/>');
        rssElem.attr('title', 'Feed'),
            rssElem.attr('target', '_blank'),
            rssElem.text('Feed'),
            (module.exports = async (args) => {
                rssElem.attr('href', `https://yande.re/post/piclens?tags=${args[1]}`),
                    $('#post-list > div.sidebar > div:nth-child(1) > form > div').append(rssElem);
            });
    },
    function(module, exports) {
        const rssElem = $('<a/>');
        rssElem.attr('title', 'Feed'),
            rssElem.attr('target', '_blank'),
            rssElem.text('Feed'),
            (module.exports = async () => {
                rssElem.attr('href', 'https://yande.re/post/piclens'),
                    $('#post-list > div.sidebar > div:nth-child(1) > form > div').append(rssElem);
            });
    },
    function(module, exports, __webpack_require__) {
        (module.exports = __webpack_require__(7)(!1)).push([
            module.i,
            '#post-list>div.sidebar>div:first-child>form>div{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}',
            ''
        ]);
    },
    function(module, exports) {
        module.exports = function(useSourceMap) {
            var list = [];
            return (
                (list.toString = function() {
                    return this.map(function(item) {
                        var content = (function(item, useSourceMap) {
                            var content = item[1] || '',
                                cssMapping = item[3];
                            if (!cssMapping) return content;
                            if (useSourceMap && 'function' == typeof btoa) {
                                var sourceMapping = ((sourceMap = cssMapping),
                                    '/*# sourceMappingURL=data:application/json;charset=utf-8;base64,' +
                                        btoa(
                                            unescape(encodeURIComponent(JSON.stringify(sourceMap)))
                                        ) +
                                        ' */'),
                                    sourceURLs = cssMapping.sources.map(function(source) {
                                        return (
                                            '/*# sourceURL=' +
                                            cssMapping.sourceRoot +
                                            source +
                                            ' */'
                                        );
                                    });
                                return [content]
                                    .concat(sourceURLs)
                                    .concat([sourceMapping])
                                    .join('\n');
                            }
                            var sourceMap;
                            return [content].join('\n');
                        })(item, useSourceMap);
                        return item[2] ? '@media ' + item[2] + '{' + content + '}' : content;
                    }).join('');
                }),
                (list.i = function(modules, mediaQuery) {
                    'string' == typeof modules && (modules = [[null, modules, '']]);
                    for (var alreadyImportedModules = {}, i = 0; i < this.length; i++) {
                        var id = this[i][0];
                        'number' == typeof id && (alreadyImportedModules[id] = !0);
                    }
                    for (i = 0; i < modules.length; i++) {
                        var item = modules[i];
                        ('number' == typeof item[0] && alreadyImportedModules[item[0]]) ||
                            (mediaQuery && !item[2]
                                ? (item[2] = mediaQuery)
                                : mediaQuery &&
                                  (item[2] = '(' + item[2] + ') and (' + mediaQuery + ')'),
                            list.push(item));
                    }
                }),
                list
            );
        };
    },
    function(module, exports, __webpack_require__) {
        const Route = __webpack_require__(1),
            router = new (__webpack_require__(2))();
        router.push(new Route(/video\/av\d+/, __webpack_require__(9))),
            (module.exports = async (args) => {
                router.load(args),
                    GM_addStyle(__webpack_require__(10).toString()),
                    console.debug('[RSSHelper]', __webpack_require__(10).toString());
            });
    },
    function(module, exports) {
        const rssElem = $('<a/>');
        rssElem.addClass('btn'),
            rssElem.addClass('bi-btn'),
            rssElem.attr('id', 'feed'),
            rssElem.attr('target', '_blank'),
            rssElem.text('Feed'),
            (module.exports = async () => {
                let mid = $('#v_upinfo .u-face>a')
                    .attr('href')
                    .match(/\d+/)[0];
                rssElem.attr('href', `https://rsshub.app/bilibili/user/video/${mid}`);
                let task = setInterval(() => {
                    $('.b-cd .cd').length &&
                        ($('#v_upinfo .btn').prepend(rssElem), clearInterval(task));
                }, 500);
            });
    },
    function(module, exports, __webpack_require__) {
        (module.exports = __webpack_require__(7)(!1)).push([
            module.i,
            '#v_upinfo #feed{padding-left:16px;padding-right:16px;margin-left:12px;margin-top:0}',
            ''
        ]);
    }
]);