GamerNoTitle / MHYY

云·原神自动签到脚本,帮助你拿到每天的15分钟(Action已经被我禁用了,需要的话自行启用但不推荐;如果挂了就到这里找https://git.bili33.top/GamerNoTitle/MHYY)
http://bili33.top/posts/MHYY-AutoCheckin-Manual-Gen2/
GNU Affero General Public License v3.0
64 stars 57 forks source link

如何在云函数上使用? #23

Closed hujihan closed 3 months ago

GamerNoTitle commented 3 months ago

把配置写在同级目录的config.yml内

hujihan commented 3 months ago

我在本地ide测试没有问题可以正常运行,同样的代码上传至华为云,但是在华为云函数里测试无法正常运行。 image

hujihan commented 3 months ago

我确保config.yml配置文件没有问题

GamerNoTitle commented 3 months ago

看样子是判断条件出现了问题,我现在修改一下,请重新拉取一下代码

hujihan commented 3 months ago

还是一样的问题,尝试了Python3.6和Python3.9版本都是一样。 image

GamerNoTitle commented 3 months ago

讲真,没用过云函数 这样,你把这个ReadConf函数改成我下面这个(直接复制粘贴)

def ReadConf(variable_name, default_value=None):
    # Try to get the variable from the environment
    env_value = os.environ.get(variable_name)
    print('env_value: ' + str(env_value))
    if env_value:
        config_data = yaml.load(env_value, Loader=yaml.FullLoader)
        return config_data

    # If not found in environment, try to read from config.yml
    try:
        with open("config.yml", "r", encoding='utf-8') as config_file:
            config_data = yaml.load(config_file, Loader=yaml.FullLoader)
            print('config_data: ' + str(config_data))
            return config_data
    except FileNotFoundError:
        print('config.yml cannot be found.')
        return default_value

咱们先来排个bug,要不然真没法知道哪里的问题

hujihan commented 3 months ago

image 改了

GamerNoTitle commented 3 months ago

要详细点的日志,不要报错日志,我是要定位错误点

hujihan commented 3 months ago

LTS-cn-east-3-2024-7-21.csv 这是日志文件

hujihan commented 3 months ago

ys-2024-07-20 15_04_26-2024-07-21 15_04_26.log image

GamerNoTitle commented 3 months ago

看样子是脚本找不到你的config.yml文件,云函数打包上传的时候会把config.yml传上去嘛

hujihan commented 3 months ago

会的,我都是本地测试好了再打包成zip传上去的

GamerNoTitle commented 3 months ago

在如图所示的地方加入下面的代码看看,同样是要完整日志 image

# 获取当前目录路径
current_directory = os.getcwd()
print("当前目录路径:", current_directory)

# 列出当前目录下的所有文件和文件夹
files_and_folders = os.listdir(current_directory)
print("当前目录下的所有文件和文件夹:")
for item in files_and_folders:
    print(item)
hujihan commented 3 months ago

image

GamerNoTitle commented 3 months ago

看来云函数运行的目录跟config.yml不在同一个目录 我的建议是你把配置写进脚本里面去,反正你的云函数只有你自己上的去 具体做法是在脚本的上面写入这样的东西,并修改一下ReadConf函数(你可以直接复制我下面这里的去改) image

local_conf = '''# 使用前请阅读文档:https://bili33.top/posts/MHYY-AutoCheckin-Manual-Gen2
# 有问题请前往Github开启issue:https://github.com/GamerNoTitle/MHYY/issues

######## 以下为账号配置项,可以多账号,详情请参考文档 ########
accounts:
  # 第一个账号
  - token: 你的token
    type: 2
    sysver: 13
    deviceid: UUID
    devicename: 设备名称
    devicemodel: 设备型号
    appid: 1953439974
'''

def ReadConf(variable_name, default_value=None):
    # Try to get the variable from the environment
    env_value = local_conf

    if env_value:
        config_data = yaml.load(env_value, Loader=yaml.FullLoader)
        return config_data

    # If not found in environment, try to read from config.yml
    try:
        with open("config.yml", "r", encoding='utf-8') as config_file:
            config_data = yaml.load(config_file, Loader=yaml.FullLoader)
            return config_data
    except FileNotFoundError:
        return default_value

这样应该能解决问题

hujihan commented 3 months ago

确实是可以执行了,但我看日志里好像只执行了一段?没有执行签到的代码。 QQ_1721575877247 image

GamerNoTitle commented 3 months ago

你先把刚刚判断错误位点的print都去掉,然后把下面这两行删掉,云函数有最大运行时间所以不能再加随机延迟 Screenshot_2024-07-21-23-38-05-636_com.microsoft.emmx.jpg

GamerNoTitle commented 3 months ago

说错了 是三行 包括下面的sleep

hujihan commented 3 months ago

好的我试试

hujihan commented 3 months ago

image 按你要求都删了

GamerNoTitle commented 3 months ago

你这。。。。。。。。 下面的代码呢??????? Screenshot_2024-07-21-23-58-27-620_com.github.android.jpg

hujihan commented 3 months ago

如果你需要的话,加我qq我把云函数账号给你,你测试吧

hujihan commented 3 months ago

OK

hujihan commented 3 months ago

加你了