Блог - Linux, программирование, Я!

PythonПлагин Vkontakte.ru для Gwibber

Вступление

Gwibber + VkontakteНе так давно решил вплотную познакомиться со всей кухней OpenSource со стороны разработчика и в качестве первой пробы решил написать плагин к Gwibber для поддержки Вконтакте. Надо сказать, что тикет на Launchpad на эту тему висит с середины 2010 года (датирован 2010-05-01) с довольно длинным обсуждением, было несколько попыток реализовать поддержку, но готового решения никто не предложил. Помимо Launchpad, появился топик на форуме Ubuntu.ru, в котором топикстартер сообщил, что реализовал поддержку ВК, но код так никому и не показал.

Так что в начале декабря взялся за работу и через 2 месяца рабочая протестированная версия плагина была готова. На данный момент я уже отправил запрос о включении плагина в официальную ветку Gwibber и буквально сегодня разработчики отметили его для включения в релиз 2.91.5.
Описание функционала, инструкция для желающих протестировать плагин в работе уже сейчас под катом...

Доступный функционал

На данный момент работает:

  • Загрузка текстовых постов из новостей
  • Загрузка видео - постов
  • Загрузка постов - ссылок
  • Загрузка постов с фото и граффити
  • Отправка сообщений на свою стену
  • Комментирование постов
  • "Мне нравится" (сердечко)
  • Удаление моих постов

Хочется добавить:

  • Поддержку "ретвитов" ("Мне нравится"+"Рассказать друзьям") Пока архитектура Gwibber не позволяет это сделать
  • Поддержку mentions (упоминание). Вконтакте выглядит как ссылка "ответить на моей странице". В Gwibber сейчас отображается как "[id535397|Сергей Прохоров], ". Примитивную поддержку сейчас добавить ничего не мешает.
  • Поддержку личных сообщений (Пока что в сомнениях нужно ли это. В любом случае будет отдельная галочка в настройках аккаунта)

Известные проблемы:

  • После смены IP адреса появляется сообщение об ошибке "Unknown method passed". Дело в том, что авторизационный "токен" API вконтакте привязан к IP адресу (видимо для защиты от взлома аккаунта) и после каждой смены IP его нужно обновлять. Делать это в фоновом режиме в текущей реализации самого Gwibber сейчас нельзя. Особенно доставляет тот факт, что сообщение об ошибке ни о чем не говорит... Так что нажимаем "редактировать" и заново проходим процедуру авторизации, жмем F5 для получения последних сообщений.

Инструкция по установке

Прежде всего хочу отметить, что пользоваться этой инструкцией стоит только если очень хочется протестировать плагин прямо сейчас, т.к. скорее всего через месяцок-другой, надеюсь, плагин войдет в официальный релиз. Итак, от слов перейдем к делу.

Подготовка

UPD: для natty этот пункт можно пропустить, т.к. там установлена новая версия Gwibber.

Важно! Не пропустите! Т.к. поддержка плагинов появилась только в ветке 2.91.x, а в Ubuntu Maverick установлена версия 2.32.x, то необходимо сперва установить последнюю версию из девелоперского PPA "deb http://ppa.launchpad.net/gwibber-daily/ppa/ubuntu maverick main #Gwibber-Daily PPA" командами

sudo add-apt-repository ppa:gwibber-daily/ppa
sudo apt-get update
sudo apt-get upgrade

Эти команды обновят основные модули Gwibber. Важно! Т.к. все протоколы теперь поставляются в виде отдельных пакетов, нужные протоколы необходимо устанавливать самостоятельно. Если этого не сделать, то Gwibber не запустится, а при запуске gwibber из консоли увидим

Traceback (most recent call last):
  File "/usr/bin/gwibber", line 87, in
    client.Client()
  File "/usr/lib/python2.6/dist-packages/gwibber/client.py", line 621, in __init__
    self.w = GwibberClient()
.........
  File "/usr/lib/pymodules/python2.6/mako/runtime.py", line 278, in
    return lambda *args, **kwargs:callable_(self.context, *args, **kwargs)
  File "base_mako", line 251, in render_image
  File "base_mako", line 192, in profile_url
  File "base_mako", line 829, in render_profile_url
KeyError: u'twitter'

Посмотреть список протоколов можно командой

aptitude search gwibber-service-+

Установим минимум - протоколы facebook и twitter:

sudo aptitude install gwibber-service-{twitter,facebook}

После этого можете попробовать запустить Gwibber и убедиться что версия обновилась.
Gwibber about

Установка плагина Vkontakte.ru

