# autoService **Repository Path**: bgcls/auto-service ## Basic Information - **Project Name**: autoService - **Description**: 短信自动化服务 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-10-31 - **Last Updated**: 2023-02-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # autoService 短信自动化服务 ### 安装方法 新建空白的文件夹 下载requirements.txt 下载core/update.py到文件夹 然后执行如下命令 pip3 install python3 update.py 将会自动拉取、创建相应目录和文件,之后根据提示创建配置文件。 ### 目录说明: ``` /core 核心插件存放路径 /storage session等自动保存的变量存放路径 /conf 自动化批量登录数据保存位置 /output 结果保存输出位置 /tmp 临时文件输出目录 /demo 提供的几个例子 /test 部分自己做测试的文件。【没有太多的意义】 ``` 以上目录除core目录外,都可以通过core/autoService_config.py修改`conf_save_dir`变量改变基址目录 ### 文件说明: ```` /core/autoService.py 主要服务文件 /core/chromeDriver.py 对于selenium自动化的封装 /core/*_config.py 对应插件服务配置文件 test/*.py 所有测试类啥的都可以放在这里 main_*.py 所有调用autoService服务的程序 /core/multiRunner.py 批量运行工具 /core/update.py 版本更新工具,-f强制升级 update_install.py 安装/升级脚本,一键升级或安装核心文件。 ```` ### autoService.py文件内容说明 ```` 装饰器: @reLoadSession(CheckCall="checkSession") 当类允许复用登录cookie时,可以在登录的流程上使用装饰器,自动根据手机号读取配置文件, 如果上次cookie能用,则直接跳过登录流程,如果不可用,则会运行登录流程方法。 有以下3种写法(空参数也要加(),不然会出错!!!!) @reLoadSession() 表示默认使用类下的checkSession()方法 @reLoadSession(CheckCall="checkSess") 表示使用类下的checkSess()方法 @reLoadSession(CheckCall=checkSess) 表示使用类下的checkSess()方法 @default 设置默认的flow方法 普通方法: multiRunner(class_type: type, flow: str, error_do=blank_run) 【批量运行】 方法,class_type为指定实例化的app名,flow为指定流程化的方法。具体可参考例子 App() 【别名 getApplication()】 【获取自动化类】 方法,获取当前文件里定义的自动化类,将会自动实例化一个出来,需要手动调用init进行初始化 AutoService类 自动化服务继承类 工具类方法 >log(self, *args, **kwargs) 日志输出工具助手,可以指定level >checkE(self, condion: bool, *args) 检查表达式是否满足条件,不满足则报错 >post(self, url, data) post工具函数,直接返回dict对象。 流程类方法 >init(self, phoneNum) 初始化手机号信息。 >sms_send(self, calls=lambda: 0, *args, **kwargs) 可以在子类里面先调用父类的sms_send,再执行发送验证码的部分。 >getVerCode(self) 获取验证码 chromeDriver.py getDriver 获取浏览器驱动,建议在自动化类里面使用__OPEN_CHROME__=True代替 getPage 等价于 driver.get() save_screenshot 等价于 driver.save_screenshot(self.getOutFileName(后缀名))组合,文件将会保存在output目录 find_element 等价于 driver.find_element() execute_script 等价于 driver.execute_script() get_console_log 获取控制台打印的文本,请传入一个过滤器方法. setJqueryAsync 设置jquery 从异步提交变为同步提交 ```` ### 特点: ```` 1.继承AutoService类,定义为类下的变量,以storage_开头的,会自动保存到data目录下,根据 类名_手机号.properties 定义名字 2.接入nodered,使用checkE方法后,可以自动将args[0]这一部分推送到nodered上,然后由开发者自行推送信息给用户作为提示。 ```` ### 插件列表 ```` /core/chromeDriver.py 谷歌驱动插件.使用getDriver()直接获取已经设置好的驱动。 DEBUG模式可以在windows下不关闭浏览器逐步调试,非DEBUG只能在linux下无界面运行。 /core/multiRunner.py 批量运行工具,可以让原本模块的main函数每次调试后不用注释 使用方法 python -m core.multiRunner [模块名].[flow方法名] #简写方式 使用方法 python -m core.multiRunner [模块名].[自动化类名].[flow方法名] #完整方式 /core/update.py 系统更新工具 使用方法 python -m core.update ### 依赖 ```` home assistant (docker版就够用了) nodered (本脚本框架与home assistant 通信的桥梁) home assistant (安卓客户端,用于获取手机通知信息,即间接获取验证码,小米厂商的手机效果最好) ```` ### 特殊开关 如果想要锁屏都可以收到验证码,小米手机操作步骤 ``` 在短信软件里操作即可。 操作步骤:第一步,点击并打开短信软件。 第二步,来到短信主页面后,点击主页面右上角的短信设置选项。 第三步,我们可以看到设置页面的短信智能识别选项。 第四步,来到短信智能识别页面后,我们可以看到锁屏时屏蔽验证码的开关。 第五步,打开锁屏时屏蔽验证码右边的开关,就开启了锁屏时屏蔽验证码的功能。 ```