diff --git a/plugins/tgclient/startup/extend/client_change_username.py b/plugins/tgclient/startup/extend/client_change_username.py new file mode 100644 index 000000000..6b976cc3e --- /dev/null +++ b/plugins/tgclient/startup/extend/client_change_username.py @@ -0,0 +1,27 @@ +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 + + +def run(client): + print(client) + return '' + + +if __name__ == "__main__": + # print(isThisCmd('/?:', '/?:如何在安装面板')) + # print(getReadCmd('/?:', '/?:如何在安装面板')) + # print(searchHttpPage('mw')) + print(getFaqKw('寻找【mw】问题如下:')) diff --git a/plugins/tgclient/startup/extend/receive_faq.py b/plugins/tgclient/startup/extend/receive_faq.py deleted file mode 100644 index 0a9e7ab23..000000000 --- a/plugins/tgclient/startup/extend/receive_faq.py +++ /dev/null @@ -1,220 +0,0 @@ -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 - - -def isThisCmd(cmd, msg): - clen = len(cmd) - msg_len = len(msg) - if msg_len < clen: - return False - - check_msg = msg[0:clen] - if cmd == check_msg: - return True - return False - - -def getReadCmd(cmd, msg): - clen = len(cmd) - msg_len = len(msg) - real_msg = msg[clen:] - return real_msg - - -def getFaqKw(cmd): - matchObj = re.match(r'寻找【(.*?)】问题如下', cmd, re.M | re.I) - data = matchObj.groups() - if len(data) > 0: - return True, data[0] - return False, '' - - -def searchHttpPage(kw='', p=1, size=1): - import urllib - kw = kw.strip() - kw = urllib.parse.quote_plus(kw) - - api = 'https://bbs.midoks.me/plugin.php?id=external_api&f=bbs_search&q=' + kw + \ - '&size=' + str(size) + '&p=' + str(p) - - # print('url', api) - data = mw.httpGet(api) - # print(data) - data = json.loads(data) - # print(data) - if data['code'] > -1: - - alist = data['data']['list'] - r = [] - for x in alist: - tmp = {} - tmp['tid'] = x['tid'] - tmp['subject'] = x['subject'] - tmp['url'] = 'https://bbs.midoks.me/thread-' + \ - x['tid'] + '-1-1.html' - r.append(tmp) - data['data']['list'] = r - return data - - -def searchFaq(bot, message, cmd_text): - # cmd_text = 'mw' - data = searchHttpPage(cmd_text, 1, 5) - if data['code'] == 0 and len(data['data']['list']) > 0: - keyboard = [] - - dlist = data['data']['list'] - for x in dlist: - keyboard.append([types.InlineKeyboardButton( - text=x['subject'], url=x['url'])]) - - keyboard.append([ - types.InlineKeyboardButton( - text="下一页", callback_data='bbs_next_page_2'), - types.InlineKeyboardButton( - text="第" + str(data['data']['p']) + "页,共" + str(data['data']['page_num']) + "页", callback_data='bbs_page_total') - ]) - - keyboard.append([types.InlineKeyboardButton( - text="关闭消息", callback_data='bbs_search_close')]) - - # print(keyboard) - markup = types.InlineKeyboardMarkup(keyboard) - bot.send_message(message.chat.id, "寻找【" + - cmd_text.strip() + "】问题如下:", reply_markup=markup) - else: - keyboard = [ - [ - types.InlineKeyboardButton( - text="论坛", url='https://bbs.midoks.me'), - types.InlineKeyboardButton( - text="搜索", url='https://bbs.midoks.me/search.php') - ], - [ - types.InlineKeyboardButton( - text="关闭消息", callback_data='bbs_search_close') - ] - - ] - markup = types.InlineKeyboardMarkup(keyboard) - bot.send_message( - message.chat.id, "未找到合适内容,请在官方论坛[bbs.midoks.me]提问!", reply_markup=markup) - - return True - - -def searchDebug(bot, message, cmd_text): - searchFaq(bot, message, cmd_text) - return True - - -def answer_callback_query(bot, call): - - keyword = call.data - - if keyword == 'bbs_search_close': - bot.delete_message(chat_id=call.message.chat.id, - message_id=call.message.message_id) - return - - is_bbs_page = False - p = 1 - if keyword.startswith('bbs_next_page'): - is_bbs_page = True - p = keyword.replace('bbs_next_page_', '') - - if keyword.startswith('bbs_pre_page'): - is_bbs_page = True - p = keyword.replace('bbs_pre_page_', '') - - # print("p", p) - if is_bbs_page: - is_match, cmd_text = getFaqKw(call.message.text) - if not is_match: - bot.edit_message_text( - chat_id=call.message.chat.id, message_id=call.message.message_id, text="出现错误!") - return - - data = searchHttpPage(cmd_text, int(p), 5) - - dlist = data['data']['list'] - # print(data) - keyboard = [] - for x in dlist: - keyboard.append([types.InlineKeyboardButton( - text=x['subject'], url=x['url'])]) - - page_nav = [] - if int(data['data']['p']) > 1: - page_nav.append(types.InlineKeyboardButton( - text="上一页", callback_data='bbs_pre_page_' + str(int(p) - 1))) - - if data['data']['page_num'] != data['data']['p']: - page_nav.append(types.InlineKeyboardButton( - text="下一页", callback_data='bbs_next_page_' + str(int(p) + 1))) - - page_nav.append(types.InlineKeyboardButton( - text="第" + str(data['data']['p']) + "页,共" + str(data['data']['page_num']) + "页", callback_data='bbs_page_total')) - - keyboard.append(page_nav) - - keyboard.append([types.InlineKeyboardButton( - text="关闭消息", callback_data='bbs_search_close')]) - - markup = types.InlineKeyboardMarkup(keyboard) - bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, - text=call.message.text, reply_markup=markup) - - -def run(bot, message): - text_body = message.text - - # 过滤URL - is_has_url = re.search( - '(https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]', text_body) - if is_has_url: - return bot - - # print(text_body) - if isThisCmd('/faq:', text_body): - cmd_text = getReadCmd('/faq:', text_body) - return searchFaq(bot, message, cmd_text) - - # if isThisCmd('/debug', text_body): - # cmd_text = getReadCmd('/debug', text_body) - # return searchDebug(bot, message, cmd_text) - - if text_body.find('?') > -1 or text_body.find('?') > -1: - return_msg = "你似乎在寻找【" + text_body + "】答案:\n" - return_msg += "/faq:开始寻找你的问题\n" - keyboard = [ - [ - types.InlineKeyboardButton( - text="如未找到,可以在论坛补充你的提问!", url='https://bbs.midoks.me'), - ] - - ] - markup = types.InlineKeyboardMarkup(keyboard) - bot.reply_to(message, return_msg, reply_markup=markup) - - return bot - - -if __name__ == "__main__": - # print(isThisCmd('/?:', '/?:如何在安装面板')) - # print(getReadCmd('/?:', '/?:如何在安装面板')) - # print(searchHttpPage('mw')) - print(getFaqKw('寻找【mw】问题如下:')) diff --git a/plugins/tgclient/startup/tgclient.py b/plugins/tgclient/startup/tgclient.py index 52ad29bd2..ec4301289 100644 --- a/plugins/tgclient/startup/tgclient.py +++ b/plugins/tgclient/startup/tgclient.py @@ -12,7 +12,7 @@ import asyncio import logging # python /Users/midoks/Desktop/mwdev/server/tgclient/tgclient.py -# python /www/server/tgclient/tgclient.py +# cd /www/server/mdserver-web && python3 /www/server/tgclient/tgclient.py from telethon import TelegramClient @@ -97,15 +97,28 @@ while True: client = TelegramClient('mdioks', cfg['bot']['api_id'], cfg['bot']['api_hash']) async def change_name_auto(): - print('will change name') - await asyncio.sleep(1) + while True: + print('will change name') + await asyncio.sleep(1) + + +async def plugins_run(): + init_list = getStartExtCfgByTag('client') + for p in init_list: + try: + script = p['name'].split('.')[0] + __import__(script).init(client) + except Exception as e: + writeLog('-----init error start -------') + writeLog(mw.getTracebackInfo()) + writeLog('-----init error end -------') async def main(loop): await client.start() # create new task - print('creating task') - task = loop.create_task(change_name_auto()) + print('creating plugins_run task') + task = loop.create_task(plugins_run()) await task print('It works.')