273 lines
9.2 KiB
Python
273 lines
9.2 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import os
|
|
from flask import Flask,redirect
|
|
from bs4 import BeautifulSoup
|
|
import requests
|
|
from datetime import date
|
|
|
|
app = Flask(__name__)
|
|
|
|
@app.route('/')
|
|
def tu_ilmenau():
|
|
return redirect("https://www.tu-ilmenau.de/", code=302)
|
|
|
|
@app.route('/about/')
|
|
def about():
|
|
return redirect("https://github.com/clerie/walduni", code=302)
|
|
|
|
@app.route('/turm/')
|
|
def turm():
|
|
return redirect("https://turm.rz.tu-ilmenau.de/eE/aktuell/lstr_browser.php", code=302)
|
|
|
|
@app.route('/modultafeln/<course>/')
|
|
@app.route('/modultafel/<course>/')
|
|
@app.route('/modulplan/<course>/')
|
|
@app.route('/module/<course>/')
|
|
@app.route('/modultafeln/')
|
|
@app.route('/modultafel/')
|
|
@app.route('/modulplan/')
|
|
@app.route('/module/')
|
|
def modultafeln(course=""):
|
|
courseToPath = {
|
|
"amw": "AngewandteMedienundKommunikationswissenschaft/Bachelor/2014",
|
|
"amk": "AngewandteMedienundKommunikationswissenschaft/Bachelor/2014",
|
|
"bmt": "BiomedizinischeTechnik/Bachelor/2014/",
|
|
"btc": "BiotechnischeChemie/Bachelor/2013/",
|
|
"eit": "ElektrotechnikundInformationstechnik/Bachelor/2013/",
|
|
"ft": "Fahrzeugtechnik/Bachelor/2013/",
|
|
"in": "Informatik/Bachelor/2013/",
|
|
"ii": "Ingenieurinformatik/Bachelor/2013/",
|
|
"mb": "Maschinenbau/Bachelor/2013/",
|
|
"mathe": "Mathematik/Bachelor/2013/",
|
|
"mechatronik": "Mechatronik/Bachelor/2013/",
|
|
"mt": "Medientechnologie/Bachelor/2013/",
|
|
"mw": "Medienwirtschaft/Bachelor/2015/",
|
|
"oso": "OptischeSystemtechnikOptronik/Bachelor/2013/",
|
|
"tks": "TechnischeKybernetikundSystemtheorie/Bachelor/2013/",
|
|
"physik": "TechnischePhysik/Bachelor/2013/",
|
|
"ww": "Werkstoffwissenschaft/Bachelor/2013/",
|
|
"wi": "Wirtschaftsinformatik/Bachelor/2015/",
|
|
"wiw": "Wirtschaftsingenieurwesen/Bachelor/2015/?vertiefung=MB"
|
|
}
|
|
|
|
return redirect("https://www.tu-ilmenau.de/modultafeln/" + courseToPath.get(course, ""), code=302)
|
|
|
|
@app.route('/mail/')
|
|
@app.route('/webmail/')
|
|
def mail():
|
|
return redirect("https://webmail.tu-ilmenau.de/", code=302)
|
|
|
|
@app.route('/unirz/')
|
|
@app.route('/rz/')
|
|
def unirz():
|
|
return redirect("https://www.tu-ilmenau.de/unirz/", code=302)
|
|
|
|
@app.route('/unibib/')
|
|
@app.route('/bib/')
|
|
def ub():
|
|
return redirect("https://www.tu-ilmenau.de/ub/", code=302)
|
|
|
|
@app.route('/vlv/')
|
|
def vlv():
|
|
return redirect("https://www.tu-ilmenau.de/vlv/index.php?id=330", code=302)
|
|
|
|
########################################################################################################################
|
|
# FeM
|
|
########################################################################################################################
|
|
|
|
# FeM
|
|
@app.route('/fem/')
|
|
def fem():
|
|
return redirect("https://www.fem.tu-ilmenau.de/aktuelles/", code=302)
|
|
|
|
########################################################################################################################
|
|
# ILSC
|
|
########################################################################################################################
|
|
|
|
# ILSC
|
|
@app.route('/ilsc/')
|
|
def ilsc():
|
|
return redirect("https://www.tu-ilmenau.de/fsr-mn/", code=302)
|
|
|
|
# BC
|
|
@app.route('/bc/')
|
|
def bc_club():
|
|
return redirect("https://www.bc-club.de/", code=302)
|
|
|
|
# BD
|
|
@app.route('/bd/')
|
|
def bd_club():
|
|
return redirect("http://www.bd-club.de/", code=302)
|
|
|
|
# BH
|
|
@app.route('/bh/')
|
|
def bh_club():
|
|
return redirect("http://bh-club.de/", code=302)
|
|
|
|
# BI
|
|
@app.route('/bi/')
|
|
def bi_club():
|
|
return redirect("https://www.bi-club.de/", code=302)
|
|
|
|
# Montagsküche
|
|
@app.route('/montag/')
|
|
def montagskueche():
|
|
# Get the startpage of bi club
|
|
try:
|
|
current_event = requests.get("https://www.bi-club.de/")
|
|
current_soup = BeautifulSoup(current_event.text, 'html.parser')
|
|
# Get an array of all events
|
|
events = current_soup.find(id='main').div.div.div.div.div.div.div.div.find_all('div', recursive=False)
|
|
except:
|
|
return redirect("https://www.bi-club.de/tags/montagskueche", code=302)
|
|
|
|
# Pseudo event
|
|
next_montagskueche = date.max
|
|
next_montagskueche_url = ""
|
|
|
|
for event in events:
|
|
# Get interesting information
|
|
content = event.div.div.div.div.find_all('div', recursive=False)[1]
|
|
# Get title
|
|
title = content.h2.a.text
|
|
# Get date
|
|
date_string = content.div.div.span.text.split(' - ')[1].split('.')
|
|
date_object = date(int(date_string[2]), int(date_string[1]), int(date_string[0]))
|
|
# Get url
|
|
url = content.h2.a.get('href')
|
|
|
|
# Select the event
|
|
if "Montagsküche" in title and date_object >= date.today() and date_object < next_montagskueche:
|
|
next_montagskueche = date_object
|
|
next_montagskueche_url = url
|
|
|
|
# Answer
|
|
if next_montagskueche_url != "":
|
|
return redirect(next_montagskueche_url, code=302)
|
|
else:
|
|
return redirect("https://www.bi-club.de/tags/montagskueche", code=302)
|
|
|
|
########################################################################################################################
|
|
# Stura
|
|
########################################################################################################################
|
|
|
|
# Stura
|
|
@app.route('/stura/')
|
|
def stura():
|
|
return redirect("https://stura.tu-ilmenau.de/", code=302)
|
|
|
|
# FSR EI
|
|
@app.route('/ei/')
|
|
@app.route('/fsr-ei/')
|
|
def fsr_ei():
|
|
return redirect("https://www.tu-ilmenau.de/fachschaftsrat-ei/", code=302)
|
|
|
|
# FSR IA
|
|
@app.route('/ia/')
|
|
@app.route('/fsr-ia/')
|
|
def fsr_ia():
|
|
return redirect("https://www.tu-ilmenau.de/fsr-ia/", code=302)
|
|
|
|
# FSR MB
|
|
@app.route('/mb/')
|
|
@app.route('/fsr-mb/')
|
|
def fsr_mb():
|
|
return redirect("https://www.tu-ilmenau.de/fsr-mb/", code=302)
|
|
|
|
# FSR MN
|
|
@app.route('/mn/')
|
|
@app.route('/fsr-mn/')
|
|
def fsr_mn():
|
|
return redirect("https://www.tu-ilmenau.de/fsr-mn/", code=302)
|
|
|
|
########################################################################################################################
|
|
# StuWe
|
|
########################################################################################################################
|
|
|
|
@app.route('/mensa/')
|
|
def mensa():
|
|
return redirect("https://spi.tu-ilmenau.de/mensa", code=302)
|
|
|
|
@app.route('/block/a/')
|
|
def block_a():
|
|
return redirect("https://www.stw-thueringen.de/deutsch/wohnen/wohnanlagen/ilmenau/max-planck-ring-7haus-a.html", code=302)
|
|
|
|
@app.route('/block/b/')
|
|
def block_b():
|
|
return redirect("https://www.stw-thueringen.de/deutsch/wohnen/wohnanlagen/ilmenau/max-planck-ring-9-haus-b.html", code=302)
|
|
|
|
@app.route('/block/c/')
|
|
def block_c():
|
|
return redirect("https://www.stw-thueringen.de/deutsch/wohnen/wohnanlagen/ilmenau/max-planck-ring-16-haus-c.html", code=302)
|
|
|
|
@app.route('/block/d/')
|
|
def block_d():
|
|
return redirect("https://www.stw-thueringen.de/deutsch/wohnen/wohnanlagen/ilmenau/max-planck-ring-18-haus-d.html", code=302)
|
|
|
|
@app.route('/block/e/')
|
|
def block_e():
|
|
return redirect("https://www.stw-thueringen.de/deutsch/wohnen/wohnanlagen/ilmenau/max-planck-ring-10-haus-e.html", code=302)
|
|
|
|
@app.route('/block/h/')
|
|
def block_h():
|
|
return redirect("https://www.stw-thueringen.de/deutsch/wohnen/wohnanlagen/ilmenau/max-planck-ring-2-haus-h.html", code=302)
|
|
|
|
@app.route('/block/i/')
|
|
def block_i():
|
|
return redirect("https://www.stw-thueringen.de/deutsch/wohnen/wohnanlagen/ilmenau/max-planck-ring-4-haus-i.html", code=302)
|
|
|
|
@app.route('/block/k/')
|
|
def block_k():
|
|
return redirect("https://www.stw-thueringen.de/deutsch/wohnen/wohnanlagen/ilmenau/am-helmholtzring-2-4-haus-k.html", code=302)
|
|
|
|
@app.route('/block/l/')
|
|
def block_l():
|
|
return redirect("https://www.stw-thueringen.de/deutsch/wohnen/wohnanlagen/ilmenau/max-planck-ring-6-8-haus-l.html", code=302)
|
|
|
|
@app.route('/block/n/')
|
|
def block_n():
|
|
return redirect("https://www.stw-thueringen.de/deutsch/wohnen/wohnanlagen/ilmenau/am-helmholtzring-3-haus-n.html", code=302)
|
|
|
|
@app.route('/block/p/')
|
|
def block_p():
|
|
return redirect("https://www.stw-thueringen.de/deutsch/wohnen/wohnanlagen/ilmenau/ehrenbergstrasse-37-haus-p.html", code=302)
|
|
|
|
@app.route('/block/q/')
|
|
def block_q():
|
|
return redirect("https://www.stw-thueringen.de/deutsch/wohnen/wohnanlagen/ilmenau/am-ehrenberg-6-haus-q.html", code=302)
|
|
|
|
@app.route('/block/z/')
|
|
def block_z():
|
|
return redirect("https://www.stw-thueringen.de/deutsch/wohnen/wohnanlagen/ilmenau/goetheallee-11-haus-zapf.html", code=302)
|
|
|
|
@app.route('/block/cjd/')
|
|
def block_cjd():
|
|
return ""
|
|
|
|
@app.route('/block/pp/')
|
|
@app.route('/block/prophis/')
|
|
def block_pp():
|
|
return ""
|
|
|
|
########################################################################################################################
|
|
# Temporary
|
|
########################################################################################################################
|
|
|
|
# Corona Telegram Channel
|
|
@app.route('/corona/')
|
|
@app.route('/covid19/')
|
|
@app.route('/covid-19/')
|
|
def corona():
|
|
return redirect("https://t.me/coronatui", code=302)
|
|
|
|
########################################################################################################################
|
|
# Base
|
|
########################################################################################################################
|
|
|
|
if __name__ == '__main__':
|
|
# Bind to PORT if defined, otherwise default to 5000.
|
|
port = int(os.environ.get('PORT', 5000))
|
|
app.run(host='0.0.0.0', port=port)
|