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.

Ignored channel masks for <channel> when trying to sta

Old posts that have not been replied to for several years.
Locked
g
good
Voice
Posts: 27
Joined: Mon Sep 05, 2005 9:05 pm

Ignored channel masks for <channel> when trying to sta

Post by good »

When I try to start my bot, I get an ignored channel masks error which prevents my bot from joining my channel. How would I fix this?
g
good
Voice
Posts: 27
Joined: Mon Sep 05, 2005 9:05 pm

Post by good »

Fixed the error, but bot will not join channel. Here is my config.

Code: Select all

# /eggdrop/
# ^- This should contain a fully qualified path to your Eggdrop executable.
#
# $Id: eggdrop.conf,v 1.40 2004/08/21 22:43:27 wcc Exp $
#
# This is a sample Eggdrop configuration file which includes all possible
# settings that can be used to configure your bot.
#
# The pound signs (#) that you see at the beginning of some lines mean that
# the remainder of that line is a comment, or just for your information. By
# adding or deleting pound signs, you can comment or uncomment a setting,
# respectively.
#
# Arguments for a command or setting may be inclosed in <>'s or []'s in the
# example/description. Arguments in <>'s are required, while [] means optional.
#
# More detailed descriptions of all these settings can be found in
# doc/settings/.



##### BASIC SETTINGS #####

# This setting defines the username the bot uses on IRC. This setting has
# no effect if an ident daemon is running on your bot's machine.
set username "HelpDesk"

# This setting defines which contact person should be shown in .status,
# /msg help, and other places. You really should include this information.
set admin "good <email: bawkgadawk@hotmail.com>"

# This setting is used only for info to share with others on your botnet.
# Set this to the IRC network your bot is connected to.
set network "irc.blessed.net"

# This setting defines the timezone is your bot in. It's used for internal
# routines as well as for logfile timestamping and scripting purposes.
# The timezone string specifies the name of the timezone and must be three
# or more alphabetic characters. For example, Central European Time(UTC+1)
# should be "CET".
set timezone "PST"

# The offset setting specifies the time value to be added to the local
# time to get Coordinated Universal Time (UTC aka GMT). The offset is
# positive if the local timezone is west of the Prime Meridian and
# negative if it is east. The value (in hours) must be between -23 and
# 23. For example, if the timezone is UTC+1, the offset is -1.
set offset "5"

# If you don't want to use the timezone setting for scripting purposes only,
# but instead everywhere possible, un-comment the following line.
#set env(TZ) "$timezone $offset"

# If you're using virtual hosting (your machine has more than 1 IP), you
# may want to specify the particular IP to bind to. You can specify either
# by hostname or by IP. You may also want to set the hostname here if
# Eggdrop has trouble detecting it when it starts up.
#set my-hostname "virtual.host.com"
#set my-ip "99.99.0.0"

# If you want to have your Eggdrop messages displayed in a language other
# than English, change this setting to match your preference. An alternative
# would be to set the environment variable EGG_LANG to that value.
#
# Languages included with Eggdrop: Danish, English, French, Finnish, German.
#addlang "english"


##### LOG FILES #####

# Eggdrop is capable of logging various things, from channel chatter to
# commands people use on the bot and file transfers. Logfiles are normally
# kept for 24 hours. Afterwards, they will be renamed to "(logfile).yesterday".
# After 48 hours, they will be overwritten by the logfile of the next day.
#
# Events are logged by certain categories. This way, you can specify
# exactly what kind of events you want sent to various logfiles.
#
# Logfile flags:
#   b - information about bot linking and userfile sharing
#   c - commands
#   d - misc debug information
#   h - raw share traffic
#   j - joins, parts, quits, and netsplits on the channel
#   k - kicks, bans, and mode changes on the channel
#   m - private msgs, notices and ctcps to the bot
#   o - misc info, errors, etc (IMPORTANT STUFF)
#   p - public text on the channel
#   r - raw incoming server traffic
#   s - server connects, disconnects, and notices
#   t - raw botnet traffic
#   v - raw outgoing server traffic
#   w - wallops (make sure the bot sets +w in init-server)
#   x - file transfers and file-area commands
#
# Note that modes d, h, r, t, and v can fill disk quotas quickly. There are
# also eight user-defined levels (1-8) which can be used by Tcl scripts.
#
# Each logfile belongs to a certain channel. Events of type 'k', 'j', and 'p'
# are logged to whatever channel they happened on. Most other events are
# currently logged to every channel. You can make a logfile belong to all
# channels by assigning it to channel "*".

# This is the maximum number of logfiles allowed. This setting can be
# increased; however, don't decrease it.
set max-logs 5

# This is the maximum size of your logfiles. Set it to 0 to disable.
# This value is in kilobytes, so '550' would mean cycle logs when it
# reaches the size of 550 kilobytes. Note that this only works if you
# have keep-all-logs 0 (OFF).
set max-logsize 0

# This could be good if you have had problem with the logfile filling
# your quota/hard disk or if you log +p and publish it to the web and
# need more up-to-date info. Note that this setting might increase the
# CPU usage of your bot (on the other hand it will decrease your mem usage).
set quick-logs 0

# This setting allows you the logging of raw incoming server traffic via
# console/log flag 'r', raw outgoing server traffic via console/log mode 'v',
# raw botnet traffic via console/log mode 't', and raw share traffic via
# console/log mode 'h'. These flags can create a large security hole,
# allowing people to see user passwords. This is now restricted to +n users
# only. Please choose your owners with care.
set raw-log 0

# This creates a logfile named eggdrop.log containing private msgs/ctcps,
# commands, errors, and misc. info from any channel.
logfile mco * "logs/eggdrop.log"

# This creates a logfile named lamest.log containing joins, parts,
# netsplits, kicks, bans, mode changes, and public chat on the
# channel #katrina-news
logfile jpk #katrina-news "logs/katrina-news.log"

# Use this feature to timestamp entries in the log file.
set log-time 1

# If you want to keep your logfiles forever, turn this setting on. All
# logfiles will get suffix ".[day, 2 digits][month, 3 letters][year, 4 digits]".
# Note that your quota/hard-disk might be filled by this, so check your
# logfiles often and download them.
set keep-all-logs 0

# If keep-all-logs is 1, this setting will define the suffix of the logfiles.
# The default will result in a suffix like "04May2000". "%Y%m%d" will produce
# the often used yyyymmdd format. Read the strftime manpages for more options.
# NOTE: On systems which don't support strftime, the default format will
# be used _always_.
set logfile-suffix ".%d%b%Y"

# You can specify when Eggdrop should switch logfiles and start fresh. You
# must use military time for this setting. 300 is the default, and describes
# 03:00 (AM).
set switch-logfiles-at 300

# "Writing user file..." and "Writing channel file..." messages won't be
# logged anymore if this option is enabled.
set quiet-save 0


##### CONSOLE #####

# This is the default console mode. It uses the same event flags as the log
# files do. The console channel is automatically set to your "primary" channel,
# which is set in the modules section of the config file. Masters can change
# their console channel and modes with the '.console' command.

set console "mkcobxs"


##### FILES AND DIRECTORIES #####

