smssend/smssend/init.py
2026-03-19 16:56:26 +08:00

68 lines
1.6 KiB
Python

# -*- coding: utf-8 -*-
"""
SMS Send Module Init
=====================
按照 dagflow 模式:
- load_smssend() 加载模块
- 将功能注册到 ServerEnv
"""
import sys
sys.path.append('D:/Code/dagflow_demo/')
import asyncio
from functools import partial
from appPublic.jsonConfig import getConfig
from appPublic.log import debug, exception, error, info
from ahserver.serverenv import ServerEnv
from ahserver.configuredServer import add_cleanupctx
import random
import string
from .smssend import (
SMSEngine,
get_sms_engine
)
_sms_engine_instance = None
async def generate_sms_code(length: int = 6, expire_minutes: int = 5) -> str:
engine = get_sms_engine()
return await engine.generate_sms_code(length, expire_minutes)
async def check_sms_code(code_id: str, vcode: str) -> bool:
engine = get_sms_engine()
return await engine.check_sms_code(code_id, vcode)
async def send_vcode(phone: str, stype: str, vcode: dict) -> dict:
engine = get_sms_engine()
return await engine.send_vcode(phone, stype, vcode)
async def send_sms(phone: str, stype: str) -> dict:
engine = get_sms_engine()
return await engine.send_sms(phone, stype)
async def smsbacktask(engine, app):
task = asyncio.create_task(asyncio.sleep(999999))
await asyncio.sleep(0.1)
return task
def load_smssend():
config = getConfig()
global _sms_engine_instance
_sms_engine_instance = SMSEngine()
info(f'SMS Send Module loaded, signature_id: {_sms_engine_instance.signature_id}')
env = ServerEnv()
env.sms_engine = _sms_engine_instance
env.generate_sms_code = generate_sms_code
env.check_sms_code = check_sms_code
env.send_vcode = send_vcode
env.send_sms = send_sms