mirror of
https://github.com/spl0k/supysonic.git
synced 2024-12-22 08:56:17 +00:00
Added getting lyrics from text files
This needs work on the XML converter
This commit is contained in:
parent
82992047dd
commit
98901e5b86
27
api/media.py
27
api/media.py
@ -7,9 +7,11 @@ import subprocess
|
||||
|
||||
import config, scanner
|
||||
from web import app
|
||||
from db import Track, Folder, User, now, session
|
||||
from db import Track, Album, Artist, Folder, User, now, session
|
||||
from api import get_entity
|
||||
|
||||
from sqlalchemy import func
|
||||
|
||||
def prepare_transcoding_cmdline(base_cmdline, input_file, input_format, output_format, output_bitrate):
|
||||
if not base_cmdline:
|
||||
return None
|
||||
@ -131,3 +133,26 @@ def cover_art():
|
||||
im.save(path, 'JPEG')
|
||||
return send_file(path)
|
||||
|
||||
@app.route('/rest/getLyrics.view', methods = [ 'GET', 'POST' ])
|
||||
def lyrics():
|
||||
artist, title = map(request.args.get, [ 'artist', 'title' ])
|
||||
if not artist:
|
||||
return request.error_formatter(10, 'Missing artist parameter')
|
||||
if not title:
|
||||
return request.error_formatter(10, 'Missing title parameter')
|
||||
|
||||
query = Track.query.join(Album, Artist).filter(func.lower(Track.title) == title.lower() and func.lower(Artist.name) == artist.lower())
|
||||
for track in query:
|
||||
lyrics_path = os.path.splitext(track.path)[0] + '.txt'
|
||||
if os.path.exists(lyrics_path):
|
||||
print lyrics_path
|
||||
with open(lyrics_path, 'r') as lyrics_file:
|
||||
lyrics = lyrics_file.read()
|
||||
return request.formatter({ 'lyrics': {
|
||||
'artist': track.album.artist.name,
|
||||
'title': track.title,
|
||||
'_value_': lyrics
|
||||
} })
|
||||
|
||||
return request.formatter({ 'lyrics': {} })
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user