Python

From EggWiki
Jump to navigation Jump to search

Known Issues

Eggdrop's Python module duplicates bindings after a rehash

Eggdrop currently has trouble tracking python binds through a rehash. This results in multiple binds being set for the same trigger in some cases. Example code on how to get around this issue is below- basically, have the python script track its binds and, upon load, check that variable. If there are binds in it- remove them!

# Check for previously-existing binds when the script is loaded and delete them if they exist
if 'GREET_BINDS' in globals():
  for greetbind in GREET_BINDS:
    greetbind.unbind()
  del GREET_BINDS

# Continuing from the above section of code, the GREET_BINDS list is created to track the binds
# created by this script, and then the binds are added to it.
GREET_BINDS = list()
# Append the bind to the list you just made
GREET_BINDS.append(bind("join", "*", "*", joinGreetUser))

The python print() function doesn't do anything

The print() function in python only prints to stdout, it won't write to IRC or the partyline (unless you started Eggdrop in terminal mode with the -t flag). In order to print something to a channel, you'd need to import the putserv or putmsg Tcl command, or the putlog command to write to the partyline.

from eggdrop.tcl import putmsg, putlog

putlog("This sends to the partyline!")
putmsg(chan, "This sends to a channel!")