Beispiel #1
0
 def post(self, collectionname):
     name = tornado.escape.url_unescape(collectionname)
     _log().info('reloading {}'.format(name))
     cdb = self.settings['session'].query(orm.Collection)\
         .filter(orm.Collection.name == name)\
         .first()
     cdb.status = 'ready'
     self.settings['session'].commit()
     if not cdb:
         _log().warning('collection {} not found'
                        .format(name))
         self.send_error(404)
         return
     for dbg in cdb.games:
         found = False
         for v in dbg.variants:
             vfile = filenames.variant(self.settings['home'],
                                       v)
             if os.path.exists(vfile):
                 found = True
         if found:
             dbg.status = 'ok'
         else:
             dbg.status = 'missing'
     self.write(json.dumps({'result': True}))
Beispiel #2
0
 def scrap_missing(self):
     l = []
     for v in self.session.query(orm.Variant):
         nfofile = filenames.nfo(self.home,
                                 v)
         if os.path.exists(nfofile):
             _log().debug('scrapper skipping {}, found {}'
                          .format(v.name, nfofile))
             continue
         romfile = filenames.variant(self.home, v)
         if not os.path.exists(romfile):
             _log().debug('scrapper skipping {}, rom not found {}'
                          .format(v.name, romfile))
             continue
         l.append(self.scrap(v, nfofile))
         if len(l) > 5:
             yield l
             l = []
     if len(l) > 0:
         yield l
Beispiel #3
0
 def file_import(self, filepath):
     try:
         with open(filepath, mode='rb') as fd:
             crc = binascii.crc32(fd.read()) & 0xffffffff
         fcrc = '%08X' % crc
     except Exception as e:
         return False, 'error: ' + str(e)
     status = 'irrelevant'
     for r in self.session.query(orm.Rom)\
             .filter(orm.Rom.crc == fcrc):
         v = r.variant
         dst = filenames.variant(self.home, v)
         mkdir_p(os.path.dirname(dst))
         shutil.copyfile(filepath, dst)
         status = 'moved'
         _log().info('mv {} {}'.format(filepath, dst))
         v.game.status = 'ok'
     if status == 'moved':
         os.unlink(filepath)
     self.session.commit()
     return True, status