diff --git a/plugins/tgclient/ico.png b/plugins/tgclient/ico.png deleted file mode 100644 index 9416145b2..000000000 Binary files a/plugins/tgclient/ico.png and /dev/null differ diff --git a/plugins/tgclient/index.html b/plugins/tgclient/index.html deleted file mode 100755 index 77da84f68..000000000 --- a/plugins/tgclient/index.html +++ /dev/null @@ -1,27 +0,0 @@ -
-
-
-
-

服务

-

自启动

-

配置

-

扩展列表

-

日志

-

说明

-
-
-
-
-
-
- - \ No newline at end of file diff --git a/plugins/tgclient/index.py b/plugins/tgclient/index.py deleted file mode 100755 index ec2eb7238..000000000 --- a/plugins/tgclient/index.py +++ /dev/null @@ -1,375 +0,0 @@ -# coding:utf-8 - -import sys -import io -import os -import time -import re -import json -import base64 - -web_dir = os.getcwd() + "/web" -if os.path.exists(web_dir): - sys.path.append(web_dir) - os.chdir(web_dir) - -import core.mw as mw - -app_debug = False -if mw.isAppleSystem(): - app_debug = True - - -def getPluginName(): - return 'tgclient' - - -def getPluginDir(): - return mw.getPluginDir() + '/' + getPluginName() - - -def getServerDir(): - return mw.getServerDir() + '/' + getPluginName() - - -def getInitDFile(): - if app_debug: - return '/tmp/' + getPluginName() - return '/etc/init.d/' + getPluginName() - - -def getConfigData(): - cfg_path = getServerDir() + "/data.cfg" - if not os.path.exists(cfg_path): - mw.writeFile(cfg_path, '{}') - t = mw.readFile(cfg_path) - return json.loads(t) - - -def writeConf(data): - cfg_path = getServerDir() + "/data.cfg" - mw.writeFile(cfg_path, json.dumps(data)) - return True - - -def getExtCfg(): - cfg_path = getServerDir() + "/extend.cfg" - if not os.path.exists(cfg_path): - mw.writeFile(cfg_path, '{}') - t = mw.readFile(cfg_path) - return json.loads(t) - - -def writeExtCfg(data): - cfg_path = getServerDir() + "/extend.cfg" - return mw.writeFile(cfg_path, json.dumps(data)) - - -def getInitDTpl(): - path = getPluginDir() + "/init.d/" + getPluginName() + ".tpl" - return path - - -def getArgs(): - args = sys.argv[2:] - tmp = {} - args_len = len(args) - if args_len == 1: - t = args[0].strip('{').strip('}') - if t.strip() == '': - tmp = [] - else: - t = t.split(':') - tmp[t[0]] = t[1] - tmp[t[0]] = t[1] - elif args_len > 1: - for i in range(len(args)): - t = args[i].split(':') - tmp[t[0]] = t[1] - return tmp - - -def checkArgs(data, ck=[]): - for i in range(len(ck)): - if not ck[i] in data: - return (False, mw.returnJson(False, '参数:(' + ck[i] + ')没有!')) - return (True, mw.returnJson(True, 'ok')) - - -def status(): - data = mw.execShell( - "ps -ef|grep tgclient |grep -v grep | grep -v mdserver-web | awk '{print $2}'") - if data[0] == '': - return 'stop' - return 'start' - - -def initDreplace(): - - file_tpl = getInitDTpl() - service_path = mw.getServerDir() - app_path = service_path + '/' + getPluginName() - - initD_path = getServerDir() + '/init.d' - if not os.path.exists(initD_path): - os.mkdir(initD_path) - file_bin = initD_path + '/' + getPluginName() - - # initd replace - # if not os.path.exists(file_bin): - content = mw.readFile(file_tpl) - content = content.replace('{$SERVER_PATH}', service_path + '/mdserver-web') - content = content.replace('{$APP_PATH}', app_path) - - mw.writeFile(file_bin, content) - mw.execShell('chmod +x ' + file_bin) - - pyMainTplContent = mw.readFile(getPluginDir() + '/startup/tgclient.py') - toPyMainPath = mw.getServerDir() + '/tgclient.py' - mw.writeFile(toPyMainPath, pyMainTplContent) - - # systemd - systemDir = mw.systemdCfgDir() - systemService = systemDir + '/tgclient.service' - systemServiceTpl = getPluginDir() + '/init.d/tgclient.service.tpl' - if os.path.exists(systemDir) and not os.path.exists(systemService): - service_path = mw.getServerDir() - se_content = mw.readFile(systemServiceTpl) - se_content = se_content.replace('{$APP_PATH}', app_path) - mw.writeFile(systemService, se_content) - mw.execShell('systemctl daemon-reload') - - return file_bin - - -def tbOp(method): - file = initDreplace() - - if not mw.isAppleSystem(): - data = mw.execShell('systemctl ' + method + ' ' + getPluginName()) - if data[1] == '': - return 'ok' - return data[1] - - data = mw.execShell(file + ' ' + method) - # print(data) - if data[1] == '': - return 'ok' - return 'ok' - - -def start(): - return tbOp('start') - - -def stop(): - return tbOp('stop') - - -def restart(): - status = tbOp('restart') - return status - - -def reload(): - - tgbot_tpl = getPluginDir() + '/startup/tgclient.py' - tgbot_dst = getServerDir() + '/tgclient.py' - - content = mw.readFile(tgbot_tpl) - mw.writeFile(tgbot_dst, content) - - ext_src = getPluginDir() + '/startup/extend' - ext_dst = getServerDir() - - mw.execShell('cp -rf ' + ext_src + ' ' + ext_dst) - - return tbOp('restart') - - -def initdStatus(): - if mw.isAppleSystem(): - return "Apple Computer does not support" - - shell_cmd = 'systemctl status ' + \ - getPluginName() + ' | grep loaded | grep "enabled;"' - data = mw.execShell(shell_cmd) - if data[0] == '': - return 'fail' - return 'ok' - - -def initdInstall(): - if mw.isAppleSystem(): - return "Apple Computer does not support" - - mw.execShell('systemctl enable ' + getPluginName()) - return 'ok' - - -def initdUinstall(): - if mw.isAppleSystem(): - return "Apple Computer does not support" - - mw.execShell('systemctl disable ' + getPluginName()) - return 'ok' - - -def getClientConf(): - data = getConfigData() - if 'bot' in data: - return mw.returnJson(True, 'ok', data['bot']) - return mw.returnJson(False, 'ok', {}) - - -def setClientConf(): - args = getArgs() - data_args = checkArgs(args, ['api_id', 'api_hash']) - if not data_args[0]: - return data_args[1] - - data = getConfigData() - args['api_id'] = base64.b64decode(args['api_id']).decode('ascii') - args['api_hash'] = base64.b64decode(args['api_hash']).decode('ascii') - data['bot'] = args - writeConf(data) - - return mw.returnJson(True, '保存成功!', []) - - -def installPreInspection(): - i = sys.version_info - if i[0] < 3 or i[1] < 7: - return "telebot在python小于3.7无法正常使用" - return 'ok' - - -def uninstallPreInspection(): - stop() - return "请手动删除
rm -rf {}".format(getServerDir()) - - -def getExtCfgByName(name): - elist = getExtCfg() - for x in elist: - if x['name'] == name: - return x - return None - - -def clientExtList(): - - args = getArgs() - data_args = checkArgs(args, ['p']) - if not data_args[0]: - return data_args[1] - - ext_path = getServerDir() + '/extend' - if not os.path.exists(ext_path): - return mw.returnJson(False, 'ok', []) - elist_source = os.listdir(ext_path) - - elist = [] - for e in elist_source: - if e.endswith('py'): - elist.append(e) - - page = int(args['p']) - page_size = 5 - - make_ext_list = [] - for ex in elist: - tmp = {} - tmp['name'] = ex - edata = getExtCfgByName(ex) - if edata: - tmp['status'] = edata['status'] - else: - tmp['status'] = 'stop' - - tmp['tag'] = ex.split('_')[0] - make_ext_list.append(tmp) - - writeExtCfg(make_ext_list) - dlist_sum = len(make_ext_list) - - page_start = int((page - 1) * page_size) - page_end = page_start + page_size - - if page_end >= dlist_sum: - ret_data = make_ext_list[page_start:] - else: - ret_data = make_ext_list[page_start:page_end] - - data = {} - data['data'] = ret_data - data['args'] = args - data['list'] = mw.getPage( - {'count': dlist_sum, 'p': page, 'row': page_size, 'tojs': 'botExtListP'}) - - return mw.returnJson(True, 'ok', data) - - -def setExtStatus(): - args = getArgs() - data_args = checkArgs(args, ['name', 'status']) - if not data_args[0]: - return data_args[1] - - elist = getExtCfg() - name = args['name'] - status = args['status'] - for x in range(len(elist)): - if elist[x]['name'] == name: - elist[x]['status'] = status - break - - writeExtCfg(elist) - - action = '开启' - if status == 'stop': - action = '关闭' - - return mw.returnJson(True, action + '[' + name + ']扩展成功') - - -def runLog(): - p = getServerDir() + '/task.log' - return p - - -if __name__ == "__main__": - func = sys.argv[1] - if func == 'status': - print(status()) - elif func == 'start': - print(start()) - elif func == 'stop': - print(stop()) - elif func == 'restart': - print(restart()) - elif func == 'reload': - print(reload()) - elif func == 'initd_status': - print(initdStatus()) - elif func == 'initd_install': - print(initdInstall()) - elif func == 'initd_uninstall': - print(initdUinstall()) - elif func == 'install_pre_inspection': - print(installPreInspection()) - elif func == 'uninstall_pre_inspection': - print(uninstallPreInspection()) - elif func == 'get_client_conf': - print(getClientConf()) - elif func == 'set_client_conf': - print(setClientConf()) - elif func == 'client_ext_list': - print(clientExtList()) - elif func == 'set_ext_status': - print(setExtStatus()) - elif func == 'run_log': - print(runLog()) - - else: - print('error') diff --git a/plugins/tgclient/info.json b/plugins/tgclient/info.json deleted file mode 100755 index 76bd12c43..000000000 --- a/plugins/tgclient/info.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "sort": 7, - "ps": "简单Telegram客服端管理", - "name": "tgclient", - "title": "tgclient", - "shell": "install.sh", - "versions":["1.1"], - "tip": "soft", - "checks": "server/tgclient", - "path": "server/tgclient", - "install_pre_inspection":true, - "uninstall_pre_inspection":true, - "display": 1, - "author": "midoks", - "date": "2023-03-06", - "home": "https://my.telegram.org/apps", - "depend_doc1":"https://docs.telethon.dev/en/stable/basic/installation.html", - "type": 0, - "pid": "5" -} \ No newline at end of file diff --git a/plugins/tgclient/init.d/tgclient.service.tpl b/plugins/tgclient/init.d/tgclient.service.tpl deleted file mode 100644 index 4edee4e7e..000000000 --- a/plugins/tgclient/init.d/tgclient.service.tpl +++ /dev/null @@ -1,14 +0,0 @@ -[Unit] -Description=Tgbot Service -After=network.target - -[Service] -Type=forking -ExecStart={$APP_PATH}/init.d/tgclient start -ExecStop={$APP_PATH}/init.d/tgclient stop -ExecReload={$APP_PATH}/init.d/tgclient reload -KillMode=process -Restart=on-failure - -[Install] -WantedBy=multi-user.target \ No newline at end of file diff --git a/plugins/tgclient/init.d/tgclient.tpl b/plugins/tgclient/init.d/tgclient.tpl deleted file mode 100644 index 01d4da046..000000000 --- a/plugins/tgclient/init.d/tgclient.tpl +++ /dev/null @@ -1,86 +0,0 @@ -#!/bin/sh -# chkconfig: 2345 55 25 -# description: Tgbot Service - -### BEGIN INIT INFO -# Provides: Tgbot -# Required-Start: $all -# Required-Stop: $all -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: starts Tgbot -# Description: starts the MDW-Web -### END INIT INFO - -# Simple Tgbot init.d script conceived to work on Linux systems -# as it does use of the /proc filesystem. - -PATH=/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin -export LANG=en_US.UTF-8 - - -mw_path={$SERVER_PATH} -PATH=$PATH:$mw_path/bin - -if [ -f $mw_path/bin/activate ];then - source $mw_path/bin/activate -fi - -tg_start(){ - - isStart=`ps -ef|grep 'tgclient.py' |grep -v grep | awk '{print $2}'` - if [ "$isStart" == '' ];then - echo -e "starting tgclient... \c" - cd $mw_path - echo "python3 {$APP_PATH}/tgclient.py" - python3 {$APP_PATH}/tgclient.py >> {$APP_PATH}/task.log & - isStart="" - while [[ "$isStart" == "" ]]; - do - echo -e ".\c" - sleep 0.5 - isStart=`ps -ef|grep 'tgclient.py' |grep -v grep | awk '{print $2}'` - let n+=1 - if [ $n -gt 20 ];then - break; - fi - done - if [ "$isStart" == '' ];then - echo -e "\033[31mfailed\033[0m" - echo -e "\033[31mError: tgclient service startup failed.\033[0m" - return; - fi - echo -e "\033[32mdone\033[0m" - else - echo "starting tgclient...(pid $(echo $isStart)) already running" - fi -} - - -tg_stop(){ - echo -e "stopping tgclient ... \c"; - arr=`ps -ef|grep 'tgclient.py'|grep -v grep|awk '{print $2}'` - for p in ${arr[@]} - do - kill -9 $p > /dev/null 2>&1 - done - echo -e "\033[32mdone\033[0m" -} - -case "$1" in - start) - tg_start - ;; - stop) - tg_stop - ;; - restart|reload) - tg_stop - sleep 0.3 - tg_start - ;; - *) - echo "Please use start or stop as first argument" - ;; -esac - diff --git a/plugins/tgclient/install.sh b/plugins/tgclient/install.sh deleted file mode 100755 index 6757ba902..000000000 --- a/plugins/tgclient/install.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/bash -PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin -export PATH - -curPath=`pwd` -rootPath=$(dirname "$curPath") -rootPath=$(dirname "$rootPath") -serverPath=$(dirname "$rootPath") - -VERSION=$2 - -# pip3 install ccxt -if [ -f ${rootPath}/bin/activate ];then - source ${rootPath}/bin/activate -fi - -pip3 install telethon - -Install_App() -{ - echo '正在安装脚本文件...' - mkdir -p $serverPath/source - mkdir -p $serverPath/tgclient - echo "${VERSION}" > $serverPath/tgclient/version.pl - - cp -rf ${rootPath}/plugins/tgclient/startup/* $serverPath/tgclient - - cd ${rootPath} && python3 ${rootPath}/plugins/tgclient/index.py start - cd ${rootPath} && python3 ${rootPath}/plugins/tgclient/index.py initd_install - echo '安装完成' -} - -Uninstall_App() -{ - if [ -f /usr/lib/systemd/system/tgclient.service ];then - systemctl stop tgclient - systemctl disable tgclient - rm -rf /usr/lib/systemd/system/tgclient.service - systemctl daemon-reload - fi - - if [ -f $serverPath/tgclient/initd/tgclient ];then - $serverPath/tgclient/initd/tgclient stop - fi - - rm -rf $serverPath/tgclient - echo "Uninstall_redis" -} - -action=$1 -if [ "${1}" == 'install' ];then - Install_App -else - Uninstall_App -fi diff --git a/plugins/tgclient/js/tgclient.js b/plugins/tgclient/js/tgclient.js deleted file mode 100755 index 39b11fac1..000000000 --- a/plugins/tgclient/js/tgclient.js +++ /dev/null @@ -1,163 +0,0 @@ -function readme(){ - var readme = ''; - $('.soft-man-con').html(readme); -} - -function appPost(method, args,callback){ - var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 }); - - var req_data = {}; - req_data['name'] = 'tgclient'; - req_data['func'] = method; - - if (typeof(args) == 'string'){ - req_data['args'] = JSON.stringify(toArrayObject(args)); - } else { - req_data['args'] = JSON.stringify(args); - } - - $.post('/plugins/run', req_data, function(data) { - layer.close(loadT); - if(typeof(callback) == 'function'){ - callback(data); - } - },'json'); -} - -function appPostCallbak(method, args,callback){ - var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 }); - - var req_data = {}; - req_data['name'] = 'tgclient'; - req_data['func'] = method; - - if (typeof(args) == 'string'){ - req_data['args'] = JSON.stringify(toArrayObject(args)); - } else { - req_data['args'] = JSON.stringify(args); - } - - $.post('/plugins/callback', req_data, function(data) { - layer.close(loadT); - if (!data.status){ - layer.msg(data.msg,{icon:0,time:2000,shade: [0.3, '#000']}); - return; - } - - if(typeof(callback) == 'function'){ - callback(data); - } - },'json'); -} - -function clientConf(){ - appPost('get_client_conf','',function(data){ - var rdata = $.parseJSON(data.data); - var api_id = 'api_id'; - var api_hash = 'api_hash'; - if(rdata['status']){ - db_data = rdata['data']; - - // api_id, api_hash - api_id = db_data['api_id']; - api_hash = db_data['api_hash']; - - } - - var mlist = ''; - mlist += '

