Skip to content

Instantly share code, notes, and snippets.

@smetj
Created April 22, 2018 13:52
Show Gist options
  • Save smetj/b299d0e43b88c9ed964cad3a9dc70c5a to your computer and use it in GitHub Desktop.
Save smetj/b299d0e43b88c9ed964cad3a9dc70c5a to your computer and use it in GitHub Desktop.
Building a notification system part 3: Dropbox
protocols:
json_decode:
protocol: wishbone.protocol.decode.json
arguments:
buffer_size: 16777216
json_encode:
protocol: wishbone.protocol.encode.json
modules:
incoming_webhooks:
module: wishbone_contrib.module.input.httpserver
protocol: json_decode
arguments:
resource:
"^dropbox$":
users:
- dropbox
tokens: []
response: "{{tmp.incoming_webhooks.params.challenge}}"
urldecoded_field: null
htpasswd:
dropbox: $apr1$abcdefghijklmnopqrstuvwxyz.
max_bytes: 16777216
uniq:
module: wishbone.module.flow.count
arguments:
conditions:
data:
value:
list_folder:
accounts:
- "dbid:abcdefghijklmnopqrstuvwxyz"
delta:
users:
- 9999999
occurrence: 2
window: 60
action: drop
payload:
module: wishbone.module.flow.queueselect
arguments:
templates:
- name: "Website smetj.net updated"
queue: "{{ 'outbox' if tmp.incoming_webhooks.env.path_info == '/dropbox' }}"
payload: >
{{strftime(epoch(), "YYYY-MM-DD HH:mm:ss ZZ")}}: Website https://smetj.net has been updated.
#website #smetj.net
twitter:
module: wishbone_contrib.module.output.twitter
arguments:
payload: "{{tmp.payload.payload}}"
consumer_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
consumer_secret: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
access_token_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
access_token_secret: xxxxxxxxxxxxxxxxxxxxxxxxxxxx
routingtable:
- incoming_webhooks.dropbox -> uniq.inbox
- uniq.outbox -> funnel.dropbox
- funnel.outbox -> payload.inbox
- payload.outbox -> twitter.inbox
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment