Modify

#272 closed enhancement (fixed)

redesign to use libpurple (previously libgaim)

Reported by: nullstring@… Owned by:
Priority: wishlist Milestone:
Component: BitlBee Version:
Keywords: libpurple libgaim Cc: jasonspiro4@…
IRC client+version: Client-independent Operating System: Public server
OS version/distro:

Description

I think that it would be a very good idea to redesign bitlbee to use libpurple.

I believe that bitlbee was created before libgaim was really in use. AFAIK they have been refactoring the code of Gaim to put most of the 'guts' into libgaim and so, it would now be easy to create an IM client of any interface now.. and doing so would easily allow complete support for any service that libpurple supports.

I gave ticket properties of what I idealy think it should be at, but I realise they will probably be changed. (less the developers agree with me completely)

thanks, nullstring

Attachments (0)

Change History (75)

comment:1 Changed at 2007-04-23T17:39:47Z by wilmer

Milestone: 2.0
Priority: criticalwishlist

They don't agree at all. :-)

libpurple will be added as an option later, maybe. But before I throw away all the code I wrote for IM functionality, please show me that libpurple can also handle 800 users on one server, each of them being connected to, say 2/3 IM accounts, without getting a high load average.

im.bitlbee.org usually has a loadavg around 0.2, has about 700-800 users and does more things than just BitlBee. And it's a Celeron...

comment:2 Changed at 2007-04-23T17:40:14Z by wilmer

BTW, critical priority for a bug that isn't security-related is nonsense, of course.

comment:3 Changed at 2007-04-23T17:52:11Z by nullstring@…

heh, alright.

I forgot you guys are trying to design this for public servers... libpurple would be perfect for each person having their own daemon on their own machine..

comment:4 Changed at 2007-04-23T17:52:59Z by nullstring@…

btw, I didn't intentionally put it on critical. It was supposed to be on major..

comment:5 Changed at 2007-04-23T17:59:06Z by wilmer

Type: taskenhancement

I think that even major should be saved for security-related stuff (more for DoS-like stuff, and critical for things that leak data in some way).

Anyway, it'll eventually appear as an option, maybe. Don't know if I'll do it or wait for someone else to do it. It'd indeed be a nice solution for the home users who want to use Gadu Gadu and stuff like that. But I'm glad you understand it's not good for public servers. :-)

comment:6 Changed at 2007-04-26T07:24:48Z by nullstring@…

I'm looking into making the interface to libpurple myself. it seems like it might be a pretty straight forward project after looking at both API's. the only problem is that it seems that I am probably going to have to use CTCP for all the functionality that bitlbee doesn't support but libpurple does. I hope this solution will work for everything.. somethings I am not so sure about. ie libpurple handles it's own accounts. not sure what I am doing there.

I don't like how you can't add your own commands from a plug-in/protocol, even though it seems like it would be simple to implement.

anyways, it sounds like a cool summer project.

hopefully I stay inspired long enough to make progress.

comment:7 Changed at 2007-05-02T05:21:17Z by wilmer

What do you mean, libpurple insist on keeping its own conffiles with account information?? It should be possible to work around that, though.

And for CTCPs, I'm already thinking of doing something like that too, yes. Just one thing I'm not sure about... CTCPs can apply to buddies, but what if you want to add protocol-specific features that apply to a connection instead of a buddy?

comment:8 Changed at 2007-05-09T18:21:54Z by nullstring@…

I'm not sure if it insists on using it's own configuration for accounts.. but, I for one like this feature and am going to attempt to keep it there if at all possible. (it should make transitions from gaim to bitlbee non-existent.)

I was thinking about making another dummy user to go along with libpurple if I needed to... but, I am gonna avoid this if I can..

what do you think about another command that would allow custom commands for each protocol?
newCommand account accountCmd cmdArgs
or would...
newBot: accountCmd cmdArgs
be better?

I haven't really made any progress yet btw. exams just got over with and I am finally home now... so, I might finally start up on the project. I might wait, however, until I move to another house for work.. in which case I won't be stuck on dial-up >_<

