#!/usr/bin/env python # -*- coding: utf-8 -*- from server.decoder import decode_url_to_configs import base64 from fastapi import APIRouter,BackgroundTasks from randomSubscribeUrl import subscription_link_list,getRandomSubscribeUrl,delete_invalid_url_in_txt router = APIRouter() @router.get('/') def getServerList(background_tasks: BackgroundTasks)->str: # 返回一个可用的订阅链接信息 SubscribeUrlList = subscription_link_list(router.fileName) # 直接用现成的认为可用然后直接返回,之后再删不可用的 randomSubscribeUrl= getRandomSubscribeUrl(SubscribeUrlList) NodeList = dump_configs(randomSubscribeUrl) # 将所有链接拼接成一个字符串,每个链接之间用换行符分隔 combined_links = "\n".join(NodeList) # 将字符串转换为字节串 combined_links_bytes = combined_links.encode("utf-8") # 对字节串进行 Base64 编码 encoded_links = base64.b64encode(combined_links_bytes) # 将编码后的字节串转换为字符串 encoded_links_str = encoded_links.decode("utf-8") # 输出 Base64 编码后的订阅地址 print("Base64 编码后的订阅地址:") print(encoded_links_str) return encoded_links_str def dump_configs(url:str)->list: #返回全部节点信息的列表 configs = decode_url_to_configs(url) return configs