Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Написание линзы для Unity  (Прочитано 1161 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Fantiney

  • Автор темы
  • Участник
  • *
  • Сообщений: 137
    • Просмотр профиля
Написание линзы для Unity
« : 20 Октября 2012, 21:36:21 »
Наткнулся в сети на интересную статью
Прочитал, перевёл, сделал линзу с её помощью. Проверил - линза работает как надо, всё просто.
И появилась идея прикрутить гугл к своей машинке. Т.е. вызываешь меню, вводишь запрос, гугл выдаёт результаты. Конечно, это проще всего сделать линзой для дэша.. Проще? хм.. это как посмотреть....
Я взял за основу wiki линзу. Что нужно сделать в первую очередь - это сразу понятно - изменить поисковой запрос. Сказано - сделано. Вот новый код:

    def google_query(self, search):
        try:
            search = search.replace(" ", "|")
            url = ("http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=%s" % (search))
            results = simplejson.loads(urllib2.urlopen(url).read())
            print "Googling for %s" % (search)
            return results[1]
        except (IOError, KeyError, urllib2.URLError, urllib2.HTTPError, simplejson.JSONDecodeError):
            print "Houston, we have a problem"
            return []

А вот как дальше быть... Понятно, что Google возвращает результат в JSON формате, но вот как его отпарсить...

Может подскажите что нибудь? Что нужно прочитать, где посмотреть?
« Последнее редактирование: 20 Октября 2012, 21:45:38 от Jocker »

Оффлайн llenchikk

  • Активист
  • *
  • Сообщений: 420
    • Просмотр профиля
    • sms.ru
Re: Написание линзы для Unity
« Ответ #1 : 20 Октября 2012, 23:14:55 »
На хабре тоже интересуются
http://habrahabr.ru/post/155465/

Оффлайн vasilisc

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2563
  • г.Северодвинск - строим АПЛ
    • Просмотр профиля
    • Авторские статьи об OpenSource
Re: Написание линзы для Unity
« Ответ #2 : 22 Октября 2012, 11:42:26 »
Вам советую почитать
http://vasilisc.com/unity-lens-scope

разработчики не советуют плодить линзы, а найти "родственную" линзу и дополнить её, написав свою scope.

Оффлайн Fantiney

  • Автор темы
  • Участник
  • *
  • Сообщений: 137
    • Просмотр профиля
Re: Написание линзы для Unity
« Ответ #3 : 22 Октября 2012, 18:46:39 »
Вам советую почитать
http://vasilisc.com/unity-lens-scope

разработчики не советуют плодить линзы, а найти "родственную" линзу и дополнить её, написав свою scope.
Спасибо за статью, прочитал, узнал много нового.
Я, наверное, полный дебил - статью прочитал, а вопросы остались.


Исполняемый файл линзы может быть как бинарным, так и текстовым (скрипт Python)?
Исполняемый файл области также может быть как бинарным, так и текстовым (скрипт Python)?



Вы приводите в качестве примера следующий код добавления результатов в модель:

private void update_model(Unity.LensSearch search)
{
// Create a temp reference to make reading the code easier
var model = search.results_model;
// First we clear the existing results in the model
model.clear();
// Then we'd load the new results
string uri = "myface.com/search?q=" + search.search_term.encode();
add_filter_state_to_search_uri(uri);
var results = get_results_as_list(uri);
// Add the new results to the model
for (MyResult result in results)
{
    model.append(result.uri,
    icon_as_gicon_string(result.icon_uri),
    result.category_index,
    result.mimetype,
    result.name,
    result.comment,
    result.link_uri);
}
}
Unity.LensSearch search - это входные данные. Надо понимать, что это поисковой запрос, введенный пользователем?


Что означает search.search_term.encode() ?

В строке var results = get_results_as_list(uri); результаты берутся из переменной uri. Где она декларируется и какие данные в неё попадают?

Оффлайн actics

  • Новичок
  • *
  • Сообщений: 36
    • Просмотр профиля
Re: Написание линзы для Unity
« Ответ #4 : 23 Октября 2012, 01:07:32 »

А вот как дальше быть... Понятно, что Google возвращает результат в JSON формате, но вот как его отпарсить...


Для парсинга джейсона в питоне есть встроенная либа json

Оффлайн Дядюшка Ау

  • Участник
  • *
  • Сообщений: 123
  • Дайте две!
    • Просмотр профиля
Re: Написание линзы для Unity
« Ответ #5 : 23 Октября 2012, 09:01:51 »
Вам советую почитать
http://vasilisc.com/unity-lens-scope

Отличные статьи, спасибо! А нет ли у вас чего-то вроде туториала, с чего начать доработку линз - что ставить, как собирать и т.п.?
Ubuntu 12.04 для поколупацца, Win7 для поработать

Оффлайн vasilisc

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2563
  • г.Северодвинск - строим АПЛ
    • Просмотр профиля
    • Авторские статьи об OpenSource
Re: Написание линзы для Unity
« Ответ #6 : 26 Октября 2012, 10:18:56 »
Вам советую почитать
http://vasilisc.com/unity-lens-scope

Отличные статьи, спасибо! А нет ли у вас чего-то вроде туториала, с чего начать доработку линз - что ставить, как собирать и т.п.?
сам делаю первые шаги.
связался с автором help-lens и он дал инструкции, как сделать так чтобы наша русская forumubunturu-scope попала в официальные репозитории.

тут я понял, что нифига не знаю и нужно многое осваивать. =(

так что не помогу, ибо сам сел за "школьную скамью".

 

Страница сгенерирована за 0.018 секунд. Запросов: 21.