def earliest_event_by_short_url_server(short_url): try: middle = Event.get_from_key_or_date(short_url) except TimeGhostError as err: raise TimeGhostError("timeghost doesn't know your birthday") timeghost = TimeGhostFactory.build(middle=middle, get_earliest=True) return render_template('timeghost.html', timeghost=timeghost)
def form_for_now_middle(fieldname, form, description, do_events=False): """ Render a form, or the response to the form. Pulls out the specified fied and uses that to generate a TimeGhost.middle. TimeGhost.now is Event.now(). """ try: # Render requested timeghost if request.method == "POST": now = Event.now() middle_key_or_date = request.form[fieldname] middle = Event.get_from_key_or_date(middle_key_or_date, description) timeghost = TimeGhostFactory.build(now=now, middle=middle) if not do_events: timeghost.display_prefix = "" return render_template('timeghost.html', timeghost=timeghost) # draw the form: else: events = None if do_events: events = Event.query().order(-Event.date).fetch() return render_template(form, events=events) except TimeGhostError as err: return render_template('error.html', err=err), 404
def chosen_event_pair(): try: # Render requested timeghost if request.method == "POST": now = Event.now() middle_kod = request.form['middle'] middle = Event.get_from_key_or_date(middle_kod) long_ago_kod = request.form['long_ago'] long_ago = Event.get_from_key_or_date(long_ago_kod) timeghost = TimeGhost(now=now, middle=middle, long_ago=long_ago) return render_template('timeghost.html', timeghost=timeghost) # draw the form: else: events = Event.query().order(-Event.date).fetch() return render_template('specific_both.html', events=events) except TimeGhostError as err: return render_template('error.html', err=err), 404
def permalink_server(middle_key_urlsafe, long_ago_key_urlsafe=None): """ Handles permalinks for a particular timeghost if both arguments are given, and TimeGhosts between now and a particular middle event if only the middle event key is given. """ try: now = Event.now() middle = Event.get_from_key_or_date(middle_key_urlsafe) long_ago = None if long_ago_key_urlsafe is not None: long_ago = Event.get_from_key_or_date(long_ago_key_urlsafe) timeghost = TimeGhostFactory.build(now=now, middle=middle, long_ago=long_ago) return render_template('timeghost.html', timeghost=timeghost) except TimeGhostError as err: return render_template('error.html', err=err), 404
def permalink_server(middle_key_urlsafe, long_ago_key_urlsafe=None): """ Handles permalinks for a particular timeghost if both arguments are given, and TimeGhosts between now and a particular middle event if only the middle event key is given. """ try: if middle_key_urlsafe == 'your-birthday': raise TimeGhostError("timeghost doesn't know your birthday") middle = Event.get_from_key_or_date(middle_key_urlsafe) long_ago = None if long_ago_key_urlsafe is not None: long_ago = Event.get_from_key_or_date(long_ago_key_urlsafe) tg = TimeGhostFactory.build(middle=middle, long_ago=long_ago) return render_template('timeghost.html', timeghost=tg) except TimeGhostError as err: return render_template('error.html', err=err), 404
def birthday_server(birthday_date=None): """ Generate a timeghost for a user-selected birth year.""" fieldname = 'bday' form = 'birthday.html' description = "Your birthday" if birthday_date: middle = Event.get_from_key_or_date(birthday_date) timeghost = TimeGhostFactory.build(middle=middle) return render_template('timeghost.html', timeghost=timeghost) else: return form_for_now_middle(fieldname, form, description)
def form_for_now_middle(fieldname, form, description, do_events=False, get_earliest=False): """ Render a form, or the response to the form. Pulls out the specified field and uses that to generate a TimeGhost.middle. TimeGhost.now is Event.now(). """ try: # Render requested timeghost ('form' input seems to be ignored): if request.method == "POST": middle_key_or_date = request.form[fieldname] middle = Event.get_from_key_or_date(middle_key_or_date, description) timeghost = TimeGhostFactory.build(middle=middle, get_earliest=get_earliest) if not do_events: timeghost.display_prefix = "" return render_template('timeghost.html', timeghost=timeghost) # GET request; draw the form: else: events = None if do_events: events = Event.query().order(-Event.date).fetch() return render_template(form, events=events) except TimeGhostError as err: return render_template('error.html', err=err), 404
def fight_club_server(): """ Generate a timeghost for the release of Fight Club """ fight_club = Event.get_from_key_or_date( 'ag9zfnRpbWVnaG9zdC1hcHByEgsSBUV2ZW50GICAgICG7IcKDA') timeghost = TimeGhostFactory.build(middle=fight_club) return render_template('fight_club.html', timeghost=timeghost)