sonybot/README.md

57 lines
1.8 KiB
Markdown
Raw Permalink Normal View History

# 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.
### 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