|Futurism 0.8 startup screen.|
|Minimum requirements:||Python 2.5|
|Source model:||Open source|
|Last stable release:||0.8 (Silverado build 801) (November 8, 2008)|
|Last preview release:||0.8.1 (Antennae) (TBA)|
|License type:||MIT License
Codename Futurism, made by electricnet, was an open source, object oriented Python bot, utilizing the Twisted event-driven networking framework to connect to dAmn. It was in beta stage and the basic codebase was expected to stay largely unchanged all the way to the final version—something that never happened, because Elec ran out of ideas and got a thousand of other projects in the subsequent years. The bot has major contributions by .
Futurism was previously a PHP bot, fully compatible with PHP 4 (except on Windows systems), but switched to the new Python codebase with version 0.8 in August 2008. Original development started in Summer 2006, and the bot was one of the first to include a module-type plugin system, which was written by infinity0 and later modified.
The bot ships with only a basic array of required modules, and the user is expected to choose from modules being found in a subsection on this page, and install them additionally.
- 1 Downloads
- 2 Known bugs
- 3 Changelog
- 3.1 0.8 - Silverado (beta)
- 3.2 0.3.6 - Magellanic D
- 3.3 0.3.5 - Magellanic C
- 3.4 0.3.4.1 - Magellanic B
- 3.5 0.3.4 - Magellanic B
- 3.6 0.3.3 - Magellanic
- 3.7 0.3.2
- 3.8 0.3.1
- 3.9 0.3
- 3.10 0.2e
- 3.11 0.2d F (security fix)
- 3.12 0.2d
- 3.13 0.2c
- 3.14 0.2b
- 3.15 0.2a (alpha)
- 3.16 0.1d
- 3.17 0.1c
- 3.18 0.1b
- 3.19 0.1a (pre-alpha)
- 4 Derivative work
- 5 See also
The last beta version of Futurism is available for download here.
- Futurism 0.8 (Silverado) zip (UPDATED build 801 — this one is most probably the one you want) (md5: 2ce0d488305fe296d0865013a83d7417)
- Futurism 0.3.6 (Magellanic D) zip legacy release (md5: 9414fb7aa74c26eedf6007642efc31e7)
These are the older builds. You need a username and a password to download versions prior to 0.3.
- Futurism 0.8 (Silverado) zip (original build) (changelog) (md5: f0bbc5617cc28abd9acd2dfef8f9ddf9)
- Futurism 0.3.5 zip (changelog) (md5: 3c14ac7700103e455ed33564f641b72e)
- Futurism 0.3.4.1 zip (md5: 465e045c146b9a5a1690a86b661641e7)
- Futurism 0.3.4 zip (changelog) (md5: 29e80cda04bddd185eece6e54c718d18)
- Futurism 0.3.3 zip (changelog) (md5: b638aba76fcc7359b54964def7d17a35)
- Futurism 0.3.2 zip (changelog) (md5: fec216bba669588214e9130d79b8c26d)
- Futurism 0.3.1 (changelog) (md5: 64660220176e67a7dcef541eff64dac9)
- Futurism 0.3 (changelog) (md5: 1e48fc46b8b78e8e1004ef009c9f5605)
- FUTURISM 0.3 developer preview (changelog) (md5: 4a5257613df55a0774688b45ba91b37a)
- FUTURISM 0.2e (changelog) (md5: 4bd22df400f6bfbe3d6c693b0d323d21)
- FUTURISM 0.2d F (changelog) (md5: 25f8a15159bf1aec66febe9a30bc4bef)
- FUTURISM 0.2d (changelog) (md5: e56794a7424ae5f636ee3501acf05323)
- FUTURISM 0.2b (changelog) (md5: ba6baeb43079052207c1c90b4ed00211)
- FUTURISM 0.2a (changelog) (md5: f23290a4dd632eedef81e5e4232d16a2)
- FUTURISM 0.1d (changelog) (md5: 82e63714cfafca5c0de9ca7c493bdcbf)
- FUTURISM 0.1c (changelog) (md5: fc9aea9559183f6c29005dbd63d25b14)
- FUTURISM 0.1b (changelog) (md5: 52fd3f3b7283846e65033ee28c28d25e)
- FUTURISM 0.1a (changelog) (md5: 9795067aececa2842862eca70d62fdcd)
Futurism versions 0.3.5 and prior are released under the GNU General Public License, which means you can freely download it and share it with others.
Here are the list of modules that are currently available for download for Futurism. This will be organized better in the future (probably not).
- mod-get - Used to automatically download/install other modules. - Version 0.2.2 by cthom06
- games - A collection of common bot games (rr, shoot, roll, stb, 8ball) - Version 0.3, by cthom06
- google Provides Google search - Version 1.0, ported.
- notes - Provides the note command for leaving other users notes. - Version 0.3.1, by cthom06
- responses - Very basic response module. - Version 0.2, by cthom06
- welcomes - Set automatic welcome message for your chatroom. - Version 0.2, by cthom06
- scripts - A module that makes you able to add quick PHP command scripts. This is not a replacement for using modules! - Version 0.9 beta, by electricnet
- Tarnote - This is a script used to send notes using the main dA notes system. - Version 2.2, by the dANote team
- welcome - This module can be used to welcome people to your own chatroom! There is still currently stuff to be done for this module. - Version 0.4, by Photofroggy
- applicationlaunch - This module can be used to launch applications on your computer remotely from your bot! Warning: Launching applications pauses your bot until the application is closed! - Version 1.0, by Photofroggy and electricnet
- term - Shows predefined terms that are stored locally. - Version 1, by Photofroggy
- idler - Shows your status on . Uses 24bps text gateway, so is faster than most idle scripts (of course depending a bit on your internet connection). - Version 1.0, by electricnet
- Maltriv - This is a fully functional trivia module for Futurism! Has all of the trivia commands and allows multiple hints and answers for questions. - Version 1.1, by Photofroggy
This is a list of all the known bugs in the current version. If you find any, please add it here, or note. Future releases will focus on fixing as many as these bugs as possible.
evt_propertyevent is not correctly implemented.
- There is a lot of extra code added to setProperty in dAmnChatroom that is not present in dAmnNs.
This is the list of changes which has been occuring throughout the development of Futurism. The small dates are the days that the versions got published.
0.8 - Silverado (beta)
Named after the Silverado Galaxy, 98 mly away. (2008-08-20 — updated 2008-11-08)
- The biggest release in Futurism's history. Only the most important changes are listed below.
- Completely rewritten in Python
- Using Twisted networking framework to achieve a pure non-blocking and multitasking connection
- Works out of the box in Unix-style environments using code snippets from efforts by infinity0 and photofroggy
- Almost everything in this version is an object; large things like dAmn and the gate, and small things like packets and even commands. Especially the latter gives great advantages to extension programmers.
- All internal commands finally moved to modules. This way, they are actually also displayed in the !commands list. Hooray!
- A complete new minimalistic module system. Automatic target chatroom handling makes commands more flexible!
- Module reloading built in!
- Timer management built in using Twisted's <python-inline>reactor.callLater</python-inline> method!
- Basic support for colour management on Windows! (Will be extended later)
- Build 801: Fixed the dA login problems by connecting only using a secure connection. Requires PyOpenSSL Python module.
0.3.6 - Magellanic D
Named after the Magellanic Clouds. Legacy release. (2008-11-08)
- Fixed the dA login problems by connecting only using a secure connection. Requires OpenSSL to be activated with PHP.
0.3.5 - Magellanic C
Named after the Magellanic Clouds. (2008-05-04)
- Added internal autoreconnect, works on all platforms!
- Finally added users array to <php-inline>$dAmn->properties</php-inline>!
- Changed logfile to add "Current users in #channelname" upon joining
- Changed debugWrite to include timestamps
- Remade the config file a bit
- Fixed a bug in the .bat autorestart system
- This was the first release in over a year that wasn't a 100% bug fix!
0.3.4.1 - Magellanic B
Named after the Magellanic Clouds. (2008-01-30)
- Fixed the authentication bug of January 29th.
0.3.4 - Magellanic B
Named after the Magellanic Clouds. (2007-11-23)
- Yet another bug fix.
- Package splitting is 100% fixed!
- Regex commands now actually are turned off when the module is deactivated.
- Memberdata upon another person joining the room are now correctly split into an array.
- The 'name' input for the <php-inline>define()</php-inline> function is now the string it's supposed to be.
- Bug in calculator module fixed.
- Fixed various spelling mistakes.
- The password now removes itself from the <php-inline>$botinfo</php-inline> variable no matter if you get an authtoken or not.
0.3.3 - Magellanic
Named after the Magellanic Clouds. (2007-06-19)
- This is a bug fix.
- The bot no longer continues if there's no authtoken available. It immediately quits.
- Fixed/semi-fixed the packet split bug.
- Line breaks no longer parsed as
- You can no longer remove the owner of the bot from the bot's admin privclass.
- The !modules list now displays a message when there's no modules. The bot now also displays a similar message upon startup.
- The !commands list no longer displays a module that has no commands.
- Now works if the PHP executable is in a folder with spaces in it.
&imgtablumps now correctly parsed.
title=""and other assorted empty tag properties now only get hidden if they're actually inside a tag.
- The ShadowdAx color
abbrtags now no longer clash with command arguments.
- This is mainly a bug fix.
- Logging bug fixed.
- preg_match() bug in !uptime fixed.
- Fixed AI bug
- Fixed various !whois bugs.
- Changed !quit force to just !quit and the old !quit to !quit soft since I'm guessing more people want it to close with no hassle when they type !quit.
- Performed various updates to the <php-inline>quit()</php-inline> function.
- Improved the disconnection debugger a bit.
- The bot now only sees itself as connected when receiving a successful answer to the handshake, not when just sending the handshake. Same for login.
- Bot username no longer case sensitive (on log in, the bot gets the correct username casing from the dAmnServer)
- Added a mechanism that detects whether we haven't received anything from the socket in 2 minutes (pings included), and announces a disconnect if this is the case.
- On that same note, I added an autorestart, so if the bot ends up disconnecting, it reconnects automatically! This can be set on or off in the config. On by default. (So far this only works on Windows, but this will be changed.)
- Added !debug which you can use to turn debug mode on or off on runtime.
- Scripts module now included by default
- Searches module now only has the !google command.
- Added the event
rawwhich runs every time a raw packet is received. In this event, you can also decide whether to process the packet afterwards.
- The main loop got faster, a lot of things are now only processed once a second.
- The main file now got completely reorganized, process and parse functions got moved to internal/includes/process.php.
- The bot now successfully shows uptime on !quit, and the nasty bug from 0.3 is removed.
- New function, <php-inline>formatTime()</php-inline> got added. This calculates relative time, and is from Dante. This is used in uptime calculation too.
- New commands, !quit force to quit the bot as quick as possible with no hassle (e.g. with no "The bot has quit, restart?"), and a !restart command. The latter is powered by awesome bat code from xbot.
- IMPORTANT FOR DEVELOPERS: The metadata version is now required for a module.
- Apparently, when the bot got kicked, it has never been registered. I fixed that so the bot can now see when it's kicked.
- I also added autorejoin when kicked, for now only globally for all rooms, and the setting is only a variable so far.
- You can now execute something directly to the command line / terminal by using !execute cmd.
- Added ping command that introduced functions <php-inline>microtimeFloat()</php-inline> and <php-inline>pong()</php-inline>.
- Added <php-inline>$sessId</php-inline>, every session gets a special unique id.
- Added <php-inline>debugWrite()</php-inline>, a function dedicated to output debug data in a readible manner. Automatically used when debug mode is on. Everything is saved in a text file,
- Module system is updated and is now the same as in xbot 0.88.
- Made the loop more compact, moved stuff to <php-inline>debugDisconnection()</php-inline> which is now just called <php-inline>disconnection()</php-inline>.
- <php-inline>$socket</php-inline> is moved to the dAmn object, so it's now known as <php-inline>$dAmn->socket</php-inline>.
- <php-inline>$homedirectory</php-inline> is moved to the config file, and is now known as <php-inline>$settings['homedirectory']</php-inline>.
- Added <php-inline>$dAmn->npmsg($message, $chatroom)</php-inline>.
- Tablump parser improved a lot.
- Finally full title and topic compatibility! (On second thought, some new bugs were discovered which will be taken into concern in a later version.)
- Added <php-inline>$dAmn->properties</php-inline> (array). Still unfinished, but includes title and topic for each room. Will be changed at the same time as the topic/title bugs will be fixed. (0.4, anyone?)
- Showing "r" parameter when a room is parted.
- Module metadata added! Any metadata can be added using the comment syntax, but the required ones are Name, Description and Creator.
- Native pchat compatibility! Pchats with the bot and another user is formatted @username, just like channels are formatted #channelname.
- Improved the disconnection debugger a bit more, slightly.
- The Google command got upgraded, the number of o's in "google" determines the amount of search results returned. The max is 10. Idea stolen from the originally modded by .
- Some system variables got changed into constants.
- Added <php-inline>openData("filename")</php-inline> and <php-inline>saveData("filename", "data")</php-inline> (where filename is without extension or folder or anything, just the name) functions which returns and save datas in the savedata folder as either .bsv or .txt files depending on whether they're serialized. Input is mixed variables, serializing is not done before saving the data.
- Finally, fixed minor bugs.
- Added quit command.
- Added module and commands command.
- Added <php-inline>randobullet()</php-inline>
- Triggers now work with 2+ characters.
- Improved the disconnection debugger.
- Fixed a bug that didn't allow the bot to say more than one word when _say'ing something in another room.
0.2d F (security fix)
- This version fixed a security hole introduced in 0.2d, in the add/remove privclass commands.
- Furthermore, it fixed a problem that had always been in the bot, which caused the bot to ignore commands recieved by guests. This has now been fixed too.
- This is not something you install after installing the bot, this includes the bot.
- The function <php-inline>intF()</php-inline> is now <php-inline>f()</php-inline>. I encourage everyone linking to internal files to wrap this function around their relative paths. Update your scripts!
- Moved most functions in main.php to new file internal/includes/functions.php.
- Moved !about text to the config file.
- Moved the cmd and log timestamps to the config file.
- You can now add and remove privclass using the !user addprivclass and the !user removeprivclass commands.
- Fixed stupid error in the new alias, <php-inline>intMsg()</php-inline>.
- Fixed other small stuff. This version never really became public because of the huge amount of time that went from working on it to working on the next version.
- Now using awesome new calculator designed for Tarbot by .
- The function <php-inline>internalMessage()</php-inline> now has an easier-to-type-if-you're-lasy alias, <php-inline>intMsg()</php-inline>.
- New module; deviants. Includes commands: deviantinfo (better known as whois in NoodleBot), and deviantstats.
- Whois command works much better, the timestamps especially. They are now calculated in a way inspired by the one in dAmnBot, since it was much more awesome than my attempt.
- There's now a modules commands, so you can see what modules you have on and turned on/off. There isn't any way to change the state of them yet from a bot command, though.
- Now you can type debug after the name of the main bot file to see what's going on in the bot. I also added a specific bat file.
- Made minor fixes to the tablump parsing engine.
- A big release.
- Modules work (almost) fully now. Thanks to for creating the awesome script. Go give him monies. Elec ported it to Tarbot, since the original script was built in infinity0's own extension of NoodleBot.
- The bot's file system is now much more organized.
- Tablumps are now properly parsed, so you don't get a weird stack of code when typing a simple smiley.
- The calculator is now disabled, since said he wanted to code a new and more safe one, so w00t for that!
- The execute command, which didn't have any security whatsoever before, is now an owner-only command. IMPORTANT UPDATE!
- I added a whois command, it is much like the /whois from the dAmn system. The timestamps are still a bit weird though.
- Moved all search related commands into a new module called "searches". I'll remove the rest of the command into modules later on.
- Feel free to start creating your own modules!
Maybe nicknamed OLD? (2006-06-22)
- This was a small release. All fixes.
- You now send your username to the talk server when talking to the bot AI. This can be one further step to making the bot recognize you instead of saying "Hello, undefined". It still says undefined as it is, but it is a step in the right direction. This also sends the data in another way that is incompatible with the old way, so the AI does not work in the 0.1c anymore.
- Fixx0red Google command weirdnesses. Long links get shortened, and links are now italicized to separate better from rest of the text.
- Now the Google command also shows a real message when it couldn't find any results for your query.
- You can now have spaces in the ^ action in calc/calculator.
- The sub tag is removed in the calculator because some people disliked it.
Nicknamed LE C or maybe OIC (2006-06-21)
- Okay, a huge release, guys.
- User system for the most, there's now a privilege and user system, and you can add and remove users from the comfort of your own chatroom.
- Added all the normal dAmn commands; say, kick, promote, demote, ban, unban, topic, title, admin.
- Some of those already have magic discovery and subfunctions, like kick.
- And another huge thing. Logs. Logs are now automatically generated in the subfolder /logs, obviously. There's a folder for each room, and in there, a folder for each month. It doesn't say topics, titles, privclasses and members yet, though, that'll probably come later, in a separate file.
- Another huge thing, AI. ALICE AI, also known as AIML. It's much better than the ones the older bots have. It can actually talk intelligently instead of saying Edible Pants and such. The AI is hosted on a tarserver, so the maaaaany amount of answers that the bot has got now doesn't change much of the size.
- The Google command's normal search result amount got changed from 5 to 3. Less spamming.
- Added an awesome autoresponse command with build in fnord and word generator, because said so.
- Fnord by .
- Added an older calculator by electricnet, which still semi-sucks, so it needs to be improved before the full version.
- Added trigcheck response
- Added message in console if the command used does not exist.
- Added Google command, based on the one by . I added that feature j2 wanted.
- Added my own Odeo podcast and audio search.
- Added a wikipedia search engine, although it gives a 403 when getting contents, so it's kinda on hold.
- Err, so later on I fixed some problematic stuff, moved stuff around etc.
- Also added join and part commands.
- Had commands: test, about, credits, autoresponse, calc/calculator, join, part, google, odeo-audiosearch, odeo-podcastsearch, wikipedia
- Initial version
- Included basic dAmn functions and an old module example. The module system used will be dumped soon though.
- Had commands: test and about
Related and derivative bots