# Specify here the filename your userfile should be saved as.
set userfile "HelpDesk.user"

# Specify here the filename Eggdrop will save its pid to. If no pidfile is
# specified, pid.(botnet-nick) will be used.
#set pidfile "pid.HelpDesk"

# If you want your userfile to be sorted upon saving, enable this setting.
# This causes the bot to use bit more CPU when saving the usefile.
set sort-users 0

# Specify here where Eggdrop should look for help files. Don't modify this
# setting unless you know what you're doing!
set help-path "help/"

# Specify here where Eggdrop should look for text files. This is used for
# certain Tcl and DCC commands.
set text-path "text/"

# Set here a place to store temporary files.
set temp-path "tmp/"

# The MOTD (Message Of The day) is displayed when people dcc chat or telnet
# to the bot. Look at doc/TEXT-SUBSTITUTIONS for options.
set motd "text/motd"

# This banner will be displayed on telnet connections. Look at
# doc/TEXT-SUBSTITUTIONS for options.
set telnet-banner "text/banner"

# This specifies what permissions the user, channel, and notes files should
# be set to. The octal values are the same as for the chmod system command.
#
# To remind you:
#
#          u  g  o           u  g  o           u  g  o
#    0600  rw-------   0400  r--------   0200  -w-------    u - user
#    0660  rw-rw----   0440  r--r-----   0220  -w--w----    g - group
#    0666  rw-rw-rw-   0444  r--r--r--   0222  -w--w--w-    o - others
#
# Note that the default 0600 is the most secure one and should only be changed
# if you need your files for shell scripting or other external applications.
set userfile-perm 0600


##### BOTNET/DCC/TELNET #####

# Settings in this section should be unimportant for you until you deal
# with botnets (multiple Eggdrops connected together to maximize efficiency).
# You should read doc/BOTNET before modifying these settings.

# If you want to use a different nickname on the botnet than you use on
# IRC (i.e. if you're on an un-trusted botnet), un-comment the next line
# and set it to the nick you would like to use.
#set botnet-nick "HelpDesk"

# This opens a telnet port by which you and other bots can interact with the
# Eggdrop by telneting in.
#
# There are more options for the listen command in doc/tcl-commands.doc. Note
# that if you are running more than one bot on the same machine, you will want
# to space the telnet ports at LEAST 5 apart, although 10 is even better.
#
# Valid ports are typically anything between 1025 and 65535 assuming the
# port is not already in use.
#
# If you would like the bot to listen for users and bots in separate ports,
# use the following format:
#
#   listen 3333 bots
#   listen 4444 users
#
# If you wish to use only one port, use this format:
#
#   listen 3333 all
#
# You need to un-comment this line and change the port number in order to open
# the listen port. You should not keep this set to 3333.
listen 6666 all

# This setting defines whether or not people can boot users on the Eggdrop
# from other bots in your botnet. Valid settings are:
#   0 - allow *no* outside boots
#   1 - allow boots from sharebots
#   2 - allow any boots
set remote-boots 2

# This setting prohibits remote bots from telling your Eggdrop to unlink from
# share bots.
set share-unlinks 1

# This setting will drop telnet connections not matching a known host. It
# greatly improves protection from IRCops, but makes it impossible to add
# hosts on limbo (NOIRC) bots or have NEW as a valid login.
set protect-telnet 0

# This setting will make the bot ignore DCC chat requests which appear to
# have bogus information on the grounds that the user may have been trying
# to make the bot connect to somewhere that will get it into trouble, or
# that the user has a broken client (like mIRC tends to do), in which case
# the connect wouldn't work anyway. It's suggested that you turn this on.
set dcc-sanitycheck 0

# This settings defines a time in seconds that the bot should wait before
# a dcc chat, telnet, or relay connection times out.
set ident-timeout 5

# Define here whether or not a +o user still needs the +p flag to dcc the bot.
set require-p 0

# If you want people allow to telnet in and type 'NEW' to become a new user,
# set this to 1. This is similar to the 'hello' msg command. The protect-telnet
# setting must be set to 0 to use this.
set open-telnets 0

# If you don't want Eggdrop to identify itself as an eggdrop on a telnet
# connection, set this setting to 1. Eggdrop will display 'Nickname' instead.
set stealth-telnets 0

# If you want Eggdrop to display a banner when telneting in, set this setting
# to 1. The telnet banner is set by 'set telnet-banner'.
set use-telnet-banner 0

# This settings defines a time in seconds that the bot should wait before
# a dcc chat, telnet, or relay connection times out.
set connect-timeout 15

# Specify here the number of lines to accept from a user on the partyline
# within 1 second before they are considered to be flooding and therefore
# get booted.
set dcc-flood-thr 3

# Define here how many telnet connection attempts in how many seconds from
# the same host constitute a flood. The correct format is Attempts:Seconds.
set telnet-flood 5:60

# If you want telnet-flood to apply even to +f users, set this setting to 1.
set paranoid-telnet-flood 1

# Set here the amount of seconds before giving up on hostname/address
# lookup (you might want to increase this if you are on a slow network).
set resolve-timeout 15


##### MORE ADVANCED SETTINGS #####

# Set this to your socks host if your Eggdrop sits behind a firewall. If
# you use a Sun "telnet passthru" firewall, prefix the host with a '!'.
#set firewall "!sun-barr.ebay:3666"

# If you have a NAT firewall (you box has an IP in one of the following
# ranges: 192.168.0.0-192.168.255.255, 172.16.0.0-172.31.255.255,
# 10.0.0.0-10.255.255.255 and your firewall transparently changes your
# address to a unique address for your box) or you have IP masquerading
# between you and the rest of the world, and /dcc chat, /ctcp chat or
# userfile sharing aren't working, enter your outside IP here. Do not
# enter anything for my-ip or my-hostname if you use this setting.
#set nat-ip "127.0.0.1"

# If you want all dcc file transfers to use a particular portrange either
# because you're behind a firewall, or for other security reasons, set it
# here.
#set reserved-portrange 2010:2020

# Set the time in minutes that temporary ignores should last.
set ignore-time 15

# Define here what Eggdrop considers 'hourly'. All calls to it, including such
# things as note notifying or userfile saving, are affected by this.
# For example:
#
#   set hourly-updates 15
#
# The bot will save its userfile 15 minutes past every hour.
set hourly-updates 00

# Un-comment the next line and set the list of owners of the bot.
# You NEED to change this setting.
set owner "good"

# Who should a note be sent to when new users are learned?
set notify-newusers "$owner"

# Enter the flags that all new users should get by default. See '.help whois'
# on the partyline for a list of flags and their descriptions.
set default-flags "hp"

# Enter all user-defined fields that should be displayed in a '.whois'.
# This will only be shown if the user has one of these extra fields.
# You might prefer to comment this out and use the userinfo1.0.tcl script
# which provides commands for changing all of these.
set whois-fields "url birthday"

# Enable this setting if you want your Eggdrop to die upon receiving a SIGHUP
# kill signal. Otherwise, the Eggdrop will just save its userfile and rehash.
set die-on-sighup 0

# Enable this setting if you want your Eggdrop to die upon receiving a SIGTERM
# kill signal. Otherwise, the Eggdrop will just save its userfile and rehash.
set die-on-sigterm 1

