GithubHelp home page GithubHelp logo

kusold / shreddit Goto Github PK

View Code? Open in Web Editor NEW

This project forked from x89/shreddit

9.0 3.0 5.0 715 KB

Remove your comment history on Reddit as deleting an account does not do so.

License: BSD 2-Clause "Simplified" License

Python 98.67% Dockerfile 1.33%

shreddit's Introduction

Shreddit

Original repo and Readme.md here.

This also includes changes from the pythonInRelay/Shreddit fork.

Docker

This is the recommended route. If you run into a bug, please ensure it is reproducible inside of docker. I will not troubleshoot local installations.

Create a config dirextory. This should include your praw.ini and shreddit.yml config objects. We will mount this into the docker container.

docker run --rm -v $(pwd)/config:/config ghcr.io/kusold/shreddit:latest

I will not be adding cron support inside of the container. You can run the container on a cron schedule if you desire.

latest is updated everytime a tag is created. master is updated on every merge to master.

FAQ - Common Error(s)

  1. <something> installed but version <something> is required. - Upgrade 'setuptools' with pip install --upgrade setuptools
  2. Command "python setup.py egg_info" failed with error code 1 - You are missing a dependency. Try installing using manual instructions below.
  3. Invalid requirement: '<<<<<<< HEAD' Traceback (most recent call last): et cetera, et cetera1 - You are trying to install the original repo's broken code. Clone and install mine with the fixes.

Pre-install conditions:

Make sure you install pip

$ apt install python3-pip

Then update pip with

$ python3 -m pip install --upgrade pip

Note: Python2 is now depreciated. Use python3.

Manual Installation

  1. Clone the shreddit repository to a directory: $ git clone https://github.com/pythonInRelay/Shreddit.git
  2. From the directory, run $ pip3 install -r requirements.txt
  3. Run $ python3 setup.py install to install the package and the shreddit command line utility. This is typically either run in a virtualenv or using administrative privileges for global installation (so you can run the shreddit command from anywhere).

Post-install steps

After installing the shreddit command line utility, the first step is setting up the tool's configuration files. Simply typing shreddit -g will generate configs. After configuring your user credentials and deletion scope (in the created praw.ini), running the tool with the shreddit command will begin the tool's operation. Sit back and wait for it to parse each comment.

Configuring Credentials

Running shreddit -g will generate a blank praw.ini file that looks like this:

# Credentials go here. Fill out default, or provide one or more names and call shreddit with the -u option to specify
# which set to use.
[default]
client_id=
client_secret=
username=
password=
ratelimit_seconds=31 ## HIGHLY RECOMMENDED as Reddit now limits API calls

You must provide values for each of these. As strange as it may seem to provide both a username/password pair and a client id/secret pair, that is how the Reddit API does "OAuth" script applications.

Username and password are simply your Reddit login credentials for the account that will be used. However, to obtain the client ID and secret, follow these steps (taken from PRAW documentation):

  1. Open your Reddit application preferences by clicking here.
  2. Add a new application. It doesn't matter what it's named, but calling it "shreddit" makes it easier to remember.
  3. Select "script".
  4. Redirect URL does not matter for script applications, so enter something like http://127.0.0.1:8080
  5. Once created, you should see the name of your application followed by 14 character string. Enter this 14 character string as your client_id.
  6. Copy the 27 character "secret" string into the client_secret field.

Finally, your praw.ini should look like this (with fake data provided here):

[default]
client_id=f3FaKeD4t40PsJ
client_secret=dfK3pfMoReFAkEDaTa123456789
username=testuser
password=123passwordgoeshere123

Keep your praw.ini either in the current directory when running shreddit, or in one of the config folders described here such as ~/.config in Linux or %APPDATA% in Windows.

To use more than one account, you can add multiple profiles instead of just [default] and use the -u option to shreddit to choose which one each time.

Automating

The easiest way to automate this tool after the first run is by using the cron utility. Run crontab -e to edit your user's crontab settings.

Examples:

The following examples require that the PRAW configuration file is located in the config directory. See this PRAW documentation for more information.

  • Run every hour on the hour 0 * * * * shreddit -c <full path to shreddit.yml>

  • Run at 3am every morning 0 3 * * * shreddit -c <full path to shreddit.yml>

  • Run once a month on the 1st of the month 0 0 1 * * shreddit -c <full path to shreddit.yml>

If virtualenv was used, be sure to add source /full/path/to/venv/bin/activate && before the command. For example:

0 * * * * source /full/path/to/venv/bin/activate && shreddit -c <full path to shreddit.yml>

Command Line Options

$ shreddit --help
usage: app.py [-h] [-c CONFIG] [-g] [-u USER]

Command-line frontend to the shreddit library.

optional arguments:
  -h, --help            show this help message and exit
  -c CONFIG, --config CONFIG
                        Config file to use instead of the default shreddit.yml
  -g, --generate-configs
                        Write shreddit and praw config files to current
                        directory.
  -u USER, --user USER  User section from praw.ini if not default

For Windows users

  1. Get Linux. No really...

  2. Make sure you have Python installed. Click here for the Python download page. - Note: Install python 3.x, not 2.x.

  3. Follow the pip installation instructions.

  4. Open a new command prompt and verify that the shreddit command works before moving on to the usage section.

shreddit's People

Contributors

x89 avatar scott-hand avatar kusold avatar dependabot[bot] avatar 825i avatar kllmanu avatar disser avatar secondspass avatar github-actions[bot] avatar fhriley avatar rtgibbons avatar smjd avatar amitai avatar crypticgeek avatar noflag avatar pteek avatar skath avatar bbigras avatar denizdogan avatar drewcrawford avatar jc5 avatar kmwhite avatar leonfedotov avatar markrawlingson avatar jcgoette avatar

Stargazers

Sam Taseff avatar Cory Krol avatar Michael Riedel avatar Easton Elliott avatar  avatar Francis Russell avatar Michele Yin avatar  avatar Jess Whyte avatar

Watchers

 avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.