diff --git a/flatshop_db b/flatshop_db deleted file mode 100644 index 68ae7a3..0000000 Binary files a/flatshop_db and /dev/null differ diff --git a/libflatpak_query.py b/libflatpak_query.py index 3666f2b..2376fa4 100755 --- a/libflatpak_query.py +++ b/libflatpak_query.py @@ -219,24 +219,44 @@ class AppstreamSearcher: search_results.append(result) return search_results + def get_all_apps(self, repo_name: str = None) -> list[AppStreamPackage]: + """Get all available apps from specified or all repositories""" + all_packages = [] + if repo_name: + if repo_name in self.remotes: + all_packages = self.remotes[repo_name] + else: + for remote_name in self.remotes.keys(): + all_packages.extend(self.remotes[remote_name]) + return all_packages + + def get_categories_summary(self, repo_name: str = None) -> dict: + """Get a summary of all apps grouped by category""" + apps = self.get_all_apps(repo_name) + categories = {} + + for app in apps: + for category in app.categories: + if category not in categories: + categories[category] = [] + categories[category].append(app) + + return categories + def main(): """Main function demonstrating Flatpak information retrieval""" parser = argparse.ArgumentParser(description='Search Flatpak packages') parser.add_argument('--id', help='Application ID to search for') parser.add_argument('--repo', help='Filter results to specific repository') + parser.add_argument('--list-all', action='store_true', help='List all available apps') + parser.add_argument('--categories', action='store_true', help='Show apps grouped by category') args = parser.parse_args() app_id = args.id repo_filter = args.repo - - if not app_id: - print("Usage: python flatpak_info.py --