egghelp.org community Forum Index
[ egghelp.org home | forum home ]
egghelp.org community
Discussion of eggdrop bots, shell accounts and tcl scripts.
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

eggdrop does not detect joins/parts

 
Post new topic   Reply to topic    egghelp.org community Forum Index -> Eggdrop Help
View previous topic :: View next topic  
Author Message
daigo
Voice


Joined: 27 Jun 2014
Posts: 37

PostPosted: Mon Jun 30, 2014 10:36 am    Post subject: eggdrop does not detect joins/parts Reply with quote

I am using the latest stable version of eggdrop, and in the conf I have the line:

Code:
logfile djhkoprstv #channel "logs/channel.log"


It has everything in the logs except joins/parts.

I tried starting eggdrop with:

Code:

./eggdrop -nt


But it doesn't display any joins/parts.

When I do:

Code:

.channel #testchan


It returns:

Code:
[11:38:54] #daigo# (#testchan) channel
Processing channel #testchan, 1 member, mode +:
End of channel info.


Even though there are many users in the channel.

Here is .status:

Code:

[12:14:06] #daigo# status
I am daigobot, running eggdrop v1.6.21: 4 users (mem: 73k).
Online for 01:28 (terminal mode) - CPU: 00:00 - Cache hit: 61.5%
Configured with:  '--enable-strip' '--with-handlen=32'
Admin: daigo <email: daigo@daigo.com>
Config file: eggdrop.conf
OS: CYGWIN_NT-6.1-WOW64 1.7.15(0.260/5/3)
Tcl library: ./lib/tcl8.5
Tcl version: 8.5.11 (header version 8.5.11)
Socket table: 20/100
Loaded module information:
    Channels: #testchan (trying)
    Online as: daigobot (daigobot)
    Server 199.9.253.199:6667 (connected for 01:28)
    #testchan        : (pending)


it says (trying) and (pending), not sure what that means.

Here is what the console says with +r, and then I try to get the users on the channel by dumping names:

Code:


[12:39:58] Writing channel file...
[12:39:58] Userfile loaded, unpacking...
[12:39:58] [@] tmi.twitch.tv NOTICE * :NICK already set
[12:39:58] -NOTICE- NICK already set
[12:39:58] net: eof!(read) socket 10
[12:39:58] Disconnected from 199.9.253.199
[12:39:59] Identd: Listening On Port 113, Replying as daigobot***
[12:39:59] Trying server 199.9.253.199:6667
[12:40:00] net: connect! sock 10
[12:40:00] Connected to 199.9.253.199
[12:40:00] [@]
[12:40:00] [@] tmi.twitch.tv 001 daigobot :Welcome, GLHF!
[12:40:00] Identd: Disabled.
[12:40:00] [@] tmi.twitch.tv 002 daigobot :Your host is tmi.twitch.tv
[12:40:00] [@] tmi.twitch.tv 003 daigobot :This server is rather new
[12:40:00] [@] tmi.twitch.tv 004 daigobot :-
[12:40:00] [@] tmi.twitch.tv 375 daigobot :-
[12:40:00] [@] tmi.twitch.tv 372 daigobot :You are in a maze of twisty passages
, all alike.
[12:40:00] [@] tmi.twitch.tv 376 daigobot :>
[12:40:04] [@] tmi.twitch.tv 421 daigobot WHOIS :Unknown command
[12:40:06] [@] daigobot!daigobot@daigobot.tmi.twitch.tv JOIN #testchan
[12:40:06] daigobot joined #testchan.
[12:40:06] [@] jtv!jtv@jtv.tmi.twitch.tv PRIVMSG daigobot :HISTORYEND testchan
[12:40:06] [jtv!jtv@jtv.tmi.twitch.tv] HISTORYEND testchan
[12:40:06] [@] daigobot.tmi.twitch.tv 353 daigobot = #testchan :amy adam john paul daigobot
[12:40:06] [@] daigobot.tmi.twitch.tv 366 daigobot #testchan :End of /NAMES
 list
