mirror of
https://github.com/midoks/mdserver-web.git
synced 2026-10-18 23:45:52 +08:00
Create push_bbs_ntid.py
This commit is contained in:
@@ -0,0 +1,96 @@
|
||||
# coding:utf-8
|
||||
|
||||
import sys
|
||||
import io
|
||||
import os
|
||||
import time
|
||||
import re
|
||||
import json
|
||||
import base64
|
||||
import threading
|
||||
|
||||
sys.path.append(os.getcwd() + "/class/core")
|
||||
import mw
|
||||
|
||||
import telebot
|
||||
from telebot import types
|
||||
from telebot.util import quick_markup
|
||||
|
||||
# 推送最新的帖子
|
||||
|
||||
chat_id = -1001578009023
|
||||
# chat_id = 5568699210
|
||||
|
||||
|
||||
def get_newest_tid():
|
||||
|
||||
api_new = 'https://bbs.midoks.me/plugin.php?id=external_api&f=bbs_newest'
|
||||
api_next = 'https://bbs.midoks.me/plugin.php?id=external_api&f=bbs_next_tid&tid='
|
||||
|
||||
tid_push = mw.getServerDir() + '/tgbot/bbs_newest_push.json'
|
||||
|
||||
if not os.path.exists(tid_push):
|
||||
data = mw.httpGet(api_new)
|
||||
data = json.loads(data)
|
||||
if data['code'] == 0:
|
||||
tid = data['data'][0]['tid']
|
||||
mw.writeFile(tid_push, tid)
|
||||
return True, data['data'][0]
|
||||
|
||||
tid = mw.readFile(tid_push)
|
||||
data = mw.httpGet(api_next + tid)
|
||||
data = json.loads(data)
|
||||
if data['code'] == 0 and len(data['data']) > 1:
|
||||
# print(data)
|
||||
tid = data['data'][0]['tid']
|
||||
mw.writeFile(tid_push, tid)
|
||||
return True, data['data'][0]
|
||||
return False, None
|
||||
|
||||
|
||||
def send_msg(bot, tag='ad', trigger_time=300):
|
||||
# 信号只在一个周期内执行一次|start
|
||||
lock_file = mw.getServerDir() + '/tgbot/lock.json'
|
||||
if not os.path.exists(lock_file):
|
||||
mw.writeFile(lock_file, '{}')
|
||||
|
||||
lock_data = json.loads(mw.readFile(lock_file))
|
||||
if tag in lock_data:
|
||||
diff_time = time.time() - lock_data[tag]['do_time']
|
||||
if diff_time >= trigger_time:
|
||||
lock_data[tag]['do_time'] = time.time()
|
||||
else:
|
||||
return False, 0, 0
|
||||
else:
|
||||
lock_data[tag] = {'do_time': time.time()}
|
||||
mw.writeFile(lock_file, json.dumps(lock_data))
|
||||
# 信号只在一个周期内执行一次|end
|
||||
|
||||
yes, info = get_newest_tid()
|
||||
if yes:
|
||||
url = 'https://bbs.midoks.me/thread-' + info['tid'] + '-1-1.html'
|
||||
keyboard = [
|
||||
[
|
||||
types.InlineKeyboardButton(text=info['subject'], url=url)
|
||||
],
|
||||
[
|
||||
types.InlineKeyboardButton(
|
||||
text="论坛", url='https://bbs.midoks.me'),
|
||||
types.InlineKeyboardButton(
|
||||
text="搜索", url='https://bbs.midoks.me/search.php')
|
||||
]
|
||||
]
|
||||
markup = types.InlineKeyboardMarkup(keyboard)
|
||||
bot.send_message(
|
||||
chat_id, "由【" + info['author'] + "】发帖!", reply_markup=markup)
|
||||
|
||||
|
||||
def run(bot):
|
||||
send_msg(bot, 'push_bbs_newest_tid', 300)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# print(isThisCmd('/?:', '/?:如何在安装面板'))
|
||||
# print(getReadCmd('/?:', '/?:如何在安装面板'))
|
||||
# print(searchHttpPage('mw'))
|
||||
print(get_newest_tid())
|
||||
Reference in New Issue
Block a user