add oembed to channel post
This commit is contained in:
parent
7b8e7d946c
commit
543e186dc8
2 changed files with 19 additions and 3 deletions
|
@ -25,6 +25,8 @@ def on_receive_events(transaction):
|
|||
and not app.config['MATRIX_PNUT_PREFIX'] in event["user_id"]
|
||||
and not 'pnut-bridge' in event["user_id"]):
|
||||
|
||||
embed = None
|
||||
|
||||
if (event['content']['msgtype'] == 'm.text'
|
||||
or event['content']['msgtype'] == 'm.notice'):
|
||||
if user:
|
||||
|
@ -42,6 +44,16 @@ def on_receive_events(transaction):
|
|||
text = "* " + get_displayname(event["user_id"]) + " " + event['content']['body']
|
||||
elif event['content']['msgtype'] == 'm.image':
|
||||
imgurl = app.config['MATRIX_HOST'] + '/_matrix/media/r0/download/' + event['content']['url'][6:]
|
||||
value = {"type": "photo", "version": "1.0"}
|
||||
value["title"] = event['content']['body']
|
||||
value["url"] = imgurl
|
||||
value["width"] = event['content']['info']['w']
|
||||
value["height"] = event['content']['info']['h']
|
||||
value["thumbnail_width"] = event['content']['info']['thumbnail_info']['w']
|
||||
value["thumbnail_height"] = event['content']['info']['thumbnail_info']['h']
|
||||
value["thumbnail_url"] = self.api.get_download_url(event['content']['info']['thumbnail_url'])
|
||||
rawitem = {"type": "io.pnut.core.oembed", "value": value}
|
||||
embed = [rawitem]
|
||||
if user:
|
||||
token = user.pnut_token
|
||||
text = ""
|
||||
|
@ -67,7 +79,7 @@ def on_receive_events(transaction):
|
|||
requests.put(url, headers={"Content-Type": "application/json"}, data=json.dumps({}))
|
||||
else:
|
||||
if text:
|
||||
r = Pnut(token).channel_post(chan_id, text)
|
||||
r = Pnut(token).channel_post(chan_id, text, embed)
|
||||
if r.status_code == 201:
|
||||
msgid = json.loads(r.text)['data']['id']
|
||||
if token == app.config['MATRIX_PNUT_TOKEN']:
|
||||
|
|
|
@ -145,13 +145,17 @@ class Pnut:
|
|||
r = requests.post(url, data=body, headers=headers)
|
||||
return r
|
||||
|
||||
def channel_post(self, chan_id, text):
|
||||
def channel_post(self, chan_id, text, raw):
|
||||
url = "https://api.pnut.io/v0/channels/" + str(chan_id) + "/messages"
|
||||
headers = {
|
||||
"Authorization": "Bearer " + self.token,
|
||||
"Content-Type": "application/json"
|
||||
}
|
||||
body = json.dumps({"text": text })
|
||||
data = {"text": text }
|
||||
if raw:
|
||||
url += "?include_raw=1"
|
||||
data["raw"] = raw
|
||||
body = json.dumps(data)
|
||||
r = requests.post(url, data=body, headers=headers)
|
||||
return r
|
||||
|
||||
|
|
Loading…
Reference in a new issue