comment:9 in reply to:  description Changed at 2007-05-19T12:23:55Z by anonymous

I haven't read the other replies yet, but I personally think this is a great idea..

comment:10 Changed at 2007-06-16T15:04:33Z by wilmer

Hey,

I was relocating and stuff like that, very busy. Trying to work a bit on JAbber conferencs in the meantime, but that's about all.

I'm not sure about the protocol-specific commands. Maybe an extension to the account command. account set can be used for some things, if you add evaluators. Also I'm thinking of implementing CTCP support so you can do per-buddy protocol-specific things.

Made any progress?

comment:12 Changed at 2007-07-11T15:12:20Z by nullstring@…

I didn't see the e-mail for your last post.. thankfully the spam got me up to date >_>

well, my summer job has taken up a lot more time that I was expecting. I get home I am completely tired and don't feel like doing a damn thing.

So, I wouldn't hold you're breath. I am gonna try to make some progress though.

comment:13 in reply to:  12 Changed at 2007-08-19T07:52:37Z by bernhard.walle@…

Replying to nullstring@terra.chuui.jp:

I didn't see the e-mail for your last post.. thankfully the spam got me up to date >_>

well, my summer job has taken up a lot more time that I was expecting. I get home I am completely tired and don't feel like doing a damn thing.

So, I wouldn't hold you're breath. I am gonna try to make some progress though.

Did you already made some progress? I'd like to see Groupwise support, and libpurpe seems to be the easiest way to get it. So I'd like to offer some help. I also don't have much time, but maybe two people can work faster than only one :)

comment:14 Changed at 2007-12-12T15:07:32Z by anonymous

Can the purple-remote and purple-send dbus scripts be used as a weak type of interface that could be integrated with bitlbee? If so, then this might be an appropriate way to allow for a locally-running instance of bitlbee to access additional protocols and the features of libpurple.

comment:15 in reply to:  1 Changed at 2007-12-21T19:56:53Z by jasonspiro4@…

Replying to wilmer: ...

before I throw away all the code I wrote for IM functionality, please show me that libpurple can also handle 800 users on one server, each of them being connected to, say 2/3 IM accounts, without getting a high load average.

http://thread.gmane.org/gmane.comp.gnome.gaim.devel/10262/focus=10308 implies that libpurple probably *can* handle that many accounts at once, though it doesn't say anything about CPU usage. We should contact the poster of the message and ask him more.

comment:16 Changed at 2007-12-28T20:48:36Z by jasonspiro4@…

I will forward the following message to Christopher Baus <christopher _at_ baus.net>, poster of http://thread.gmane.org/gmane.comp.gnome.gaim.devel/10262/focus=10308:

Hi Christopher,

How CPU-intensive would it be to use libpurple running on a Celeron 2.5GHz to act as a multiprotocol-IM-to-IRC gateway for 800 simultaneous users, each with multiple IM accounts?

I am trying[1] to convince the developers of the BitlBee IM-to-IRC gateway to use libpurple, instead of their own code, as their IM backend. Please reply at the Web form at [1], not to me. No registration required.

[1]. http://bugs.bitlbee.org/bitlbee/ticket/272#comment:15

comment:17 Changed at 2007-12-28T20:53:59Z by jasonspiro4@…

I forwarded the message above.

Wilmer, BTW you don't *have* to run a public server. Even if bitlbee became a bit more CPU-intensive, or even a lot more CPU-intensive, I bet other people would still run public servers. :-) Is your worry about CPU load still the reason you don't want to add libpurple support?

comment:18 Changed at 2007-12-28T22:13:09Z by wilmer

Reporter: changed from nullstring@… to nullstring@…

It's just one of the reasons. I'm not going to throw away weeks of work of writing neat and compact IM modules (especially the brand new Jabber module).

If BitlBee will ever use libpurple, it will be optional for people running their own BitlBee server. There are certainly advantages (more protocols, maybe more features), after all. BTW, don't forget about memory consumption, which is probably more important than CPU usage. IIRC Gaim is quite memory-hungry, and quite a dependency monster.

im.bitlbee.org is at 950 users now BTW. And about 850 MB of RAM in use, and this machine is also running MySQL, Apache, irssi and some e-mail stuff...

comment:19 Changed at 2007-12-28T23:02:25Z by christopher@…

FYI, It has been awhile since I looked at libpurple, but as I remember libpurple uses glib to distributed message events in the main thread. If you do blocking I/O in the message event handlers, CPU utilization will be poor.

If you want it to scale up on the server you will either need to do non-blocking I/O through glib's event loop or create separate threads to handle blocking I/O operations.

You could prototype the solution using blocking I/O, see how it preforms, and add improved concurrency latter.

Personally I would start with libpurple and massage it do what I wanted on the server, rather than attempting to write the messaging layer from scratch.

Hope that helps.

comment:20 Changed at 2007-12-28T23:16:16Z by wilmer

Cc: jasonspiro4@… added
Reporter: changed from nullstring@… to nullstring@…

(Oops, that wasn't the Cc field...)

BitlBee is much older than libpurple, back when the project started there wasn't any multi-protocol IM library available yet. Not for C, at least. So instead BitlBee started with something I called "nogaim" (using Gaim IM modules without the Gaim core itself).

Pretty much all I/O in BitlBee is non-blocking already, and I'd be very surprised if this weren't the case in libpurple.

comment:21 Changed at 2007-12-29T00:57:28Z by christopher@…

Just to clarify:

This is a response to a request for a clarification to an email I posted on the libpurple mailing list. I am ignorant of bitlbee and its workings.

Best,

Chris

comment:22 Changed at 2007-12-29T11:10:00Z by wilmer

Oh yes, I know, sorry. :-) The messaging layer is already there and it works pretty well. From what you describe it looks like the core of libpurple is still similar to how Gaim 0.58 worked. (And how BitlBee works. Although BitlBee can also use libevent instead of GLib now.)

comment:23 Changed at 2009-10-11T12:35:04Z by wilmer

I have a libpurple BitlBee branch now. It logs in, can talk, sees buddies including away states+messages. I'll brush it up a bit more and probably put it online tonight.

comment:24 Changed at 2009-10-19T18:56:44Z by pwnies

Any chance we can see that dev branch put online wilmer? I'd love to try it out.

comment:25 in reply to:  23 Changed at 2009-11-05T12:57:33Z by nflath

Replying to wilmer:

I have a libpurple BitlBee branch now. It logs in, can talk, sees buddies including away states+messages. I'll brush it up a bit more and probably put it online tonight.

I'd also like to try this out.

comment:26 Changed at 2009-11-11T09:31:02Z by domen

So would I.

comment:27 Changed at 2009-11-23T23:28:57Z by wilmer

Alright, to not keep you guys waiting any longer..

http://code.bitlbee.org/wilmer/libpurple/

Note that this is *really* *experimental* !! I've tried it with a few of the common protocols. Plenty of things don't work yet. If you have any problems: That's expected. Please do *not* open new bugs here for them, but feel free to report them either as comments here or via e-mail. Feedback of all other kinds is also more than welcome.

Of course I eventually want to start tracking libpurple-related bugs in this bug tracker, but right now I simply know there are too many of them.

comment:28 Changed at 2009-12-07T14:45:27Z by MentalFS <bitlbee-bugs@…>

If this would perform well I can imagine that this could take away much work from you, since all the IM network stuff would be "outsourced" to the libpurple people.

comment:29 Changed at 2009-12-07T14:54:54Z by Wilmer van der Gaast <wilmer@…>

Yes, but I don't trust libpurple quite enough. BitlBee will continue to have the few IM modules it has right now. They're more stable and less resource-hungry. That's a good thing to have especially on public servers.

libpurple will add support for a bunch of new protocols and complicated features of the existing ones, though. It's definitely a nice thing to have.

comment:30 Changed at 2009-12-09T21:20:11Z by lkraav <leho@…>

