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


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

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

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

Оффлайн Чистый

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3473
  • nix - вот оно счастье...
    • Просмотр профиля
Sly_tom_cat,
у тебя во многих местах объявлена переменная:
Код: (python) [Выделить]
global yandexDiskStatus
и это в разных функциях, при этом получается если вызывается функция то она обнуляется, но остается доступной за пределами функции, попробуй объявить ее один раз глобально и менять или же у каждой функции сделай свой вариант этой переменной.

а еще вариант что косяк с переводом может быть:)
« Последнее редактирование: 22 Апреля 2014, 00:12:12 от Чистый »
Тестовый репозиторий kdeNeur ppa:devcode/kdeneur
各々が死ぬことをどのように決定する

Оффлайн Sly_tom_cat

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

Код: (python) [Выделить]
yandexDiskStatus = _('Status: ') + \
  _('Synchronized')         if currentStatus=='idle' else \
  _('Sync: ')+syncProgress  if currentStatus=='busy' else \
  _('Indexing')             if currentStatus=='index' else \
  _('Paused')               if currentStatus=='paused' else \
  _('Daemon stopped')       if currentStatus=='none' else \
  _('Not connected')        if currentStatus=='no internet access' else \
  _('Error')              # if currentStatus=='error' or any other errors

А должно быть по уму вот так
Код: (python) [Выделить]
yandexDiskStatus = _('Status: ') + (\
  _('Synchronized')         if currentStatus=='idle' else \
  _('Sync: ')+syncProgress  if currentStatus=='busy' else \
  _('Indexing')             if currentStatus=='index' else \
  _('Paused')               if currentStatus=='paused' else \
  _('Daemon stopped')       if currentStatus=='none' else \
  _('Not connected')        if currentStatus=='no internet access' else \
  _('Error')             )# if currentStatus=='error' or any other errors
Так вот там просто скобки не хватало на вторую часть выражения... но почему то оно иногда и без скобки срабатывало так, что сначала ифы, а потом + со статусом - вот это загадка :idiot2:

А переменные глобально не объявлены, а заявлено, что они глобальные (иначе они могут быть определены как локальные в функции на этапе исполнения). Но значение этой переменной определяется в одном месте - в остальных оно используется.
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн Чистый

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3473
  • nix - вот оно счастье...
    • Просмотр профиля
ну в python я не силен :) отступы в python это сильно :)
Тестовый репозиторий kdeNeur ppa:devcode/kdeneur
各々が死ぬことをどのように決定する

Оффлайн Sly_tom_cat

  • Автор темы
  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Чистый, я с питоном тоже не супер - целенаправленно его я не изучал ни разу. Просто кодить в разной степени серьезности приходилось на стольких языках, что такой как питон - просто беру и пишу. Язык для блондинок ИМХО. :)
Но и в нем при более серьезном подходе - множество нюансов...

А отступы - это блин просто песня :D - ни одну управляющую конструкцию типа декларации функции, цикла или условия закрывать не нужно - это же просто песня для лентяя  ;) , а кроме того читается код достаточно легко. Т.е. питон - язык не только для блондинок, но для ленивых блондинок  :2funny: ;D

Заканчивая оффтоп расскажу про вчерашний мой порыв победить глюк со словом статус:
Значит взял я да и набил в код кучу выводов дебагера - что бы понимать - где слово пропадает. Понял. Но вот у меня почему то меню перестало обновлятся... Тоесть совсем - сначала все ок, а позже зависает какой-то один статус и висит, там под меню меняется все - а ему - пофиг :idiot2: :o. Я и так и этак, уже меню лейбл прописываю показываю значение в дебаге, и читаю - прочтенное тоже показываю... читается то что записано, но глаза мои говорят - в меню - другое  :o :idiot2: думал уже все - белочка пришла, так ведь не бывает...
И что же вы думаете? Закомментил я весь дебаггинг - и меню заработало...  :crazy2: видать с массовой печатью что-то там кривело в GTK.
Бред какой-то... попробовал раскоментить - опять меню перестает обновляться через какое-то время. От это фича - всем фичам фича!  :uglystupid2:
Индикатор для 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!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Да мнеж не жалко) Если внешний вид и реализация устроит- включайте в пакет.

