diff --git a/Contributors b/Contributors index 0ae3875..105fa07 100644 --- a/Contributors +++ b/Contributors @@ -6,7 +6,7 @@ We will add you! == Core developers == - Cardie mantainer(s): + Chat-O-Matic mantainer(s): * Jaidyn Levesque Caya mantainer(s): diff --git a/Makefile.common b/Makefile.common index f0b7d3c..027f7db 100644 --- a/Makefile.common +++ b/Makefile.common @@ -1,5 +1,5 @@ LIBPATHS = $(OBJ_DIR) -PROTOCOL_DIR = $(OBJ_DIR)/cardie/ +PROTOCOL_DIR = $(OBJ_DIR)/chat-o-matic/ DEBUG_ENABLED ?= false DEFINES := VERSION="\"0.0.2\"" \ diff --git a/README.ADDON.md b/README.ADDON.md index 6d7f796..2397dda 100644 --- a/README.ADDON.md +++ b/README.ADDON.md @@ -46,9 +46,9 @@ to offline. `STATUS_OFFLINE` is for a momentary pause, i.e., the server is down or the user toggled the connection. The ChatProtocol will remain existent and active. -If the status is set to offline by the protocol (and not the user!) Cardie will -automatically attempt a reconnect after some time by trying to set the status -to `STATUS_ONLINE`, which should toggle the connection. +If the status is set to offline by the protocol (and not the user!) +Chat-O-Matic will automatically attempt a reconnect after some time by trying to +set the status to `STATUS_ONLINE`, which should toggle the connection. `IM_PROTOCOL_DISABLE` deletes the ChatProtocol, and should only be sent to the app when an irrecoverable error requiring user intervention has happened, i.e., @@ -93,10 +93,10 @@ BMessage('IMst') { ``` The template is a BMessage with sub-messages named "setting", each with, at -least, an internal "name" (the slot used by Cardie in the message parameter of -`UpdateSettings()`), a user-friendly label ("description"), and the slot type -in "type"― currently `B_INT32_TYPE`,` B_STRING_TYPE`, and `B_BOOL_TYPE` are -accepted. +least, an internal "name" (the slot used by Chat-O-Matic in the message +parameter of `UpdateSettings()`), a user-friendly label ("description"), and +the slot type in "type"― currently `B_INT32_TYPE`,` B_STRING_TYPE`, and +`B_BOOL_TYPE` are accepted. By default, slots are not required, and it's accepted for the user to skip them. To make a slot required, put an error message into "error", warning the user @@ -144,14 +144,14 @@ continuity a bit. # Joining a room The basic structure for joining a room should be like this, with each line being a subsequent response to the previous message: - * Cardie (`IM_JOIN_ROOM`/`IM_CREATE_CHAT`) → Protocol - * Protocol (`IM_ROOM_JOINED`/`IM_CHAT_CREATED`) → Cardie - * Cardie (`IM_GET_ROOM_METADATA` & `IM_GET_ROOM_PARTICIPANTS`) → Protocol - * Protocol (`IM_ROOM_METADATA` & `IM_ROOM_PARTICIPANTS`) → Cardie + * App (`IM_JOIN_ROOM`/`IM_CREATE_CHAT`) → Protocol + * Protocol (`IM_ROOM_JOINED`/`IM_CHAT_CREATED`) → App + * App (`IM_GET_ROOM_METADATA` & `IM_GET_ROOM_PARTICIPANTS`) → Protocol + * Protocol (`IM_ROOM_METADATA` & `IM_ROOM_PARTICIPANTS`) → App Preferably, `IM_ROOM_METADATA` and `IM_ROOM_PARTICIPANTS` should only be used as -above (in response to a request from Cardie) since they are silent and don't -explicitly tell the user what's happened― whereas messages like +above (in response to a request from Chat-O-Matic) since they are silent and +don't explicitly tell the user what's happened― whereas messages like `IM_ROOM_PARTICIPANT_JOINED` and `IM_ROOM_SUBJECT_SET` will inform the user of the change. diff --git a/README.md b/README.md index 8cdc14c..1cd86eb 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,8 @@ -# Cardie +# ![Chat-O-Matic Icon](data/icons/AppIcon.png) Chat-O-Matic + ![GSoC 2021](https://img.shields.io/badge/GSoC-2021-green.svg) -Cardie is a multi-protocol chat program based on [Caya](https://github.com/Augustolo/Caya). +Chat-O-Matic is a multi-protocol chat program based on [Caya](https://github.com/Augustolo/Caya). ![Screenshot](data/screenshots/update-3.png) @@ -15,7 +16,7 @@ Protocols generally supported through libpurple include GroupWise, Zephyr, and ## Building -You can make Cardie and its protocols with: +You can make Chat-O-Matic and its protocols with: `$ make` @@ -23,22 +24,22 @@ Or one-by-one: `$ make libs; make app; make protocols` -Cardie itself requires the `expat_devel` package, the XMPP protocol requires +Chat-O-Matic itself requires the `expat_devel` package, the XMPP protocol requires `gloox_devel`, and the libpurple add-on requires `libpurple_devel` and `glib2_devel`― though it's worth noting that libpurple doesn't work on x86_gcc2. ## Installation -Protocol add-ons can be installed in any add-ons directory under `cardie` -(i.e., `~/config/non-packaged/add-ons/cardie/`) or in the binary's CWD -(`./cardie/`). +Protocol add-ons can be installed in any add-ons directory under `chat-o-matic` +(i.e., `~/config/non-packaged/add-ons/chat-o-matic/`) or in the binary's CWD +(`./chat-o-matic/`). libpurple plugins can be installed to any lib directory under `purple-2` (i.e., `~/config/non-packaged/lib/purple-2/`). ## License -Cardie itself is under the MIT license, but licenses vary for the included +Chat-O-Matic is under the MIT license, but licenses vary for the included libraries and add-ons. The `xmpp` and `purple` add-ons are under the GPLv2+, and `irc` the MIT license. diff --git a/application/AppConstants.h b/application/AppConstants.h index 70080a0..70240f8 100644 --- a/application/AppConstants.h +++ b/application/AppConstants.h @@ -22,11 +22,6 @@ const rgb_color APP_SELEND_COLOR = {230, 113, 9}; #define APP_MENTION_BEEP "Chat-o-Matic mention" #define APP_MESSAGE_BEEP "Chat-o-Matic message" -/** - * Miscellaneous. - */ -#define APP_UTF8_MUSICAL_NOTES "\xE2\x99\xAB" - /** * Status codes. */ diff --git a/application/Cardie.h b/application/ChatOMatic.h similarity index 65% rename from application/Cardie.h rename to application/ChatOMatic.h index 5d7750f..b74e5c4 100644 --- a/application/Cardie.h +++ b/application/ChatOMatic.h @@ -5,7 +5,7 @@ #ifndef _APP_H #define _APP_H -#define APP_SIGNATURE "application/x-vnd.cardie" -#define APP_NAME "Cardie" +#define APP_SIGNATURE "application/x-vnd.chat-o-matic" +#define APP_NAME "Chat-O-Matic" #endif // _APP_H diff --git a/application/Cardie.rdef b/application/ChatOMatic.rdef similarity index 72% rename from application/Cardie.rdef rename to application/ChatOMatic.rdef index 0bd71ae..eacc978 100644 --- a/application/Cardie.rdef +++ b/application/ChatOMatic.rdef @@ -1,4 +1,4 @@ -#include "Cardie.h" +#include "ChatOMatic.h" resource app_signature APP_SIGNATURE; @@ -11,7 +11,7 @@ resource app_version { internal = 0, short_info = APP_NAME, - long_info = "©2009-2021 Cardie, Caya, & IMKit Contributors" + long_info = "©2009-2021 Chat-O-Matic, Caya, & IMKit Contributors" }; resource app_flags B_SINGLE_LAUNCH; diff --git a/application/ChatProtocol.h b/application/ChatProtocol.h index 589a9dc..722bb61 100644 --- a/application/ChatProtocol.h +++ b/application/ChatProtocol.h @@ -14,7 +14,7 @@ class BBitmap; -// Cardie protocol interface version +// Chat-O-Matic protocol interface version #define APP_VERSION_1_PRE_ALPHA_1 0x00000001 #define APP_VERSION_1_ALPHA_1 0x00000100 diff --git a/application/Conversation.cpp b/application/Conversation.cpp index 1c806d0..77a19f7 100644 --- a/application/Conversation.cpp +++ b/application/Conversation.cpp @@ -14,7 +14,7 @@ #include "AppConstants.h" #include "AppPreferences.h" -#include "Cardie.h" +#include "ChatOMatic.h" #include "ChatProtocolMessages.h" #include "RenderView.h" #include "ChatCommand.h" diff --git a/application/Makefile b/application/Makefile index 2a4544b..884eb1e 100644 --- a/application/Makefile +++ b/application/Makefile @@ -8,7 +8,7 @@ ## file:///system/develop/documentation/makefile-engine.html # The name of the binary. -NAME = Cardie +NAME = Chat-O-Matic # The type of binary, must be one of: # APP: Application @@ -18,7 +18,7 @@ NAME = Cardie TYPE = APP # If you plan to use localization, specify the application's MIME signature. -APP_MIME_SIG = application/x-vnd.cardie +APP_MIME_SIG = application/x-vnd.chat-o-matic # The following lines tell Pe and Eddie where the SRCS, RDEFS, and RSRCS are # so that Pe and Eddie can fill them in for you. @@ -87,7 +87,7 @@ SRCS = \ # Specify the resource definition files to use. Full or relative paths can be # used. -RDEFS = Cardie.rdef \ +RDEFS = ChatOMatic.rdef \ data/misc/Templates.rdef \ data/icons/status/Away.rdef \ data/icons/status/Busy.rdef \ diff --git a/application/ProtocolLooper.cpp b/application/ProtocolLooper.cpp index 86e905d..6a87b44 100644 --- a/application/ProtocolLooper.cpp +++ b/application/ProtocolLooper.cpp @@ -17,6 +17,7 @@ #include "Account.h" #include "AppMessages.h" +#include "ChatOMatic.h" #include "ChatProtocolMessages.h" #include "Conversation.h" #include "ConversationAccountItem.h" @@ -263,7 +264,7 @@ ProtocolLooper::_InitChatView() BMessage init(IM_MESSAGE); init.AddInt32("im_what", IM_MESSAGE_RECEIVED); - init.AddString("user_name", "Cardie"); + init.AddString("user_name", APP_NAME); init.AddString("body", B_TRANSLATE("I'm rearing to go!")); fSystemChatView->MessageReceived(&init); diff --git a/application/Server.cpp b/application/Server.cpp index 5f7eb41..b832481 100644 --- a/application/Server.cpp +++ b/application/Server.cpp @@ -28,7 +28,7 @@ #include "Account.h" #include "AppMessages.h" #include "AppPreferences.h" -#include "Cardie.h" +#include "ChatOMatic.h" #include "ChatProtocol.h" #include "ConversationInfoWindow.h" #include "ConversationView.h" @@ -284,7 +284,7 @@ Server::ImMessage(BMessage* msg) if (status == STATUS_OFFLINE || status == STATUS_ONLINE) { BMessage info(IM_MESSAGE); info.AddInt32("im_what", IM_MESSAGE_RECEIVED); - info.AddString("user_name", "Cardie"); + info.AddString("user_name", APP_NAME); if (status == STATUS_OFFLINE) info.AddString("body", B_TRANSLATE("Account now offline and disconnected.")); else diff --git a/application/TheApp.cpp b/application/TheApp.cpp index 9c29b38..953cafb 100644 --- a/application/TheApp.cpp +++ b/application/TheApp.cpp @@ -22,7 +22,7 @@ #include #include "AboutWindow.h" -#include "Cardie.h" +#include "ChatOMatic.h" #include "AppMessages.h" #include "FilePanel.h" #include "MainWindow.h" diff --git a/application/Utils.cpp b/application/Utils.cpp index b2fdaba..e34d821 100644 --- a/application/Utils.cpp +++ b/application/Utils.cpp @@ -19,7 +19,7 @@ #include -#include "Cardie.h" +#include "ChatOMatic.h" #include "Utils.h" diff --git a/application/views/ConversationView.cpp b/application/views/ConversationView.cpp index 35363c3..4c5996f 100644 --- a/application/views/ConversationView.cpp +++ b/application/views/ConversationView.cpp @@ -23,6 +23,7 @@ #include "AppMessages.h" #include "AppPreferences.h" +#include "ChatOMatic.h" #include "ChatProtocolMessages.h" #include "Conversation.h" #include "NotifyMessage.h" @@ -630,8 +631,10 @@ ConversationView::_UserMessage(const char* format, const char* bodyFormat, void ConversationView::_FakeChat() { - fNameTextView->SetText(B_TRANSLATE("Cardie setup")); - fSubjectTextView->SetText(B_TRANSLATE("No accounts configured, no joy.")); + BString name(B_TRANSLATE("%app% setup")); + name.ReplaceAll("%app%", APP_NAME); + fNameTextView->SetText(name); + fSubjectTextView->SetText(B_TRANSLATE("No accounts enabled, no joy.")); BMessage obsv(IM_MESSAGE); obsv.AddInt32("im_what", IM_MESSAGE_RECEIVED); diff --git a/application/views/ReplicantStatusView.cpp b/application/views/ReplicantStatusView.cpp index fa071b9..31068b2 100644 --- a/application/views/ReplicantStatusView.cpp +++ b/application/views/ReplicantStatusView.cpp @@ -29,7 +29,7 @@ #include "AppMessages.h" #include "AppPreferences.h" -#include "Cardie.h" +#include "ChatOMatic.h" #include "ChatProtocolMessages.h" #include "ReplicantMenuItem.h" #include "Utils.h" diff --git a/application/views/RosterView.cpp b/application/views/RosterView.cpp index acc6481..20b0393 100644 --- a/application/views/RosterView.cpp +++ b/application/views/RosterView.cpp @@ -20,7 +20,7 @@ #include "AppMessages.h" #include "AppPreferences.h" -#include "Cardie.h" +#include "ChatOMatic.h" #include "ChatProtocolMessages.h" #include "RosterItem.h" #include "RosterListView.h" diff --git a/application/windows/MainWindow.cpp b/application/windows/MainWindow.cpp index cf3547e..35294bf 100644 --- a/application/windows/MainWindow.cpp +++ b/application/windows/MainWindow.cpp @@ -23,7 +23,7 @@ #include "AccountsWindow.h" #include "AppMessages.h" #include "AppPreferences.h" -#include "Cardie.h" +#include "ChatOMatic.h" #include "ChatProtocolAddOn.h" #include "ChatProtocolMessages.h" #include "ConversationItem.h" diff --git a/application/windows/RosterWindow.cpp b/application/windows/RosterWindow.cpp index f836fa2..31441df 100644 --- a/application/windows/RosterWindow.cpp +++ b/application/windows/RosterWindow.cpp @@ -114,7 +114,6 @@ RosterWindow::MessageReceived(BMessage* message) fMessage->AddString("user_id", user_id); fMessage->AddInt64("instance", instance); fTarget->SendMessage(fMessage); - fMessage->PrintToStream(); PostMessage(B_QUIT_REQUESTED); break; } diff --git a/data/icons/AppIcon b/data/icons/AppIcon new file mode 100644 index 0000000..5e6c414 Binary files /dev/null and b/data/icons/AppIcon differ diff --git a/data/icons/AppIcon.png b/data/icons/AppIcon.png new file mode 100644 index 0000000..4c634e2 Binary files /dev/null and b/data/icons/AppIcon.png differ diff --git a/data/icons/AppIcon.rdef b/data/icons/AppIcon.rdef new file mode 100644 index 0000000..50337a7 --- /dev/null +++ b/data/icons/AppIcon.rdef @@ -0,0 +1,19 @@ + +resource vector_icon array { + $"6E6369660E05000200060237E670B8880E39469D39AE144A52234B0D2500C6D7" + $"F5FF6B94DD03EC6666020006023B2B47BB18653D0FA53D225148297046CA1900" + $"FFEC4BFFF0A506020006023B3049396B0ABA90833C646E4A101543299500FFFF" + $"FFFFFFF289020006023C71E33A0C78BA15E43C7D2149055549455700E3EDFFFF" + $"9EC2FF03FFACAC020006023A1DA6393F04BBB5BC3C6B074AEA3648091100F99B" + $"05FFFCB23D03003CB00200060230B31E3A09B9BB024238A12F4BAB534AFF0B00" + $"A3043CFFFFDCE603CD4D4D030D296402000602BD498B3E1159BF219BBE7D2F4B" + $"E71F4AB31300C13E3EFFE27A7A0401740D0A06322E323E42464C3C4C2C3D260A" + $"04322E323E424642350A04322E42354C2C3D260A04423542464C3C4C2C0A0338" + $"423C4D3C440A08335C395C41544F5C555C6051594D3E510A0422422252325A32" + $"490A04224232493C402D3A0A043249325A3C503C400A043E42C35DC27AC751BE" + $"F3493A0A04C35DC27A4E495840C751BEF30A05424BC08BC7B74E5A4E49C35DC2" + $"7A0A053E423E52C08BC7B7424BC35DC27A100A0D0105000A0001003010340117" + $"8400040A0101012010340A0801032010340A0B01042020210A010107000A0001" + $"00302C3401178400040A02010B000A0A010C000A090103202C340A06010A000A" + $"0C0109000A0001001001178400040A030101000A040102000A07010300" +}; diff --git a/protocols/irc/IrcProtocol.cpp b/protocols/irc/IrcProtocol.cpp index 49e9993..8ef2a26 100644 --- a/protocols/irc/IrcProtocol.cpp +++ b/protocols/irc/IrcProtocol.cpp @@ -19,7 +19,7 @@ #include #include -#include +#include #include #include #include @@ -85,7 +85,7 @@ status_t IrcProtocol::UpdateSettings(BMessage* settings) { fNick = settings->FindString("nick"); - fPartText = settings->GetString("part", "Cardie[0.1]: i've been liquified!"); + fPartText = settings->GetString("part", "Chat-O-Matic[0.1]: i've been liquified!"); fUser = settings->FindString("ident"); fRealName = settings->FindString("real_name"); fServer = settings->FindString("server"); @@ -1380,7 +1380,7 @@ IrcProtocol::_AccountTemplate() part.AddString("name", "part"); part.AddString("description", B_TRANSLATE("Part message:")); part.AddInt32("type", B_STRING_TYPE); - part.AddString("default", "Cardie[0.1]: i've been liquified!"); + part.AddString("default", "Chat-O-Matic[0.1]: i've been liquified!"); settings.AddMessage("setting", &part); return settings; diff --git a/protocols/irc/Makefile b/protocols/irc/Makefile index 9b7d874..8efa865 100644 --- a/protocols/irc/Makefile +++ b/protocols/irc/Makefile @@ -8,7 +8,7 @@ ## file:///system/develop/documentation/makefile-engine.html # The name of the binary. -NAME = cardie/irc +NAME = chat-o-matic/irc # The type of binary, must be one of: # APP: Application @@ -18,7 +18,7 @@ NAME = cardie/irc TYPE = SHARED # If you plan to use localization, specify the application's MIME signature. -APP_MIME_SIG = application/x-vnd.cardie.irc +APP_MIME_SIG = application/x-vnd.chat-o-matic.irc # The following lines tell Pe and Eddie where the SRCS, RDEFS, and RSRCS are diff --git a/protocols/irc/irc.rdef b/protocols/irc/irc.rdef index 6bc6b5b..6ce2928 100644 --- a/protocols/irc/irc.rdef +++ b/protocols/irc/irc.rdef @@ -7,7 +7,7 @@ resource app_version { variety = B_APPV_ALPHA, internal = 0, - short_info = "Cardie IRC add-on", + short_info = "Chat-O-Matic IRC add-on", long_info = "©2021 Jaidyn Levesque" }; diff --git a/protocols/purple/Makefile b/protocols/purple/Makefile index c29fada..62a7396 100644 --- a/protocols/purple/Makefile +++ b/protocols/purple/Makefile @@ -8,7 +8,7 @@ ## file:///system/develop/documentation/makefile-engine.html # The name of the binary. -NAME = cardie/purple +NAME = chat-o-matic/purple # The type of binary, must be one of: # APP: Application @@ -18,7 +18,7 @@ NAME = cardie/purple TYPE = APP # If you plan to use localization, specify the application's MIME signature. -APP_MIME_SIG = application/x-vnd.cardie.purple +APP_MIME_SIG = application/x-vnd.chat-o-matic.purple # The following lines tell Pe and Eddie where the SRCS, RDEFS, and RSRCS are # so that Pe and Eddie can fill them in for you. diff --git a/protocols/purple/Purple.h b/protocols/purple/Purple.h index f8f831f..33da253 100644 --- a/protocols/purple/Purple.h +++ b/protocols/purple/Purple.h @@ -19,7 +19,7 @@ #ifndef _PURPLE_H #define _PURPLE_H -#define PURPLE_SIGNATURE "application/x-vnd.cardie.purple" +#define PURPLE_SIGNATURE "application/x-vnd.chat-o-matic.purple" #define PURPLE_ADDON "purple" #endif // _PURPLE_H diff --git a/protocols/purple/PurpleApp.cpp b/protocols/purple/PurpleApp.cpp index 920215e..5f382f8 100644 --- a/protocols/purple/PurpleApp.cpp +++ b/protocols/purple/PurpleApp.cpp @@ -35,7 +35,7 @@ #include #include -#include +#include #include #include diff --git a/protocols/purple/PurpleProtocol.cpp b/protocols/purple/PurpleProtocol.cpp index ac29725..91203b2 100644 --- a/protocols/purple/PurpleProtocol.cpp +++ b/protocols/purple/PurpleProtocol.cpp @@ -27,7 +27,7 @@ #include #include -#include +#include #include #include "Purple.h" diff --git a/protocols/purple/purple.rdef b/protocols/purple/purple.rdef index a48209b..ba8f7db 100644 --- a/protocols/purple/purple.rdef +++ b/protocols/purple/purple.rdef @@ -10,7 +10,7 @@ resource app_version { variety = B_APPV_ALPHA, internal = 0, - short_info = "Cardie libpurple add-on", + short_info = "Chat-O-Matic libpurple add-on", long_info = "©2021 Jaidyn Levesque" }; diff --git a/protocols/xmpp/JabberHandler.cpp b/protocols/xmpp/JabberHandler.cpp index 49cd010..1b32b30 100644 --- a/protocols/xmpp/JabberHandler.cpp +++ b/protocols/xmpp/JabberHandler.cpp @@ -434,8 +434,8 @@ JabberHandler::UpdateSettings(BMessage* msg) fClient->registerMessageSessionHandler(this); fClient->registerMUCInvitationHandler(new InviteHandler(fClient, this)); fClient->rosterManager()->registerRosterListener(this); - fClient->disco()->setVersion("Cardie", VERSION); - fClient->disco()->setIdentity("client", "cardie"); + fClient->disco()->setVersion("Chat-O-Matic", VERSION); + fClient->disco()->setIdentity("client", "chat-o-matic"); fClient->logInstance().registerLogHandler(gloox::LogLevelDebug, gloox::LogAreaAll, this); @@ -1354,7 +1354,7 @@ JabberHandler::_SettingsTemplate(const char* username, bool serverOption) resourceText.AddString("name", "resource"); resourceText.AddString("description", B_TRANSLATE("Resource:")); resourceText.AddInt32("type", 'CSTR'); - resourceText.AddString("default", "Cardie"); + resourceText.AddString("default", "Chat-O-Matic"); resourceText.AddString("error", B_TRANSLATE("You can't add an account " "without a resource.\nDon't worry― it can be whatever string you " "want.")); diff --git a/protocols/xmpp/Makefile b/protocols/xmpp/Makefile index 68ad989..1bdcc68 100644 --- a/protocols/xmpp/Makefile +++ b/protocols/xmpp/Makefile @@ -8,7 +8,7 @@ ## file:///system/develop/documentation/makefile-engine.html # The name of the binary. -NAME = cardie/jabber +NAME = chat-o-matic/jabber # The type of binary, must be one of: # APP: Application @@ -18,7 +18,7 @@ NAME = cardie/jabber TYPE = SHARED # If you plan to use localization, specify the application's MIME signature. -APP_MIME_SIG = application/x-vnd.cardie.xmpp +APP_MIME_SIG = application/x-vnd.chat-o-matic.xmpp # The following lines tell Pe and Eddie where the SRCS, RDEFS, and RSRCS are # so that Pe and Eddie can fill them in for you. diff --git a/protocols/xmpp/jabber.rdef b/protocols/xmpp/jabber.rdef index 4aa9658..f851d2d 100644 --- a/protocols/xmpp/jabber.rdef +++ b/protocols/xmpp/jabber.rdef @@ -7,7 +7,7 @@ resource app_version { variety = B_APPV_ALPHA, internal = 0, - short_info = "Cardie XMPP add-on", + short_info = "Chat-O-Matic XMPP add-on", long_info = "©2010 Pier Luigi Fiorini" };