This is the new home of the egghelp.org community forum.
All data has been migrated (including user logins/passwords) to a new phpBB version.


For more information, see this announcement post. Click the X in the top right-corner of this box to dismiss this message.

Active Chatter v3.66.b by awyeah (20/09/07 - fixed all bugs)

Support & discussion of released scripts, and announcements of new releases.
p
pakistani1
Voice
Posts: 26
Joined: Wed Apr 20, 2005 11:35 pm
Location: Pakistan Zindabad
Contact:

Post by pakistani1 »

Code: Select all

### UNACTIVE-CHATTER (DEVOICE) EXEMPT NICKS ###
#Set the list of nicks here which you would like to be exempted from being
#devoiced by the script. Place separate each entry by placing it in a new line.
################################################################################
#If you do not have any nick to exempt, then: set autovoice(dvexempt) {}
set autovoice(dvexempt) {
mmradio
^pagli^
n0mercy
Pakistani1
pinky^
janat
huzur
aband0ned
}


the bot still devoice these nicks ..
:roll:
!~!~!~!~!~ ::Long Live The REpubLic ::~!~!~!
User avatar
speechles
Revered One
Posts: 1398
Joined: Sat Aug 26, 2006 10:19 pm
Location: emerald triangle, california (coastal redwoods)

Post by speechles »

Code: Select all

   set exemptlist [list]
   foreach nickchan $autovoice(dvexempt) {
    lappend exemptlist $nickchan
   }
   if {[llength $exemptlist] > 0} {
    foreach nickchan $exemptlist {
     if {[string equal -nocase [lindex [split $nickchan :] 0] $user] && [string equal -nocase [lindex [split $nickchan :] 1] $chan]} {
      set exempt 1; break
     }
    }
   }
Reading the logic behind this code, it appears $nickchan wants to have a colon delineated setting, nick:#chan, whereas your merely using nick...This will never fit the evaluated IF statement, meaning exempt can never be set afterwards as a result...

Code: Select all

### UNACTIVE-CHATTER (DEVOICE) EXEMPT NICKS ###
#Set the list of nicks here which you would like to be exempted from being
#devoiced by the script. Place separate each entry by placing it in a new line.
################################################################################
#If you do not have any nick to exempt, then: set autovoice(dvexempt) {}
set autovoice(dvexempt) {
nick1:#channel1
nick2:#channel2
nick3:#channel3
}
Notice how the script was before you made your modifica..correction, before you mangled it and destroyed it?


Below is code to correct this limitation and allow nicknames to be referenced globally instead of as tied to channel names.

Code: Select all