perhaps a couple of words on how to configure the libpurple build? help account add purple is not recognized.

comment:31 Changed at 2009-12-10T10:00:34Z by Wilmer van der Gaast <wilmer@…>

It's backward compatible. So just "account add msn ... ..."

Type help purple for a list of supported protocols. Remember this is very experimental stuff, in fact I haven't used it for any normal messaging myself yet, only random testing of all generic features.

comment:32 Changed at 2009-12-10T20:40:23Z by lkraav <leho@…>

you're saying that will use the purple msn plugin? how do i add new purple protocols, compile pidgin and copy libraries or...?

comment:33 Changed at 2009-12-11T11:00:02Z by Wilmer van der Gaast <wilmer@…>

help purple will show a list of all protocols supported by your local libpurple. Adding other protocols is done the usual way; on my Debian box it's a matter of installing a package. If Pidgin can use it, so can BitlBee.

comment:34 Changed at 2009-12-11T12:16:50Z by lkraav <leho@…>

i was missing ./configure --purple=1

comment:35 Changed at 2009-12-31T10:45:53Z by wilmer

Okay people, this stuff needs more testing. :-) I'm using it for a few days myself now and dy in #bitlbee is even running it on his public server already (irc2im.utils.hu).

Since this seems to be stable enough for daily use by now, please file bug reports, especially for any crash bugs (especially ones you can reproduce). Also, feel free to file feature requests.

I added a Purple component to Trac so these things can be filed properly. Minor requests or questions can be posted as comments to this bug, also.

comment:36 Changed at 2010-01-05T22:03:05Z by sd@…

to get notify support on facebook:

http://irc.nfx.cz/patches/notify.patch

running open at irc.nfx.cz:5667

comment:37 Changed at 2010-03-08T01:23:10Z by wilmer

Thanks for the patch, I applied it now, although in a fairly heavily modified form (added a runtime setting to enable/disable these notifications).

How's this stuff working for everyone?

comment:38 Changed at 2010-03-09T23:40:37Z by anonymous

working good so far :)

comment:39 Changed at 2010-03-10T00:07:13Z by anonymous

ok, just noticed it crashes when i try to connect to qq

comment:40 Changed at 2010-03-10T00:09:33Z by Wilmer van der Gaast <wilmer@…>

Ok, that's interesting to know.

How are your gdb skills? Can you get me a backtrace of this crash?

comment:41 Changed at 2010-04-26T19:06:13Z by anonymous

Hi, I've just compiled libpurple bitlbee branch, added a gadu-gadu account, sent a test message - my gg recipient received a message, however bitlbee/libpurple doesn't show his reply.

comment:42 Changed at 2010-04-27T23:36:55Z by wilmer

Very odd. I think I should be able to try gadu-gadu without creating an account, right? If you could help me in reproducing this, that'd be great.

comment:43 Changed at 2010-04-30T23:34:02Z by anonymous

Hi, there is an official web client on web dot gadu dash gadu dot pl . You can also create two accounts there. I've created one test account, l/p 22853640 qwerty .

comment:44 in reply to:  43 Changed at 2010-05-08T18:56:56Z by anonymous

Replying to anonymous: I'd like to report: libpurple/gadu-gadu support seems to work with bitlbee/libpurple v524, however libpurple must be compiled against external/newest libgadu, as libgadu included in libpurple is very old. On v519 a warning message from the gadu-gadu server about using old client version (old libgadu) was not delivered, on v524 it is delivered(groupchat support?). Big thanks!

comment:45 Changed at 2010-05-08T20:48:50Z by anonymous

