Files
XiaoGe-LiBai-yangmao/mtbbs.py
2024-01-26 10:07:53 +08:00

113 lines
4.0 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""
mt论坛自动签到
来源https://github.com/linbailo/zyqinglong
支持多用户运行
添加变量mtluntan
账号密码用&隔开
多用户用@隔开
例如账号110086 密码1001
账号11234 密码1234
则变量为10086&1001@1234&1234
export mtluntan=""
new Env('MT论坛签到');
cron: 0 0,7 * * *
const $ = new Env("mt论坛");
"""
import requests
import re
import os
import time
#qq:1628708538
#设置ua
ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'
session = requests.session()
#获取ip
ipdi = requests.get('http://ifconfig.me/ip', timeout=6).text.strip()
print('============📣初始化📣============')
print(ipdi)
#判断国内外地址
dizhi = f'http://ip-api.com/json/{ipdi}?lang=zh-CN'
pdip = requests.get(url=dizhi, timeout=6).json()
country = pdip['country']
if '中国' == country:
print(country)
else:
print(f'{country}无法访问论坛')
exit()
print('==================================')
def main(username,password):
headers={'User-Agent': ua}
session.get('https://bbs.binmt.cc/member.php?mod=logging&action=login&infloat=yes&handlekey=login&inajax=1&ajaxtarget=fwin_content_login',headers=headers)
chusihua = session.get('https://bbs.binmt.cc/member.php?mod=logging&action=login&infloat=yes&handlekey=login&inajax=1&ajaxtarget=fwin_content_login',headers=headers)
#print(re.findall('loginhash=(.*?)">', chusihua.text))
loginhash = re.findall('loginhash=(.*?)">', chusihua.text)[0]
formhash = re.findall('formhash" value="(.*?)".*? />', chusihua.text)[0]
denurl = f'https://bbs.binmt.cc/member.php?mod=logging&action=login&loginsubmit=yes&handlekey=login&loginhash={loginhash}&inajax=1'
data = {'formhash': formhash,'referer': 'https://bbs.binmt.cc/forum.php','loginfield': 'username','username': username,'password': password,'questionid': '0','answer': '',}
denlu = session.post(headers=headers, url=denurl, data=data).text
#print(denlu)
if '欢迎您回来' in denlu:
#获取分组、名字
fzmz = re.findall('欢迎您回来,(.*?),现在', denlu)[0]
print(f'{fzmz}:登录成功')
#获取formhash
zbqd = session.get('https://bbs.binmt.cc/k_misign-sign.html', headers=headers).text
formhash = re.findall('formhash" value="(.*?)".*? />', zbqd)[0]
#签到
qdurl=f'https://bbs.binmt.cc/plugin.php?id=k_misign:sign&operation=qiandao&format=text&formhash={formhash}'
qd = session.get(url=qdurl, headers=headers).text
qdyz = re.findall('<root><(.*?)</root>', qd)[0]
print(f'签到状态:{qdyz}')
if '已签' in qd:
huoqu(formhash)
else:
print('登录失败')
def huoqu(formhash):
headers = {'User-Agent': ua}
huo = session.get('https://bbs.binmt.cc/k_misign-sign.html', headers=headers).text
pai = re.findall('您的签到排名:(.*?)</div>', huo)[0]
jiang = re.findall('id="lxreward" value="(.*?)">', huo)[0]
print(f'签到排名{pai},奖励{jiang}金币')
#退出登录,想要多用户必须,执行退出
tuic = f'https://bbs.binmt.cc/member.php?mod=logging&action=logout&formhash={formhash}'
session.get(url=tuic, headers=headers)
if __name__ == '__main__':
#账号
username = ''
#username.encode("utf-8")
#密码
password = ''
if 'mtluntan' in os.environ:
fen = os.environ.get("mtluntan").split("@")
print(f'查找到{len(fen)}个账号')
print('==================================')
for duo in fen:
username,password = duo.split("&")
try:
main(username,password)
print('============📣结束📣============')
except Exception as e:
raise e
else:
print('不存在青龙、github变量')
if username == '' or password == '':
print('本地账号密码为空')
exit()
else:
try:
main(username,password)
except Exception as e:
raise e