+ PurpleBuddy *buddy = purple_find_buddy(account, who);
+
+ //Get message
+ message = purple_markup_strip_html(buffer);
+
+ //Here are prototypes of some functions interesting to implement github feature request #3
+
+ //LOCAL USER:
+ const char* local_alias = purple_account_get_alias(account);
+ const char* local_name = (char *) purple_account_get_name_for_display(account);
+ setenv(ENV_PREFIX "LOCAL_NAME", local_name, 1); //Name of local user - untested
+ setenv(ENV_PREFIX "LOCAL_ALIAS", local_alias, 1); //Alias of local user - untested
+
+ //REMOTE USER (Buddy):
+ //const char * purple_contact_get_alias (PurpleContact *contact)
+ const char* remote_name = purple_buddy_get_name(buddy);
+ const char* remote_alias_only = purple_buddy_get_alias_only(buddy);
+ const char* remote_server_alias = purple_buddy_get_server_alias(buddy);
+ const char* remote_contact_alias = purple_buddy_get_contact_alias(buddy);
+ const char* remote_local_alias = purple_buddy_get_local_alias(buddy);
+ const char* remote_alias = purple_buddy_get_alias(buddy);
+ setenv(ENV_PREFIX "REMOTE_NAME", remote_name, 1); //???
+ setenv(ENV_PREFIX "REMOTE_ALIAS_ONLY", remote_alias_only, 1); //buggy
+ setenv(ENV_PREFIX "REMOTE_SERVER_ALIAS", remote_server_alias, 1); //buggy
+ setenv(ENV_PREFIX "REMOTE_CONTACT_ALIAS", remote_contact_alias, 1); //buggy
+ setenv(ENV_PREFIX "REMOTE_LOCAL_ALIAS", remote_local_alias, 1); //???
+ setenv(ENV_PREFIX "REMOTE_ALIAS", remote_alias, 1); //???
+
+ //Get buddy group
+ PurpleGroup *group = purple_buddy_get_group(buddy);
+ const char *from_group = group != NULL ? purple_group_get_name(group) : ""; //return empty string if not in group
+
+ //Get protocol ID
+ const char *protocol_id = purple_account_get_protocol_id(account);
+ if(!strncmp(protocol_id,PROTOCOL_PREFIX,strlen(PROTOCOL_PREFIX))) protocol_id += strlen(PROTOCOL_PREFIX); //trim out PROTOCOL_PREFIX (eg.: "prpl-irc" => "irc")