# Comment these two lines if you wish to enable the .tcl and .set commands.
# If you select your owners wisely, you should be okay enabling these.
unbind dcc n tcl *dcc:tcl
unbind dcc n set *dcc:set

# If you enable this setting, only permanent owners (owner setting) will be
# able to use .tcl and .set. Moreover, if you want only let permanent owners
# use .dump, then set this to 2.
set must-be-owner 1

# Comment out this line to add the 'simul' partyline command (owners can
# manipulate other people on the party line). Please select owners wisely
# and use this command ethically!
unbind dcc n simul *dcc:simul

# Set here the maximum number of dcc connections you will allow. You can
# increase this later, but never decrease it.
set max-dcc 50

# Enable this setting if you want +d & +k users to use commands bound as -|-.
set allow-dk-cmds 1

# If your Eggdrop rejects bots that actually have already disconnected from
# another hub, but the disconnect information has not yet spread over the
# botnet due to lag, use this setting. The bot will wait dupwait-timeout
# seconds before it checks again and then finally reject the bot.
set dupwait-timeout 5


##### MODULES #####

# Below are various settings for the modules included with Eggdrop.
# PLEASE READ AND EDIT THEM CAREFULLY, even if you're an old hand at
# Eggdrop, things change.

# This path specifies the path were Eggdrop should look for its modules.
# If you run the bot from the compilation directory, you will want to set
# this to "". If you use 'make install' (like all good kiddies do ;), this
# is a fine default. Otherwise, use your head :)
set mod-path "modules/"


#### DNS MODULE ####

# This module provides asynchronous dns support. This will avoid long
# periods where the bot just hangs there, waiting for a hostname to
# resolve, which will often let it timeout on all other connections.
loadmodule dns


#### CHANNELS MODULE ####

# This module provides channel related support for the bot. Without it,
# you won't be able to make the bot join a channel or save channel
# specific userfile information.
loadmodule channels

# Enter here the filename where dynamic channel settings are stored.
set chanfile "#katrina-news.chan"

# Set this setting to 1 if you want your bot to expire bans/exempts/invites set
# by other opped bots on the channel.
set force-expire 0

# Set this setting to 1 if you want your bot to share user greets with other
# bots on the channel if sharing user data.
set share-greet 0

# Set this setting to 1 if you want to allow users to store an info line.
set use-info 1

# The following settings are used as default values when you .+chan #chan or .tcl
# channel add #chan. Look in the section below for explanation of every option.

set global-flood-chan 10:60
set global-flood-deop 3:10
set global-flood-kick 3:10
set global-flood-join 5:60
set global-flood-ctcp 3:60
set global-flood-nick 5:60
set global-aop-delay 5:30
set global-idle-kick 0
set global-chanmode "nt"
set global-stopnethack-mode 0
set global-revenge-mode 0
set global-ban-time 120
set global-exempt-time 60
set global-invite-time 60

set global-chanset {
        +autoop         -autovoice
        -bitch          +cycle
        +dontkickops    +dynamicbans
        +dynamicexempts +dynamicinvites
        -enforcebans    +greet
        -inactive       -nodesynch
        -protectfriends +protectops
        -revenge        -revengebot
        -secret         -seen
        +shared         +statuslog
        +userbans       +userexempts
        +userinvites    -protecthalfops
        +autohalfop
}