Another issue - account data (protocol/login/passwords and buddies) are stored in .xml file, and when I identify password - I get connected to my purple-gg account. Unfortunately, my earlier-added and stored in .xml file buddies are ignored :-(

comment:46 Changed at 2010-05-08T20:50:23Z by Wilmer van der Gaast <wilmer@…>

Hm, I'm not sure if I understand ... Do you mean that gagu-gadu uses client-side contact lists?

comment:47 in reply to:  46 ; Changed at 2010-05-08T23:05:24Z by anonymous

Replying to Wilmer van der Gaast <wilmer@…>: I don't know the internals of the protocol, but gg clients have 3 options: download buddy list from server, upload buddy list to server, and delete buddy list from server (see pidgin for example). I've always used client side buddy lists, as I value privacy of me and my contacts (I do not want to provide gadu-gadu the names (firstname, surname - this is how I name my contacts) of my GG contacts). So you may upload your buddy list to the server and that is convenient as you then have access to your contacts on any computer, but that is just an extra feature and not mandatory. On GG you may send a message to any GG number, there is no jabber-like concept of adding contacts and authorization. (Although GG does practice message censorship!, to reduce spamming, but not only for that reason).

comment:48 in reply to:  47 Changed at 2010-05-08T23:17:59Z by anonymous

Replying to anonymous: So - yes it does, but clients may store contact lists on server, but that is not mandatory.

comment:49 Changed at 2010-05-09T23:30:29Z by wilmer

So BitlBee no longer supports client-side contact lists. You'll have to re-enable that if you want to use BitlBee, or write a script for your IRC client that automatically adds the contacts.

(I can eventually restore client-side contact lists, if necessary. It used to be there years ago for ICQ.)

BTW, do you mean that on gg every conversation looks like a groupchat? So once someone starts talking to you a new groupchat channel is created for it? That does explain why the new branch revision fixed your problem, at least.

comment:50 in reply to:  49 Changed at 2010-05-10T10:33:06Z by anonymous

Replying to wilmer:

So BitlBee no longer supports client-side contact lists.

I thought it does, because of buddies details stored in the .xml files.

You'll have to re-enable that if you want to use BitlBee

Is there an easy way to do that?

or write a script for your IRC client that automatically adds the contacts.

Good idea!

(I can eventually restore client-side contact lists, if necessary. It used to be there years ago for ICQ.)

I would very much appreciate such feature.

BTW, do you mean that on gg every conversation looks like a groupchat? So once someone starts talking to you a new groupchat channel is created for it? That does explain why the new branch revision fixed your problem, at least.

It seems to me that this was the scenario:

  1. I compiled v519 with old, built-in libgadu from libpurple, bitlbee/purple got no replies from ggnetwork due to old libgadu, warnings about old client were not shown due to no groupchat support.
  2. I compiled v524 with old, built-in libgadu, chat problems persisted, but at least i got a warning that I used an old gg client (thanks to group chat support)
  3. I compiled v524 with libpurple compiled with an external, current libgadu, chat worked.

So only gg server warnings were delivered as a groupchat. I've tried to make a groupchat with a command: chat with ggtest, i've got 12:21 <@root> (Possible) failure while trying to open a groupchat with ggtest. reply, so I'm not sure if groupchats work correctly, but that is not very important, ordinary chat functionality works.

comment:51 Changed at 2010-05-10T10:42:07Z by Wilmer van der Gaast <wilmer@…>

So BitlBee no longer supports client-side contact lists.

I thought it does, because of buddies details stored in the .xml files.

Look closer. It only includes the people who have a manually-set
nickname. It's just meant to map names to better nicknames if the
automatic generation failed.

You'll have to re-enable that if you want to use BitlBee

Is there an easy way to do that?

Server-side contact lists? No idea, I'd hope it's a server-side setting.
Or maybe there's a setting for it, see "account set gg".

So only gg server warnings were delivered as a groupchat.

Thanks for the explanation; wow, what a hack. :-/

I've tried to make a groupchat with a command: chat with ggtest, i've got
12:21 <@root> (Possible) failure while trying to open a groupchat with
ggtest. reply, so I'm not sure if groupchats work correctly, but that is
not very important, ordinary chat functionality works.


That message shows up often but should usually be false alarm; that's
because of the way that API's currently implemented. I'm trying to
improve it now.

But ggtest did not receive an invitation and/or get pulled into the
chat?

comment:52 in reply to:  51 Changed at 2010-05-10T13:37:35Z by anonymous

Replying to Wilmer van der Gaast <wilmer@…>:

You'll have to re-enable that if you want to use BitlBee

Is there an easy way to do that?

Server-side contact lists? No idea, I'd hope it's a server-side setting.
Or maybe there's a setting for it, see "account set gg".

It would be great to have my contact lists stored on bitlbee (client side?), account set gg seems not to have an option for that, though as you've said earlier, I can make a irc client script which adds buddies.

But ggtest did not receive an invitation and/or get pulled into the
chat?

It seems nothing happens (besides the'(Possible) failure while trying to open a groupchat with ggtest' message) after 'chat with gg_test_nick'. /query ggtest works correctly.

comment:53 Changed at 2010-05-11T08:18:41Z by wilmer

It looks to me like the libpurple gg module simply doesn't have support for initiating groupchats. Instead you can just create one and start inviting people. (I think the "chat join" hooks don't exist in the libpurple branch yet BTW.)

