Reddit - Liberate your Reddit Chats. This tool will export your reddit chats into a plethora of formats

Overview

Rexit

Rexit - Liberate your Reddit Chats. This tool will export your Reddit chats into a plethora of formats

version license GitHub code size in bytes Ubuntu-latest

Tool to export Reddit chats into a variety of open formats (CSV, JSON, TXT).

Export your Reddit Chats

Usage: rexit.exe [OPTIONS] --formats <FORMATS>

Options:
  -f, --formats <FORMATS>  The formats to export to. Options: csv,json,txt
  -t, --token              To use the bearer token flow, instead of username and password
      --debug              Allow debugging of Rexit
  -i, --images             Output images too (outputs to images folder)
  -o, --out <OUT>          What folder to output to [default: ./out]
  -h, --help               Print help
  -V, --version            Print version

Usage

Currently, you need to specify the formats, and it will ask for the username and password (or bearer token with that auth flow).

$ rexit --formats csv,json,txt --images
> Your Reddit Username: <USERNAME>
> Your Reddit Password: <PASSWORD>

It will save the files to the current directory. For CSV and TXT it is split by room. If an image (.jpg, .gif, .png, etc.) was sent the filename will be displayed as the message content, along with the prefix FILE.

Installation

You can use the files provided in the releases' page of this repository, install via cargo or brew or build from source.

Manual Install

  1. Download the build for your system (Windows or arm64-darwin)
  2. Use the terminal run Rexit with the arguments you want. (See Usage for details)

Cargo Install

$ cargo install rexit

Brew Install

To use brew you need to add my tap

$ brew tap mpult/mpult

Then install Rexit

$ brew install rexit

Building from source

  1. Install rust
  2. Clone the repository
  3. Run:
$ cargo install --file .

Contributing

To keep the docs focused on the user experience the contributing and technical docs were implemented through cargo doc.

To access these:

$ cargo doc --open

In general all contributions are welcome. I would appreciate if you'd create an issue beforehand, in order for me to plan things out nicely.

License

GNU General Public License, Version 3

