├── .editorconfig ├── .eslintrc ├── .gitattributes ├── .gitignore ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── cryptokitty-rare-highlighter.user.js ├── greasy-fork-copy-code.user.js ├── greasy-fork-total-installs.user.js ├── images ├── cryptokitties-after.png ├── cryptokitties-before.png ├── greasy-fork-copy-code.png └── greasy-fork-total-installs.gif └── package.json /.editorconfig: -------------------------------------------------------------------------------- 1 | # https://github.com/editorconfig/editorconfig/wiki/EditorConfig-Properties 2 | root = true 3 | 4 | [*] 5 | indent_style = tab 6 | trim_trailing_whitespace = true 7 | end_of_line = lf 8 | charset = utf-8 9 | insert_final_newline = true 10 | max_line_length = 100 11 | 12 | [*.md] 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "es6": true, 5 | "greasemonkey": true 6 | }, 7 | "parserOptions": { 8 | "ecmaVersion": 2017 9 | }, 10 | "rules": { 11 | "curly": 1, 12 | "dot-location": [2,"property"], 13 | "eqeqeq": 1, 14 | "linebreak-style": [2, "unix"], 15 | "no-else-return": 1, 16 | "no-eval": 2, 17 | "no-octal": 2, 18 | "no-with": 2, 19 | "radix": 2, 20 | "brace-style": 1, 21 | "camelcase": 2, 22 | "indent": [2,"tab"], 23 | "no-array-constructor": 2, 24 | "quotes": [2,"double", { 25 | "allowTemplateLiterals": true, 26 | "avoidEscape": true 27 | }], 28 | "spaced-comment": 2, 29 | "arrow-spacing": 2, 30 | "no-var": 2, 31 | "no-unused-vars": 1 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # lockfiles 2 | package-lock.json 3 | yarn.lock 4 | 5 | # temp stuff 6 | tmp/ 7 | *.tmp 8 | *.bak 9 | _test* 10 | 11 | # logs 12 | *.stackdump 13 | *.log 14 | 15 | # Build 16 | node_modules/ 17 | 18 | # Built Web Extension files 19 | *.xpi 20 | *.zip 21 | 22 | # Windows crap 23 | Thumbs.db 24 | Desktop.ini 25 | 26 | # Mac crap 27 | .DS_Store 28 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to Misc-userscripts 2 | 3 | * [Getting Involved](#getting-involved) 4 | * [How To Report Issues, Or Make Requests](#how-to-report-issues-or-make-requests) 5 | * [Contributing Code](#contributing-code) 6 | * [Installation](#installation) 7 | * [Style Guide](#style-guide) 8 | * [Pull Requests](#pull-requests) 9 | * [Collaborators](#collaborators) 10 | * [Everyone else](#everyone-else) 11 | 12 | ## Getting Involved 13 | 14 | There are a number of ways to get involved with the development of these userscripts. Even if you've never contributed to an Open Source project before, we're always looking for help identifying issues. 15 | 16 | ## How to Report Issues, Or Make Requests. 17 | 18 | * First off make sure it's a new issue. Search the [issues](https://github.com/Mottie/Misc-userscripts/issues). 19 | * If there is an existing issue or feature request, then please feel free to add a comment or reaction! 20 | * If you have a question instead of an issue: 21 | * Please don't open a new issue. 22 | * Jump on [Gitter](https://gitter.im/Mottie) and leave me a message. 23 | * Or, ask the question on [Stackoverflow](http://stackoverflow.com/questions/tagged/userscripts) (tagged with `javascript` and `userscript`). 24 | * If you do open a new issue: 25 | * Report if the problem only occurs in a particular browser, operating system or userscript addon (e.g. Tampermonkey, GreaseMonkey, etc). 26 | * Please include any *relevant* code (posting the entire page of code usually isn't helpful). 27 | * Include any related errors show up in the console (press F12 in the browser and go to the console tab). 28 | * Add [screenshots](http://getgreenshot.org/), [animated gifs](http://www.cockos.com/licecap/), videos (check out [screenr](https://www.screenr.com/)) or funny cat pictures. You never know what might help! 29 | 30 | ## Contributing Code 31 | 32 | ### Installation: 33 | 34 | The only thing you must have is a browser extension or addon that handles userscripts - see [installation instructions](https://github.com/Mottie/Misc-userscripts#installation). 35 | 36 | ### Style Guide: 37 | 38 | * We're not too strict (royal "we"), just try to follow the style that is already being used in the code; see the set [`.eslintrc` rules](https://github.com/Mottie/Misc-userscripts/blob/master/.eslintrc) and/or [`.editorconfig`](https://github.com/Mottie/Misc-userscripts/blob/master/.editorconfig) file. 39 | * When naming variables: 40 | * Use names that describe the contents of the variable. I'm guilty of naming things `t` and `i`, but I'm slowly trying to rename them to make reading code and finding the variable in the code easier. 41 | * Use camel-casing as needed. 42 | * We like semicolons! 43 | * We like double quotes! 44 | * We like tabs! But, sometimes you'll find a script that is only using spaces... be consistent please. 45 | * We *try* to wrap all lines at 80 characters. It isn't always possible, like in the metadata at the top, but please wrap the rest of the code at that limit. 46 | 47 | ### Pull Requests: 48 | 49 | #### Collaborators 50 | 51 | * You have permission to push changes to the master branch. 52 | * Please bump the userscript version once; multiple commits per release will only need to modify the version once. 53 | * Optional - these are maintenance things I do for every release, feel free to leave them for me if you don't feel like it: 54 | * Change the "Updated" column in the main README.md for the associated script. 55 | * Bump the main repository version number in the `package.json` file. 56 | * Add a matching version tag for the release. 57 | * Update the associated userscript's change log (e.g. here is a link to the [Greasy-Fork-Total-Installs userscript wiki page](https://github.com/Mottie/Misc-userscripts/wiki/Greasy-Fork-Total-Installs#change-log)) with whatever commits were included. 58 | * GreasyFork will automatically update to match the new version. 59 | * OpenUsersJS will need some coaxing to update.... I'll have to do this on my own since the userscripts are associated with my account. 60 | 61 | #### Everyone else 62 | 63 | * Before opening a pull request, please make sure that your code is on a *fork* of the master. This is really for your own convenience: it's easy for us to accept your pull request from your master branch, but it's problematic for your fork when you want to pull the changes back and your master branch has diverged from upstream's master branch. 64 | * Please check your changes! 65 | * Check the linting; use `npm run lint`. If you are using [Atom](https://atom.io/) or an editor that supports use of eslint through checking the `.eslintrc` file or the `.editorconfig` file. An extra linting package may need to be installed. Otherwise, check your code by copying and pasting it into http://jshint.com/. 66 | * There aren't any unit tests associated with these userscripts... I'm not even sure if it is possible to automatate testing of userscripts... but a quick manual test of the userscript to make sure there are no console errors (press F12 then select the `console` tab) during use would be awesome! 67 | * There is no need to open an issue, then create a pull request. Fork this repository, make your changes and create the pull request. Then in the pull request, add any comments about your changes there. 68 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2012-2017 Rob Garrison 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Misc userscripts [![tag](https://img.shields.io/github/tag/Mottie/Misc-userscripts.svg)](https://github.com/Mottie/Misc-userscripts/tags) 2 | 3 | Userscripts to add functionality to miscellaneous sites. 4 | 5 | ## Installation 6 | 7 | 1. Make sure you have user scripts enabled in your browser (these instructions refer to the latest versions of the browser): 8 | 9 | * Firefox - install [Greasemonkey](https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/). 10 | * Chrome - install [Tampermonkey](https://tampermonkey.net/?ext=dhdg&browser=chrome). 11 | * Opera - install [Tampermonkey](https://tampermonkey.net/?ext=dhdg&browser=opera) or [Violent Monkey](https://addons.opera.com/en/extensions/details/violent-monkey/). 12 | * Safari - install [Tampermonkey](https://tampermonkey.net/?ext=dhdg&browser=safari). 13 | * Dolphin - install [Tampermonkey](https://tampermonkey.net/?ext=dhdg&browser=dolphin). 14 | * UC Browser - install [Tampermonkey](https://tampermonkey.net/?ext=dhdg&browser=ucweb). 15 | 16 | 2. Get information or install: 17 | * Learn more about the userscript by clicking on the named link. You will be taken to the specific wiki page. 18 | * Install a script directly from GitHub by clicking on the "install" link in the table below. 19 | * Install a script from [GreasyFork](https://greasyfork.org/en/users/24847-mottie) (GF) from the userscript site page 20 | * Or, install the scripts from [OpenUserJS](https://openuserjs.org/users/Mottie/scripts) (OU).

