1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
/*
* $Id: search.c 3659 2006-08-30 19:43:41Z gena01 $
*
* myYahoo Miranda Plugin
*
* Authors: Gennady Feldman (aka Gena01)
* Laurent Marechal (aka Peorth)
*
* This code is under GPL and is based on AIM, MSN and Miranda source code.
* I want to thank Robert Rainwater and George Hazan for their code and support
* and for answering some of my questions during development of this plugin.
*/
#include "yahoo.h"
#include <m_protosvc.h>
#include <m_langpack.h>
#include <m_message.h>
extern yahoo_local_account * ylad;
//=======================================================
//Search for user
//=======================================================
static void __cdecl yahoo_search_simplethread(void *snsearch)
{
PROTOSEARCHRESULT psr;
/* if (aim_util_isme(sn)) {
ProtoBroadcastAck(AIM_PROTO, NULL, ACKTYPE_SEARCH, ACKRESULT_SUCCESS, (HANDLE) 1, 0);
return;
}
*/
ZeroMemory(&psr, sizeof(psr));
psr.cbSize = sizeof(psr);
psr.nick = (char *)snsearch;
//psr.email = (char *)snsearch;
//void yahoo_search(int id, enum yahoo_search_type t, const char *text, enum yahoo_search_gender g, enum yahoo_search_agerange ar,
// int photo, int yahoo_only)
YAHOO_SendBroadcast(NULL, ACKTYPE_SEARCH, ACKRESULT_DATA, (HANDLE) 1, (LPARAM) & psr);
//YAHOO_SendBroadcast(NULL, ACKTYPE_SEARCH, ACKRESULT_SUCCESS, (HANDLE) 1, 0);
}
static void yahoo_search_simple(const char *nick)
{
static char m[255];
char *c;
c = strchr(nick, '@');
if (c != NULL){
int l = c - nick;
strncpy(m, nick, l);
m[l] = '\0';
}else
strcpy(m, nick);
//YAHOO_basicsearch(nick);
yahoo_search(ylad->id, YAHOO_SEARCH_YID, nick, YAHOO_GENDER_NONE, YAHOO_AGERANGE_NONE, 0, 1);
pthread_create(yahoo_search_simplethread, (void *) m);
}
int YahooBasicSearch(WPARAM wParam,LPARAM lParam)
{
if ( !yahooLoggedIn )
return 0;
yahoo_search_simple((char *) lParam);
return 1;
}
void ext_yahoo_got_search_result(int id, int found, int start, int total, YList *contacts)
{
PROTOSEARCHRESULT psr;
struct yahoo_found_contact *yct=NULL;
char *c;
int i=start;
YList *en=contacts;
LOG(("got search result: "));
LOG(("ID: %d", id));
LOG(("Found: %d", found));
LOG(("Start: %d", start));
LOG(("Total: %d", total));
ZeroMemory(&psr, sizeof(psr));
psr.cbSize = sizeof(psr);
while (en) {
yct = en->data;
if (yct == NULL) {
LOG(("[%d] Empty record?",i++));
} else {
LOG(("[%d] id: '%s', online: %d, age: %d, sex: '%s', location: '%s'", i++, yct->id, yct->online, yct->age, yct->gender, yct->location));
psr.nick = (char *)yct->id;
c = (char *)malloc(10);
if (yct->gender[0] != 5)
psr.firstName = yct->gender;
if (yct->age > 0) {
itoa(yct->age, c,10);
psr.lastName = (char *)c;
}
if (yct->location[0] != 5)
psr.email = (char *)yct->location;
//void yahoo_search(int id, enum yahoo_search_type t, const char *text, enum yahoo_search_gender g, enum yahoo_search_agerange ar,
// int photo, int yahoo_only)
YAHOO_SendBroadcast(NULL, ACKTYPE_SEARCH, ACKRESULT_DATA, (HANDLE) 1, (LPARAM) & psr);
}
en = y_list_next(en);
}
YAHOO_SendBroadcast(NULL, ACKTYPE_SEARCH, ACKRESULT_SUCCESS, (HANDLE) 1, 0);
}
|