Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lamdav/crunchybot
A CrunchyRoll Guest Pass Reddit publisher
https://github.com/lamdav/crunchybot
bot crunchyroll github-actions praw reddit
Last synced: 24 days ago
JSON representation
A CrunchyRoll Guest Pass Reddit publisher
- Host: GitHub
- URL: https://github.com/lamdav/crunchybot
- Owner: lamdav
- License: mit
- Created: 2015-12-06T00:12:17.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2021-02-10T07:18:57.000Z (almost 4 years ago)
- Last Synced: 2024-11-30T15:41:43.811Z (24 days ago)
- Topics: bot, crunchyroll, github-actions, praw, reddit
- Language: Python
- Homepage: https://pypi.org/project/crunchy-bot/
- Size: 59 MB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
[![Actions Status](https://github.com/lamdaV/CrunchyBot/workflows/test%20and%20publish%20on%20tag/badge.svg)](https://github.com/lamdaV/CrunchyBot/actions)
# CrunchyBot
## Description:
This is a simple bot/script I made to publish my CrunchyRoll Guest Passes to Reddit.
It uses Selenium and Chromedriver to extract valid guest passes from CrunchyRoll
and PRAW to publish it /r/Crunchyroll's weekly Megathread. This is not a bot made
to run indefinitely; however, it can be altered to do so if one so desired.
It was intended for use in conjunction with a task scheduler/cronjob to check once every month
(or four if you wish to publish them in sets before guest passes expire) for new guest passes.## Changes:
Due to how the PRAW library has changed, all users now must create a
[reddit script app](https://github.com/reddit/reddit/wiki/OAuth2).
As such, the data file now must include additional data. See below for a quick guide on how to set this up.As of `4.0.0`, binaries for `chromedriver` and other tooling will not be included.
Please refer to [link](https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver#quick-installation)
on setting up and installing `chromedriver`.## Setting Up Reddit Account:
1. Log on to the bot account.
2. Go the bot account's `preferences` from the upper-right corner.
3. Click the `apps` tab.
4. Click the `create another app`.
- The button test may appear differently if you have no apps setup.
5. In the prompts, ensure that the `script` radio button is toggled and
`redirected uri` is is set to `http://localhost:8080`. The other fields
can be filled with whatever you want.
6. Click `create app` button when done.
7. You should now see the app created. Right below the name and below `personal use script` will be your
`client_id`. Within the box, to the right of the word `secret`, is your `client_secret`.## Prerequisites:
You will need to have Chrome installed on your system at its default installation path.
This is due to the `chromedriver` working with your Chrome installation to retrieve
Crunchyroll Guest Pass.**Note** As of `4.0.0`, `chromedriver` will not be provided.
Please refer to [link](https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver#quick-installation)
on setting up.## Install:
`pip install crunchy-bot`## Setup:
Run `crunchy init` to generate config file:
```json
{
"crunchy_username": "crunchy_user",
"crunchy_password": "crunchy_pass",
"reddit_client_id": "client_id",
"reddit_client_secret": "client_secret",
"reddit_user_agent": "CrunchyBot:v4.0.0 (hosted by /u/{YOUR_USERNAME})",
"reddit_username": "reddit_user",
"reddit_password": "reddit_pass",
"log_dir": "/tmp/crunchybot/logs"
}
```
or save this to `~/.crunchybot`.Execute `crunchy publish [--config path/to/.crunchybot] [--debug/-d]` to start scrapping and publishing.
## Development
### With poetry
Assuming you have `pyenv` and `poetry` installed on your system, run the following within the repo:
```shell
pyenv local 3.8 # supports 3.6 - 3.9
poetry shell
```
This will set up a virtual environment for Crunchybot to work in without interfering your
other python projects.With `poetry` initialized, run:
```
$ poetry install
```
This will use the `poetry.lock` to fetch and verify dependencies.### Without Pipenv
Install PRAW and Selenium by running the following command:
```
$ pip install -e .
```Once setup with or without `poetry`, `crunchy` command line should be available for execution.
This will also generate a `version.py` using `setuptools_scm`.Make and test your changes locally. Pull Request are welcome.
## Automating:
### OSX/Linux
Run `crontab -e` and add
```
0 0 1 * * zsh -lc "/path/to/crunchy publish"
```
You can replace `zsh -lc` with your shell's equivalent. This is mainly to execute any of your profile
presets that may handle setting up `PATH` and other required environment variables to run.### Windows
Add the Python script to the Windows Task Scheduler with monthly frequency.
Here is a [link](https://blog.netwrix.com/2018/07/03/how-to-automate-powershell-scripts-with-task-scheduler/)
to setup the Task Scheduler.### Github
> Note: Crunchyroll or Cloudflare have flagged ip coming from Github
> Actions CI. So, it's less likely to succeed now.You can also fork this repository and utilize `Github Actions` to run this task on the first of each month.
You must add the required data as all cap snake case secret variables.