comment:54 Changed at 2010-06-15T12:06:10Z by wilmer

Milestone: 1.4

comment:55 Changed at 2010-07-24T21:27:29Z by wilmer

Resolution: fixed
Status: newclosed

I just merged ui-fix into mainline.

comment:56 Changed at 2010-08-10T07:44:27Z by domen@…

I've been using libpurple for a while now, and I'm very happy with it. Thank you!

There is only one thing I'm missing: typing notifications. Is there any trick to enabling them, or is it just something that's not yet implemented?

comment:57 Changed at 2010-08-10T07:47:37Z by Wilmer van der Gaast <wilmer@…>

Huh, really? They're definitely implemented and should just work once you enable the typing_notice setting. If you're using 1.3dev/ui-fix or so, you do need an update of your client-side scripts though (IIRC). In what way are they not working for you?

comment:58 Changed at 2010-08-10T08:11:39Z by anonymous

10:06:23 <@domen> set typing_notice 10:06:23 <@root> typing_notice = `true'

I'm using a few days old code from bzr, rev 639 (didn't work with any previous either, IIRC).

client-side scripts I use are from Timing ( http://the-timing.nl/stuff/irssi-bitlbee/ ). I wasn't aware they need to be changed, and I did search a bit in this direction.

Not working:

  • old bitlbee binary - I send and receive typing notifications
  • new bitlbee binary - I don't send nor receive typing notifications

Not sure how I could provide more info.

comment:59 Changed at 2010-08-12T06:12:18Z by anonymous

Any pointers on where do I look for updated scripts, or how to update them myself?

domen

comment:60 Changed at 2010-08-12T09:25:41Z by Wilmer van der Gaast <wilmer@…>

Sorry for not responding for a bit. :-/

I'll poke timing to give pointers to the new scripts. He actually needs some testers. :-)

Or actually, I think they're here: http://aegir.fokdat.nl/Public/irssi-bitlbee-dev/

Please let me know how that works for you.

comment:61 Changed at 2010-08-12T11:48:18Z by timing

Just a comment to follow the test results of the scripts.

comment:62 Changed at 2010-08-12T12:07:23Z by anonymous

Erm... with these scripts even the join notice doesn't work anymore :(

/db_typing outputs: 13:50:14 Detected channels: 13:50:14 $VAR1 = '&bitlbee'; 13:50:14 13:50:14 Detected server tag: bitlbee 13:50:14 Tag: 13:50:14 Timer Tag: 13:50:14 Typing: 13:50:14 Out Typing:

And when typing to a friend that's helping with tests: 13:53:46 Detected channels: 13:53:46 $VAR1 = '&bitlbee'; 13:53:46 13:53:46 Detected server tag: bitlbee 13:53:46 Tag: 13:53:46 Timer Tag: $VAR1 = 'axel_puppe'; 13:53:46 $VAR2 = 138; 13:53:46 13:53:46 Typing: 13:53:46 Out Typing: $VAR1 = 'axel_puppe'; 13:53:46 $VAR2 = 1281614022; 13:53:46

my settings: /set bitlbee 14:04:58 [bitlbee] 14:04:58 bitlbee_send_typing = ON 14:04:58 bitlbee_typing_allwin = OFF

14:05:11 <@root> typing_notice = `true'

