39 lines
1.6 KiB
Python
39 lines
1.6 KiB
Python
import asyncio
|
|
import ujson as json
|
|
import random
|
|
import traceback
|
|
|
|
from core.loader.decorator import command
|
|
from core.logger import Logger
|
|
from core.scheduler import Scheduler
|
|
from core.utils import get_url
|
|
from core.elements import FetchTarget
|
|
from core.dirty_check import check
|
|
|
|
from modules.utils.UTC8 import UTC8
|
|
|
|
from database import BotDBUtil
|
|
|
|
@command('__check_newbie__', need_superuser=True, autorun=True)
|
|
async def newbie(bot: FetchTarget):
|
|
Logger.info('Subbot newbie launched')
|
|
url = 'https://minecraft.fandom.com/zh/api.php?action=query&list=logevents&letype=newusers&format=json'
|
|
file = json.loads(await get_url(url))
|
|
qq = []
|
|
for x in file['query']['logevents'][:]:
|
|
qq.append(x['title'])
|
|
@Scheduler.scheduled_job('interval', seconds=60)
|
|
async def check_newbie():
|
|
qqqq = json.loads(await get_url(url))
|
|
for xz in qqqq['query']['logevents'][:]:
|
|
if xz['title'] not in qq:
|
|
s = await check(UTC8(xz['timestamp'], 'onlytime') + '新增新人:\n' + xz['title'])
|
|
if s.find("<吃掉了>") != -1 or s.find("<全部吃掉了>") != -1:
|
|
s = s + '\n检测到外来信息介入,请前往日志查看所有消息。' \
|
|
'https://minecraft.fandom.com/zh/wiki/Special:%E6%97%A5%E5%BF%97?type=newusers'
|
|
for x in BotDBUtil.Module.get_enabled_this('__check_newbie__'):
|
|
fetch = await bot.fetch_target(x)
|
|
if fetch:
|
|
await fetch.sendMessage(s)
|
|
await asyncio.sleep(random.randint(1, 5))
|
|
qq.append(xz['title'])
|