Beispiel #1
0
def interface_file(path, TD):
    if TD == "pick":
        TD = Private.TD_picker(path)
    folder = path
    TeamDrive = TD
    response = False
    files = list()
    while True:
        filter = interface_filter(path)
        files = Private.search_folder(folder,
                                      TD=TeamDrive,
                                      pickmode="multi",
                                      filter=filter,
                                      Print=False)
        if files == False:
            print("Query returned no files")
            input('\nPress any key to continue...')
            clear_Screen()
            About()
            return True
        else:
            response = interface_menu(files, TeamDrive)
            if str(response) == "False":
                return response
            elif str(response) == "CHANGE":
                return True
Beispiel #2
0
def ask_download_folder():
    clear_Screen()
    About()
    if not os.path.exists(download_lib_file):
        while True:
            ofolder = input('Input Download Folder: ')
            if os.path.exists(ofolder):
                return ofolder
            if not os.path.exists(ofolder):
                try:
                    os.makedirs(ofolder)
                    return ofolder
                except:
                    print("\nCan't create folder. Please Try again\n")
    else:
        while True:
            print('Input "1" to Download folder from libraries')
            print('')
            print('--- Or Input Download Folder Route ---')
            print('')
            ck = input('Input your answer: ')
            if ck == "1":
                ofolder = pick_download_folder()
            else:
                ofolder = ck
            if os.path.exists(ofolder):
                return ofolder
            if not os.path.exists(ofolder):
                try:
                    os.makedirs(ofolder)
                    return ofolder
                except:
                    print("\nCan't create folder. Please Try again\n")
Beispiel #3
0
def remote_interface_filter_local(filelist):
    title = 'Add a search filter?: '
    options = ['Yes', 'No']
    selected = pick(options, title, min_selection_count=1)
    response = selected[0]
    if response == 'No':
        return filelist
    else:
        clear_Screen()
        About()
        ck = input('INPUT SEARCH FILTER: ')
        filelist = listmanager.filter_vlist(filelist, token=ck, Print=False)
    return filelist
Beispiel #4
0
def interface_filter(path=None):
	title = 'Add a search filter?: '
	options = ['Yes','No']	
	selected = pick(options, title, min_selection_count=1)
	response=selected[0]
	if response=='No':
		return None
	else:
		clear_Screen()
		About()
		if path != None:
			print("Filepath {}\n".format(str(path)))
		ck=input('INPUT SEARCH FILTER: ')
		return ck
def Interface():
    clear_Screen()
    About()
    response = False
    print('\n********************************************************')
    print('DOWNLOAD SYSTEM')
    print('********************************************************')
    while True:
        print('Input "1" to select folder and file via file-picker')
        if os.path.exists(remote_lib_file):
            print('Input "2" to select from libraries')
        print('')
        print('Input "0" to go back to the MAIN PROGRAM')
        print('')
        print('--- Or INPUT GDRIVE Route OR PUBLIC_LINK ---')
        print('')
        ck = input('Input your answer: ')
        if ck == "0":
            break
        elif ck == "1":
            while True:
                folder, TD = Private.folder_walker()
                if folder == False:
                    return False
                print(folder)
                response = interface_file(folder, TD)
                if response == False:
                    return False
        elif ck == "2" and os.path.exists(remote_lib_file):
            while True:
                paths, TDs = pick_libraries()
                if paths == False:
                    return False
                response = interface_file(paths, TDs)
                if response == False:
                    return False
        elif ck == "0":
            break
        elif ck.startswith('http'):
            url = ck
            response = interface_menu(url, None, True)
        elif ck.endswith('/') or ck.endswith('\\'):
            response = interface_file(ck, "pick")
        elif (ck[:-1]).endswith('.xc') or (ck[:-1]).endswith('.ns'):
            TD = Private.TD_picker(ck)
            response = interface_menu(ck, TD, True)
        if response == False:
            break
Beispiel #6
0
def search_with_filter(folder_paths, extlist=['nsp', 'nsz', 'xci', 'xcz']):
    filepaths = []
    title = 'Add a search filter?: '
    options = ['Yes', 'No']
    selected = pick(options, title, min_selection_count=1)
    response = selected[0]
    if response == 'No':
        for fo in folder_paths:
            rlist = listmanager.folder_to_list(fo, extlist)
            filepaths = [*filepaths, *rlist]
        return filepaths
    else:
        clear_Screen()
        About()
        ck = input('INPUT SEARCH FILTER: ')
        for fo in folder_paths:
            rlist = listmanager.folder_to_list(fo, extlist, ck)
            filepaths = [*filepaths, *rlist]
        return filepaths