Да, преинсталл должен проверить наличие клиента, а при первом запуске индикатора запустить скрипт настройки демона. Так будет правильнее.

Также поделюсь скриптом шары файлов по ПКМ - сценарий для наутилуса.

Где взять то скажите.

Вижу вот какой расклад в целом:
1. В скрипте preinst или postinst - прописываем проверку установленности демона и в случае его отсутствия - запрашиваем установку и по согласию ставим.
2. При запуске индикатора проверяем установленность демона - если не установлен - шлем на тындекс в раздел установки - пусть пользователь ставит тут уже сам руками (если не захотел во время установки пакета поставить автоматом).
3. При запуске индикатора проверяем настройку демона - если не настроен - пускаем утилиту настройки и ждем пока она закончится - после этого продолжаем загрузку индикатора.

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

Оффлайн Phlya

  • Старожил
  • *
  • Сообщений: 2219
  • Фля, Цыганский барон, Винни Пух
    • Просмотр профиля
Возможно, это бага не в ГТК, а в системе индикаторов - там в Unity (а речь ведь про нее?) эти индикаторы заметно урезаны по сравнению с обычными ГТК-шными меню, не исключаю, что и в каких-то сложных случаях поведение может быть непредсказуемым. Хотя ситуация очень странная =)
Ubuntu 14.04 (Unity), MSI GE40

Оффлайн Sly_tom_cat

  • Автор темы
  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Phlya, дома было дело - там у меня xubuntu 13.10 64bit на asus pc eee 1225b.

И таки меню индикатора - ничем не отличается по функционалу от обычного gtk-шного меню (я по крайней мере не встречал в документации упоминания каких-то ограничений).

Сам индикатор - да урезанный виджет - туллтип (выпадающее сообщение при наведении мыши) к нему - не привесить без извращений как я хотел изначально.

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

Оффлайн Phlya

  • Старожил
  • *
  • Сообщений: 2219
  • Фля, Цыганский барон, Винни Пух
    • Просмотр профиля
Sly_tom_cat,
ааа в Xubuntu может не отличается, не знаю. В Юнити отличается, потому что, к примеру, в ГТК в меню можно любой виджет засунуть, а в индикатор - только самые простые, не сложнее подменю или надписи с картинкой.
Ubuntu 14.04 (Unity), MSI GE40

Оффлайн Sly_tom_cat

  • Автор темы
  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Phlya, ты про чек и радиобаттонно подобные пункты меню? Возможно их и не засунуть в меню индикатора - не пробовал (не надо было)... но вот не встречал упоминания о таких ограничениях в документации - может пропустил? У тебя откуда такая инфа? Да и есть чекбаттон-подобные эетемнты в меню индикаторов (в том же grive-tools).

А gtk в Unity и в XFCE - одинаковые - это ж - туллкит на то он и туллкит, что бы им одним везде пользоваться.
« Последнее редактирование: 22 Апреля 2014, 12:59:20 от Sly_tom_cat »
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн snowdimon

  • Новичок
  • *
  • Сообщений: 25
    • Просмотр профиля
    • snowdimon.ru
Да мнеж не жалко) Если внешний вид и реализация устроит- включайте в пакет.

Да, преинсталл должен проверить наличие клиента, а при первом запуске индикатора запустить скрипт настройки демона. Так будет правильнее.

Также поделюсь скриптом шары файлов по ПКМ - сценарий для наутилуса.

Где взять то скажите.

Вижу вот какой расклад в целом:
1. В скрипте preinst или postinst - прописываем проверку установленности демона и в случае его отсутствия - запрашиваем установку и по согласию ставим.
2. При запуске индикатора проверяем установленность демона - если не установлен - шлем на тындекс в раздел установки - пусть пользователь ставит тут уже сам руками (если не захотел во время установки пакета поставить автоматом).
3. При запуске индикатора проверяем настройку демона - если не настроен - пускаем утилиту настройки и ждем пока она закончится - после этого продолжаем загрузку индикатора.