/statusbar window 14:05:47 Statusbar: window 14:05:47 Type : window 14:05:47 Placement: bottom 14:05:47 Position : 1 14:05:47 Visible : active 14:05:47 Items : Name Priority Alignment 14:05:47 : barstart 100 left 14:05:47 : time 0 left 14:05:47 : user 0 left 14:05:47 : window 0 left 14:05:47 : window_empty 0 left 14:05:47 : lag -1 left 14:05:47 : act 10 left 14:05:47 : more -1 right 14:05:47 : barend 100 right 14:05:47 : typing_notice 0 left 14:05:47 : join_notice 0 left

comment:63 Changed at 2010-08-12T12:09:55Z by domen@…

(Repost with some formatting, so it doesn't look that weird.)

Erm... with these scripts even the join notice doesn't work anymore :(

/db_typing outputs:

 13:50:14 Detected channels:
 13:50:14 $VAR1 = '&bitlbee';
 13:50:14
 13:50:14 Detected server tag: bitlbee
 13:50:14 Tag:
 13:50:14 Timer Tag:
 13:50:14 Typing:
 13:50:14 Out Typing:

And when typing to a friend that's helping with tests:

 13:53:46 Detected channels:
 13:53:46 $VAR1 = '&bitlbee';
 13:53:46
 13:53:46 Detected server tag: bitlbee
 13:53:46 Tag:
 13:53:46 Timer Tag: $VAR1 = 'axel_puppe';
 13:53:46 $VAR2 = 138;
 13:53:46
 13:53:46 Typing:
 13:53:46 Out Typing: $VAR1 = 'axel_puppe';
 13:53:46 $VAR2 = 1281614022;
 13:53:46

my settings:

 /set bitlbee
 14:04:58 [bitlbee]
 14:04:58 bitlbee_send_typing = ON
 14:04:58 bitlbee_typing_allwin = OFF
 14:05:11 <@root> typing_notice = `true'

/statusbar window

 14:05:47 Statusbar: window
 14:05:47 Type     : window
 14:05:47 Placement: bottom
 14:05:47 Position : 1
 14:05:47 Visible  : active
 14:05:47 Items    : Name                                Priority
 Alignment
 14:05:47          : barstart                            100       left
 14:05:47          : time                                0         left
 14:05:47          : user                                0         left
 14:05:47          : window                              0         left
 14:05:47          : window_empty                        0         left
 14:05:47          : lag                                 -1        left
 14:05:47          : act                                 10        left
 14:05:47          : more                                -1        right
 14:05:47          : barend                              100       right
 14:05:47          : typing_notice                       0         left
 14:05:47          : join_notice                         0         left

comment:64 Changed at 2010-08-12T12:10:47Z by Wilmer van der Gaast <wilmer@…>

Alright, before we jump into debugging the scripts, can you check in /rawlog if your irssi really is sending and receiving CTCP TYPING messages?

comment:65 Changed at 2010-08-12T12:16:31Z by domen@…

<< PRIVMSG axel_puppe :TYPING 1
<< PRIVMSG axel_puppe :TYPING 1
<< PRIVMSG axel_puppe :ok, try something now?
<< PRIVMSG axel_puppe :TYPING 0
>> :axel_puppe!lexmortis@gmail.com PRIVMSG domen :again?
<< PRIVMSG axel_puppe :TYPING 1
<< PRIVMSG axel_puppe :kthx
>> :axel_puppe!lexmortis@gmail.com PRIVMSG domen :no
<< PING localhost
>> :localhost PONG localhost :localhost
--> lag pong
<< PRIVMSG axel_puppe :TYPING 0
>> PING :PinglBee
<< PONG :PinglBee

comment:66 Changed at 2010-08-12T12:21:23Z by Wilmer van der Gaast <wilmer@…>

I see you're sending them, but apparently you're not getting them back. So this is with libpurple + Jabber? Do you have the same problem with other libpurple protocol modules?

comment:67 Changed at 2010-08-12T12:31:58Z by domen@…

Yes, this is libpurple+jabber, Axel doesn't seem to be getting any "typing notifications" from me.

rawlog for libpurple+msn looks pretty much the same. No CTCP messages, only TYPING 0/1 as above.

/version

14:31:27 -!- Irssi: Client: irssi 0.8.14 (20090728 1938)
14:31:27 [bitlbee] -!- bitlbee-bzr-639. localhost Linux/x86_64 

comment:68 Changed at 2010-08-13T09:16:16Z by domen@…

This fixes the new join notice script for me. Still no idea what to do about typing notice.

--- new/bitlbee_join_notice.pl	2010-08-10 17:55:13.000000000 +0200
+++ fixed/bitlbee_join_notice.pl	2010-08-13 11:09:23.000000000 +0200
@@ -67,7 +67,7 @@
 sub event_join {
 	my ($server, $channel, $nick, $address) = @_;
 	$channel =~ s/^://g;
-	if ( grep $_ eq $channel, @control_channels && $server->{tag} eq $bitlbee_server->{tag}){
+	if ((grep $_ eq $channel, @control_channels) && $server->{tag} eq $bitlbee_server->{tag}){
 		$online{$nick} = 1;
 		Irssi::timeout_remove($timers{$nick});
 		delete($timers{$nick});

comment:69 Changed at 2010-08-13T09:34:14Z by timing

Thanks I will look into that grep an array thing. Can you use #670 for script related issues? Thanks

comment:70 Changed at 2010-08-13T09:37:11Z by anonymous

Right, sorry, kinda stole this bug report :-)

comment:71 Changed at 2010-08-13T10:31:39Z by anonymous

Lets steal it for some more, I guess this part is relevant to this bug report:

imcb_buddy_typing doesn't seem to be called anywhere in purple code?

comment:72 Changed at 2010-08-13T10:37:50Z by Wilmer van der Gaast <wilmer@…>

Hmm, if grep shows that, you're probably right. I thought I implemented this. I'll take a look this weekend. But please, everyone, open new bugs for libpurple-related issues. There's a category for it for a while by now. Right now a bunch of people CCed on this bug is getting spammed for stuff they most likely don't care about.

comment:73 Changed at 2010-12-08T21:01:57Z by jbarbero@…

Resolution: fixed
Status: closedreopened

I don't know how hard it would be, but would it be possible to have a version of bitlbee that uses the built-in modules for the existing protocols, but the libpurple ones for the ones bitlbee doesn't support? Or, better yet, would it be possible to pick the implementation per account? I, too, trust the bitlbee libraries more than the libpurple ones, but I would love to be able to add just one account using purple's SIPE support so I can use bitlbee to talk to the microsoft office communicator people at work.

Thanks, Janos

comment:74 Changed at 2010-12-08T21:02:51Z by anonymous

Forgot to add that I also like the good documentation that comes with the built-in protocols, that's another thing I'd miss if I had to switch all my accounts over to purple.

comment:75 Changed at 2010-12-08T23:18:20Z by wilmer

Resolution: fixed
Status: reopenedclosed

I'm slowly working on this already. In bzr I already re-enabled Twitter in Purple builds. Now I need to tweak the configure script to allow re-enabling the other IM modules, probably with sometihng like "configure --purple=1 --msn=1 --...".

By default purple should keep disabling the internal modules though, since the purple modules are unusable when used together with a BitlBee with native support for the same protocols. I wish I had a solution for this dynamic linking issue, but it's rather tricky. :-(

Anyway, this belongs in a new ticket, this one has a gigantic list of CCs already so let's leave those poor souls alone. :-)

comment:76 Changed at 2016-07-07T20:51:01Z by dx

Milestone: 1.4

Modify Ticket

Action
as closed The ticket will remain with no owner.
The resolution will be deleted.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.