コード例 #1
0
ファイル: main.py プロジェクト: tlabna/item-catalog
def addSong():
    genres = session.query(Genre).order_by(asc(Genre.name))

    if request.method == 'POST':
        if request.form['youtube_url']:
            # Decided to be more user friendly and ask users to enter a
            # youtube url. Since the url is consistent and only the query_id
            # changes, I extract the query id from the url
            youtube_id = request.form['youtube_url'].split("v=", 1)[1]
        if request.form['genre_id']:
            genre_id = request.form['genre_id']

        user_id = getUserID(login_session['email'])

        new_song = Song(name=request.form['song-name'],
                        artist_name=request.form['artist-name'],
                        youtube_id=youtube_id,
                        genre_id=genre_id,
                        user_id=user_id)
        session.add(new_song)
        session.commit()
        flash('Successfully Added %s - %s'
              % (new_song.name, new_song.artist_name))
        return redirect(url_for('userSongs'))
    else:
        return render_template('addsong.html', genres=genres)
コード例 #2
0
ファイル: yomusic.py プロジェクト: williamguiracoche/yomusic
def newSong(genre_id):
    if 'username' not in login_session:
        return redirect('/login')
    genre = session.query(Genre).filter_by(id= genre_id).one()
    if login_session['user_id'] != genre.user_id:
        return "<script>function myFunction() {alert('You are not authorized to add songs to this playlist. Please create your own playlist in order to add songs.');}</script><body onload='myFunction()'>"
    if request.method == 'POST':
        newSong = Song(name = request.form['name'], \
            artist = request.form['artist'], album = request.form['album'],\
            genre_id = genre_id)
        session.add(newSong)
        session.commit()
        flash('%s Successfully Added' % (newSong.name))
        return redirect(url_for('showPlaylist', genre_id = genre_id))
    else:
        return render_template('newSong.html', genre = genre)
コード例 #3
0
def newSong(genre_id):
    if 'username' not in login_session:
        return redirect('/login')
    genre = session.query(Genre).filter_by(id=genre_id).one()
    if request.method == 'POST':
        newSong = Song(name=request.form['name'],
                       genre_id=genre_id,
                       band_name=request.form['band_name'],
                       country=request.form['country'],
                       youtube_url=request.form['youtube_url'],
                       user_id=login_session['user_id'])
        session.add(newSong)
        session.commit()
        flash('New song %s successfully created' % (newSong.name))
        return redirect(url_for('showSongs', genre_id=genre_id))
    else:
        return render_template('new-song.html', genre_id=genre_id)
コード例 #4
0
def populateDb(username, token):
    """Add items found in the user's Discogs collection to the sqlite DB.

    args: Discogs username, Discogs API token
    """
    # create user
    me = User(name='Gry0u', email='*****@*****.**')
    session.add(me)
    session.commit()
    # get all the release IDs in the user collection
    # then get the infos for each release using the api
    # Use the infos to set values for the new entries in the SQL DB
    # add new entries in DB
    for release in getReleasesID(username, token):
        infos = getReleaseInfo(release, token)
        if infos:
            if not session.query(Genre).filter_by(name=infos['genre']).first():
                genre = Genre(name=infos['genre'], user=me)
                session.add(genre)
                session.commit()
                print 'Genre added'
            else:
                genre = (session.query(Genre).filter_by(
                    name=infos['genre']).first())
            album = Album(title=infos['title'],
                          artist=infos['artist'],
                          label=infos['label'],
                          released=infos['released'],
                          image=infos['image'],
                          genre=genre,
                          user=me)
            session.add(album)
            session.commit()
            print 'Album added'

            for song in infos['songs']:
                song = Song(position=song['position'],
                            title=song['title'],
                            album=album,
                            user=me)
                session.add(song)
                session.commit()
                print 'song added'
    print 'Insertion of new items in DB completed !'
コード例 #5
0
def newSong(playlist_id):
    if 'username' not in login_session:
        return redirect('/login')
    playlist = session.query(Playlist).filter_by(id=playlist_id).one()
    if login_session['user_id'] != playlist.user_id:
        return "<script>function myFunction() {alert('You are not authorized to add items to this playlist. Please create your own playlist in order to add items.');}</script><body onload='myFunction()''>"
    if request.method == 'POST':
        newItem = Song(name=request.form['name'],
                       artist=request.form['artist'],
                       album=request.form['album'],
                       playlist_id=playlist_id,
                       user_id=playlist.user_id)
        session.add(newItem)
        session.commit()
        flash('New %s Song Successfully Added to the Playlist' %
              (newItem.name))
        return redirect(url_for('showSongs', playlist_id=playlist_id))
    else:
        return render_template('newsong.html', playlist_id=playlist_id)