api_id必填写

'; - mlist += '

api_hash必填写

'; - var option = '\ -
\ - ' + mlist + '\ -
\ - \ -
\ -
'; - $(".soft-man-con").html(option); - }); -} - -function submitBotConf(){ - var pull_data = {}; - pull_data['api_id'] = base64_encode($('input[name="api_id"]').val()); - pull_data['api_hash'] = base64_encode($('input[name="api_hash"]').val()); - appPost('set_client_conf',pull_data,function(data){ - var rdata = $.parseJSON(data.data); - layer.msg(rdata['msg'],{icon:rdata['status']?1:2,time:2000,shade: [0.3, '#000']}); - }); -} - - -function botExtList(){ - var body = '
\ - \ - \ - \ - \ - \ - \ - \ - \ - \ -
脚本类型状态
\ - \ -
'; - $('.soft-man-con').html(body); - botExtListP(1); -} - -function setBotExtStatus(name,status){ - appPost('set_ext_status',{'name':name,'status':status}, function(rdata){ - var rdata = $.parseJSON(rdata.data); - layer.msg(rdata['msg'],); - showMsg(rdata['msg'], function(){ - botExtListP(1); - },{icon:rdata['status']?1:2,shade: [0.3, '#000']},2000); - }); -} - -function botExtListP(p=1){ - appPost('client_ext_list',{'p':p}, function(rdata){ - // console.log(rdata); - var rdata = $.parseJSON(rdata.data); - // console.log(rdata); - var tBody = ''; - - if (!rdata.status && rdata.data.length == 0 ){ - var tBody = '
无数据
'; - } else{ - var ldata = rdata.data.data; - for (var i = 0; i < ldata.length; i++) { - tBody += '' - tBody += ''+ldata[i]['name']+''; - tBody += ''+ldata[i]['tag']+''; - - if (ldata[i]['status'] == 'start'){ - tBody += ''; - } else{ - tBody += ''; - } - tBody +=''; - } - } - - $('#ext_list').html(tBody); - $('#ext_list_page').html(rdata.data.list); - - $('#ext_list .ext_status').click(function(){ - var name = $(this).parent().parent().data('name'); - var status = 'stop'; - if ($(this).hasClass('glyphicon-pause')){ - status = 'start'; - } - setBotExtStatus(name,status); - }); - }); -} diff --git a/plugins/tgclient/startup/extend/client_ad.py b/plugins/tgclient/startup/extend/client_ad.py deleted file mode 100644 index 52a18e486..000000000 --- a/plugins/tgclient/startup/extend/client_ad.py +++ /dev/null @@ -1,97 +0,0 @@ -# coding:utf-8 - -# func: 在其他发送推送AD -# url: https://docs.telethon.dev/en/stable/modules/client.html -import sys -import io -import os -import time -import re -import json -import base64 -import threading -import asyncio - -sys.path.append(os.getcwd() + "/class/core") -import mw - -from telethon import utils -from telethon import functions, types -from telethon.tl.functions.messages import AddChatUserRequest -from telethon.tl.functions.channels import InviteToChannelRequest -# 指定群ID -chat_id_list = [-1001578009023] -filter_g_id = [-1001771526434] - - -msg_ad = "本人软件推广(10s)\n\n" -msg_ad += "开源Linux面板【mdserver-web】,站长必备,无毒,源码为证。\n" -msg_ad += "不收费,全靠TG乞讨! \n" -msg_ad += "看个人简介,加入群聊,一起进步!\n" -# msg_ad += "https://github.com/midoks/mdserver-web \n" -# msg_ad += "\n" -# msg_ad += "加入群聊,一起进步! \n" -# msg_ad += "https://t.me/mdserver_web \n" -# msg_ad += "不收费,无毒。源码为证。全靠TG乞讨!😭\n\n" -# msg_ad += "捐赠地址 USDT(TRC20)\n" -# msg_ad += "TVbNgrpeGBGZVm5gTLa21ADP7RpnPFhjya\n" -# msg_ad += "日行一善,以后必定大富大贵\n" - - -async def writeLog(log_str): - if __name__ == "__main__": - print(log_str) - - now = mw.getDateFromNow() - log_file = mw.getServerDir() + '/tgclient/task.log' - mw.writeFileLog(now + ':' + log_str, log_file, limit_size=5 * 1024) - return True - -async def send_msg(client, chat_id, tag='ad', trigger_time=600): - # 信号只在一个周期内执行一次|start - lock_file = mw.getServerDir() + '/tgclient/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 - - msg = await client.send_message(chat_id, msg_ad) - await asyncio.sleep(10) - await client.delete_messages(chat_id, msg) - await asyncio.sleep(3) - -async def run(client): - client.parse_mode = 'html' - # for chat_id in chat_id_list: - # await send_msg(client, chat_id) - # await asyncio.sleep(30) - - info = await client.get_dialogs() - for chat in info: - if chat.is_group and not chat.id in filter_g_id: - chat_id = str(chat.id) - if chat_id[0:4] != '-100': - continue - - # print(chat) - await writeLog('name:{0} id:{1} is_user:{2} is_channel:{3} is_group:{4}'.format( - chat.name, chat.id, chat.is_user, chat.is_channel, chat.is_group)) - try: - await send_msg(client, chat.id, 'ad_' + str(chat.id)) - except Exception as e: - await writeLog(str(chat)) - await writeLog(str(e)) - - -if __name__ == "__main__": - pass diff --git a/plugins/tgclient/startup/extend/client_check_member.py b/plugins/tgclient/startup/extend/client_check_member.py deleted file mode 100644 index 3593c5396..000000000 --- a/plugins/tgclient/startup/extend/client_check_member.py +++ /dev/null @@ -1,69 +0,0 @@ -# coding:utf-8 - -# func: 自动检测已经注销群成员 - -import sys -import io -import os -import time -import re -import json -import base64 -import threading -import asyncio - -sys.path.append(os.getcwd() + "/class/core") -import mw - -import telebot -from telebot import types -from telebot.util import quick_markup - - -# 指定群ID -chat_id_list = [-1001979545570] -# 别人群ID[有API调用限制] -chat_id_list_other = [-1001578009023, -1001771526434] - -async def writeLog(log_str): - if __name__ == "__main__": - print(log_str) - - now = mw.getDateFromNow() - log_file = mw.getServerDir() + '/tgclient/task.log' - mw.writeFileLog(now + ':' + log_str, log_file, limit_size=5 * 1024) - return True - -async def run(client): - for chat_id in chat_id_list: - try: - s = await client.send_message(chat_id, '开始自动检测已经注销群成员...') - count = 0 - async for user in client.iter_participants(chat_id): - if user.deleted: - count += 1 - msg = await client.kick_participant(chat_id, user) - - await client.edit_message(chat_id, s.id, '已经检测到有(%d)个账户已失效' % (count)) - await asyncio.sleep(3) - await client.edit_message(chat_id, s.id, '自动检测已经注销群成员完毕!!!') - await asyncio.sleep(3) - await client.delete_messages(chat_id, s) - except Exception as e: - print(str(e)) - writeLog(str(e)) - - for chat_id in chat_id_list_other: - try: - async for user in client.iter_participants(chat_id): - if user.deleted: - msg = await client.kick_participant(chat_id, user) - except Exception as e: - print(str(e)) - writeLog(str(e)) - - await asyncio.sleep(300) - - -if __name__ == "__main__": - pass diff --git a/plugins/tgclient/startup/extend/client_holding.py b/plugins/tgclient/startup/extend/client_holding.py deleted file mode 100644 index 6950efeb9..000000000 --- a/plugins/tgclient/startup/extend/client_holding.py +++ /dev/null @@ -1,55 +0,0 @@ -# coding:utf-8 - -# func: 自动邀请群成员 - -import sys -import io -import os -import time -import re -import json -import base64 -import threading -import asyncio - -sys.path.append(os.getcwd() + "/class/core") -import mw - -from telethon import utils -from telethon import functions, types -from telethon.tl.functions.messages import AddChatUserRequest -from telethon.tl.functions.channels import InviteToChannelRequest -# 指定群ID -chat_id = -1001979545570 -filter_user_id = 5568699210 -filter_g_id = [-1001771526434] - - -async def run(client): - info = await client.get_dialogs() - for chat in info: - is_sleep = True - print('name:{0} id:{1} is_user:{2} is_channel:{3} is_group:{4}'.format( - chat.name, chat.id, chat.is_user, chat.is_channel, chat.is_group)) - if chat.is_group and chat.id != chat_id: - list_user = [] - async for user in client.iter_participants(chat.id): - if chat.id in filter_g_id: - is_sleep = False - continue - - if filter_user_id != user.id and user.username != None and user.bot == False: - list_user.append(user.username) - print(list_user) - try: - await client(InviteToChannelRequest( - channel=chat_id, # chat_id - users=list_user, # 被邀请人id - )) - except Exception as e: - print(str(e)) - if is_sleep: - await asyncio.sleep(90000) - -if __name__ == "__main__": - pass diff --git a/plugins/tgclient/startup/extend/client_temp.py b/plugins/tgclient/startup/extend/client_temp.py deleted file mode 100644 index 4071e77f0..000000000 --- a/plugins/tgclient/startup/extend/client_temp.py +++ /dev/null @@ -1,54 +0,0 @@ -# coding:utf-8 - -# func: 临时测试 - -import sys -import io -import os -import time -import re -import json -import base64 -import threading -import asyncio - -sys.path.append(os.getcwd() + "/class/core") -import mw - -from telethon import utils -from telethon import functions, types -from telethon.tl.functions.messages import AddChatUserRequest -from telethon.tl.functions.channels import InviteToChannelRequest -# 指定群ID -chat_id = -1001979545570 -filter_user_id = 5568699210 -filter_g_id = [-1001771526434] - - -async def run(client): - - my_channel = await client.get_entity(PeerChannel(-1001173826177)) - print(my_channel) - - for i in range(9999999999): - try: - v = -1001000000000 - i - my_channel = await client.get_entity(PeerChannel(v)) - print(my_channel) - except Exception as e: - pass - - # -1001809140739 - # -1001800000000 - # -1000000000001 - - info = await client.get_dialogs() - for chat in info: - if not chat.is_group and chat.is_channel: - print('name:{0} id:{1} is_user:{2} is_channel:{3} is_group:{4}'.format( - chat.name, chat.id, chat.is_user, chat.is_channel, chat.is_group)) - await asyncio.sleep(10) - - -if __name__ == "__main__": - pass diff --git a/plugins/tgclient/startup/extend/readme.md b/plugins/tgclient/startup/extend/readme.md deleted file mode 100755 index d52224d88..000000000 --- a/plugins/tgclient/startup/extend/readme.md +++ /dev/null @@ -1 +0,0 @@ -push_*.py 识别为推送插件 diff --git a/plugins/tgclient/startup/tgclient.py b/plugins/tgclient/startup/tgclient.py deleted file mode 100644 index 933ba7170..000000000 --- a/plugins/tgclient/startup/tgclient.py +++ /dev/null @@ -1,132 +0,0 @@ -# coding:utf-8 - -import sys -import io -import os -import time -import re -import json -import base64 -import threading -import asyncio -import logging - -# python /Users/midoks/Desktop/mwdev/server/tgclient/tgclient.py - -''' -cd /www/server/mdserver-web && source bin/activate && python3 /www/server/tgclient/tgclient.py -''' - -from telethon import TelegramClient - - -sys.path.append(os.getcwd() + "/class/core") -import mw - -logging.basicConfig(level=logging.INFO, - format='%(asctime)s - %(name)s - %(levelname)s - %(message)s') -logger = logging.getLogger(__name__) - - -def getPluginName(): - return 'tgclient' - - -def getPluginDir(): - return mw.getPluginDir() + '/' + getPluginName() - - -def getServerDir(): - return mw.getServerDir() + '/' + getPluginName() - - -sys.path.append(getServerDir() + "/extend") - - -def getConfigData(): - cfg_path = getServerDir() + "/data.cfg" - if not os.path.exists(cfg_path): - mw.writeFile(cfg_path, '{}') - t = mw.readFile(cfg_path) - return json.loads(t) - - -def writeConf(data): - cfg_path = getServerDir() + "/data.cfg" - mw.writeFile(cfg_path, json.dumps(data)) - return True - - -def getExtCfg(): - cfg_path = getServerDir() + "/extend.cfg" - if not os.path.exists(cfg_path): - mw.writeFile(cfg_path, '{}') - t = mw.readFile(cfg_path) - return json.loads(t) - - -def getStartExtCfgByTag(tag='push'): - # 获取开启的扩展 - elist = getExtCfg() - rlist = [] - for x in elist: - if x['tag'] == tag and x['status'] == 'start': - rlist.append(x) - return rlist - - -def writeLog(log_str): - if __name__ == "__main__": - print(log_str) - - now = mw.getDateFromNow() - log_file = getServerDir() + '/task.log' - mw.writeFileLog(now + ':' + log_str, log_file, limit_size=5 * 1024) - return True - - -# start tgbot -cfg = getConfigData() -while True: - cfg = getConfigData() - if 'bot' in cfg and 'api_id' in cfg['bot']: - if cfg['bot']['api_id'] != '' and cfg['bot']['api_id'] != 'api_id': - break - if cfg['bot']['api_hash'] != '' and cfg['bot']['api_hash'] != 'api_hash': - break - writeLog('等待输入配置,api_id') - time.sleep(3) - -client = TelegramClient('mdioks', cfg['bot']['api_id'], cfg['bot']['api_hash']) - -async def plugins_run_task(): - plist = getStartExtCfgByTag('client') - for p in plist: - try: - script = p['name'].split('.')[0] - await __import__(script).run(client) - except Exception as e: - writeLog('----- client error start -------') - writeLog(mw.getTracebackInfo()) - writeLog('----- client error end -------') - -async def plugins_run(): - while True: - await plugins_run_task() - time.sleep(1) - -async def main(loop): - await client.start() - - # create new task - writeLog('creating plugins_run task.') - task = loop.create_task(plugins_run()) - await task - - writeLog('It works.') - await client.run_until_disconnected() - task.cancel() - -if __name__ == '__main__': - loop = asyncio.get_event_loop() - loop.run_until_complete(main(loop))