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


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

Автор Тема: Плагины/индикаторы для индикации статуса синхронизации с Yandex-disk  (Прочитано 934063 раз)

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

Оффлайн Sly_tom_cat

  • Автор темы
  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Ну если и позже не показывает, то это какие-то висюки GTK, натыкался уже, но "вылечил" уменьшением выводимых отладочных сообщений... Это при том что у меня gtk-шная крыска (XFCE). В кедах GTK не родное - видимо там это еще чаще случается...


С чем связан такой глюк GTK, я нагуглить в прошлый раз не смог... Понятно что каких-то ресурсов не хватает... непонятно почему клинит безвозвратно....


Про задержку: я предлагал попробовать в авто-запускалку индикатора вписать не просто вызов, а паузу + вызов.
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн jzyken

  • Новичок
  • *
  • Сообщений: 34
    • Просмотр профиля
Нет, sleep не влияет. Если демон запускается не самим индикатором, то в любом случае проявляется глюк. Даже вот так уже не ОК:
А если так:
yandex-disk start && yandex-disk-indicator -l10 2> yd-bad.log
то всё ОК.

Оффлайн Sly_tom_cat

  • Автор темы
  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Про ок не ок чутка не уловил...
Правильно я понимаю что если индикатор запускается на уже запущенном демоне, то проблема не проявляется.
И когда индикатор сам стартует демона, тогда тоже все ок.
А проблема именно тогда когда демон стартует чуть раньше индикатора?
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн jzyken

  • Новичок
  • *
  • Сообщений: 34
    • Просмотр профиля
Правильно я понимаю что если индикатор запускается на уже запущенном демоне, то проблема не проявляется.
И когда индикатор сам стартует демона, тогда тоже все ок.
А проблема именно тогда когда демон стартует чуть раньше индикатора?
Так было раньше, на 1.9.13
Сейчас появляется подменю только в случае, если демон запускается самим индикатором.

Оффлайн Sly_tom_cat

  • Автор темы
  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Так 1.9.13 и в оригинальной 1.9.14 тот код, что глючит на взаимодействии с GTK - не менялся.
Там в 1.9.12 была небольшая ошибка в логике определения необходимости вызвать этот код (который наполняет под-меню списком файлов/путей), начиная с 1.9.13 эта логика поправлена, и записи в логах (как успешных так и не успешных) показывают, что код вызывается когда нужно и отрабатывает без ошибок. Только почему-то в одних обстоятельствах отработка этого кода приводит к должному результату, а в других - нет. И это уже просто мистика какая-то, так не должно быть в программах.... в теории...

То что мы в рамках бранча last_not_shown перепробовали - только в этих вариантах были изменения в самом коде, который дает недетерминированный результат. Более того, уже то, что запуск индикатора на заранее запущенном демоне дает сбой - это уже нонсенс....

В общем, у меня пока мысли иссякли... буду гуглить пока новые не появятся....

Самое веселое что на кедах индикатор не только у вас стоит, но либо эта засада не выстреливает не у кого, либо всем пофиг, либо я не понимаю почему только у вас такая проблема....

Кстати вот еще - а может попробовать все GTK-шные либы переустановить... это конечно и области шаманства, но и происходящее у вас - того же поля ягода...
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн Sly_tom_cat

  • Автор темы
  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Нашел таки вполне приемлемую библиотеку дял создания индикатора для GO. Вроде все просто, но конечно через связку с С который пользует стандартный GTK+ и AppIndicator.

В принципе модуль-обертка yandex-disk уже устоялся и работает вполне надежно. Поэтому прикрутить к нему индикатор оказалось довольно просто.

Что уже сделано:
1. есть иконка в трее, она меняет свой вид при изменении статуса + есть анимация иконки в процессе индексации и синхронизации
2. есть меню индикатора - там:
 - показаны статус и размеры диска (занято/всего/свободно/в треше)
 - есть возможность запустить и остановить демона синхронизации.
 - ну и конечно есть возможность выйти из индикатора

