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.
Support & discussion of released scripts, and announcements of new releases.
CrazyCat
Revered One
Posts: 1301 Joined: Sun Jan 13, 2002 8:00 pm
Location: France
Contact:
Post
by CrazyCat » Mon Apr 12, 2021 6:19 am
New version of chanrelay :
https://gitlab.com/tcl-scripts/chanrela ... nrelay-4.0
Short changelog:
- Internationalisation (i18n) using msgcat
- All files (logs, settings, translations) are moved in crtools/ directory
Do not hesitate to transmit me corrections in translations (or correct directly in gitlab) or send me new languages
ComputerTech
Master
Posts: 399 Joined: Sat Feb 22, 2020 10:29 am
Contact:
Post
by ComputerTech » Mon Apr 12, 2021 5:19 pm
Awesome work CrazyCat, as always
ComputerTech
skydrome
Voice
Posts: 1 Joined: Mon Apr 05, 2021 7:41 pm
Post
by skydrome » Wed Apr 28, 2021 3:53 am
Hello, Im confused as how the script sends the messages to the bots by its username.
My bot's user handles are theyre nicks and they have different usernames so [islinked $bot] is always false
Should i .+bot in a different manner?
CrazyCat
Revered One
Posts: 1301 Joined: Sun Jan 13, 2002 8:00 pm
Location: France
Contact:
Post
by CrazyCat » Wed Apr 28, 2021 11:06 am
Well, I did the script with the assertion that the bots are added using their username, which is often their botnet-nick too.
The better way is to make chanrelay working is to do the .+bot <username> when creating your botnet.
Note that the bot handle is just informative.
If you have troubles to set up chanrelay, I can make an adapted version of it for particular cases
vam2u
Voice
Posts: 35 Joined: Sat Mar 27, 2021 11:19 pm
Location: Malaysia
Post
by vam2u » Fri May 07, 2021 8:38 am
I'm having below error:-
Hope to get some help or advice on how to resolve it
Thanks!
Code: Select all
[06:40:45] Tcl error [::crelay::trans:topic]: expected integer but got "GREGORIAN_CHANGE_DATE"
[06:41:01] Tcl error [::crelay::trans:join]: expected integer but got "GREGORIAN_CHANGE_DATE"
[06:41:01] Tcl error [::crelay::trans:topic]: expected integer but got "GREGORIAN_CHANGE_DATE"
[06:41:01] Tcl error [::crelay::trans:pub]: expected integer but got "GREGORIAN_CHANGE_DATE"
[06:41:14] Tcl error [::crelay::trans:join]: expected integer but got "GREGORIAN_CHANGE_DATE"
[06:41:14] Tcl error [::crelay::trans:topic]: expected integer but got "GREGORIAN_CHANGE_DATE"
[06:42:09] Tcl error [::crelay::trans:part]: expected integer but got "GREGORIAN_CHANGE_DATE"
CrazyCat
Revered One
Posts: 1301 Joined: Sun Jan 13, 2002 8:00 pm
Location: France
Contact:
Post
by CrazyCat » Fri May 07, 2021 9:31 am
Please do a .set errorInfo in party-line just after having the error, it will give more informations about it
The error could be in the dlog procedure, you can try to set debug to 0
vam2u
Voice
Posts: 35 Joined: Sat Mar 27, 2021 11:19 pm
Location: Malaysia
Post
by vam2u » Fri May 07, 2021 9:41 am
Hey CrazyCat, thanks for your prompt reply.
Here you go:-
Code: Select all
Currently: expected integer but got "GREGORIAN_CHANGE_DATE"
Currently: while executing
Currently: "GetDateFields $clockval $TZData($timezone) GREGORIAN_CHANGE_DATE"
Currently: (procedure "::tcl::clock::formatproc'%Y-%m-%d %H\:%M\:%S'c" line 4)
Currently: invoked from within
Currently: "$procName $clockval $timezone"
Currently: (procedure "::tcl::clock::format" line 34)
Currently: invoked from within
Currently: "clock format [clock seconds] -format "%Y-%m-%d %H:%M:%S""
Currently: (procedure "dlog" line 3)
Currently: invoked from within
Currently: "dlog "Prepare transmission : >quit $chan $nick $text" "
Currently: (procedure "::crelay::trans:quit" line 2)
Currently: invoked from within
Currently: "::crelay::trans:quit $_stnm1 $_stnm2 $_stnm3 $_stnm4 $_stnm5"
CrazyCat
Revered One
Posts: 1301 Joined: Sun Jan 13, 2002 8:00 pm
Location: France
Contact:
Post
by CrazyCat » Fri May 07, 2021 9:44 am
Ok, it a trouble with the clock, so disable the debug.
I'll try to find a solution, this seems to be a known trouble with tcl
CrazyCat
Revered One
Posts: 1301 Joined: Sun Jan 13, 2002 8:00 pm
Location: France
Contact:
Post
by CrazyCat » Fri May 07, 2021 9:58 am
Ok, solution found
replace the actual i18n proc with the following:
Code: Select all
proc i18n {msgfile {lang {}} } {
if {$lang == ""} {set lang [string range [::msgcat::mclocale] 0 1] }
if { [catch {open $msgfile r} fmsg] } {
putlog "\002ChanRelay\002 - Could not open $msgfile for reading\n$fmsg"
} else {
putlog "\002ChanRelay\002 - Loading $lang file from $msgfile"
while {[gets $fmsg line] >= 0} {
lappend ll $line
}
close $fmsg
::msgcat::mcmset $lang [join $ll]
unset ll
}
::msgcat::mclocale $lang
# Hack for badly managed locales
if { [::msgcat::mc GREGORIAN_CHANGE_DATE] == "GREGORIAN_CHANGE_DATE"} {
::msgcat::mcset [::msgcat::mclocale] GREGORIAN_CHANGE_DATE 2299527
}
}
The trouble came from a trouble in msgcat and some timezones which are badly managed, I wonder you setted a language which is not in the original list
vam2u
Voice
Posts: 35 Joined: Sat Mar 27, 2021 11:19 pm
Location: Malaysia
Post
by vam2u » Fri May 07, 2021 10:04 am
Yeah the error is gone when I disable the debug, thanks!
But let's see if I'm able to get the relay to work
vam2u
Voice
Posts: 35 Joined: Sat Mar 27, 2021 11:19 pm
Location: Malaysia
Post
by vam2u » Fri May 07, 2021 10:07 am
Wow that's fast you found the solution, I set the language to "english"
vam2u
Voice
Posts: 35 Joined: Sat Mar 27, 2021 11:19 pm
Location: Malaysia
Post
by vam2u » Fri May 07, 2021 10:31 am
I have replace the actual i18n proc with the following, but I still get the same error if I change back the debug mode to 1.
Code: Select all
[09:27:06] Tcl error [::crelay::trans:pub]: expected integer but got "GREGORIAN_CHANGE_DATE"
[09:27:47] Tcl error [::crelay::trans:quit]: expected integer but got "GREGORIAN_CHANGE_DATE"
caesar
Mint Rubber
Posts: 3778 Joined: Sun Oct 14, 2001 8:00 pm
Location: Mint Factory
Post
by caesar » Fri May 07, 2021 10:41 am
Followed the error to the
mc proc and I fail to understand what's is it's purpose.
Code: Select all
proc mc {text {str ""} args} { return [format $text $str $args] }
given that it's use is:
Code: Select all
if { [::msgcat::mc GREGORIAN_CHANGE_DATE] == "GREGORIAN_CHANGE_DATE"} {
::msgcat::mcset [::msgcat::mclocale] GREGORIAN_CHANGE_DATE 2299527
}
Care to shed some light on it?
Once the game is over, the king and the pawn go back in the same box.
CrazyCat
Revered One
Posts: 1301 Joined: Sun Jan 13, 2002 8:00 pm
Location: France
Contact:
Post
by CrazyCat » Fri May 07, 2021 12:02 pm
If you setted english as lang, the error must not occure. And even if you don't have the english locale (I doubt of this), the hack I did must correct that.
BTW, I'll look a little bit more.
@vam2u : can you reload the script (.tcl source scripts/chanrelay.tcl ) and copy here the message about the lang loading ?
@caesar : the proc I create is to fake msgcat when the package is not available (just return format without translation).
The hack I did in i18n is not applied if msgcat is absent, as i18n is called if the catch works.
Three cases occures:
1. msgcat is here and the locale is ok, the translation is done with msgcat
2. msgcat is absent, there is no translation and a simple format is applied
3. msgcat is here but the locale is missing/unknown, I force the GREGORIAN_CHANGE_DATE to the most used value
vam2u
Voice
Posts: 35 Joined: Sat Mar 27, 2021 11:19 pm
Location: Malaysia
Post
by vam2u » Fri May 07, 2021 11:23 pm
@CrazyCat
Here you go, below is the message i get.
.tcl source scripts/chanrelay.tcl
[22:03:04] CHANRELAY 4.00 by CrazyCat loaded -
https://www.eggdrop.fr
Tcl: