【问题标题】:discord one script run multiple times不和谐一个脚本运行多次
【发布时间】:2021-10-09 06:09:18
【问题描述】:

朋友们,我正在使用 python 制作一个不和谐的脚本,我必须使用不同的参数多次运行这个脚本,我正在尝试使用操作系统、线程、多处理。当我尝试使用这个仅适用于第一个数据的库时,它卡住了,我的代码在下面,请告诉我。

注意:- 我是以用户身份登录的。

CSV 文件演示

auth-token1,channel-id1-1,channelid1-2
auth-token2,channel-id2-1,channelid2-2
...
...

ma​​in.py

import os
import csv
from time import sleep
import threading
import multiprocessing
rows = []
with open('data.csv', 'r') as csvfile:
    # creating a csv reader object
    csvreader = csv.reader(csvfile)
    # extracting each data row one by one
    for row in csvreader:
        rows.append(row)

for _ in rows:
    li = _[1:]
    cmd = _[0]
    for i in li:
        cmd = cmd+" "+str(i)
    print(f'python3 script.py {cmd}')
    os.system(f'python3 script.py {cmd}')
    sleep(10)

script.py

import time
import os
import sys
from time import sleep
import os
from discord import Permissions, message
import discord
import logging
import sys

argumentList = sys.argv
print(argumentList[1:])
TOKEN_AUTH = argumentList[1]
os.environ['TZ'] = 'Asia/Kolkata'
time.tzset()

logging.basicConfig(handlers=[logging.FileHandler(filename="./discord.txt",
                                                encoding='utf-8', mode='a+')],
                    format="%(asctime)s %(name)s:%(levelname)s:%(message)s",
                    datefmt="%F %A %T",
                    level=logging.INFO)

channel = None
client = discord.Client()
ids = argumentList[2:]
sleep_time = 121
message = "enter your message"


@client.event
async def on_ready():
    global channel
    while True:
        for _ in ids:
            try:
                channel1 = client.get_channel(int(_))
                await channel1.send(message)
                logging.info('1')
                print('sleeping')
                sleep(sleep_time*60)
            except:
                client.run(TOKEN_AUTH, bot=False)

client.run(TOKEN_AUTH, bot=False)

【问题讨论】:

    标签: python python-3.x discord.py


    【解决方案1】:

    使用 bot=False 或称为自我机器人(用户)是违反 Discord TOS 的

    我要说的是 d.py 是异步的,你的部分代码是同步的,这是阻塞的。

    client.run() 也是一种阻塞方法,这就是 main.py 在第一次运行后停止运行的原因。您使用不和谐机器人所做的一切都需要异步并在客户端循环内。

    我建议您重新考虑您正在尝试做的事情,并做一些不违反他们服务条款的事情。

    【讨论】:

    • 我正在尝试发送 msg !d bump,这只能由用户使用。
    • 如果您有其他解决方案?
    • 我认为没有多少人会在这方面为您提供帮助,甚至在官方的 d.py discord 上也不会。
    • 我正在尝试触发我的服务器机器人。
    • 如果你有一个真正的机器人,那么只需使用任务扩展来安排何时做事。不要使用自助机器人(用户)
    猜你喜欢
    • 1970-01-01
    • 2018-04-17
    • 2012-09-16
    • 2021-04-21
    • 1970-01-01
    • 2012-06-24
    • 1970-01-01
    • 2021-05-22
    • 2016-03-26
    相关资源
    最近更新 更多