An experimentation to use Twilio Trial SMS as a notification medium for RSS Feed updates from http://www.nyaa.se/ (Anime) and http://mangastream.com/rss (Manga).
- Python 2.7
- Twilio trial account
{
"Subaru": {
"phone_number": "+818012345678",
"subscribed_urls": [
{
"url": "http://www.nyaa.se/?page=rss&cats=1_37&term=720p+horriblesubs+01+mkv&minage=0&maxage=30"
}
]
},
"Barusu": {
"phone_number": "+818023456789",
"subscribed_urls": [
{
"url": "http://mangastream.com/rss",
"pattern": "Shokugeki no Souma [0-9]+"
}
]
}
}
Each records will have a unique identifier of a record (in this case, user's name).
phone_number
should conform to Twilio phone number format.
subscribed_urls
is a list of url
feed (required) and pattern
(optional, which is targeted to RSS title
in entries
) which you want to get notification from if a new update occurs.
The RSS Feed URL above will give you an update for all first (ep. 1) release from HorribleSubs.
It is recommended to use virtualenv
instead of installing dependencies in global system with:
$ cd <this project directory>
$ virtualenv -p python27 venv
$ source venv/bin/activate
After that, you can install Python dependencies with:
$ pip install -r requirements.txt
Required TWILIO values (main.py
):
- TWILIO_ACCOUNT_SID
- TWILIO_AUTH_TOKEN
- TWILIO_PHONE_NUMBER
You can get those values for free with Twilio trial account. One of the side note of trial account is that you can only send your messages to verified number.
Twilio phone number can be acquired by following the tutorial here: https://support.twilio.com/hc/en-us/articles/223136107-How-does-Twilio-s-Free-Trial-work-
After correctly configuring user.json
, you can execute the script by running:
$ python main.py
For best usage, you need to set a cron job (e.g.: every 10 minutes) to run this script and check periodically. For Example:
*/10 * * * * /path/to/project/venv/bin/python /path/to/project/main.py
crontab.guru can help you for the human readable cron schedule
- Add AWS Lambda (scheduled events) + S3 integration (
db.json
anduser.json
) to run this script serverless.
MIT License.
Last Updated: September 29, 2016