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()
Beispiel #3
0
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)
Beispiel #4
0
def _admin_episodes(episode_code):
    from flask import request

    if request.method == 'GET':
        context = {}
        context['episode'] = Episode.get(code=episode_code)
        context['episodejokes'] = EpisodeJoke.select().join(Episode).where(
            Episode.code == episode_code)
        context['jokes'] = Joke.select().order_by(Joke.primary_character)
        context['seasons'] = _all_seasons()

        try:
            context['next'] = Episode.get(number=context['episode'].number + 1)
        except Episode.DoesNotExist:
            context['next'] = None
        try:
            context['prev'] = Episode.get(number=context['episode'].number - 1)
        except Episode.DoesNotExist:
            context['prev'] = None

        return render_template('admin_episode_detail.html', **context)

    if request.method == 'PUT':
        e = Episode.get(code=episode_code)
        e.blurb = request.form.get('blurb', None)
        e.save()
        return '%s' % e.id
Beispiel #5
0
def _admin_output():
    output = {}
    output['joke_main'] = ''
    output['joke_details'] = ''
    output['joke_connections'] = ''
    for joke in Joke.select():
        for episode in Episode.select().where(Episode.season == 4).order_by(
                Episode.number):
            try:
                ej = EpisodeJoke.get(episode=episode, joke=joke)
                output['joke_main'] += '%s\t' % ej.joke_type
                output['joke_details'] += '\'%s\t' % ej.details
                if ej.connections():
                    output['joke_connections'] += '\'%s\t' % ej.connections(
                    )[0]['text']
                else:
                    output['joke_connections'] += '\t'
            except EpisodeJoke.DoesNotExist:
                output['joke_main'] += '\t'
                output['joke_details'] += '\t'
                output['joke_connections'] += '\t'
        output['joke_main'] += '\n'
        output['joke_details'] += '\n'
        output['joke_connections'] += '\n'
    return render_template('_output.html', **output)
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()
Beispiel #7
0
def get_random_joke_text():
    query = Joke.all()
    query.order("date_created")
    db_jokes = query.fetch(limit=100)
    total_jokes = len(db_jokes)
    joke_idx = randint(0,total_jokes-1)
    return db_jokes[joke_idx].joke_text
Beispiel #8
0
def _admin_episodes(episode_code):
    from flask import request

    if request.method == 'GET':
        context = {}
        context['episode'] = Episode.get(code=episode_code)
        context['episodejokes'] = EpisodeJoke.select().join(Episode).where(Episode.code == episode_code)
        context['jokes'] = Joke.select().order_by(Joke.primary_character)
        context['seasons'] = _all_seasons()

        try:
            context['next'] = Episode.get(number=context['episode'].number + 1)
        except Episode.DoesNotExist:
            context['next'] = None
        try:
            context['prev'] = Episode.get(number=context['episode'].number - 1)
        except Episode.DoesNotExist:
            context['prev'] = None

        return render_template('admin_episode_detail.html', **context)

    if request.method == 'PUT':
        e = Episode.get(code=episode_code)
        e.blurb = request.form.get('blurb', None)
        e.save()
        return '%s' % e.id
Beispiel #9
0
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)
Beispiel #10
0
def tell_me_a_joke(_message, _data, chat_id):
    jokes = Joke.all()
    joke = random.choice(jokes)

    response = "Here you go:\n{0}\n\nSource: {1}".format(
        joke.content, joke.source)
    send_message(response, chat_id)
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 _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 _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 _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 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 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()
Beispiel #19
0
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)
Beispiel #20
0
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)
Beispiel #21
0
 def get(self):
     query = Joke.all()
     query.order("-date_created")
     db_jokes = query.fetch(limit=10)
     joke_list = []
     for j in db_jokes:
         tmp = {
             "id": j.key().id(), 
             "joke_text":j.joke_text, 
             "date_created":unicode(j.date_created), 
             "votes":j.votes
             }
         joke_list.append(tmp)
     result = {
         "success":True, 
         "message":"Last 10 Jokes", 
         "data":{"joke_list":joke_list}
         }
     render_dict_to_json(self.response, result)
