“固定”;“昵称已在使用中”;在我的Python IRC客户端中

“固定”;“昵称已在使用中”;在我的Python IRC客户端中,python,irc,Python,Irc,错误: 脚本工作正常,我遇到的唯一问题是当另一个用户具有相同的名称,因此bot不会加入时,我如何修复此问题 NOTICE Auth :*** Looking up your hostname... 433 * testbot:Nickname is already in use. NOTICE Auth :*** Could not resolve your hostname: Request timed out; using your IP address () instead. 451 83

错误:

脚本工作正常,我遇到的唯一问题是当另一个用户具有相同的名称,因此bot不会加入时,我如何修复此问题

NOTICE Auth :*** Looking up your hostname...
433 * testbot:Nickname is already in use.
NOTICE Auth :*** Could not resolve your hostname: Request timed out; using your IP address () instead.
451 837AAAABB JOIN :You have not registered
我所尝试的:

谷歌,YouTube,查看其他github IRC机器人和stackoverflow


我的一个想法是使用一个随机字符串生成器,因此如果取了“testbot”这个名称,脚本将生成一些随机的内容并重试。我不确定如何添加此内容。

如果没有看到您尝试的一些代码,就很难帮助您。或者任何代码

总体思路是检测何时传入的消息是
433
(又称
ERR\u昵称inuse
),然后发送带有新昵称的新
NICK
命令;然后再试一次,直到找到一个免费的昵称

伪代码:

#IRC Info, Where the bot connects too
server="Server"
botnick="testbot"
channel="#test"

如果看不到您尝试过的代码,就很难帮助您。或者任何代码

总体思路是检测何时传入的消息是
433
(又称
ERR\u昵称inuse
),然后发送带有新昵称的新
NICK
命令;然后再试一次,直到找到一个免费的昵称

伪代码:

#IRC Info, Where the bot connects too
server="Server"
botnick="testbot"
channel="#test"

这个答案假设尼克是你注册的

接收时,将
恢复
发送至
nickserv
。就我个人而言,我也注意不要在30秒内发送<代码>恢复超过3次,否则我会因为其他问题而断开连接并重新连接

MAINNICK = 'testbot'
nick_suffix = 1
send_msg('NICK {}'.format(MAINNICK))
while True:
    msg = recv_msg()
    if msg.split(' ')[1] == '433':
        send_msg('NICK {}{}'.format(MAINNICK, nick_suffix))
        nick_suffix += 1

偶尔会收到带有第二个参数的
通知
,该参数包含
无法恢复您的昵称
。这表示重新获得故障。我所知道的处理此错误的唯一方法是断开、重新连接和重新加入频道。

此答案假设尼克已由您注册

接收时,将
恢复
发送至
nickserv
。就我个人而言,我也注意不要在30秒内发送<代码>恢复超过3次,否则我会因为其他问题而断开连接并重新连接

MAINNICK = 'testbot'
nick_suffix = 1
send_msg('NICK {}'.format(MAINNICK))
while True:
    msg = recv_msg()
    if msg.split(' ')[1] == '433':
        send_msg('NICK {}{}'.format(MAINNICK, nick_suffix))
        nick_suffix += 1

偶尔会收到带有第二个参数的
通知
,该参数包含
无法恢复您的昵称
。这表示重新获得故障。我所知道的处理此错误的唯一方法是断开、重新连接和重新连接频道。

可能您连接了两次,或者您使用的是保留名称。通常,您尝试使用另一个昵称来连接。bot还应该向NickServ注册(在大多数网络上都可用),这样它就可以重新获得昵称,然后切换到它。您好,你们都是对的,但是,我不想手动更改它,我希望脚本自动执行。这就是为什么我想使用一个随机字符串,这样名称将始终是随机的,而不是一个问题?也许你连接了两次,或者你使用了一个保留的名称。通常,你尝试另一个昵称来连接。bot还应该向NickServ注册(在大多数网络上都可用),这样它就可以重新获得昵称,然后切换到它。您好,你们都是对的,但是,我不想手动更改它,我希望脚本自动执行。这就是为什么我想使用一个随机字符串,这样名称将始终是随机的,而不是一个问题?