Files
wechatauto-replica/wechatauto/param.py
T

76 lines
2.1 KiB
Python

from typing import Literal
import os
PROJECT_NAME = 'wechatauto'
class WxParam:
# 语言设置
LANGUAGE: Literal['cn', 'cn_t', 'en'] = 'cn'
# 是否启用日志文件
ENABLE_FILE_LOGGER: bool = True
# 下载文件/图片默认保存路径
DEFAULT_SAVE_PATH: str = os.path.join(os.getcwd(), 'wechatauto文件下载')
# 是否启用消息哈希值用于辅助判断消息,开启后会稍微影响性能
MESSAGE_HASH: bool = False
# 头像到消息X偏移量,用于消息定位,点击消息等操作
DEFAULT_MESSAGE_XBIAS = 51
DEFAULT_MESSAGE_YBIAS = 30
# 是否强制重新自动获取X偏移量,如果设置为True,则每次启动都会重新获取
FORCE_MESSAGE_XBIAS: bool = False
# 监听消息时间间隔,单位秒
LISTEN_INTERVAL: int = 1
# 监听执行器线程池大小
LISTENER_EXCUTOR_WORKERS: int = 4
# 搜索聊天对象超时时间,单位秒
SEARCH_CHAT_TIMEOUT: int = 2
# 微信笔记加载超时时间,单位秒
NOTE_LOAD_TIMEOUT: int = 30
# 发送文件超时时间,单位秒
SEND_FILE_TIMEOUT: int = 10
class WxResponse(dict):
def __init__(self, status: str, message: str, data: dict = None):
super().__init__(status=status, message=message, data=data)
def __str__(self):
return str(self.to_dict())
def __repr__(self):
return str(self.to_dict())
def to_dict(self):
return {
'status': self['status'],
'message': self['message'],
'data': self['data']
}
def __bool__(self):
return self.is_success
@property
def is_success(self):
return self['status'] == '成功'
@classmethod
def success(cls, message=None, data: dict = None):
return cls(status="成功", message=message, data=data)
@classmethod
def failure(cls, message: str, data: dict = None):
return cls(status="失败", message=message, data=data)
@classmethod
def error(cls, message: str, data: dict = None):
return cls(status="错误", message=message, data=data)