This is a bot that retrieves listings from New York City animal shelters and tweets photos and profile links to eligible pets.
The python script assumes that available animals are posted on the Petango service.
- Create the twitter account that will be used to post tweets
- Log into this new account and navigate to http://apps.twitter.com
- Create a new app with permission to post
- Generate credentials (consumer keys and access tokens)
credentials.pyby adding the keys generated by twitter
- Install dependencies
pip install -r requirements.txt
shelters.pyto include desired shelters from Petango (see below)
- Tweet a singe pet listing:
Schedule regular tweeting with crontab (Linux):
- From the command line, edit the crontab file:
- Schedule the script to run every hour using a line similar to:
0 * * * * /usr/bin/python /path/to/tweet_pet.py >> /path/to/log.log) 2>&1
Extension to other shelters
shelters.py scrapes the Petango page listing to get the list of shelters dependent on the
DISTANCE_IN_MILES variables, both of which must be integers typecasted as strings. Shelters may be manually determined and set as
SHELTER_IDS if the bool
SCRAPE_IDS is set to False.
tweet_pet.py retrieves a list of animals from each each of the shelters found by
shelters.py then tweets an animal at random from this list. As a result, modifying this script to access animals from other shelters is as simple as modifying this dictionary.
Avoidance of duplicate tweets
tweet_pet.py attempts to avoid reposting tweets about the same animals. This is done by tracking recent tweets in a buffer file created by the script. The size of the buffer file can be adjusted by changing the value of the
- I intended this to run on a Raspberry Pi running Raspbian. The python script posts a new tweet each time it is called. Regularly scheduled posting is handled by