static void MapToTable(lua_State *L, const PROTOACCOUNT* pa) { lua_newtable(L); lua_pushliteral(L, "ModuleName"); lua_pushstring(L, ptrA(mir_utf8encode(pa->szModuleName))); lua_settable(L, -3); lua_pushliteral(L, "AccountName"); lua_pushstring(L, ptrA(mir_utf8encodeT(pa->tszAccountName))); lua_settable(L, -3); lua_pushliteral(L, "ProtoName"); lua_pushstring(L, ptrA(mir_utf8encode(pa->szProtoName))); lua_settable(L, -3); lua_pushliteral(L, "IsEnabled"); lua_pushboolean(L, pa->bIsEnabled); lua_settable(L, -3); lua_pushliteral(L, "IsVisible"); lua_pushboolean(L, pa->bIsVisible); lua_settable(L, -3); lua_pushliteral(L, "IsVirtual"); lua_pushboolean(L, pa->bIsVirtual); lua_settable(L, -3); lua_pushliteral(L, "IsOldProto"); lua_pushboolean(L, pa->bOldProto); lua_settable(L, -3); }
static int SettingsChangedHookEventObjParam(void *obj, WPARAM wParam, LPARAM lParam, LPARAM param) { lua_State *L = (lua_State*)obj; int ref = param; lua_rawgeti(L, LUA_REGISTRYINDEX, ref); lua_pushnumber(L, wParam); DBCONTACTWRITESETTING *dbcws = (DBCONTACTWRITESETTING*)lParam; lua_newtable(L); lua_pushliteral(L, "Module"); lua_pushstring(L, dbcws->szModule); lua_settable(L, -3); lua_pushliteral(L, "Setting"); lua_pushstring(L, dbcws->szSetting); lua_settable(L, -3); lua_pushliteral(L, "Value"); switch (dbcws->value.type) { case DBVT_BYTE: lua_pushinteger(L, dbcws->value.bVal); break; case DBVT_WORD: lua_pushinteger(L, dbcws->value.wVal); break; case DBVT_DWORD: lua_pushnumber(L, dbcws->value.dVal); break; case DBVT_ASCIIZ: lua_pushstring(L, ptrA(mir_utf8encode(dbcws->value.pszVal))); break; case DBVT_UTF8: lua_pushstring(L, dbcws->value.pszVal); break; case DBVT_WCHAR: lua_pushstring(L, ptrA(mir_utf8encodeW(dbcws->value.pwszVal))); break; default: lua_pushvalue(L, 4); return 1; } lua_settable(L, -3); if (lua_pcall(L, 2, 1, 0)) printf("%s\n", lua_tostring(L, -1)); int res = (int)lua_tointeger(L, 1); return res; }
void CMLua::SetPaths() { TCHAR path[MAX_PATH]; FoldersGetCustomPathT(g_hScriptsFolder, path, _countof(path), VARST(MIRLUA_PATHT)); lua_getglobal(L, "package"); lua_pushfstring(L, "%s\\?.dll", ptrA(mir_utf8encodeT(path))); lua_setfield(L, -2, "cpath"); lua_pushfstring(L, "%s\\?.lua", ptrA(mir_utf8encodeT(path))); lua_setfield(L, -2, "path"); lua_pop(L, 1); }
char *TemplateHTMLBuilder::timestampToString(DWORD dwFlags, time_t check, int mode) { static char szResult[512]; TCHAR str[300]; DBTIMETOSTRINGT dbtts; dbtts.cbDest = 70; dbtts.szDest = str; szResult[0] = '\0'; if (mode) { //time dbtts.szFormat = (dwFlags & Options::LOG_SHOW_SECONDS) ? _T("s") : _T("t"); CallService(MS_DB_TIME_TIMESTAMPTOSTRINGT, check, (LPARAM)&dbtts); } else {//date struct tm tm_now, tm_today; time_t now = time(NULL); time_t today; tm_now = *localtime(&now); tm_today = tm_now; tm_today.tm_hour = tm_today.tm_min = tm_today.tm_sec = 0; today = mktime(&tm_today); if (dwFlags & Options::LOG_RELATIVE_DATE && check >= today) _tcsncpy(str, TranslateT("Today"), SIZEOF(str)); else if(dwFlags & Options::LOG_RELATIVE_DATE && check > (today - 86400)) _tcsncpy(str, TranslateT("Yesterday"), SIZEOF(str)); else { dbtts.szFormat = (dwFlags & Options::LOG_LONG_DATE) ? _T("D") : _T("d"); CallService(MS_DB_TIME_TIMESTAMPTOSTRINGT, check, (LPARAM) & dbtts); } } lstrcpynA(szResult, ptrA(mir_utf8encodeT(str)), 500); return szResult; }
void CMsnProto::MsnInvokeMyURL(bool ismail, const char* url) { char* hippy = NULL; if (!url) url = ismail ? "http://mail.live.com?rru=inbox" : "http://profile.live.com"; const char *postdata = ismail ? postdataM : postdataS; char passport[256]; if (db_get_static(NULL, m_szModuleName, "MsnPassportHost", passport, 256)) strcpy(passport, "https://login.live.com/"); char *p = strchr(passport, '/'); if (p && p[1] == '/') p = strchr(p + 2, '/'); if (p) *p = 0; CMStringA post = HotmailLogin(CMStringA().Format(postdata, (unsigned)time(NULL), ptrA(mir_urlEncode(url)))); if (!post.IsEmpty()) { CMStringA hippy(passport); hippy.AppendFormat("/ppsecure/sha1auth.srf?lc=%d&token=%s", itoa(langpref, passport, 10), ptrA(mir_urlEncode(post))); debugLogA("Starting URL: '%s'", hippy); CallService(MS_UTILS_OPENURL, 1, (LPARAM)hippy.GetString()); } }
// Adds new contact DWORD CMraProto::MraAddContact(MCONTACT hContact, DWORD dwContactFlag, DWORD dwGroupID, const CMStringA &szEmail, const CMStringW &wszCustomName, const CMStringA *szPhones, const CMString* wszAuthMessage) { if (szEmail.GetLength() <= 4 && !(dwContactFlag & CONTACT_FLAG_GROUP)) return 0; dwContactFlag |= CONTACT_FLAG_UNICODE_NAME; if (dwGroupID == -1) dwGroupID = 0; OutBuffer buf; buf.SetUL(dwContactFlag); buf.SetUL(dwGroupID); buf.SetLPSLowerCase(szEmail); buf.SetLPSW(wszCustomName); buf.SetLPS((szPhones == NULL) ? "" : *szPhones); // pack auth message OutBuffer buf2; buf2.SetUL(2); buf2.SetLPSW(_T(""));//***deb possible nick here buf2.SetLPSW((wszAuthMessage == NULL) ? _T("") : *wszAuthMessage); buf.SetLPS(CMStringA(ptrA(mir_base64_encode(buf2.Data(), (int)buf2.Len())))); buf.SetUL(0); return MraSendQueueCMD(hSendQueueHandle, 0, hContact, ACKTYPE_ADDED, NULL, 0, MRIM_CS_ADD_CONTACT, buf.Data(), buf.Len()); }
void FacebookProto::StickerAsSmiley(std::string sticker, const std::string &url, MCONTACT hContact) { std::string b64 = ptrA(mir_base64_encode((PBYTE)sticker.c_str(), (unsigned)sticker.length())); b64 = utils::url::encode(b64); std::tstring filename = GetAvatarFolder() + _T("\\stickers\\"); ptrT dir(mir_tstrdup(filename.c_str())); filename += (TCHAR*)_A2T(b64.c_str()); filename += _T(".png"); // Check if we have this sticker already and download it it not if (GetFileAttributes(filename.c_str()) == INVALID_FILE_ATTRIBUTES) { HANDLE nlc = NULL; facy.save_url(url, filename, nlc); Netlib_CloseHandle(nlc); } SMADD_CONT cont; cont.cbSize = sizeof(SMADD_CONT); cont.hContact = hContact; cont.type = 0; cont.path = dir; CallService(MS_SMILEYADD_LOADCONTACTSMILEYS, 0, (LPARAM)&cont); }
void CreateAuthString(char *auth, MCONTACT hContact, HWND hwndDlg) { DBVARIANT dbv; char *user = NULL, *pass = NULL; TCHAR *tlogin = NULL, *tpass = NULL, buf[MAX_PATH] = {0}; if (hContact && db_get_b(hContact, MODULE, "UseAuth", 0)) { if (!db_get_ts(hContact, MODULE, "Login", &dbv)) { tlogin = mir_tstrdup(dbv.ptszVal); db_free(&dbv); } tpass = db_get_tsa(hContact, MODULE, "Password"); } else if (hwndDlg && IsDlgButtonChecked(hwndDlg, IDC_USEAUTH)) { GetDlgItemText(hwndDlg, IDC_LOGIN, buf, SIZEOF(buf)); tlogin = mir_tstrdup(buf); GetDlgItemText(hwndDlg, IDC_PASSWORD, buf, SIZEOF(buf)); tpass = mir_tstrdup(buf); } user = mir_t2a(tlogin); pass = mir_t2a(tpass); char str[MAX_PATH]; int len = mir_snprintf(str, SIZEOF(str), "%s:%s", user, pass); mir_free(user); mir_free(pass); mir_free(tlogin); mir_free(tpass); mir_snprintf(auth, 250, "Basic %s", ptrA(mir_base64_encode((PBYTE)str, len))); }
ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) { if (NULL == headA || NULL == headB) return NULL; int lenA(1), lenB(1); ListNode* ptrA(headA), *ptrB(headB); while (NULL != ptrA->next) { ++lenA; ptrA = ptrA->next; } while (NULL != ptrB->next) { ++lenB; ptrB = ptrB->next; } if (ptrA != ptrB) return NULL; ptrA = headA; ptrB = headB; int stepDiff(lenA - lenB); if (0 < stepDiff) { for (int i(0); i < stepDiff; ++i) ptrA = ptrA->next; } else if (0 > stepDiff) { for (int i(stepDiff); i < 0; ++i) ptrB = ptrB->next; } while (ptrA != ptrB) { ptrA = ptrA->next; ptrB = ptrB->next; } return ptrA; }
static int dbei__index(lua_State *L) { DBEVENTINFO *dbei = (DBEVENTINFO*)luaL_checkudata(L, 1, MT_DBEVENTINFO); const char *key = luaL_checkstring(L, 2); if (mir_strcmpi(key, "Module") == 0) lua_pushstring(L, ptrA(mir_utf8encode(dbei->szModule))); else if (mir_strcmpi(key, "Timestamp") == 0) lua_pushnumber(L, dbei->timestamp); else if (mir_strcmpi(key, "Type") == 0) lua_pushinteger(L, dbei->eventType); else if (mir_strcmpi(key, "Flags") == 0) lua_pushinteger(L, dbei->flags); else if (mir_strcmpi(key, "Length") == 0) lua_pushnumber(L, dbei->cbBlob); else if (mir_strcmpi(key, "Blob") == 0) { lua_newtable(L); for (DWORD i = 0; i < dbei->cbBlob; i++) { lua_pushinteger(L, i + 1); lua_pushinteger(L, dbei->pBlob[i]); lua_settable(L, -3); } } else lua_pushnil(L); return 1; }
void CJabberProto::GetAvatarFileName(MCONTACT hContact, TCHAR* pszDest, size_t cbLen) { int tPathLen = mir_sntprintf(pszDest, cbLen, _T("%s\\%S"), VARST(_T("%miranda_avatarcache%")), m_szModuleName); DWORD dwAttributes = GetFileAttributes(pszDest); if (dwAttributes == 0xffffffff || (dwAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0) CreateDirectoryTreeT(pszDest); pszDest[ tPathLen++ ] = '\\'; const TCHAR* szFileType = ProtoGetAvatarExtension( getByte(hContact, "AvatarType", PA_FORMAT_PNG)); if (hContact != NULL) { char str[ 256 ]; DBVARIANT dbv; if (!db_get_utf(hContact, m_szModuleName, "jid", &dbv)) { strncpy(str, dbv.pszVal, sizeof str); str[ sizeof(str)-1 ] = 0; db_free(&dbv); } else _i64toa((LONG_PTR)hContact, str, 10); mir_sntprintf(pszDest + tPathLen, MAX_PATH - tPathLen, _T("%S%s"), ptrA(JabberSha1(str)), szFileType); } else if (m_ThreadInfo != NULL) { mir_sntprintf(pszDest + tPathLen, MAX_PATH - tPathLen, _T("%s@%S avatar%s"), m_ThreadInfo->username, m_ThreadInfo->server, szFileType); } else { ptrA res1( getStringA("LoginName")), res2( getStringA("LoginServer")); mir_sntprintf(pszDest + tPathLen, MAX_PATH - tPathLen, _T("%S@%S avatar%s"), (res1) ? (LPSTR)res1 : "noname", (res2) ? (LPSTR)res2 : m_szModuleName, szFileType); } }
bool CSteamProto::Relogin() { ptrA token(getStringA("TokenSecret")); if (mir_strlen(token) <= 0) return false; HttpRequest *request = new LogonRequest(token); HttpResponse *response = request->Send(m_hNetlibUser); bool success = false; if (CheckResponse(response)) { JSONROOT root(response->pData); if (root != NULL) { JSONNode *node = json_get(root, "error"); ptrT error(json_as_string(node)); if (!mir_tstrcmpi(error, _T("OK"))) { node = json_get(root, "umqid"); setString("UMQID", ptrA(mir_u2a(ptrT(json_as_string(node))))); node = json_get(root, "message"); setDword("MessageID", json_as_int(node)); success = true; } } } delete request; delete response; return success; }
void TlenGetAvatarFileName(TlenProtocol *proto, TLEN_LIST_ITEM *item, TCHAR* ptszDest, int cbLen) { int tPathLen = mir_sntprintf(ptszDest, cbLen, TEXT("%s\\%S"), VARST( TEXT("%miranda_avatarcache%")), proto->m_szModuleName); if (_taccess(ptszDest, 0)) { int ret = CreateDirectoryTreeT(ptszDest); if (ret == 0) proto->debugLog(_T("getAvatarFilename(): Created new directory for avatar cache: %s."), ptszDest); else { proto->debugLog(_T("getAvatarFilename(): Can not create directory for avatar cache: %s. errno=%d: %s"), ptszDest, errno, strerror(errno)); TCHAR buffer[512]; mir_sntprintf(buffer, SIZEOF(buffer), TranslateT("Cannot create avatars cache directory. ERROR: %d: %s\n%s"), errno, _tcserror(errno), ptszDest); PUShowMessageT(buffer, SM_WARNING); } } int format = PA_FORMAT_PNG; ptszDest[ tPathLen++ ] = '\\'; if (item != NULL) format = item->avatarFormat; else if (proto->threadData != NULL) format = proto->threadData->avatarFormat; else format = db_get_dw(NULL, proto->m_szModuleName, "AvatarFormat", PA_FORMAT_UNKNOWN); const TCHAR *tszFileType = ProtoGetAvatarExtension(format); if ( item != NULL ) mir_sntprintf(ptszDest + tPathLen, MAX_PATH - tPathLen, TEXT("%S%s"), ptrA( TlenSha1(item->jid)), tszFileType); else mir_sntprintf(ptszDest + tPathLen, MAX_PATH - tPathLen, TEXT("%S_avatar%s"), proto->m_szModuleName, tszFileType); }
void CLuaScriptLoader::LoadScripts(const TCHAR *scriptDir, int iGroup) { TCHAR buf[4096]; mir_sntprintf(buf, _T("Loading scripts from %s"), scriptDir); CallService(MS_NETLIB_LOGW, (WPARAM)hNetlib, (LPARAM)buf); RegisterScriptsFolder(ptrA(mir_utf8encodeT(scriptDir))); TCHAR searchMask[MAX_PATH]; mir_sntprintf(searchMask, _T("%s\\%s"), scriptDir, _T("*.lua")); TCHAR fullPath[MAX_PATH], path[MAX_PATH]; WIN32_FIND_DATA fd; HANDLE hFind = FindFirstFile(searchMask, &fd); if (hFind != INVALID_HANDLE_VALUE) { do { if (!(fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) { mir_sntprintf(fullPath, _T("%s\\%s"), scriptDir, fd.cFileName); PathToRelativeT(fullPath, path); if (db_get_b(NULL, MODULE, _T2A(fd.cFileName), 1)) LoadScript(fullPath, iGroup); } } while (FindNextFile(hFind, &fd)); FindClose(hFind); } }
INT_PTR FacebookProto::OnMind(WPARAM wParam, LPARAM lParam) { if (!isOnline()) return 1; MCONTACT hContact = MCONTACT(wParam); wall_data *wall = new wall_data(); wall->user_id = ptrA(getStringA(hContact, FACEBOOK_KEY_ID)); wall->isPage = false; if (wall->user_id == facy.self_.user_id) { wall->title = _tcsdup(TranslateT("Own wall")); } else wall->title = getTStringA(hContact, FACEBOOK_KEY_NICK); post_status_data *data = new post_status_data(this, wall); if (wall->user_id == facy.self_.user_id) { for (std::map<std::string, std::string>::iterator iter = facy.pages.begin(); iter != facy.pages.end(); ++iter) { data->walls.push_back(new wall_data(iter->first, mir_utf8decodeT(iter->second.c_str()), true)); } } HWND hDlg = CreateDialogParam(g_hInstance, MAKEINTRESOURCE(IDD_MIND), (HWND)0, FBMindProc, reinterpret_cast<LPARAM>(data)); ShowWindow(hDlg, SW_SHOW); return 0; }
int MsgWindowEventHookEventObjParam(void *obj, WPARAM wParam, LPARAM lParam, LPARAM param) { lua_State *L = (lua_State*)obj; int ref = param; lua_rawgeti(L, LUA_REGISTRYINDEX, ref); lua_pushnumber(L, wParam); MessageWindowEventData *ev = (MessageWindowEventData*)lParam; lua_newtable(L); lua_pushliteral(L, "Module"); lua_pushstring(L, ptrA(mir_utf8encode(ev->szModule))); lua_settable(L, -3); lua_pushliteral(L, "Type"); lua_pushinteger(L, ev->uType); lua_settable(L, -3); lua_pushliteral(L, "hContact"); lua_pushinteger(L, ev->hContact); lua_settable(L, -3); lua_pushliteral(L, "Flags"); lua_pushinteger(L, ev->uFlags); lua_settable(L, -3); if (lua_pcall(L, 2, 1, 0)) printf("%s\n", lua_tostring(L, -1)); int res = (int)lua_tointeger(L, 1); return res; }
INT_PTR CSkypeProto::SvcCreateChat(WPARAM, LPARAM) { if (IsOnline()) { CSkypeGCCreateDlg dlg(this); if (!dlg.DoModal()) { return 1; } LIST<char>uids(1); for (std::vector<MCONTACT>::size_type i = 0; i < dlg.m_hContacts.size(); i++) { uids.insert(db_get_sa(dlg.m_hContacts[i], m_szModuleName, SKYPE_SETTINGS_ID)); } uids.insert(getStringA(SKYPE_SETTINGS_ID)); SendRequest(new CreateChatroomRequest(m_szRegToken, uids, ptrA(getStringA(SKYPE_SETTINGS_ID)), m_szServer)); for (int i = 0; i < uids.getCount(); i++) mir_free(uids[i]); uids.destroy(); return 0; } return 1; }
int ThreadData::sendMessage(int msgType, const char* email, int netId, const char* parMsg, int parFlags) { char buf[2048]; int off; off = mir_snprintf(buf, sizeof(buf), "MIME-Version: 1.0\r\n"); if ((parFlags & MSG_DISABLE_HDR) == 0) { char tFontName[100], tFontStyle[3]; DWORD tFontColor; strcpy(tFontName, "Arial"); if (proto->getByte("SendFontInfo", 1)) { char* p; DBVARIANT dbv; if (!db_get_s(NULL, "SRMsg", "Font0", &dbv)) { for (p = dbv.pszVal; *p; p++) if (BYTE(*p) >= 128 || *p < 32) break; if (*p == 0) { strncpy_s(tFontName, sizeof(tFontName), ptrA(mir_urlEncode(dbv.pszVal)), _TRUNCATE); db_free(&dbv); } } int tStyle = db_get_b(NULL, "SRMsg", "Font0Sty", 0); p = tFontStyle; if (tStyle & 1) *p++ = 'B'; if (tStyle & 2) *p++ = 'I'; *p = 0; tFontColor = db_get_dw(NULL, "SRMsg", "Font0Col", 0); } else { tFontColor = 0; tFontStyle[0] = 0; } if (parFlags & MSG_OFFLINE) off += mir_snprintf(buf + off, sizeof(buf) - off, "Dest-Agent: client\r\n"); off += mir_snprintf(buf + off, sizeof(buf) - off, "Content-Type: text/plain; charset=UTF-8\r\n"); off += mir_snprintf(buf + off, sizeof(buf) - off, "X-MMS-IM-Format: FN=%s; EF=%s; CO=%x; CS=0; PF=31%s\r\n\r\n", tFontName, tFontStyle, tFontColor, (parFlags & MSG_RTL) ? ";RL=1" : ""); } int seq; if (netId == NETID_YAHOO || netId == NETID_MOB || (parFlags & MSG_OFFLINE)) seq = sendPacket("UUM", "%s %d %c %d\r\n%s%s", email, netId, msgType, strlen(parMsg)+off, buf, parMsg); else seq = sendPacket("MSG", "%c %d\r\n%s%s", msgType, strlen(parMsg)+off, buf, parMsg); return seq; }
AsyncHttpRequest* operator<<(AsyncHttpRequest *pReq, const CHAR_PARAM ¶m) { CMStringA &s = pReq->m_szParam; if (!s.IsEmpty()) s.AppendChar('&'); s.AppendFormat("%s=%s", param.szName, ptrA(pReq->bExpUrlEncode ? ExpUrlEncode(param.szValue) : mir_urlEncode(param.szValue))); return pReq; }
int CSkypeProto::OnContactDeleted(MCONTACT hContact, LPARAM) { if (!IsOnline()) return 1; if (hContact && !isChatRoom(hContact)) PushRequest(new DeleteContactRequest(li, ptrA(db_get_sa(hContact, m_szModuleName, SKYPE_SETTINGS_ID)))); return 0; }
int CSkypeProto::GetInfo(MCONTACT hContact, int) { if (!isChatRoom(hContact)) PushRequest( new GetProfileRequest(li, ptrA(db_get_sa(hContact, m_szModuleName, SKYPE_SETTINGS_ID))), &CSkypeProto::LoadProfile); return 0; }
INT_PTR CSkypeProto::BlockContact(WPARAM hContact, LPARAM) { if (!IsOnline()) return 1; if (IDYES == MessageBox(NULL, TranslateT("Are you sure?"), TranslateT("Warning"), MB_YESNO | MB_ICONQUESTION)) SendRequest(new BlockContactRequest(li, ptrA(db_get_sa(hContact, m_szModuleName, SKYPE_SETTINGS_ID))), &CSkypeProto::OnBlockContact, (void *)hContact); return 0; }
static int core_GetFullPath(lua_State *L) { TCHAR path[MAX_PATH]; GetModuleFileName(NULL, path, MAX_PATH); lua_pushstring(L, ptrA(mir_utf8encodeT(path))); return 1; }
static int lua_GetSetting(lua_State *L) { MCONTACT hContact = lua_tointeger(L, 1); LPCSTR szModule = luaL_checkstring(L, 2); LPCSTR szSetting = luaL_checkstring(L, 3); DBVARIANT dbv; if (db_get(hContact, szModule, szSetting, &dbv)) { lua_pushvalue(L, 4); return 1; } switch (dbv.type) { case DBVT_BYTE: lua_pushinteger(L, dbv.bVal); break; case DBVT_WORD: lua_pushinteger(L, dbv.wVal); break; case DBVT_DWORD: lua_pushnumber(L, dbv.dVal); break; case DBVT_ASCIIZ: lua_pushstring(L, ptrA(mir_utf8encode(dbv.pszVal))); break; case DBVT_UTF8: lua_pushstring(L, dbv.pszVal); break; case DBVT_WCHAR: lua_pushstring(L, ptrA(mir_utf8encodeW(dbv.pwszVal))); break; default: db_free(&dbv); lua_pushvalue(L, 4); return 1; } db_free(&dbv); return 1; }
INT_PTR CMsnProto::MsnSendHotmail(WPARAM hContact, LPARAM) { char szEmail[MSN_MAX_EMAIL_LEN]; if (MSN_IsMeByContact(hContact, szEmail)) MsnGotoInbox(0, 0); else if (msnLoggedIn) MsnInvokeMyURL(true, CMStringA().Format("http://mail.live.com?rru=compose?to=%s", ptrA(mir_urlEncode(szEmail)))); return 0; }
INT_PTR FacebookProto::VisitConversation(WPARAM wParam, LPARAM lParam) { MCONTACT hContact = MCONTACT(wParam); if (wParam == 0 || !IsMyContact(hContact, true)) return 1; std::string url = FACEBOOK_URL_CONVERSATION; if (isChatRoom(hContact)) { url += "conversation-"; url += ptrA(getStringA(hContact, FACEBOOK_KEY_TID)); } else { url += ptrA(getStringA(hContact, FACEBOOK_KEY_ID)); } OpenUrl(url); return 0; }
static void MapToTable(lua_State *L, const PROTOCOLDESCRIPTOR* pd) { lua_newtable(L); lua_pushliteral(L, "Name"); lua_pushstring(L, ptrA(mir_utf8encode(pd->szName))); lua_settable(L, -3); lua_pushliteral(L, "Type"); lua_pushinteger(L, pd->type); lua_settable(L, -3); }
void CSteamProto::OnLoggedOn(const HttpResponse *response) { if (!CheckResponse(response)) { if (response && response->resultCode == HTTP_CODE_UNAUTHORIZED) { // Probably expired TokenSecret HandleTokenExpired(); return; } // Probably timeout or no connection, we can do nothing here ShowNotification(_T("Steam"), TranslateT("Unknown login error.")); SetStatus(ID_STATUS_OFFLINE); return; } JSONROOT root(response->pData); JSONNode *node = json_get(root, "error"); ptrT error(json_as_string(node)); if (mir_tstrcmpi(error, _T("OK"))) { // Probably expired TokenSecret HandleTokenExpired(); return; } node = json_get(root, "umqid"); setString("UMQID", ptrA(mir_u2a(ptrT(json_as_string(node))))); node = json_get(root, "message"); setDword("MessageID", json_as_int(node)); if (m_lastMessageTS <= 0) { node = json_get(root, "utc_timestamp"); time_t timestamp = _ttoi64(ptrT(json_as_string(node))); setDword("LastMessageTS", timestamp); } // load contact list ptrA token(getStringA("TokenSecret")); ptrA steamId(getStringA("SteamID")); PushRequest( new GetFriendListRequest(token, steamId), &CSteamProto::OnGotFriendList); // start polling thread m_hPollingThread = ForkThreadEx(&CSteamProto::PollingThread, 0, NULL); // go to online now ProtoBroadcastAck(NULL, ACKTYPE_STATUS, ACKRESULT_SUCCESS, (HANDLE)ID_STATUS_CONNECTING, m_iStatus = m_iDesiredStatus); }
static int lua_DecodeDBCONTACTWRITESETTING(lua_State *L) { ObsoleteMethod(L, "Use totable(x, \"DBCONTACTWRITESETTING\") instead"); DBCONTACTWRITESETTING *pDBCWS = (DBCONTACTWRITESETTING*)lua_tointeger(L, 1); lua_newtable(L); lua_pushliteral(L, "Module"); lua_pushstring(L, pDBCWS->szModule); lua_settable(L, -3); lua_pushliteral(L, "Setting"); lua_pushstring(L, pDBCWS->szSetting); lua_settable(L, -3); lua_pushliteral(L, "Value"); switch (pDBCWS->value.type) { case DBVT_BYTE: lua_pushinteger(L, pDBCWS->value.bVal); break; case DBVT_WORD: lua_pushinteger(L, pDBCWS->value.wVal); break; case DBVT_DWORD: lua_pushnumber(L, pDBCWS->value.dVal); break; case DBVT_ASCIIZ: lua_pushstring(L, ptrA(mir_utf8encode(pDBCWS->value.pszVal))); break; case DBVT_UTF8: lua_pushstring(L, pDBCWS->value.pszVal); break; case DBVT_WCHAR: lua_pushstring(L, ptrA(mir_utf8encodeW(pDBCWS->value.pwszVal))); break; default: lua_pushvalue(L, 4); return 1; } lua_settable(L, -3); return 1; }
void CSkypeOptionsMain::OnInitDialog() { CSkypeDlgBase::OnInitDialog(); m_skypename.SetTextA(ptrA(m_proto->getStringA(SKYPE_SETTINGS_ID))); m_password.SetTextA(pass_ptrA(m_proto->getStringA("Password"))); m_place.Enable(!m_proto->getBool("UseHostName", false)); m_skypename.SendMsg(EM_LIMITTEXT, 32, 0); m_password.SendMsg(EM_LIMITTEXT, 128, 0); m_group.SendMsg(EM_LIMITTEXT, 64, 0); }