comparison libpurple/protocols/jabber/google.c @ 27501:6d26258e9f1d

propagate from branch 'im.pidgin.pidgin' (head ac87c285c7056f86005dc157b9870745de471f74) to branch 'im.pidgin.cpw.darkrain42.roster' (head 976d874853ac9745edb77d3cf107b92ebc037c10)
author Paul Aurich <paul@darkrain42.org>
date Mon, 06 Jul 2009 04:37:41 +0000
parents 93a41017dca9 5afc3577b8cd
children 3bb1085235d0
comparison
equal deleted inserted replaced
27500:b9da56683499 27501:6d26258e9f1d
785 JabberIqType type, const char *id, 785 JabberIqType type, const char *id,
786 xmlnode *packet, gpointer nul) 786 xmlnode *packet, gpointer nul)
787 { 787 {
788 xmlnode *child; 788 xmlnode *child;
789 xmlnode *message; 789 xmlnode *message;
790 const char *to, *url; 790 const char *to, *default_url;
791 const char *in_str; 791 const char *in_str;
792 char *to_name; 792 char *to_name;
793 793
794 int i, count = 1, returned_count; 794 int i, count = 1, returned_count;
795 795
835 subjects = g_new0(char* , returned_count + 1); 835 subjects = g_new0(char* , returned_count + 1);
836 urls = g_new0(const char* , returned_count + 1); 836 urls = g_new0(const char* , returned_count + 1);
837 837
838 to = xmlnode_get_attrib(packet, "to"); 838 to = xmlnode_get_attrib(packet, "to");
839 to_name = jabber_get_bare_jid(to); 839 to_name = jabber_get_bare_jid(to);
840 url = xmlnode_get_attrib(child, "url"); 840 default_url = xmlnode_get_attrib(child, "url");
841 if (!url || !*url) 841 if (default_url == NULL || *default_url == '\0')
842 url = "http://www.gmail.com"; 842 default_url = "http://mail.google.com/mail";
843 843
844 message= xmlnode_get_child(child, "mail-thread-info"); 844 message= xmlnode_get_child(child, "mail-thread-info");
845 for (i=0; message; message = xmlnode_get_next_twin(message), i++) { 845 for (i=0; message; message = xmlnode_get_next_twin(message), i++) {
846 xmlnode *sender_node, *subject_node; 846 xmlnode *sender_node, *subject_node;
847 const char *from, *tid; 847 const char *from, *tid, *url;
848 char *subject; 848 char *subject;
849
850 url = xmlnode_get_attrib(message, "url");
851 if (url == NULL || *url == '\0')
852 url = default_url;
849 853
850 subject_node = xmlnode_get_child(message, "subject"); 854 subject_node = xmlnode_get_child(message, "subject");
851 sender_node = xmlnode_get_child(message, "senders"); 855 sender_node = xmlnode_get_child(message, "senders");
852 sender_node = xmlnode_get_child(sender_node, "sender"); 856 sender_node = xmlnode_get_child(sender_node, "sender");
853 857
937 return; 941 return;
938 } 942 }
939 943
940 void jabber_gmail_init(JabberStream *js) { 944 void jabber_gmail_init(JabberStream *js) {
941 JabberIq *iq; 945 JabberIq *iq;
942 946 xmlnode *usersetting, *mailnotifications;
943 if (!purple_account_get_check_mail(js->gc->account)) 947
944 return; 948 if (!purple_account_get_check_mail(purple_connection_get_account(js->gc)))
949 return;
950
951 /*
952 * Quoting http://code.google.com/apis/talk/jep_extensions/usersettings.html:
953 * To ensure better compatibility with other clients, rather than
954 * setting this value to "false" to turn off notifications, it is
955 * recommended that a client set this to "true" and filter incoming
956 * email notifications itself.
957 */
958 iq = jabber_iq_new(js, JABBER_IQ_SET);
959 usersetting = xmlnode_new_child(iq->node, "usersetting");
960 xmlnode_set_namespace(usersetting, "google:setting");
961 mailnotifications = xmlnode_new_child(usersetting, "mailnotifications");
962 xmlnode_set_attrib(mailnotifications, "value", "true");
963 jabber_iq_send(iq);
945 964
946 iq = jabber_iq_new_query(js, JABBER_IQ_GET, "google:mail:notify"); 965 iq = jabber_iq_new_query(js, JABBER_IQ_GET, "google:mail:notify");
947 jabber_iq_set_callback(iq, jabber_gmail_parse, NULL); 966 jabber_iq_set_callback(iq, jabber_gmail_parse, NULL);
948 jabber_iq_send(iq); 967 jabber_iq_send(iq);
949 } 968 }