-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.py
More file actions
34 lines (27 loc) · 1.43 KB
/
app.py
File metadata and controls
34 lines (27 loc) · 1.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# app.py
import json
import requests
from flask import Flask, request
app = Flask(__name__)
def sendAction(json, suplaUrl, suplaCode, suplaAction, plexEvent, plexUser):
if json['Player']['uuid'] == plexUser and json['event'] == plexEvent:
header = {"Content-Type": "application/json", "Accept": "application/json"}
requests.patch(suplaUrl, data='{"code":"' + suplaCode +'", "action":"' + suplaAction + '"}', headers=header)
@app.route('/', methods=['GET'])
def main():
return "Plex <-> Supla WebHook Listener by Xmon <a href='https://Xmon.eu.org/' targen='_BLANK'>https://Xmon.eu.org/</a>"
@app.route('/webhook', methods=['POST'])
def webhook():
if request.method == 'POST':
data = json.loads(request.form.get('payload', "invalid"))
print("Player Plex Identyfikator ", data['Player']['uuid'])
sendAction(
data, #to zawsze takie samo
'https://svr11.supla.org/direct/xxxxx', #url do bramki supli
"xxxxxxxxx", #code od bramki supli (identyfikator)
"turn-off", #akcja która ma się zrobić na urządzeniu supla Dostępne: turn-on, turn-off, read
"media.play",#przy jakim evencie ma sie to wykonać. Dostępne eventy: media.pause, media.play, media.rate, media.resume, media.scrobble, media.stop
"playerId" #na jakim urządzeniu plex ma to działać
)
return "🚀 Webhook received!"
app.run(host='0.0.0.0', port=8000)