Что еще предстоит сделать:
- Иконки пока только по темную панель, но с иконками там (в найденной библиотеке) вообще все не очень умно сделано: они там в байтовый массив вытаскиваются в go-коде, а потом в C они пишутся в файл, который отдается в GTK :idiot2: :o ... видимо такой стиль присущ Go-программам и это вполне обосновано, когда у иконки в трее только один вид, но для этого индикатора - решение не очень оптимальное и есть идея в своей коппии библиотеки переделать это на вариант использования сразу файлов.
- Интерфейс пока исключительно английский (как локализуются go-программы я вообще еще не разбирался пока)
- Покладка еще дает список последних обновленных, но текущая библиотека не поддерживает подменю - надо будет допилить сначала поддержку а потом уже можно будет реализовать это подменю.
- Надо прикрутить всплывающие уведомления - можно конечно через вызов notify-send, но надо поискать - может это через библиотеку можно сделать.
- В меню еще стоит добавить пункты открытия локального синхронизируемого каталога, и яндексдиска в интернете - но это то одно и самого простого: такое прикрутить - очень просто.
- Неплохо-бы прикрутить окно с настройками - но тут нужна будет еще одна библиотека и ее надо будет как-то женить с GTK-шным systray-ем (там уже есть вызов главного цикла gtk. Вобщем тут еще копать - долго.
- ...также нужно обвесить код работой с конфигурационным файлом
- Окно About - будет сделать просто после окна настроек (там все просто когда есть возможность создать gtk-диалог)

В общем пилить еще много, и откровенно говоря я не силно уверен, что моего запала хватит довести GO-верисю до вресии индикатора на Python.... но загадывать не перед не буду....

Также пока не решен вопрос с публикацией на launchpad
Если кто решит собирать из исходников, то там нужны еще пакеты libgtk-3-dev libappindicator3-dev для сборки
А бинарики 32 и 64 bit я собираюсь выложить на github.

Пользователь добавил сообщение 24 Декабря 2017, 14:58:22:
... только вот под 32-бита мне что-то с налету собрать не удалось... пока дбавил только 64-бтный бинарик

Пользователь добавил сообщение 24 Декабря 2017, 15:13:04:
...и да, пока go-версия умеет работать только с 1-м, дефолтовым профилем Yandex.Disk-а.
« Последнее редактирование: 24 Декабря 2017, 15:13:04 от Sly_tom_cat »
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн Sly_tom_cat

  • Автор темы
  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Переделал работу с иконками (теперь они не плодятся в tmp как в оригинальной библиотеке systray)

Допилил:
- уведомления (через вызов notify-send),
- открытие локального фолдера и диска в интернете (через пункты меню)
- работу с сохраненными настройками в ~/.config/yd.go/default.cfg (файл хранит настройки в JSON формате)
- инсталляционный скрпт (install.bash) - он копирует нужные файлы в нужные места системы что бы после этого можно было запустить индикатор просто командой yd

Вообщем проект go-версии индикатора уже вполне продакшн... так что следующим шагом надо продумывать публикацию на launchpad.

Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Punko

  • Гость
Sly_tom_cat, поздравляю с переходом на go :)

К сожалению, не могу потестировать, ибо яндекс уже не работает в Украине.

Оффлайн luu

  • Активист
  • *
  • Сообщений: 721
  • шта?
    • Просмотр профиля
Крашится при входе в систему. При этом записывает /var/crash/_usr_bin_yandex-disk-indicator.1000.crash:
(Нажмите, чтобы показать/скрыть)

Оффлайн Sly_tom_cat

  • Автор темы
  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Сейчас я на даче - интернет никакой, кое как залил правку на github в ветку в last_not_shown.
