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
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")
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
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
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
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
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