in proc autovoice:users, change:
if {[string equal -nocase [lindex [split $nickchan :] 0] $nick] && [string equal -nocase [lindex [split $nickchan :] 1] $chan]} {

into:
if {[string equal -nocase $nickchan $nick] || ([string equal -nocase [lindex [split $nickchan :] 0] $nick] && [string equal -nocase [lindex [split $nickchan :] 1] $chan])} {

in proc autovoice:devoice:idlers, change:
if {[string equal -nocase [lindex [split $nickchan :] 0] $nick] && [string equal -nocase [lindex [split $nickchan :] 1] $chan]} {

into:
if {[string equal -nocase $nickchan $user] || ([string equal -nocase [lindex [split $nickchan :] 0] $user] && [string equal -nocase [lindex [split $nickchan :] 1] $chan])} {

Code: Select all

set autovoice(avexempt) {
nick5
nick7:#channel2
nick8:#channel3
}

set autovoice(dvexempt) {
nick1
nick2:#channel1
nick3:#channel2
nick4
}
In the above example, with the IF handlers both changed as mentioned above, the result of this would be:
for autovoice exemption, nick5 is never voiced globally, nick7 does not get voiced in #channel2, nick8 does not get voiced in #channel3.
for devoice exemption, nick1 is never devoiced globally, nick2 is not devoiced on #channel1, nick3 is not devoiced on #channel2, nick4 is never devoiced globally.

...and since awyeah has left the building so to speak, it's fine if we tamper with his script in his absense. ;)
S
Sydneybabe
Op
Posts: 106
Joined: Fri Apr 27, 2007 3:31 am
Location: Philippines

Post by Sydneybabe »

Hi, i load activechatter.tcl on eggdrop v1.6.19 from http://channels.dal.net/awyeah/ and this is what appear on partyline Tcl error [autovoice:devoice:idlers]: invalid channel: (#unix)

<elite> .set errorInfo
<Bot> [09:03] #elite# set errorInfo
<Bot> Currently: invalid channel: {#unix}
<Bot> Currently: while executing
<Bot> Currently: "chanlist $chan"
<Bot> Currently: (procedure "autovoice:devoice:idlers" line 11)
<Bot> Currently: invoked from within
<Bot> Currently: "autovoice:devoice:idlers $_time1 $_time2 $_time3 $_time4 $_time5"

Any idea what is the problem?
S
Sydneybabe
Op
Posts: 106
Joined: Fri Apr 27, 2007 3:31 am
Location: Philippines

Post by Sydneybabe »

anyone can help me to fix this since awyeah left the building? :cry:
User avatar
speechles
Revered One
Posts: 1398
Joined: Sat Aug 26, 2006 10:19 pm
Location: emerald triangle, california (coastal redwoods)

Post by speechles »

Sydneybabe wrote:Hi, i load activechatter.tcl on eggdrop v1.6.19 from http://channels.dal.net/awyeah/ and this is what appear on partyline Tcl error [autovoice:devoice:idlers]: invalid channel: (#unix)

<elite> .set errorInfo
<Bot> [09:03] #elite# set errorInfo
<Bot> Currently: invalid channel: {#unix}
<Bot> Currently: while executing
<Bot> Currently: "chanlist $chan"
<Bot> Currently: (procedure "autovoice:devoice:idlers" line 11)
<Bot> Currently: invoked from within
<Bot> Currently: "autovoice:devoice:idlers $_time1 $_time2 $_time3 $_time4 $_time5"

Any idea what is the problem?
It tells you implicitly what the problem is. You haven't defined the channel #unix within eggdrops channel record. Why this happens usually, is you built a new eggdrop and added your scripts to it before you actually connected and set up the channel records. This is bad. You want to start a bot with no scripts loaded. Join it up into your channels using .+chan to build your channel records. Afterwards edit your eggdrop.conf to include each script and issue a .rehash or .restart. This is the correct way to start and then customize an eggdrop.
S
Sydneybabe
Op
Posts: 106
Joined: Fri Apr 27, 2007 3:31 am
Location: Philippines

Post by Sydneybabe »

Hi, speechles still got that error [10:46] Tcl error [autovoice:devoice:idlers]: invalid channel: {#unix} and on eggdrop.conf i have set the channel #unix and even i type on the paryline .+chan #unix bot says - That channel already exists!
w
willyw
Revered One
Posts: 1204
Joined: Thu Jan 15, 2009 12:55 am

Post by willyw »

Having just found and tried out the activechatter.tcl script, I am just now finding this thread.

Am having the exact same result of:
Tcl error [autovoice:devoice:idlers]: invalid channel: {#channelname}
where #channelname DOES exist in bot, and bot IS in channel.

Further info: bot will voice a user, but will not devoice that user later, when user has been idle for x minutes.

Tried v3.47.b of script first.
Then found v3.66.b and tried it too.
Both behaved the same.

Using Windrop v1.16.19


1.) Has anyone EVER gotten this script to work properly?

2.) Could using it with Windrop cause problems? Should it work with
Windrop?

3.) Does anyone know of any other script that has same capability?
(Searched egghelp archive for "voice" and didn't find one in the
results. )


Thanks
User avatar
speechles
Revered One
Posts: 1398
Joined: Sat Aug 26, 2006 10:19 pm
Location: emerald triangle, california (coastal redwoods)

Post by speechles »

This problem appears to only occur only within autovoice:devoice:idlers procedure which makes it rather easy to tell what it causing the issue.

Code: Select all

  set chan [split [string tolower $chan]]
That is the problem code within autovoice:devoice:idlers that is causing your issue. The script is incorrectly splitting the string into a list, and then using it within string commands.
Tcl error [autovoice:devoice:idlers]: invalid channel: {#channelname}
The {bracings} around #channelname clearly point this out. I missed this during my last attempt to solve this script bug. Within the procedure autovoice:devoice:idlers make the small change below:

Code: Select all

Change: set chan [split [string tolower $chan]]
Into: set chan [string tolower $chan]
This should solve the problem once and for all. :)
w
willyw
Revered One
Posts: 1204
Joined: Thu Jan 15, 2009 12:55 am

Post by willyw »

speechles wrote:
...

This should solve the problem once and for all. :)
Thank you for the reply.

Have tried your recommedation, and at first it seemed to be working ok!
That is, now the error is no longer appearing, and the script will also devoice a user.
( I suppose that also answers the question about it working with Windrop too, :) )

Something new has appeared though.

It is the same problem that I've encountered with some other scripts.
See:
http://forum.egghelp.org/viewtopic.php? ... &start=210
and
http://forum.egghelp.org/viewtopic.php?t=16555
regarding the interruption of logging and failure of posts to appear in console (even though +p is on).
The same thing is happening ... sort of... with this activechatter script.

To explain "sort of" :
For example, with x lines set at 5, the script will +v a user after he types 5 lines.
But, the first line he types is the only one to appear in console!
The next 4 do not.
The 6th does appear, and logging is back to normal.

Apparently, while the script is counting lines, it blocks the display of posts from appearing in console and in logs.

As I can't do tcl coding, I don't know if this is fixable or not.

Is it?


Thanks
User avatar
awyeah
Revered One
Posts: 1580
Joined: Mon Apr 26, 2004 2:37 am
Location: Switzerland
Contact:

Post by awyeah »

Hello all,

Due to the surge number of requests on this script, I took out some time barely to fix the known bugs and issues thanks to speechless.

The new and fixed version of the script Active Chatter v3.72b can be found at: http://channels.dal.net/awyeah/

or alternatively you can download it from:
http://metalab.uniten.edu.my/~jawad/activechatter.tcl
# v3.72.b - Fixed bugs reported by users thanks to "speechless" from #
# (04/02/09) the egghelp forum. #
# - Fixed a bug in the autovoice:users and #
# autovoice:devoice:idlers procedure for $nickchan. #
# - Fixed declaration of $chan in autovoice:devoice:idlers #
# procedure. #
# - Added configuration settings to set user specific mode #
# settings for displaying active and idle chatters. #

New configuration settings added:

Code: Select all

### SET THE TEXT TO DISPLAY IN THE +V (VOICING) MODE ###
#Set the text to display while voicing the active chatters. This text will be
#displayed when removing the channel key (mode: -k). Control codes such as
#color/bold/underline/reverses can also be used in the string.
#Please see: http://tclhelp.net/#faqcolor for more information on control codes.
#NOTE: There should NOT be any empty spaces " " in the string.
################################################################################
set autovoice(voicemode) "\0032Active.\00312chatter"


### SET THE TEXT TO DISPLAY IN THE -V (DE-VOICING) MODE ###
#Set the text to display while devoicing the idle chatters. This text will be
#displayed when removing the channel key (mode: -k). Control codes such as
#color/bold/underline/reverses can also be used in the string.
#Please see: http://tclhelp.net/#faqcolor for more information on control codes.
#NOTE: There should NOT be any empty spaces " " in the string.
################################################################################
set autovoice(devoicemode) "\0032Unactive.\00312chatter"
Thanks to speechless and other users for reporting bugs. Credits added in the script. Thanks everyone, wouldn't have done it without you.

*** Will also submit the updated version to slennox, for the egghelp.org tcl archive.
·­awyeah·

==================================
Facebook: jawad@idsia.ch (Jay Dee)
PS: Guys, I don't accept script helps or requests personally anymore.
==================================
w
willyw
Revered One
Posts: 1204
Joined: Thu Jan 15, 2009 12:55 am

Post by willyw »

awyeah wrote:Hello all,

Due to the surge number of requests on this script, I took out some time barely to fix the known bugs and issues thanks to speechless.

...
Thank you for taking time to try to fix it.
I have downloaded a copy from your link, and tried it.

The known issue with logging interference and console interference is unchanged. It is still there.



Also, now I see:
[11:34]Tcl error in script for 'timer36':
[11:34] can't read "autovoice(voicemode)": no such variable


I thought you'd like to know.
User avatar
speechles
Revered One
Posts: 1398
Joined: Sat Aug 26, 2006 10:19 pm
Location: emerald triangle, california (coastal redwoods)

Post by speechles »

Code: Select all

proc autovoice:delay {nick chan} {
 # Change the part below
 global voice

 # Into this
 global autovoice voice
w
willyw
Revered One
Posts: 1204
Joined: Thu Jan 15, 2009 12:55 am

Post by willyw »

speechles wrote:

Code: Select all

proc autovoice:delay {nick chan} {
 # Change the part below
 global voice

 # Into this
 global autovoice voice
This seems to have fixed the tcl error that was appearing. :)


However the problem with the script interfering with logging and display to console was unaffected by this.
The script still blocks logging and display to console as previously described.



Thanks
w
willyw
Revered One
Posts: 1204
Joined: Thu Jan 15, 2009 12:55 am

Post by willyw »

awyeah wrote:
New configuration settings added:

Code: Select all

### SET THE TEXT TO DISPLAY IN THE +V (VOICING) MODE ###
#Set the text to display while voicing the active chatters. This text will be
#displayed when removing the channel key (mode: -k). Control codes such as
#color/bold/underline/reverses can also be used in the string.
#Please see: http://tclhelp.net/#faqcolor for more information on control codes.
#NOTE: There should NOT be any empty spaces " " in the string.
################################################################################
set autovoice(voicemode) "\0032Active.\00312chatter"


### SET THE TEXT TO DISPLAY IN THE -V (DE-VOICING) MODE ###
#Set the text to display while devoicing the idle chatters. This text will be
#displayed when removing the channel key (mode: -k). Control codes such as
#color/bold/underline/reverses can also be used in the string.
#Please see: http://tclhelp.net/#faqcolor for more information on control codes.
#NOTE: There should NOT be any empty spaces " " in the string.
################################################################################
set autovoice(devoicemode) "\0032Unactive.\00312chatter"

Forgot to mention earlier - these don't work. If this text is supposed to appear in the channel, it is not.

Sorry that I forgot to report it earlier.
User avatar
awyeah
Revered One
Posts: 1580
Joined: Mon Apr 26, 2004 2:37 am
Location: Switzerland
Contact:

Post by awyeah »

Sorry forgot to add the variables as global. My bad, been away a long time with tcl.

Always mess up while coding things in a hurry, no matter how simple. More worse if you don't test it after modification. :)

*** Script fixed and uploaded on:
http://channels.dal.net/awyeah/

The text should appear similarly as the old version, the only change now that, users can easily set the text when a bot voices and devoices a user. No need to edit it in the script, when a variable is present now in the configuration.
·­awyeah·

==================================
Facebook: jawad@idsia.ch (Jay Dee)
PS: Guys, I don't accept script helps or requests personally anymore.
==================================
Post Reply