# Add each static channel you want your bot to sit in using the following
# command. There are many different possible settings you can insert into
# this command, which are explained below.
#
#    channel add #katrina-news {
#      chanmode "+nt-likm"
#      idle-kick 0
#      stopnethack-mode 0
#      revenge-mode 0
#      ban-time 120
#      exempt-time 60
#      invite-time 60
#      aop-delay 5:30
#      need-op { putserv "PRIVMSG #katrina-news :op!" }
#      need-invite { putserv "PRIVMSG #katrina-news :let me in!" }
#      need-key { putserv "PRIVMSG #katrina-news :let me in!" }
#      need-unban { putserv "PRIVMSG #katrina-news :let me in!" }
#      need-limit { putserv "PRIVMSG #katrina-news :let me in!" }
#      flood-chan 10:60
#      flood-deop 3:10
#      flood-kick 3:10
#      flood-join 5:60
#      flood-ctcp 3:60
#      flood-nick 5:60
#    }
#
# chanmode +/-<modes>
#    This setting makes the bot enforce channel modes. It will always add
#    the +<modes> and remove the -<modes> modes.
# idle-kick 0
#    This setting will make the bot check every minute for idle
#    users. Set this to 0 to disable idle check.
#
# stopnethack-mode 0
#    This setting will make the bot de-op anyone who enters the channel
#    with serverops. There are seven different modes for this settings:
#       0 turn off,
#      1 isoptest (allow serverop if registered op)
#      2 wasoptest (allow serverop if op before split)
#      3 allow serverop if isop or wasop
#      4 allow serverop if isop and wasop.
#      5 If the channel is -bitch, see stopnethack-mode 3
#        If the channel is +bitch, see stopnethack-mode 1
#      6 If the channel is -bitch, see stopnethack-mode 2
#        If the channel is +bitch, see stopnethack-mode 4
#
# revenge-mode 0
#   This settings defines how the bot should punish bad users when
#   revenging. There are four possible settings:
#     0 Deop the user.
#     1 Deop the user and give them the +d flag for the channel.
#     2 Deop the user, give them the +d flag for the channel, and kick them.
#     3 Deop the user, give them the +d flag for the channel, kick, and ban them.
#
# ban-time 120
#   Set here how long temporary bans will last (in minutes). If you
#   set this setting to 0, the bot will never remove them.
#
# exempt-time 60
#   Set here how long temporary exempts will last (in minutes). If you
#   set this setting to 0, the bot will never remove them. The bot will
#   check the exempts every X minutes, but will not remove the exempt if
#   a ban is set on the channel that matches that exempt. Once the ban is
#   removed, then the exempt will be removed the next time the bot checks.
#   Please note that this is an IRCnet feature.
#
# invite-time 60
#   Set here how long temporary invites will last (in minutes). If you
#   set this setting to 0, the bot will never remove them. The bot will
#   check the invites every X minutes, but will not remove the invite if
#   a channel is set to +i. Once the channel is -i then the invite will be
#   removed the next time the bot checks. Please note that this is an IRCnet
#   feature.
#
# aop-delay (minimum:maximum)
# This is used for autoop, autohalfop, autovoice. If an op or voice joins a
# channel while another op or voice is pending, the bot will attempt to put
# both modes on one line.
#   aop-delay 0   No delay is used.
#   aop-delay X   An X second delay is used.
#   aop-delay X:Y A random delay between X and Y is used.
#
# need-op { putserv "PRIVMSG #katrina-news :op me!" }
#    This setting will make the bot run the script enclosed in brackets
#    if it does not have ops. This must be shorter than 120 characters.
#    If you use scripts like getops.tcl or botnetop.tcl, you don't need
#    to set this setting.
#
# need-invite { putserv "PRIVMSG #katrina-news :let me in!" }
#    This setting will make the bot run the script enclosed in brackets
#    if it needs an invite to the channel. This must be shorter than 120
#    characters. If you use scripts like getops.tcl or botnetop.tcl, you
#    don't need to set this setting.
#
# need-key { putserv "PRIVMSG #katrina-news :let me in!" }
#    This setting will make the bot run the script enclosed in brackets
#    if it needs the key to the channel. This must be shorter than 120
#    characters. If you use scripts like getops.tcl or botnetop.tcl, you
#    don't need to set this setting
#
# need-unban { putserv "PRIVMSG #katrina-news :let me in!" }
#    This setting will make the bot run the script enclosed in brackets
#    if it needs to be unbanned on the channel. This must be shorter than
#    120 characters. If you use scripts like getops.tcl or botnetop.tcl,
#    you don't need to set this setting
#
# need-limit { putserv "PRIVMSG #katrina-news :let me in!" }
#    This setting will make the bot run the script enclosed in brackets
#    if it needs the limit to be raised on the channel. This must be
#    shorter than 120 characters. If you use scripts like getops.tcl or
#    botnetop.tcl, you don't need to set this setting
#
# flood-chan 10:60
#    Set here how many channel messages in how many seconds from one
#    host constitutes a flood. Setting this to 0 or 0:0 disables
#    flood protection for the channel.
#
# flood-deop 3:10
#    Set here how many deops in how many seconds from one host constitutes
#    a flood. Setting this to 0 or 0:0 disables deop flood protection for
#    the channel.
#
# flood-kick 3:10
#    Set here how many kicks in how many seconds from one host constitutes
#    a flood. Setting this to 0 or 0:0 disables kick flood protection for
#    the channel.
#
# flood-join 5:60
#    Set here how many joins in how many seconds from one host constitutes
#    a flood. Setting this to 0 or 0:0 disables join flood protection for
#    the channel.
#
# flood-ctcp 3:60
#    Set here how many channel ctcps in how many seconds from one host
#    constitutes a flood. Setting this to 0 or 0:0 disables ctcp flood
#    protection for the channel.
#
# flood-nick 5:60
#    Set here how many nick changes in how many seconds from one host
#    constitutes a flood. Setting this to 0 or 0:0 disables nick flood
#    protection for the channel.
#
# There are many different options for channels which you can
# define. They can be enabled or disabled using the channel set command by a
# plus or minus in front of them.
#
#   channel set #katrina-news +enforcebans +dynamicbans +userbans +dynamicexempts
#   channel set #katrina-news +userexempts +dynamicinvites +userinvites +protectops
#   channel set #katrina-news +protectfriends +statuslog +revenge -protecthalfops
#   channel set #katrina-news +revengebot +dontkickops +autovoice +autoop +autohalfop
#   channel set #katrina-news -bitch -secret -shared +greet +cycle
#
# A complete list of all available channel settings:
#
# enforcebans
#    When a ban is set, kick people who are on the channel and match
#    the ban?
#
# dynamicbans
#    Only activate bans on the channel when necessary? This keeps
#    the channel's ban list from getting excessively long. The bot
#    still remembers every ban, but it only activates a ban on the
#    channel when it sees someone join who matches that ban.
#
# userbans
#    Allow bans to be made by users directly? If turned off, the bot
#    will require all bans to be made through the bot's console.
#
# dynamicexempts
#    Only activate exempts on the channel when necessary? This keeps
#    the channel's exempt list from getting excessively long. The bot
#    still remembers every exempt, but it only activates a exempt on
#    the channel when it sees a ban set that matches the exempt. The
#    exempt remains active on the channel for as long as the ban is
#    still active.
#
# userexempts
#    Allow exempts to be made by users directly? If turned off, the
#    bot will require all exempts to be made through the bot's console.
#
# dynamicinvites
#    Only activate invites on the channel when necessary? This keeps
#    the channel's invite list from getting excessively long. The bot
#    still remembers every invite, but the invites are only activated
#    when the channel is set to invite only and a user joins after
#    requesting an invite. Once set, the invite remains until the
#    channel goes to -i.
#
# userinvites
#    Allow invites to be made by users directly? If turned off, the
#    bot will require all invites to be made through the bot's console.
#
# autoop
#    Op users with the +o flag as soon as they join the channel?
#    This is insecure and not recommended.
#
# autohalfop
#    Halfop users with the +l flag as soon as they join the channel?
#    This is insecure and not recommended.
#
# bitch
#    Only let users with +o) flag be opped on the channel?
#
# greet
#    Say a user's info line when they join the channel?
#
# protectops
#    Re-op a user with the +o flag if they get deopped?
#
# protecthalfops
#    Re-halfop a user with the +l flag if they get dehalfopped?
#
# protectfriends
#    Re-op a user with the +f flag if they get deopped?
#
# statuslog
#    Log the channel status line every 5 minutes? This shows the bot's
#    status on the channel (op, voice, etc.), the channel's modes, and
#    the number of +m/+o/+v/+n/+b/+e/+I users on the channel. A sample
#    status line follows:
#
#      [01:40] @#katrina-news (+istn) : [m/1 o/1 v/4 n/7 b/1 e/5 I/7]
#
# revenge
#    Remember people who deop/kick/ban the bot, valid ops, or friends
#    and punish them? Users with the +f flag are exempt from revenge.
#
# revengebot
#    This is similar to to the 'revenge' option, but it only triggers
#    if a bot gets deopped, kicked or banned.
#
# autovoice
#    Voice users with the +v flag when they join the channel?
#
# secret
#    Prevent this channel from being listed on the botnet?
#
# shared
#    Share channel-related user info for this channel?
#
# cycle
#    Cycle the channel when it has no ops?
#
# dontkickops
#    Do you want the bot not to be able to kick users who have the +o
#    flag, letting them kick-flood for instance to protect the channel
#    against clone attacks.
#
# inactive
#    This prevents the bot from joining the channel (or makes it leave
#    the channel if it is already there). It can be useful to make the
#    bot leave a channel without losing its settings, channel-specific
#    user flags, channel bans, and without affecting sharing.
#
# seen
#    Respond to seen requests in the channel?  The seen module must be
#    loaded for this to work.
#
# nodesynch
#    Allow non-ops to perform channel modes? This can stop the bot from
#    fighting with services such as ChanServ, or from kicking IRCops when
#    setting channel modes without having ops.
#
# Here is a shorter example:
#
#   channel add #katrina-news {
#     chanmode "+mntisl 1"
#     idle-kick 1
#   }
#   channel set #katrina-news +bitch +enforcebans -greet +revenge +autoop +autovoice


#### SERVER MODULE ####

# This module provides the core server support. You have to load this
# if you want your bot to come on IRC. Not loading this is equivalent
# to the old NO_IRC define.
loadmodule server

# What is your network?
#   0 = EFnet
#   1 = IRCnet
#   2 = Undernet
#   3 = DALnet
#   4 = +e/+I/max-modes 20 Hybrid
#   5 = Others
set net-type 0

# Set the nick the bot uses on IRC, and on the botnet unless you specify a
# separate botnet-nick, here.
set nick "HelpDesk"

