def setup_tables(): """ Creates the tables for the Arrested Development database. """ db.connect() Joke.create_table() Episode.create_table() EpisodeJoke.create_table() JokeConnection.create_table()
def setup_tables(): """ Creates the tables for the Arrested Development database. """ db.connect() Joke.create_table() Episode.create_table() EpisodeJoke.create_table() JokeConnection.create_table()
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 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 _admin_jokeconnection_delete(episode_code, joke_connection_id): from flask import request if request.method == 'DELETE': JokeConnection.delete().where( JokeConnection.id == int(joke_connection_id)).execute() return joke_connection_id
def write_jokes_json(): """ Writes the JSON for @onyxfish and @alykat's viz. Produces a list of jokes and within that a list of episodejokes where the joke appears, sorted by episode index number. """ payload = { 'group_order': app_config.PRIMARY_CHARACTER_LIST, 'jokes': {}, 'connections': [], 'episodes': {} } for joke in Joke.select().order_by(Joke.primary_character): if joke.primary_character not in payload['group_order']: joke.primary_character = 'Miscellaneous' if joke.primary_character not in payload['jokes']: payload['jokes'][joke.primary_character] = [] joke_dict = joke.__dict__['_data'] del joke_dict['id'] del joke_dict['blurb'] joke_dict['episodejokes'] = [] for ej in EpisodeJoke.select().join(Joke).where(Joke.code == joke.code): episode_dict = ej.__dict__['_data'] episode_dict['episode_number'] = ej.episode.number for k in ['episode', 'joke', 'id', 'origin']: del episode_dict[k] joke_dict['episodejokes'].append(episode_dict) joke_dict['episodejokes'] = sorted(joke_dict['episodejokes'], key=lambda ej: ej['episode_number']) payload['jokes'][joke.primary_character].append(joke_dict) if app_config.IMPORT_NEW_SEASON is True: episodes = Episode().select().order_by(Episode.number) else: episodes = Episode().select().where(Episode.season != 4).order_by(Episode.number) for episode in episodes: episode_dict = episode.__dict__['_data'] episode_dict['run_date'] = episode_dict['run_date'].strftime('%Y-%m-%d') for k in ['blurb', 'id', 'production_code', 'rating', 'tvdb_image']: del episode_dict[k] payload['episodes'][episode.number] = episode_dict for primary_character, jokes in payload['jokes'].items(): payload['jokes'][primary_character] = sorted(jokes, key=lambda j: j['episodejokes'][0]['episode_number']) for connection in JokeConnection.select(): payload['connections'].append({ 'joke1_code': connection.joke1.code, 'joke2_code': connection.joke2.code, 'episode_number': connection.episode.number }) payload['connections'] = sorted(payload['connections'], key=lambda c: c['joke1_code']) with open('www/live-data/jokes.json', 'wb') as jokefile: jokefile.write(json.dumps(payload))
def _admin_jokeconnection_delete(episode_code, joke_connection_id): from flask import request if request.method == 'DELETE': JokeConnection.delete().where(JokeConnection.id == int(joke_connection_id)).execute() return joke_connection_id
def write_jokes_json(): """ Writes the JSON for @onyxfish and @alykat's viz. Produces a list of jokes and within that a list of episodejokes where the joke appears, sorted by episode index number. """ payload = { 'group_order': app_config.PRIMARY_CHARACTER_LIST, 'jokes': {}, 'connections': [], 'episodes': {} } for joke in Joke.select().order_by(Joke.primary_character): if joke.primary_character not in payload['group_order']: joke.primary_character = 'Miscellaneous' if joke.primary_character not in payload['jokes']: payload['jokes'][joke.primary_character] = [] joke_dict = joke.__dict__['_data'] del joke_dict['id'] del joke_dict['blurb'] joke_dict['episodejokes'] = [] for ej in EpisodeJoke.select().join(Joke).where( Joke.code == joke.code): episode_dict = ej.__dict__['_data'] episode_dict['episode_number'] = ej.episode.number for k in ['episode', 'joke', 'id', 'origin']: del episode_dict[k] joke_dict['episodejokes'].append(episode_dict) joke_dict['episodejokes'] = sorted(joke_dict['episodejokes'], key=lambda ej: ej['episode_number']) payload['jokes'][joke.primary_character].append(joke_dict) if app_config.IMPORT_NEW_SEASON is True: episodes = Episode().select().order_by(Episode.number) else: episodes = Episode().select().where(Episode.season != 4).order_by( Episode.number) for episode in episodes: episode_dict = episode.__dict__['_data'] episode_dict['run_date'] = episode_dict['run_date'].strftime( '%Y-%m-%d') for k in ['blurb', 'id', 'production_code', 'rating', 'tvdb_image']: del episode_dict[k] payload['episodes'][episode.number] = episode_dict for primary_character, jokes in payload['jokes'].items(): payload['jokes'][primary_character] = sorted( jokes, key=lambda j: j['episodejokes'][0]['episode_number']) for connection in JokeConnection.select(): payload['connections'].append({ 'joke1_code': connection.joke1.code, 'joke2_code': connection.joke2.code, 'episode_number': connection.episode.number }) payload['connections'] = sorted(payload['connections'], key=lambda c: c['joke1_code']) with open('www/live-data/jokes.json', 'wb') as jokefile: jokefile.write(json.dumps(payload))