def get_emulator(self, emulator_name, out_path): cidr = os.getcwd() os.chdir("tmp") emu_file_obj = gd_ops.get_file_meta( self.dsvc, "fullText contains 'EmuCloud_Emulator' and fullText contains '%s' and fullText contains '%s'" % (emulator_name, os.name)) if (emu_file_obj == []): os.chdir(cidr) return None #Hack - only get the first one emu_file_obj = emu_file_obj[0] gd_ops.download_file(self.dsvc, emu_file_obj) #Unzip file to directory. fh = open(emu_file_obj['title'], 'rb') z = zipfile.ZipFile(fh) for name in z.namelist(): z.extract(name, out_path) fh.close() os.remove(emu_file_obj['title']) os.chdir(cidr) self.refresh_emulator_database()
def get_emulator(self,emulator_name,out_path): cidr = os.getcwd() os.chdir("tmp") emu_file_obj = gd_ops.get_file_meta(self.dsvc,"fullText contains 'EmuCloud_Emulator' and fullText contains '%s' and fullText contains '%s'" % ( emulator_name,os.name)) if(emu_file_obj == []): os.chdir(cidr) return None #Hack - only get the first one emu_file_obj = emu_file_obj[0] gd_ops.download_file(self.dsvc,emu_file_obj) #Unzip file to directory. fh = open(emu_file_obj['title'], 'rb') z = zipfile.ZipFile(fh) for name in z.namelist(): z.extract(name,out_path) fh.close() os.remove(emu_file_obj['title']) os.chdir(cidr) self.refresh_emulator_database()
def upload_data(system_name, game_info): dsvc = gd_auth.drive_login() if (len(sys.argv) > 3): parent_id = sys.argv[3] else: gd_ops.get_root_id(dsvc) upload_list = [] print("Enumerating Roms...") for root, dirs, files in os.walk("roms"): for f in files: fb, fe = os.path.splitext(f) game_id = find_entry(fb, game_info) if (game_id == None): print("Rom for %s not found." % game_info[game_id]['name']) continue else: #Get hash. game_info[game_id]['sha1'] = get_sha1sum(os.path.join(root, f)) #Add rom to our upload list. upload_list.append( [os.path.join(root, f), "cFE_DATA:%s" % game_id]) #Add icon to our upload list. for root2, dirs2, files2 in os.walk("icon"): for f2 in files2: if f2.startswith(game_info[game_id]['name']): rt, parent = os.path.split(root2) basef, ext = os.path.splitext(f2) if (not basef.endswith("_%s" % parent)): fixed_name = os.path.join( root2, "%s_%s%s" % (basef, parent, ext)) os.rename(os.path.join(root2, f2), fixed_name) else: fixed_name = os.path.join(root2, f2) upload_list.append( [fixed_name, "cFE_ICON:%s" % game_id]) break #Add any artwork to our upload list. for root3, dirs3, files3 in os.walk("artwork"): for f3 in files3: if f3.startswith(game_info[game_id]['name']): print("Found Artwork %s" % os.path.join(root3, f3)) rt, parent = os.path.split(root3) basef, ext = os.path.splitext(f3) if (not basef.endswith("_%s" % parent)): fixed_name = os.path.join( root3, "%s_%s%s" % (basef, parent, ext)) os.rename(os.path.join(root3, f3), fixed_name) else: fixed_name = os.path.join(root3, f3) upload_list.append( [fixed_name, "cFE_ARTW:%s" % game_id]) up_total = len(upload_list) up_counter = 0 for item in upload_list: #Check to make sure we aren't uploading a duplicate. baspth, name = os.path.split(item[0]) emu_file_obj = gd_ops.get_file_meta( dsvc, "title='%s' and fullText contains '%s'" % (name.replace("'", "\\'"), item[1])) up_counter += 1 if (emu_file_obj != []): print("[%d/%d] Skipping: %s" % (up_counter, up_total, name)) continue print("[%d/%d] Uploading: %s" % (up_counter, up_total, name)) gd_ops.upload_file(dsvc, name, item[1], parent_id, "", item[0])
def refresh_db(dsvc,system_name=None): global ROM global ICON global ARTWORK print("Refreshing ICON DB - Please Wait...") ICON = {} ICON["Unsorted"] = {} game_list = gd_ops.get_file_meta(dsvc,"fullText contains '%s'" % EMUCICON_KEY) for g in game_list: fl,ext = os.path.splitext(g['title']) if("<game_system>" in g['description']): game_system = get_field(g,"game_system") game_name = get_field(g,"game_name") if(game_name == ""): game_name = fl if(game_system in ICON.keys()): ICON[game_system][game_name] = gen_icon_entry(g) else: ICON[game_system] = {} ICON[game_system][game_name] = gen_icon_entry(g) else: ICON["Unsorted"][game_name] = gen_icon_entry(g) print("Refreshing ARTWORK DB - Please Wait...") ARTWORK = {} ARTWORK["Unsorted"] = {} game_list = gd_ops.get_file_meta(dsvc,"fullText contains '%s'" % EMUCARTW_KEY) for g in game_list: ''' if(g['mimeType'] == "video/mp4"): print(g) fuckyou = open("out.txt","wb") fuckyou.write(str(g)) fuckyou.close() exit(1) ''' fl,ext = os.path.splitext(g['title']) if("<game_system>" in g['description']): game_system = get_field(g,"game_system") game_name = get_field(g,"game_name") if(game_name == ""): game_name = fl if(game_system in ARTWORK.keys()): if(not game_name in ARTWORK[game_system].keys()): ARTWORK[game_system][game_name] = [] ARTWORK[game_system][game_name].append(gen_artwork_entry(g)) else: ARTWORK[game_system] = {} if(not game_name in ARTWORK[game_system].keys()): ARTWORK[game_system][game_name] = [] ARTWORK[game_system][game_name].append(gen_artwork_entry(g)) else: if(not game_name in ARTWORK["Unsorted"].keys()): ARTWORK[game_system][game_name] = [] ARTWORK["Unsorted"][game_name].append(gen_artwork_entry(g)) print("Refreshing ROM DB - Please Wait...") ROM = {} if(system_name == None): game_list = gd_ops.get_file_meta(dsvc,"fullText contains '%s'" % EMUCLOUD_KEY) else: game_list = gd_ops.get_file_meta(dsvc,"fullText contains '%s' and fullText contains '%s'" % (EMUCLOUD_KEY,system_name)) for g in game_list: if("<game_system>"in g['description']): game_system = get_field(g,"game_system") game_name = get_field(g,"game_name") else: continue if(not game_system in ROM.keys()): ROM[game_system] = {} if(game_name in ROM[game_system].keys()): ROM[game_system][game_name] = append_rom_entry(g,ROM[game_system][game_name]) else: ROM[game_system][game_name] = gen_rom_entry(g)
def refresh_db(dsvc, system_name=None): global ROM global ICON global ARTWORK print("Refreshing ICON DB - Please Wait...") ICON = {} ICON["Unsorted"] = {} game_list = gd_ops.get_file_meta(dsvc, "fullText contains '%s'" % EMUCICON_KEY) for g in game_list: fl, ext = os.path.splitext(g['title']) if ("<game_system>" in g['description']): game_system = get_field(g, "game_system") game_name = get_field(g, "game_name") if (game_name == ""): game_name = fl if (game_system in ICON.keys()): ICON[game_system][game_name] = gen_icon_entry(g) else: ICON[game_system] = {} ICON[game_system][game_name] = gen_icon_entry(g) else: ICON["Unsorted"][game_name] = gen_icon_entry(g) print("Refreshing ARTWORK DB - Please Wait...") ARTWORK = {} ARTWORK["Unsorted"] = {} game_list = gd_ops.get_file_meta(dsvc, "fullText contains '%s'" % EMUCARTW_KEY) for g in game_list: ''' if(g['mimeType'] == "video/mp4"): print(g) fuckyou = open("out.txt","wb") fuckyou.write(str(g)) fuckyou.close() exit(1) ''' fl, ext = os.path.splitext(g['title']) if ("<game_system>" in g['description']): game_system = get_field(g, "game_system") game_name = get_field(g, "game_name") if (game_name == ""): game_name = fl if (game_system in ARTWORK.keys()): if (not game_name in ARTWORK[game_system].keys()): ARTWORK[game_system][game_name] = [] ARTWORK[game_system][game_name].append(gen_artwork_entry(g)) else: ARTWORK[game_system] = {} if (not game_name in ARTWORK[game_system].keys()): ARTWORK[game_system][game_name] = [] ARTWORK[game_system][game_name].append(gen_artwork_entry(g)) else: if (not game_name in ARTWORK["Unsorted"].keys()): ARTWORK[game_system][game_name] = [] ARTWORK["Unsorted"][game_name].append(gen_artwork_entry(g)) print("Refreshing ROM DB - Please Wait...") ROM = {} if (system_name == None): game_list = gd_ops.get_file_meta( dsvc, "fullText contains '%s'" % EMUCLOUD_KEY) else: game_list = gd_ops.get_file_meta( dsvc, "fullText contains '%s' and fullText contains '%s'" % (EMUCLOUD_KEY, system_name)) for g in game_list: if ("<game_system>" in g['description']): game_system = get_field(g, "game_system") game_name = get_field(g, "game_name") else: continue if (not game_system in ROM.keys()): ROM[game_system] = {} if (game_name in ROM[game_system].keys()): ROM[game_system][game_name] = append_rom_entry( g, ROM[game_system][game_name]) else: ROM[game_system][game_name] = gen_rom_entry(g)
def upload_data(system_name, game_info): dsvc = gd_auth.drive_login() if len(sys.argv) > 3: parent_id = sys.argv[3] else: gd_ops.get_root_id(dsvc) upload_list = [] print("Enumerating Roms...") for root, dirs, files in os.walk("roms"): for f in files: fb, fe = os.path.splitext(f) game_id = find_entry(fb, game_info) if game_id == None: print("Rom for %s not found." % game_info[game_id]["name"]) continue else: # Get hash. game_info[game_id]["sha1"] = get_sha1sum(os.path.join(root, f)) # Add rom to our upload list. upload_list.append([os.path.join(root, f), "cFE_DATA:%s" % game_id]) # Add icon to our upload list. for root2, dirs2, files2 in os.walk("icon"): for f2 in files2: if f2.startswith(game_info[game_id]["name"]): rt, parent = os.path.split(root2) basef, ext = os.path.splitext(f2) if not basef.endswith("_%s" % parent): fixed_name = os.path.join(root2, "%s_%s%s" % (basef, parent, ext)) os.rename(os.path.join(root2, f2), fixed_name) else: fixed_name = os.path.join(root2, f2) upload_list.append([fixed_name, "cFE_ICON:%s" % game_id]) break # Add any artwork to our upload list. for root3, dirs3, files3 in os.walk("artwork"): for f3 in files3: if f3.startswith(game_info[game_id]["name"]): print("Found Artwork %s" % os.path.join(root3, f3)) rt, parent = os.path.split(root3) basef, ext = os.path.splitext(f3) if not basef.endswith("_%s" % parent): fixed_name = os.path.join(root3, "%s_%s%s" % (basef, parent, ext)) os.rename(os.path.join(root3, f3), fixed_name) else: fixed_name = os.path.join(root3, f3) upload_list.append([fixed_name, "cFE_ARTW:%s" % game_id]) up_total = len(upload_list) up_counter = 0 for item in upload_list: # Check to make sure we aren't uploading a duplicate. baspth, name = os.path.split(item[0]) emu_file_obj = gd_ops.get_file_meta( dsvc, "title='%s' and fullText contains '%s'" % (name.replace("'", "\\'"), item[1]) ) up_counter += 1 if emu_file_obj != []: print("[%d/%d] Skipping: %s" % (up_counter, up_total, name)) continue print("[%d/%d] Uploading: %s" % (up_counter, up_total, name)) gd_ops.upload_file(dsvc, name, item[1], parent_id, "", item[0])
def proc_rom(dsvc,parent_id,inpath): upload_list = [] base,romfile = os.path.split(inpath) base_romname,ext = os.path.splitext(romfile) if(ext.startswith(".")): ext = ext[1:] if(ext not in SUPPORTED_EXTENSIONS): return print("Processing: %s " % inpath) if(base_romname in ROM_DB): game_info = ROM_DB[base_romname] else: game_info = {} game_info['game_system'] = system_name game_info['game_name'] = base_romname game_info['emulator'] = EMULATOR game_info['players'] = "" game_info['cloneof'] = "" game_info['year'] = "" game_info['manufacturer'] = "" game_info['genre'] = "" game_info['game_region'] = "" game_info['rating'] = "" game_info['enabled'] = "Yes" #Get hash. game_info['sha1'] = get_sha1sum(inpath) desc = gen_description("EmuCloud_Entry",game_info) #Add rom to our upload list. upload_list.append([inpath,desc]) #Add icon to our upload list. for root,dirs,files in os.walk("icon"): for f in files: if f.startswith(base_romname): print("Found Icon %s" % os.path.join(root,f)) rt,parent = os.path.split(root) basef,ext = os.path.splitext(f) if(not basef.endswith("_%s" % parent)): fixed_name = os.path.join(root,"%s_%s%s" % (basef,parent,ext)) os.rename(os.path.join(root,f),fixed_name) else: fixed_name = os.path.join(root,f) upload_list.append([fixed_name,"EmuCloud_Icon <game_system>%s</game_system><game_name>%s</game_name>" % (system_name,base_romname)]) #Add any artwork to our upload list. for root,dirs,files in os.walk("artwork"): for f in files: if f.startswith(base_romname): print("Found Artwork %s" % os.path.join(root,f)) rt,parent = os.path.split(root) basef,ext = os.path.splitext(f) if(not basef.endswith("_%s" % parent)): fixed_name = os.path.join(root,"%s_%s%s" % (basef,parent,ext)) os.rename(os.path.join(root,f),fixed_name) else: fixed_name = os.path.join(root,f) upload_list.append([fixed_name,"EmuCloud_Artwork <game_system>%s</game_system><game_name>%s</game_name>" % (system_name,base_romname)]) for item in upload_list: #Check to make sure we aren't uploading a duplicate. baspth,name = os.path.split(item[0]) emu_file_obj = gd_ops.get_file_meta(dsvc,"title='%s' and fullText contains '%s' and fullText contains '%s'" % (name.replace("'","\\'"),system_name,base_romname.replace("'","\\'"))) if(emu_file_obj != []): print("Skipping %s" % name) continue print("Uploading %s" % name) gd_ops.upload_file(dsvc, name, item[1], parent_id, "", item[0])
def proc_rom(dsvc, parent_id, inpath): upload_list = [] base, romfile = os.path.split(inpath) base_romname, ext = os.path.splitext(romfile) if (ext.startswith(".")): ext = ext[1:] if (ext not in SUPPORTED_EXTENSIONS): return print("Processing: %s " % inpath) if (base_romname in ROM_DB): game_info = ROM_DB[base_romname] else: game_info = {} game_info['game_system'] = system_name game_info['game_name'] = base_romname game_info['emulator'] = EMULATOR game_info['players'] = "" game_info['cloneof'] = "" game_info['year'] = "" game_info['manufacturer'] = "" game_info['genre'] = "" game_info['game_region'] = "" game_info['rating'] = "" game_info['enabled'] = "Yes" #Get hash. game_info['sha1'] = get_sha1sum(inpath) desc = gen_description("EmuCloud_Entry", game_info) #Add rom to our upload list. upload_list.append([inpath, desc]) #Add icon to our upload list. for root, dirs, files in os.walk("icon"): for f in files: if f.startswith(base_romname): print("Found Icon %s" % os.path.join(root, f)) rt, parent = os.path.split(root) basef, ext = os.path.splitext(f) if (not basef.endswith("_%s" % parent)): fixed_name = os.path.join(root, "%s_%s%s" % (basef, parent, ext)) os.rename(os.path.join(root, f), fixed_name) else: fixed_name = os.path.join(root, f) upload_list.append([ fixed_name, "EmuCloud_Icon <game_system>%s</game_system><game_name>%s</game_name>" % (system_name, base_romname) ]) #Add any artwork to our upload list. for root, dirs, files in os.walk("artwork"): for f in files: if f.startswith(base_romname): print("Found Artwork %s" % os.path.join(root, f)) rt, parent = os.path.split(root) basef, ext = os.path.splitext(f) if (not basef.endswith("_%s" % parent)): fixed_name = os.path.join(root, "%s_%s%s" % (basef, parent, ext)) os.rename(os.path.join(root, f), fixed_name) else: fixed_name = os.path.join(root, f) upload_list.append([ fixed_name, "EmuCloud_Artwork <game_system>%s</game_system><game_name>%s</game_name>" % (system_name, base_romname) ]) for item in upload_list: #Check to make sure we aren't uploading a duplicate. baspth, name = os.path.split(item[0]) emu_file_obj = gd_ops.get_file_meta( dsvc, "title='%s' and fullText contains '%s' and fullText contains '%s'" % (name.replace( "'", "\\'"), system_name, base_romname.replace("'", "\\'"))) if (emu_file_obj != []): print("Skipping %s" % name) continue print("Uploading %s" % name) gd_ops.upload_file(dsvc, name, item[1], parent_id, "", item[0])