lolwtf this shit actually works
This commit is contained in:
		
						commit
						14dc277816
					
				| 
						 | 
					@ -0,0 +1,24 @@
 | 
				
			||||||
 | 
					version: '3.8'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					services:
 | 
				
			||||||
 | 
					  spaceapi:
 | 
				
			||||||
 | 
					    image: spaceapi
 | 
				
			||||||
 | 
					    build:
 | 
				
			||||||
 | 
					      context: src
 | 
				
			||||||
 | 
					    networks:
 | 
				
			||||||
 | 
					      - ingress
 | 
				
			||||||
 | 
					      - default
 | 
				
			||||||
 | 
					    deploy:
 | 
				
			||||||
 | 
					      labels:
 | 
				
			||||||
 | 
					        - "shepherd.auto-update=true"
 | 
				
			||||||
 | 
					        - "traefik.enable=true"
 | 
				
			||||||
 | 
					        - "traefik.http.services.spaceapi.loadbalancer.server.port=5000"
 | 
				
			||||||
 | 
					        - "traefik.http.routers.spaceapi.rule=Host(`api.montage2.de`)||Host(`api.chaoswest.tv`)"
 | 
				
			||||||
 | 
					        - "traefik.http.routers.spaceapi.tls=true"
 | 
				
			||||||
 | 
					        - "traefik.http.routers.spaceapi.tls.certresolver=default"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					networks:
 | 
				
			||||||
 | 
					  ingress:
 | 
				
			||||||
 | 
					    external: true
 | 
				
			||||||
 | 
					    name: traefik
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,6 @@
 | 
				
			||||||
 | 
					FROM python:alpine
 | 
				
			||||||
 | 
					RUN mkdir /app
 | 
				
			||||||
 | 
					WORKDIR /app
 | 
				
			||||||
 | 
					COPY . /app
 | 
				
			||||||
 | 
					RUN pip install -r requirements.txt
 | 
				
			||||||
 | 
					ENTRYPOINT ["flask", "--app", "app", "run", "--host=0.0.0.0"]
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,43 @@
 | 
				
			||||||
 | 
					import json
 | 
				
			||||||
 | 
					import urllib.request
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from flask import Flask, jsonify
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					app = Flask(__name__)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def get_jitsi_status():
 | 
				
			||||||
 | 
					    try:
 | 
				
			||||||
 | 
					        content = urllib.request.urlopen("https://talk.chaoswest.tv/room-census").read()
 | 
				
			||||||
 | 
					        census = json.loads(content)
 | 
				
			||||||
 | 
					        return any(room["room_name"] == "cws-lounge@muc.meet.jitsi" for room in census["room_census"])
 | 
				
			||||||
 | 
					    except Exception as e:
 | 
				
			||||||
 | 
					        print("shit got fucked up:")
 | 
				
			||||||
 | 
					        print(e)
 | 
				
			||||||
 | 
					        return None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@app.route("/spaceapi")
 | 
				
			||||||
 | 
					def spaceapi():
 | 
				
			||||||
 | 
					    result = {
 | 
				
			||||||
 | 
					        'api': '0.13',
 | 
				
			||||||
 | 
					        'api_compatibility': ['14'],
 | 
				
			||||||
 | 
					        'space': 'chaoswest.tv',
 | 
				
			||||||
 | 
					        'logo': 'https://chaoswest.tv/logo.png',
 | 
				
			||||||
 | 
					        'url': 'https://chaoswest.tv',
 | 
				
			||||||
 | 
					        'location': {
 | 
				
			||||||
 | 
					            'lat': 50.47718,
 | 
				
			||||||
 | 
					            'lon': 12.33427,
 | 
				
			||||||
 | 
					            'address': 'FSN1-DC14',
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        'contact': {
 | 
				
			||||||
 | 
					            'mastodon': '@chaoswesttv@chaos.social',
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    status = get_jitsi_status()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if status:
 | 
				
			||||||
 | 
					        result["state"] = {
 | 
				
			||||||
 | 
					            'open': status
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return jsonify(result)
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					Flask>=3.0.1
 | 
				
			||||||
		Loading…
	
		Reference in New Issue