Skip to main content

API client for Truth Social

Project description

truthbrush

Truthbrush is an API client for Truth Social. Truthbrush is built and maintained by the Stanford Internet Observatory.

Currently, this tool can:

  • Search for users, statuses, groups, or hashtags
  • Pull a user's statuses
  • Pull the list of "People to Follow" or suggested users
  • Pull "trending" hashtags
  • Pull "trending" Truth posts
  • Pull ads
  • Pull a user's metadata
  • Pull "trending" groups
  • Pull list of suggested groups
  • Pull "trending" group hashtags

Truthbrush is designed for academic research, open source intelligence gathering, and data archival. It pulls all of the data from the publicly accessible API.

Installation

Truthbrush is not yet available on PyPI. To install it, run pip install git+https://github.com/stanfordio/truthbrush.git, or clone the repository and run pip3 install .. Provided your pip is setup correctly, this will make truthbrush available both as a command and as a Python package. Note that Truthbrush requires Python 3.9 or higher.

After installation, you will need to set your Truth Social username and password as environmental variables.

export TRUTHSOCIAL_USERNAME=foo

export TRUTHSOCIAL_PASSWORD=bar

You may also set these variables in a .env file in the directory from which you are running Truthbrush.

CLI Usage

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

Options:
  --help     Show this message and exit.


Commands:
  search             Search for users, statuses, groups, or hashtags.
  statuses           Pull a user's statuses.
  suggestions        Pull the list of suggested users.
  tags               Pull trendy tags.
  trends             Pull trendy Truths.
  ads                Pull ads.
  user               Pull a user's metadata.
  likes              Pull the list of users who liked a post
  group-tags         Pull trending group tags. 
  group-trends       Pull trending groups.
  group-suggestions  Pull list of suggested groups.

Search for users, statuses, groups, or hashtags

truthbrush search --searchtype [accounts|statuses|hashtags|groups] QUERY

Pull all statuses (posts) from a user

truthbrush statuses HANDLE

Pull "People to Follow" (suggested) users

truthbrush suggestions

Pull trendy tags

truthbrush tags

Pull ads

truthbrush ads

Pull all of a user's metadata

truthbrush user HANDLE

Pull the list of users who liked a post

truthbrush likes POST TOP_NUM

Pull trending group tags

truthbrush group-tags

Pull trending groups

truthbrush group-trends      

Pull list of suggested groups

truthbrush group-suggestions

Contributing

Contributions are encouraged! For small bug fixes and minor improvements, feel free to just open a PR. For larger changes, please open an issue first so that other contributors can discuss your plan, avoid duplicated work, and ensure it aligns with the goals of the project. Be sure to also follow the code of conduct. Thanks!

Development setup (ensure you have Poetry installed):

poetry install
poetry shell
truthbrush --help # will use your local copy of truthbrush

If you prefer not to install Poetry in your root environment, you can also use Conda:

conda create -n truthbrush-env python=3.9
conda activate truthbrush-env

conda install -c conda-forge poetry
poetry install

To run the tests:

pytest

# optionally run tests with verbose logging outputs:
pytest --log-cli-level=DEBUG -s

Please format your code with black:

black .

Wishlist

Support for the following capabilities is planned:

  • ...nothing right now! (Got an idea? Submit an issue/PR!)

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

truthbrush-0.1.8.tar.gz (11.3 kB view details)

Uploaded Source

Built Distribution

truthbrush-0.1.8-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

File details

Details for the file truthbrush-0.1.8.tar.gz.

File metadata

  • Download URL: truthbrush-0.1.8.tar.gz
  • Upload date:
  • Size: 11.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for truthbrush-0.1.8.tar.gz
Algorithm Hash digest
SHA256 1ee989c0db492a9679176f9fe99416f851adb5767cefc47d9bf5a5a278b24bab
MD5 62fc28c5f91ccc003cceddfbed29bcfc
BLAKE2b-256 b3269da2a67df777e06e8a99ea34b1e1dc56d9c9e831a633211c27445e6f108d

See more details on using hashes here.

File details

Details for the file truthbrush-0.1.8-py3-none-any.whl.

File metadata

  • Download URL: truthbrush-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 12.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for truthbrush-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 f5f7682143c8d2508e32cd1b7c9bcc36cd152890a116b41172ceaa87521bac03
MD5 07b8559a229ca3ca771364078116549c
BLAKE2b-256 66b2cf8bfd2376f62f3ef87d97205b3623cd7f307ee87ebabfd1d92a80c89139

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