Ecko

From Botdom Wiki

Jump to: navigation, search
Ecko
Developer(s): AzimuthDragon
Programming language: Ruby
Development state: v0.1.6a
Source model: Open Source
Last stable release: None
License type: Free software (GPL)

Ecko is a deviantART Messaging Network bot written by AzimuthDragon. Development began in March of 2008. This program is being written as a challenge for AzimuthDragon and to increase his understanding of the Ruby programming language.

Contents

Alpha Testing

AzimuthDragon is compiling a list of alpha testers for Ecko. If you are interested in participating, please note him on dAmn or send him an e-mail at programdragon@live.com. :)

About Ecko

Quick Facts

Current Status: In private alpha

Tasks: Await the storm of e-mails

Version: Ecko v0.1.7a

Compatibility Issues: N/A

Known Bugs: N/A

To Do List

  • debug

Features

Suggested

  • Put your suggestions in an e-mail to me (programdragon@live.com) and I will add suggestions here. :)

To be used

  • Logging:
    • Toggle saving logs
    • Toggle logging in specific channels
    • Choose logging directory
  • User Interface (GUI):
    • Chat window with a message box to send messages to channels the bot is in.
    • Settings window ^
    • Options window ^
    • Setup Wizard
    • Toggle colorized output (Colors for system, error, chat, and connection messages)
    • Dump GUI output to a chatroom
    • Enable/disable formatting
    • Enable/disable timestamps
    • Enable/disable GUI itself
  • Ecko Functions:
    • Restart without exiting the bot
    • Write extensions for the program
    • Enable 'Logging Mode', which disables commands for everyone but the owner specified in the configuration, and turning the bot into a idle user that keeps logs.
    • Execute legal Ruby code from the chatroom.
    • If enabled, the bot can prevent from shutting down by rescuing and outputting the error name and location to the chatroom the faulty command was called from.
    • Enable/disable error messages when a bad command is used
    • Custom define the error message used for bad commands
    • Enable/disable verbose output, for advanced users
    • Enable/disable automatic login
    • Enable/disable automatic joining of default chatrooms (In this case it will join the first default chatroom only)
    • Enable/disable dAmn Colors output to the GUI
  • Extensions:
    • Add commands and events easily and set priviliges at the same time
    • Add extension options so that they extension will perform different functions based on the specified options and their values
    • Easily change options from both the GUI and the chatroom while the bot is running without restarting
  • Users:
    • Ban users from the bot but not the chatroom


^: May be incorporated into a single Options window with multiple tabs.

Examples

Here is an example of the System plugin, which responds with the bot's version as defined by the config file, and a link to the Botdom Wiki page for Ecko:

# Create the class for the extension, and make it a child (subclass) of the main Extension class in order 
# to add commands, events, options, and to set plugin information.
class System < Extension
 
  # Assign the configuration to the instance variable, @config.
  @config = Setup.opts()
 
  # Add the command, starting with the name, then the privileges required to use it, and then self to
  # pass the extension class name to run the command if it is called.
  self.add_command('about', 1, self)
 
  # Define the command method, which contains the code to be executed when the command is called.
  # User is the user who called the command, c is the channel it was called from, args is a list of the words in the message,
  # u is a HTML abbreviation tag that you can place in the response to highlight the user without actually showing
  # their name in the message. (<abbr title="#{user}"></abbr>)
  def self.about(user, c, args, u)
 
    # Call the $dAmn object's say method to send a message to the chatroom, the first argument 
    # is c, specifying the chatroom to send the message to (Remember that c is the chatroom
    # that the command was called in).
    $dAmn.say(c, "#{u}I am a bot running <a href=\"http://www.botdom.com/wiki/Ecko\">Ecko</a> #{@config[:version]} by :devAzimuthDragon:.")
 
  # End the command method.
  end
 
# End the extension class.
end

This produces:

I am a bot running Ecko 0.1.6a by =AzimuthDragon

A tutorial on writing extensions and adding options will be included with Ecko.

Other Information

Changelog

See Ecko Changelog

Credits

  • ManjyomeThunder - Thanks for the time and patience and for writing Sapphire, which I used to understand the concepts of programming a chat bot.

Disclaimer

  • I, AzimuthDragon, am not responsible for anything that using this bot may cause on your computer.
    • Ecko has been developed and tested under Microsoft Windows XP, Service Pack 2, and I cannot guarantee that this program will run correctly on other operating systems. This includes, but is not limited to:
      • Mac OS X
      • Linux
      • Microsoft Windows Vista
    • I am also NOT responsible for improper use of this bot. If you cannot use the bot or set it up yourself, then you shouldn't be messing with it. I suggest you learn how to use, operate, and maintain a bot before you try to use Ecko or any other bot available for dAmn or other networks. If you can't figure out how to install Ruby or download Ecko, that is your problem. I will assist you IF you have honestly tried setting up the bot and failed no matter what you do. Of course, if you get an error, please inform me immediately.
Retrieved from "http://botdom.com/wiki/Ecko"
Personal tools