68 lines
1.6 KiB
Python
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
|