# Set the alternative nick which the bot uses on IRC if the nick specified
# by 'set nick' is unavailable. All '?' characters will be replaced by random
# numbers.
set altnick "HelpDesk2"

# Set what should be displayed in the real-name field for the bot on IRC.
set realname "/msg Help Desk hello"

# This is a Tcl script to be run immediately after connecting to a server.
bind evnt - init-server evnt:init_server

proc evnt:init_server {type} {
  global botnick
  putquick "MODE $botnick +i-ws"
}

# Set the default port which should be used if none is specified with
# '.jump' or in 'set servers'.
set default-port 6667

# This is the bot's server list. The bot will start at the first server listed,
# and cycle through them whenever it gets disconnected. You need to change these
# servers to YOUR network's servers.
#
# The format is:
#   server[:port[:password]]
#
# Both the port and password fields are optional; however, if you want to set a
# password you must also set a port. If a port isn't specified it will default to
# your default-port setting.
set servers {
  irc.blessed.net:6667
}

# This setting makes the bot try to get his original nickname back if its
# primary nickname is already in use.
set keep-nick 1

# Set this to 1 if you don't want your the bot to strip a leading '~' on
# user@hosts.
set strict-host 0

# This setting makes the bot squelch the error message when rejecting a DCC
# CHAT, SEND or message command. Normally, Eggdrop notifies the user that the
# command has been rejected because they don't have access. Note that sometimes
# IRC server operators detect bots that way.
set quiet-reject 1

# If you want your bot to answer lower case ctcp requests (non rfc-
# compliant), set this setting to 1. mIRC will do this, most other
# clients will not.
set lowercase-ctcp 0

# Set how many ctcps should be answered at once.
set answer-ctcp 3

# Set here how many msgs in how many seconds from one host constitutes
# a flood. If you set this to 0:0, msg flood protection will be disabled.
set flood-msg 5:60

# Set here how many ctcps in how many seconds from one host constitutes
# a flood. If you set this to 0:0, ctcp flood protection will be disabled.
set flood-ctcp 3:60

# This settings makes the bot cycle forever through the server list until
# it successfully connects to one.
set never-give-up 1

# This setting defines how long Eggdrop should wait before moving from one
# server to another on disconnect. If you set 0 here, Eggdrop will not wait
# at all and will connect instantly. Setting this too low could result in
# your bot being K:Lined.
set server-cycle-wait 60

# Set here how long Eggdrop should wait for a response when connecting to a
# server before giving up and moving on to next server.
set server-timeout 60

# If the number of servers on the net gets below this number, the bot
# will jump to a new server (it will assume it's on the losing end of
# a netsplit). Set this to 0 to turn off. If your bot is running on
# any major IRC network, this should probably be turned off.
set servlimit 0

# Set this to 1 if Eggdrop should check for stoned servers? (where the
# server connection has died, but Eggdrop hasn't been notified yet).
set check-stoned 1

# If you want your bot to exit the server if it receives an ERROR message,
# set this to 1.
set serverror-quit 1

# Set here the maximum number of lines to queue to the server. If you're
# going to dump large chunks of text to people over IRC, you will probably
# want to raise this. 300 is fine for most people though.
set max-queue-msg 300

# If you want Eggdrop to trigger binds for ignored users, set this to 1.
set trigger-on-ignore 0

# Allow identical messages in the mode queue?
set double-mode 1

# Allow identical messages in the server queue?
set double-server 1

# Allow identical messages in the help queue?
set double-help 1

# This optimizes the kick queue. It also traces nick changes and parts in
# the channel and changes the kick queue accordingly. There are three
# different options for this setting:
#   0 = Turn it off.
#   1 = Optimize the kick queue by summarizing kicks.
#   2 = Trace nick changes and parts on the channel and change the queue
#       accordingly. For example, bot will not try to kick users who have
#       already parted the channel.
# ATTENTION: Setting 2 is very CPU intensive.
set optimize-kicks 1

# If your network supports more recipients per command then 1, you can
# change this behavior here. Set this to the number of recipients per
# command, or set this to 0 for unlimited.
set stack-limit 4

### SERVER MODULE - OTHER NETWORKS (net-type 5) ###

# This settings defines how umode +r is understood by Eggdrop. Some networks
# use +r to indicate a restricted connection. If this is your case, and you
# want your bot to leave restricted servers and jump to the next server on its
# list, then set it to 1.
#set check-mode-r 1

# This setting allows you to specify the maximum nick-length supported by your
# network. The default setting is 9. The maximum supported length by Eggdrop
# is 32.
#set nick-len 9

#### CTCP MODULE ####

# This module provides the normal ctcp replies that you'd expect.
# Without it loaded, CTCP CHAT will not work. The server module
# is required for this module to function.
loadmodule ctcp

# Set here how the ctcp module should answer ctcps. There are 3 possible
# operating modes:
#   0: Normal behavior is used.
#   1: The bot ignores all ctcps, except for CHAT and PING requests
#      by users with the +o flag.
#   2: Normal behavior is used, however the bot will not answer more
#      than X ctcps in Y seconds (defined by 'set flood-ctcp').
set ctcp-mode 0

# There are also several variables to help make your bot less noticeable.
# They are: ctcp-version, ctcp-finger, and ctcp-userinfo. You can use set to set
# them to values you'd like.


#### IRC MODULE ####

# This module provides basic IRC support for your bot. You have to
# load this if you want your bot to come on IRC. The server and channels
# modules must be loaded for this module to function.
loadmodule irc

# Set this to 1 if you want to bounce all server bans.
set bounce-bans 1

# Set this to 1 if you want to bounce all server exemptions (+e modes).
# This is disabled if use-exempts is disabled.
set bounce-exempts 0

# Set this to 1 if you want to bounce all server invitations (+I modes).
# This is disabled if use-invites is disabled.
set bounce-invites 0

# Set this to 1 if you want to bounce all server modes.
set bounce-modes 0

# Set here the maximum number of bans you want the bot to set on a channel.
# Eggdrop will not place any more bans if this limit is reached. Undernet
# currently allows 45 bans, IRCnet allows 30, EFnet allows 100, and DALnet
# allows 100.
set max-bans 30

# Set here the maximum number of exempts you want Eggdrop to set on a channel.
# Eggdrop will not place any more exempts if this limit is reached.
set max-exempts 20

# Set here the maximum number of invites you want Eggdrop to set on a channel.
# Eggdrop will not place any more invites if this limit is reached.
set max-invites 20

# There is a global limit for +b/+e/+I modes. This limit should be set to
# the same value as max-bans for networks that do not support +e/+I.
set max-modes 30

# The following settings should be left commented unless the default values
# are being overridden. By default, exempts and invites are on for EFnet and
# IRCnet, but off for all other large networks. This behavior can be modified
# with the following 2 flags. If your network doesn't support +e/+I modes then
# you will be unable to use these features.
#
# Do you want to enable exempts (+e modes)?
#set use-exempts 0

# Do you want to enable invites (+I modes)?
#set use-invites 0

# Set this to 1 if you want the bot to kick for control character/ctcp
# avalanches to a channel. Remember that if it does, it won't ban them.
# This can start kick floods.
set kick-fun 0

