diff options
-rw-r--r-- | Gruntfile.js | 18 | ||||
-rw-r--r-- | app.db | bin | 4096 -> 4096 bytes | |||
-rw-r--r-- | common/utils.py | 4 | ||||
-rw-r--r-- | db/db_manager.py | 17 | ||||
-rwxr-xr-x | library.py | 13 | ||||
-rw-r--r-- | mach2.py | 8 |
6 files changed, 31 insertions, 29 deletions
diff --git a/Gruntfile.js b/Gruntfile.js index a220434..d7ec914 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -1,28 +1,28 @@ module.exports = function(grunt) { - var path = require("path"); + var path = require('path'); grunt.initConfig({ - pkg: grunt.file.readJSON("package.json"), + pkg: grunt.file.readJSON('package.json'), bower: { install: { options: { - targetDir: "static/scripts/libs", + targetDir: 'static/scripts/libs', install: true, cleanup: true, - layout: "byComponent" + layout: 'byComponent' } } }, run: { mach2: { - cmd: "python", - args: ["mach2.py"] + cmd: 'python', + args: ['mach2.py'] } } }); - grunt.loadNpmTasks("grunt-bower-task"); - grunt.loadNpmTasks("grunt-run"); + grunt.loadNpmTasks('grunt-bower-task'); + grunt.loadNpmTasks('grunt-run'); - grunt.task.registerTask("default", ["bower:install", "run:mach2"]); + grunt.task.registerTask('default', ['bower:install', 'run:mach2']); }; Binary files differdiff --git a/common/utils.py b/common/utils.py index 38ad5ed..a7489f9 100644 --- a/common/utils.py +++ b/common/utils.py @@ -13,7 +13,7 @@ def make_where_clause(params, join_operator="AND"): try: for (column, operator) in params.items(): condition_subphrase = "" - + if operator == "BETWEEN": condition_subphrase = " ".join(("%s", operator, ":%s1 AND :%s2")) @@ -22,7 +22,7 @@ def make_where_clause(params, join_operator="AND"): column)) else: condition_subphrase = " ".join(("%s", operator, ":%s")) - + where_items.append(condition_subphrase % (column, column)) where_statement = None diff --git a/db/db_manager.py b/db/db_manager.py index c55ac39..f9b10c3 100644 --- a/db/db_manager.py +++ b/db/db_manager.py @@ -1,7 +1,6 @@ import configparser import os import sqlite3 -import tempfile class DbManager: @@ -32,18 +31,16 @@ class DbManager: yield("{0};".format(sql)) table_name_ident = table_name.replace("\"", "\"\"") - res = cu.execute( - "PRAGMA table_info(\"{0}\")".format(table_name_ident)) + res = cu.execute("PRAGMA table_info(\"{0}\")".format( + table_name_ident)) column_names = [ str(table_info[1]) for table_info in res.fetchall()] q = """ SELECT 'INSERT INTO "{0}" VALUES({1})' FROM "{0}"; - """.format( - table_name_ident, - ",".join( - """'||quote("{0}")||'""".format( - col.replace( - "\"", "\"\"")) for col in column_names)) + """.format(table_name_ident, ",".join( + """'||quote("{0}")||'""".format( + col.replace( + "\"", "\"\"")) for col in column_names)) query_res = cu.execute(q) for row in query_res: yield("{0};".format(row[0])) @@ -82,7 +79,7 @@ class DbManager: self.conn.row_factory = sqlite3.Row - def __del__(self): + def export(self): if not os.path.isfile(self.config["DEFAULT"]["database"]): script = "" @@ -1,11 +1,12 @@ #!/usr/bin/env python import configparser import gevent -from gevent import queue +from gevent import monkey, queue import logging import mutagen import os +from db.db_manager import DbManager from models.track import Track @@ -24,6 +25,7 @@ def store_track_task(): def run(path=None): + db = DbManager() if path is not None: if os.path.isdir(path): store_dir(path) @@ -31,13 +33,15 @@ def run(path=None): store_file(path) else: store_dir("/media/Music") + db.export() def store_file(path): + logger = logging.getLogger("store_file") m = mutagen.File(path, easy=True) if m: if not Track.store(path, m): - print("Problem saving %s" % (path,)) + logger.error("Problem saving %s" % (path,)) def store_dir(path): @@ -50,10 +54,10 @@ def store_dir(path): file_path = "".join([root, "/", name]) file, ext = os.path.splitext(file_path) - if ext in allowed_extensions: + if ext.lower() in allowed_extensions: file_store.put(file_path) - logger.info("Storing tracks") + logger.info("Storing tracks") gevent.joinall([gevent.spawn(store_track_task)] * 6) logger.info("Done") @@ -88,6 +92,7 @@ def update_track_filename(oldpath, newpath): track.save() if __name__ == "__main__": + monkey.patch_all() config = configparser.ConfigParser() config.read("mach2.ini") @@ -1,17 +1,17 @@ +import base64 import configparser import json import mimetypes import os import sqlite3 -import subprocess import tempfile -import threading -from flask import Flask, Response, current_app, g, redirect, render_template +from flask import Flask, Response, g, redirect, render_template from flask import request, url_for from flask.ext.compress import Compress from flask.ext.login import LoginManager, current_user, login_required from flask.ext.login import login_user, logout_user +from gevent import subprocess from models.album import Album from models.artist import Artist @@ -66,7 +66,7 @@ def query_db(query, args=(), one=False): @login_manager.request_loader -def load_user(request): +def load_user_from_request(request): # first, try to login using the api_key url arg api_key = request.args.get('api_key', None) |