sudo wget -O /usr/bin/yandex-disk-indicator https://raw.githubusercontent.com/slytomcat/yandex-disk-indicator/last_not_shown/yandex-disk-indicator.py
sudo chmod a+x /usr/bin/yandex-disk-indicator
и отпишитесь - помогло ли.
 
« Последнее редактирование: 04 Января 2018, 22:15:34 от Sly_tom_cat »
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн Sly_tom_cat

  • Автор темы
  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Опубликовал нормальную правку от краша : https://github.com/slytomcat/yandex-disk-indicator/releases/latest

На launcpad поменяли "правила игры" теперь все билдится по приоритетам, а не сразу после заливки исходников(как ранее). В результат все PPA - "нервно курят в уголке" - моему пообещали отбилдить через 10 часов....
Так что на LP обновлений теперь придется ждать очень долго....
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн Sly_tom_cat

  • Автор темы
  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
LP пока отключили свою билд-ферму и когда включат - не понятно пока....

А я пока допилил в YD.go выпадающее меню с последними синхронизированными.

Пришлось основательно перепахать весь пакет systray и изрядно полазить по докам GTK. Да и С пришлось немного вспомнить...

jzyken, может попробуете YD.go вместо yandex-disk-indicator?

В YD.go должно все чуточку получше работать... несмотря на то, что там через все тот же GTK+v3.0 и Appindicator GUI построен.

Но, понятно, YD.go - еще довольно сырой продукт.... могут быть и глюки не найденные в процессе разработки...

Пользователь добавил сообщение 08 Января 2018, 21:02:38:
Ну вроде допилил все основне вещи:
Добавил:
1. окно (всплывающее сообщение) с выводом демона
2. Окно About (тоже во всплывающем сообщении)
3. Пункт меню Help - редирект на страницу Github с вопросами и ответами и ссылкой на зведение нового запроса.

В итоге меню YD.go повторяет все возможности yandex-disk-indicator кроме пункта Настройки. Настройки пока - только руками в конфигфайле.
Также не реализована возможность работать сразу с несколкьими акаунтами Яндекса. Но это в ближайших планах хотя реализация (вынуждено) будет отличатся от того, что сделано в yandex-disk-indicator.
Также надо допилить поддержку локализации и сделать хотя бы русскую локализацию... К сожалению притянуть греческую/белорусскую/болгарскую локализацию от yandex-disk-indicator 1 в 1 не получится.

Также остался не решен вопрос со сборкой - LP пока лежит... думаю поискать другие хостинги... да и не уверен что LP сборку GOLANG программ сделает в свежем GO, а я в 1.9 все делал и более ранние версии не проверял.

Пользователь добавил сообщение 09 Января 2018, 04:44:25:
Пока не слишком поздно пришлось переименовать проект из YD.go в yd-go

Просто оказалось неразумно в названии проекта использовать расширение от исходников...
« Последнее редактирование: 09 Января 2018, 04:51:32 от Sly_tom_cat »
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн Ace Of Snakes

  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Sly_tom_cat, ну как обычно помогу c yd-go и локализацией
надо токо посмотреть что там

странно - писем не было об обновлениях в теме

Оффлайн Sly_tom_cat

  • Автор темы
  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12130
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Ace Of Snakes, я пока с локализацией не разобрался толком... Вроде есть решения но какие-то все больше на веб рассчитанные, когда нужно одновременно в нескольких разных языках отдавать сообщения.

Для индикатора локализация нужна на один язык который определяется при запуске и процессе работы уже не меняется, т.е. вроде бы как проще.... но пока даже с инструментарием толком не разобрался....
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн Zirrald

  • Любитель
  • *
  • Сообщений: 84
  • Manjaro KDE
    • Просмотр профиля
Думаю стоит расширить раздел ридми Build на GitHub.
Для сборки из исходников нужно для начала вытащить все зависимости через
go get -d
Перед этим можно задать переменную GOPATH, чтобы не в &HOME/go исходники качались.
Опыт позволяет нам ошибаться гораздо увереннее.

 

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