涛之雨 发表于 2021-6-3 10:46

云函数监控游戏降价(支持监听多款游戏)

本帖最后由 涛之雨 于 2021-6-3 10:47 编辑


首先准备好游戏的APPID(DLC的ID也可以,推荐一个网站:https://steamdb.info/)

```python
# # -*- coding: utf8 -*-
import json,requests
import requests
import smtplib
from email.header import Header
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart

IDs=#这里是需要监听的游戏APPID
url='https://store.steampowered.com/api/appdetails/?appids='

def main_handler(event, context):#这个是默认入口
    text_info=""
    isbuy=False
    for ID in IDs:
      ID=str(ID)
      res=requests.get(url+ID).json()
      if res["success"] is True:
            price=res["data"]["price_overview"]["final"]/100
            rawprice=res["data"]["price_overview"]["initial"]/100
            if rawprice>price:
                buy="正"
                isbuy=True#有一个降价了就通知
            else:
                buy="未"
            print("["+res["data"]["name"]+"@"+ID+"]当前价格:%s,历史价格:%s;【%s】在促销"%(price,rawprice,buy))
            text_info+="["+res["data"]["name"]+"@"+ID+"]当前价格:%s,历史价格:%s;【%s】在促销"%(price,rawprice,buy)+"\n\n"
      else:
            print("["+res["data"]["name"]+"@"+ID+"]读取失败!")
    if isbuy is True:
      sender_mail = '发送邮箱@qq.com' #这里填发件人邮箱,我选的QQ邮箱
      sender_pass = 'rgmxxxxxxceg' #这里填QQ邮箱SMTP授权码
      to='接收邮箱(可以还填自己的QQ邮箱)@52pojie.cn'
      msg_root = MIMEMultipart('mixed')# 设置总的邮件体对象,对象类型为mixed
      msg_root['From'] = '云函数steam价格监听'#发送人描述
      msg_root['To'] = to
      subject = 'steam监听价格变动!'#邮件标题
      msg_root['subject'] = Header(subject, 'utf-8')

      text_sub = MIMEText(text_info, 'plain', 'utf-8')
      msg_root.attach(text_sub)

      try:
            sftp_obj =smtplib.SMTP('smtp.qq.com', 25)
            sftp_obj.login(sender_mail, sender_pass)
            sftp_obj.sendmail(sender_mail, to, msg_root.as_string())
            sftp_obj.quit()
            print('邮件推送成功!')

      except Exception as e:
            print('邮件推送失败!错误代码:')
            print(e)
    return text_info
```

再加一个半小时的触发器,美滋滋监听价格



如果想测试效果可以把

```python
if isbuy is True:
```

改成

```python
if True is True:
```

(测试完记得改回来)

测试示意图:



(又水了一贴真开心,其实我是帮朋友写的,又能白嫖朋友的游戏更开心)


正己 发表于 2021-6-3 12:54

涛涛NB

三滑稽甲苯 发表于 2021-6-23 12:21

想把风吹灭的火 发表于 2021-6-3 15:59
不对吧,云函数没办法保存数据,每次运行都是获取到的当前价格,如何进行价格比对呢?只能引入数据库,腾讯 ...

看lz代码应该是同时爬取当前价格和历史价格,从而进行比对

liangqz 发表于 2021-6-3 10:50

这也可以,nb哈哈哈哈

黑羽快斗 发表于 2021-6-3 12:16

消息提醒可以用qmsg,企业微信吗?

涛之雨 发表于 2021-6-3 14:18

黑羽快斗 发表于 2021-6-3 12:16
消息提醒可以用qmsg,企业微信吗?

可以自己实现嘛。就是随手写完就发出来了。。。
(估计暂时应该没有促销,一个月后夏促应该会有)

king82 发表于 2021-6-3 15:36

隐形守护者好评。

想把风吹灭的火 发表于 2021-6-3 15:59

不对吧,云函数没办法保存数据,每次运行都是获取到的当前价格,如何进行价格比对呢?只能引入数据库,腾讯云函数带数据库是收费的吧。

zxinyun 发表于 2021-6-3 18:47

忠实玩粉,鉴定完毕!

iloveshe 发表于 2021-6-3 19:48

楼主厉害,谢谢分享

smile1110 发表于 2021-6-5 04:43

@涛之雨 快开发一个监控 京东 显卡的,尤其是3080ti!
页: [1] 2
查看完整版本: 云函数监控游戏降价(支持监听多款游戏)