|
import requests
|
|
import time
|
|
import uuid
|
|
import os
|
|
from datetime import datetime
|
|
from supabase import create_client, Client
|
|
|
|
try:
|
|
OneKey = os.environ['OneKey'].strip()
|
|
|
|
OneKey = OneKey.split("#")
|
|
TrumpAiUrl = OneKey[0]
|
|
ApiKey = OneKey[1]
|
|
SUPABASE_URL = OneKey[2]
|
|
UserUuid = OneKey[3]
|
|
BackendUrl = OneKey[4]
|
|
BackendApiKey = OneKey[5]
|
|
SUPABASE_KEY = OneKey[6]
|
|
|
|
|
|
except Exception as e:
|
|
print(f"OneKey: {e}")
|
|
|
|
|
|
|
|
|
|
supabase: Client = create_client(SUPABASE_URL, SUPABASE_KEY)
|
|
|
|
|
|
class TaskStatus:
|
|
Created = "created"
|
|
Processing = "processing"
|
|
TextRewrited = "text_rewrited"
|
|
TextFormated = "text_formated"
|
|
VoiceCompleted = "voice_completed"
|
|
VoiceError = "voice_error"
|
|
VideoCompleted = "video_completed"
|
|
VideoPublished = "video_published"
|
|
VideoError = "video_error"
|
|
Completed = "completed"
|
|
Failed = "failed"
|
|
Cancelled = "cancelled"
|
|
NoCredits = "no_credits"
|
|
|
|
|
|
def create_task_v3(task_type, text, word_num, is_rewrite):
|
|
import json
|
|
is_rewrite = False
|
|
url = f"{BackendUrl}/trump_process_ctx_api_v2"
|
|
headers = {
|
|
"Content-Type": "application/json"
|
|
}
|
|
print(url)
|
|
data = {
|
|
"video_template": "",
|
|
"speaker_template": "https://www.selfitcamera.site/SelfitAssert/Heygem/Morgan/Morgan_Freeman_template_show.mp3",
|
|
"text": text,
|
|
"word_num": word_num,
|
|
"is_rewrite": False,
|
|
"watermark": True,
|
|
"type": "voice",
|
|
"cost_credits": 2,
|
|
"user_uuid": UserUuid,
|
|
"secret_key": "219ngu"
|
|
}
|
|
try:
|
|
resp = requests.post(url, headers=headers, data=json.dumps(data), timeout=60)
|
|
if not resp.ok:
|
|
print(f"调用trump_process_ctx_api失败: {resp.status_code} {resp.text}")
|
|
return None
|
|
try:
|
|
ctx_json = resp.json()
|
|
except Exception as e:
|
|
print(f"解析trump_process_ctx_api返回异常: {e}")
|
|
return None
|
|
if not ctx_json or ctx_json.get("code") != 0 or not ctx_json.get("data") or not ctx_json["data"].get("task_id"):
|
|
print(f"trump_process_ctx_api返回异常: {ctx_json}")
|
|
return None
|
|
return {
|
|
"task_id": ctx_json["data"]["task_id"],
|
|
"uuid": ctx_json["data"]["task_uuid"],
|
|
"status": "created",
|
|
"message": "任务创建成功,后台处理中"
|
|
}
|
|
except Exception as err:
|
|
print(f"create_task_v3异常: {err}")
|
|
return None
|
|
|
|
def get_task_result(task_id):
|
|
|
|
url = f"{TrumpAiUrl}/api/task-status/uuid/{task_id}"
|
|
headers = {
|
|
"Content-Type": "application/json",
|
|
"Authorization": f"Bearer {ApiKey}"
|
|
}
|
|
print(url)
|
|
try:
|
|
resp = requests.get(url, headers=headers, timeout=30)
|
|
resp.raise_for_status()
|
|
result = resp.json()
|
|
return result
|
|
except Exception as e:
|
|
return {}
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
task_type = "voice"
|
|
text = "Hello, this is a test message for Trump AI Voice."
|
|
word_num = 10
|
|
is_rewrite = True
|
|
task_result = create_task_v2(task_type, text, word_num, is_rewrite)
|
|
print(f"task_result: {task_result}")
|
|
|