29 lines
865 B
Python
29 lines
865 B
Python
|
|
||
|
import click
|
||
|
import urllib.request
|
||
|
from certidude import config
|
||
|
|
||
|
def publish(event_type, event_data):
|
||
|
"""
|
||
|
Publish event on push server
|
||
|
"""
|
||
|
url = config.PUSH_PUBLISH % config.PUSH_TOKEN
|
||
|
click.echo("Posting event %s %s at %s, waiting for response..." % (repr(event_type), repr(event_data), repr(url)))
|
||
|
notification = urllib.request.Request(
|
||
|
url,
|
||
|
event_data.encode("utf-8"),
|
||
|
{"Event-ID": b"TODO", "Event-Type":event_type.encode("ascii")})
|
||
|
notification.add_header("User-Agent", "Certidude API")
|
||
|
|
||
|
try:
|
||
|
response = urllib.request.urlopen(notification)
|
||
|
body = response.read()
|
||
|
except urllib.error.HTTPError as err:
|
||
|
if err.code == 404:
|
||
|
print("No subscribers on the channel")
|
||
|
else:
|
||
|
raise
|
||
|
else:
|
||
|
print("Push server returned:", response.code, body)
|
||
|
|