Action Links

Kevin Stange kevin at simguy.net
Fri Nov 30 16:49:39 EST 2007


Ralf Kistner wrote:
> On Friday 30 November 2007, Kevin Stange wrote:
>> Ralf Kistner wrote:
>>> On Friday 30 November 2007, Andreas Monitzer wrote:
>>>> On Nov 30, 2007, at 15:18, Ralf Kistner wrote:
>>>>
>>>>> For the protocol plugin I'm developing, there are bots that send a  
>>>>> list of
>>>>> commands to the user. I want the user to be able to click on the  
>>>>> commands,
>>>>> which will perform a protocol action. Is this possible at all?
>>>> The XMPP/Jabber plugin has support for this feature under the name "ad- 
>>>> hoc commands". I added this to libpurple on SoC 2007. You might get  
>>>> some hints there on one way to implement this.
>>>>
>>>> andy
>>>>
>>>>
>>> Thanks for the info.
>>>
>>> Although the idea of the commands are similar, I want it to be implemented 
> in 
>>> a different way. The user needs to be able to click on the commands inside 
>>> the conversation window, similar to http links.
>>>
>>> Example conversation with a bot:
>>>
>>> Tradepost: What can we supply u with today?
>>> 1) Tradepost Treasure
>>> 2) Videos
>>> 3) Games
>>> 4) Companions
>>>
>>> User: 3
>>>
>>> Tradepost: Games
>>> 1) The Battle
>>> 2) Trivit
>>> b) Back
>>>
>>> User: 2
>>>
>>> etc.
>>>
>>>
>>> I want the user to be able to click on the text (like a link), instead of 
>>> typing in the number of the command.
>>>
>>> Is this possible?
>>>
>> This isn't necessarily always going to work (depending on your client's
>> capabilities), but if you have your URL handlers enabled with
>> purple-uri-handler (or a client's equivalent), you could use links like
>>
>> aim:goim?screename=<user> ....
>>
>> There are similar URIs for XMPP, etc.
>>
>>
> 
> 
> Thanks, this seems like what I want.
> 
> Is there a way to do this without going through an external browser, or is 
> this done inside gtk? In other words, when a user clicks on a link (inside a 
> conversation) with the mxit protocol 
> (eg "mxit:messsage?user=bot at mxit.co.za&message=command"), I want my protocol 
> to handle the url instead of the browser.
> 
> I tried:
> 
> static void mxitprpl_uri_handler_cb(const char* proto, const char* cmd, 
> GHashTable *params) {
> 	purple_debug_info("mxitprpl", "uri_handler: %s, %s\n", proto, cmd);
> }
> 
> 
> purple_signal_connect_priority(purple_get_core(), "uri-handler", plugin, 
> PURPLE_CALLBACK(mxitprpl_uri_handler_cb), NULL, 
> PURPLE_SIGNAL_PRIORITY_LOWEST);
> 
> but the function is never called.

You need to configure your desktop environment to recognize the specific
URI protocol name to run the purple-uri-handler utility.  Once the
necessary association is configured, it will launch that, rather than a
browser, to load the protocol.

Kevin

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 252 bytes
Desc: OpenPGP digital signature
URL: <http://pidgin.im/pipermail/devel/attachments/20071130/3086fb29/attachment.sig>


More information about the Devel mailing list