Comments
  • Electron/feat/download images

    Electron/feat/download images

    This PR adds image support for the following formats:

    • jpeg
    • png
    • gif Or, in other words all the image formats Reddit supports. This PR also adds a new dependency, Url, for parsing urls.
    opened by oneElectron 2
  • added debug flag

    added debug flag

    This adds the debug flag to Rexit. It trusts untrusted certificates which is useful for debuging

    Edit: This PR also adds another library, console, which allows the developer to print things in different colors easily

    opened by oneElectron 1
  • Adding batching support

    Adding batching support

    This PR redid the way of getting messages to be

    1. More efficient (using /messages now
    2. Enables batching (Infinite message count)

    Also now the files are all in a /out folder. It is cleared when Rexit runs (keep that in mind)

    opened by MPult 0
  • Add a --debug flag to accept https proxies that don't have valid certs

    Add a --debug flag to accept https proxies that don't have valid certs

    Allow setting a --debug flag to allow https proxies that don't have valid certs. This is very useful for debugging and it will be made very clear to the user that this flag is a security risk

    opened by oneElectron 0
  • Improve docs

    Improve docs

    • [x] Readme should only include information relevant for USER
    • [x] Secondary doc should explain the functioning of rexit with many links to the matrix spec. also info on developing etc.
    • [ ] readme should show output formats
    opened by MPult 0
  • Add next batch feature

    Add next batch feature

    Currently only the first batch of sync data is analysied, it needs to be determined if relavent data is present in the next batches. if yes then that timeline is appended to the initial sync data (maybe save to temp file), same goes for the state > events attribute

    Waiting for Merge 
    opened by MPult 0
  • Download Images

    Download Images

    Add a CLI flag that will download the images.

    Currently the mxc:// url is displayed as a message, but since this is a cumbersome thing to do Rexit should provide a function for this.

    GET /_matrix/media/v3/download/{serverName}/{mediaId} is the URL SPEC

    opened by MPult 0
  • Polish main functionality

    Polish main functionality

    There are a few tidbits that need to be polished before it can be accepted as a release.

    • [x] #5
    • [x] Replace user ID with display name
    • [x] Set default log level as INFO
    • [x] Replace Image placeholder with link to image
    • [X] Refactor
    • [x] Add username & password login option
    opened by MPult 0
  • Add Exporting

    Add Exporting

    This is a essential part of this project, thus it has a high priority.

    • [x] Implement method of internal data transfer to export function
    • [x] Implement exporting
      • [x] TXT
      • [x] JSON
      • [x] CSV
    opened by MPult 0
  • check in Cargo.lock: project is an executable

    check in Cargo.lock: project is an executable

    And having Cargo.lock is useful even for libs for caching, etc.

    Also remove the duplicated /target ignore in gitignore (choosing the looser match so it will match a file so folks with symlinks for target will have it ignored).

    opened by jmesmon 0
Releases(v1.0.1)
  • v1.0.1(May 2, 2023)

    Reddit changed the way how logins work so this release fixes this. Also, Rexit will now also export saved posts. (Image download pending; I wanted to get the bugfix out quickly)

    What's Changed

    • Fix login bug by @oneElectron
    • Add Export saved posts option by @MPult in https://github.com/MPult/Rexit/pull/24

    Full Changelog: https://github.com/MPult/Rexit/compare/v1.0.0...v1.0.1

    Source code(tar.gz)
    Source code(zip)
    rexit-v1.0.1-linux.zip(3.75 MB)
    rexit-v1.0.1-macos.zip(2.63 MB)
    rexit-v1.0.1-windows.zip(2.22 MB)
  • v1.0.0(Apr 30, 2023)

    There aren't many new features in this release, but that doesn't mean that we weren't busy. We refactored the entire codebase, in doing so we created the ReAPI internal library. This will allow us to develop with a lot more agility. Also we added homebrew as a installation method.

    What does this mean for you? Well it means that new features will come quick, were looking into also exporting saved posts etc.

    PS: If there's interest we might make ReAPI easy for use as a standalone library. It handles all API stuff for Rexit.

    What's Changed

    • Create internal API library by @MPult in https://github.com/MPult/Rexit/pull/22
    • Add Homebrew support by @oneElectron

    Full Changelog: https://github.com/MPult/Rexit/compare/v0.1.1...v1.0.0

    Source code(tar.gz)
    Source code(zip)
    rexit-v1.0.0-arm64-darwin(6.95 MB)
    rexit-v1.0.0-windows.exe(5.64 MB)
  • v0.1.1(Apr 24, 2023)

    We have made massive improvements to Rexit, I really hope nothing is wrong with this version.

    What's Changed

    • Adding batching support by @MPult in https://github.com/MPult/Rexit/pull/19
    • Refactor & Implement Testing by @oneElectron in https://github.com/MPult/Rexit/pull/20

    Full Changelog: https://github.com/MPult/Rexit/compare/v0.1.0...v0.1.1

    Source code(tar.gz)
    Source code(zip)
  • v0.1.0(Apr 22, 2023)

    Warning: there are still a few bugs and im not completly happy with how it is. (hence not v1.0.0) Mainly the batching: this is comming up soom ish.

    What's Changed

    Litteraly everything - this is the first release

    • Add exporting by @MPult in https://github.com/MPult/Rexit/pull/4
    • merge Feature/ci to main for CI testing by @oneElectron in https://github.com/MPult/Rexit/pull/6
    • Add options for export formats by @MPult in https://github.com/MPult/Rexit/pull/7
    • Polish by @MPult in https://github.com/MPult/Rexit/pull/11
    • added debug flag by @oneElectron in https://github.com/MPult/Rexit/pull/13
    • Electron/feat/download images by @oneElectron in https://github.com/MPult/Rexit/pull/14
    • Improving the docs by @MPult in https://github.com/MPult/Rexit/pull/15

    New Contributors

    • @MPult made their first contribution in https://github.com/MPult/Rexit/pull/4
    • @oneElectron made their first contribution in https://github.com/MPult/Rexit/pull/6

    Full Changelog: https://github.com/MPult/Rexit/commits/v0.1.1

    Source code(tar.gz)
    Source code(zip)
Owner
Maximilian Pult
Hi, im a all-round developer and tech enthusiast. Currently System-Administrator. Intrested in Backend, Engineering and Electronics
Maximilian Pult
This is a tool to evaluate or export code from Markdown files.

Evaluate Markdown This is a tool to evaluate or export code from Markdown files. Why? Because I like writing Markdown files with code snippets (it's g

Balazs Nadasdi 5 Apr 25, 2023
Rust low-level minimalist APNG writer and PNG reader with just a few dependencies with all possible formats coverage (including HDR).

project Wiki https://github.com/js29a/micro_png/wiki at glance use micro_png::*; fn main() { // load an image let image = read_png("tmp/test.

jacek SQ6KBQ 8 Aug 30, 2023
ripsecrets is a command-line tool to prevent committing secret keys into your source code.

ripsecrets is a command-line tool to prevent committing secret keys into your source code. ripsecrets has a few features that distinguish it from other secret scanning tools:

Brian Smith 588 Dec 30, 2022
A tool for transposing harmonica tabs into different positions and tunings

A tool for transposing harmonica tabs into different positions and tunings

null 12 Jun 9, 2022
hj is a command line tool to convert HTTP/1-style text into JSON

hj hj is a command line tool to convert HTTP/1-style text into JSON. This command is inspired by yusukebe/rj, which is a standalone HTTP client that s

FUJI Goro 10 Aug 21, 2022
Tool for mass import of hosts into Zabbix (and other API functions)

zabbix-tools A CLI tool for interacting with Zabbix API built in Rust. Designed for Zabbix 6.0. Functions added to test API and add hosts manually or

null 1 Apr 21, 2022
A tool to convert old and outdated "characters" into the superior Rustcii-Encoding.

rustcii A tool to convert old and outdated "characters" into the superior Rustcii-Encoding. Speak your mind. Blazingly ( ?? ) fast ( ?? ). Github | cr

null 8 Nov 16, 2022
ABQ is a universal test runner that runs test suites in parallel. It’s the best tool for splitting test suites into parallel jobs locally or on CI

?? abq.build   ?? @rwx_research   ?? discord   ?? documentation ABQ is a universal test runner that runs test suites in parallel. It’s the best tool f

RWX 13 Apr 7, 2023
a command-line tool that transforms a Git repository into a minimal format for ChatGPT queries

gprepo /dʒiːpiːˈɹi:pi:oʊ/ a command-line tool that transforms a Git repository into a minimal format for ChatGPT queries. Features Excludes LICENSE an

null 6 Apr 20, 2023
Tool to allow parsing large JSON files without laoding into memory

Tool to allow parsing large JSON files without laoding into memory. Developed in Rust with adapters in other programming langauges for easy adoption

Salaah Amin 7 Jul 11, 2023
A simple (but really fast!) CLI tool to convert an epub into a text file.

epub_to_txt A simple (but really fast!) CLI tool written in Rust to convert an epub into a text file (in Markdown format). Usage epub_to_txt filename.

Darren Mothersele 3 Jul 30, 2023
zigfi is an open-source stocks, commodities and cryptocurrencies price monitoring CLI app, written fully in Rust, where you can organize assets you're watching easily into watchlists for easy access on your terminal.

zigfi zigfi is an open-source stocks, commodities and cryptocurrencies price monitoring CLI app, written fully in Rust, where you can organize assets

Aldrin Zigmund Cortez Velasco 18 Oct 24, 2022
FileSorterX is an automatic file sorting application that sorts your files into folders based on their file extension

FileSorterX is an automatic file sorting application that sorts your files into folders based on their file extension. With FileSorterX, you can easily keep your files organized and find what you need quickly.

Xanthus 22 Apr 4, 2023
A Yocto setup and management tool that helps you keep your environment up-to-date and in-sync with your team

yb (Yocto Buddy) yb is designed to make it easy to setup and (perhaps more importantly) keep Yocto environments up-to-date and in-sync with your team.

null 13 Oct 31, 2022
Turn static CLI commands into TUIs with ease

lazycli Turn static CLI commands into TUIs with ease Demo: Usage Pick a command that spits out either a list or table of content, like ls, docker ps,

Jesse Duffield 255 Dec 20, 2022
📜🔁🎶 A CLI which converts morse code into sound

morse2sound ?? A CLI which converts morse code to sound Big shoutout to Br1ght0ne for guiding me how to use Rust on stream

Ilya Revenko 15 Dec 4, 2022
parse command-line arguments into a hashmap and vec of positional args

parse command-line arguments into a hashmap and vec of positional args This library doesn't populate custom structs, format help messages, or convert types.

James Halliday 17 Aug 11, 2022
decode a byte stream of varint length-encoded messages into a stream of chunks

length-prefixed-stream decode a byte stream of varint length-encoded messages into a stream of chunks This crate is similar to and compatible with the

James Halliday 4 Feb 26, 2022
Turbine is a toy CLI app for converting Rails schema declarations into equivalent type declarations in other languages.

Turbine Turbine is a toy CLI app for converting Rails schema declarations into equivalent type declarations in other languages. It’s described as a to

Justin 2 Jan 21, 2022