mdserver-web/plugins/tgclient/startup/extend/client_ad.py

98 lines
3.0 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 += "捐赠地址 USDTTRC20\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