Serv00保活脚本

serv00抽奖那么多,来个自用的保活脚本,如果在serv里布置这个脚本,岂不是快哉?


```
import json
import asyncio
from playwright.async_api import async_playwright
from datetime import datetime, timedelta
import random
import requests
import os

TELEGRAM_BOT_TOKEN = “”
TELEGRAM_CHAT_ID = “”

def format_to_iso(date):
return date.strftime(‘%Y-%m-%d %H:%M:%S’)

async def delay_time(ms):
await asyncio.sleep(ms / 1000)

async def login(username, password, panel):
async with async_playwright() as p:
browser = await p.chromium.launch(headless=True)
page = await browser.new_page()
url = f’https://{panel}/login/?next=/’
await page.goto(url)
await page.fill(‘#id_username’, username)
await page.fill(‘#id_password’, password)
await page.click(‘#submit’)
await page.wait_for_selector(‘a[href=“/logout/”]’)
is_logged_in = await page.evaluate(‘’‘() => {
const logoutButton = document.querySelector(‘a[href=“/logout/”]’);
return logoutButton !== null;
}’‘’)
await browser.close()
return is_logged_in

async def main():
global message
message = ‘serv00&ct8自动化脚本运行\n’
accounts = [
{“username”: “”, “password”: “”, “panel”: “panel12.serv00.com”}
]
for account in accounts:
username = account[‘username’]
password = account[‘password’]
panel = account[‘panel’]
serviceName = ‘ct8’ if ‘ct8’ in panel else ‘serv00’
is_logged_in = await login(username, password, panel)
if is_logged_in:
now_utc = format_to_iso(datetime.utcnow())
now_beijing = format_to_iso(datetime.utcnow() + timedelta(hours=8))
success_message = f’{serviceName}账号 {username} 于北京时间 {now_beijing}(UTC时间 {now_utc})登录成功!’
message += success_message + ‘\n’
print(success_message)
else:
message += f’{serviceName}账号 {username} 登录失败,请检查{serviceName}账号和密码是否正确。\n’
print(f’{serviceName}账号 {username} 登录失败,请检查{serviceName}账号和密码是否正确。')

    delay = random.randint(1000, 8000)
    await delay_time(delay)
message += f'所有{serviceName}账号登录完成!'
await send_telegram_message(message)
print(f'所有{serviceName}账号登录完成!')

async def send_telegram_message(message):
url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage"
payload = {
‘chat_id’: TELEGRAM_CHAT_ID,
‘text’: message+“\n\n10秒后自动删除~”,
}
headers = {
‘Content-Type’: ‘application/json’
}
try:
response = requests.post(url, json=payload, headers=headers)
if response.status_code != 200:
print(f"发送消息到Telegram失败: {response.text}“)
return
message_id = response.json().get(‘result’, {}).get(‘message_id’)
if message_id:
await asyncio.sleep(10)
delete_url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/deleteMessage
delete_payload = {
‘chat_id’: TELEGRAM_CHAT_ID,
‘message_id’: message_id
}
delete_response = requests.post(delete_url, json=delete_payload, headers=headers)
if delete_response.status_code != 200:
print(f"删除消息失败: {delete_response.text}")

except Exception as e:
    print(f"发送消息到Telegram时出错: {e}")

if name == ‘main’:
asyncio.run(main())

```

@“u1888”#p96670 索然无味

[size=30][color=red]纯纯的技术贴,要支持!