Beispiel #22
0
def index():
    context = make_context()
    context['jokes'] = []

    for joke in Joke.select():
        context['jokes'].append(joke)

    context['jokes'] = sorted(context['jokes'], key=lambda joke: joke.code)
    context['seasons'] = _all_seasons()

    with open('www/live-data/jokes.json') as f:
        data = json.load(f)

    context['group_order'] = Markup(json.dumps(data['group_order']))
    context['joke_data'] = Markup(json.dumps(data['jokes']))
    context['connection_data'] = Markup(json.dumps(data['connections']))
    context['episodes'] = Markup(json.dumps(data['episodes']))

    return render_template('viz.html', **context)
Beispiel #23
0
def index():
    context = make_context()
    context['jokes'] = []

    for joke in Joke.select():
        context['jokes'].append(joke)

    context['jokes'] = sorted(context['jokes'], key=lambda joke: joke.code)
    context['seasons'] = _all_seasons()

    with open('www/live-data/jokes.json') as f:
        data = json.load(f)

    context['group_order'] = Markup(json.dumps(data['group_order']))
    context['joke_data'] = Markup(json.dumps(data['jokes']))
    context['connection_data'] = Markup(json.dumps(data['connections']))
    context['episodes'] = Markup(json.dumps(data['episodes']))

    return render_template('viz.html', **context)
Beispiel #24
0
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">&times;</a>
            <a class="related" href="#joke-%s">%s &rarr;</a>""" % (j.id, j.joke2.code, j.joke2.text))
Beispiel #25
0
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">&times;</a>
            <a class="related" href="#joke-%s">%s &rarr;</a>""" %
                (j.id, j.joke2.code, j.joke2.text))
Beispiel #26
0
def addjoke():
    form = AddJokeForm()
    if request.method == 'POST':
        if form.validate() == False:
            return render_template('add_joke.html',
                                   user=session['profile'],
                                   const=const,
                                   form=form)
        else:
            userid = session['profile']["sub"]
            userid = userid[userid.index('|') + 1:len(userid)]
            joke = form.joke.data
            # create joke and rating for that joke
            new_joke = Joke(joke, userid)
            db.session.add(new_joke)
            db.session.commit()
            return redirect(url_for('dashboard'))
    elif request.method == 'GET':
        return render_template('add_joke.html',
                               user=session['profile'],
                               const=const,
                               form=form)
Beispiel #27
0
def _admin_output():
        output = {}
        output['joke_main'] = ''
        output['joke_details'] = ''
        output['joke_connections'] = ''
        for joke in Joke.select():
            for episode in Episode.select().where(Episode.season == 4).order_by(Episode.number):
                try:
                    ej = EpisodeJoke.get(episode=episode, joke=joke)
                    output['joke_main'] += '%s\t' % ej.joke_type
                    output['joke_details'] += '\'%s\t' % ej.details
                    if ej.connections():
                        output['joke_connections'] += '\'%s\t' % ej.connections()[0]['text']
                    else:
                        output['joke_connections'] += '\t'
                except EpisodeJoke.DoesNotExist:
                    output['joke_main'] += '\t'
                    output['joke_details'] += '\t'
                    output['joke_connections'] += '\t'
            output['joke_main'] += '\n'
            output['joke_details'] += '\n'
            output['joke_connections'] += '\n'
        return render_template('_output.html', **output)
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 render_pages():
    render()
    local('rm -rf www/episode*.html')
    local('rm -rf www/joke*.html')
    _render_iterable(Joke.select(), 'joke', 'code')
    _render_iterable(Episode.select(), 'episode', 'code')
def render_pages():
    render()
    local('rm -rf www/episode*.html')
    local('rm -rf www/joke*.html')
    _render_iterable(Joke.select(), 'joke', 'code')
    _render_iterable(Episode.select(), 'episode', 'code')
Beispiel #31
0
def joke():
    """ This method serves a random joke. """

    first_name = request.params.get("first_name")
    last_name = request.params.get("last_name")
    return Joke.get_random_joke(first_name, last_name).to_json()
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 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 scrape(self):
     for tweet in self._tweets():
         Joke(self._tweet_ref(tweet), self._tweet_content(tweet),
              self._tweet_url(tweet), self.user).save()
 def scrape(self):
     for joke in self._jokes():
         Joke(self._joke_ref(joke), self._joke_content(joke),
              self._joke_url(joke), self.SOURCE).save()