+
+void RibbonConversations::send_im(QString protocol, QString account, QString buddy, QString message)
+{
+ qDebug() << "sending im from" << protocol << account << "to" << buddy << ":" << message;
+ PurpleAccount* p_acct = purple_accounts_find(account.toUtf8(), protocol.toUtf8());
+ PurpleBuddy* p_buddy = purple_find_buddy(p_acct, buddy.toUtf8());
+ // TODO: call the purple functions to send an IM
+ Q_UNUSED(p_buddy);
+}
+
+void RibbonConversations::handleExternalEvent(QString method, QVariantMap context)
+{
+ if (method == "send_im") {
+ // TODO: check args, extract args from context, call send_im
+ if (hasStringMember(context, "proto") && hasStringMember(context, "account")
+ && hasStringMember(context, "buddy") && hasStringMember(context, "message")) {
+ send_im(context["protocol"].toString(), context["account"].toString(),
+ context["buddy"].toString(), context["message"].toString());
+ } else {
+ qWarning() << "Invalid args to send_im:" << context;
+ }
+ }
+}