分享一个监控知12的wordpress插件是否更新的脚本</a />

背景

本站现在用了知12提供的wordpress付费阅读插件,但是他们没有把插件发布到wordpress的插件商店,从而也就无法得知新版本的更新,导致上个月有个用户微信上和我反馈我的博客在付费完之后不会自动跳转然后显示隐藏内容了,需要手动验证,最主要的是要多次重复验证最后才成功,体验十分不好,当时我一看我的知12提供的paywall插件还是一个beta版本的,官网上已经在这之后又更新了好几版了,当机立断,我马上花几分钟用filezilla把插件更新到了官网最新的版本,然后找之前反馈问题的网友又测试了一下,他说一切都变得很smooth了~🤣

上菜

#!/usr/bin/env python3
# coding = 'utf-8'
"""
@Time    : 2020/9/5-22:58
@Author  : sharp
@FileName: zhi12.py
@Software: PyCharm
@Blog    :https://www.sharpgan.com/
"""

import smtplib
import requests
from bs4 import BeautifulSoup
from user_agent import generate_user_agent
from email.mime.text import MIMEText

HOST = 'smtp.qq.com'
PORT = 587
SENDER = '@qq.com'
RECEIVER = '@qq.com'
PWD = ''

headers = {
    "accept": "text/html,application/xhtml+xml,application/xml;"
              "q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,"
              "application/signed-exchange;v=b3;q=0.9",
    'Accept-Language': 'en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7',
    'Accept-Encoding': 'gzip, deflate, br',
    'User-Agent': generate_user_agent(os='win')}


def mail_send(subject, mail_body):
    try:
        msg = MIMEText(mail_body, 'plain', 'utf-8')
        msg['Subject'] = subject
        msg['From'] = SENDER
        msg['To'] = RECEIVER
        s = smtplib.SMTP(HOST, PORT)
        s.debuglevel = 0
        s.login(SENDER, PWD)
        s.sendmail(SENDER, RECEIVER, msg.as_string())
        s.quit()
    except smtplib.SMTPException as e:
        print(str(e))
        exit(1)


def get_soup():
    url = "https://zhi12.cn/paywall/download"
    data = requests.get(url, headers=headers).text
    soup = BeautifulSoup(data, 'lxml')
    return soup


def compare():
    # 这里的当前版本请自行修改为知12官网的最新版本
    current_version = "3.1.2"
    soup = get_soup()
    tbody = soup.select("table tbody")[1]
    new_version = tbody.select('tr td')[1].get_text()
    if new_version == current_version:
        return False
    else:
        return True


def main(arg1,arg2):
    if compare():
        mail_send(subject='知12的wordpress插件更新了!',
                  mail_body='知12的wordpress插件更新了!')
        print('知12的wordpress插件更新了!')
        print('成功发送了一封邮件!')
    else:
        print("知12今天没有更新wordpress插件版本!")

 

部署

推荐用腾讯云云函数部署,否则自行修改main()函数签名和调用,

请参考本站的这一篇博客

请注意在pip安装库的时候带上user_agent这个库