[12:40:06] [@] jtv MODE #testchan +o amy
[12:40:06] #testchan: mode change '+o amy' by jtv
[12:40:06] [@] tmi.twitch.tv 421 daigobot WHO :Unknown command
[12:40:38] tcl: builtin dcc call: *dcc:dump daigo 7 names #testchan
[12:40:38] #daigo# dump names #testchan
[12:40:39] [@] tmi.twitch.tv 421 daigobot NAMES :Unknown command


The "onchan" function also has issues. The command: .tcl onchan daigo #testchan returns a value of 0, even though I am in the same channel at the bot and interacting with it using TCL scripts, etc.

When I part and rejoin the channel, I get:

Code:

[15:01:06] [@] daigobot.tmi.twitch.tv 353 daigobot = #testchan :amy adam john paul daigobot
[15:01:06] [@] daigobot.tmi.twitch.tv 366 daigobot #testchan :End of /NAMES list
[15:01:06] [@] tmi.twitch.tv 421 daigobot WHO :Unknown command
[15:04:32] tcl: evaluate (.tcl): putserv "names #testchan"
Tcl:
[15:04:35] [@] tmi.twitch.tv 421 daigobot NAMES :Unknown command


So it's definitely using RPL_NAMREPLY automatically I think, but after that, the NAMES command does not work manually.

What is odd is that other programs like mIRC and Mibbit see users joining/parting, but only eggdrop does not recognize users joining/parting.
Back to top
View user's profile Send private message
thommey
Halfop


Joined: 01 Apr 2008
Posts: 73

PostPosted: Sat Sep 06, 2014 8:30 am    Post subject: Reply with quote

The Twitch chat doesn't really use IRC. Other clients might work fine because they can work without some of the requirements eggdrop has (here: /who). However, I managed to work around some of the Twitch chat limitations by pretending that they work with a Tcl script. Try loading this:

Code:

package require eggdrop 1.6.20
package require Tcl 8.5

bind raw - 353 twitch:names
bind raw - 366 twitch:eonames
bind out - "% queued" twitch:who

proc twitch:who {queue text status} {
   lassign [split $text] cmd chan
   if {$cmd ne "WHO"} { return 0 }
   # fake a names reply with the nicknames we remember (due to chanlist not being cleared, 1.6.21 bug)
   twitch:names $::server 353 "$::botnick = $chan :[join [chanlist $chan]]"
   twitch:eonames $::server 366 "$::botnick $chan :End of /NAMES list"
   return 1
}

# testuser.tmi.twitch.tv 353 testuser = #testchannel :testuser2 testuser
proc twitch:names {from key text} {
   set nicks [lassign [split $text] botnick = chan]
   # get rid of the ":"
   set nicks [join $nicks]
   if {[string index $nicks 0] eq ":"} {
      set nicks [string range $nicks 1 end]
   }
   set nicks [split $nicks]
   foreach nick $nicks {
      # fake WHO reply:
      # underworld2.no.quakenet.org 352 TCL #testchannel tcl TCL.users.quakenet.org *.quakenet.org TCL Hx :0 #testchannel
      *raw:irc:352 $from 352 "$::botnick $chan $nick $nick.tmi.twitch.tv $::server $nick H :0 $chan"
   }
   return 0
}

# testuser.tmi.twitch.tv 366 testuser #testchannel :End of /NAMES list
proc twitch:eonames {from key text} {
   lassign [split $text] botnick chan
   # first, make sure the bot knows it's on the channel, fake 352
   *raw:irc:352 $from 352 "$::botnick $chan $::botnick $::botnick.tmi.twitch.tv $::server $::botnick H :0 $chan"
   # fake end of WHO reply
   # underworld2.no.quakenet.org 315 TCL #testchannel:End of /WHO list.
   *raw:irc:315 $from 315 "$::botnick $chan :End of /WHO list."
   return 0
}
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    egghelp.org community Forum Index -> Eggdrop Help All times are GMT - 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Forum hosting provided by Reverse.net

Powered by phpBB © 2001, 2005 phpBB Group
subGreen style by ktauber