machsix / Super-preloader

Userscript to enable autopagerizing as well as preloading
https://machsix.github.io/Super-preloader/Super_preloaderPlus_one_New.user.js
GNU General Public License v3.0
575 stars 83 forks source link
greasemonkey tampermonkey userscript violentmonkey

icon

workflow Buy Me a Coffee

Super-preloader

Installation and Document

Document Installation
Github Page Github Page
Vercel Vercel
Github Raw
JS Delivr

Compatibility

Firefox + violentmonkey/greasemonkey
Firefox + Violentmonkey/Greasemonkey 4
Chrome / Microsoft Edge Dev+ violentmonkey
Chrome/Microsoft Edge Dev + Tampermonkey
Microsoft Edge Dev+ greasemonkey
Waterfox + Greasemonkey 3/4
Geasymonkey+ Stay2
Safari for IOS + Stay
Firefox > ESR Chrome > 45 , Edge Dev Channel Latest

Introduction

A userscript for auto loading paginated web pages. It will join pages together based on the rules.

The script is forked from https://greasyfork.org/en/scripts/10433-super-preloaderplus-one. However, it is refactored since v6.8.xx. Now we are embracing new techniques (features of ES6) and webpackrollup to pack the script.

Thanks to

Thanks to 红叶舞秋山, who introduced the history of the script to me

ywzhaiqi 也不是原创,这是个很久远的故事啊!还记得很多年以前,那时候我们还用 Opera 的旧版,总拿着它看小说之类的。然后在当年的 Opera 中国官方论坛,NLF 开始写这么个脚本的最初版,开始叫 Preloader 还是 PreloaderPlus 有点儿记不起来了!我们帮着测试,大家一起顺便也写写规则之类的。当年好像还有个简化版,只能预读不能拼接的,后来还有 Firefox 版,Chrome 版等等,甚至自己还考虑过自己写个外接可定制网页的 GUI...。开始时候这东西没啥按钮 Debug 什么的,都是一点点加的,还记得当年为了找个函数翻 Xml 等等文档翻了两天终于搞定的日子。后来基本功能有了,也没啥人维护了,大部分都是遇到问题自己写个规则用了。。。再后来 Opera 中国论坛也散了,很久之后 ywzhaiqi 接手改了个 Super_preloader,然后 Super_preloader one 的合一版他到

Please leave feedback at Greasefork page or Github issue

Development Guide

I appreciate anyone who is interested in devoting their time to the development. You can contribute by either writing rules or improving the script.

To write rules

  1. Check the Document and learn the structure of the rule
  2. Modify file dist/mydata.json for simple json rules
  3. Modify file src/rules/jsSiteRule.js for complex js rules

To modify document

  1. Modify content in docs/

To improve the script

  1. Clone the whole repo and install modules by npm install
  2. Make your modifications with your favoriate IDE. You IDE should support eslint and prettier to ease your life.
  3. Run npm run check to do a static check with eslint and prettier
  4. Run npm run test to test the script on certain websites with puppeteer
  5. Run npm run dev to launch the dev server and install the script from http://localhost:8081/Super_preloaderPlus_one_New.user.js. Test it on the website your added
  6. Only if all previous tests pass, you can now run npm run publish:patch to bump up the version and build the script. The file dist/Super_preloaderPlus_one_New.user.js will be updated.
  7. Commit all the changes you make and submit a pull request.

Note:

  1. You shouldn't commit changes of package.json, package-lock.json, and .eslintrc.json unless you have a good reason to do that.
  2. I won't check the PR until travis ci test passes. You can simulate travis ci test locally by running npm run check and npm run test.

Check more at Document

Known issues:

Donation

It takes time and patiency to maintain the project (beacure there are :thumbsdown: websites like JD). If you like my work, a donation is welcomed. This will keep my passion to continue developing. :satisfied:

Buy Me a Coffee

Thanks to the following donors:

License

GPLv3

This program is licensed under GNU General Public License Version 3 or later.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Howver you need to acknowledge the author machsix before redistribute the source code, databases and bundled script. Reposting the code anywhere without the author's permission is regarded as infringement. The author preserves the right to sue the infringer.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.