示例#1
0
    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()
示例#2
0
	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()
示例#3
0
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])
示例#4
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)
示例#5
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)
示例#6
0
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])
示例#7
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])
示例#8
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])