21 | 22 | | Userscript Wiki | Direct
Install | Sites | Created | Updated | 23 | |-------------------------------------------|:-------------------:|:---------------------------:|:----------:|:----------:| 24 | | [Cryptokitty rare highlighter][gfti-wiki] | [install][ckrh-raw] | [GF][ckrh-gf] [OU][ckrh-ou] | 2017.12.11 | 2018.07.12 | 25 | | [Greasy Fork Copy Code][gfcc-wiki] | [install][gfcc-raw] | [GF][gfcc-gf] [OU][gfcc-ou] | 2021.03.21 | 2021.03.21 | 26 | | [Greasy Fork Total Installs][gfti-wiki] | [install][gfti-raw] | [GF][gfti-gf] [OU][gfti-ou] | 2017.09.12 | 2017.09.12 | 27 | 28 | 29 | [ckrh-wiki]: https://github.com/Mottie/Misc-userscripts/wiki/Cryptokitty-Rare-Highlighter 30 | [gfti-wiki]: https://github.com/Mottie/Misc-userscripts/wiki/Greasy-Fork-Total-Installs 31 | [gfcc-wiki]: https://github.com/Mottie/Misc-userscripts/wiki/Greasy-Fork-Copy-Code 32 | 33 | [ckrh-raw]: https://raw.githubusercontent.com/Mottie/Misc-userscripts/master/cryptokitty-rare-highlighter.user.js 34 | [gfcc-raw]: https://raw.githubusercontent.com/Mottie/Misc-userscripts/master/greasy-fork-copy-code.user.js 35 | [gfti-raw]: https://raw.githubusercontent.com/Mottie/Misc-userscripts/master/greasy-fork-total-installs.user.js 36 | 37 | [ckrh-gf]: https://greasyfork.org/en/scripts/36269-cryptokitty-rare-highlighter 38 | [gfcc-gf]:https://greasyfork.org/en/scripts/423726-greasyfork-copy-code-snippet 39 | [gfti-gf]: https://greasyfork.org/en/scripts/33064-greasy-fork-total-installs 40 | 41 | [ckrh-ou]: https://openuserjs.org/scripts/Mottie/Cryptokitty_rare_highlighter 42 | [gfcc-ou]: https://openuserjs.org/scripts/Mottie/GreasyFork_Copy_Code_Snippet 43 | [gfti-ou]: https://openuserjs.org/scripts/Mottie/Greasy_Fork_Total_Installs 44 | 45 | ## Updating 46 | 47 | Userscripts are set up to automatically update. You can check for updates from within the Greasemonkey or Tampermonkey menu, or click on the install link again to get the update. 48 | 49 | Each individual userscript's change log is contained on its individual wiki page. 50 | 51 | ## Issues 52 | 53 | Please report any userscript issues within this repository's [issue section](https://github.com/Mottie/Misc-userscripts/issues). Greasyfork messages are also received, but not as easily tracked. Thanks! 54 | 55 | ## Contributions 56 | 57 | If you would like to contribute to this repository, please... 58 | 59 | 1. Fork 60 | 2. Make changes (please read the [contribution guidelines](./CONTRIBUTING.md) and abide by them) 61 | 3. Create a pull request! 62 | 63 | ## Other userscripts not hosted here: 64 | 65 | * [GitHub userscripts](https://github.com/Mottie/GitHub-userscripts) 66 | * [GitHub Dark Script](https://github.com/StylishThemes/GitHub-Dark-Script) 67 | * [Github Monospace Font Toggle](https://greasyfork.org/en/scripts/18787-github-monospace-font-toggle) (also part of GitHub Dark Script) 68 | * [GitHub Diff File Toggle](https://greasyfork.org/en/scripts/18788-github-diff-file-toggle) (also part of GitHub Dark Script) 69 | * [GitHub Toggle Code Wrap](https://greasyfork.org/en/scripts/18789-github-toggle-code-wrap) (also part of GitHub Dark Script) 70 | * [GitHub Custom Emojis](https://github.com/StylishThemes/GitHub-Custom-Emojis) 71 | * [GitHub Make Tooltips](https://greasyfork.org/en/scripts/22194) 72 | * [Bitbucket userscripts](https://bitbucket.org/mottie/bitbucket-userscripts) 73 | * [GitLab userscript](https://gitlab.com/Mottie/GitLab-userscripts) 74 | -------------------------------------------------------------------------------- /cryptokitty-rare-highlighter.user.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @name Cryptokitty rare highlighter 3 | // @version 2.0.0 4 | // @description A userscript that makes rare cryptokitty cattributes more noticeable 5 | // @license MIT 6 | // @author Rob Garrison 7 | // @namespace https://github.com/Mottie 8 | // @include https://www.cryptokitties.co/* 9 | // @run-at document-idle 10 | // @grant GM_getValue 11 | // @grant GM_setValue 12 | // @grant GM_xmlhttpRequest 13 | // @connect cryptokittydex.com 14 | // @icon https://www.cryptokitties.co/icons/apple-icon-120x120.png 15 | // @updateURL https://raw.githubusercontent.com/Mottie/Misc-userscripts/master/cryptokitty-rare-highlighter.user.js 16 | // @downloadURL https://raw.githubusercontent.com/Mottie/Misc-userscripts/master/cryptokitty-rare-highlighter.user.js 17 | // ==/UserScript== 18 | (() => { 19 | "use strict"; 20 | 21 | let data = GM_getValue("cryptoKittyData", { 22 | updated: 0, 23 | list: {} 24 | }); 25 | const checkDelay = 8.64e7; // 24 hours in milliseconds 26 | const maxIterations = 1000; 27 | const rarity = { 28 | "gold": number => number <= 10, 29 | "purple": number => number <= 100, 30 | "orange": number => number <= 500, 31 | "blue": number => number <= 1000, 32 | "green": number => number <= 10000, 33 | "black": number => number <= 100000, 34 | "silver": number => number > 100000 35 | }; 36 | 37 | function buildList() { 38 | GM_xmlhttpRequest({ 39 | method: "GET", 40 | url: "https://cryptokittydex.com/", 41 | onload: response => extractList(response.responseText) 42 | }); 43 | } 44 | 45 | function extractList(page = "") { 46 | let pos1 = 0, 47 | pos2 = 0, 48 | counter = 0, 49 | name = ""; 50 | const linkPattern = ""; 52 | 53 | // Add counter to prevent infinite loops 54 | while ( 55 | counter < maxIterations && 56 | (pos1 = page.indexOf(linkPattern, pos2)) > -1 57 | ) { 58 | pos2 = page.indexOf(">", pos1); 59 | pos1 = page.indexOf(numberPattern, pos2); 60 | name = page.substring(pos2 + 1, pos1).trim(); 61 | pos1 += numberPattern.length; 62 | pos2 = page.indexOf("", pos1); 63 | data.list[name] = parseInt(page.substring(pos1, pos2).replace(/,/g, ""), 10); 64 | counter++; 65 | } 66 | data.updated = new Date().getTime(); 67 | GM_setValue("cryptoKittyData", data); 68 | } 69 | 70 | const getRarity = number => Object.keys(rarity).find(r => rarity[r](number)); 71 | const span = document.createElement("small"); 72 | span.className = "Cattribute-type"; 73 | 74 | function init() { 75 | if (document.querySelector(".Cattribute-title")) { 76 | if (new Date().getTime() > data.updated + checkDelay) { 77 | buildList(); 78 | } 79 | const date = new Date(data.updated) 80 | .toISOString() 81 | .substring(0, 19) 82 | .replace("T", " "); 83 | document.querySelectorAll(".Cattribute-title").forEach(el => { 84 | const number = data.list[el.textContent.trim()] || -1; 85 | if (number > -1 && !el.classList.contains("ckrh-processed")) { 86 | el.classList.add("ckrh-processed"); 87 | el.style.color = getRarity(number); 88 | span.textContent = number; 89 | span.title = `Last Updated from CryptoKittydex on ${date} UTC`; 90 | el.insertAdjacentElement("afterend", span.cloneNode(true)); 91 | } 92 | }); 93 | } 94 | } 95 | 96 | let timer; 97 | new MutationObserver(() => { 98 | clearTimeout(timer); 99 | timer = setTimeout(() => init(), 500); 100 | }).observe(document.body, { 101 | childList: true, 102 | subtree: true 103 | }); 104 | })(); 105 | -------------------------------------------------------------------------------- /greasy-fork-copy-code.user.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @name GreasyFork Copy Code Snippet 3 | // @version 0.1.1 4 | // @description A userscript that adds a copy code button to the greasyfork code page 5 | // @license MIT 6 | // @author Rob Garrison 7 | // @namespace https://github.com/Mottie 8 | // @match https://greasyfork.org/*/scripts/*/code 9 | // @match https://sleazyfork.org/*/scripts/*/code 10 | // @run-at document-idle 11 | // @grant none 12 | // @icon https://www.google.com/s2/favicons?domain=greasyfork.org 13 | // @require https://greasyfork.org/scripts/398877-utils-js/code/utilsjs.js?version=895926 14 | // @updateURL https://raw.githubusercontent.com/Mottie/Misc-userscripts/master/greasy-fork-copy-code.user.js 15 | // @downloadURL https://raw.githubusercontent.com/Mottie/Misc-userscripts/master/greasy-fork-copy-code.user.js 16 | // ==/UserScript== 17 | /* global $ */ 18 | (() => { 19 | "use strict"; 20 | 21 | const copyCode = () => { 22 | const code = $(".code-container"); 23 | if ("clipboard" in navigator) { 24 | return navigator.clipboard.writeText(code.innerText || ""); 25 | } 26 | 27 | const selection = getSelection(); 28 | if (selection == null) { 29 | return Promise.reject(new Error()); 30 | } 31 | 32 | selection.removeAllRanges(); 33 | 34 | const range = document.createRange(); 35 | range.selectNodeContents(code); 36 | selection.addRange(range); 37 | 38 | document.execCommand("copy"); 39 | selection.removeAllRanges(); 40 | return Promise.resolve(); 41 | }; 42 | 43 | const installArea = $("#install-area"); 44 | if (installArea && !$(".copy-code-link")) { 45 | const copyLink = document.createElement("a"); 46 | copyLink.href = "#"; 47 | copyLink.className = "install-link copy-code-link"; 48 | copyLink.style.marginLeft = "0.5rem"; 49 | copyLink.innerHTML = ` 50 | 53 | Copy code to clipboard`; 54 | copyLink.onclick = async event => { 55 | event.preventDefault(); 56 | await copyCode(); 57 | }; 58 | 59 | installArea.appendChild(copyLink); 60 | } 61 | })(); 62 | 63 | -------------------------------------------------------------------------------- /greasy-fork-total-installs.user.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @name Greasy Fork Total Installs 3 | // @version 0.1.1 4 | // @description A userscript that shows the total installs for any page on Greasy Fork 5 | // @license MIT 6 | // @author Rob Garrison 7 | // @namespace https://github.com/Mottie 8 | // @include https://greasyfork.org/* 9 | // @run-at document-idle 10 | // @grant none 11 | // @icon https://greasyfork.org/assets/blacklogo16-bc64b9f7afdc9be4cbfa58bdd5fc2e5c098ad4bca3ad513a27b15602083fd5bc.png 12 | // @updateURL https://raw.githubusercontent.com/Mottie/Misc-userscripts/master/greasy-fork-total-installs.user.js 13 | // @downloadURL https://raw.githubusercontent.com/Mottie/Misc-userscripts/master/greasy-fork-total-installs.user.js 14 | // ==/UserScript== 15 | (() => { 16 | "use strict"; 17 | 18 | const wrapper = $("#browse-script-list, #user-script-list"); 19 | if (wrapper) { 20 | const els = [...wrapper.querySelectorAll("dd.script-list-total-installs")]; 21 | const nonDigits = /[^\d]/g; 22 | const getNum = txt => parseFloat(txt.replace(nonDigits, "")); 23 | const total = els.reduce((acc, el) => acc + getNum(el.textContent), 0); 24 | if (total) { 25 | const span = document.createElement("span"); 26 | let target = $("#script-list-sort .list-option:nth-child(2)"); 27 | span.textContent = ` (${(total).toLocaleString()})`; 28 | if ($("a", target)) { 29 | target = $("a", target); 30 | } 31 | target.appendChild(span); 32 | } 33 | } 34 | 35 | function $(str, el) { 36 | return (el || document).querySelector(str); 37 | } 38 | 39 | })(); 40 | -------------------------------------------------------------------------------- /images/cryptokitties-after.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mottie/Misc-userscripts/96a63a93ead77b994f077d9a67d930bcfb09d139/images/cryptokitties-after.png -------------------------------------------------------------------------------- /images/cryptokitties-before.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mottie/Misc-userscripts/96a63a93ead77b994f077d9a67d930bcfb09d139/images/cryptokitties-before.png -------------------------------------------------------------------------------- /images/greasy-fork-copy-code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mottie/Misc-userscripts/96a63a93ead77b994f077d9a67d930bcfb09d139/images/greasy-fork-copy-code.png -------------------------------------------------------------------------------- /images/greasy-fork-total-installs.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mottie/Misc-userscripts/96a63a93ead77b994f077d9a67d930bcfb09d139/images/greasy-fork-total-installs.gif -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "misc-userscripts", 3 | "version": "1.0.7", 4 | "description": "Userscripts to add functionality to miscellaneous sites", 5 | "license": "MIT", 6 | "repository": "Mottie/Misc-userscripts", 7 | "author": { 8 | "name": "Rob Garrison", 9 | "email": "wowmotty@gmail.com", 10 | "url": "https://github.com/Mottie" 11 | }, 12 | "devDependencies": { 13 | "eslint": "^5.0.1" 14 | }, 15 | "scripts": { 16 | "lint": "eslint *.js || true" 17 | } 18 | } 19 | --------------------------------------------------------------------------------