#!perl
# $Id: relay-bot.config,v 1.21 2006/03/19 16:47:32 freiheit Exp $
# This is a sample config file; more things will be added to this later.

# Configuration options, 1 = enable, 0 = disable, edit as required...
%config = (
           # Nick/handle/name
           nick => 'relaybot',

	   # Disconnect sleep time in seconds;
	   # How long it sleeps after being disconnected from
	   # a network.  Keep at least 1 second to avoid flooding
	   # servers; setting too high may disconnect you from other
	   # networks
	   disconnect_sleep => 3,
   
	   # Echo public messages
           # You almost certainly want this!
	   echo_public_msg => 1,

	   # Echo private messages
	   echo_private_msg => 1,

	   # Echo public actions
	   echo_public_action => 1,

	   # Echo joins
	   echo_join => 1,

	   # Echo parts
	   echo_part => 1,

	   # Echo nick changes
	   echo_nick => 1,

	   # Echo kicks
	   echo_kick => 1,

	   # Echo channel mode changes
	   echo_cmode => 1,

	   # Echo user mode changes
	   echo_umode => 1,

	   # Echo quits
	   echo_quit => 1,

	   # Set topic on echo channels
	   echo_set_topic => 1,

	   # Echo topic changes
	   echo_topic => 1,

           # Run in the background
           # Note: turning this option on requires that "Proc::Daemon" is
           # installed
	   daemonize => 0,

           # IP Address of interface to connect through.
           # Sometimes needed with multiple
           # ethernet cards. Actually problem in
           # Net::IRC :
           # Ex:  interface_address = '66.92.186.143';
	   interface_address => "",

	   # Log file name. If empty string "", writes
	   # to standard out.
	   logfile => "",

	   # If logfile_buffering is disabled, writes to the
	   # logfile will be immediately written to the file
	   logfile_buffering => 1,
);

# %Relays contains the network, server, and channel info previously contained
# in %hosts and %relay_channels, plus additional info for future additions.
# The old style specifications is still accepted, however.
#
# The 'group'  name specification can be a number or a text string since it 
# is used as a hash key:  Group names such as "public" & "private", or "user",
# "tester", and "developer" will work just fine.
#
# rcv and xmit should be a '0' or '1' however, since they are used as booleans.

%Relays = (
	   
	   # EFNet:
	   ef => {

	       servers => [ "irc.efnet.org",
			    "irc.rt.ru",
			    "efnet.cs.hut.fi",
	       ],

	       channels => {
		   
		   "#relaybot" => {
		       passwd => "",
		       group  => "relaybot",
		       rcv    => 1,
		       xmit   => 1,
		   },
		   
		   "#relay-bot" => {
		       passwd => "",
		       group  => "relay-bot",
		       rcv    => 1,
		       xmit   => 1,
		   },
	       },	
	   },
	   
	   #Undernet:
	   under => {

	       servers => [ "washington.dc.us.undernet.org",
			    "atlanta.ga.US.Undernet.Org",
			    "austin.tx.us.undernet.org",
			    "mclean.va.undernet.org",
			    "us.undernet.org",
			    "undernet.org",
			    "lasvegas.nv.us.undernet.org",
	       ],

	       channels => {

		   "#relaybot" => {
		       passwd => "",
		       group  => "relaybot",
		       rcv    => 1,
		       xmit   => 1,
		   },

		   "#relay-bot" => {
		       passwd => "",
		       group  => "relay-bot",
		       rcv    => 1,
		       xmit   => 1,
		   },
	       },
	   },


	   #OpenProjects
	   op => {

	       servers => [ "irc.openprojects.net",
			    "irc.fandanta.org",
			    "irc.debian.org",
			    "irc.nblug.org",
	       ],

	       channels => {

		   "#relaybot" => {
		       passwd => "",
		       group  => "relaybot",
		       rcv    => 1,
		       xmit   => 1,
		   },

		   "#relay-bot" => {
		       passwd => "",
		       group  => "relay-bot",
		       rcv    => 1,
		       xmit   => 1,
		   },
	       },
	   },


	   #IRCNet
	   ircnet => {

	       servers => [ "irc.stealth.net:6660",
			    "irc.ludd.luth.se:6661",
			    "irc.stealth.net:6661",
			    "irc.ludd.luth.se:6663",
			    "irc.stealth.net:6662",
			    "irc.ludd.luth.se:6668",
			    "irc.missingU.com",
			    "irc.cs.hut.fi",
			    "irc.asmparty.net",
			    "hub1.irc.easynet.net",
			    "irc-1.stealth.net",
			    "irc-2.stealth.net",
			    "irc-3.stealth.net",
			    "irc.ludd.luth.se",
			    "irc.nl.uu.net",
	       ],

	       channels => {

		   "#relaybot" => {
		       passwd => "",
		       group  => "relaybot",
		       rcv    => 1,
		       xmit   => 1,
		   },

		   "#relay-bot" => {
		       passwd => "",
		       group  => "relay-bot",
		       rcv    => 1,
		       xmit   => 1,
		   },
	       },
	   },
);

# relay_channels_extra remains...
# This is a deprecated method for specifying what "group"s are now used for:
# %relay_channels_extra = ('#relaybot' => ['#relay-bot'], 
#                          '#relay-bot' => ['#relaybot']);

my $badpersonpriv = {};
my $normalpriv    = { 'names' => 1 };
my $partjoinpriv  = { %{$normalpriv}, 'part' => 1, 'join' => 1 };
my $operpriv      = { %{$partjoinpriv}, 'restart' => 1, 'quit' => 1, 'op' => 1, 'add' => 1, };
my $allpriv       = { '*' => 1 };

# Those who may do things.  The first match takes precedence.  Patterns are
# evaluated case-insensitively unless they have capital letters in them.
@authorizations = (
		   # This sets "badperson" for nicks like 'tron', 
		   # AOL users and PSI.net users.
#		   [ '^.?.?tr[o0]n|\.aol\.com|\.psi\.net'  => $badpersonpriv 
#		   ],

		   # The two people that run this bot...
#		   [ '^\w+!~?(aqua|eric)@'
#		     .'atlantic\.devin\.com$' 
#		     => $operpriv 
#		   ],

		   # Their girlfriends...
#		   [ '^\w+!~?(echoes|ramoth)@'
#		     .'atlantic\.devin\.com$' 
#		     => $operpriv 
#		   ],

		   # A fairly decent list of handles people we "like" that
		   # come into our channel
#		   [ '^.?(ligeia|requiem|moppet|diphen|whitebird|aigeanta|proteous|freiheit|falsch|dragongrl).?!' 
#		     => $partjoinpriv 
#		   ],

		   # Everybody else.
		   [ '.' => $normalpriv 
		   ],
);

# Users who match an elements in the @auto_ops array will be given ops
# by the bot upon joining a channel.

@auto_ops = (
	# Auto-ops
	'~user@adsl-63-197-80-100\.dsl\.snfc21\.pacbell\.net',     # Static Address
	'~user@63\.197\.80\.100',                                  # IP Number
	'~user@adsl-\d+-\d+-\d+-\d+\.dsl\.snfc21\.pacbell\.net',   # DHCP/Dynamic Address
);

