diff options
author | Kirill Volinsky <mataes2007@gmail.com> | 2012-10-14 08:19:21 +0000 |
---|---|---|
committer | Kirill Volinsky <mataes2007@gmail.com> | 2012-10-14 08:19:21 +0000 |
commit | e179ffc995c96568bfdce46ac73f58d569166f05 (patch) | |
tree | ee2dfd530b75ef4ae06cb7079c923fe7e2fbafa8 /protocols/Yahoo/links.cpp | |
parent | d722261be7a0cd3aa259aa285aea7f936c0e2f0e (diff) |
Yahoo: folders restructurization
git-svn-id: http://svn.miranda-ng.org/main/trunk@1918 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'protocols/Yahoo/links.cpp')
-rw-r--r-- | protocols/Yahoo/links.cpp | 184 |
1 files changed, 0 insertions, 184 deletions
diff --git a/protocols/Yahoo/links.cpp b/protocols/Yahoo/links.cpp deleted file mode 100644 index 8af33e94b3..0000000000 --- a/protocols/Yahoo/links.cpp +++ /dev/null @@ -1,184 +0,0 @@ -/*
- * $Id: services.c 5376 2007-05-07 16:13:18Z 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_addcontact.h"
-#include "m_message.h"
-#include "m_assocmgr.h"
-
-#include "resource.h"
-
-static HANDLE hServiceParseLink;
-
-static int SingleHexToDecimal(TCHAR c)
-{
- if (c >= '0' && c <= '9') return c - '0';
- if (c >= 'a' && c <= 'f') return c - 'a' + 10;
- if (c >= 'A' && c <= 'F') return c - 'A' + 10;
- return -1;
-}
-
-static void url_decode(TCHAR* str)
-{
- TCHAR* s = str, *d = str;
-
- while(*s)
- {
- if (*s == '%')
- {
- int digit1 = SingleHexToDecimal(s[1]);
- if (digit1 != -1)
- {
- int digit2 = SingleHexToDecimal(s[2]);
- if (digit2 != -1)
- {
- s += 3;
- *d++ = (TCHAR)((digit1 << 4) | digit2);
- continue;
- }
- }
- }
- *d++ = *s++;
- }
-
- *d = 0;
-}
-
-static char* get_buddy(TCHAR ** arg)
-{
- TCHAR *buf = *arg;
-
- TCHAR *tok = _tcschr(buf, '&'); /* first token */
- if (tok) *tok = 0;
-
- if (!buf[0]) return NULL;
- url_decode(buf);
-
- *arg = tok ? tok + 1 : NULL;
-
- return mir_t2a(buf);
-}
-
-
-/*
- add user: ymsgr:addfriend?ID
- send message: ymsgr:sendim?ID&m=MESSAGE
- add chatroom: ymsgr:chat?ROOM
-*/
-static INT_PTR ServiceParseYmsgrLink(WPARAM wParam, LPARAM lParam)
-{
- TCHAR *arg = (TCHAR*)lParam;
- if (arg == NULL) return 1; /* sanity check */
-
- /* skip leading prefix */
- arg = _tcschr(arg, ':');
- if (arg == NULL) return 1; /* parse failed */
-
- for (++arg; *arg == '/'; ++arg) {}
-
- if (g_instances.getCount() == 0) return 0;
-
- CYahooProto *proto = g_instances[0];
- for (int i = 0; i < g_instances.getCount(); ++i)
- {
- if (g_instances[i]->m_iStatus > ID_STATUS_OFFLINE)
- {
- proto = g_instances[i];
- break;
- }
- }
- if (!proto) return 1;
-
- /* add a contact to the list */
- if (!_tcsnicmp(arg, _T("addfriend?"), 10))
- {
- arg += 10;
-
- char *id = get_buddy(&arg);
- if (!id) return 1;
-
- if (proto->getbuddyH(id) == NULL) /* does not yet check if id is current user */
- {
- ADDCONTACTSTRUCT acs = {0};
- PROTOSEARCHRESULT psr = {0};
-
- acs.handleType = HANDLE_SEARCHRESULT;
- acs.szProto = proto->m_szModuleName;
- acs.psr = &psr;
-
- psr.cbSize = sizeof(PROTOSEARCHRESULT);
- psr.id = (TCHAR*)id;
- CallService(MS_ADDCONTACT_SHOW, 0, (LPARAM)&acs);
- }
-
- mir_free(id);
- return 0;
- }
- /* send a message to a contact */
- else if (!_tcsnicmp(arg, _T("sendim?"), 7))
- {
- arg += 7;
-
- char *id = get_buddy(&arg);
- if (!id) return 1;
-
- TCHAR *msg = NULL;
-
- while (arg)
- {
- if (!_tcsnicmp(arg, _T("m="), 2))
- {
- msg = arg + 2;
- url_decode(msg);
- break;
- }
-
- arg = _tcschr(arg + 1, '&'); /* first token */
- if (arg) *arg = 0;
- }
-
- HANDLE hContact = proto->add_buddy(id, id, 0, PALF_TEMPORARY); /* ensure contact is on list */
- if (hContact)
- CallService(MS_MSG_SENDMESSAGET, (WPARAM)hContact, (LPARAM)msg);
-
- mir_free(id);
- return 0;
- }
- /* open a chatroom */
- else if (!_tcsnicmp(arg, _T("chat?"), 5))
- {
- arg += 5;
-
-// char *id = get_buddy(&arg);
-// if (!id) return 1;
-
- /* not yet implemented (rm contains name of chatroom)*/
- return 0;
- }
- return 1; /* parse failed */
-}
-
-void YmsgrLinksInit(void)
-{
- static const char szService[] = "YAHOO/ParseYmsgrLink";
-
- hServiceParseLink = CreateServiceFunction(szService, ServiceParseYmsgrLink);
- AssocMgr_AddNewUrlTypeT("ymsgr:", TranslateT("YAHOO Link Protocol"), hInstance, IDI_YAHOO, szService, 0);
-}
-
-void YmsgrLinksUninit(void)
-{
- DestroyServiceFunction(hServiceParseLink);
- CallService(MS_ASSOCMGR_REMOVEURLTYPE, 0, (LPARAM)"ymsgr:");
-}
|