diff --git a/plugins/tgbot/startup/extend/push_bbs_ntid.py b/plugins/tgbot/startup/extend/push_bbs_ntid.py new file mode 100644 index 000000000..4c26e8ea1 --- /dev/null +++ b/plugins/tgbot/startup/extend/push_bbs_ntid.py @@ -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())