84 lines
1.8 KiB
Markdown
84 lines
1.8 KiB
Markdown
# zuginfo_nrw_webpush_ansible
|
|
|
|
Simple Ansible Playbooks that demonstrate how zuginfo.nrw's API can be used to send infos concerning railway lines to custom WebPush or UnifiedPush endpoints.
|
|
|
|
I know this is not polished and good-looking code, this is intended as a quick demonstration on how this API could be used, nothing more than that.
|
|
|
|
## How to Use
|
|
|
|
### Creating an account
|
|
|
|
Run the Playbooks using Ansible:
|
|
|
|
```
|
|
cd zuginfo_playbooks
|
|
ansible-playbook zuginfo_api_create_account.yml
|
|
```
|
|
|
|
Save the values to `files/account.txt` before you continue.
|
|
|
|
Example:
|
|
|
|
```yaml
|
|
account:
|
|
aid: "12345"
|
|
mysterious_id: "12345"
|
|
```
|
|
|
|
### Create Subscription to your WebPush Endpoint
|
|
|
|
Amend `files/account.txt`:
|
|
|
|
```yaml
|
|
account:
|
|
aid: "12345"
|
|
mysterious_id: "12345"
|
|
push_endpoint: "https://example.org/up/push/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
|
push_key_auth: "auth_secret"
|
|
push_key_p256dh: "auth_key"
|
|
```
|
|
|
|
Run the Playbook:
|
|
|
|
```
|
|
ansible-playbook zuginfo_api_create_webpush_subscription.yml
|
|
```
|
|
|
|
This will return `user_id` and `channel_id`. Amend `files/account.txt`.
|
|
|
|
```yaml
|
|
account:
|
|
aid: "12345"
|
|
mysterious_id: "12345"
|
|
push_endpoint: "https://example.org/up/push/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
|
push_key_auth: "auth_secret"
|
|
push_key_p256dh: "auth_key"
|
|
user_id: "12345"
|
|
channel_id: "12345"
|
|
```
|
|
|
|
### Subscribing to a specific railway line
|
|
|
|
to do
|
|
|
|
Also requires `line_id`.
|
|
|
|
### Finding `line_id` for a specific railway line
|
|
|
|
to do
|
|
|
|
### Updating a subscription
|
|
|
|
to do
|
|
|
|
## Random Notes
|
|
|
|
- `user_id` seems to change when all subscriptions are deleted and a new one is added
|
|
- `channel_id` seems to change when all subscriptions are deleted and a new one is added
|
|
- subscriptions have to be deleted before an account can be deleted
|
|
|
|
## Contact Me
|
|
|
|
Got Questions? Contact me.
|
|
|
|
XMPP: [xmpp:erebion@erebion.eu](xmpp:erebion@erebion.eu)
|