我对编程很陌生,但我一直在研究这段代码,终于有所收获。我正在使用 Telethon api 扫描 TG 组,然后对代码执行一些操作。
我的程序有一个主屏幕,在那里我接受输入,然后在返回主屏幕之前循环遍历函数。
第一次运行完美,但是当它回到主屏幕时,发生了 2 件事。
- 我得到协程从来没有等待过。
RuntimeWarning: coroutine 'UpdateMethods._run_until_disconnected' was
never awaited
client.run_until_disconnected()
RuntimeWarning: coroutine 'AuthMethods._start' was never awaited
client.start()
- 它在没有发生其他事件的情况下开始运行它之后的功能
实际的代码除了打印之外还有更多的功能,但我省略了这些,只是用打印代替,以了解它们在做什么,因为它们正在工作。
任何帮助是极大的赞赏。如果我的代码非常混乱,我提前道歉!
client = TelegramClient('anon', config['telegram_id'], config['telegram_hash'])
def mainScreen():
# Display Wallet / Buy Info
print('Wallets List')
print('------------')
for address in addresses:
print(address["wallet"] + ' | Amount to buy: '
+ str(address["amount"]) + ' | Current Balance : '
+ str(web3.fromWei(web3.eth.get_balance(address["wallet"]), 'ether')))
# Print Options
print('')
print('What do you want to do?')
print('-----------------------')
print('')
print('1) TG Scan')
print('')
input("Enter your answer: ")
scanTg1()
# Take input
def scanTg1():
print('')
if config['tgGroup'] == "":
group = input("Link to the TG: ")
else:
group = config['tgGroup']
print("Scanning : " + group)
@client.on(events.NewMessage(chats=group))
async def my_event_handler(event):
global handleNewMessage
if event.raw_text is not None and handleNewMessage == True:
if 'stealth' in event.raw_text.lower():
if '0x' in event.raw_text:
x = event.raw_text.split()
for string in x:
if '0x' in string:
start = string.index('0')
contract = Web3.toChecksumAddress(string[start:start+42].lower())
contractFound = await checkContract(contract)
if contractFound == True:
print("Contract Found: " + contract)
handleNewMessage = False
await buyTheToken(contract)
if contractFound == False:
if 't.me' in event.raw_text:
x = event.raw_text.split()
for string in x:
if 't.me' in string:
tgLink =x[x.index(string)]
print("Found " + tgLink)
await scanOldMessages(tgLink)
else:
print('*')
elif 't.me' in event.raw_text:
x = event.raw_text.split()
for string in x:
if 't.me' in string:
tgLink =x[x.index(string)]
print("Found " + tgLink)
await scanOldMessages(tgLink)
else:
print('*')
else:
print('*')
client.start()
client.run_until_disconnected()
async def buyTheToken(contract):
print("Bought the Token")
sellToken()
def sellToken():
print("Token sold")
mainScreen()