# Set this to 1 if you want the bot to ban for control character/ctcp
# avalanches to a channel. This can prevent kick floods, but it also can
# fill the banlist.
set ban-fun 0

# If you want people to be able to add themselves to the bot's userlist
# with the default userflags (defined above in the config file) via the
# 'hello' msg command, set this to 1.
set learn-users 0

# Set here the time (in seconds) to wait for someone to return from a netsplit
# (i.e. wasop will expire afterwards). Set this to 1500 on IRCnet since its
# nick delay stops after 30 minutes.
set wait-split 600

# Set here the time (in seconds) that someone must have been off-channel
# before re-displaying their info line.
set wait-info 180

# Set this to the maximum number of bytes to send in the arguments
# of modes sent to the server. Most servers default this to 200.
set mode-buf-length 200

# Many IRCops find bots by seeing if they reply to 'hello' in a msg.
# You can change this to another word by un-commenting the following
# two lines and changing "myword" to the word wish to use instead of
# 'hello'. It must be a single word.
# unbind msg - hello *msg:hello
# bind msg - myword *msg:hello

# Many takeover attempts occur due to lame users blindly /msg ident'ing to
# the bot and attempting to guess passwords. We now unbind this command by
# default to discourage them. You can enable these commands by commenting the
# following two lines.
unbind msg - ident *msg:ident
unbind msg - addhost *msg:addhost

# Some IRC servers are using some non-standard op-like channel prefixes/modes.
# Define them here so the bot can recognize them. Just "@" should be fine for
# most networks. Un-comment the second line for some UnrealIRCds.

set opchars "@"
#set opchars "@&~"

# If you are so lame you want the bot to display peoples info lines, even
# when you are too lazy to add their chanrecs to a channel, set this to 1.
# *NOTE* This means *every* user with an info line will have their info
# line displayed on EVERY channel they join (provided they have been gone
# longer than wait-info).
set no-chanrec-info 0

### IRC MODULE - IRCnet SPECIFIC FEATURES (net-type 1) ###

# Attention: Use these settings *only* if you set 'net-type' to 1!

# At the moment, the current IRCnet IRCd version (2.10) doesn't support the
# mixing of b, o and v modes with e and I modes. This might be changed in the
# future, so use 1 at the moment for this setting.
set prevent-mixing 1

### IRC MODULE - OTHER NETWORKS (net-type 5) ###

# Attention: Use these settings *only* if you set 'net-type' to 5!

# If your network supports more users per kick command then 1, you can
# change this behavior here. Set this to the number of users to kick at
# once, or set this to 0 for all at once.
#set kick-method 1

# Some networks allow you to stack lots of channel modes into one line.
# They're all guaranteed to support at least 3, so that's the default.
# If you know your network supports more, you may want to adjust this.
# This setting is limited to 6, although if you want to use a higher value,
# you can modify this by changing the value of MODES_PER_LINE_MAX in
# src/chan.h and recompiling the bot.
#set modes-per-line 3

# Some networks don't include the +l limit and +k or -k key modes
# in the modes-per-line (see above) limitation. Set include-lk to 0 for
# these networks.
#set include-lk 1

# Set this to 1 if your network uses IRCu2.10.01 specific /who requests.
# Eggdrop can, therefore, ask only for exactly what's needed.
#set use-354 0

# If your network doesn't use rfc 1459 compliant string matching routines,
# set this to 0.
#set rfc-compliant 1


#### TRANSFER MODULE ####

# The transfer module provides DCC SEND/GET support and userfile transfer
# support for userfile sharing. Un-comment the next line to load it if you
# need this functionality.
#loadmodule transfer

# Set here the maximum number of simultaneous downloads to allow for
# each user.
set max-dloads 3

# Set here the block size for dcc transfers. ircII uses 512 bytes,
# but admits that it may be too small. 1024 is standard these days.
# 0 is turbo-dcc (recommended).
set dcc-block 0

# Enable this setting if you want to copy files into the /tmp directory
# before sending them. This is useful on most systems for file stability,
# but if your directories are NFS mounted, it's a pain, and you'll want
# to set this to 0. If you are low on disk space, you may also want to
# set this to 0.
set copy-to-tmp 1

# Set here the time (in seconds) to wait before an inactive transfer times out.
set xfer-timeout 30


#### SHARE MODULE ####

# This module provides userfile sharing support between two directly
# linked bots. The transfer and channels modules are required for this
# module to correctly function. Un-comment the following line to load
# the share module.
#loadmodule share

# Settings in this section must be un-commented before setting.

# When two bots get disconnected, this setting allows them to create a
# resync buffer which saves all changes done to the userfile during
# the disconnect. When they reconnect, they will not have to transfer
# the complete user file, but, instead, just send the resync buffer.
#
# NOTE: This has been known to cause loss of channel flags and other
# problems. Using this setting is not recommended.
#set allow-resync 0

# This setting specifies how long to hold another bots resync data
# before flushing it.
#set resync-time 900

# When sharing user lists, DON'T ACCEPT global flag changes from other bots?
# NOTE: The bot will still send changes made on the bot, it just won't accept
# any global flag changes from other bots. This overrides the private-globals
# setting (below).
#set private-global 0

# When sharing user lists, if private-global isn't set, which global flag
# changes from other bots should be ignored?
#set private-globals "mnot"

# When sharing user lists, don't accept ANY userfile changes from other
# bots? Paranoid people should use this feature on their hub bot. This
# will force all userlist changes to be made via the hub.
#set private-user 0

# This setting makes the bot discard its own bot records in favor of
# the ones sent by the hub.
# NOTE: No passwords or botflags are shared, only ports and
# address are added to sharing procedure. This only works with hubs that
# are v1.5.1 or higher.
#set override-bots 0


#### COMPRESS MODULE ####

# This module provides provides support for file compression. This allows the
# bot to transfer compressed user files and therefore save a significant amount
# of bandwidth. The share module must be loaded to load this module. Un-comment
# the following line to the compress module.
#loadmodule compress

# Allow compressed sending of user files? The user files are compressed with
# the compression level defined in `compress-level'.
set share-compressed 1

# This is the default compression level used. These levels are the same as
# those used by GNU gzip.
#set compress-level 9


#### FILESYSTEM MODULE ####

# This module provides an area within the bot where users can store and
# manage files. With this module, the bot is usable as a file server. The
# transfer module is required for this module to function. Un-comment
# the following line to load the filesys module.
#loadmodule filesys

# Set here the 'root' directory for the file system.
set files-path "/home/mydir/filesys"

# If you want to allow uploads, set this to the directory uploads
# should be put into. Set this to "" if you don't want people to
# upload files to your bot.
set incoming-path "/home/mydir/filesys/incoming"

# If you don't want to have a central incoming directory, but instead
# want uploads to go to the current directory that a user is in, set
# this setting to 1.
set upload-to-pwd 0

# Eggdrop creates a '.filedb' file in each subdirectory of your file area
# to keep track of its own file system information. If you can't do that (for
# example, if the dcc path isn't owned by you, or you just don't want it to do
# that) specify a path here where you'd like all of the database files to be
# stored instead.
set filedb-path ""

