Romlister
def clean_name(self, name): """Remove common tags like (USA), [Rev A], etc.""" # Remove parentheses content name = re.sub(r'\([^)]*\)', '', name) # Remove brackets content name = re.sub(r'\[[^]]*\]', '', name) # Remove extra spaces and underscores name = re.sub(r'[_]+', ' ', name) name = re.sub(r'\s+', ' ', name).strip() return name
def get_list(self, clean_names=False): """Return list of ROM file paths or cleaned names.""" if clean_names: return [self.clean_name(r.stem) for r in self.roms] return [str(r) for r in self.roms] romlister
self.roms = [p for p in iterator if p.is_file()] return self name): """Remove common tags like (USA)
def export_csv(self, filepath, clean_names=False): with open(filepath, 'w', newline='', encoding='utf-8') as f: writer = csv.writer(f) writer.writerow(['filename' if not clean_names else 'clean_name']) for item in self.get_list(clean_names): writer.writerow([item]) name) name = re.sub(r'\s+'
def filter_by_extension(self, extensions): """Keep only files with given extensions (e.g. ['.nes', '.sfc']).""" extensions = [ext.lower() if ext.startswith('.') else f'.ext.lower()' for ext in extensions] self.roms = [r for r in self.roms if r.suffix.lower() in extensions] return self
I'll help you develop a feature — a tool that scans a directory of ROM files (for emulators) and outputs a filtered, searchable list based on various criteria (e.g., genre, region, file size, or custom tags).