# SonyDevWorld Telegram Bot The bot that powers [t.me/SMDW_downloads](https://t.me/SMDW_downloads) *Neither affiliated nor endorsed by Sony Mobile* ### Requirements: You need to have `python3` installed with the `requests` module. Further, you need to supply token and channel id via environment variables: - `SONYDEVWORLD_BOT_TOKEN`: Bot token, get one from [t.me/botfather](https://t.me/botfather), e.g. `1234567890:ABCDb1o0-ASDKHKJ3oiavKJDSFKJHkjwebb` - `SONYDEVWORLD_BOT_CHANNEL`: Channel id to post to, e.g. `-1000000000000` for [t.me/MyExampleChannel](https://t.me/MyExampleChannel). You can quickly obtain channel info from [@getidsbot](https://t.me/getidsbot) ### Running ``` export SONYDEVWORLD_BOT_TOKEN= export SONYDEVWORLD_BOT_CHANNEL= python3 SonyDevWorld.py ``` It makes sense to run this bot maybe once an hour to avoid hammering the Sony Dev World API. Set `export DEBUG=true` to run in debug mode, set `export OFFLINE=True` to run in offline mode after you've saved `items.json`. ### Deploying For deploying, a simple `systemd` unit file with a timer is included. After you've supplied your token inside the `.service` file and copied the unit and timer files into `/etc/systemd/system/`, you can run the service periodically via `systemctl daemon-reload` and then `systemctl reenable --now sonydevworldbot.timer` For convenience, there is also an [ansible role][ansible] available. ### Details `SonyDevWorld.py` does all the heavy lifting for you. It posts to the Telegram bot API at `https://api.telegram.org/bot/sendMessage` The last posted item's `guid` info is saved to `laststatus.txt`. It would look something like `file-download-786918`. ## License MIT, see [LICENSE.md](LICENSE.md). [ansible]: https://git.ix5.org/felix/ansible-role-sony-dev-world-bot