Ejemplo n.º 1
0
def report_day(sess, t):
    url = f'https://selfreport.shu.edu.cn/DayReport.aspx?day={t.year}-{t.month}-{t.day}'

    for _ in range(RETRY):
        try:
            r = sess.get(url, allow_redirects=False)
        except Exception as e:
            print(e)
            time.sleep(RETRY_TIMEOUT)
            continue
        break
    else:
        print('report_day get DayReport failed')
        return False

    soup = BeautifulSoup(r.text, 'html.parser')
    view_state = soup.find('input', attrs={'name': '__VIEWSTATE'})

    if view_state is None:
        if '上海大学统一身份认证' in r.text:
            print('登录信息过期')
        else:
            print(r.text)
        return False

    BaoSRQ = t.strftime('%Y-%m-%d')
    try:
        ShiFSH, ShiFZX, ddlSheng, ddlShi, ddlXian, XiangXDZ, ShiFZJ = get_last_report(
            sess, t)
    except Exception as e:
        print('get_last_report failed')
        print(e)
        return False

    print(f'是否在上海:{ShiFSH}', f'是否在校:{ShiFZX}')
    print(ddlSheng, ddlShi, ddlXian, f'###{XiangXDZ[-2:]}')
    print(f'是否为家庭地址:{ShiFZJ}')

    for _ in range(RETRY):
        try:
            r = sess.post(url,
                          data={
                              "__EVENTTARGET":
                              "p1$ctl01$btnSubmit",
                              "__EVENTARGUMENT":
                              "",
                              "__VIEWSTATE":
                              view_state['value'],
                              "__VIEWSTATEGENERATOR":
                              "7AD7E509",
                              "p1$ChengNuo":
                              "p1_ChengNuo",
                              "p1$BaoSRQ":
                              BaoSRQ,
                              "p1$DangQSTZK":
                              "良好",
                              "p1$TiWen":
                              "",
                              "p1$JiuYe_ShouJHM":
                              "",
                              "p1$JiuYe_Email":
                              "",
                              "p1$JiuYe_Wechat":
                              "",
                              "p1$QiuZZT":
                              "",
                              "p1$JiuYKN":
                              "",
                              "p1$JiuYSJ":
                              "",
                              "p1$GuoNei":
                              "国内",
                              "p1$ddlGuoJia$Value":
                              "-1",
                              "p1$ddlGuoJia":
                              "选择国家",
                              "p1$ShiFSH":
                              ShiFSH,
                              "p1$ShiFZX":
                              ShiFZX,
                              "p1$ddlSheng$Value":
                              ddlSheng,
                              "p1$ddlSheng":
                              ddlSheng,
                              "p1$ddlShi$Value":
                              ddlShi,
                              "p1$ddlShi":
                              ddlShi,
                              "p1$ddlXian$Value":
                              ddlXian,
                              "p1$ddlXian":
                              ddlXian,
                              "p1$XiangXDZ":
                              XiangXDZ,
                              "p1$ShiFZJ":
                              ShiFZJ,
                              "p1$FengXDQDL":
                              "否",
                              "p1$TongZWDLH":
                              "否",
                              "p1$CengFWH":
                              "否",
                              "p1$CengFWH_RiQi":
                              "",
                              "p1$CengFWH_BeiZhu":
                              "",
                              "p1$JieChu":
                              "否",
                              "p1$JieChu_RiQi":
                              "",
                              "p1$JieChu_BeiZhu":
                              "",
                              "p1$TuJWH":
                              "否",
                              "p1$TuJWH_RiQi":
                              "",
                              "p1$TuJWH_BeiZhu":
                              "",
                              "p1$QueZHZJC$Value":
                              "否",
                              "p1$QueZHZJC":
                              "否",
                              "p1$DangRGL":
                              "否",
                              "p1$GeLDZ":
                              "",
                              "p1$FanXRQ":
                              "",
                              "p1$WeiFHYY":
                              "",
                              "p1$ShangHJZD":
                              "",
                              "p1$DaoXQLYGJ":
                              "没有",
                              "p1$DaoXQLYCS":
                              "没有",
                              "p1$JiaRen_BeiZhu":
                              "",
                              "p1$SuiSM":
                              "绿色",
                              "p1$LvMa14Days":
                              "是",
                              "p1$Address2":
                              "",
                              "F_TARGET":
                              "p1_ctl00_btnSubmit",
                              "p1_ContentPanel1_Collapsed":
                              "true",
                              "p1_GeLSM_Collapsed":
                              "false",
                              "p1_Collapsed":
                              "false",
                              "F_STATE":
                              generate_fstate_day(BaoSRQ, ShiFSH, ShiFZX,
                                                  ddlSheng, ddlShi, ddlXian,
                                                  XiangXDZ, ShiFZJ)
                          },
                          headers={
                              'X-Requested-With': 'XMLHttpRequest',
                              'X-FineUI-Ajax': 'true'
                          },
                          allow_redirects=False)
        except Exception as e:
            print(e)
            time.sleep(RETRY_TIMEOUT)
            continue
        break
    else:
        print('report_day post DayReport failed')
        return False

    if any(i in r.text
           for i in ['提交成功', '历史信息不能修改', '现在还没到晚报时间', '只能填报当天或补填以前的信息']):
        return True
    else:
        print(r.text)
        return False