Beispiel #7
0
def get_files_from_walk(tfile=None,
                        extlist=['nsp', 'nsz', 'xci', 'xcz'],
                        filter=False,
                        recursive=False,
                        doPrint=False):
    if not isinstance(extlist, list):
        if str(extlist).lower() != 'all':
            ext = extlist.split()
            extlist = []
            for x in ext:
                extlist.append(x)
    folder, rec = folder_walker()
    if folder == False:
        return False
    if rec == True:
        recursive = True
    print("Parsing files. Please wait...")
    title = 'Add a search filter?: '
    options = ['Yes', 'No']
    selected = pick(options, title, min_selection_count=1)
    response = selected[0]
    if response == 'No':
        pass
    else:
        clear_Screen()
        About()
        filter = input('INPUT SEARCH FILTER: ')
    if recursive == False:
        files = listmanager.nextfolder_to_list(folder,
                                               extlist=extlist,
                                               filter=filter)
    else:
        files = listmanager.folder_to_list(folder,
                                           extlist=extlist,
                                           filter=filter)
    if not files:
        sys.exit("Query didn't return any files")
    order = pick_order()
    if order == False:
        return False
    filedata = {}
    for file in files:
        try:
            fname = os.path.basename(file)
            fsize = os.path.getsize(file)
            fdate = os.path.getctime(file)
            entry = {
                'filepath': file,
                'filename': fname,
                'size': fsize,
                'date': fdate
            }
            if not fname in filedata:
                filedata[fname] = entry
        except:
            pass
    options = []
    if order == 'name_ascending':
        options = sorted(filedata, key=lambda x: filedata[x]['filename'])
    elif order == 'name_descending':
        options = sorted(filedata, key=lambda x: filedata[x]['filename'])
        options.reverse()
    elif order == 'size_ascending':
        options = sorted(filedata, key=lambda x: filedata[x]['size'])
    elif order == 'size_descending':
        options = sorted(filedata, key=lambda x: filedata[x]['size'])
        options.reverse()
    elif order == 'date_ascending':
        options = sorted(filedata, key=lambda x: filedata[x]['date'])
    elif order == 'date_descending':
        options = sorted(filedata, key=lambda x: filedata[x]['date'])
        options.reverse()
    title = 'Select content: \n + Press space or right to select entries \n + Press Enter to confirm selection \n + Press E to exit selection \n + Press A to select all entries'
    picker = Picker(options, title, multi_select=True, min_selection_count=1)

    def end_selection(picker):
        return False, -1

    def select_all(picker):
        return "ALL", -1

    picker.register_custom_handler(ord('e'), end_selection)
    picker.register_custom_handler(ord('E'), end_selection)
    picker.register_custom_handler(ord('a'), select_all)
    picker.register_custom_handler(ord('A'), select_all)
    selected = picker.start()
    if selected[0] == False:
        print("User didn't select any files")
        return False
    newgpaths = []
    if selected[0] == "ALL":
        for game in options:
            newgpaths.append(os.path.join(folder, game))
    else:
        for game in selected:
            newgpaths.append(os.path.join(folder, game[0]))
    if tfile != None:
        with open(tfile, 'w', encoding='utf8') as textfile:
            for i in newgpaths:
                textfile.write((i).strip() + "\n")
    if doPrint != False:
        for i in newgpaths:
            print(i)
    return newgpaths
Beispiel #8
0
def interface_menu(path,TD,hide_f_op=False):
	xcipr=False;nxzpr=False;xcimode="Untrimmed";zmode="Compressed"
	if isinstance(path, list):
		if not isinstance(path[0], list):	
			for file in path:
				if file.endswith('.xci'):
					xcipr=True
				elif file.endswith('.xcz') or file.endswith('.nsz'):
					nxzpr=True	
				if xcipr==True and nxzpr==True:
					break
			if xcipr==True:
				xcimode=interface_xci_mode()
			if nxzpr==True:	
				zmode=interface_compressedf_mode()
			ofolder=ask_download_folder()	
			clear_Screen()
			About()						
			counter=len(path)	
			for file in path:	
				route_download(file,TD,ofolder,xcimode=xcimode,zmode=zmode)	
				counter-=1
				if counter>0:
					print("Still {} files to download".format(str(counter)))	
			input('\nPress any key to continue...')					
			return False	
		else:
			counter=0;files=list()
			for i in path:
				counter+=len(i[0])
				files+=i[0]
			for file in files:
				if file.endswith('.xci'):
					xcipr=True
				elif file.endswith('.xcz') or file.endswith('.nsz'):
					nxzpr=True	
				if xcipr==True and nxzpr==True:
					break
			if xcipr==True:
				xcimode=interface_xci_mode()
			if nxzpr==True:	
				zmode=interface_compressedf_mode()
			ofolder=ask_download_folder()	
			clear_Screen()
			About()			
			for k in path:
				TD=k[1];files=k[0]
				for file in files:	
					route_download(file,TD,ofolder,xcimode=xcimode,zmode=zmode)	
					counter-=1
					if counter>0:
						print("Still {} files to download".format(str(counter)))	
			input('\nPress any key to continue...')					
			return False				
	elif path.startswith('http'):
		file=Public.return_remote(path)		
		if file.name.endswith('.xci'):
			xcipr=True
		elif file.name.endswith('.xcz') or file.name.endswith('.nsz'):
			nxzpr=True
		elif file.name==None:
			print("File overpassed quota or is unreadable")
			input('\nPress any key to continue...')	
			clear_Screen()
			About()		
		if xcipr==True:
			xcimode=interface_xci_mode()
		if nxzpr==True:	
			zmode=interface_compressedf_mode()
		ofolder=ask_download_folder()		
		route_download_public(path,ofolder,file.name,xcimode=xcimode,zmode=zmode,file=file)	
		input('\nPress any key to continue...')					
		return False
	elif path !=None:
		if path.endswith('.xci'):
			xcipr=True
		elif path.endswith('.xcz') or path.endswith('.nsz'):
			nxzpr=True	
		if xcipr==True:
			xcimode=interface_xci_mode()
		if nxzpr==True:	
			zmode=interface_compressedf_mode()
		ofolder=ask_download_folder()	
		route_download(path,TD,ofolder,xcimode=xcimode,zmode=zmode)	
		input('\nPress any key to continue...')					
		return False	
	else:
		return False