UPD 2011-05-22: Вариант номер ноль. Используйте его! - установка из PPA

Для поддержки плагина создан PPA на Launchpad. Можно установить плагин, подключив этот PPA:

sudo apt-add-repository ppa:gwibber-vkontakte-plugin/ppa
sudo apt-get update
sudo aptitude install gwibber-service-vkontakte

Обновляться теперь будет автоматически!

Вариант номер раз - установка из DEB пакета

Добрый товарищ ZwS (Антон Судак?) с форума Ubuntu.ru собрал .DEB пакет, многие уже писали что установили этот пакет и у них все успешно заработало. Вот ссылки для скачивания DEB пакета для установки плагина
( оригинальная), ( мое зеркало) md5 e3ce23c5328fec6b54c2d549a4870812
UPD: новая версия ( оригинальная), ( мое зеркало) md5 d9cdb8299eebf8d7145dd219a3f75219

Просто скачиваете файл, запускаете, все подтверждаете, перезапускаете Gwibber, готово. Преимущества такого подхода - легко удалить если что-то сломается ( sudo aptitude remove gwibber-service-vkontakte) и если выйдет официальная версия плагина, то она без проблем установится поверх этой.

Вариант номер два (им пользуюсь я) - установка симлинков из bzr исходного кода

Пользуюсь потому что так можно запускать код написанный прямо сейчас, но просто так им пользоваться не советую.

Устанавливаем bazaar

sudo aptitude install bzr

Загружаем исходники Gwibber из моего репозитория Launchpad

bzr branch lp:~seriy-pr/gwibber/vkontakte-ru-plugin

После этого главная магия - делаем симлинки на некоторые кукски моего кода в директории откуда Gwibber их подхватит:

sudo ln -s /home/$USER/vkontakte-ru-plugin/gwibber/microblog/plugins/vkontakte/ /usr/share/gwibber/plugins/
sudo ln -s /home/$USER/vkontakte-ru-plugin/ui/icons/breakdance/16x16/vkontakte.* /usr/share/gwibber/ui/icons/breakdance/16x16/
sudo ln -s /home/$USER/vkontakte-ru-plugin/ui/icons/breakdance/22x22/vkontakte.* /usr/share/gwibber/ui/icons/breakdance/22x22/
sudo ln -s /home/$USER/vkontakte-ru-plugin/ui/icons/breakdance/scalable/vkontakte.* /usr/share/gwibber/ui/icons/breakdance/scalable/

И тогда должно заработать (только это небезопасно т.к. содержимое /home/$USER/vkontakte-ru-plugin доступно для записи). Если удалить директорию vkontakte-ru-plugin из домашней папки то работать перестанет. Чтобы этого избежать можно в предыдущем списке команд заменить команды "ln -s" на "cp"
Преимущества - для НЕразработчика - вам будет доступна самая последняя-распоследняя версия плагина. Недостатки - относительно сложно, небезопасно, могут возникнуть проблемы при обновлении.
Если после этого у вас Gwibber вдруг перестанет стартовать, можно подчистить следы деятельности командами

