#! /Users/arianagiroux/Documents/Coding/owncast-obs-streamer/venv/bin/python3 import chevron import requests import json from pprint import pprint from flask import Flask, request stream_data = json.load(open('resources/data.json', 'r')) session = requests.Session() session.auth = ('admin', stream_data['stream_key']) app = Flask(__name__) def render(data={}): return chevron.render(template=open('index.html', 'r'), data=data) @app.route("/api/serverstatus", methods=['GET']) def getServerStatus(): response = session.get(stream_data['stream_url'] + '/api/yp') response_data = response.json() return json.dumps({ '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'], 'tags': response_data['tags'], 'nsfw': response_data['nsfw'], }) @app.route("/api/update/streamtitle", methods=['POST']) def updateStreamTitle(): 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())) print(getServerStatus()[1])