Skip to content

mjpieters/SO-userscripts

Repository files navigation

SO-userscripts

current version MIT license

User scripts for use on Stack Exchange websites. You can install these by clicking on the install link for each individual script from their individual README files, listed below.

Scripts

  • Connected users: Userscript to aid investigation of connected users on the moderator-only IP cross-reference view. Requires ♦ moderator access.

Deprecated

These scripts are deprecated and no longer receive support.

License

All scripts are MIT licensed.

Issues and suggestions

GitHub issues GitHub pull requests

Feature requests and bug reports are most welcome, please use the GitHub issue tracker. Issues with accompanying pull requests are even more awesome!

Development

Scripts are written in TypeScript and compiled and packaged as userscripts (JavaScript files with a header), using webpack.

Please install nvm and yarn, then run nvm use and yarn install to get set up.

Then run yarn run serve to start a web server on port 8842, serving the scripts from an index page. Alternatively, run yarn run build:dev to create a local development build in dist/. You can alter the port number by setting the DEV_SERVER_PORT environment variable.

Commits must follow the Conventional Commits pattern; if the commit affects a specific userscript, use the script directory name as the tag (e.g. fix(connected-users): ...). A commitlint configuration is provided and commit messages are verified at commit time with Husky.

Reloading scripts under development

Open the yarn run serve development server URL in your browser and pick one of the following options to facilitate reloading changes:

  • Install the .user.js file, your userscript manager should automatically install it when you click on it. Some managers have explicit support for watching for updates; e.g. when using ViolentMonkey, just leave the ViolentMonkey tab open and revisit that tab to trigger a reload.

  • Install the proxy.user.js variant, as this way you can just reload your browser page for the usermanager to pick up the latest changes (you may have to reload twice, e.g. when using Tampermonkey) pick up changes). You may have to configure your user manager to always refresh @require resources (Tampermonkey: Settings -> Externals -> Update Interval -> Always).

Remember to switch back to the released version once you are done, especially when using the proxy.user.js technique.

Releasing

A GitHub workflow handles releasing from the main branch, updating the version number based on the conventional commit messages pushed to the branch since the last release.