# Set here the maximum number of people that can be in the file area at once.
# Setting this to 0 makes it effectively infinite.
set max-file-users 20

# Set here the maximum allowable file size that will be received (in KB).
# Setting this to 0 makes it effectively infinite.
set max-filesize 1024


#### NOTES MODULE ####

# This module provides support for storing of notes for users from each other.
# Note sending between currently online users is supported in the core, this is
# only for storing the notes for later retrieval.
loadmodule notes

# Set here the filename where private notes between users are stored.
set notefile "LamestBot.notes"

# Set here the maximum number of notes to allow to be stored for each user
# (to prevent flooding).
set max-notes 50

# Set here how long (in days) to store notes before expiring them.
set note-life 60

# Set this to 1 if you want to allow users to specify a forwarding address
# for forwarding notes to another account on another bot.
set allow-fwd 0

# Set this to 1 if you want the bot to let people know hourly if they have
# any notes.
set notify-users 1

# Set this to 1 if you want the bot to let people know on join if they have
# any notes.
set notify-onjoin 1

# Comment out this next line. Otherwise, your bot won't start.
# die "You didn't edit your config file completely like you were told, did you?"


#### CONSOLE MODULE ####

# This module provides storage of console settings when you exit the
# bot or type .store on the partyline.
loadmodule console

# Save users console settings automatically? Otherwise, they have
# to use the .store command.
set console-autosave 1

# If a user doesn't have any console settings saved, which channel
# do you want them automatically put on?
set force-channel 0

# Enable this setting if a user's global info line should be displayed
# when they join a botnet channel.
set info-party 0


#### WOOBIE MODULE ####

# This is for demonstrative purposes only. If you are looking for starting
# point in writing modules, woobie is the right thing.
#loadmodule woobie


#### SEEN MODULE ####

# This module provides very basic seen commands via msg, on channel or via dcc.
# This module works only for users in the bot's userlist. If you are looking for
# a better and more advanced seen module, try the gseen module by G'Quann. You
# can find it at http://www.visions-of-fantasy.de/gseen.mod/.
#loadmodule seen


#### BLOWFISH MODULE ####

# IF YOU DON'T READ THIS YOU MAY RENDER YOUR USERFILE USELESS LATER
# Eggdrop encrypts its userfile, so users can have secure passwords.
# Please note that when you change your encryption method later (i.e.
# using other modules like a md5 module), you can't use your current
# userfile anymore. Eggdrop will not start without an encryption module.
loadmodule blowfish


#### ASSOC MODULE ####

# This module provides assoc support, i.e. naming channels on the botnet.
# You can load it by un-commenting the following line.
#loadmodule assoc


#### WIRE MODULE ####

# This module provides all the standard .wire commands via dcc. It is an
# encrypted partyline communication tool, compatible with wire.tcl. An
# encryption module must be loaded to use this module. Un-comment the
# following line to load the wire module.
#loadmodule wire

#### UPTIME MODULE ####

# This module reports uptime statistics to http://uptime.eggheads.org.
# Go look and see what your uptime is! It takes about 9 hours to show up,
# so if your bot isn't listed, try again later. The server module must be
# loaded for this module to function.
#
# Information sent to the server includes the bot's uptime, botnet-nick,
# server, version, and IP address. This information is stored in a temporary
# logfile for debugging purposes only. The only publicly available information
# will be the bot's botnet-nick, version and uptime. If you do not wish for this
# information to be sent, comment out the following line.
loadmodule uptime

##### SCRIPTS #####

# This is a good place to load scripts to use with your bot.

# This line loads script.tcl from the scripts directory inside your Eggdrop's
# directory. All scripts should be put there, although you can place them where
# you like as long as you can supply a fully qualified path to them.
#
# source scripts/script.tcl

source scripts/alltools.tcl
source scripts/action.fix.tcl

# Use this script for Tcl and Eggdrop downwards compatibility.
# NOTE: This can also cause problems with some newer scripts.
source scripts/compat.tcl

# This script provides many useful informational functions, like setting
# users' URLs, e-mail address, ICQ numbers, etc. You can modify it to add
# extra entries.
source scripts/userinfo.tcl
loadhelp userinfo.help

#######################################################################
#                                                                     #
# rssnews.tcl - RSS news announcer for eggdrop by demond@demond.net   #
#                                                                     #
#               this will announce the updated news from RSS feed(s), #
#               periodically polling the feed(s); supports multiple   #
#               channels, one feed per channel; you only need to set  #
#               the feeds array, see below                            #
#                                                                     #
#        Usage: !rss <news#|*> (read news# or * for headlines list)   #
#                                                                     #
#######################################################################

package require Tcl 8.3
package require eggdrop 1.6
package require http 2.0

