Skip to main content

Toolkit for Dissenter

Project description

Ressenter

Ressenter is a command line tool to pull content from Dissenter.com, a browser-based social network operated by Gab.com. (We will not reward either of these domains with hyperlinks.)

This tool does not require any authentication with Dissenter; all the data it pulls is available publicly.

Currently, this tool can:

  • Reliably pull all comments made on Dissenter within the last seven days
  • Pull the current 'top' comments
  • Pull the current 'controversial' comments
  • Pull the current trending URLs
  • Pull all the comments for a particular URL
  • Pull all the comments made by a particular user

Robustness

This tool was made by reverse engineering Dissenter's API. (To be fair, it wasn't that hard.) Because we have no insight into Dissenter's internals, there's no guarantee that this tool provides an exhaustive or reliable archive of Dissenter content.

For example, we don't know whether comments become inaccessible after some period of time, or whether there is a limit on how many comments we can pull from any particular user.

Usage

Usage: ressenter [OPTIONS] COMMAND [ARGS]...

Options:
  --format [jsonl|csv]  output format
  --help                Show this message and exit.

Commands:
  comments  Pull all the most recent comments
  trending  Pull the current trending URLs
  url       Pull comments for a particular URL.
  user      Pull all the comments of a particular user

Ressenter can output data to jsonl and csv (the default is jsonl). Just pass the --format option before the subcommand (e.g., ressenter --format=csv comments). All data is currently written to stdout; to save output to a file, use pipes (e.g., ressenter comments > comments.jsonl).

comments

Usage: ressenter comments [OPTIONS]

  Pull all the most recent comments

Options:
  --sort [latest|controversial|top]
                                  comment sort order
  --after-id TEXT                 pull no earlier than this comment ID
  --after-time TEXT               pull no comments posted earlier than this
                                  time

  --max INTEGER                   maximum number of comments to pull
  --help                          Show this message and exit.

trending

Usage: ressenter trending [OPTIONS]

  Pull the current trending URLs

Options:
  --help  Show this message and exit.

url

Usage: ressenter url [OPTIONS] URL

  Pull comments for a particular URL. Note that several comment metadata
  items (such as upvotes, downvotes, and comments) are not available when
  pulling comments from a URL.

Options:
  --sort [latest|controversial|top]
                                  comment sort order
  --after-id TEXT                 pull no earlier than this comment ID
  --after-time TEXT               pull no comments posted earlier than this
                                  time

  --max INTEGER                   maximum number of comments to pull
  --help                          Show this message and exit.

user

Usage: ressenter user [OPTIONS] USER

  Pull all the comments of a particular user, identified by their UID

Options:
  --sort [latest|controversial|top]
                                  comment sort order
  --after-id TEXT                 pull no earlier than this comment ID
  --after-time TEXT               pull no comments posted earlier than this
                                  time

  --max INTEGER                   maximum number of comments to pull
  --help                          Show this message and exit.

Playbook

Here are some common use cases:

Pull all the most recent comments

ressenter comments

Pull all the recent top comments

ressenter comments --sort=top

Pull all the recent controversial comments

ressenter comments --sort=controversial

Pull all comments made in the past hour

ressenter comments --after-time "one hour ago"

Pull all the current trending URLs

ressenter trending

Pull all of the comments for a particular URL

ressenter url https://www.facebook.com

Development

To run Ressenter locally, perform the following steps:

  1. Install dependencies with pipenv install
  2. Activate the virtual environment with pipenv shell
  3. Run the tool using main.py -- for example, ./main.py comments

Packaging and Publishing

  1. Make sure you have access to PyPI credentials with permission for the ressenter repository.
  2. Clear the dist/ folder (rm dist/*).
  3. Package everything with python setup.py sdist bdist_wheel.
  4. Check the packaging with twine check dist/*.
  5. Upload with twine upload dist/*.

Troubleshooting

If you work at the Stanford Internet Observatory, ping Miles McCain on Slack or via email to get help with Ressenter. To report bugs or submit feature requests, please open an issue.

Desired Features

There are a few features that this tool currently lacks, but that we'd like to add. We haven't yet found reliable ways to extract this data. (If you have, please let us know!)

  • Find the most recent URLs commented on
  • Iterate through all the URLs with comments
  • Iterate through all comments, instead of just those made in the past seven days

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ressenter-0.0.3.tar.gz (7.9 kB view details)

Uploaded Source

Built Distribution

ressenter-0.0.3-py3-none-any.whl (16.7 kB view details)

Uploaded Python 3

File details

Details for the file ressenter-0.0.3.tar.gz.

File metadata

  • Download URL: ressenter-0.0.3.tar.gz
  • Upload date:
  • Size: 7.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/51.3.3 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.5

File hashes

Hashes for ressenter-0.0.3.tar.gz
Algorithm Hash digest
SHA256 6dea9f54150b03295187e92e7cca30dfb94491d3ded8636ac0a0e631c445113b
MD5 a7e559aeacf7bf138603c7864bbbdfa6
BLAKE2b-256 6ee96390d7956d5c2d38b7a81368752de5ef07d20503f96fdce61079a612be1a

See more details on using hashes here.

File details

Details for the file ressenter-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: ressenter-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 16.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/51.3.3 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.5

File hashes

Hashes for ressenter-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 eabc5e14b40b34e556a4e8ce6428b39077185379fe014c96bcd4ae8e8fd4578f
MD5 7edc2d1e55a6d3567000deacb546f4b6
BLAKE2b-256 27558b0a24a356fbfb99115ef99a5e9a077551ae4339f0f39c838de5e61998a2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page