Как только скажите где/как взять скрипты - займусь этой интеграцией.

У меня это сейчас в одном скрипте(проверка, настройка, доустановка). Вечером расщеплю на 2 разных: check.sh и setup.sh
Первый(преинст) проверит наличие пакета, если нет- добавит реп яндекса и установит демон(спросив у пользователя разрешения).
Второй будет вызываться после проверки демона на настроенность(сама проверка- с вас).
Можно замутить третий(постинст)- проверяет, установлен ли nautilus, если да- добавляет действие шаринга по ПКМ.

Оффлайн Sly_tom_cat

  • Автор темы
  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
У меня это сейчас в одном скрипте(проверка, настройка, доустановка). Вечером расщеплю на 2 разных: check.sh и setup.sh
Первый(преинст) проверит наличие пакета, если нет- добавит реп яндекса и установит демон(спросив у пользователя разрешения).
Второй будет вызываться после проверки демона на настроенность(сама проверка- с вас).
Да, я уже встроил эту проверку - вызываю пока просто 'yandex-disk setup' если нет настройки - работает.

Можно замутить третий(постинст)- проверяет, установлен ли nautilus, если да- добавляет действие шаринга по ПКМ.
Это можно. Но, я бы добавил туда же и проверку на thunar - к нему тоже можно кастомное действие дописать (это я сам допишу), как там в кедах с кастомизацией их файло-менеджера - не знаю - может кто откликнется?

Но про доставку "плагинов" в файл менеджеры - надо тоже спросить - может человек не хочет.
« Последнее редактирование: 22 Апреля 2014, 13:08:12 от Sly_tom_cat »
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн агасфер

  • Активист
  • *
  • Сообщений: 666
  • Тот, который был тысячей..
    • Просмотр профиля

Это можно. Но, я бы добавил туда же и проверку на thunar - к нему тоже можно кастомное действие дописать (это я сам допишу), как там в кедах с кастомизацией их файло-менеджера - не знаю - может кто откликнется?
Dolphin, krusader (в зависимости от умолчания) нормально открывает папку из индикатора, если вы об этом..
Возможно всё, но..

Оффлайн Sly_tom_cat

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

Для thunar я попробую сам нарисовать, а вот как и куда писать в кедовые ФМ - я не в курсе. Потому и спросил - может кедоводы сами подкинут нужное (что и куда прописывать)

 
Шара файла : yandex-disk publish <file>
Убрать шару: yandex-disk unpublish <file>
Индикатор для 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!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Итак заливаю на Launchpad обновление 1.1.0

Это результат нашей совместной работы:

- snowdimon подготовил скрипты:
   - для GUI-зации процесса настройки,
   - для проверки установленности yandex.disk демона и установки его если не стоит
   - скрипта для доливки плагинов (расшаривание файла) в файловые менеждеры.
- Ваш покорный слуга, встроил часть этих скриптов в индикатор и в пакет. Ну и сделал еще некоторые незначительные правки в коде (как, например, с тем самым пропадающим словом "Статус").

Во что это вылилось в итоге:

При установке пакета проверяется (пока довольно грубо) наличие установленного демона, и если он не установлен, процесс установки выдает сообщение (о необходимости установки) и заканчивается с ошибкой.

При запуске индикатора проверяется настройка демона, и если он не настроен предлагается его настроить или закрыть приложение. Если выбираем настройку то запускается утилита настройки. И если настройка произведена до конца, то загрузка индикатора продолжается.


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

Оффлайн metallcorn

  • Новичок
  • *
  • Сообщений: 47
  • Ubuntu 14.04
    • Просмотр профиля
    • Мой уютненький бложик..
Дописал скрипт с автоустановкой клиента.
Можно туда же засунуть автодобавление вашего PPA и установку индикатора. только нужно в зависимости gksu добавить... в 14.04 оно искаропки выпилено.


Вообще, gksudo - не Ъ потому что в дефолтной поставки нет, надо использовать pkexec

 

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