2022-07-21 05:42:38 +00:00
|
|
|
#! /Users/arianagiroux/Documents/Coding/owncast-obs-streamer/venv/bin/python3
|
|
|
|
|
|
|
|
import chevron
|
2022-07-21 23:20:49 +00:00
|
|
|
import requests
|
|
|
|
import json
|
|
|
|
from pprint import pprint
|
2022-07-22 23:14:19 +00:00
|
|
|
from flask import Flask, request
|
2022-07-21 23:20:49 +00:00
|
|
|
|
|
|
|
stream_data = json.load(open('resources/data.json', 'r'))
|
2022-07-22 23:14:19 +00:00
|
|
|
session = requests.Session()
|
|
|
|
session.auth = ('admin', stream_data['stream_key'])
|
|
|
|
|
|
|
|
app = Flask(__name__)
|
2022-07-21 05:42:38 +00:00
|
|
|
|
|
|
|
|
|
|
|
def render(data={}):
|
|
|
|
return chevron.render(template=open('index.html', 'r'), data=data)
|
|
|
|
|
|
|
|
|
2022-07-22 23:14:19 +00:00
|
|
|
@app.route("/api/serverstatus", methods=['GET'])
|
|
|
|
def getServerStatus():
|
|
|
|
response = session.get(stream_data['stream_url'] + '/api/yp')
|
2022-07-21 23:20:49 +00:00
|
|
|
response_data = response.json()
|
2022-07-22 23:14:19 +00:00
|
|
|
return json.dumps({
|
2022-07-21 23:20:49 +00:00
|
|
|
'name': response_data['name'],
|
|
|
|
'online': response_data['online'],
|
|
|
|
'overallMaxViewerCount': response_data['overallMaxViewerCount'],
|
|
|
|
'sessionMaxViewerCount': response_data['sessionMaxViewerCount'],
|
|
|
|
'streamTitle': response_data['streamTitle'],
|
|
|
|
'viewerCount': response_data['viewerCount'],
|
|
|
|
'description': response_data['description'],
|
2022-07-22 23:14:19 +00:00
|
|
|
'tags': response_data['tags'],
|
|
|
|
'nsfw': response_data['nsfw'],
|
|
|
|
})
|
2022-07-21 23:20:49 +00:00
|
|
|
|
|
|
|
|
2022-07-22 23:14:19 +00:00
|
|
|
@app.route("/api/update/streamtitle", methods=['POST'])
|
2022-07-21 23:20:49 +00:00
|
|
|
def updateStreamTitle():
|
2022-07-22 23:14:19 +00:00
|
|
|
response = session.post(
|
|
|
|
stream_data['stream_url'] + '/api/admin/config/streamtitle',
|
|
|
|
data=json.dumps({'value': request.json()})
|
|
|
|
)
|
|
|
|
print(response.json())
|
|
|
|
return response.status_code
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/api/update/servertags', methods=['POST'])
|
|
|
|
def updateServerTags(tags_list: list):
|
|
|
|
response = session.post(
|
|
|
|
stream_data['stream_url'] + '/api/admin/config/tags',
|
|
|
|
data=json.dumps({
|
|
|
|
'value': tags_list
|
|
|
|
})
|
|
|
|
)
|
|
|
|
return response.status_code, json.loads(response.text)
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/api/update/nsfw', methods=['POST'])
|
|
|
|
def updateServerNSFW(boolean: bool):
|
|
|
|
response = session.post(
|
|
|
|
stream_data['stream_url'] + '/api/admin/config/nsfw',
|
|
|
|
data=json.dumps({
|
|
|
|
'value': boolean
|
|
|
|
})
|
|
|
|
)
|
|
|
|
return response.status_code, json.loads(response.text)
|
|
|
|
|
|
|
|
|
|
|
|
@app.route("/")
|
|
|
|
def index():
|
|
|
|
return render(json.loads(getServerStatus()))
|
2022-07-21 23:20:49 +00:00
|
|
|
|
2022-07-21 05:42:38 +00:00
|
|
|
|
2022-07-22 23:14:19 +00:00
|
|
|
print(getServerStatus()[1])
|