Mon, 17 Apr 2017 14:51:22 +0300
Alustava versio
#!/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)