sudo rm -r /usr/share/gwibber/plugins/vkontakte
sudo rm -r /usr/share/gwibber/ui/icons/breakdance/*/vkontakte*
Способ номер три (я не проверял, но есть люди у которых он работает) - установка из "исходного кода" с помощью setup.py

Gwibber поддерживает distutils, соответственно его можно установить непосредственно из исходного кода с помощью файла setup.py. Преимущества и недостатки у этого метода примерно такие - же как у второго, но в случае неудачи подчистить следы будет сложнее. Сам я этот метод не проверял, поэтому скопирую краткое резюме из инструкции, приведенной товарищем M.CoRN в его блоге (мои благодарности ему):

bzr branch lp:~seriy-pr/gwibber/vkontakte-ru-plugin
sudo apt-get install python-dbus python-gtk2 python-gconf python-notify python-simplejson python-egenix-mxdatetime python-distutils-extra python-feedparser
cd vkontakte-ru-plugin
sudo python setup.py install

Если решите воспользоваться этой инструкцией, настоятельно рекомендую воспользоваться ее оригиналом, там есть дополнительные комментарии и рекомендации на случай появления ошибок.

Настройка учетной записи вконтакте в Gwibber

Ну тут как обычно все. Редактировать -> Учетные записи (или запустить приложение "gwibber-accounts") -> Добавить -> в выпадающем списке выбрать " Vkontakte" -> Добавить -> Выставьте галочки ("Получать сообщения" - чтобы получать сообщения вообще, "Посылать сообщения" - чтобы можно было отправлять сообщения и комментарии, "Receive groups" - это уже моя самодеятельность, если отмечено, будет загружать новости от групп, помимо новостей от друзей) -> Авторизовать -> Вводим логин-пароль, выставляем все галочки, жмем "Разрешить". Если все прошло успешно, закрываем окно, жмем F5 для обновления и пользуемся!

Что дальше?

Если есть какие-то пожелания/советы/отчеты об ошибках милости прошу в комментарии. Если хотите помочь и у вас есть аккаунт на Launchpad, отпишитесь тут  https://bugs.launchpad.net/gwibber/+bug/572753 и тут https://code.launchpad.net/~seriy-pr/gwibber/vkontakte-ru-plugin/+merge/47651 что у вас все работает или наоборот ничего не работает, так этот плагин быстрее попадет в официальную поставку.

Как водится, выражаю благодарность Stanislav Hanzhin, sergeyreym за активное участие, советы и багрепорты, Nazar Vinnichuk и остальным разработчикам Rhythmbox's plugin for Vkontakte.ru - их наработки послужили основой для плагина, ZwS (Антон Судак?) за .DEB пакет,ну и всем остальным кто принимал и принимает посильное участие.

  1. q88b
    2011-02-18 07:56:11 | #

    у меня не работает и в терминале выдает такое вот:

    ** (gwibber:13759): WARNING **: Trying to register gtype ‘WnckWindowState’ as enum when in fact it is of type ‘GFlags’

    ** (gwibber:13759): WARNING **: Trying to register gtype ‘WnckWindowActions’ as enum when in fact it is of type ‘GFlags’

    ** (gwibber:13759): WARNING **: Trying to register gtype ‘WnckWindowMoveResizeMask’ as enum when in fact it is of type ‘GFlags’
    Traceback (most recent call last):
    File «/usr/bin/gwibber», line 87, in
    client.Client()
    File «/usr/lib/python2.6/dist-packages/gwibber/client.py», line 621, in __init__
    self.w = GwibberClient()
    File «/usr/lib/python2.6/dist-packages/gwibber/client.py», line 71, in __init__
    self.setup_ui()
    File «/usr/lib/python2.6/dist-packages/gwibber/client.py», line 251, in setup_ui
    self.stream_view.set_state(streams)
    File «/usr/lib/python2.6/dist-packages/gwibber/gwui.py», line 463, in set_state
    for item in state: self.new_stream(item)
    File «/usr/lib/python2.6/dist-packages/gwibber/gwui.py», line 457, in new_stream
    if state: item.set_state(state)
    File «/usr/lib/python2.6/dist-packages/gwibber/gwui.py», line 593, in set_state
    self.update()
    File «/usr/lib/python2.6/dist-packages/gwibber/gwui.py», line 586, in update
    self.messages.update(self.selected_stream)
    File «/usr/lib/python2.6/dist-packages/gwibber/gwui.py», line 751, in update
    self.messages = self.message_view.render([selected_stream], count)
    File «/usr/lib/python2.6/dist-packages/gwibber/gwui.py», line 813, in render
    accounts=accounts)
    File «/usr/lib/python2.6/dist-packages/gwibber/gwui.py», line 256, in render
    content = template.render(theme=util.get_theme_colors(), util=util, resources=resources, _=_, **kwargs)
    File «/usr/lib/pymodules/python2.6/mako/template.py», line 189, in render
    return runtime._render(self, self.callable_, args, data)
    File «/usr/lib/pymodules/python2.6/mako/runtime.py», line 403, in _render
    _render_context(template, callable_, context, *args, **_kwargs_for_callable(callable_, data))
    File «/usr/lib/pymodules/python2.6/mako/runtime.py», line 434, in _render_context
    _exec_template(inherit, lclcontext, args=args, kwargs=kwargs)
    File «/usr/lib/pymodules/python2.6/mako/runtime.py», line 457, in _exec_template
    callable_(context, *args, **kwargs)
    File «memory:0xb7d410c», line 52, in render_body
    File «/usr/lib/pymodules/python2.6/mako/runtime.py», line 278, in
    return lambda *args, **kwargs:callable_(self.context, *args, **kwargs)
    File «base_mako», line 897, in render_messages
    File «/usr/lib/pymodules/python2.6/mako/runtime.py», line 278, in
    return lambda *args, **kwargs:callable_(self.context, *args, **kwargs)
    File «base_mako», line 490, in render_message
    File «base_mako», line 451, in messagebox
    File «base_mako», line 581, in render_messagebox
    File «base_mako», line 482, in body
    File «/usr/lib/pymodules/python2.6/mako/runtime.py», line 278, in
    return lambda *args, **kwargs:callable_(self.context, *args, **kwargs)
    File «base_mako», line 968, in render_dupes
    File «/usr/lib/pymodules/python2.6/mako/runtime.py», line 278, in
    return lambda *args, **kwargs:callable_(self.context, *args, **kwargs)
    File «base_mako», line 490, in render_message
    File «base_mako», line 451, in messagebox
    File «base_mako», line 581, in render_messagebox
    File «base_mako», line 467, in body
    File «/usr/lib/pymodules/python2.6/mako/runtime.py», line 278, in
    return lambda *args, **kwargs:callable_(self.context, *args, **kwargs)
    File «base_mako», line 513, in render_sidebar
    File «/usr/lib/pymodules/python2.6/mako/runtime.py», line 278, in
    return lambda *args, **kwargs:callable_(self.context, *args, **kwargs)
    File «base_mako», line 251, in render_image
    File «base_mako», line 192, in profile_url
    File «base_mako», line 829, in render_profile_url
    KeyError: u’friendfeed’

    • 2011-02-18 13:38:49 | #

      Миленько)))
      нужно выполнить
      sudo aptitude install gwibber-service-friendfeed
      Но вообще странно. Наверное после недавнего обновления начало проявляться

      • q88b
        2011-02-18 15:23:55 | #

        Пишет: sudo: aptitude: command not found
        Но знаешь, ты видимо мне плагин для FF предлагаешь поставить? Я его через центр приложений ставил, но результата ноль..
        Как мне быть?
        И ничего страшного, что я сюда пишу?)

        • 2011-02-24 13:34:40 | #

          Да, это плагин для FriendFeed… Но вообще странно что оно так пишет — у меня такого не было. Просто по аналогии — такая же ошибка но со словом ‘twitter’ вываливалась — помогала установка плагина для twitter, я решил что тут то же самое.

          А можешь из терминала запустить
          gwibber-service —debug -o
          и отправить сюда что оно напечатает?

          насчет «sudo: aptitude: command not found» — вроде в последних версиях Ubuntu aptitude не идет в комплекте. Можно вместо aptitude писать apt-get, т.е.
          sudo apt-get install gwibber-service-friendfeed

          Да, пиши сюда, все ок.

          • q88b
            2011-03-09 03:08:54 | #

            Установил последнюю версию, однако:

            q88b@ubuntu:~$ gwibber-service –debug -o
            Loading plugin Facebook version 1.1
            Loading plugin Twitter version 1.0
            Loading plugin FriendFeed version 0.1
            Gwibber Dispatcher: ERROR Twitter: Request failed — Incorrect signature
            Gwibber Dispatcher: ERROR Twitter: Request failed — Incorrect signature
            Gwibber Dispatcher: ERROR Twitter: Request failed — Incorrect signature
            Gwibber Dispatcher: ERROR Twitter: Request failed — Incorrect signature
            Gwibber Dispatcher: ERROR Facebook: Authentication failed — Auth needs updating
            Gwibber Dispatcher: INFO Loading complete: 1 — []

            • 2011-03-09 14:33:28 | #

              Вижу что Gwibber вообще не загружает vkontakte плагин… У меня это выглядит так:

              seriy@seriy-desktop:~$ gwibber-service --debug -o
              Loading plugin Twitter version 1.0
              Loading plugin Facebook version 1.1
              Loading plugin Vkontakte version 0.1
              Gwibber Dispatcher: DEBUG    Setting up monitors
              Gwibber Dispatcher: DEBUG    Refresh interval is set to 15
              Gwibber Dispatcher: DEBUG    ** Starting Refresh - 2011-03-09 14:28:00.41 **
              Gwibber Dispatcher: DEBUG    <facebook:receive> Performing operation
              Gwibber Dispatcher: DEBUG    <twitter:receive> Performing operation
              ...
              Gwibber Dispatcher: DEBUG    <facebook:receive> Adding record
              Gwibber Dispatcher: DEBUG    <facebook:receive> Finished operation
              Gwibber Dispatcher: DEBUG    <vkontakte:receive> Performing operation
              Gwibber Dispatcher: DEBUG    <twitter:receive> Adding record
              ...
              Gwibber Dispatcher: DEBUG    <twitter:receive> Adding record
              Gwibber Dispatcher: DEBUG    <twitter:receive> Finished operation
              Gwibber Dispatcher: DEBUG    <vkontakte:receive> Adding record
              ...
              Gwibber Dispatcher: DEBUG    <vkontakte:receive> Adding record
              Gwibber Dispatcher: DEBUG    <vkontakte:receive> Finished operation
              Gwibber Dispatcher: DEBUG    Private Messages Indicator count updated to 0
              Gwibber Dispatcher: DEBUG    Replies Indicator count updated to 0
              Gwibber Dispatcher: DEBUG    Messages Indicator count updated to 137
              Gwibber Dispatcher: INFO     Loading complete: 1 - []
              

              Честно говоря затрудняюсь ответить в чем может быть проблема… Т.е. если плагин Vkontakte удалить
              apt-get remove gwibber-service-vkontakte
              то Gwibber все равно не стартует? Или только если установить мой плагин?

  2. 2011-04-17 01:15:58 | #

    […] снова зайти в систему. Подробная инструкция находится здесь. […]

  3. 2011-04-26 08:46:27 | #

    А у меня после авторизации во вконтакте появляется надпись «Login success» и все. А аккаунт не добавляется. Версия gwibber — 3.1.0.

    • 2011-04-26 14:17:43 | #

      Смотря как устанавливали. Если из DEB пакета, то странно. Если из репозитория, то я буквально сегодня там нашел баг в авторизации, планирую вечером поправить))

    • 2011-04-27 00:11:07 | #

      Баг поправил. Попробуйте обновиться — должно работать нормально теперь.

      • 2011-04-27 19:13:01 | #

        Обновил из исходников, все заработало. Спасибо 🙂

        • 2011-04-27 19:16:07 | #

          То что из DEB пакета не работало странно, т.к. баг я внес уже после того как был собран DEB пакет.

          Но раз все заработало, то замечательно!

  4. 2011-04-27 18:56:51 | #

    Устанавливал из deb-пакета. Обновляться, как я понимаю, надо из исходников.

  5. Eugene
    2011-04-28 08:13:11 | #

    Не хочет сохранять учетную запись vkontakte

  6. 2011-04-30 09:23:51 | #

    Отлично! всё работает! даже баг со сменой ай-пи работает, честно выдаёт ошибку 🙂 надеюсь, скоро починишь! большое спасибо за плагин!

    • 2011-05-01 06:33:43 | #

      Баг со сменой IP? Да не, это не получится починить т.к. это баг на стороне ВКонтакте. Они сессию привязывают к IP

  7. qMax
    2011-05-03 20:19:54 | #

    deb пакет от ZsW не работает с gwibber-3.0.0 (ubuntu 11.04)

    из bzr всё работает.

  8. qMax
    2011-05-03 20:37:14 | #

    кстати, оно подхватывается, если складывать не в /usr/share а в /usr/local/share
    что несколько кошернее при установке из bzr.

    • 2011-05-04 00:40:31 | #

      Ну вообще я старался setup.py файл менять по-минимуму так что устанавливает он так-же, как и стандартный Gwibber.

      Тем не менее можно это поправить — перед запуском sudo python setup.py install в файлике setup.cfg в корне проекта заменить prefix=/usr на prefix=/usr/local

      Почему из DEB не работает, а из bzr работает — хз. Кстати — недавно собрали еще один пакет с версией поновее — сделал апдейт поста, вот ссылка http://dl.seriyps.ru/soft/gwibber-service-vkontakte_3.0.0~bzr966-0_all.deb

      Назревает у меня идея вынести плагин как отдельный проект, ибо в основную ветку Gwibber-а как-то не спешат вливать, а собрать автобилд в PPA Launchpad у меня как-то не получилось.

      • qMax
        2011-05-05 22:55:32 | #

        да, отдельным проектом/пакетом хорошо будет.
        и обновляться и баги репортить/патчить.

        внезапно, вывалилась воттакая дичь:
        http://www.ljplus.ru/img4/q/m/qmax/Screenshot.png
        оригинал заметки вотон: http://vkontakte.ru/note633634_11118269

        это не просто выравнивание вправо, но также отрывание нескольких символов пунктуации с одного края строки на другой и инвертирование их в другую сторону!
        как еслибы для хвостов строк включалось RTL направление текста.

        наблюдается и в «ubuntu» и в «default» стилях.

        • 2011-05-06 12:45:41 | #

          Хохо… У меня такое тоже иногда попадается, я тоже удивлялся что за чудеса. Лень было разбираться, думаю займусь на днях.

          А к записи вконтакте http://vkontakte.ru/note633634_11118269 доступ закрыт у меня.

          • qMax
            2011-05-06 18:15:48 | #

            странно. ну да ничего там особенного и нету.
            текст копировался plain/textом и из мусора там толко U+FEFF в начале.

            а как поглядеть в каком виде оно долетело до гвиббера?

            • 2011-05-09 15:59:17 | #

              Посмотреть можно через DBus — например в консоли набрать dbus-monitor "type='signal',sender='com.Gwibber.Messages',interface='com.Gwibber.Messages'" и запустить обновление сообщений.
              Оно правда будет в виде JSON строк и все строки будут в виде кодов символов, но думаю тут разберетесь)

            • 2011-05-29 00:58:25 | #

              Пофиксил баг с выравниванием. Действительно нужно было U+FEFF повырезать всего-навсего.

  9. Dreyk
    2011-05-07 04:20:51 | #

    Нет смысла делать «Поддержку личных сообщений», ибо личные сообщения ВК прекрасно работают в качестве джаббера!

    За остальное — спасибо!

  10. qMax
    2011-05-07 16:40:18 | #

    а что с комментариями к записям?

    • 2011-05-09 16:03:41 | #

      В смысле? Вроде все работает…

    • 2011-05-14 00:38:43 | #

      Хотя да, поломались… На новой Ubuntu используется python2.7 по-умолчанию и в нем появился новый JSON сериализатор, который мой хак поломал…

      Ок, будем чинить)

    • 2011-05-16 01:09:58 | #

      Пофиксил баг с комментариями. Можно из bzr обновиться.

  11. 2011-05-22 02:56:14 | #

    Добавили PPA https://launchpad.net/~gwibber-vkontakte-plugin/+archive/ppa

    Так что теперь устанавливаем из него.

  12. Даниил
    2011-06-08 00:41:41 | #

    На 11.04 поставил — работает. На 10.10 и так и сяк, но никак. В дебаге что-то про неймспейсы пишет: Untiy, DBus… хз даже, какие пакеты нужно поставить.

    • 2011-06-08 00:44:33 | #

      Ну, напишите что в дебаге выдает. Так пока ничего не понятно. Ставили из PPA?

      • Даниил
        2011-06-08 01:03:28 | #

        dan-volkonsky@desktop:~$ gwibber —debug -o
        ERROR:dbus.proxies:Introspect error on com.Gwibber.Service:/com/gwibber/Service: dbus.exceptions.DBusException: org.freedesktop.DBus.Error.Spawn.ChildExited: Process /usr/bin/gwibber-service exited with status 1
        Traceback (most recent call last):
        File "/usr/bin/gwibber", line 98, in <module>
        client.Client()
        File "/usr/lib/python2.6/dist-packages/gwibber/client.py", line 697, in __init__
        self.w = GwibberClient()
        File "/usr/lib/python2.6/dist-packages/gwibber/client.py", line 40, in __init__
        self.model = gwui.Model()
        File "/usr/lib/python2.6/dist-packages/gwibber/gwui.py", line 50, in __init__
        self.services = json.loads(self.daemon.GetServices())
        File "/usr/lib/pymodules/python2.6/dbus/proxies.py", line 68, in __call__
        return self._proxy_method(*args, **keywords)
        File "/usr/lib/pymodules/python2.6/dbus/proxies.py", line 140, in __call__
        **keywords)
        File "/usr/lib/pymodules/python2.6/dbus/connection.py", line 620, in call_blocking
        message, timeout)
        dbus.exceptions.DBusException: org.freedesktop.DBus.Error.Spawn.ChildExited: Process /usr/bin/gwibber-service exited with status 1

        dan-volkonsky@desktop:~$ gwibber-service —debug -o
        ERROR:root:Typelib file for namespace 'Unity' (any version) not found
        Traceback (most recent call last):
        File "/usr/lib/pymodules/python2.6/gtk-2.0/gi/importer.py", line 52, in find_module
        repository.require(namespace)
        RepositoryError: Typelib file for namespace 'Unity' (any version) not found
        ERROR:root:Typelib file for namespace 'Dbusmenu' (any version) not found
        Traceback (most recent call last):
        File "/usr/lib/pymodules/python2.6/gtk-2.0/gi/importer.py", line 52, in find_module
        repository.require(namespace)
        RepositoryError: Typelib file for namespace 'Dbusmenu' (any version) not found
        Loading plugin FriendFeed version 0.1
        Loading plugin Twitter version 1.0
        Loading plugin Facebook version 1.1
        Facebook : DEBUG Setting up monitors
        DEBUG:Facebook:Setting up monitors
        Traceback (most recent call last):
        File "/usr/bin/gwibber-service", line 77, in <module>
        connection_monitor = dispatcher.ConnectionMonitor()
        File "/usr/lib/python2.6/dist-packages/gwibber/microblog/dispatcher.py", line 823, in __init__
        log.logger.debug("NM Version is %s", str(self.nm.Get(NM_DBUS_INTERFACE, "Version")))
        File "/usr/lib/pymodules/python2.6/dbus/proxies.py", line 68, in __call__
        return self._proxy_method(*args, **keywords)
        File "/usr/lib/pymodules/python2.6/dbus/proxies.py", line 140, in __call__
        **keywords)
        File "/usr/lib/pymodules/python2.6/dbus/connection.py", line 620, in call_blocking
        message, timeout)
        dbus.exceptions.DBusException: org.freedesktop.DBus.Error.InvalidArgs: No such property Version

        • 2011-06-08 02:19:08 | #

          В общем, в ходе переписки в Skype выяснили, что проблема была внесена в этом http://bazaar.launchpad.net/~gwibber-committers/gwibber/trunk/revision/991 коммите в сам Gwibber (плагин ВК тут не при чем). И проблема была в том, что… в Ubuntu 10.10 установлен NetworkManager версии 0.8.1 а в 11.04 версии 0.8.4 . И у первой нет DBus параметра Version а у 4-й есть:

          ubuntu10.10: qdbus --system org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.NetworkManager.Version
          Error: org.freedesktop.DBus.Error.UnknownMethod
          Method «Version» with signature «» on interface «org.freedesktop.NetworkManager» doesn’t exist

          ubuntu11.04: qdbus --system org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.NetworkManager.Version
          0.8.3.998

          В итоге помогло обновление NetworkManager до версии 0.8.4

  13. 2011-06-15 23:12:13 | #

    Ничего без проблем не бывает.

  14. oYASo
    2011-07-21 21:03:46 | #

    Поставил — отлично работает.
    Единственный косяк, который немного напрягает в gwibber’e — скролл больших сообщений.
    За поддержку личный сообщений я бы проголосовал: твиттер, фейсбук и контакт в одном приложении — крайне удобно, имхо.

  15. Иехоныч
    2011-09-18 06:19:23 | #

    классный плагин. спасибо!
    личные сообщения было бы не плохо.
    пока прикрутил личные сообщения через empathy через jabber
    вводите login@vk.com
    пароль
    vkmessenger.com
    5222
    и все работает 🙂

  16. Андрей
    2011-12-13 22:16:37 | #

    А что насчет репозитория для оцелота?

    • 2011-12-14 00:28:44 | #

      И правда… Залил для oneric пакет, через часок-другой будет доступен.

      Но, честно говоря, с новым Gwibber плагин работает кривовато..

  17. M
    2011-12-28 19:58:49 | #

    что-то совсем печально с плагином, на gwibber 3.2.1 плагин подгружается, но при выборе какой типа учетной записи добавить, его с сожалению нет.

    • 2011-12-29 12:03:50 | #

      Очень может быть. Я после НГ попробую все пофиксить.

    • 2012-01-05 03:22:50 | #

      Хм… Попробовал на Ubuntu 11.10 запустить с Gwibber 3.2.1 — работает более-менее нормально.

      Вы из PPA устанавливали? Попробуйте прибить все процессы gwibber-service ( killall gwibber-service), запустить из консоли команду gwibber-service -o --debug . Запостите сюда или на какой-нить pastebin что оно напечатает при этом.

      • M
        2012-01-06 20:45:35 | #

        все из стандартных ppa ubuntu 11.10
        вот вывод:
        killall gwibber-service
        gwibber-service: процесс не найден
        murat@13:~$ gwibber-service -o —debug
        /usr/lib/python2.7/dist-packages/gobject/constants.py:24: Warning: g_boxed_type_register_static: assertion `g_type_from_name (name) == 0′ failed
        import gobject._gobject
        Loading plugin Vkontakte version 0.2
        Loading plugin Twitter version 1.0
        Loading plugin Identi.ca version 1.1
        Loading plugin Facebook version 1.1
        Gwibber Dispatcher: DEBUG Setting up monitors
        Gwibber Dispatcher: DEBUG NM Version is 0.9.1.90
        Gwibber Dispatcher: DEBUG NM Version is greater than 0.8.997
        Gwibber Dispatcher: DEBUG Creating indexes

        (gwibber-service:4230): libindicate-WARNING **: Menu being changed when the indicator is visible. Listeners will NOT be notified of this change.
        Gwibber Dispatcher: DEBUG Refresh interval is set to 15
        Gwibber Dispatcher: DEBUG ** Starting Refresh — 2012-01-06 17:43:20,04 **
        Gwibber Dispatcher: DEBUG Performing operation
        Gwibber Dispatcher: DEBUG Performing operation
        Gwibber Dispatcher: DEBUG Finished operation
        Gwibber Dispatcher: DEBUG Performing operation
        Gwibber Dispatcher: DEBUG Finished operation
        Gwibber Dispatcher: DEBUG Performing operation
        Gwibber Dispatcher: DEBUG Finished operation
        Gwibber Dispatcher: DEBUG Finished operation
        Gwibber Dispatcher: INFO Loading complete: 1 — []
        Gwibber Dispatcher: DEBUG Private Messages Indicator count updated to 0
        Gwibber Dispatcher: DEBUG Replies Indicator count updated to 0
        Gwibber Dispatcher: DEBUG Messages Indicator count updated to 0
        Gwibber Dispatcher: DEBUG Total unseen count: 0
        Gwibber Dispatcher: INFO Cleaning up database…

        • 2012-01-07 20:46:56 | #

          Плагин Vkontakte загрузился, ошибок никаких не пишет. Странно. Не могу понять в чем проблема.
          На неделе еще разок попробую, но пока не понял что не так.

        • 2012-01-20 15:33:43 | #

          Починил плагин — действительно проблема была из-за обновленного расположения иконок в новом Gwibber. Можно обновиться из PPA.

  18. 2012-01-20 17:23:15 | #

    ERROR:dbus.connection:Unable to set arguments (‘all’, u’ffb7c9b8e29711e0abbabcaec57be4fe’, 0, ‘0’, ‘0’, ‘time’, ‘desc’, 50) according to signature u’ssd’: : Fewer items found in D-Bus signature than in Python arguments
    Traceback (most recent call last):
    File «/usr/bin/gwibber», line 98, in
    client.Client()
    File «/usr/lib/python2.6/dist-packages/gwibber/client.py», line 697, in __init__
    self.w = GwibberClient()
    File «/usr/lib/python2.6/dist-packages/gwibber/client.py», line 74, in __init__
    self.setup_ui()
    File «/usr/lib/python2.6/dist-packages/gwibber/client.py», line 264, in setup_ui
    self.stream_view.set_state(streams)
    File «/usr/lib/python2.6/dist-packages/gwibber/gwui.py», line 410, in set_state
    self.update()
    File «/usr/lib/python2.6/dist-packages/gwibber/gwui.py», line 397, in update
    self.messages.update(self.navigation.selected_stream)
    File «/usr/lib/python2.6/dist-packages/gwibber/gwui.py», line 751, in update
    self.messages = self.message_view.render([selected_stream], count)
    File «/usr/lib/python2.6/dist-packages/gwibber/gwui.py», line 774, in render
    msgs = json.loads(self.model.streams.Messages(streams[0][«stream»] or «all», streams[0][«account»] or «all», time, streams[0][«transient»] or «0», streams[0].has_key(«recipient») and streams[0][«recipient»] or «0», orderby, order, limit))
    File «/usr/lib/pymodules/python2.6/dbus/proxies.py», line 140, in __call__
    **keywords)
    File «/usr/lib/pymodules/python2.6/dbus/connection.py», line 610, in call_blocking
    message.append(signature=signature, *args)
    TypeError: Fewer items found in D-Bus signature than in Python arguments

    • 2012-01-20 18:26:42 | #

      Жажду больше подробностей!

      Какая версия Ubuntu, какая версия Gwibber, какая версия плагина, в какой момент происходит ошибка и т.д. и т.п.
      Или это после вчерашнего апдейта началось?

  19. zesaver
    2012-06-07 00:37:19 | #

    Ubuntu 12.04, Gwibber 3.4.1, gwibber-service-vkontakte (3.3.92~bzr990~precise~1)
    Плагин просто не появляется в списке доступных в gwibber. Facebook и twitter при этом работают нормально.

    • 2012-06-07 14:23:02 | #

      Ок, проверю.

      • zesaver
        2012-06-07 15:27:16 | #

        Спасибо.
        Уточнение: показывается, но для этого нужно полностью перезагрузить систему. Рестарта gwibber недостаточно. Возможно, стоит добавить в how to.

        • 2012-06-07 15:40:46 | #

          Интересное замечание, спасибо. Возможно вы не рестартуете gwibber а уводите в Background? Чтобы его рестартовать недостаточно просто нажать крестик, нужно набрать Ctrl+Q либо выбрать в меню Gwibber -> Выход
          Можете проверить что он выключен, набрав в консоли ps xa | grep gwibber-service

Теги