Mercurial > pidgin.yaz
annotate libfaim/README.gaim @ 249:810c595258c8
[gaim-migrate @ 259]
You can now get users' away messages.
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Mon, 22 May 2000 01:18:32 +0000 |
parents | cfc73b8501a7 |
children | c5aa7bf99059 |
rev | line source |
---|---|
237 | 1 Hello, your good friend EW here with a nice little notice that I'm sure will |
2 affect the ten of you who actually read this. | |
3 | |
4 I'm going to start trying to get gaim to use Oscar through libfaim. As far as I | |
5 can tell, the only thing it used to be able to do is sign on and receive IMs. I | |
6 updated libfaim to what's currently in the libfaim CVS on sourceforge. As of | |
248
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
7 right now, I've been able to implement most of the features libfaim offers. |
237 | 8 |
9 I'm going to try to make as few modifications as possible to the libfaim code. | |
10 The only two modifications I'll probably ever make to it are 1) to make my life | |
11 easier (like putting all the .h files in the same directory as the .c files) or | |
12 2) to fix a compilation error that I happen to be able to fix very easily (like | |
13 with a typo or something). That means that what you're getting when you enable | |
14 oscar is basically faimtest (the very instructional program included with the | |
15 libfaim source on sourceforge) with the Gaim GTK front-end. I'll put any changes | |
16 I make into a file, but so far, I haven't made any changes other than moving the | |
17 .h files down a directory. | |
18 | |
247
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
19 CURRENTLY SUPPORTED FEATURES |
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
20 ============================ |
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
21 Signing on |
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
22 Sending IMs |
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
23 Receiving IMs |
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
24 Being away/coming back |
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
25 Being idle |
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
26 Setting your info |
249
810c595258c8
[gaim-migrate @ 259]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
248
diff
changeset
|
27 Getting users' info |
810c595258c8
[gaim-migrate @ 259]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
248
diff
changeset
|
28 Getting users' away messages (PLEASE do not use oscar/libfaim just because of |
810c595258c8
[gaim-migrate @ 259]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
248
diff
changeset
|
29 this, gaim with libfaim still really buggy, none of you will listen to |
810c595258c8
[gaim-migrate @ 259]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
248
diff
changeset
|
30 me anyway) |
247
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
31 Telling the server who's on your permit/deny lists (buggy) |
248
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
32 Chat: |
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
33 - joining rooms |
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
34 - leaving rooms |
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
35 - talking |
247
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
36 |
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
37 CURRENTLY UNSUPPORTED FEATURES |
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
38 ============================== |
248
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
39 Warning users/getting warned |
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
40 Chat: |
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
41 - whispering |
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
42 - refreshing the chatlist in the preferences dialog |
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
43 - invitations (both to and from you) |
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
44 Getting/setting dir info |
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
45 Changing your password |
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
46 File transfer/IM images/voice chat/etc. |
247
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
47 |
248
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
48 KNOWN ISSUES |
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
49 ============ |
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
50 - libfaim apparently has a problem with receiving messages to fast (sort of). If |
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
51 someone sends you a message "too fast", the server says "slow down" basically, |
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
52 and lets you know that a message was dropped. The time interval between messages |
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
53 seems to be much longer with libfaim than with TOC (i.e. you can receive more |
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
54 messages in less time with TOC than with libfaim). The outgoing limit seems to |
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
55 be about the same. So if all your friends are slow typists, this shouldn't be a |
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
56 problem. |
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
57 |
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
58 - Signing on every once in a while acts really bizarrely for me. Maybe it's just |
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
59 me. |
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
60 |
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
61 - Adding or removing people to your permit/deny lists causes the server to tell |
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
62 you everyone on your buddy list signed off and then immediately signed in again. |
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
63 While you won't ever see that it happens (other than everyone will suddenly have |
cfc73b8501a7
[gaim-migrate @ 258]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
247
diff
changeset
|
64 the guy-in-the-door icon), you'll hear it. Be warned. |
247
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
65 |
237 | 66 HOW TO HELP |
67 =========== | |
68 So here's what you can do in order to help gaim use libfaim. There are basically | |
69 3 steps: | |
70 | |
71 1) In server.c, find an #ifndef USE_OSCAR tag that doesn't have a corresponding | |
72 #else. Find it in a good fun function that you want to implement. Basically | |
73 copy the code from the TOC side for the Oscar side. For example: | |
74 | |
75 void serv_send_im(char *name, char *message, int away) | |
76 { | |
77 char buf[MSG_LEN - 7]; | |
78 | |
79 #ifndef USE_OSCAR | |
80 g_snprintf(buf, MSG_LEN - 8, "toc_send_im %s \"%s\"%s", normalize(name), message, ((away) ? " auto" : "")); | |
81 sflap_send(buf, strlen(buf), TYPE_DATA); | |
82 #endif | |
83 if (!away) | |
84 serv_touch_idle(); | |
85 } | |
86 | |
87 becomes: | |
88 | |
89 void serv_send_im(char *name, char *message, int away) | |
90 { | |
91 char buf[MSG_LEN - 7]; | |
92 | |
93 #ifndef USE_OSCAR | |
94 g_snprintf(buf, MSG_LEN - 8, "toc_send_im %s \"%s\"%s", normalize(name), | |
95 message, ((away) ? " auto" : "")); | |
96 sflap_send(buf, strlen(buf), TYPE_DATA); | |
97 #else | |
98 oscar_send_im(name, message, away); | |
99 #endif | |
100 if (!away) | |
101 serv_touch_idle(); | |
102 } | |
103 | |
104 2) Edit gaim.h to add the new function (you'll see a list of them in there) | |
105 | |
106 3) Edit oscar.c to implement the new function | |
107 | |
108 Most of the functions you're going to need to call use a session and connection | |
247
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
109 structure. These are kept (globally) in oscar.c as gaim_sess and gaim_conn. For |
237 | 110 example, from above: |
111 | |
112 void oscar_send_im(char *name, char *msg, int away) { | |
113 if (away) | |
114 aim_send_im(gaim_sess, gaim_conn, name, AIM_IMFLAGS_AWAY, msg); | |
115 else | |
116 aim_send_im(gaim_sess, gaim_conn, name, 0, msg); | |
117 } | |
118 | |
119 That should be all that's needed. And that's that. Happy hacking. |