Ejemplo n.º 2
0
    r = sess.get(url)
    soup = BeautifulSoup(r.text, 'html.parser')
    view_state = soup.find('input', attrs={'name': '__VIEWSTATE'})

    if view_state is None:
        if '上海大学统一身份认证' in r.text:
            print('登录信息过期')
        else:
            print(r.text)
        return False

    BaoSRQ = t.strftime('%Y-%m-%d')
<<<<<<< HEAD
    XiangXDZ = 普照路
=======
    ShiFSH, ShiFZX, ddlSheng, ddlShi, ddlXian, XiangXDZ = get_last_report(sess, t)
    print(f'是否在上海:{ShiFSH}', f'是否在校:{ShiFZX}', ddlSheng, ddlShi, ddlXian, '详细地址已隐去')
>>>>>>> b667d6f21a8daca2b84ae9361e66a24f4814018f

    while True:
        try:
            r = sess.post(url, data={
                "__EVENTTARGET": "p1$ctl00$btnSubmit",
                "__EVENTARGUMENT": "",
                "__VIEWSTATE": view_state['value'],
                "__VIEWSTATEGENERATOR": "7AD7E509",
                "p1$ChengNuo": "p1_ChengNuo",
                "p1$BaoSRQ": BaoSRQ,
                "p1$DangQSTZK": "良好",
                "p1$TiWen": "",
                "p1$JiuYe_ShouJHM": "",
Ejemplo n.º 3
0
def report_day(sess, t, user, config):
    url = f'https://selfreport.shu.edu.cn/DayReport.aspx?day={t.year}-{t.month}-{t.day}'

    for _ in range(RETRY):
        try:
            r = sess.get(url, allow_redirects=False)
        except Exception as e:
            print(e)
            time.sleep(RETRY_TIMEOUT)
            continue
        break
    else:
        print('获取每日一报起始页超时')
        return False

    soup = BeautifulSoup(r.text, 'html.parser')
    view_state = soup.find('input', attrs={'name': '__VIEWSTATE'})

    if view_state is None:
        if '上海大学统一身份认证' in r.text:
            print('登录信息过期')
        else:
            print(r.text)
        return False

    BaoSRQ = t.strftime('%Y-%m-%d')
    ShiFSH, ShiFZX, XiaoQu, ddlSheng, ddlShi, ddlXian, XiangXDZ, ShiFZJ = get_last_report(
        sess, t)
    SuiSM, XingCM = get_img_value(sess)

    print(f'是否在上海:{ShiFSH}', f'是否在校:{ShiFZX}', ddlSheng, ddlShi, ddlXian,
          '详细地址已隐去')

    for _ in range(RETRY):
        try:
            r = sess.post(
                url,
                data={
                    "__EVENTTARGET":
                    "p1$ctl01$btnSubmit",
                    "__EVENTARGUMENT":
                    "",
                    "__VIEWSTATE":
                    view_state['value'],
                    "__VIEWSTATEGENERATOR":
                    "7AD7E509",
                    "p1$ChengNuo":
                    "p1_ChengNuo",
                    # "p1$pnlDangSZS$DangSZS": "A",
                    "p1$BaoSRQ":
                    BaoSRQ,
                    "p1$DangQSTZK":
                    "良好",
                    "p1$TiWen":
                    "",
                    "p1$GuoNei":
                    "国内",
                    "p1$P_GuoNei$ShiFSH":
                    ShiFSH,
                    "p1$P_GuoNei$ShiFZX":
                    ShiFZX,
                    "p1$P_GuoNei$XiaoQu":
                    XiaoQu,
                    "p1$P_GuoNei$pImages$HFimgSuiSM":
                    SuiSM,
                    "p1$P_GuoNei$pImages$HFimgXingCM":
                    XingCM,
                    "p1$JiuYe_ShouJHM":
                    "",
                    "p1$JiuYe_Email":
                    "",
                    "p1$JiuYe_Wechat":
                    "",
                    "p1$QiuZZT":
                    "",
                    "p1$JiuYKN":
                    "",
                    "p1$JiuYSJ":
                    "",
                    "p1$ddlGuoJia$Value":
                    "-1",
                    "p1$ddlGuoJia":
                    "选择国家",
                    "p1$ddlSheng$Value":
                    ddlSheng,
                    "p1$ddlSheng":
                    ddlSheng,
                    "p1$ddlShi$Value":
                    ddlShi,
                    "p1$ddlShi":
                    ddlShi,
                    "p1$ddlXian$Value":
                    ddlXian,
                    "p1$ddlXian":
                    ddlXian,
                    "p1$XiangXDZ":
                    XiangXDZ,
                    "p1$ShiFZJ":
                    ShiFZJ,
                    "p1$FengXDQDL":
                    "否",
                    "p1$TongZWDLH":
                    "否",
                    "p1$CengFWH":
                    "否",
                    "p1$CengFWH_RiQi":
                    "",
                    "p1$CengFWH_BeiZhu":
                    "",
                    "p1$JieChu":
                    "否",
                    "p1$JieChu_RiQi":
                    "",
                    "p1$JieChu_BeiZhu":
                    "",
                    "p1$TuJWH":
                    "否",
                    "p1$TuJWH_RiQi":
                    "",
                    "p1$TuJWH_BeiZhu":
                    "",
                    "p1$QueZHZJC$Value":
                    "否",
                    "p1$QueZHZJC":
                    "否",
                    "p1$DangRGL":
                    "否",
                    "p1$GeLDZ":
                    "",
                    "p1$FanXRQ":
                    "",
                    "p1$WeiFHYY":
                    "",
                    "p1$ShangHJZD":
                    "",
                    "p1$DaoXQLYGJ":
                    "没有",
                    "p1$DaoXQLYCS":
                    "没有",
                    "p1$JiaRen_BeiZhu":
                    "",
                    "p1$SuiSM":
                    "绿色",
                    "p1$LvMa14Days":
                    "是",
                    "p1$Address2":
                    "",
                    "p1_pnlDangSZS_Collapsed":
                    "false",
                    "p1_P_GuoNei_pImages_Collapsed":
                    "false",
                    "p1_P_GuoNei_Collapsed":
                    "false",
                    "p1_ContentPanel1_Collapsed":
                    "true",
                    "p1_GeLSM_Collapsed":
                    "false",
                    "p1_Collapsed":
                    "false",
                    "F_STATE":
                    generate_fstate_day(BaoSRQ, ShiFSH, ShiFZX, XiaoQu,
                                        ddlSheng, ddlShi, ddlXian, XiangXDZ,
                                        ShiFZJ, SuiSM, XingCM)
                },
                headers={
                    'X-Requested-With': 'XMLHttpRequest',
                    'X-FineUI-Ajax': 'true'
                },
                allow_redirects=False)
        except Exception as e:
            print("重试中。。。")
            print(e)
            time.sleep(RETRY_TIMEOUT)
            continue
        if any(i in r.text
               for i in ['提交成功', '历史信息不能修改', '现在还没到晚报时间', '只能填报当天或补填以前的信息']):
            print(f'{t} 每日一报提交成功')
            if config[user]['email_to'] != 'null':
                txt = "亲爱的同学({})\n".format(''.join([
                    str(j) if i % 2 == 0 else 'shu' for i, j in enumerate(user)
                ]))
                txt += "您于" + t.strftime(
                    '%Y-%m-%d %H:%M:%S') + "将每日一报提交成功\n下面是具体填报信息\n"
                txt += f" 是否在上海:{ShiFSH}\n 是否在校:{ShiFZX} \n 所在省:{ddlSheng} \n 所在市:{ddlShi}\n 所在县:{ddlXian}\n 具体地址:{''.join([str(j) if i % 2 == 0 else 'shu' for i, j in enumerate(XiangXDZ)])}\n"
                txt += "=v= 感谢您的光临,明天竭诚为您服务!"
                send_mail(config['email'], [config[user]['email_to']],
                          "{}月{}日每日一报提交成功".format(t.month, t.day), txt)
            print(f'{t} 邮件发送成功')
            return True
        elif '数据库有点忙' in r.text:
            print('数据库有点忙,重试')
            time.sleep(RETRY_TIMEOUT)
            continue
        else:
            print(f'{t} 每日一报提交失败')
            if config[user]['email_to'] != 'null':
                send_mail(config['email'], [config[user]['email_to']],
                          "{}月{}日每日一报提交失败!!!!!".format(t.month, t.day), r.text)
            print(r.text)
            return False
Ejemplo n.º 4
0
def report_day(sess, t, user, config):
    url = f'https://selfreport.shu.edu.cn/DayReport.aspx?day={t.year}-{t.month}-{t.day}'

    r = sess.get(url)
    soup = BeautifulSoup(r.text, 'html.parser')
    view_state = soup.find('input', attrs={'name': '__VIEWSTATE'})

    if view_state is None:
        if '上海大学统一身份认证' in r.text:
            print('登录信息过期')
        else:
            print(r.text)
        return False

    BaoSRQ = t.strftime('%Y-%m-%d')

    ShiFSH, ShiFZX, ddlSheng, ddlShi, ddlXian, XiangXDZ, ShiFZJ = get_last_report(
        sess, t)
    # ShiFSH, ShiFZX, ddlSheng, ddlShi, ddlXian, XiangXDZ = get_last_report(sess, t)
    print(f'是否在上海:{ShiFSH}', f'是否在校:{ShiFZX}', ddlSheng, ddlShi, ddlXian,
          '详细地址已隐去')

    while True:
        try:
            r = sess.post(url,
                          data={
                              "__EVENTTARGET":
                              "p1$ctl00$btnSubmit",
                              "__EVENTARGUMENT":
                              "",
                              "__VIEWSTATE":
                              view_state['value'],
                              "__VIEWSTATEGENERATOR":
                              "7AD7E509",
                              "p1$ChengNuo":
                              "p1_ChengNuo",
                              "p1$BaoSRQ":
                              BaoSRQ,
                              "p1$DangQSTZK":
                              "良好",
                              "p1$TiWen":
                              "",
                              "p1$JiuYe_ShouJHM":
                              "",
                              "p1$JiuYe_Email":
                              "",
                              "p1$JiuYe_Wechat":
                              "",
                              "p1$QiuZZT":
                              "",
                              "p1$JiuYKN":
                              "",
                              "p1$JiuYSJ":
                              "",
                              "p1$GuoNei":
                              "国内",
                              "p1$ddlGuoJia$Value":
                              "-1",
                              "p1$ddlGuoJia":
                              "选择国家",
                              "p1$ShiFSH":
                              ShiFSH,
                              "p1$ShiFZX":
                              ShiFZX,
                              "p1$ddlSheng$Value":
                              ddlSheng,
                              "p1$ddlSheng":
                              ddlSheng,
                              "p1$ddlShi$Value":
                              ddlShi,
                              "p1$ddlShi":
                              ddlShi,
                              "p1$ddlXian$Value":
                              ddlXian,
                              "p1$ddlXian":
                              ddlXian,
                              "p1$XiangXDZ":
                              XiangXDZ,
                              "p1$ShiFZJ":
                              ShiFZJ,
                              "p1$FengXDQDL":
                              "否",
                              "p1$TongZWDLH":
                              "否",
                              "p1$CengFWH":
                              "否",
                              "p1$CengFWH_RiQi":
                              "",
                              "p1$CengFWH_BeiZhu":
                              "",
                              "p1$JieChu":
                              "否",
                              "p1$JieChu_RiQi":
                              "",
                              "p1$JieChu_BeiZhu":
                              "",
                              "p1$TuJWH":
                              "否",
                              "p1$TuJWH_RiQi":
                              "",
                              "p1$TuJWH_BeiZhu":
                              "",
                              "p1$QueZHZJC$Value":
                              "否",
                              "p1$QueZHZJC":
                              "否",
                              "p1$DangRGL":
                              "否",
                              "p1$GeLDZ":
                              "",
                              "p1$FanXRQ":
                              "",
                              "p1$WeiFHYY":
                              "",
                              "p1$ShangHJZD":
                              "",
                              "p1$DaoXQLYGJ":
                              "没有",
                              "p1$DaoXQLYCS":
                              "没有",
                              "p1$JiaRen_BeiZhu":
                              "",
                              "p1$SuiSM":
                              "绿色",
                              "p1$LvMa14Days":
                              "是",
                              "p1$Address2":
                              "",
                              "F_TARGET":
                              "p1_ctl00_btnSubmit",
                              "p1_ContentPanel1_Collapsed":
                              "true",
                              "p1_GeLSM_Collapsed":
                              "false",
                              "p1_Collapsed":
                              "false",
                              "F_STATE":
                              generate_fstate_day(BaoSRQ, ShiFSH, ShiFZX,
                                                  ddlSheng, ddlShi, ddlXian,
                                                  XiangXDZ, ShiFZJ)
                          },
                          headers={
                              'X-Requested-With': 'XMLHttpRequest',
                              'X-FineUI-Ajax': 'true'
                          },
                          allow_redirects=False)
        except Exception as e:
            print(e)
            continue
        break

    if any(i in r.text
           for i in ['提交成功', '历史信息不能修改', '现在还没到晚报时间', '只能填报当天或补填以前的信息']):
        print(f'{t} 每日一报提交成功')
        txt = "亲爱的同学({})\n".format(user)
        txt += "您的小可爱于" + t.strftime(
            '%Y-%m-%d %H:%M:%S') + "将您的每日一报提交成功\n下面是具体填报信息\n"
        txt += f" 是否在上海:{ShiFSH}\n 是否在校:{ShiFZX} \n 所在省:{ddlSheng} \n 所在市:{ddlShi}\n 所在县:{ddlXian}\n 具体地址:{XiangXDZ}\n"
        txt += "=v= 感谢您的光临,明天竭诚为您服务!"
        send_mail(config['email'], [config[user]['email_to']],
                  "{}月{}日每日一报提交成功".format(t.month, t.day), txt)
        print(f'{t} 邮件发送成功')
        return True
    else:
        print(f'{t} 每日一报提交失败')
        send_mail(config['email'], [config[user]['email_to']],
                  "{}月{}日每日一报提交失败".format(t.month, t.day), r.text)
        print(r.text)
        return False