コード例 #6
0
ファイル: views.py プロジェクト: r1oga/vinyls_catalogue
def newSong(release_id):
    """Render template to add song to a release and handle post request."""
    if 'username' not in login_session:
        return redirect('/login')
    release = session.query(Album).filter_by(id=release_id).one()
    # connected user must be the creator of a release to add a new song to it
    if login_session['user_id'] != release.user_id:
        return render_template('notallowed.html')
    if request.method == 'POST':
        song = Song(
            title=request.form['title'],
            position=request.form['position'],
            release_id=release.id,
            # force song.user_id == release.user_id
            user_id=release.user_id)
        session.add(song)
        session.commit()
        flash('New song added!')
        return redirect(url_for('showSongs', release_id=release_id))
    if request.method == 'GET':
        return render_template('newsong.html', release=release)
コード例 #7
0
def newSong(band_id):
    # must be logged in to continue
    if 'username' not in login_session:
        flash('You have to log in to add a song!')
        return redirect(url_for('showBands'))
    loggedInUser = getUserInfo(login_session['user_id'])
    band = allBands.filter_by(id=band_id).one()
    # must be the band creator to continue
    if loggedInUser.id != band.user_id:
        flash('You have to be the creator of a band to add a song!')
        return redirect(url_for('showBands'))
    if request.method == 'POST':
        newSong = Song(band_id=band_id,
                       title=request.form['title'],
                       description=request.form['description'],
                       user_id=loggedInUser.id)
        session.add(newSong)
        session.commit()
        flash('New Song %s Successfully Added' % (newSong.title))
        return redirect(url_for('showSongs', band_id=band_id))
    else:
        return render_template('newSong.html',
                               band=band,
                               loggedInUser=loggedInUser)
コード例 #8
0
ファイル: dummy_data.py プロジェクト: tlabna/item-catalog
session.commit()

genre4 = Genre(name="Rock")

session.add(genre4)
session.commit()

genre5 = Genre(name="Country")

session.add(genre5)
session.commit()

# Songs
song1 = Song(name="Morning Call",
             artist_name="Nick Colionne",
             youtube_id="QsuZPScE5uc",
             genre=genre1,
             user=user1)

session.add(song1)
session.commit()

song2 = Song(name="Black Beatles",
             artist_name="Rae Sremmurd",
             youtube_id="b8m9zhNAgKs",
             genre=genre2,
             user=user1)

session.add(song2)
session.commit()
コード例 #9
0
    email="*****@*****.**",
    picture=
    'https://pbs.twimdgdaSD.com/profile_images/2671170543/18debd694829ed78203a5a36dd364160_400x400.png'
)
session.add(User3)
session.commit()

# Looping genre music dump
loopingGenre = Genre(name="looping", user_id=1)

session.add(loopingGenre)
session.commit()

song1 = Song(name="Retcon",
             band_name="Mylets",
             country="US",
             youtube_url="https://www.youtube.com/watch?v=GJ9OQLovpr4",
             genre=loopingGenre,
             user_id=1)
session.add(song1)
session.commit()

song2 = Song(name="Indian Winter",
             band_name="El Ten Eleven",
             country="US",
             youtube_url="https://www.youtube.com/watch?v=mTkPfjSXFpo",
             genre=loopingGenre,
             user_id=1)
session.add(song2)
session.commit()

song3 = Song(name="Emulsifaction",
コード例 #10
0
ファイル: db_fill.py プロジェクト: williamguiracoche/yomusic
# session won't be persisted into the database until you call
# session.commit(). If you're not happy about the changes, you can
# revert all of them back to the last commit by calling
# session.rollback()
session = DBSession()

user1 = User(id=1, name="will", email="will.email.com")

#Playlist for Rock
genre1 = Genre(name="Rock", user=user1)
session.add(genre1)
session.commit()

song1 = Song(name="Mr. Brightside",
             artist="The Killers",
             album="Hot Fuss",
             genre=genre1,
             user=user1)
session.add(song1)
session.commit()

song2 = Song(name="Seven Nation Army",
             artist="The White Stripes",
             album="Elephant",
             genre=genre1,
             user=user1)
session.add(song2)
session.commit()

song3 = Song(name="Uprising",
             artist="Muse",
コード例 #11
0
from database_setup import Base, Song, Singer, User
engine = create_engine('sqlite:///catalog.db?check_same_thread=False')
engine = create_engine('postgresql://*****:*****@localhost/catalog')

Base.metadata.bind = engine
DBSession = sessionmaker(bind=engine)
session = DBSession()

User1 = User(
    name="Robo Barista",
    email="*****@*****.**",
    picture=
    'https://pbs.twimg.com/profile_images/2671170543/18debd694829ed78203a5a36dd364160_400x400.png'
)
session.add(User1)
session.commit()

singer = Singer(user_id=1, name='Hozier')
session.add(singer)
session.commit()
session.query(Singer).all()
song = Song(user_id=1,
            name="Someone new",
            description="Made with love",
            album="ALBUM",
            year_released="2014",
            singer=singer)
session.add(song)
session.commit()
session.query(Song).all()