--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/palvelu.py Mon Apr 17 14:51:22 2017 +0300 @@ -0,0 +1,50 @@ +#!/usr/bin/env python3 +from flask import Flask, render_template +from datetime import datetime, date, time, timedelta +import locale + +app = Flask(__name__) +locale.setlocale(locale.LC_ALL, locale.getdefaultlocale()) + +def muotoile_aika(aika, suhteellinen = True): + erotus = aika - datetime.now() + if suhteellinen and erotus < timedelta(minutes = 30): + return '%dm' % round(erotus.seconds / 60) + elif aika.day == datetime.now().day: + return '%d:%02d' % (aika.hour, aika.minute) + elif erotus < timedelta(7): + return aika.strftime('%-a %H:%M') + else: + return aika.strftime('%-d.%-m. %H:%M') + +@app.route('/pysäkki/<tunniste>') +def pysäkkiaikataulu(tunniste): + from bussit import pysäkit + aikataulu = [] + pysäkki = pysäkit[tunniste] + for (aika, pysähdys) in pysäkki.aikataulu(100): + aikataulu.append({ + 'aika': muotoile_aika(aika), + 'linja': pysähdys.ajo.linja.viite, + 'kyltti': pysähdys.ajo.kyltti, + 'ajovuoro': pysähdys.ajo.nimi, + }) + return render_template('pysäkki.html', aikataulu = aikataulu, viite = tunniste, nimi = pysäkki.nimi) + +@app.route('/ajovuoro/<int:numero>') +def ajoreitti(numero): + from bussit import ajot + ajovuoro = ajot[numero] + reitti = [] + for pysähdys in ajovuoro.reitti: + aika = datetime.combine(date.today(), time()) + pysähdys.saapumisaika + reitti.append({ + 'aika': muotoile_aika(aika, suhteellinen = False), + 'tunniste': pysähdys.pysäkki.tunniste, + 'nimi': pysähdys.pysäkki.nimi, + }) + return render_template('ajovuoro.html', reitti = reitti, numero = numero, + linja = ajovuoro.linja.viite, selite = ajovuoro.kyltti) + +if __name__ == '__main__': + app.run(debug = True) \ No newline at end of file