Dante
From Botdom Wiki
| |
| | |
| Dante startup sequence. | |
| Developer(s): | nol888 (active), SubjectX52873M (Inactive) |
| Programming language: | PHP |
| Minimum requirements: | PHP 5 |
| Development state: | Discontinued |
| Source model: | Open source |
| Last stable release: | 0.9a (Mar 03, 2007) |
| License type: | Free software (GPL) |
| Influenced by: | Futurism, xbot |
| Website | |
Dante is a bot written by SubjectX52873M to fill the niche of a bot for anything. It doesn't have a specific purpose in mind other than a flexible structure, stable core, and being relatively easy to program for. Its module system (which was gleefully lifted from xbot) allows programmers to modify the bot to do just about anything. It's core was originally modified Futurism code (Core was rewritten at version 0.9). Dante's robust core grace fully handles disconnections from the server and runs much faster than previous bots. (NoodleBot and dAmnBot) Dante is the first bot to include annonated source code, a manual, and extensive documentation with the use of PHPDoc. This allows programmers to easily write new modules and add functionality. So why not give it a try?
Dante's motto: "If it's open source it's not stealing, it's sharing" - Olyrion
Endorsement by Zeros-Elipticus: "Dante is by far, the best bot I've come across for dAmn."
Contents |
A Thanks to the Helpful
I have to thank all the people that inspired and give me pointers on this project, Olyrion, Electricnet, infinity0, and plaguethenet
Current Developers
Listed as: dA username (SVN username) - title
- SubjectX52873M (epochwolf) - Project Lead
- Nol888 (nol888) - Bug Fixer
Known Bugs
- [Fix Available] Dante 0.9a doesn't work with the new dA login system
- Simply either extract the init.php and damn.php file from the latest patched release, extract the whole latest patched release, or download this zip file and unzip it into the bot directory, replacing the old init.php and damn.php.
- [Fix Available] Dante 0.9a doesn't work on revisioned dAmn system
- Untested Patch for /system/classes/damn.php http://botdom.com/wiki/Talk:Dante#0.9a_through_0.4_patch
- To use the patch just copy the getAuthToken and spoof functions and put them in place of the getAuthToken function in the damn class.
- Untested Patch for /system/classes/damn.php http://botdom.com/wiki/Talk:Dante#0.9a_through_0.4_patch
- [Fix Available] idler command is broken
- Fix
- This is to fix the idler command in the games module. Just copy the php file in the zip to the system folder inside the bot's folder.
- Fix
Big Things
(none)
Minor Things
(none)
- Report bugs on the discussion page.
Current Features
- Full Disconnection Handling
- Full pchat support
- Bot user manual
- Flood Protection
- Full Documentation with the use of PHPDoc
- modified xbot 0.87 modules system. Similar but not compatible with xbot modules
- Built in timer class for timed events
- Easy to write scripts
- Builtin ability to ignore users.
- Builtin help for commands.
- Easy to port Futurism modules to Dante.
Downloads
READ THIS: You are downloading Beta software. There is no guarantee this bot will work or be free of errors. Dante was designed on Windows XP using PHP 5.1.2. It has never been tested officially on Windows Vista, Windows 9x/ME. Bot should run on Debian linux but needs the PHP5-CLI package installed and any PHP plugins required by the bot. PHP is cross-platform and Dante is coded mostly cross platform.
Manuals
Beta Copies
Bleeding Edge
- Subversion Repository
- Latest development code is available here. You need a subversion client to check out a copy. It is not recommended that you download the files individually. Support is not provided for installing.
- Do not apply the 0.9a patch to 0.10. Update your checked out copy instead ("svn update" command)
File types
File types
- ZIP is the standard for Windows. They appear as compressed folders in XP and Vista
- RAR is the compression format for WinRAR (A compression program)
- TAR/GZ is a Tarball file, the standard for linux.
Wiki Downloads
Note: BOLD text denotes most current, recommended download.
- This is the patch that was applied: Manual ZIP patch
- Dante 0.9a RAR ZIP TAR/GZ
- Idler Fix
- This is to fix the idler command in the games module. Just copy the php file in the zip to the system folder inside the bot's folder.
- Idler Fix
- Dante 0.9 RAR ZIP TAR/GZ
- Dante 0.8 RAR ZIP
- Dante 0.7a ZIP (ZIP)
- Dante 0.6 ZIP (ZIP)
If you're wondering where 0.7 is, it wasn't released and it's not available.
Mirrors
- Official Dante Download Page -- All Versions
CBDM
- Dante 0.9a (RAR) (ZIP) (TAR.GZ)
- Dante 0.9 (RAR) (ZIP) (TAR.GZ)
- Dante 0.8 (RAR) (ZIP)
- Dante 0.7a (RAR) (ZIP)
- Dante 0.6 (RAR) (ZIP)
Modules
Modules that come with Dante 0.8
- System
- Contains system commands for the bot.
- AI
- Contains Futurism's AI as a Dante module.
- away
- away messages for users without dAx
- Commands: away, back
- games
- Games for Dante
- Commands: roll, word, fnorder, fortune, 8ball, big,dsay, idler
- notes
- Commands: note
- searches
- Commands: g(o+)gle (RegEx for "google")
- welcome
- Advanced flexable welcome system
- Commands: welcome, wt, wtadmin
Installable modules
- Calc module ported from Futurism, made by doofsmack
- DANote
- Trivia module ported from Paradiso. Made by Solitude12
- Gold module Made by goldenskl Includes Spin The Bottle and other new commands.
Derivative Works
Charon 1.0, it's a logging bot based on Dante's core. It's very stable. If you want to create a completely new bot this would be a good starting place as it only has logging and the most basic of commands.
History
I was originally going to write my bot in Python but I was able to get out of a boring HTML class, which I had taken at a previous college. The professor said I could do an independent project instead of the class. I decided to make the bot I was thinking about. As such I had to write it in php because my knowledge of Python is limited at best.
I have been reading the Divine Comedy. That is were the current name comes from. It's a bit odd I know but I didn't want BOT!!! in the title. Bot this, bot that. I wanted something different. I need a real name for the bot before I release it.
I started with the plan to code it completely by myself but after I completed the "rough draft" of my packet handling code I decided to switch to a Futurism core and modified the heck out of it.
Change Log
Version 0.10 (Available from SVN only)
- Flood Protection
- Linux Support (SIGTERM detection and pid file)
- New Modules
- Dios 2.5 Module included with some repairs by Nol888
- Bug Fixes
Version 0.9a Patched
- Patched /system/classes/damn.php for new dAmn login model.
Version 0.9a
- Added addition event data variables for some events
- Improved the Module How To a bit.
- Fixed PHPDoc comments in several files.
- Broken commands in the searches module where removed.
- Added a info subcommand to !user, not all that useful really but I like it.
Bug Fixes
- Vend command in Games module fixed
- Bot was sending the wrong agent in the dAmnclient packet
- BotID was null
Oopies
- Idler command was not fixed.
- A fix has been released just for that. You can find it in three other places on this page.
Version 0.9
- Added event defaults to $access['privs']
- USer class has been completely rewritten
- dAmn::say() prints arrays now.
- Added Debug Levels in place of debug mode.
- Added debug command to dev_tools module
- Added enhanced logs as an advanced option
- Records title/topic changes with the text of the change
- Records members list
- Records a connection count when a user joins.
- Moved form $rooms global to $dAmn->room["#room"]->function()
- Each bot has a session ID that changes each time the bot is run.
- Core has been recoded with a new packet parser.
Bug fixes
- Kick works now.
- Welcome module fixed
- disconnection handling fixed
- Title/topic command fixed.
oopies
- args() function was removed...
- It really should have been removed earlier but I had forgotten about it.
Version 0.8
- Removed reload command.
- Fixed up minor issues.
- Admin events now have subtypes.
- Timer nows allows events to be canceled.
- Added two new functions: load_bsv and save_bsv
- Allows data to be saved and loaded with less code
- Room data is now destroyed when the bot leaves.
- User data is now destroyed when the user leaves the room.
- There is now a counter on the number of connections a user has.
- Removed most of the debug code from the startup.
- Loaded Modules and Scripts are now displayed in a list instead of a huge block of text.
- Configuration is now displayed nicely with a simple two character code for specific errors.
- ok = loaded database successfully.
- x = Primary and secondary do not match.
- !1 = error on primary database file
- !2 = error on secondary database
- !1&2 = Both have errors
- idler command from Futurism ported to the Games module.
- Major update of the PHP Doc comments
Version 0.7a
- Removed Gmail support from release versions because of many issues and bugs
- Removed the unicode character filter (‮ or 202E)
- Added !td, !lock and !term to scripts
Bug Fixes
- Homeroom was not working right.
Version 0.7
- Add REGEX commands names for modules.
- configuration backup
- Bot stores two copies of it's configuration.
- If the primary or secondary is corrupt it restores from the good copy.
- Renamed the "ini" files in config to "vudf"
- Disabled the loop event, just not needed
- Added Gmail Support
- Still very alpha
- Sending email use a gmail account
- Uses the Swift Mailer 2.1.17 email library (http*//swiftmailer.org)
Bug Fixes
- The symbol for beta testers wasn't being handled correctly.
- All module commands with 0 as the priv level where being set as default.
General Changes
- Added Searches module from Futurism.
- Minor changes to
dAmn::checkINI - !commands now doesn't show modules that don't have commands
- Bot now parses out an annoying unicode override character. (‮ or 202E)
- Fixed some spelling errors
Version 0.6
- The members section of
$roomshas changed due to new coding for the members packet. - Access levels can now be set on the bot.
- Added a whole new type of module events, the hook.
- Ignored users and the bot are not parsed out if you use
addHook()instead ofaddEvt() - Used in the echo command.
- Ignored users and the bot are not parsed out if you use
- New function,
is_pchat() - New function,
formatTime() - Fully functional restart command.
- Requires use of the batch file
$botinfoarray removed in favor of numerous constants.
Bug Fixes
- Fixed the split packet bug :D
- Minor fixes
dAmn::CheckINI()updated
General Changes
$botinfohas been replaced by numerous constants instead- Added a privs command to the system module
- Stuff in system\variables.php moved to init.php
Version 0.5
- New priv defaults
- errors, priv level required for "Command does not exit",etc.
- guests, priv level for people not in the user list
- commnads, priv level for commands with the default priv setting
- New access level: Default.
- Default is now a proper setting for commands and events.
- Added ThumbDrive mode for use on thumb drives. The bot doesn't store information until shutdown.
- Disables logging, regardless of other settings
- Logging can be turned on and off
General Changes
- Changes in Metadata
- Changes in where some settings are stored.
- Scripts and Modules now require proper metadata
- To prevent Futurism modules and NoodleBot commands from being used.
- Added a Module HowTo (in rich text format)
Fixed Bugs
- Timer class is now fully functioning.
- Whois timestamps work
- Loads of minor bugs
Version 0.4b
- This is a bug fix for 0.4
- There where a couple of nasty bugs in it that I forget to test for.
- Easier Setup (config.php now holds the 4 needed things: Username, Password, Owner, Trigger)
- All but the password are transfered to bot.ini on the first run.
- The three key items are checked against bot.ini and bot.ini is updated if needed.
- Bot now builds missing bot.ini
Fixed Bugs
- Documention was messed up for 0.4 because of an improper setting in the build script.
- Bot does not work without ignore.ini
- Configuration is now setup from config.php and bot.ini is built if it does not exist.
- Various other bugs
- Fixed Null default privs
Version 0.4
- Added a timer class
- Added
pingpong2()for better disconnection handling.- Sends a malformed packet to the server.
- Uses the error recieved to reset the timeout variable and checks for socket errors at the same time.
- Some fixing to the pchat handling
- Should be in final form
- Can now use @user to refer to pchats
- Much better disconnection handling and detection.
- Switched to Module Metadata (from Futurism 0.3) instead of the other way
- Timeout is set back to 100 seconds.
- Added the welcome module for testing.
Fixed Bugs
- Google script was removed.
- dAmn functions crash the bot if no chatroom was given. (Futurism 0.2e also)
- functions return null if there is no chat room.
General Changes
- Cleaned up the main.php
- Cleaned up modules.php
- Cleaned up users.php
- Renamed files in the system folder.
Known Issues
- Packets are still buggy (Futurism 0.2e, 0.3 also)
Version 0.3
First Alpha Release
- Bot defaults to use stored token to login, gets a new one on a failed login
- Added Timeout code
- Bot now accurately detects disconnects while behind a router.
- Added loop event
- Pchat logging now works
- Added Scripts
- Remeber NoodleBot's commands. Scripts are similar.
- Easier to write than modules and are loaded into memory for faster execution.
Fixed Bugs
- Did not notice a closed socket
- Switched back to
dAmn::pingpong()instead ofdAmn::checkQueues()in the main loop to fix
- Switched back to
General Changes
- Cleaned up system module.
- General code cleanup.
- Lots of new functions for cleaner code in main loop
- Added error handling on most socket calls.
Issues
- Code to prevent the bot from looping infinity on it's own messages is case-sensitive and fails to work if the username is not set in bot.ini.
- Fixed but not in uploaded copy.
- Added
strtolower()on both sides of the if statements to fix. dAmn::getAuthTokensets$config['bot']['username']from the login info.
- Google script is el busto
Oopies
- Password for the account CryptoPolonium was in the documentation.
- Didn't check the scripts for functionality before release.
Version 0.2
Known bugs
- Pchat conversations generate bad file name errors, happens in function
registerChat()
New Features
- Ignore command and builtin ignore list
- Builtin help system (Not a module)
GenerateChatName()fixes pchat so that the order is correct.- The bot's home folder is grabbed from the main.php file's location using
__FILE__
Fixed Bugs
- Fixed a bug that allowed core modules to be turned off
- Pchat totally failed
General Changes
- Most commands moved into modules
Version 0.1
- Added xbot 0.87 module system
- Added new events. Including several success and failure events
- The system folder is scanned for includable files instead of explicately calling each file
Version 0.0
- Switched to Futurism 0.2e core
Misc. Stuff
Bots I'm sharing from:


