############################################################# # Project Zipscript Next Generation - Sitebot Configuration # # (originally by Dark0n3) # # This is configuration for dZSbot.tcl # # # # IMPORTANT! # # ---------- # # DO NOT EDIT THIS FILE! COPY SETTINGS YOU WISH TO CHANGE # # FROM THIS FILE AND PUT THEM IN dZSbot.conf # # # ############################################################# # BASIC CONFIG # ############################################################# # Locations of all the usual files, change is usually only required # if you have another glroot than /glftpd/. set location(PASSWD) "/glftpd/etc/passwd" set location(USERS) "/glftpd/ftp-data/users/" set location(GLCONF) "/etc/glftpd.conf" set location(GROUP) "/glftpd/etc/group" # Log Files - If you wish to read several logfiles, uncomment/add and change the following. #set glftpdlog(NORMAL) "$glroot/ftp-data/logs/glftpd.log" #set loginlog(NORMAL) "$glroot/ftp-data/logs/login.log" #set sysoplog(NORMAL) "$glroot/ftp-data/logs/sysop.log" #set glftpdlog(EXTERNAL) "$glroot/ftp-data/logs/glftpd.log" #set loginlog(EXTERNAL) "$glroot/ftp-data/logs/login.log" #set sysoplog(EXTERNAL) "$glroot/ftp-data/logs/sysop.log" set max_log_change 2048 # These are the binaries the script will use. They are usually best left # as their default values (btw, check that they all are where they should # and chmodded to executable (chmod 755 ). set binary(INCOMPLETE) "/glftpd/bin/incomplete-list.sh" set binary(PASSCHK) "/glftpd/bin/passchk" set binary(SHOWLOG) "/glftpd/bin/showlog" set binary(STATS) "/glftpd/bin/stats" set binary(WHO) "/glftpd/bin/sitewho" set binary(CURL) "/usr/local/bin/curl" set binary(DF) "/bin/df" set binary(PING) "/bin/ping" #set binary(PING) "/sbin/ping" ;# FreeBSD set binary(UPTIME) "/usr/bin/uptime" # Enable dZSbot debug mode, useful for tracking down announce problems. set debugmode "FALSE" # This is needed for autodetection of glversion. If you unset this, use_glftpd2 # MUST be set to TRUE or FALSE. set binary(GLFTPD) "/glftpd/bin/glftpd" # Should the bot die if a binary is missing - or just output that something is wrong? set die_on_error "FALSE" # Allow people to invite themselves to the channel through IRC. WARNING! This is # considered a security threat because if someone steals the nickname of the bot # they will be able to easily harvest usernames/passwords. CONSIDER WITH CAUTION! set enable_irc_invite "TRUE" # Are you using glftpd2? Default setting ("AUTO") should be safe, # enables autodetection (if binary(GLFTPD) is set correctly) # To override autodetection (or if it just doesn't work), you can set # it to "TRUE" or "FALSE". set use_glftpd2 "AUTO" # Are you using something other than glftpd? set ftpd_type "glftpd" # Sitename is for the %sitename-cookie in announces. set sitename "pzs-ng" # Prefix on commands (f. x. !pnfree if cmdpre is !pn, !free if cmdpre is !, etc) # bindnopre does not replace the cmd pre command, it meirly adds a second # trigger option. example: you can set cmdpre to !pn but if bindnopre is set to # "TRUE" then the sitebot will respond to !pnbnc and also !bnc useful for rings. set cmdpre "!pn" set bindnopre "TRUE" # Your sites bandwidth, used for bandwidth usage calculations (in kilobytes/s). # 100mbit full duplex set speed(INCOMING) 12500 set speed(OUTGOING) 12500 # 10mbit full duplex #set speed(INCOMING) 1280 #set speed(OUTGOING) 1280 # 4096/1024 kbit ADSL #set speed(INCOMING) 512 #set speed(OUTGOING) 128 # Speed unit conversions: # # autobyte - Convert to most appropriate byte unit. # autobit - Convert to most appropriate bit unit. # kb - Convert to KB/s # mb - Convert to MB/s # kbit - Convert to Kbit/s # mbit - Convert to Mbit/s # disabled - No conversion set speedmeasure "autobyte" # Threshold used on auto-setting, to move from on to the other. (normally is 1000 or 1024) set speedthreshold 1024 # During !idlers what is the minimum amount of seconds for a user to be shown as idle, # set to 0 to show all users who are not currently upload/downloading (may be a lot). set minidletime 15 # Default number of results to return for !new, !search, !nukes and !unnukes. set default_results 10 # Maximum number of results to return, when the -max parameter is specified. set maximum_results 25 # Required number of alphanumeric characters for the !search pattern. set search_chars 3 # Wether or not we should only care about local devices, ignoring network devices. # This speeds up !df-output, and prevents stalling of the script if NFS/smb/etc-mounts # are dead/hung. set local_devices_only "TRUE" # Definition of hd devices, for free space. Format: "disk sections" # The 'sections' are purely for cosmetic use. # HINT: You can also use the mountpoint instead of the device name (see section ARCHIVE below). set device(0) "/dev/ad0s1f MP3" #set device(1) "/dev/ad0s1e ISO" #set device(2) "/glftpd/site/archive ARCHIVE" # Max length of devices before splitting to new line (note: you need to take # the rest of the announce.FREE into account) Also, it will output the total # on each line, if there are multiple lines. Set to 0 to disable. set dev_max_length 300 ############################################################# # BOUNCERS # ############################################################# # Allow people to check bnc-status using !bnc. In some / many cases, # this is not needed. It will also disable check of binary(CURL). set bnc(ENABLED) "TRUE" # Should we make a ping test too? TRUE/FALSE set bnc(PING) "TRUE" # Connect to the FTP using AUTH TLS? TRUE/FALSE set bnc(SECURE) "TRUE" # List of bouncers to check for the !bnc command. # Format: description:hostname:port set bnc(LIST) "Canada:bnc.host.ca:123 Germany:bnc.host.de:456 Sweden:bnc.host.se:789" # Username and password to use for testing bncs (must exist with this box's ip added) set bnc(USER) "bncuser" set bnc(PASS) "bncpass" # Number of seconds to wait before giving up on connecting to the BNCs (Note that SSL takes extra time) set bnc(TIMEOUT) 20 ############################################################# # SECTIONS # ############################################################# # The sections we allow checking of stats on, remember that the number in # parantheses must be the same as the number of the section in glftpd config. set statsection(0) "DEFAULT" #set statsection(1) "0DAY" #set statsection(2) "ISO" # Which one of the sections above will be used as default (by index) set statdefault "0" # What sections are we announcing for? set sections "" #set sections "0DAY APPS GAMES MP3 MV" # Set up paths for all the sections (wildcards). #set paths(0DAY) "/site/incoming/0day/*" #set paths(APPS) "/site/incoming/apps/*" #set paths(GAMES) "/site/incoming/games/*" #set paths(MP3) "/site/incoming/mp3/*" #set paths(MV) "/site/incoming/musicvideos/*" # Disable certain announce types for sections (wildcards are optional). #set disabletypes(0DAY) "BAD_* HALFWAY_* NEWLEADER_* RACE_* UPDATE_*" #set disabletypes(MP3) "BAD_* UPDATE_*" # Which channels we announce to, separate multiple channels with a single space. set mainchan "" #set chanlist(0DAY) $mainchan #set chanlist(APPS) $mainchan #set chanlist(GAMES) $mainchan #set chanlist(MP3) $mainchan #set chanlist(MV) $mainchan #set chanlist(TEST) $mainchan set chanlist(DEFAULT) $mainchan set chanlist(WELCOME) $mainchan # Which channels should users be invited to (by default, users are invited # to the same channel the invite is announced in). set invite_channels $mainchan # Private invite channels, only users matching the glFTPd-style permissions # are invited to the channel. You may only define one channel per line. #set privchannel(#NG-STAFF) "-glftpd =SiTEOPS =STAFF 1" #set privchannel(#NG-FREAKS) "=FREAKS" #set privchannel(#NG-EVIL) "!-t?st !=FRiENDS *" ############################################################# # ANNOUNCING # ############################################################# # Splits output into several lines. set splitter(CHAR) "\n" # The path to your dZSbot theme file. set announce(THEMEFILE) "themes/default.zst" # Announce types, "SECTION" types are path oriented (COMPLETE: /site/MP3/...), # and "REGULAR" types are regular event based announces. set msgtypes(SECTION) "PRE NEWDIR DELDIR NUKE UNNUKE WIPE WIPE-r BAD_FILE_0SIZE BAD_FILE_BITRATE BAD_FILE_CRC BAD_FILE_DISALLOWED BAD_FILE_DUPENFO BAD_FILE_GENRE BAD_FILE_NOSFV BAD_FILE_SFV BAD_FILE_WRONGDIR BAD_FILE_YEAR BAD_FILE_ZIP BAD_FILE_ZIPNFO BAD_FILE_DUPERELEASE BADBITRATE BADGENRE BADYEAR COMPLETE_AUDIO_CBR COMPLETE_AUDIO_VBR COMPLETE_OTHER COMPLETE_RAR COMPLETE_VIDEO COMPLETE_ZIP COMPLETE_STAT_RACE_AUDIO_CBR COMPLETE_STAT_RACE_AUDIO_VBR COMPLETE_STAT_RACE_OTHER COMPLETE_STAT_RACE_RAR COMPLETE_STAT_RACE_VIDEO COMPLETE_STAT_RACE_ZIP DOUBLESFV RESUMESFV HALFWAY_NORACE_AUDIO HALFWAY_NORACE_OTHER HALFWAY_NORACE_RAR HALFWAY_NORACE_VIDEO HALFWAY_NORACE_ZIP HALFWAY_RACE_AUDIO HALFWAY_RACE_OTHER HALFWAY_RACE_RAR HALFWAY_RACE_VIDEO HALFWAY_RACE_ZIP INCOMPLETE NEWLEADER_AUDIO NEWLEADER_OTHER NEWLEADER_RAR NEWLEADER_VIDEO NEWLEADER_ZIP RACE_AUDIO RACE_OTHER RACE_RAR RACE_VIDEO RACE_ZIP SFV_AUDIO SFV_OTHER SFV_RAR SFV_VIDEO UPDATE_CBR UPDATE_OTHER UPDATE_RAR UPDATE_VBR UPDATE_VIDEO UPDATE_ZIP DLTEST ULTEST SAMPLEDIR SAMPLE_AVI SAMPLE_MPEG1 SAMPLE_MPEG2 SAMPLE_QT SAMPLE_GENERAL" set msgtypes(DEFAULT) "ADDUSER GADDUSER CHGRPADD CHGRPDEL ADDIP DELIP READDED DELUSER PURGED KILLED SYSOP BADHOSTMASK BADMSGINVITE BADPASSWORD BANNEDHOST DELETED EXPIRED LOGIN LOGOUT IPNOTADDED KILLGHOST TAGLINE TIMEOUT DEBUG INVITE MSGINVITE REQFILLED REQUEST TURGEN WHOIS" # Redirect events to the defined channels. #set redirect(LOGIN) "#pzs-ng #ng-staff" #set redirect(LOGOUT) "#pzs-ng #ng-staff" #set redirect(WIPE) "#ng-staff" #set redirect(WIPE-r) "#ng-staff" # This allows you to customize your annoncements depending on the path where # the action is taking place. The string matching is done using the TCL # construct "string match -nocase", so it is case insensitive by default. # PS! This is NOT intended as a way to cutomize each section of a site. It # should work, but would require a LARGE amount of msgreplace() statements. # Remember to create an announce for your custom message in the theme file! # Format: "original message type:string to look for in path:new message type" #set msgreplace(0) "NEWDIR:*/sample:SAMPLE" #set msgreplace(1) "NEWDIR:*/cd?:NEWCD" #set msgreplace(2) "NEWDIR:*/disc?:NEWDISC" #set msgreplace(3) "NEWDIR:*/disk?:NEWDISC" #set msgreplace(4) "NEWDIR:*/subs:SUBTITLES" #set msgreplace(5) "NEWDIR:*/vobsub:SUBTITLES" #set msgreplace(6) "NEWDIR:*/cover:COVERS" #set msgreplace(7) "NEWDIR:*/covers:COVERS" # Set to 0 to allow trigger commands in all channels bot is in, # or set to 1 if you want the triggers to only work in $mainchan set disable(TRIGINALLCHAN) 0 # Are we disabling the announce of this stuff? # If its set to 1, we wont show it. ## Script announcements set disable(ALTWHO) 0 set disable(BADMSGINVITE) 0 set disable(DEFAULT) 0 set disable(INVITE) 0 set disable(MSGINVITE) 0 set disable(WELCOME) 0 ## Login announcements set disable(LOGIN) 1 set disable(LOGOUT) 1 set disable(BADHOSTMASK) 1 set disable(BADPASSWORD) 1 set disable(BANNEDHOST) 1 set disable(DELETED) 1 set disable(EXPIRED) 1 set disable(IPNOTADDED) 1 set disable(KILLGHOST) 1 set disable(TAGLINE) 1 set disable(TIMEOUT) 1 ## Sysop announcements set disable(ADDUSER) 1 set disable(GADDUSER) 1 set disable(CHGRPADD) 1 set disable(CHGRPDEL) 1 set disable(ADDIP) 1 set disable(DELIP) 1 set disable(READDED) 1 set disable(DELUSER) 1 set disable(PURGED) 1 set disable(KILLED) 1 set disable(SYSOP) 1 ## glFTPd announcements set disable(DEBUG) 1 set disable(DELDIR) 0 set disable(NEWDIR) 0 set disable(NUKE) 0 set disable(UNNUKE) 0 set disable(REQFILLED) 0 set disable(REQUEST) 0 set disable(WIPE) 0 set disable(WIPE-r) 0 set disable(DLTEST) 0 set disable(ULTEST) 0 ## Third party announcements set disable(PRE) 0 set disable(TURGEN) 0 ## Zipscript announcements set disable(BAD_FILE_0SIZE) 1 set disable(BAD_FILE_BITRATE) 1 set disable(BAD_FILE_CRC) 1 set disable(BAD_FILE_DISALLOWED) 1 set disable(BAD_FILE_DUPENFO) 1 set disable(BAD_FILE_GENRE) 1 set disable(BAD_FILE_NOSFV) 1 set disable(BAD_FILE_SFV) 1 set disable(BAD_FILE_WRONGDIR) 1 set disable(BAD_FILE_YEAR) 1 set disable(BAD_FILE_ZIP) 1 set disable(BAD_FILE_ZIPNFO) 1 set disable(BAD_FILE_DUPERELEASE) 1 set disable(BADBITRATE) 0 set disable(BADGENRE) 0 set disable(BADYEAR) 0 set disable(COMPLETE_AUDIO_CBR) 0 set disable(COMPLETE_AUDIO_VBR) 0 set disable(COMPLETE_OTHER) 0 set disable(COMPLETE_RAR) 0 set disable(COMPLETE_VIDEO) 0 set disable(COMPLETE_ZIP) 0 set disable(COMPLETE_STAT_RACE_AUDIO_CBR) 0 set disable(COMPLETE_STAT_RACE_AUDIO_VBR) 0 set disable(COMPLETE_STAT_RACE_OTHER) 0 set disable(COMPLETE_STAT_RACE_RAR) 0 set disable(COMPLETE_STAT_RACE_VIDEO) 0 set disable(COMPLETE_STAT_RACE_ZIP) 0 set disable(DOUBLESFV) 0 set disable(RESUMESFV) 0 set disable(HALFWAY_NORACE_AUDIO) 0 set disable(HALFWAY_NORACE_OTHER) 0 set disable(HALFWAY_NORACE_RAR) 0 set disable(HALFWAY_NORACE_VIDEO) 0 set disable(HALFWAY_NORACE_ZIP) 0 set disable(HALFWAY_RACE_AUDIO) 0 set disable(HALFWAY_RACE_OTHER) 0 set disable(HALFWAY_RACE_RAR) 0 set disable(HALFWAY_RACE_VIDEO) 0 set disable(HALFWAY_RACE_ZIP) 0 set disable(INCOMPLETE) 0 set disable(NEWLEADER_AUDIO) 0 set disable(NEWLEADER_OTHER) 0 set disable(NEWLEADER_RAR) 0 set disable(NEWLEADER_VIDEO) 0 set disable(NEWLEADER_ZIP) 0 set disable(RACE_AUDIO) 0 set disable(RACE_OTHER) 0 set disable(RACE_RAR) 0 set disable(RACE_VIDEO) 0 set disable(RACE_ZIP) 0 set disable(SFV_AUDIO) 0 set disable(SFV_OTHER) 0 set disable(SFV_RAR) 0 set disable(SFV_VIDEO) 0 set disable(UPDATE_CBR) 0 set disable(UPDATE_OTHER) 0 set disable(UPDATE_RAR) 0 set disable(UPDATE_VBR) 0 set disable(UPDATE_VIDEO) 0 set disable(UPDATE_ZIP) 0 set disable(SAMPLEDIR) 0 set disable(SAMPLE_AVI) 0 set disable(SAMPLE_MPEG1) 0 set disable(SAMPLE_MPEG2) 0 set disable(SAMPLE_QT) 0 set disable(SAMPLE_GENERAL) 0 ######################################################### # ADVANCED CONFIG, EDIT CAREFULLY # ######################################################### # Space separated list of wildcards that we match against # paths to see if we announce it or not. # REMEMBER: This is CaSe SeNsItIvE. set denypost "" # Do not show these users if they get nuked (multiple entries allowed) set hidenuke "UNKNOWN"