Example #1
0
def new():
    ''' Create a new festival (new_url_slug), gather user
    preferences of organizer, save festival to dB, save organizer
    to dB as a contributor and redirect to newly minted festival page.
    '''
    current_user = load_user(session.get('user_id'))
    new_url_slug = helpers.generate_urlslug(current_user.id)
    new_catalog = helpers.Catalog(new_url_slug, 'general')
    s = spotipy.Spotify(auth=current_user.access)

    processor = helpers.AsyncAdapter(app)
    user_cache.save_preferences(processor.get_user_preferences(s), new_url_slug)
    artists = user_cache.retrieve_preferences(new_url_slug)

    if user_cache.retrieve_preferences(new_url_slug):
        processor.populate_catalog(artists, 3, catalog=new_catalog)

    db.save_to_database(None, current_user.id, None, None,
                        new_catalog.id, new_url_slug)

    current_festival = db.get_info_from_database(new_url_slug)
    festivalId = current_festival[0]
    userId = current_festival[2]
    if app.config['IS_ASYNC']:
        db.save_contributor.apply_async(args=(festivalId, userId),
                                        kwargs={'organizer': 1, 'ready': 1})
    else:
        db.save_contributor(festivalId, userId, organizer=1, ready=1)
    app.logger.warning("NEW festival created at '{}'".format(new_url_slug))
    return redirect(url_for('festival', url_slug=new_url_slug))
Example #2
0
def new():
    current_user = load_user(session.get('user_id'))
    new_url_slug = helpers.generate_urlslug(current_user.id)
    new_catalog = helpers.Catalog(new_url_slug, 'general')
    s = spotipy.Spotify(auth=current_user.access)

    processor = helpers.AsyncAdapter(app)
    user_cache.save_preferences(processor.get_user_preferences(s), new_url_slug)
    artists = user_cache.retrieve_preferences(new_url_slug)

    if user_cache.retrieve_preferences(new_url_slug):
        processor.populate_catalog(artists, 3, catalog=new_catalog)
    if app.config['IS_ASYNC'] is True:
        save_task = db.save_to_database.apply_async(args=[None, current_user.id,
                                                    None, None, new_catalog.id,
                                                    new_url_slug])
        while True:
            if save_task.state == 'SUCCESS':
                print 'just saved DB'
                break
    else:
        db.save_to_database(None, current_user.id, None, None,
                            new_catalog.id, new_url_slug)

    current_festival = db.get_info_from_database(new_url_slug)
    festivalId = current_festival[0]
    userId = current_festival[2]
    try:
        db.save_contributor(festivalId, userId, organizer=1, ready=1)
    except:
        print ("SAVING CONTRIBUTOR FAILED!")
    return redirect(url_for('festival', url_slug=new_url_slug))
Example #3
0
def join(url_slug):
    print ("URLSLUG HERE IS {}".format(url_slug))
    current_festival = db.get_info_from_database(url_slug)
    if not current_festival:
        flash(("Festival '{}' does not exist! Please check"
               " the code and try again.").format(url_slug))
        return redirect(url_for('home'))
    organizer = current_festival[2]
    _user = session.get('user_id')
    if organizer != _user:
        try:
            db.save_contributor(current_festival[0], _user)
        except:
            print ("Contributor {} is already in the database.".format(_user))
    else:
        flash("Welcome back to your own festival!")
    return redirect(url_for('festival', url_slug=url_slug))
Example #4
0
def join(url_slug):
    ''' Adds current logged-in user to festival located at
    url_slug. If user is a contributor, this information is
    saved to dB.
    '''
    current_festival = db.get_info_from_database(url_slug)
    if not current_festival:
        flash(("Festival '{}' does not exist! Please check"
               " the code and try again.").format(url_slug))
        return redirect(url_for('home'))
    organizer = current_festival[2]
    _user = session.get('user_id')
    app.logger.warning("User '{}' is joining festival '{}'".format(_user, url_slug))
    if organizer != _user:
        try:
            db.save_contributor(current_festival[0], _user)
        except:
            app.logger.warning("Contributor {} is already in the database.".format(_user))
    else:
        flash("Welcome back to your own festival!")
    return redirect(url_for('festival', url_slug=url_slug))