Command line program that plays random animal from your favorite animal subreddits!
Standalone executable (windows only)
Created by u/andohuman | @andohuman
This app works by scraping videos from a some of the popular animal subreddits.
If you want to run the standalone binary (windows only), download it from here.
Else if you want to install as a python module and mess with the code, stick around.
Before we proceed with the actual installation, consider installing this package in a virtual python environment.
Install the virtualenv python package with the following command :-
pip3 install virtualenv
You can now go ahead and create a virtual environment with the following command :-
python3 -m venv YOUR_ENV_NAME/
Now activate the virtual environment you just created :-
YOUR_ENV_NAME\Scripts\activate
source YOUR_ENV_NAME/bin/activate
You can now proceed with the installation of the package
You can use the python package manager pip to install this package, although it is recommended that you install the package from source for the latest updates.
Run pip3 install cheermeup
- Clone this repository
git clone https://github.com/andohuman/cheermeup.git
If you're on windows you can download the zip from here and extract the archive.
- cd into the folder and install the package by executing
cd cheermeup
pip3 install .
Note: If you're installing on linux without virtualenv you might have to add /home/{YOUR_USERNAME}/.local/bin/
to your $PATH
.
- Run the app by executing
cheermeup
.
Note: When you run the program for the first time (of the day by default) it may take a couple of seconds, depending on your internet connection and speed to fetch the links and cache them.
If you want to scrape videos from your own subreddits you can do so with the following argument
cheermeup --subreddits SUBREDDIT_NAME SUBREDDIT_NAME SUBREDDIT_NAME ...
The full list of available arguments are :-
usage: cheermeup.py [-h] [--client-id CLIENT_ID] [--user-agent USER_AGENT] [--regex REGEX]
[--cache-file-name CACHE_FILE_NAME] [--period PERIOD] [--search-limit SEARCH_LIMIT]
[--force-rewrite-cache] [--tries TRIES] [--subreddits SUBREDDITS [SUBREDDITS ...]]
Play random animal videos from the commandline
optional arguments:
-h, --help show this help message and exit
--client-id CLIENT_ID
client id for praw module to scrape reddit
--user-agent USER_AGENT
user agent for praw module to scrape reddit
--regex REGEX regex pattern to match for video urls
--cache-file-name CACHE_FILE_NAME
file name to cache urls for furture retrieval
--period PERIOD timeperiod in seconds after which a cache file is considered old. Default = 1 day
--search-limit SEARCH_LIMIT
maximum number of posts to scrape from a specific subreddit
--force-rewrite-cache
force rewrite cache even if it is not old
--tries TRIES maximum number of tries to play a video before giving up
--subreddits SUBREDDITS [SUBREDDITS ...]
list of subreddits to search for videos
By default cheermeup only scrapes videos from the following subreddits:-
babyelephantgifs partyparrot animalsbeingjerks animalsbeingderps animalsbeingconfused whatswrongwithyourdog startledcats zoomies
If you would like to checkout more options head over to r/MadeMeSmile's list of good subreddits and add your own subreddits with the --subreddits
argument.
It has to be mentioned that the more subreddits you add the slower it will take if the app is caching before playing the video (usually the first run of the day).
If you're seeing the same videos over and over again and would like to refresh the cache run the app with the --force-rewrite-cache
flag.
We would need to install the pyinstaller python package which lets us build an executable from a given python source.
Run pip3 install pyinstaller
cd into the src directory and execute
pyinstaller -w -F cheermeup.py
The -w
flag supresses terminal window and the -F
makes pyinstaller procduces only one single executable file
You will find the newly built binary cheermeup.exe
in the dist
folder.
-
Please note that this is an alpha project I put together in a couple of hours and it might not exactly be stable all the time. Feel free to raise an issue and I'll try and look into it
-
I also want to release linux and macos binaries but pyinstaller and cx_freeze won't play well with cv2, which is a dependancy and I also don't have a mac to test this tool on. If anyone would like to help/contribute (in this regard or any other bugs you find) please issue a pull request.