libpurple/protocols/msn/state.c

Tue, 10 Feb 2009 20:27:21 +0000

author
Marcus Lundblad <malu@pidgin.im>
date
Tue, 10 Feb 2009 20:27:21 +0000
branch
cpw.malu.client_type
changeset 25579
256aa4861079
parent 24772
c87747478d71
child 25796
871891766d34
permissions
-rw-r--r--

Sätt client type on MSN.
Have currently tested the "mobile" type. It is reported correctly to other
libpurple clients and the official WLM client.
Haven't tested other statuses yet...

5361
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1 /**
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2 * @file state.c State functions and definitions
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3 *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
4 * purple
5361
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5 *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
6 * Purple is the legal property of its developers, whose names are too numerous
9198
e8eb6d5eb9eb [gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents: 9193
diff changeset
7 * to list here. Please refer to the COPYRIGHT file distributed with this
e8eb6d5eb9eb [gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents: 9193
diff changeset
8 * source distribution.
6701
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 5824
diff changeset
9 *
5361
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
10 * This program is free software; you can redistribute it and/or modify
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
11 * it under the terms of the GNU General Public License as published by
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
12 * the Free Software Foundation; either version 2 of the License, or
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
13 * (at your option) any later version.
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
14 *
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
15 * This program is distributed in the hope that it will be useful,
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
18 * GNU General Public License for more details.
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
19 *
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
20 * You should have received a copy of the GNU General Public License
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
21 * along with this program; if not, write to the Free Software
19859
71d37b57eff2 The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 15884
diff changeset
22 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
5361
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
23 */
25579
256aa4861079 Sätt client type on MSN.
Marcus Lundblad <malu@pidgin.im>
parents: 24772
diff changeset
24
256aa4861079 Sätt client type on MSN.
Marcus Lundblad <malu@pidgin.im>
parents: 24772
diff changeset
25 #include "internal.h"
256aa4861079 Sätt client type on MSN.
Marcus Lundblad <malu@pidgin.im>
parents: 24772
diff changeset
26 #include "core.h"
256aa4861079 Sätt client type on MSN.
Marcus Lundblad <malu@pidgin.im>
parents: 24772
diff changeset
27
5361
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
28 #include "msn.h"
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
29 #include "state.h"
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
30
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
31 static const char *away_text[] =
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
32 {
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
33 N_("Available"),
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
34 N_("Available"),
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
35 N_("Busy"),
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
36 N_("Idle"),
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
37 N_("Be Right Back"),
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
38 N_("Away From Computer"),
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
39 N_("On The Phone"),
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
40 N_("Out To Lunch"),
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
41 N_("Available"),
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
42 N_("Available")
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
43 };
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
44
13866
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13856
diff changeset
45 /* Local Function Prototype*/
20474
b0ef257ef8d4 The second msn.tgz from SF Patch #1621854 from Ka-Hing Cheung.
Ka-Hing Cheung <khc@pidgin.im>
parents: 20472
diff changeset
46 static char *msn_build_psm(const char *psmstr,const char *mediastr,
b0ef257ef8d4 The second msn.tgz from SF Patch #1621854 from Ka-Hing Cheung.
Ka-Hing Cheung <khc@pidgin.im>
parents: 20472
diff changeset
47 const char *guidstr);
13866
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13856
diff changeset
48
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13856
diff changeset
49 /*
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13856
diff changeset
50 * WLM media PSM info build prcedure
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13856
diff changeset
51 *
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13856
diff changeset
52 * Result can like:
20591
8469ac3acbec Various (untested) changes to the CurrentMedia parsing. This code is a
Richard Laager <rlaager@pidgin.im>
parents: 20590
diff changeset
53 * <CurrentMedia>\0Music\01\0{0} - {1}\0Song Title\0Song Artist\0Song Album\0\0</CurrentMedia>\
13866
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13856
diff changeset
54 * <CurrentMedia>\0Games\01\0Playing {0}\0Game Name\0</CurrentMedia>\
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13856
diff changeset
55 * <CurrentMedia>\0Office\01\0Office Message\0Office App Name\0</CurrentMedia>"
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13856
diff changeset
56 */
20474
b0ef257ef8d4 The second msn.tgz from SF Patch #1621854 from Ka-Hing Cheung.
Ka-Hing Cheung <khc@pidgin.im>
parents: 20472
diff changeset
57 static char *
b0ef257ef8d4 The second msn.tgz from SF Patch #1621854 from Ka-Hing Cheung.
Ka-Hing Cheung <khc@pidgin.im>
parents: 20472
diff changeset
58 msn_build_psm(const char *psmstr,const char *mediastr, const char *guidstr)
13856
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
59 {
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
60 xmlnode *dataNode,*psmNode,*mediaNode,*guidNode;
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
61 char *result;
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
62 int length;
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
63
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
64 dataNode = xmlnode_new("Data");
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
65
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
66 psmNode = xmlnode_new("PSM");
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
67 if(psmstr != NULL){
24025
7827cb5dabe2 Rely on xmlnode_insert_data to call strlen on a bunch of MSN status strings.
Will Thompson <resiak@pidgin.im>
parents: 23830
diff changeset
68 xmlnode_insert_data(psmNode, psmstr, -1);
13856
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
69 }
24025
7827cb5dabe2 Rely on xmlnode_insert_data to call strlen on a bunch of MSN status strings.
Will Thompson <resiak@pidgin.im>
parents: 23830
diff changeset
70 xmlnode_insert_child(dataNode, psmNode);
13856
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
71
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
72 mediaNode = xmlnode_new("CurrentMedia");
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
73 if(mediastr != NULL){
24025
7827cb5dabe2 Rely on xmlnode_insert_data to call strlen on a bunch of MSN status strings.
Will Thompson <resiak@pidgin.im>
parents: 23830
diff changeset
74 xmlnode_insert_data(mediaNode, mediastr, -1);
13856
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
75 }
24025
7827cb5dabe2 Rely on xmlnode_insert_data to call strlen on a bunch of MSN status strings.
Will Thompson <resiak@pidgin.im>
parents: 23830
diff changeset
76 xmlnode_insert_child(dataNode, mediaNode);
13856
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
77
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
78 guidNode = xmlnode_new("MachineGuid");
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
79 if(guidstr != NULL){
24025
7827cb5dabe2 Rely on xmlnode_insert_data to call strlen on a bunch of MSN status strings.
Will Thompson <resiak@pidgin.im>
parents: 23830
diff changeset
80 xmlnode_insert_data(guidNode, guidstr, -1);
13856
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
81 }
24025
7827cb5dabe2 Rely on xmlnode_insert_data to call strlen on a bunch of MSN status strings.
Will Thompson <resiak@pidgin.im>
parents: 23830
diff changeset
82 xmlnode_insert_child(dataNode, guidNode);
13856
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
83
24025
7827cb5dabe2 Rely on xmlnode_insert_data to call strlen on a bunch of MSN status strings.
Will Thompson <resiak@pidgin.im>
parents: 23830
diff changeset
84 result = xmlnode_to_str(dataNode, &length);
20574
41544383ab30 Plug some leak.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20551
diff changeset
85 xmlnode_free(dataNode);
13856
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
86 return result;
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
87 }
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
88
16183
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
89 /* parse CurrentMedia string */
21193
e918a1846d03 Use an independant status type for 'current media' stuff, instead of using
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20608
diff changeset
90 gboolean
e918a1846d03 Use an independant status type for 'current media' stuff, instead of using
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20608
diff changeset
91 msn_parse_currentmedia(const char *cmedia, CurrentMedia *media)
16183
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
92 {
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
93 char **cmedia_array;
22965
f19cc28257f8 Leak plug in parsing MSN currentmedia.
Daniel Atallah <datallah@pidgin.im>
parents: 21906
diff changeset
94 int strings = 0;
f19cc28257f8 Leak plug in parsing MSN currentmedia.
Daniel Atallah <datallah@pidgin.im>
parents: 21906
diff changeset
95 gboolean parsed = FALSE;
16183
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
96
20589
312d830f7169 Improve the current-media parsing a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20578
diff changeset
97 if ((cmedia == NULL) || (*cmedia == '\0')) {
16183
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
98 purple_debug_info("msn", "No currentmedia string\n");
21193
e918a1846d03 Use an independant status type for 'current media' stuff, instead of using
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20608
diff changeset
99 return FALSE;
16183
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
100 }
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
101
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20508
diff changeset
102 purple_debug_info("msn", "Parsing currentmedia string: \"%s\"\n", cmedia);
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20508
diff changeset
103
20589
312d830f7169 Improve the current-media parsing a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20578
diff changeset
104 cmedia_array = g_strsplit(cmedia, "\\0", 0);
312d830f7169 Improve the current-media parsing a little bit.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20578
diff changeset
105
21194
c2da1eed951e Remove commented out code, and add soem notes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21193
diff changeset
106 /*
24771
7a17ecc0c85b Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24025
diff changeset
107 * 0: Application
7a17ecc0c85b Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24025
diff changeset
108 * 1: 'Music'/'Games'/'Office'
21194
c2da1eed951e Remove commented out code, and add soem notes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21193
diff changeset
109 * 2: '1' if enabled, '0' if not
c2da1eed951e Remove commented out code, and add soem notes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21193
diff changeset
110 * 3: Format (eg. {0} by {1})
c2da1eed951e Remove commented out code, and add soem notes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21193
diff changeset
111 * 4: Title
24771
7a17ecc0c85b Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24025
diff changeset
112 * If 'Music':
7a17ecc0c85b Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24025
diff changeset
113 * 5: Artist
7a17ecc0c85b Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24025
diff changeset
114 * 6: Album
7a17ecc0c85b Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24025
diff changeset
115 * 7: ?
21194
c2da1eed951e Remove commented out code, and add soem notes.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21193
diff changeset
116 */
22965
f19cc28257f8 Leak plug in parsing MSN currentmedia.
Daniel Atallah <datallah@pidgin.im>
parents: 21906
diff changeset
117 #if GLIB_CHECK_VERSION(2,6,0)
f19cc28257f8 Leak plug in parsing MSN currentmedia.
Daniel Atallah <datallah@pidgin.im>
parents: 21906
diff changeset
118 strings = g_strv_length(cmedia_array);
f19cc28257f8 Leak plug in parsing MSN currentmedia.
Daniel Atallah <datallah@pidgin.im>
parents: 21906
diff changeset
119 #else
20591
8469ac3acbec Various (untested) changes to the CurrentMedia parsing. This code is a
Richard Laager <rlaager@pidgin.im>
parents: 20590
diff changeset
120 while (cmedia_array[++strings] != NULL);
22965
f19cc28257f8 Leak plug in parsing MSN currentmedia.
Daniel Atallah <datallah@pidgin.im>
parents: 21906
diff changeset
121 #endif
f19cc28257f8 Leak plug in parsing MSN currentmedia.
Daniel Atallah <datallah@pidgin.im>
parents: 21906
diff changeset
122
f19cc28257f8 Leak plug in parsing MSN currentmedia.
Daniel Atallah <datallah@pidgin.im>
parents: 21906
diff changeset
123 if (strings >= 4 && !strcmp(cmedia_array[2], "1")) {
f19cc28257f8 Leak plug in parsing MSN currentmedia.
Daniel Atallah <datallah@pidgin.im>
parents: 21906
diff changeset
124 parsed = TRUE;
16183
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
125
24771
7a17ecc0c85b Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24025
diff changeset
126 if (!strcmp(cmedia_array[1], "Music"))
7a17ecc0c85b Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24025
diff changeset
127 media->type = CURRENT_MEDIA_MUSIC;
7a17ecc0c85b Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24025
diff changeset
128 else if (!strcmp(cmedia_array[1], "Games"))
7a17ecc0c85b Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24025
diff changeset
129 media->type = CURRENT_MEDIA_GAMES;
7a17ecc0c85b Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24025
diff changeset
130 else if (!strcmp(cmedia_array[1], "Office"))
7a17ecc0c85b Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24025
diff changeset
131 media->type = CURRENT_MEDIA_OFFICE;
7a17ecc0c85b Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24025
diff changeset
132 else
7a17ecc0c85b Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24025
diff changeset
133 media->type = CURRENT_MEDIA_UNKNOWN;
7a17ecc0c85b Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24025
diff changeset
134
22965
f19cc28257f8 Leak plug in parsing MSN currentmedia.
Daniel Atallah <datallah@pidgin.im>
parents: 21906
diff changeset
135 g_free(media->title);
f19cc28257f8 Leak plug in parsing MSN currentmedia.
Daniel Atallah <datallah@pidgin.im>
parents: 21906
diff changeset
136 if (strings == 4) {
f19cc28257f8 Leak plug in parsing MSN currentmedia.
Daniel Atallah <datallah@pidgin.im>
parents: 21906
diff changeset
137 media->title = g_strdup(cmedia_array[3]);
f19cc28257f8 Leak plug in parsing MSN currentmedia.
Daniel Atallah <datallah@pidgin.im>
parents: 21906
diff changeset
138 } else {
f19cc28257f8 Leak plug in parsing MSN currentmedia.
Daniel Atallah <datallah@pidgin.im>
parents: 21906
diff changeset
139 media->title = g_strdup(cmedia_array[4]);
f19cc28257f8 Leak plug in parsing MSN currentmedia.
Daniel Atallah <datallah@pidgin.im>
parents: 21906
diff changeset
140 }
20591
8469ac3acbec Various (untested) changes to the CurrentMedia parsing. This code is a
Richard Laager <rlaager@pidgin.im>
parents: 20590
diff changeset
141
22965
f19cc28257f8 Leak plug in parsing MSN currentmedia.
Daniel Atallah <datallah@pidgin.im>
parents: 21906
diff changeset
142 g_free(media->artist);
f19cc28257f8 Leak plug in parsing MSN currentmedia.
Daniel Atallah <datallah@pidgin.im>
parents: 21906
diff changeset
143 if (strings > 5)
f19cc28257f8 Leak plug in parsing MSN currentmedia.
Daniel Atallah <datallah@pidgin.im>
parents: 21906
diff changeset
144 media->artist = g_strdup(cmedia_array[5]);
f19cc28257f8 Leak plug in parsing MSN currentmedia.
Daniel Atallah <datallah@pidgin.im>
parents: 21906
diff changeset
145 else
f19cc28257f8 Leak plug in parsing MSN currentmedia.
Daniel Atallah <datallah@pidgin.im>
parents: 21906
diff changeset
146 media->artist = NULL;
f19cc28257f8 Leak plug in parsing MSN currentmedia.
Daniel Atallah <datallah@pidgin.im>
parents: 21906
diff changeset
147
f19cc28257f8 Leak plug in parsing MSN currentmedia.
Daniel Atallah <datallah@pidgin.im>
parents: 21906
diff changeset
148 g_free(media->album);
f19cc28257f8 Leak plug in parsing MSN currentmedia.
Daniel Atallah <datallah@pidgin.im>
parents: 21906
diff changeset
149 if (strings > 6)
f19cc28257f8 Leak plug in parsing MSN currentmedia.
Daniel Atallah <datallah@pidgin.im>
parents: 21906
diff changeset
150 media->album = g_strdup(cmedia_array[6]);
f19cc28257f8 Leak plug in parsing MSN currentmedia.
Daniel Atallah <datallah@pidgin.im>
parents: 21906
diff changeset
151 else
f19cc28257f8 Leak plug in parsing MSN currentmedia.
Daniel Atallah <datallah@pidgin.im>
parents: 21906
diff changeset
152 media->album = NULL;
f19cc28257f8 Leak plug in parsing MSN currentmedia.
Daniel Atallah <datallah@pidgin.im>
parents: 21906
diff changeset
153
16183
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
154 }
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
155
22965
f19cc28257f8 Leak plug in parsing MSN currentmedia.
Daniel Atallah <datallah@pidgin.im>
parents: 21906
diff changeset
156 g_strfreev(cmedia_array);
21193
e918a1846d03 Use an independant status type for 'current media' stuff, instead of using
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20608
diff changeset
157
22965
f19cc28257f8 Leak plug in parsing MSN currentmedia.
Daniel Atallah <datallah@pidgin.im>
parents: 21906
diff changeset
158 return parsed;
16183
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
159 }
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
160
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
161 /* get the CurrentMedia info from the XML string */
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
162 char *
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
163 msn_get_currentmedia(char *xml_str, gsize len)
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
164 {
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
165 xmlnode *payloadNode, *currentmediaNode;
20578
82571739414b Fix some memory leaks. Free xmlnodes properly using xmlnode_free instead of
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20574
diff changeset
166 char *currentmedia;
23441
fd45c23a3eb2 Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents: 22969
diff changeset
167
23830
1436e3de5d6c The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23441
diff changeset
168 purple_debug_info("msn", "Get CurrentMedia\n");
16183
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
169 payloadNode = xmlnode_from_str(xml_str, len);
23830
1436e3de5d6c The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23441
diff changeset
170 if (!payloadNode) {
1436e3de5d6c The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23441
diff changeset
171 purple_debug_error("msn", "PSM XML parse Error!\n");
16183
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
172 return NULL;
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
173 }
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
174 currentmediaNode = xmlnode_get_child(payloadNode, "CurrentMedia");
23830
1436e3de5d6c The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23441
diff changeset
175 if (currentmediaNode == NULL) {
1436e3de5d6c The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23441
diff changeset
176 purple_debug_info("msn", "No CurrentMedia Node");
20578
82571739414b Fix some memory leaks. Free xmlnodes properly using xmlnode_free instead of
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20574
diff changeset
177 xmlnode_free(payloadNode);
16183
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
178 return NULL;
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
179 }
20578
82571739414b Fix some memory leaks. Free xmlnodes properly using xmlnode_free instead of
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20574
diff changeset
180 currentmedia = xmlnode_get_data(currentmediaNode);
16183
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
181
20578
82571739414b Fix some memory leaks. Free xmlnodes properly using xmlnode_free instead of
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20574
diff changeset
182 xmlnode_free(payloadNode);
16183
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
183
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
184 return currentmedia;
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
185 }
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
186
13888
bda6f562e1e6 [gaim-migrate @ 17003]
Ma Yuan <mayuan2006@gmail.com>
parents: 13866
diff changeset
187 /*get the PSM info from the XML string*/
20474
b0ef257ef8d4 The second msn.tgz from SF Patch #1621854 from Ka-Hing Cheung.
Ka-Hing Cheung <khc@pidgin.im>
parents: 20472
diff changeset
188 char *
b0ef257ef8d4 The second msn.tgz from SF Patch #1621854 from Ka-Hing Cheung.
Ka-Hing Cheung <khc@pidgin.im>
parents: 20472
diff changeset
189 msn_get_psm(char *xml_str, gsize len)
13888
bda6f562e1e6 [gaim-migrate @ 17003]
Ma Yuan <mayuan2006@gmail.com>
parents: 13866
diff changeset
190 {
bda6f562e1e6 [gaim-migrate @ 17003]
Ma Yuan <mayuan2006@gmail.com>
parents: 13866
diff changeset
191 xmlnode *payloadNode, *psmNode;
20578
82571739414b Fix some memory leaks. Free xmlnodes properly using xmlnode_free instead of
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20574
diff changeset
192 char *psm;
23441
fd45c23a3eb2 Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents: 22969
diff changeset
193
23830
1436e3de5d6c The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23441
diff changeset
194 purple_debug_info("msn", "msn get PSM\n");
13888
bda6f562e1e6 [gaim-migrate @ 17003]
Ma Yuan <mayuan2006@gmail.com>
parents: 13866
diff changeset
195 payloadNode = xmlnode_from_str(xml_str, len);
bda6f562e1e6 [gaim-migrate @ 17003]
Ma Yuan <mayuan2006@gmail.com>
parents: 13866
diff changeset
196 if (!payloadNode){
23830
1436e3de5d6c The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23441
diff changeset
197 purple_debug_error("msn", "PSM XML parse Error!\n");
13888
bda6f562e1e6 [gaim-migrate @ 17003]
Ma Yuan <mayuan2006@gmail.com>
parents: 13866
diff changeset
198 return NULL;
bda6f562e1e6 [gaim-migrate @ 17003]
Ma Yuan <mayuan2006@gmail.com>
parents: 13866
diff changeset
199 }
bda6f562e1e6 [gaim-migrate @ 17003]
Ma Yuan <mayuan2006@gmail.com>
parents: 13866
diff changeset
200 psmNode = xmlnode_get_child(payloadNode, "PSM");
13889
1030d616ee64 [gaim-migrate @ 17004]
Ma Yuan <mayuan2006@gmail.com>
parents: 13888
diff changeset
201 if (psmNode == NULL){
23830
1436e3de5d6c The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23441
diff changeset
202 purple_debug_info("msn", "No PSM status Node");
20578
82571739414b Fix some memory leaks. Free xmlnodes properly using xmlnode_free instead of
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20574
diff changeset
203 xmlnode_free(payloadNode);
13888
bda6f562e1e6 [gaim-migrate @ 17003]
Ma Yuan <mayuan2006@gmail.com>
parents: 13866
diff changeset
204 return NULL;
bda6f562e1e6 [gaim-migrate @ 17003]
Ma Yuan <mayuan2006@gmail.com>
parents: 13866
diff changeset
205 }
20578
82571739414b Fix some memory leaks. Free xmlnodes properly using xmlnode_free instead of
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20574
diff changeset
206 psm = xmlnode_get_data(psmNode);
13888
bda6f562e1e6 [gaim-migrate @ 17003]
Ma Yuan <mayuan2006@gmail.com>
parents: 13866
diff changeset
207
20578
82571739414b Fix some memory leaks. Free xmlnodes properly using xmlnode_free instead of
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20574
diff changeset
208 xmlnode_free(payloadNode);
13888
bda6f562e1e6 [gaim-migrate @ 17003]
Ma Yuan <mayuan2006@gmail.com>
parents: 13866
diff changeset
209
bda6f562e1e6 [gaim-migrate @ 17003]
Ma Yuan <mayuan2006@gmail.com>
parents: 13866
diff changeset
210 return psm;
bda6f562e1e6 [gaim-migrate @ 17003]
Ma Yuan <mayuan2006@gmail.com>
parents: 13866
diff changeset
211 }
bda6f562e1e6 [gaim-migrate @ 17003]
Ma Yuan <mayuan2006@gmail.com>
parents: 13866
diff changeset
212
21193
e918a1846d03 Use an independant status type for 'current media' stuff, instead of using
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20608
diff changeset
213 static char *
e918a1846d03 Use an independant status type for 'current media' stuff, instead of using
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20608
diff changeset
214 create_media_string(PurplePresence *presence)
e918a1846d03 Use an independant status type for 'current media' stuff, instead of using
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20608
diff changeset
215 {
24772
c87747478d71 Only get the artist and album if we are setting a Music mediatype.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24771
diff changeset
216 const char *title, *game, *office;
21193
e918a1846d03 Use an independant status type for 'current media' stuff, instead of using
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20608
diff changeset
217 char *ret;
e918a1846d03 Use an independant status type for 'current media' stuff, instead of using
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20608
diff changeset
218 PurpleStatus *status = purple_presence_get_status(presence, "tune");
e918a1846d03 Use an independant status type for 'current media' stuff, instead of using
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20608
diff changeset
219 if (!status || !purple_status_is_active(status))
24771
7a17ecc0c85b Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24025
diff changeset
220 return g_strdup_printf("\\0Music\\00\\0\\0");
21193
e918a1846d03 Use an independant status type for 'current media' stuff, instead of using
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20608
diff changeset
221
24771
7a17ecc0c85b Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24025
diff changeset
222 title = purple_status_get_attr_string(status, PURPLE_TUNE_TITLE);
7a17ecc0c85b Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24025
diff changeset
223 game = purple_status_get_attr_string(status, "game");
7a17ecc0c85b Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24025
diff changeset
224 office = purple_status_get_attr_string(status, "office");
21193
e918a1846d03 Use an independant status type for 'current media' stuff, instead of using
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20608
diff changeset
225
24772
c87747478d71 Only get the artist and album if we are setting a Music mediatype.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24771
diff changeset
226 if (title && *title) {
c87747478d71 Only get the artist and album if we are setting a Music mediatype.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24771
diff changeset
227 const char *artist = purple_status_get_attr_string(status, PURPLE_TUNE_ARTIST);
c87747478d71 Only get the artist and album if we are setting a Music mediatype.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24771
diff changeset
228 const char *album = purple_status_get_attr_string(status, PURPLE_TUNE_ALBUM);
24771
7a17ecc0c85b Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24025
diff changeset
229 ret = g_strdup_printf("WMP\\0Music\\01\\0{0}%s%s\\0%s\\0%s\\0%s\\0",
7a17ecc0c85b Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24025
diff changeset
230 artist ? " - {1}" : "",
7a17ecc0c85b Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24025
diff changeset
231 album ? " ({2})" : "",
7a17ecc0c85b Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24025
diff changeset
232 title,
7a17ecc0c85b Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24025
diff changeset
233 artist ? artist : "",
7a17ecc0c85b Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24025
diff changeset
234 album ? album : "");
24772
c87747478d71 Only get the artist and album if we are setting a Music mediatype.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24771
diff changeset
235 }
24771
7a17ecc0c85b Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24025
diff changeset
236 else if (game && *game)
7a17ecc0c85b Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24025
diff changeset
237 ret = g_strdup_printf("\\0Games\\01\\0Playing {0}\\0%s\\0", game);
7a17ecc0c85b Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24025
diff changeset
238 else if (office && *office)
7a17ecc0c85b Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24025
diff changeset
239 ret = g_strdup_printf("\\0Office\\01\\0Editing {0}\\0%s\\0", office);
7a17ecc0c85b Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24025
diff changeset
240 else
7a17ecc0c85b Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24025
diff changeset
241 ret = g_strdup_printf("\\0Music\\00\\0\\0");
7a17ecc0c85b Add the Games and Office media to MSN as attributes tacked on to the tune
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24025
diff changeset
242
21193
e918a1846d03 Use an independant status type for 'current media' stuff, instead of using
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20608
diff changeset
243 return ret;
e918a1846d03 Use an independant status type for 'current media' stuff, instead of using
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20608
diff changeset
244 }
e918a1846d03 Use an independant status type for 'current media' stuff, instead of using
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20608
diff changeset
245
23441
fd45c23a3eb2 Delete trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents: 22969
diff changeset
246 /* set the MSN's PSM info,Currently Read from the status Line
13891
a357e7e3cddb [gaim-migrate @ 17014]
Ma Yuan <mayuan2006@gmail.com>
parents: 13889
diff changeset
247 * Thanks for Cris Code
a357e7e3cddb [gaim-migrate @ 17014]
Ma Yuan <mayuan2006@gmail.com>
parents: 13889
diff changeset
248 */
13856
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
249 void
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
250 msn_set_psm(MsnSession *session)
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
251 {
16183
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
252 PurpleAccount *account = session->account;
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
253 PurplePresence *presence;
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
254 PurpleStatus *status;
13856
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
255 MsnCmdProc *cmdproc;
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
256 MsnTransaction *trans;
20474
b0ef257ef8d4 The second msn.tgz from SF Patch #1621854 from Ka-Hing Cheung.
Ka-Hing Cheung <khc@pidgin.im>
parents: 20472
diff changeset
257 char *payload;
b0ef257ef8d4 The second msn.tgz from SF Patch #1621854 from Ka-Hing Cheung.
Ka-Hing Cheung <khc@pidgin.im>
parents: 20472
diff changeset
258 const char *statusline;
21453
a90cf329cd48 propagate from branch 'im.pidgin.pidgin.next.minor' (head 2f91b326b3f073672c2475a8c30a06826da9b82f)
Ka-Hing Cheung <khc@pidgin.im>
parents: 21194 21073
diff changeset
259 gchar *statusline_stripped, *media = NULL;
13891
a357e7e3cddb [gaim-migrate @ 17014]
Ma Yuan <mayuan2006@gmail.com>
parents: 13889
diff changeset
260
a357e7e3cddb [gaim-migrate @ 17014]
Ma Yuan <mayuan2006@gmail.com>
parents: 13889
diff changeset
261 g_return_if_fail(session != NULL);
a357e7e3cddb [gaim-migrate @ 17014]
Ma Yuan <mayuan2006@gmail.com>
parents: 13889
diff changeset
262 g_return_if_fail(session->notification != NULL);
13856
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
263
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
264 cmdproc = session->notification->cmdproc;
21073
a2f27248579c MSN personal status messages are plain text, not HTML. Previously, we were unescaping the message but not stripping it, which left any HTML tags intact.
Evan Schoenberg <evands@pidgin.im>
parents: 20608
diff changeset
265
a2f27248579c MSN personal status messages are plain text, not HTML. Previously, we were unescaping the message but not stripping it, which left any HTML tags intact.
Evan Schoenberg <evands@pidgin.im>
parents: 20608
diff changeset
266 /* Get the PSM string from Purple's Status Line */
16183
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
267 presence = purple_account_get_presence(account);
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
268 status = purple_presence_get_active_status(presence);
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 15884
diff changeset
269 statusline = purple_status_get_attr_string(status, "message");
21073
a2f27248579c MSN personal status messages are plain text, not HTML. Previously, we were unescaping the message but not stripping it, which left any HTML tags intact.
Evan Schoenberg <evands@pidgin.im>
parents: 20608
diff changeset
270
a2f27248579c MSN personal status messages are plain text, not HTML. Previously, we were unescaping the message but not stripping it, which left any HTML tags intact.
Evan Schoenberg <evands@pidgin.im>
parents: 20608
diff changeset
271 /* MSN expects plain text, not HTML */
a2f27248579c MSN personal status messages are plain text, not HTML. Previously, we were unescaping the message but not stripping it, which left any HTML tags intact.
Evan Schoenberg <evands@pidgin.im>
parents: 20608
diff changeset
272 statusline_stripped = purple_markup_strip_html(statusline);
21193
e918a1846d03 Use an independant status type for 'current media' stuff, instead of using
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20608
diff changeset
273 media = create_media_string(presence);
21073
a2f27248579c MSN personal status messages are plain text, not HTML. Previously, we were unescaping the message but not stripping it, which left any HTML tags intact.
Evan Schoenberg <evands@pidgin.im>
parents: 20608
diff changeset
274 g_free(session->psm);
21453
a90cf329cd48 propagate from branch 'im.pidgin.pidgin.next.minor' (head 2f91b326b3f073672c2475a8c30a06826da9b82f)
Ka-Hing Cheung <khc@pidgin.im>
parents: 21194 21073
diff changeset
275 session->psm = msn_build_psm(statusline_stripped, media, NULL);
21073
a2f27248579c MSN personal status messages are plain text, not HTML. Previously, we were unescaping the message but not stripping it, which left any HTML tags intact.
Evan Schoenberg <evands@pidgin.im>
parents: 20608
diff changeset
276
13856
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
277 payload = session->psm;
23830
1436e3de5d6c The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23441
diff changeset
278 purple_debug_misc("msn", "Sending UUX command with payload: %s\n", payload);
22969
51f5e7777915 This cleans up a bunch of warnings that stem from the fact that size_t and
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22965
diff changeset
279 trans = msn_transaction_new(cmdproc, "UUX", "%" G_GSIZE_FORMAT, strlen(payload));
13856
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
280 msn_transaction_set_payload(trans, payload, strlen(payload));
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
281 msn_cmdproc_send_trans(cmdproc, trans);
21906
3827b1442a73 memleak fixes
Ka-Hing Cheung <khc@pidgin.im>
parents: 21453
diff changeset
282
3827b1442a73 memleak fixes
Ka-Hing Cheung <khc@pidgin.im>
parents: 21453
diff changeset
283 g_free(statusline_stripped);
3827b1442a73 memleak fixes
Ka-Hing Cheung <khc@pidgin.im>
parents: 21453
diff changeset
284 g_free(media);
13856
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
285 }
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 11992
diff changeset
286
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
287 void
11992
906176cc9b22 [gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10908
diff changeset
288 msn_change_status(MsnSession *session)
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
289 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
290 PurpleAccount *account;
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
291 MsnCmdProc *cmdproc;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
292 MsnUser *user;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
293 MsnObject *msnobj;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
294 const char *state_text;
25579
256aa4861079 Sätt client type on MSN.
Marcus Lundblad <malu@pidgin.im>
parents: 24772
diff changeset
295 GHashTable *ui_info = purple_core_get_ui_info();
256aa4861079 Sätt client type on MSN.
Marcus Lundblad <malu@pidgin.im>
parents: 24772
diff changeset
296 MsnClientCaps caps = MSN_CLIENT_ID;
256aa4861079 Sätt client type on MSN.
Marcus Lundblad <malu@pidgin.im>
parents: 24772
diff changeset
297
10481
a5d6b8e1717d [gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9262
diff changeset
298 g_return_if_fail(session != NULL);
a5d6b8e1717d [gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9262
diff changeset
299 g_return_if_fail(session->notification != NULL);
a5d6b8e1717d [gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9262
diff changeset
300
25579
256aa4861079 Sätt client type on MSN.
Marcus Lundblad <malu@pidgin.im>
parents: 24772
diff changeset
301 /* set client caps based on what the UI tells us it is... */
256aa4861079 Sätt client type on MSN.
Marcus Lundblad <malu@pidgin.im>
parents: 24772
diff changeset
302 if (ui_info) {
256aa4861079 Sätt client type on MSN.
Marcus Lundblad <malu@pidgin.im>
parents: 24772
diff changeset
303 const gchar *client_type = g_hash_table_lookup(ui_info, "client_type");
256aa4861079 Sätt client type on MSN.
Marcus Lundblad <malu@pidgin.im>
parents: 24772
diff changeset
304 if (client_type) {
256aa4861079 Sätt client type on MSN.
Marcus Lundblad <malu@pidgin.im>
parents: 24772
diff changeset
305 if (strcmp(client_type, "phone") == 0 ||
256aa4861079 Sätt client type on MSN.
Marcus Lundblad <malu@pidgin.im>
parents: 24772
diff changeset
306 strcmp(client_type, "handheld") == 0) {
256aa4861079 Sätt client type on MSN.
Marcus Lundblad <malu@pidgin.im>
parents: 24772
diff changeset
307 caps |= MSN_CLIENT_CAP_WIN_MOBILE;
256aa4861079 Sätt client type on MSN.
Marcus Lundblad <malu@pidgin.im>
parents: 24772
diff changeset
308 } else if (strcmp(client_type, "web")) {
256aa4861079 Sätt client type on MSN.
Marcus Lundblad <malu@pidgin.im>
parents: 24772
diff changeset
309 caps |= MSN_CLIENT_CAP_WEBMSGR;
256aa4861079 Sätt client type on MSN.
Marcus Lundblad <malu@pidgin.im>
parents: 24772
diff changeset
310 } else if (strcmp(client_type, "bot")) {
256aa4861079 Sätt client type on MSN.
Marcus Lundblad <malu@pidgin.im>
parents: 24772
diff changeset
311 caps |= MSN_CLIENT_CAP_BOT;
256aa4861079 Sätt client type on MSN.
Marcus Lundblad <malu@pidgin.im>
parents: 24772
diff changeset
312 }
256aa4861079 Sätt client type on MSN.
Marcus Lundblad <malu@pidgin.im>
parents: 24772
diff changeset
313 /* MSN doesn't a "console" type...
256aa4861079 Sätt client type on MSN.
Marcus Lundblad <malu@pidgin.im>
parents: 24772
diff changeset
314 What, they have no ncurses UI? :-) */
256aa4861079 Sätt client type on MSN.
Marcus Lundblad <malu@pidgin.im>
parents: 24772
diff changeset
315 }
256aa4861079 Sätt client type on MSN.
Marcus Lundblad <malu@pidgin.im>
parents: 24772
diff changeset
316 }
256aa4861079 Sätt client type on MSN.
Marcus Lundblad <malu@pidgin.im>
parents: 24772
diff changeset
317
14453
1cc75906700c [gaim-migrate @ 17098]
Mark Doliner <markdoliner@pidgin.im>
parents: 14254
diff changeset
318 account = session->account;
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
319 cmdproc = session->notification->cmdproc;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
320 user = session->user;
11992
906176cc9b22 [gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10908
diff changeset
321 state_text = msn_state_get_text(msn_state_from_account(account));
10908
15694532c3c6 [gaim-migrate @ 12640]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10481
diff changeset
322
15694532c3c6 [gaim-migrate @ 12640]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10481
diff changeset
323 /* If we're not logged in yet, don't send the status to the server,
15694532c3c6 [gaim-migrate @ 12640]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10481
diff changeset
324 * it will be sent when login completes
15694532c3c6 [gaim-migrate @ 12640]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10481
diff changeset
325 */
15694532c3c6 [gaim-migrate @ 12640]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10481
diff changeset
326 if (!session->logged_in)
15694532c3c6 [gaim-migrate @ 12640]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10481
diff changeset
327 return;
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
328
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
329 msnobj = msn_user_get_object(user);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
330
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
331 if (msnobj == NULL)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
332 {
25579
256aa4861079 Sätt client type on MSN.
Marcus Lundblad <malu@pidgin.im>
parents: 24772
diff changeset
333 msn_cmdproc_send(cmdproc, "CHG", "%s %d", state_text, caps);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
334 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
335 else
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
336 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
337 char *msnobj_str;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
338
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
339 msnobj_str = msn_object_to_string(msnobj);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
340
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
341 msn_cmdproc_send(cmdproc, "CHG", "%s %d %s", state_text,
25579
256aa4861079 Sätt client type on MSN.
Marcus Lundblad <malu@pidgin.im>
parents: 24772
diff changeset
342 caps, purple_url_encode(msnobj_str));
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
343
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
344 g_free(msnobj_str);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
345 }
13891
a357e7e3cddb [gaim-migrate @ 17014]
Ma Yuan <mayuan2006@gmail.com>
parents: 13889
diff changeset
346 msn_set_psm(session);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
347 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
348
5361
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
349 const char *
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
350 msn_away_get_text(MsnAwayType type)
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
351 {
7631
0e9e516bb6c3 [gaim-migrate @ 8255]
Nathan Walp <nwalp@pidgin.im>
parents: 6701
diff changeset
352 g_return_val_if_fail(type <= MSN_HIDDEN, NULL);
5361
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
353
5824
cbae51183b18 [gaim-migrate @ 6254]
Björn Voigt <bjoern@cs.tu-berlin.de>
parents: 5361
diff changeset
354 return _(away_text[type]);
5361
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
355 }
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
356
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
357 const char *
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
358 msn_state_get_text(MsnAwayType state)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
359 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
360 static char *status_text[] =
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
361 { "NLN", "NLN", "BSY", "IDL", "BRB", "AWY", "PHN", "LUN", "HDN", "HDN" };
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
362
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
363 return status_text[state];
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8475
diff changeset
364 }
11992
906176cc9b22 [gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10908
diff changeset
365
906176cc9b22 [gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10908
diff changeset
366 MsnAwayType
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
367 msn_state_from_account(PurpleAccount *account)
11992
906176cc9b22 [gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10908
diff changeset
368 {
906176cc9b22 [gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10908
diff changeset
369 MsnAwayType msnstatus;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
370 PurplePresence *presence;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
371 PurpleStatus *status;
11992
906176cc9b22 [gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10908
diff changeset
372 const char *status_id;
906176cc9b22 [gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10908
diff changeset
373
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
374 presence = purple_account_get_presence(account);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
375 status = purple_presence_get_active_status(presence);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
376 status_id = purple_status_get_id(status);
11992
906176cc9b22 [gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10908
diff changeset
377
906176cc9b22 [gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10908
diff changeset
378 if (!strcmp(status_id, "away"))
906176cc9b22 [gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10908
diff changeset
379 msnstatus = MSN_AWAY;
906176cc9b22 [gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10908
diff changeset
380 else if (!strcmp(status_id, "brb"))
906176cc9b22 [gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10908
diff changeset
381 msnstatus = MSN_BRB;
906176cc9b22 [gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10908
diff changeset
382 else if (!strcmp(status_id, "busy"))
906176cc9b22 [gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10908
diff changeset
383 msnstatus = MSN_BUSY;
906176cc9b22 [gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10908
diff changeset
384 else if (!strcmp(status_id, "phone"))
906176cc9b22 [gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10908
diff changeset
385 msnstatus = MSN_PHONE;
906176cc9b22 [gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10908
diff changeset
386 else if (!strcmp(status_id, "lunch"))
906176cc9b22 [gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10908
diff changeset
387 msnstatus = MSN_LUNCH;
906176cc9b22 [gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10908
diff changeset
388 else if (!strcmp(status_id, "invisible"))
906176cc9b22 [gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10908
diff changeset
389 msnstatus = MSN_HIDDEN;
906176cc9b22 [gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10908
diff changeset
390 else
906176cc9b22 [gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10908
diff changeset
391 msnstatus = MSN_ONLINE;
906176cc9b22 [gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10908
diff changeset
392
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
393 if ((msnstatus == MSN_ONLINE) && purple_presence_is_idle(presence))
11992
906176cc9b22 [gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10908
diff changeset
394 msnstatus = MSN_IDLE;
906176cc9b22 [gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10908
diff changeset
395
906176cc9b22 [gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10908
diff changeset
396 return msnstatus;
906176cc9b22 [gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10908
diff changeset
397 }

mercurial