Dante

From Botdom Wiki

Jump to: navigation, search
Dante
deviantART stock photo, because Subject can't draw :(
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

No longer in development 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
  • [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.

Big Things

(none)

Minor Things

(none)

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

Dante 0.10

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

damn.php fix

This isn't currently streamlined into the releases, but fixes two bugs which occur in both "main" versions of Dante. Installation instructions included in the zip download:

Fixes brought to you courtesy of tharglet

Note: BOLD text denotes most current, recommended download.

  • Dante 0.10 SVN Patched for SSL Login Bug
    • Zip
      • (includes fixed searches and badwords modules)
This is the patch that was applied: Manual ZIP patch
  • Dante 0.9a Patched for Login Bug
  • 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.
  • 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

CBDM

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

Now located at Dante_Modules

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

  • 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.9b Updated

New Things Now the bots Config is run off Cmd promt and you can edit the information. Downloads There is no download yet as Adding New updates

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 $rooms has 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 of addEvt()
    • Used in the echo command.
  • New function, is_pchat()
  • New function, formatTime()
  • Fully functional restart command.
    • Requires use of the batch file
  • $botinfo array removed in favor of numerous constants.

Bug Fixes

  • Fixed the split packet bug :D
  • Minor fixes
  • dAmn::CheckINI() updated

General Changes

  • $botinfo has 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 of dAmn::checkQueues() in the main loop to fix


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::getAuthToken sets $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:

dAmn Projects by SubjectX52873M
Dante · Kitsune



This work is released under the GNU General Public License, which allows you to freely use, modify, or distribute it, as long as you give these rights to subsequent users of (this work or your derivative of it) too.
Personal tools