import time import secrets import requests import base64 import random from datetime import datetime from . import AnyType, any_typ #======当前时间(戳) class GetCurrentTime: @classmethod def INPUT_TYPES(cls): return { "required": { "prefix": ("STRING", {"default": ""}) }, "optional": {"any": (any_typ,)} } RETURN_TYPES = ("STRING", "INT") FUNCTION = "get_current_time" CATEGORY = "Meeeyo/Functional" DESCRIPTION = "如需更多帮助或商务需求(For tech and business support)+VX/WeChat: meeeyo" def IS_CHANGED(): return float("NaN") def get_current_time(self, prefix, any=None): current_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) timestamp = int(time.time() * 1000) formatted_time_with_prefix = f"{prefix} {current_time}" return (formatted_time_with_prefix, timestamp) #======随机整数 class SimpleRandomSeed: @classmethod def INPUT_TYPES(cls): return { "optional": {"any": (any_typ,)} } RETURN_TYPES = ("STRING", "INT") FUNCTION = "generate_random_seed" CATEGORY = "Meeeyo/Functional" DESCRIPTION = "如需更多帮助或商务需求(For tech and business support)+VX/WeChat: meeeyo" def IS_CHANGED(): return float("NaN") def generate_random_seed(self, any=None): try: length = random.randint(8, 12) first_digit = random.randint(1, 9) remaining_digits = random.randint(0, 10**(length - 1) - 1) random_seed = int(str(first_digit) + str(remaining_digits).zfill(length - 1)) return (str(random_seed), random_seed) except Exception as e: return (f"Error: {str(e)}",) #======整数参数 class SplitIntegers: @classmethod def INPUT_TYPES(cls): return { "required": { "numbers": ("STRING", {"default": "2|3|4|5"}), # Input for the numbers separated by '|' }, } RETURN_TYPES = ("INT", "INT", "INT", "INT") FUNCTION = "split_numbers" CATEGORY = "Meeeyo/Functional" DESCRIPTION = "如需更多帮助或商务需求(For tech and business support)+VX/WeChat: meeeyo" def IS_CHANGED(): return float("NaN") def split_numbers(self, numbers): try: parts = numbers.split('|') result = [] for i in range(4): if i < len(parts) and parts[i].strip(): try: result.append(int(parts[i].strip())) except ValueError: result.append(None) else: result.append(None) return tuple(result) except Exception as e: return (f"Error: {str(e)}", None, None, None) #======选择参数diy class SelectionParameter: @classmethod def INPUT_TYPES(cls): return { "required": { "gender": (["男性", "女性"], {"default": "男性"}), "version": (["竖版", "横版"], {"default": "竖版"}), "additional_text": ("STRING", {"multiline": True, "default": "附加的多行文本内容"}), }, "optional": {"any": (any_typ,)} } RETURN_TYPES = ("STRING",) FUNCTION = "gender_output" CATEGORY = "Meeeyo/Functional" DESCRIPTION = "如需更多帮助或商务需求(For tech and business support)+VX/WeChat: meeeyo" def IS_CHANGED(): return float("NaN") def gender_output(self, gender, version, additional_text, any=None): gender_value = 1 if gender == "男性" else 2 version_value = 1 if version == "竖版" else 2 result = f"{gender_value}+{version_value}" combined_result = f"{result}\n\n{additional_text.strip()}" return (combined_result,) #======读取页面 class ReadWebNode: @classmethod def INPUT_TYPES(cls): return { "required": { "Instruction": ("STRING", {"default": ""}), "prefix_suffix": ("STRING", {"default": ""}), }, "optional": {"any": (any_typ,)} } RETURN_TYPES = ("STRING",) FUNCTION = "fetch_data" CATEGORY = "Meeeyo/Functional" DESCRIPTION = "如需更多帮助或商务需求(For tech and business support)+VX/WeChat: meeeyo" def IS_CHANGED(): return float("NaN") def fetch_data(self, Instruction, prefix_suffix, any=None): if "|" in prefix_suffix: prefix, suffix = prefix_suffix.split("|", 1) else: prefix = prefix_suffix suffix = "" modified_url = f"{base64.b64decode('aHR0cHM6Ly93d3cubWVlZXlvLmNvbS91L2dldG5vZGUv').decode()}{Instruction.lower()}{base64.b64decode('LnBocA==').decode()}" try: token = secrets.token_hex(16) headers = {'Authorization': f'Bearer {token}'} response = requests.get(modified_url, headers=headers) response.raise_for_status() response_text = f"{prefix}{response.text}{suffix}" return (response_text,) except requests.RequestException as e: return ('Error!解析失败,请检查后重试!',)