Рубрика «Yandex API» - 2

Есть у меня один проект долгострой, в котором использую Yandex Dictionary Api. В процессе разработки решил поделиться опытом создания асинхронного интерфейса к интернет-сервису.

Если у вас есть интерес, как реализовать такой клиент с помощью Qt C++, то этот пост для вас.

Я не стал заострять внимания на тех моментах Qt, которые и так хорошо описаны. В статье я попытался раскрыть, как создавать асинхронные классы в Qt на базе конкретного примера.

Пример программы

Программа посылает на сервер Yandex Dictioanary Api запросы на перевод слов и затем, по мере поступления ответов от сервиса, выводит их на экран.

#include "Precompiled.h"
#include <QtYandexApi/QtYandexApi.h>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QtYandexDictionary yandexDictionary(QtYandexApi::getYandexKeyFromFile("dictKey"));
    QObject::connect(&yandexDictionary, &QtYandexDictionary::translated,
                     [](const QtYaWordTranslation& wordTranslation)
    {
        if (wordTranslation.isError())
            qDebug() << wordTranslation.errorString();
        else {
            QtYaWord wordForTranslation = wordTranslation.wordForTranslation();
            QtYaTranslatedWord translatedWord = wordTranslation.translatedWord();
            qDebug() << "n***************";
            qDebug() << "Word: " << wordForTranslation.wordName();
            qDebug() << "Direction: " << wordForTranslation.fromLanguage() << "-" << wordForTranslation.toLanguage();
            qDebug() << "Main translation: " << translatedWord.mainTranslation();
            qDebug() << "Synonyms: " << translatedWord.synonyms();
            qDebug() << "Examples: ";
            for (const auto& example : translatedWord.examples()) {
                qDebug() << example.first << "-" << example.second;
            }
        }
    });

    QStringList russianWords, englishWords;
    russianWords << "дом" << "время" << "легенда" << "ключ" << "клавиатура" << "монитор" << "случай" << "один" << "два" << "три" << "четыре" << "пять" << "шесть";
    englishWords << "home" << "time" << "legend" << "key" << "keyboard" << "monitor" << "infection" << "one" << "two" << "three" << "four" << "five" << "success";

    for (const QString& word : russianWords) {
        yandexDictionary.translate(QtYaWord(word, "ru", "en"));
    }
    for (const QString& word : englishWords) {
        yandexDictionary.translate(QtYaWord(word, "en", "ru"));
    }

    return a.exec();
}

Читать полностью »

Идея про небольшой стартап пришла в голову когда я в очередной раз застрял на Переделкинском переезде объезжая стоячую пробку на МКАДе. На этот раз все было очень плохо, шлагбаум не открывался минут по 20. Мысль пришла вполне логичная: почему бы не сделать микросайт, где можно было бы глянуть когда на этот проклятый переезд лучше не соваться. Получился типичный гео-сервис. При разработке были решены стандартные, для такого рода сервисов, задачи. Надеюсь, эта статья сэкономит время тем, кто столкнется с внедрением гео-функций в свой проект.
Читать полностью »

Яндекс.Директ работает некорректно по протоколу SOAP, так как фактическая схема данных, используемая в ответах на запросы не совпадает со схемой из предоставленного сервисом описания WSDL. А именно не совпадает пространство имен (вместо «API» приходит «namespaces.soaplite.com/perl» и «xml.apache.org/xml-soap»), а также имена параметров (например, в методе GetRegions вместо имени «return» приходит «ArrayOfRegionInfo»).
Читать полностью »

Вышла новая версия Яндекс.Браузера: с синхронизацией и API ТаблоСегодня вышла новая версия Яндекс.Браузера. Теперь в нём есть:

  • синхронизация между разными компьютерами с помощью технологий Яндекс.Диска;
  • возможность продолжать поиск прямо в омнибоксе — и не только на Яндексе;
  • подсказки о страницах сайта, на которых вы даже ещё не были;
  • возможность с помощью API настроить представление своего сайта в Табло и много других важных улучшений.

Окно синхронизации в Яндекс.Браузере
На Хабре о Яндекс.Браузере мы рассказывали последний раз, когда в нём появился режим Турбо. Мы подсчитали, что сейчас в день им пользуется 10% всей аудитории нашего браузера; экономия трафика составляет 45%. Ежемесячно через Турбо проходит около 1,3 млрд веб-страниц.

На сегодняшний день недельная аудитория Яндекс.Браузера в России достигла 4,8М пользователей, а доля в Рунете — 4,7%. К слову, за время, прошедшее с момента выхода прошлой версии, мы не только развивали возможности своего браузера, но и присоединились к работе над проектом Хромиум.
Читать полностью »

Доброго дня. В этом топике мне хотелось бы рассказать вам о сервисе Yandex Translate, а именно о его API. Yandex Translate позволяет достаточно качественно переводить тексты, а его API использовать сервис перевода разработчикам в своих проектах.

В сим топике я хочу рассмотреть все три метода API, которые также хорошо документированы на сайте Yandex Translate API (тут).
Используя язык C# и части System.Net, System.XML и System.IO я покажу одну из вариаций работы с ним. Я думаю, что этот топик найдут полезным те, кто начинает свою работу с языком C#, либо с Yandex API.
Читать полностью »

Думаю, не мне одному чрезвычайно надоели ресурсы, требующие регистрации по каждому поводу и без. С обязательной капчей, которая правильно введется только с пятого раза, с подтверждением по е-мейлу, которое обязательно свалится в спам и то — только через сутки. Придумывать каждый раз новую пару логин-пароль — забудется, вводить одно и то же на всех сайтах — небезопасно. Местами прокатывают пары вида «qwerty:qwerty» или «login:password», но, увы, далеко не везде. Надоело. Не счесть, сколько раз я, увидев надпись «только зарегистрированный пользователь может ****», просто кривился и закрывал вкладку, чтобы больше ни разу на этот сайт не заходить. Неужели администраторы ресурсов сами этого не понимают? Читать полностью »

Создание пользовательского контрола карты с помощью API Яндекс.Карт 2.0
Есть у карт Рамблера одно интересное дизайнерское решение, отсутствующее в других картах. Это контрол центра карты, благодаря которому показывается на что направлен текущий центр карты. Именно на примере этой функциональности я бы хотел рассказать вам о том, как сделать свой контрол для карт на своем сайте.
Читать полностью »

После закрытия Гуглом своих API для перевода проблема поиска онлайн-сервис для машинного перевода стала особенно актуальной.
В Интернете много сервисов перевода с громкими именами: Промт, Прагма и пр. Нет никакой проблемы в PHP смоделировать обращения к страницам сервисов и получить результаты перевода. Но есть проблема: почти все сервисы в ответ на простой GET или POST запрос отдают не результат перевода, а целиком страницу во всей красе, начиная с DTD. Как говорят у нас на Украине, “дурных нэма”.
После анализа было выяснено, что есть только два сервиса, которые отдают в ответ на запрос только результат перевода: Яндекс и Bing от Microsoft.
<aЧитать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js