首次提交

This commit is contained in:
2025-12-26 22:41:42 +08:00
commit 4a944316fe
143 changed files with 17550 additions and 0 deletions

View File

@@ -0,0 +1,81 @@
import requests
from bs4 import BeautifulSoup
from PIL import Image
import io
class AccountSpider:
def __init__(self):
self.base_url = "http://121.204.253.175:8088"
self.session = requests.Session()
# 设置默认请求头
self.session.headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
def get_verification_code(self,onlysave = False):
"""获取并保存验证码图片"""
code_url = f"{self.base_url}/code.asp"
response = self.session.get(code_url)
# 保存验证码图片
image = Image.open(io.BytesIO(response.content))
image.save('/bot/danding-bot/danding_bot/plugins/damo_balance/verification_code.png')
print("验证码图片已保存为 verification_code.png")
# 仅保存验证码图片
if onlysave:
return
# 等待用户输入验证码
return input("请输入验证码: ")
def login(self, username, password,v_code=""):
"""执行登录操作"""
# 获取验证码
if v_code:
verification_code = v_code
else:
verification_code = self.get_verification_code()
# 准备登录数据
login_data = {
'login_type': '0',
'f_user': username,
'f_code': password,
'codeOK': verification_code,
'Submit': '%C8%B7%B6%A8'
}
# 发送登录请求
login_url = f"{self.base_url}/login_result.asp"
response = self.session.post(login_url, data=login_data)
response.encoding = 'gb2312' # 设置正确的编码
# 检查登录是否成功 - 通过检查是否包含重定向到account.asp的脚本
if "window.location.href=\"account.asp\"" in response.text:
return True
return False
def get_balance(self):
"""获取账户余额"""
account_url = f"{self.base_url}/account.asp"
response = self.session.get(account_url)
response.encoding = 'gb2312' # 设置正确的编码
soup = BeautifulSoup(response.text, 'html.parser')
balance_text = soup.find_all('span', class_='red')[1].text
return float(balance_text)
def main():
# 账号密码配置
USERNAME = "xsllovemlj"
PASSWORD = "xsl1314520mlj"
spider = AccountSpider()
# 尝试登录
if spider.login(USERNAME, PASSWORD):
print("登录成功!")
balance = spider.get_balance()
print(f"账户余额:{balance}")
else:
print("登录失败,请检查账号密码或验证码是否正确")

View File

@@ -0,0 +1,81 @@
from nonebot import get_plugin_config, on_command
from nonebot.plugin import PluginMetadata
from nonebot.rule import to_me
from nonebot.adapters.onebot.v11 import Message,MessageEvent
from nonebot.params import ArgPlainText,CommandArg
from .config import Config
from nonebot.typing import T_State
from .AccountSpider import AccountSpider
from nonebot_plugin_saa import Text, Image, MessageFactory
import os
import random
import asyncio
__plugin_meta__ = PluginMetadata(
name="大漠余额查询",
description="查询大漠插件平台账户余额的插件",
usage="""
指令:
- 大漠余额
- 余额查询
权限:
仅限指定用户QQ1424473282使用
使用流程:
1. 发送"大漠余额""余额查询"指令
2. 机器人会返回验证码图片
3. 输入验证码完成查询
""",
config=Config,
)
config = get_plugin_config(Config)
spider = AccountSpider()
# 指令:大漠余额
check_balance = on_command("大漠余额", aliases={"余额查询"}, priority=5,block=True)
@check_balance.handle()
async def handle_first_receive(event: MessageEvent, state: T_State):
user_id = event.user_id
if user_id not in [1424473282]:
await asyncio.sleep(random.uniform(2, 3))
await check_balance.finish("你没有权限进行此操作")
global spider
spider = AccountSpider()
# 获取验证码并存储
spider.get_verification_code(True)
# 获取当前脚本所在目录的绝对路径
current_dir = os.path.dirname(__file__)
# 构造图片的绝对路径
image_path = os.path.join(current_dir, "verification_code.png")
# 发送图片
with open(image_path, "rb") as f:
image_bytes = f.read()
await asyncio.sleep(random.uniform(2, 3))
await MessageFactory([Text("请发送验证码图片中的内容进行验证:"),Image(image_bytes)]).send()
# 验证用户输入的验证码
@check_balance.got("captcha", prompt="请输入验证码:")
async def handle_captcha(event: MessageEvent, state: T_State, captcha: str = ArgPlainText("captcha")):
user_id = event.user_id
if user_id not in [1424473282]:
await asyncio.sleep(random.uniform(2, 3))
await check_balance.finish("你没有权限进行此操作")
# 账号密码配置
USERNAME = "xsllovemlj"
PASSWORD = "xsl1314520mlj"
global spider
if spider.login(USERNAME, PASSWORD, captcha):
print("登录成功!")
balance = spider.get_balance()
await asyncio.sleep(random.uniform(2, 3))
await check_balance.finish(f"大漠账户余额:{balance}")
else:
await asyncio.sleep(random.uniform(2, 3))
await check_balance.reject("获取失败、登录失败,请检查账号密码或验证码是否正确")

View File

@@ -0,0 +1,5 @@
from pydantic import BaseModel
class Config(BaseModel):
"""Plugin Config Here"""

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 B