Skip to content

Latest commit

 

History

History

tagger

Firefox (addon)

Chrome (userscript)

Description

RTagger is a browser extension or userscript that will tag users on Reddit according to their post history - the subreddits they have commented in, and/or the contents of their comments (the number of matches for each named capture group in the supplied regex).

You can point it to your own installation of the server software - see Configuration section below.

Installation

Firefox users can install the addon by opening the rtagger.xpi file from the releases page with their Firefox browser.

Users of other browsers can install the userscript into their Greasemonkey/Tampermonkey/etc addon.

A Chrome extension is probably just a matter of transferring the fetch requests to a background script (as the script currently runs in the page's context, thereby having the same CORS and mixed content restrictions as Reddit's own javascript).

Configuration

By default, the addon and the userscript point towards a server at https://104.197.15.19:8080. This is only a proof of concept server - I won't be updating the database as a priority. I haven't yet configured a Let's Encrypt certificate solution, so for now, if you are using this server, you have to explicitly allow traffic by navigating to https://104.197.15.19:8080 and clicking past the warnings.

It is running on a Google cloud instance, so the IP is a subset of Google cloud's. That means it may be caught by some domain filters, such as uBlock Origin.

If you want customisation - such as more tagged subreddits, and different colours - you should edit your addon preferences (or userscript, whichever you installed) to make it point to a different server.

To run your own instance of the rscraper-tagger-server, you would need to run the rscraper-tagger package. You would also need to point the server towards a MySQL/MariaDB database - for this, you'd need to install rscraper-init to (initialise it) and either rscraper-scraper or rscraper-io (to populate it). See the root instructions for how to do this.

There are multiple choices for the server software. There are example backends for - in increasing order of performance - Python's Flask package, Golang, and C++'s wangle framework.

Building

If you wish to build the xpi from source, navigate to the browser-addon directory and run ./build.

If you wish to build rscraper-tagger (the server executables), follow the instructions here.

Usage

Only works on the old Reddit style - you can view Reddit with this by default in your preferences on Reddit.

Requires a server running on the address and port number specified by your addon options or within the Greasemonkey script (default is 8080).

Usually this will be a local server instance, in which case you need to install the entire rscraper package yourself (see root). In the examples you can find both a Python flask server and a Go server, either of which should work.

However, you can also set it up to use server of your choosing at any given url - although in that case you would need to edit the addon by hand (see editing section below). In that case, the addon or Greasemonkey script is all that you will need.

Editing

AddOn

If you are not using a localhost server, you will need to edit the manifest and add your server's url to the permissions.

Then edit rtagger.js, and replace url += "://localhost:"; with the desired address.

Then rebuild with ./build, and reinstall.

Greasemonkey Script

Just edit the request url.

Related Projects

This module is similar to Reddit Pro Tools. Though while the latter is largely client-side code interacting with a central (closed-source?) server, this tagger has the minimal client-side processing, and almost all is done with native code on any specified server instance. The pros of RPT: it filters based on karma count, the central server can serve everyone. Cons: only available on Chrome, obfuscated analytics, far poorer performance (not very noticable for a few subreddits, but even then it's still worse than RTagger with almost 3000 tagged subreddits). In summary, I believe RPT suits the needs of most people fine; but this module might be useful as a supplementary tool for sleuths and moderators of larger subreddits, who would be dealing with larger lists of subreddits than the average user.