def _admin_episodejokes(episode_code): from flask import request details = request.form.get('details', None) if request.method == 'POST': episode_joke_id = request.form.get('episode_joke_id', None) ej = EpisodeJoke.get(id=int(episode_joke_id)) ej.details = details ej.save() return '%s' % ej.id if request.method == 'PUT': joke_code = request.form.get('joke_code', None) joke_type = request.form.get('type', None) joke = Joke.get(code=int(joke_code)) episode = Episode.get(code=episode_code) code = 's%se%sj%s' % (str(episode.season).zfill(2), str( episode.episode).zfill(2), joke.code) context = {} context['ej'] = EpisodeJoke(joke=joke, episode=episode, joke_type=joke_type, details=details, code=code) context['ej'].save() return render_template('_episodejoke_form_row.html', **context)
def _parse_episodejokes(sheet): """ Parses joke sheet. Imports episodejokes. Will not update. """ episodes = list(Episode.select()) for row in sheet: for episode in episodes: joke = Joke.get(Joke.code == row['code']) if episode.code == 's02e03': episode.title = '\xc2\xa1Amigos!' if episode.code == 's01e13': episode.title = 'Beef Consomm\xc3\xa9' if row[episode.title] in ['1', 'f', 'b']: ej_dict = {} ej_dict['joke'] = joke ej_dict['episode'] = episode ej_dict['joke_type'] = row[episode.title] ej_dict['code'] = '%sj%s' % (ej_dict['episode'].code, ej_dict['joke'].code) try: EpisodeJoke.get(EpisodeJoke.code == ej_dict['code']) except EpisodeJoke.DoesNotExist: EpisodeJoke(**ej_dict).save()
def _admin_episodejokes(episode_code): from flask import request details = request.form.get('details', None) if request.method == 'POST': episode_joke_id = request.form.get('episode_joke_id', None) ej = EpisodeJoke.get(id=int(episode_joke_id)) ej.details = details ej.save() return '%s' % ej.id if request.method == 'PUT': joke_code = request.form.get('joke_code', None) joke_type = request.form.get('type', None) joke = Joke.get(code=int(joke_code)) episode = Episode.get(code=episode_code) code = 's%se%sj%s' % ( str(episode.season).zfill(2), str(episode.episode).zfill(2), joke.code ) context = {} context['ej'] = EpisodeJoke(joke=joke, episode=episode, joke_type=joke_type, details=details, code=code) context['ej'].save() return render_template('_episodejoke_form_row.html', **context)
def _parse_episodejoke_details(sheet, sheet_num): """ Parses the details, origin and connection sheets. Adds data to existing episodejokes. """ FIELDS = [None, None, None, 'details', None, 'connection'] field = FIELDS[int(sheet_num)] episodes = list(Episode.select()) for row in sheet: for episode in episodes: joke = Joke.get(Joke.code == row['code']) if episode.code == 's02e03': episode.title = '\xc2\xa1Amigos!' if episode.code == 's01e13': episode.title = 'Beef Consomm\xc3\xa9' if row[episode.title]: if field: ej_code = '%sj%s' % (episode.code, joke.code) payload = {} payload[field] = row[episode.title] EpisodeJoke.update(**payload).where( EpisodeJoke.code == ej_code).execute()
def _parse_jokes(sheet): """ Parses joke sheet. Imports jokes. Will not update. """ for row in sheet: joke_dict = {} for item in ['code', 'primary_character', 'text']: try: joke_dict[item] = int(row[item]) except ValueError: joke_dict[item] = row[item].decode('utf-8') try: Joke.get(Joke.code == joke_dict['code']) except Joke.DoesNotExist: Joke.create(**joke_dict).save()
def build_connections(): for episode_joke in EpisodeJoke.select(): if episode_joke.connection: joke1 = episode_joke.joke joke2 = Joke.get(Joke.text == episode_joke.connection.strip()) episode = episode_joke.episode if joke2.code < joke1.code: tmp = joke2 joke2 = joke1 joke1 = tmp JokeConnection(joke1=joke1, joke2=joke2, episode=episode).save()
def _parse_joke_blurbs(sheet): """ Grab the joke blurbs sheet from Google docs. """ for row in sheet: joke = Joke.get(Joke.code == row['Code']) joke.blurb = row['Description'] try: joke.related_joke_code = int(row['Related']) except ValueError: pass joke.save()
def _joke_detail(joke_code): context = make_context() context['joke'] = Joke.get(Joke.code == int(joke_code)) context['episodejokes'] = EpisodeJoke.select().where( EpisodeJoke.joke == context['joke']) context['episodejokes'] = sorted(context['episodejokes'], key=lambda ej: ej.episode.code) context['seasons'] = _all_seasons() with open('www/live-data/jokes.json') as f: data = json.load(f) group_order = data['group_order'] joke_data = data['jokes'] connections = data['connections'] connected_joke_codes = [int(joke_code)] def filter_connections(c): if c['joke1_code'] == int(joke_code) or c['joke2_code'] == int( joke_code): connected_joke_codes.append(c['joke1_code']) connected_joke_codes.append(c['joke2_code']) return True return False connections = filter(filter_connections, connections) def filter_jokes(c): return c['code'] in connected_joke_codes for group, jokes in joke_data.items(): joke_data[group] = filter(filter_jokes, jokes) if len(joke_data[group]) == 0: del joke_data[group] group_order.remove(group) context['group_order'] = Markup(json.dumps(group_order)) context['joke_data'] = Markup(json.dumps(joke_data)) context['connection_data'] = Markup(json.dumps(connections)) context['episodes'] = Markup(json.dumps(data['episodes'])) group = context['joke'].primary_character if group not in app_config.PRIMARY_CHARACTER_LIST: group = 'Miscellaneous' context['group'] = group return render_template('joke_detail.html', **context)
def _joke_detail(joke_code): context = make_context() context['joke'] = Joke.get(Joke.code == int(joke_code)) context['episodejokes'] = EpisodeJoke.select().where(EpisodeJoke.joke == context['joke']) context['episodejokes'] = sorted(context['episodejokes'], key=lambda ej: ej.episode.code) context['seasons'] = _all_seasons() with open('www/live-data/jokes.json') as f: data = json.load(f) group_order = data['group_order'] joke_data = data['jokes'] connections = data['connections'] connected_joke_codes = [int(joke_code)] def filter_connections(c): if c['joke1_code'] == int(joke_code) or c['joke2_code'] == int(joke_code): connected_joke_codes.append(c['joke1_code']) connected_joke_codes.append(c['joke2_code']) return True return False connections = filter(filter_connections, connections) def filter_jokes(c): return c['code'] in connected_joke_codes for group, jokes in joke_data.items(): joke_data[group] = filter(filter_jokes, jokes) if len(joke_data[group]) == 0: del joke_data[group] group_order.remove(group) context['group_order'] = Markup(json.dumps(group_order)) context['joke_data'] = Markup(json.dumps(joke_data)) context['connection_data'] = Markup(json.dumps(connections)) context['episodes'] = Markup(json.dumps(data['episodes'])) group = context['joke'].primary_character if group not in app_config.PRIMARY_CHARACTER_LIST: group = 'Miscellaneous' context['group'] = group return render_template('joke_detail.html', **context)
def _admin_jokeconnections(episode_code): from flask import request if request.method == 'POST': pass if request.method == 'PUT': payload = {} ej = EpisodeJoke.get(id=int(request.form.get('episode_joke_id'))) payload['joke1'] = ej.joke payload['joke2'] = Joke.get(code=int(request.form.get('joke_code'))) payload['episode'] = ej.episode j = JokeConnection(**payload) j.save() return(""" <br/> <a class="related kill-related" href="#" data-jc-id="%s">×</a> <a class="related" href="#joke-%s">%s →</a>""" % (j.id, j.joke2.code, j.joke2.text))
def _admin_jokeconnections(episode_code): from flask import request if request.method == 'POST': pass if request.method == 'PUT': payload = {} ej = EpisodeJoke.get(id=int(request.form.get('episode_joke_id'))) payload['joke1'] = ej.joke payload['joke2'] = Joke.get(code=int(request.form.get('joke_code'))) payload['episode'] = ej.episode j = JokeConnection(**payload) j.save() return (""" <br/> <a class="related kill-related" href="#" data-jc-id="%s">×</a> <a class="related" href="#joke-%s">%s →</a>""" % (j.id, j.joke2.code, j.joke2.text))
def _parse_episodejoke_details(sheet, sheet_num): """ Parses the details, origin and connection sheets. Adds data to existing episodejokes. """ FIELDS = [None, None, None, 'details', None, 'connection'] field = FIELDS[int(sheet_num)] episodes = list(Episode.select()) for row in sheet: for episode in episodes: joke = Joke.get(Joke.code == row['code']) if episode.code == 's02e03': episode.title = '\xc2\xa1Amigos!' if episode.code == 's01e13': episode.title = 'Beef Consomm\xc3\xa9' if row[episode.title]: if field: ej_code = '%sj%s' % (episode.code, joke.code) payload = {} payload[field] = row[episode.title] EpisodeJoke.update(**payload).where(EpisodeJoke.code == ej_code).execute()