wchar_t *BabylonWindow::FindTranslatedText(wchar_t* html) { if (!ParseJSON(html, L"\"translatedText\":\"", NULL)) return NULL; for (wchar_t *p = html; p = wcsstr(p, L"\",\""); memcpy(p, L" \n", 3*sizeof(wchar_t))); UnescapeHtml(html, 0); return html; }
wchar_t *ExciteWindow::FindTranslatedText(wchar_t* html) { int slen; wchar_t *start = GetSubstring(html, L"name=\"after\"", L"</textarea>", &slen); if (!slen) { start = GetSubstring(html, L"name=after", L"</textarea>", &slen); if (!slen) return NULL; } wchar_t *out = wcschr(start, L'>'); if (!out || out - start >= slen) return NULL; start[slen] = 0; UnescapeHtml(++out, 0); return out; }
wchar_t *BabelfishWindow::FindTranslatedText(wchar_t* html) { int slen; wchar_t *start = GetSubstring(html, L"<li class=\"s_after\">", L"</li>", &slen); if (!slen) return NULL; start[slen] = 0; if (start[slen - 1] == ')') { wchar_t *p; for (p = start + slen - 2; p > start && (*p | 0x20u) - 'a' <= 'z' - 'a'; p--); if (p[0] == '(' && p[-1] == ' ') p[-1] = 0; } UnescapeHtml(start, 0); return start; }
String UnescapeHtml(const char *str) { String rtn; UnescapeHtml(rtn, str); return rtn; }