2020-12-30 01:20:33 +01:00
|
|
|
# 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=<my-token>
|
|
|
|
export SONYDEVWORLD_BOT_CHANNEL=<my-channel-id>
|
|
|
|
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
|
2021-01-02 23:36:21 +01:00
|
|
|
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.
|
2020-12-30 01:20:33 +01:00
|
|
|
|
|
|
|
### Details
|
|
|
|
`SonyDevWorld.py` does all the heavy lifting for you. It posts to the Telegram
|
|
|
|
bot API at `https://api.telegram.org/bot<token>/sendMessage`
|
|
|
|
|
|
|
|
The last posted item's `guid` info is saved to `laststatus.txt`. It would look
|
|
|
|
something like `file-download-786918`.
|
2020-12-30 01:29:11 +01:00
|
|
|
|
|
|
|
## License
|
2020-12-30 16:41:29 +01:00
|
|
|
MIT, see [LICENSE.md](LICENSE.md).
|
2021-01-02 23:36:21 +01:00
|
|
|
|
|
|
|
[ansible]: https://git.ix5.org/felix/ansible-role-sony-dev-world-bot
|