namespace eval rssnews {

# set your feed(s) sources here: channel, poll frequency in mins, feed URL

set feeds(#katrina-news) {17 http://today.reuters.com/rss/globalCoverage2/}
set feeds(#katrina-news) {11 http://rss.nola.com/nola_localbreakingnews/index.rss}

# maximum number of announced new headlines
#
variable maxnew 5

# feed fetch timeout in seconds
#
variable timeout 20

# nothing to edit below

variable version "rssnews-1.2"

bind pub  - !rss [namespace current]::news
bind time - *    [namespace current]::timer

putlog "$version by demond loaded"

proc timer {min hour day month year} {
	variable feeds
	if {[info exists feeds]} {
	if {$min} {set min [string trimleft $min 0]}
	foreach {chan feed} [array get feeds] {
		if {$min && $min % [lindex $feed 0] == 0} {
			fetch [lindex $feed 1] $chan
		}
	}}
}

proc fetch {url chan} {
	variable timeout
	variable version; variable token
	set to [expr {$timeout * 1000}]
	set cmd [namespace current]::callback
	::http::config -useragent "$version by demond"
	if {[catch {set t [::http::geturl $url -command $cmd -timeout $to]} err]} {
		putlog "$version: ERROR($chan): $err"
	} {
		set token($t) $chan
	}
}

proc callback {t} {
	variable version; variable token
	set chan $token($t)
	switch -exact [::http::status $t] {
	"timeout" {
		putlog "$version: ERROR($chan): timeout"
	}
	"error" {
		putlog "$version: ERROR($chan): [::http::error $t]"
	}
	"ok" {
		if {[::http::ncode $t] != 200} {
			putlog "$version: ERROR($chan): [::http::code $t]"
		} {
			process [::http::data $t] $chan
		}
	}
	default {
		putlog "$version: ERROR($chan): got EOF from socket"
	}}
	::http::cleanup $t
}

proc process {data chan} {
	variable news; variable hash
	variable maxnew; variable source
	set idx 1; set count 0
	set news($chan) {}; set source($chan) ""
	if {[regexp {(?i)<title>(.*?)</title>} $data -> foo]} {
		append source($chan) $foo
	}
	if {[regexp {(?i)<description>(.*?)</description>} $data -> foo]} {
		append source($chan) " | $foo"
	}
	regsub -all {(?i)<items.*?>.*?</items>} $data {} data
	foreach {foo item} [regexp -all -inline {(?i)<item.*?>(.*?)</item>} $data] {
		regexp {(?i)<title>(.*?)</title>}             $item -> title
		regexp {(?i)<link>(.*?)</link}                $item -> link
		regexp {(?i)<description>(.*?)</description>} $item -> descr
		if {![info exists title]} {set title "(none)"}
		if {![info exists link]}  {set link  "(none)"}
		if {![info exists descr]} {set descr "(none)"}
		strip title link descr
		if {[info exists hash($chan)]} {
		if {[lsearch -exact $hash($chan) [md5 $title]] == -1 && [botonchan $chan]} {
			if {$count < $maxnew} {
				puthelp "privmsg $chan :($idx) $title"
				incr count
			} {
				lappend indices $idx
			}
		}}
		lappend news($chan) [list $title $link $descr]
		lappend hashes [md5 $title]
		incr idx
	}
	if {[info exists indices] && [botonchan $chan]} {
		set count [llength $indices]
		set indices "(indices: [join $indices {, }])"
		puthelp "privmsg $chan :...and $count more $indices" 
	}
	set hash($chan) $hashes
}

proc strip {args} {
	variable html
	foreach a $args {
		upvar $a x
		set amp {& &}
		set x [string map $amp $x]
		set x [string map $html $x]
		while {[regexp -indices {(&#[0-9]{1,3};)} $x -> idxs]} {
			set b [lindex $idxs 0]; set e [lindex $idxs 1]
			set num [string range $x [expr {$b+2}] [expr {$e-1}]]
			if {$num < 256} {
				set x [string replace $x $b $e [format %c $num]]
			}
		}
		regexp {(?i)<!\[CDATA\[(.*?)\]\]>}   $x ->    x
		regsub -all {(?i)</t[dr]><t[dr].*?>} $x { | } x
		regsub -all {(?i)(<p>|<br>|\n)}      $x { }   x
		regsub -all {<[^<]+?>}               $x {}    x
	}
}

proc news {nick uhost hand chan text} {
	variable source
	variable news; variable feeds
	set num [lindex [split $text] 0]
	if {$num == ""} {
		puthelp "notice $nick :Usage: $::lastbind <news#|*>"
		return
	}
	if {$num != "*" && ![string is integer $num]} {
		puthelp "notice $nick :argument must be number or *"
		return
	}
	if {![info exists news($chan)]} {
		puthelp "notice $nick :no news for this channel"
		return
	}
	if {$num == "*"} {
		set idx 1
		if {$source($chan) != ""} {
			set title $source($chan)
		} {
			set title [lindex $feeds($chan) 1]
		}
		puthelp "notice $nick :News source: \002$title\002"
		foreach item $news($chan) {
			puthelp "notice $nick :($idx) [lindex $item 0]"
			incr idx
		}
		return 1
	} {
	if {$num < 1 || $num > [llength $news($chan)]} {
		puthelp "notice $nick :no such news index, try $::lastbind *"
	} {
		set idx [expr {$num-1}]
		puthelp "notice $nick :......title($num): [lindex [lindex $news($chan) $idx] 0]"
		puthelp "notice $nick :description($num): [lindex [lindex $news($chan) $idx] 2]"
		puthelp "notice $nick :.......link($num): [lindex [lindex $news($chan) $idx] 1]"
		return 1
	}}
}

variable html {
	"     \x22  &apos;     \x27  &      \x26  <       \x3C
	>       \x3E        \x20  ¡    \xA1  ¤   \xA4
	¢     \xA2  £    \xA3  ¥      \xA5  ¦   \xA6
	§     \xA7  ¨      \xA8  ©     \xA9  ª     \xAA
	«    \xAB  ¬      \xAC  ­      \xAD  ®      \xAE
	¯     \xAF  °      \xB0  ±   \xB1  ²     \xB2
	³     \xB3  ´    \xB4  µ    \xB5  ¶     \xB6
	·   \xB7  ¸    \xB8  ¹     \xB9  º     \xBA
	»    \xBB  ¼   \xBC  ½   \xBD  ¾   \xBE
	¿   \xBF  ×    \xD7  ÷   \xF7  À   \xC0
	Á   \xC1  Â    \xC2  Ã   \xC3  Ä     \xC4
	Å    \xC5  Æ    \xC6  Ç   \xC7  È   \xC8
	É   \xC9  Ê    \xCA  Ë     \xCB  Ì   \xCC
	Í   \xCD  Î    \xCE  Ï     \xCF  Ð      \xD0
	Ñ   \xD1  Ò   \xD2  Ó   \xD3  Ô    \xD4
	Õ   \xD5  Ö     \xD6  Ø   \xD8  Ù   \xD9
	Ú   \xDA  Û    \xDB  Ü     \xDC  Ý   \xDD
	Þ    \xDE  ß    \xDF  à   \xE0  á   \xE1
	â    \xE2  ã   \xE3  ä     \xE4  å    \xE5
	æ    \xE6  ç   \xE7  è   \xE8  é   \xE9
	ê    \xEA  ë     \xEB  ì   \xEC  í   \xED
	î    \xEE  ï     \xEF  ð      \xF0  ñ   \xF1
	ò   \xF2  ó   \xF3  ô    \xF4  õ   \xF5
	ö     \xF6  ø   \xF8  ù   \xF9  ú   \xFA
	û    \xFB  ü     \xFC  ý   \xFD  þ    \xFE
	ÿ     \xFF
}

}

#  Script: Greetd.tcl
# Version: 0.05b
#  Author: Jeff Fisher <fishy@dlcwest.com>
#
# Updates:
#   12Feb98 - can now select delay time (idea by Angelos7)
#
#   Notes:
#
#    - can do multi-channel multi-lined greet msgs
#    - can either msg all users or just non-users
#    - will only show the greet to one identd or non-identd within 2min
#       or whatever you change the time level too ...
#

# Who to show?
#  0 = all users
#  1 = non-users
set greetd(show) 1

# D
User avatar
demond
Revered One
Posts: 3073
Joined: Sat Jun 12, 2004 9:58 am
Location: San Francisco, CA
Contact:

Post by demond »

read top sticky posts in this forum and in Script Help forum
User avatar
demond
Revered One
Posts: 3073
Joined: Sat Jun 12, 2004 9:58 am
Location: San Francisco, CA
Contact:

Post by demond »

also, you don't have any channels defined in your config, so unless you already used .+chan partyline command to add a channel, your bot don't actually have anything to join

BTW, don't include scripts as parts of your config; include their source file names, using the source Tcl command as shown
g
good
Voice
Posts: 27
Joined: Mon Sep 05, 2005 9:05 pm

Post by good »

What would be the code and where would I put it to define a channel? This is the default 1.6 config. I just edited it.
User avatar
demond
Revered One
Posts: 3073
Joined: Sat Jun 12, 2004 9:58 am
Location: San Francisco, CA
Contact:

Post by demond »

I thought you already learned that # (hash character) in front of something means 'ignore the rest of the line'
g
good
Voice
Posts: 27
Joined: Mon Sep 05, 2005 9:05 pm

Post by good »

I know that. I just don't know where in the script to change.
g
good
Voice
Posts: 27
Joined: Mon Sep 05, 2005 9:05 pm

Post by good »

Fixed it. Thanks.
Locked