diff --git a/scripts/badges.py b/scripts/badges.py index e69de29bb..ae182752d 100644 --- a/scripts/badges.py +++ b/scripts/badges.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python3 + +import requests +import argparse +import os +import sys +import json + +def get_total_downloads(api_key, package_name="aider-chat"): + """ + Fetch total downloads for a Python package from pepy.tech API + """ + url = f"https://api.pepy.tech/api/v2/projects/{package_name}" + headers = {"X-API-Key": api_key} + + try: + response = requests.get(url, headers=headers) + response.raise_for_status() # Raise an exception for HTTP errors + + data = response.json() + total_downloads = data.get("total_downloads", 0) + + return total_downloads + except requests.exceptions.RequestException as e: + print(f"Error fetching download statistics: {e}", file=sys.stderr) + sys.exit(1) + +def main(): + parser = argparse.ArgumentParser(description="Get total downloads for a Python package from pepy.tech") + parser.add_argument("--api-key", help="pepy.tech API key (or set PEPY_API_KEY environment variable)") + parser.add_argument("--package", default="aider-chat", help="Package name (default: aider-chat)") + args = parser.parse_args() + + # Get API key from args or environment variable + api_key = args.api_key or os.environ.get("PEPY_API_KEY") + if not api_key: + print("API key not provided. Please set PEPY_API_KEY environment variable or use --api-key", file=sys.stderr) + sys.exit(1) + + total_downloads = get_total_downloads(api_key, args.package) + print(f"Total downloads for {args.package}: {total_downloads:,}") + +if __name__ == "__main__": + main()