Spaces:
Paused
Paused
| import requests | |
| import base64 | |
| import os | |
| def fetch_and_decode_base64(url): | |
| print(f"正在获取 {url}") | |
| try: | |
| response = requests.get(url, verify=False) | |
| response.raise_for_status() | |
| decoded_content = base64.b64decode(response.text) | |
| return decoded_content.decode('utf-8') | |
| except requests.RequestException as e: | |
| print(f"获取 {url} 时出错: {e}") | |
| return None | |
| def upload_to_gist(content, gist_id, github_token): | |
| url = f"https://api.github.com/gists/{gist_id}" | |
| headers = { | |
| 'Authorization': f'token {github_token}', | |
| 'Accept': 'application/vnd.github.v3+json' | |
| } | |
| data = { | |
| "files": { | |
| "configsub.yaml": { | |
| "content": content | |
| } | |
| } | |
| } | |
| try: | |
| response = requests.patch(url, headers=headers, json=data) | |
| response.raise_for_status() | |
| print(f"成功更新 Gist: {gist_id}") | |
| except requests.RequestException as e: | |
| print(f"更新 Gist 时出错: {e}") | |
| def main(): | |
| file_path = '/app/aggregator/data/subscribes.txt' | |
| with open(file_path, 'r') as file: | |
| urls = file.read().strip().split('\n') | |
| all_decoded_texts = [] | |
| for url in urls: | |
| decoded_content = fetch_and_decode_base64(url) | |
| if decoded_content: | |
| all_decoded_texts.append(decoded_content) | |
| merged_content = "\n".join(all_decoded_texts) | |
| encoded_merged_content = base64.b64encode(merged_content.encode('utf-8')).decode('utf-8') | |
| merged_file_path = '/app/merged.txt' | |
| with open(merged_file_path, 'w') as file: | |
| file.write(encoded_merged_content) | |
| print(f"已将编码后的合并内容写入 {merged_file_path}") | |
| # 上传合并内容到 Gist | |
| github_token = os.getenv('GITHUB_TOKEN') | |
| gist_id = os.getenv('GITHUB_GIST_ID') | |
| upload_to_gist(encoded_merged_content, gist_id, github_token) | |
| if __name__ == "__main__": | |
| main() |