mirror of
https://github.com/spl0k/supysonic.git
synced 2024-12-22 17:06:17 +00:00
Converting api:annotation
This commit is contained in:
parent
09ffacd49c
commit
595b65606b
@ -21,10 +21,12 @@
|
|||||||
import time
|
import time
|
||||||
import uuid
|
import uuid
|
||||||
from flask import request
|
from flask import request
|
||||||
from web import app
|
from web import app, store
|
||||||
from . import get_entity
|
from . import get_entity
|
||||||
from lastfm import LastFm
|
from lastfm import LastFm
|
||||||
from db import *
|
from db import Track, Album, Artist, Folder
|
||||||
|
from db import StarredTrack, StarredAlbum, StarredArtist, StarredFolder
|
||||||
|
from db import RatingTrack, RatingFolder
|
||||||
|
|
||||||
@app.route('/rest/star.view', methods = [ 'GET', 'POST' ])
|
@app.route('/rest/star.view', methods = [ 'GET', 'POST' ])
|
||||||
def star():
|
def star():
|
||||||
@ -36,11 +38,14 @@ def star():
|
|||||||
except:
|
except:
|
||||||
return 2, request.error_formatter(0, 'Invalid %s id' % ent.__name__)
|
return 2, request.error_formatter(0, 'Invalid %s id' % ent.__name__)
|
||||||
|
|
||||||
if starred_ent.query.get((request.user.id, uid)):
|
if store.get(starred_ent, (request.user.id, uid)):
|
||||||
return 2, request.error_formatter(0, '%s already starred' % ent.__name__)
|
return 2, request.error_formatter(0, '%s already starred' % ent.__name__)
|
||||||
e = ent.query.get(uid)
|
e = store.get(ent, uid)
|
||||||
if e:
|
if e:
|
||||||
session.add(starred_ent(user = request.user, starred = e))
|
starred = starred_ent()
|
||||||
|
starred.user_id = request.user.id
|
||||||
|
starred.starred_id = uid
|
||||||
|
store.add(starred)
|
||||||
else:
|
else:
|
||||||
return 1, request.error_formatter(70, 'Unknown %s id' % ent.__name__)
|
return 1, request.error_formatter(70, 'Unknown %s id' % ent.__name__)
|
||||||
|
|
||||||
@ -65,7 +70,7 @@ def star():
|
|||||||
if err:
|
if err:
|
||||||
return ferror
|
return ferror
|
||||||
|
|
||||||
session.commit()
|
store.commit()
|
||||||
return request.formatter({})
|
return request.formatter({})
|
||||||
|
|
||||||
@app.route('/rest/unstar.view', methods = [ 'GET', 'POST' ])
|
@app.route('/rest/unstar.view', methods = [ 'GET', 'POST' ])
|
||||||
@ -78,7 +83,7 @@ def unstar():
|
|||||||
except:
|
except:
|
||||||
return request.error_formatter(0, 'Invalid id')
|
return request.error_formatter(0, 'Invalid id')
|
||||||
|
|
||||||
ent.query.filter(ent.user_id == request.user.id).filter(ent.starred_id == uid).delete()
|
store.find(ent, ent.user_id == request.user.id, ent.starred_id == uid).remove()
|
||||||
return None
|
return None
|
||||||
|
|
||||||
for eid in id:
|
for eid in id:
|
||||||
@ -99,7 +104,7 @@ def unstar():
|
|||||||
if err:
|
if err:
|
||||||
return err
|
return err
|
||||||
|
|
||||||
session.commit()
|
store.commit()
|
||||||
return request.formatter({})
|
return request.formatter({})
|
||||||
|
|
||||||
@app.route('/rest/setRating.view', methods = [ 'GET', 'POST' ])
|
@app.route('/rest/setRating.view', methods = [ 'GET', 'POST' ])
|
||||||
@ -118,24 +123,28 @@ def rate():
|
|||||||
return request.error_formatter(0, 'rating must be between 0 and 5 (inclusive)')
|
return request.error_formatter(0, 'rating must be between 0 and 5 (inclusive)')
|
||||||
|
|
||||||
if rating == 0:
|
if rating == 0:
|
||||||
RatingTrack.query.filter(RatingTrack.user_id == request.user.id).filter(RatingTrack.rated_id == uid).delete()
|
store.find(RatingTrack, RatingTrack.user_id == request.user.id, RatingTrack.rated_id == uid).remove()
|
||||||
RatingFolder.query.filter(RatingFolder.user_id == request.user.id).filter(RatingFolder.rated_id == uid).delete()
|
store.find(RatingFolder, RatingFolder.user_id == request.user.id, RatingFolder.rated_id == uid).remove()
|
||||||
else:
|
else:
|
||||||
rated = Track.query.get(uid)
|
rated = store.get(Track, uid)
|
||||||
rating_ent = RatingTrack
|
rating_ent = RatingTrack
|
||||||
if not rated:
|
if not rated:
|
||||||
rated = Folder.query.get(uid)
|
rated = store.get(Folder, uid)
|
||||||
rating_ent = RatingFolder
|
rating_ent = RatingFolder
|
||||||
if not rated:
|
if not rated:
|
||||||
return request.error_formatter(70, 'Unknown id')
|
return request.error_formatter(70, 'Unknown id')
|
||||||
|
|
||||||
rating_info = rating_ent.query.get((request.user.id, uid))
|
rating_info = store.get(rating_ent, (request.user.id, uid))
|
||||||
if rating_info:
|
if rating_info:
|
||||||
rating_info.rating = rating
|
rating_info.rating = rating
|
||||||
else:
|
else:
|
||||||
session.add(rating_ent(user = request.user, rated = rated, rating = rating))
|
rating_info = rating_ent()
|
||||||
|
rating_info.user_id = request.user.id
|
||||||
|
rating_info.rated_id = uid
|
||||||
|
rating_info.rating = rating
|
||||||
|
store.add(rating_info)
|
||||||
|
|
||||||
session.commit()
|
store.commit()
|
||||||
return request.formatter({})
|
return request.formatter({})
|
||||||
|
|
||||||
@app.route('/rest/scrobble.view', methods = [ 'GET', 'POST' ])
|
@app.route('/rest/scrobble.view', methods = [ 'GET', 'POST' ])
|
||||||
|
Loading…
Reference in New Issue
Block a user