diff --git a/glob/cnr_utils.py b/glob/cnr_utils.py index 060eaa07..14c609da 100644 --- a/glob/cnr_utils.py +++ b/glob/cnr_utils.py @@ -1,12 +1,15 @@ -import requests -from dataclasses import dataclass -from typing import List -import manager_util -import toml -import os import asyncio import json +import os +import platform import time +from dataclasses import dataclass +from typing import List + +import manager_core +import manager_util +import requests +import toml base_url = "https://api.comfy.org" @@ -32,8 +35,34 @@ async def _get_cnr_data(cache_mode=True, dont_wait=True): page = 1 full_nodes = {} + + # Get ComfyUI version tag + comfyui_tag = manager_core.get_comfyui_tag() or 'unknown' + + # Determine form factor based on environment and platform + is_desktop = bool(os.environ.get('__COMFYUI_DESKTOP_VERSION__')) + system = platform.system().lower() + is_windows = system == 'windows' + is_mac = system == 'darwin' + + if is_desktop: + if is_windows: + form_factor = 'desktop-win' + elif is_mac: + form_factor = 'desktop-mac' + else: + form_factor = 'other' + else: + if is_windows: + form_factor = 'git-windows' + elif is_mac: + form_factor = 'git-mac' + else: + form_factor = 'other' + while remained: - sub_uri = f'{base_url}/nodes?page={page}&limit=30' + # Add comfyui_version and form_factor to the API request + sub_uri = f'{base_url}/nodes?page={page}&limit=30&comfyui_version={comfyui_tag}&form_factor={form_factor}' sub_json_obj = await asyncio.wait_for(manager_util.get_data_with_cache(sub_uri, cache_mode=False, silent=True), timeout=30) remained = page < sub_json_obj['totalPages']