Mercurial > pidgin
annotate libfaim/README.gaim @ 247:f6e8ea29b24f
[gaim-migrate @ 257]
OSCAR:
getting a user's info now displays in the dialog window as opposed
to the debug window
you can add people to your permit/deny list (but be warned - you
will get a lot of noise if you do)
committer: Tailor Script <tailor@pidgin.im>
| author | Eric Warmenhoven <eric@warmenhoven.org> |
|---|---|
| date | Sat, 20 May 2000 23:00:20 +0000 |
| parents | 6ced2f1c8b24 |
| children | cfc73b8501a7 |
| 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 | |
| 7 right now, I haven't even gotten it to sign on, but theoretically it can receive | |
| 8 IMs. | |
| 9 | |
| 10 I'm going to try to make as few modifications as possible to the libfaim code. | |
| 11 The only two modifications I'll probably ever make to it are 1) to make my life | |
| 12 easier (like putting all the .h files in the same directory as the .c files) or | |
| 13 2) to fix a compilation error that I happen to be able to fix very easily (like | |
| 14 with a typo or something). That means that what you're getting when you enable | |
| 15 oscar is basically faimtest (the very instructional program included with the | |
| 16 libfaim source on sourceforge) with the Gaim GTK front-end. I'll put any changes | |
| 17 I make into a file, but so far, I haven't made any changes other than moving the | |
| 18 .h files down a directory. | |
| 19 | |
|
247
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
20 CURRENTLY SUPPORTED FEATURES |
|
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
21 ============================ |
|
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
22 Signing on |
|
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
23 Sending IMs |
|
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
24 Receiving IMs |
|
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
25 Being away/coming back |
|
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
26 Being idle |
|
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
27 Setting your info |
|
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
28 Getting other users' info |
|
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
29 Telling the server who's on your permit/deny lists (buggy) |
|
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
30 |
|
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
31 CURRENTLY UNSUPPORTED FEATURES |
|
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
32 ============================== |
|
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
33 Warning users (libfaim's problem) |
|
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
34 Chat (gaim's problem) |
|
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
35 Getting users' away messages (libfaim's problem? doesn't work with TOC either) |
|
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
36 Getting/setting dir info (libfaim's problem?) |
|
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
37 Changing your password (gaim's problem?) |
|
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
38 File transfer/IM images/voice chat/etc. (gaim's problem?) |
|
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
39 |
|
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
40 (If I assigned problems incorrectly, sorry.) |
|
f6e8ea29b24f
[gaim-migrate @ 257]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
237
diff
changeset
|
41 |
| 237 | 42 HOW TO HELP |
| 43 =========== | |
| 44 So here's what you can do in order to help gaim use libfaim. There are basically | |
| 45 3 steps: | |
| 46 | |
| 47 1) In server.c, find an #ifndef USE_OSCAR tag that doesn't have a corresponding | |
| 48 #else. Find it in a good fun function that you want to implement. Basically | |
| 49 copy the code from the TOC side for the Oscar side. For example: | |
| 50 | |
| 51 void serv_send_im(char *name, char *message, int away) | |
| 52 { | |
| 53 char buf[MSG_LEN - 7]; | |
| 54 | |
| 55 #ifndef USE_OSCAR | |
| 56 g_snprintf(buf, MSG_LEN - 8, "toc_send_im %s \"%s\"%s", normalize(name), message, ((away) ? " auto" : "")); | |
| 57 sflap_send(buf, strlen(buf), TYPE_DATA); | |
| 58 #endif | |
| 59 if (!away) | |
| 60 serv_touch_idle(); | |
| 61 } | |
| 62 | |
| 63 becomes: | |
| 64 | |
| 65 void serv_send_im(char *name, char *message, int away) | |
| 66 { | |
| 67 char buf[MSG_LEN - 7]; | |
| 68 | |
| 69 #ifndef USE_OSCAR | |
| 70 g_snprintf(buf, MSG_LEN - 8, "toc_send_im %s \"%s\"%s", normalize(name), | |
| 71 message, ((away) ? " auto" : "")); | |
| 72 sflap_send(buf, strlen(buf), TYPE_DATA); | |
| 73 #else | |
| 74 oscar_send_im(name, message, away); | |
| 75 #endif | |
| 76 if (!away) | |
| 77 serv_touch_idle(); | |
| 78 } | |
| 79 | |
| 80 2) Edit gaim.h to add the new function (you'll see a list of them in there) | |
| 81 | |
| 82 3) Edit oscar.c to implement the new function | |
| 83 | |
| 84 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
|
85 structure. These are kept (globally) in oscar.c as gaim_sess and gaim_conn. For |
| 237 | 86 example, from above: |
| 87 | |
| 88 void oscar_send_im(char *name, char *msg, int away) { | |
| 89 if (away) | |
| 90 aim_send_im(gaim_sess, gaim_conn, name, AIM_IMFLAGS_AWAY, msg); | |
| 91 else | |
| 92 aim_send_im(gaim_sess, gaim_conn, name, 0, msg); | |
| 93 } | |
| 94 | |
| 95 That should be all that's needed. And that's that. Happy hacking. |
