コード例 #1
0
ファイル: remixqueue.py プロジェクト: psobot/beatboxmachine
 def updateTrack(self, uid, tag):
     # This may be called from another thread: let's use a unique DB connection.
     db = database.getdb()
     track = db.query(db.Track).filter_by(uid=uid).first()
     keep = ["length", "samplerate", "channels", "bitrate", "title", "artist", "album", "art", "thumbnail"]
     for a in tag:
         if a in keep:
             try:
                 track.__setattr__(a, tag[a])
             except:
                 pass
     db.flush()
     db.close()
     del db
コード例 #2
0
ファイル: server.py プロジェクト: psobot/beatboxmachine
    def track(self, track):
        db = database.getdb()
        if not isinstance(track, db.Track):
            if not track:
                raise tornado.web.HTTPError(400)
            if isinstance(track, dict) and 'uid' in track:
                track = track['uid']
            elif not isinstance(track, str) and not len(track) == 32:
                return '' # This object isn't a track
            tracks =  db.query(db.Track).filter(db.Track.uid == track).all()
            if not tracks:
                raise tornado.web.HTTPError(404)
            else:
                track = tracks[0]

        for stat in ['upload', 'remix', 'share', 'download']:
            track.__setattr__(stat, None)
        
        events = {}
        for event in track.events:
            events[event.action] = event
        track.upload = events.get('upload')
        track.remix = events.get('remix')
        track.share = events.get('share')
        track.download = events.get('download')
        track.running = track.uid in r.running or (track.share and track.share.start and not track.share.end and track.share.success is None)
        track.failed = (track.remix and track.remix.success == False) or (track.share and track.share.success == False)
        if track.failed:
            track.failure = track.remix.detail if track.remix.success is False else track.share.detail
        try:
            track.progress = r.remixers[track.uid].last['progress']
            track.text = r.remixers[track.uid].last['text']
        except:
            track.progress = None
            track.text = None

        kwargs = {
            'track': track,
            'exists': os.path.exists,
            'time_ago_in_words': time_ago_in_words,
            'seconds_to_time': seconds_to_time,
            'convert_bytes': convert_bytes
        }
        return templates.load('track.html').generate(**kwargs)
コード例 #3
0
def hello():
    with getdb() as db:
        return "Hello, world"
コード例 #4
0
ファイル: server.py プロジェクト: psobot/beatboxmachine
    log = logging.getLogger()
    log.name = config.log_name
    handler = logging.FileHandler(config.log_file)
    handler.setFormatter(logging.Formatter(config.log_format)) 
    handler.setLevel(logging.DEBUG)
    log.addHandler(handler)

    try:
        log.info("Starting %s..." % config.app_name)
        try:
            locale.setlocale(locale.LC_ALL, 'en_US.utf8')
        except:
            locale.setlocale(locale.LC_ALL, 'en_US')
        
        log.info("\tConnecting to MySQL...")
        db = database.getdb()
        if not db:
            log.critical("Can't connect to DB!")
            exit(1)

        log.info("\tGrabbing track count from DB...")
        trackCount = db.query(db.Event).filter_by(action='remix', success = True).count()

        log.info("\tClearing temp directories...")
        cleanup = Cleanup(log, db, None)
        cleanup.all()

        log.info("\tStarting RemixQueue...")
        r = RemixQueue(db, MonitorSocket)
        cleanup.remixQueue = r
コード例 #5
0
ファイル: makedb.py プロジェクト: NoraCodes/codepage
from database import getdb

with getdb() as db:
    # Initial database schema
    db.execute("""
    CREATE TABLE IF NOT EXISTS users (
        id          INT     PRIMARY KEY NOT NULL,
        dispname    TEXT                NOT NULL,
        pwhash      TEXT                NOT NULL
    );
    CREATE TABLE IF NOT EXISTS codes (
        id          INT     PRIMARY KEY NOT NULL,
        username    INT                 NOT NULL,
        language    TEXT                NOT NULL,
        title       TEXT                NOT NULL,
        contents    TEXT                NOT NULL,
        FOREIGN KEY (username) REFERENCES users(id)
    );
    """)

コード例 #6
0
    parser.add_option("--verify", "-V", action = "store_true", dest = "verify", default = False,
                      help = "Verify each table after copy")
    parser.add_option("--batch", "-b", action = "store", dest = "batch", metavar="N", type = int,
                      default = 5000, help = "batch size in (row count) for each copy operation")
    parser.add_option("--verbose", "-v", action = "store_true", dest = "verbose",
                      default = False, help = "verbose output")
    parser.add_option("--add-table", "-t", action = "append", type = "string", metavar = "T",
                      dest = "tables", help = "add table T to the list of tables to transfer")
    (options, args) = parser.parse_args()
    if options.db is None or len(options.db) != 2:
        parser.print_help()
        sys.exit(-1)
    if options.tables:
        for t in options.tables:
            tablelist.TableList.append(t)
    src = getdb(*options.db[0])
    dst = getdb(*options.db[1])
    dst.verbose = options.verbose

    # Sanity checks
    src.checkTablesList()
    dst.createSchema()
    dst.checkTablesList(isSrc=False)
    # check that the source and target match schemas
    diff = set(src.getTables()).difference(set(dst.getTables()))
    if diff:
        print "WARNING: Only in Source (%s): %s" % (src.driver, diff)
    diff = set(dst.getTables()).difference(set(src.getTables()))
    if diff:
        print "WARNING: Only in Target (%s): %s" % (dst.driver, diff)
    # compare each table's schema between the source and target