forked from slytomcat/yandex-disk-indicator
-
Notifications
You must be signed in to change notification settings - Fork 0
/
todo.txt
386 lines (359 loc) · 45.8 KB
/
todo.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
________TO DO__________
- man страницы
________TO DO (ON HOLD)__________
- DAEMON-INSTALL_STORY — solution 5??? - on hold
- попробовать сделать статусную простынку как субменю в строке статуса. Тут есть один неприятный нюанс - обновление статуса (в национальной локали) нужно выполнять по открытию этой простынки (обновлять каждый раз - ИМХО неоправданно накладно), но пока не понятно как вызвать некое действие по открытию подменю...
______FIXED issues/improvemnts:_____
- Фикс для скриптаов DEB пакетов из за которых возникала ошибка при обновлении.
FIXED 1.8.19 github, LP - 1.9.0
- Авто-перезапуск индикатора при обновлении deb-пакета (перезапускаются все запущенный во время обновления)
- обработчик для SIGTERM - при kill подчищаем за собой pid-файл
FIXED 1.8.18 github, LP
- очередные правки процедур чтения конфига
- PID файл перехал в /run/usr/%pid/
- code refactoring
FIXED 1.8.17 github, LP
- разобрался (вроде бы) с фантомным крашем при старте с пустым статусом (спасибо bevlam с росафорума)
- сделать, чтобы процесс индикатора назывался не python3 ..., а yd-tools
- обновление файловых расширений для Thunar
- мелкие исправления
FIXED 1.8.15 github, LP
- мелкие правки + обновление беларусского.
FIXED 1.8.14 github, LP
- реализован корректный метод запуска демона для получения английского выхлопа в оружении пользователя с кастомизированными настройками локалей.
FIXED 1.8.13 github, LP
- поддержка Белорусского + перевод для ya-setup
FIXED 1.8.12 github, LP
- поддержка разных пакетных менеджеров (pull request from Ivan Burmin) небольшой недочет с пропущенным пробелом пофиксил.
FIXED 1.8.11 github, LP
- обновление гресеского перевода, перевод на греческий ya-setup
FIXED 1.8.10 github, LP
- обновление болгарского перевода
FIXED 1.8.9 github, LP
- фикс для не запущенное службы нотификации
- многоязычная поддержка для ya-setup
- перевод на болгарский ya-setup
FIXED 1.8.8 github, LP
- фиксы для проецедуры первого запуска
FIXED 1.8.6 github, LP
- фиксы для проецедуры первого запуска
FIXED 1.8.5 github, LP
- Более корректная проверка автозагрузки (проверяются переменные Hidden и X-GNOME-Autostart-enabled в зависимости от значения переменной окружения XDG_CURRENT_DESKTOP) - AUTOSTART_STORY
FIXED 1.8.4 github, LP
- Мелкие правки и фиксы
- Вариант файловых расширения для Dolphin от Ace Of Snakes
- Дальнейший рефакторинг кода: поженил класс индикатора с иконкой и убрал меню во внутренний класс индикатора, внешне это не заметно, но внутри очередное упрощение взаимодействия компонентов и более логичная их агрегация
FIXED 1.8.3 github, LP
- Убрал русские эс из названий переменных в Preferences (спасибо за багрепорт Ace Of Snakes)
- Поправил баг с чтением exclude-dirs указанного без кавычек (спасибо за багрепорт Сергею Орлову).
- Подправил чтение конфигурации — если в конфиге одно значение определяется дважды — то процедура ругается.
- Глубокий рефакторинг класса демона - он теперь полностью самостоятельный и наружный интерфейс - переопределяемая callback функция в которую передается словарь с переменными статуса и множество с ключами, говорящими какое изменение произошло (изменилось что-то в статусных значениях, изменился список последних синхронизированных или произошла первичная инициализация). Причем события внутри класса дают выхлоп через callback только при обнаружении фактического изменения статуса.
Соответственно переделаны и класс индикатора, меню и иконки. Индикатор вообще стал наследником класса демона, что заметно упростило взаимодействие компонентов.
Процедура начальной инициализации потребовала новой тонкой наладки.
- Переписан парсинг выхлопа демона — вместо последовательно перебора в коде, перебор делается в цикле по словарю поисковых значений и ключей.
- Добавлены присланные дополнения переводов на греческий
FIXED 1.8.2 master, realize, LP
- фикс для ситуации с отсутсвием daemons в конфигурации (краш из-за еще одной наложившейся ошибки).
FIXED 1.8.1 dev, master, realize, LP
- в конфигурацию демона запихнуты насильно два ключа: "startonstartofindicator" и "stoponexitfromindicator", которые реализуют функционал устаревших настроке индикатора "startonstat" и "stoponexit" индивидуально для каждого демона.
- вынес окно настроек на уровень приложения (хотя и вызывается он из меню индикаторов). Отдельные демоны в нем настравиаются каждый на своей закладке. Пока убрал настройку запуска индикатора на загрузке ОС. Все остальные настройки (не относящиеся к конфигу демона) пока отнесены к настройкам программы.
- Подправил ya-setup для поддержки MULTI-INDICATOR
- поддержка нескольких индикаторов в одной программе (MULTI-INDICATOR story). Сдалано пока кривовато. Надо прорабатывать еще несколько вопросов...
FIXED 1.8.0 dev, master, LP
- Переделал работу с параметрами командной строки на стандартную библиотеку argparse:
+ простота добавления новых параметров вызова и гибкость в формате их записи.
+ автоматическая генерация вывода онлайн-справки (вызов с ключом -h) и текста "Usage" при ошибках в переданных опциях запуска. Справку можно локализовать.
+ вывод версии не всегда, а только по ключу -v (без запуска индикатора) + вывод версии в logging.info() при нормальном запуске.
+ новый параметр -с <path> - для указания конфигурации демона.
- реализовал вариант (new branch multidisk) запуск нескольких экземпляров индикатора с несколькими экземплярами демонов с разными конфигами. Это потребовало следующие переделки:
* <patth/to/config> - получать через параметр -c командной строки + разворачивать в нем '~' в абсолютный путь
* PID файл создавать с именем pid_<patth_to_config>
* поиск мертвого демона вести с указанием '--dir=<patth_YD_folder>' + убрать из поиска текущего пользователя + убивать мертвичину по найденым pid
* запуск и останов демона: yandex-disk -c <patth/to/config> start|stop
* статус: yandex-disk -c <patth/to/config> status
FIXED 1.7.0 dev, master, realize
- в 16.04 ругань на версии (раньше ее не было): sys:1: PyGIWarning: AppIndicator3 was imported without specifying a version first. Use gi.require_version('AppIndicator3', '0.1') before import to ensure that the right version gets loaded. sys:1: PyGIWarning: Notify was imported without specifying a version first. Use gi.require_version('Notify', '0.7') before import to ensure that the right version gets loaded. Прописал как просили.
- при переделке обработки галочки в настройках (1.6.4) сделал ошибку, приводившую к неадекватному поведению при смене тем иконок (и других настроек) - пофиксил.
- Переделал работу с конфигурационными файлам с использованием регулярных выражений, это решилло сразу несколько моментов:
+\- файл не переписывается целиком, в нем только меняются строки с изменяемыми значениями. Это несколько медленнее, но т.к. обновление происходет в буфере, то это не заметно - это сотые доли секунды;
+ пустые строки и комментарии не хранятся во внутренней структуре;
+ при обновлении файла, порядок во внутренней структуре не имеет значения, что позволило отказаться от OrderedDict (и фикса к неработающему методу setdefault).
FIXED 1.6.5 dev, master, no realize, no Launchpad
- переделал функцию разбора вывода демона с использованием регулярных выражений: код в 2 раза медленнее(что не важно при времени порядка 10^-5), но в 2 раза короче и легче сопровождаем.
- BUG - ошибка в коде при правке файловых расширений
- Уточнение по адресам поддержки (меню Help)
FIXED 1.6.4 dev, master, realize
- если активация/дезактивация файловых расширений не удалась - чекбокс в настройках не меняет свое состояние.
- добавлены файловые расширения для Pantheon-files
FIXED 1.6.3 dev, master, realize
- BUG - ошибка в коде при правке переводов 1.6.2 - краш индикатора.
FIXED 1.6.2 dev, master, realize + launcpad
- Слетели несколько переводов
FIXED 1.6.1 dev, master, realize + launcpad
- Logging level via command line: Уровень отладки устанавливается через параметр запуска из командной строки -l<n>, где <n> - один из уровней отладки: 10, 20, 30, 40 или 50. Параметр loglevel убран из конфигурационного файла.
FIXED 1.6.0 dev, master, realize + launcpad
- preinst script changed: убрал из скрипта DEB пакета код по удалению dconf схемы настроек.
- preinst и prerm скрипты: изменен код по поиску и убиению индикаторов.
FIXED 1.5.5 dev, master, precise, realize + launcpad
- добавил поддержку multi-user: переместил lock файл из /tmp/ в /home/<user>/.config/yd-tools/pid
FIXED 1.5.4 master, precise, realize + launcpad
- Реализовал уродский синтаксис для значения exclude-dirs: сначала в ковычках, а потом (внутри) значения через запятую - ну не уроды ли в яндыксе работают такой корявый синтаксис в конфигах использовать!!!!
FIXED 1.5.2 master, realize + launcpad
- Добавил возможность сохранять пустые строки и комментирии при записи конфигурационного файла.
- Заменил унаследованный из grive-tools функционал вывода отладочной информации на стандартный модуль logging. Теперь можно задать несколько уровней вывода сообщений, и с небольшими доработками можно писать логи в файлы или в системный логгер (но с этим надо еще разобраться)
- Код переписан из структурного в концепцию ООП (без особого фанатизма - в некоторых местах оставлены процедурные решения для простоты).
- Значительно переработан метод чтения конфигурационных файлов.
- Конфигурационные файлы (приложения и демона) записываются на выходе из настроек только в том случае если соответсвующие им настройки были изменены.
FIXED 1.5.1 dev -> master
- Добавления в русский перевод (для нового функционала).
- Реализовать возможность выборочной синхронизации. Нужен отдельный диалог для выбора отдельных директорий, которые не надо синхронизировать (опция —exclude-dirs=DIR1,DIR2,...). Реализованный вариант: Плоский список директорий. Добавлять стандартным диалогом выбора файла/каталога. Удаление через предварительный выбор строк (checkbox на каждой строке).
- Поддержка списка значений в конфигурационных файлах (чтение и запись).
FIXED 1.5.0 dev
- BUG_FIX с окном About - конструктор этого диалога не есть названия.
FIXED 1.4.2a percise и 1.4.3 master
- Что-то не то с файловыми расширениями для Thunar (продублировались пункты меню). Продублировались при переходе на переведенную версию.
NOTHING TO FIX
- Окончательно перейти на Python3 ибо городить огород над совместимостью с Python2 уже сильно напрягает :( Однако это означает заморозку версии для Ubuntu 12.04 Precise (т. к. под precise нет библиотеки pinotify для Python3). см. PY-2_PERCISE_STORY
FIXED 1.4.2 percise (Python2) и 1.4.3+ master и dev (Python3)
- переделал сохранение настроек согласно концепции USER_LOCAL_SETTINGS + настраиваемые пользователем иконки
FIXED 1.4.2 master, realize + launcpad
- переделал чтение и обработку конфигурационного файла демона (используется промежуточный dict)
FIXED 1.4.2 master, realize + launcpad
- перенос проетка из /opt/yd-tools в /usr/share/yd-tools, а также размещение основного python кода непосредствено в /usr/bin/yandex-disk-indicator (вместо баш-вызывалки) - FILES_LOCATIONS_STORY
FIXED 1.4.0 - 1.4.1 master, realize + launcpad
- переделать работу с .desktop файлами: брать .desktop для авто-запуска из /usr/share/application/ и убрать их из /opt/yd-tools. Сами .desktop названы универсально, что бы имя подходило и для меню и для авто-запуска.
FIXED 1.3.1d master, realize + launcpad
- одолеть возникший баг на ланчпаде — пакеты не собираются (с работы заливка на ланчпад залочена — разобраться можно только дома) - все получилось, но что было - не понял.
FIXED 1.3.1a
- Оптимизация и правка оформления кода (PEP8) и комментариев
FIXED 1.3.1
- Динамическое меню для последних синхронизированных т. к. последняя версия демона показывает только те последние синхронизированные, которые были синхронизированы в ходе последней сессии запуска демона. Подменю обновляется только при изменении списка выдаваемого демоном. FIXED ver 1.3.1(dev)
FIXED 1.3.1
- Залил исходники на Github
- Добавил диалог с отображением вывода 'портянки' от демона (fix for ACCESS_ERROR_STORY). VER 1.2.0
- Чтение конфиг файла для определения каталога ЯД
- Чтение конфиг файла как с кавычками так и без
- Небольшое изменение в логике обработки статусов
FIXED 1.3.0 (github realize)
- Переделал запуск — индикатора может запускаться с не запущенным демоном (но демон должен быть установлен и настроен), + добавлена настройка — запускать демона при старте.
FIXED 1.1.9
- Переделал наблюдателя за изменением файла из асинхронного (в отдельном потоке) на обычный (в текущем потоке), который вызывается по таймеру (GTK event based model)
FIXED 1.1.9
- При названии YD фолдера по русски — ошибки ascii/UTF-8 в питоне 2.7
FIXED 1.1.8 (1.1.91)
- Добавить настройки запуска демона --read-only и --overwrite
FIXED 1.1.6
- Переделал окно настроек:
1. настройки индикатора и демона разнесены на разные закладки,
2. изменен тип окна на диалог (что бы кнопка 'закрыть' имела нормальный вид)
FIXED 1.1.6
- Исправление недочета: окно настроек можно было открыть несколько раз т. к. пункт меню не дизактивировался на время открытия окна (правильно было сделано с для окна about). - FIXED 1.1.6
- Убрал двойную ошибку при открытии из последних синхронизированных файла/пути, которые были переименованы и более не существуют (кликнуть такие файлы\каталоги — нельзя, они не чувствительны).
FIXED 1.1.6
- допилить расширения для Dolphin (под кеды), на основе http://habrahabr.ru/post/212763/
FIXED 1.1.5
- CRUSH_CASE. Убрал в вызовах subprocess.check_output опцию shell=True и перевел выбор NLS через вызов os.putenv('LANG','en_US.UTF-8'). Возможно это решение для HARON_CASE2
FIXED (1.1.5)
- перевел десктоп-нотификацию на работу через библиотеку python вместо использования команды оболочки notify-send. Это устраняет появление множества (более одного) уведомлений в ходе быстро-меняющихся процессов.
FIXED (1.1.5)
- Убран обнаруженный глюк (v.1.1.3): при запуске не из терминала перестали открываться файлы/каталоги из последних синхронизированных (Xubuntu 12.04). Оказалось это как-то связано (не до конца понял — как???) с отсутствием потока для вывода отладочной информации (отключение отладки решало эту проблему). Убрал печать отладочной инфы в try: except: блок.
FIXED (1.1.5)
- Fixed story:демон может работать в фоне, но отвечать, что он не загружен (HARON_CASE- confirmed). Это приводит (по старому алгоритму индикатора) к запуску второй версии демона и странным последствиям. Причин такого поведения установить не удалось.
FIXED (1.1.3)
- Исправление ситуации с отсутствием в меню последних синхронизированных символа <_> (а также возникновения акселераторов в меню): см MENU-ACCELERATOR_STORY.
FIXED (1.1.3)
- Исправление ошибки в отображении имени файла (как и пр открытии) если в нем есть символ <'>
FIXED (1.1.3)
- Проверять то, что демон запущен как процесс и убивать его если он запущен, но не отвечает (HARON_CASE).
FIXED (1.1.3)
- Добавит скрипты проверки файловых менеджеров и добавления add-on-ов.
FIXED (1.1.2)
- Добавить скрипты snowdimon в сбоку и в yd-tools.install.
FIXED (1.1)
- Добавить копирайты snowdimon
FIXED beta
- Добавить скрипт настройки в вызов из диалога ошибки
FIXED beta
- Zenity обертка для yandex-disk setup — взялся делать snowdimon
FIXED beta
- Вызов установки из диалога об ошибке в случае не настроенного клиента.
FIXED beta
- Фикс пропадающего 'Status: '
FIXED beta
- корректировка настроек авто-старта в зависимости от наличия шорткатов в ~/.confg/autostart FIXED
- Пофиксить ошибки с урезанием пути/файла в списке последних синхронизированных для имен содержащих русские символы в названии (Unicode issue)
FIXED beta
- вернуть прямые пути к иконкам вариант с ind.set_icon_theme_path(path) не работает ни в Unity ни в KDE
FIXED beta
- динамическое изменение таймаута
FIXED beta
- обрезать длинные имена в суб-меню
FIXED beta
- Заливка на lanchpad
FIXED alfa
- ошибка с суб-меню (KDE)
FIXED alfa
- Вписать в deb зависимости.
FIXED alfa
- Русификация
FIXED alfa
- Оптимизация кода по смене иконок
FIXED alfa
- Не обновляются данные по размерам
FIXED alfa
- Отработка ошибки от упавшего демона (статус: failed to connect to daemon process)
FIXED alfa
- Отработка ошибок запуска демона без интернета (Error: Proxy server is unavailable.)
FIXED alfa
- Таймер+обработчик для проверки статуса в случае отсутствия сети
FIXED alfa
- Настройка "отключать демон при выключении индикатора по quit"
FIXED alfa
- Показ последних синхронизированных файлов в суб-меню
FIXED alfa
- Показ прогресса при синхронизации
FIXED alfa
- Преобразование/расшифровка статуса
FIXED alfa
- Fix menu issue on unity (много строк в одной позиции)
FIXED alfa
____________FIXED STORIES_______________
- AUTOSTART_SORY: продумать вариант чтения X-GNOME-Autostart-enabled=false/true из .desktop файтов в каталоге ~/.config/autostart
ПОЛНАЯ ФИГНЯ: В XFCE используется другой атрибут: Hiden=true|false с обратной логикой (т.е. автозапуска нет если Hidden=true). По сему встает большущий вопрос - как этот зоопарк обрабатывать? могу проверить и X-GNOME-Autostart-enabled и Hidden, но что мне делать если по судя по одному автозапуск есть, а судя по другому - нет. Как узнать какое окружение - я пока не знаю.... узнать окружение можно через переменные окружения
Запрещают автозапуск:
XDG_CURRENT_DESKTOP=XFCE, DESKTOP_SESSION=xubuntu - параметр Hidden=true или отсутствие файла
XDG_CURRENT_DESKTOP=Pantheon, DESKTOP_SESSION=pantheon - X-GNOME-Autostart-enabled=false или отсутствие файла
XDG_CURRENT_DESKTOP=Unity, DESKTOP_SESSION=ubuntu - X-GNOME-Autostart-enabled=false или отсутствие файла
XDG_CURRENT_DESKTOP=KDE, DESKTOP_SESSION=plasma - параметр Hidden=true или отсутствие файла
XDG_CURRENT_DESKTOP=LXDE, DESKTOP_SESSION=lubuntu - не понятно что
- MULTI-DAEMON_STORY: MULTI-INDICATOR: Реализованный на скорую руку в 1.7.0 вариант с несколькими экземплярами - довольно кривой:
1. У разных индикаторов общий конфиг и обновляют его они тоже оба асинхронно.
2. .desktop файлы в ~/.config/autostart не содержат ссылки на файл конфигурации и они настраивают автозапуск только одного демона и только один индикатор будет запущен.
3. по индикатору и даже по меню - не сразу понятно какой каталог обслуживает индикатор. -> нужно в меню показать синхронизируемый каталог и референсный номер демона.
Требуются:
1. показать синхронизируемый каталог в меню... Решение: показывать только тогда, когда запускается несколько экземпляров. DONE + показан порядковый номер сервиса.
2. встроить поддержку множества экземпляров в сам индикатор. Т.е. нужно создать класс индикатора и из одной программы запускать несколько экземпляров. Тогда вопросы автозапуска связки демон-индикатор решаются конфигурацией программы. Решение - параметра конфигурации daemons содержит список путей к конфигам демона, он пополняется из параметра -с|--config командной строки. Удалять пока только руками из файла конфигурации. DONE
Вопросы для проработки:
*. отображать разные иконки или одну а в меню сделать типа закладок на каждый экземпляр? Меню то у индикатора - урезанное :( Решение: под каждый демон своя иконка. DONE
*. ya-setup надо доработать для работы с кастомными конфигурациями демонов. DONE
*. какие настройки общие для всех индикаторов, какие индивидуальны для экземпляра:
autostart - для программы
theme - для индикатора и указывать путь (что бы настроить разные индикаторы для разных экземпляров) пока для программы - надо думать дальше.
startonstart - для индикатора. в файле конфига демона он называется "startonstartofindicator"
stoponexit - для индикатора. в файле конфига демона он называется "stoponexitfromindicator"
notifications - для программы
fmextensions - вообще не понятно, что делать с файловыми расширениями ибо они только на один экземпляр демона заточены??? надо файловые расширения по идее вешать на экземпляры и модифицировать под каждый экземпляр.
autostartdaemon - для экземпляра индикатора. Но, из-за сложной реализации проще вообще отказаться от этого варианта — автозапуск делать на старте индикатора. пока убрано вообще. И наверно стоит так и оставить.
Про настройки: Окно настроек выносится на уровень приложения. В настройках используются глобальные переменные config(конфигурация программы) и indicators (перечень индикаторов). Настройки демонов показываются на отдельных закладках. DONE
В конфиг yandex-disk добавлены новые (своих) значения. Имена выбраны длинные, есть надежда, что такие имена никогда не придут в голову разработчикам тындекса. DONE
PY-2_PERCISE_STORY:
Поддержка Unicode в Python2 требует разных изощренных телодвижений. Более того даже константы unicode символов почему-то не могут быть записаны одинаково в Python3 и Python2 (обнаружил при тестировании 1.4.2 в голой Xubuntu 12.04 на виртуалке). Кроме этого в любой работе из Python2 с внешними источниками (gettext, subprocess, files) приходится применять .decode или другие выверты, что бы работать с utf-8. И фиг бы сними если бы Python3 требовал того-же или просто игнорировал эти "хитро-вывернутые телодвижения". Но Python3 работает с utf-8 без вывертов и на все выверты, необходимые для python2 ругается эксепшенами. Все это требует обрамлять такие места разночтений в условное ветвление по признаку версии Python.
На момент тестирования 1.4.2 таких мест было 3:
- .decode('utf-8') вывода демона в utf-8 строку (там названия файлов требуют uft-8)
- .decode('utf-8') имени Yandex.disk каталога (он может быть назван по русски для примера, что тоже требует uft-8)
- gettext - требуются разные версии функций работы с каталогом переводов в Python2 и Python3 (единообразного способа задать переводы в Python2 и Python3 найти не удалось).
При тестировании 1.4.2 на Xubuntu 14.04 32 bit вылезла ругань на константы вида u'\u00a9' используемых в двух местах:
- в окне about - знак копирайта
- при обновлении списка последних синхронизированных - подменный знак подчеркивания для отключения функции быстрого выбора в GTK меню.
Единственным вариантом задания констант, который сработал в Python2 на 12.04 и в Python3/Python2 на 14.04/15.04 стал unicode константа с Uniсоde символом, скопированная через буфер обмена прямо в код! БРЕД КАКОЙТО!!!
Уже давно напрашивающийся полный переход на Python3 тормозится отсутствием в percise библиотеки pyinotify (поддержка библиотеки inotify ядра) в версии для Python3.
Тянуть совместимость с python2 из-за 12.04 - становится все более накладно.
Решение: создаем на git отдельную ветку с python2 кодом для 12.04 и замораживаем изменения (v.1.4.2, только багфиксы). Развиваемая ветка master преходит полностью на Python3 и не заливается на Launcpad в серию percise, а только в trusty и более новые (из поддерживаемых).
FIXED 1.4.2 percise (Python2) и 1.4.3+ master и dev (Python3)
USER_LOCAL_SETTINGS (расширение варианта ICONS_AND_FILES_LOCATIONS_STORY)
Добавить пользовательскую конфигурацию файлом в ~/.config/yd-tools
При этом иконки брать из пользовательского конфига, а если там нет, то из каталога приложения.
FIXED 1.4.2
FILES_LOCATIONS_STORY:
peregrine: «иконка берётся из темы иконок, если она там есть. Если же её там нет, то иконка загружается дефолтная, а куда в системе ты её положишь уже тебе решать.»
Нужно разобраться с путями в системе (пути к темам и т. п.) И возможно раскидать весь /opt/yd-tools. Но это затронет множество мест в коде.
Вариант (простейший -- 1.4.0-1.4.1):
/opt/yd-tools/yandexDiskIndicator.py -> /usr/bin/yandex-disk-indicator (вместо bash заглушки)
все из /opt/yd-tools/ -> /usr/share/yd-tools/ (или /usr/share/yandex-disk-indicator ???)
FIXED 1.4.2
Решение:
1. меняем:
installDir = os.path.dirname(os.path.realpath(__file__)) - получает путь где лежит исполняющийся файл.
на:
installDir = '/usr/share/yd-tools/' - константа, т. к. исполняемый переползает в /usr/bin/
2. в .desktop файлах меняем пути к иконкам и в .desktop файле индикатора exec=yandex-disk-indicator и path=''
3. заменяем пути к иконкам в файловых расширениях
4. переделываем сборку
.... все остальное - вроде без изменеий
Настройки (dconf) - остаются там же (/usr/share/glib-2.0/schemas/apps.yandex-disk-indicator.gschema.xml)
FIXED 1.4.0 + 1.4.1(п. 3)
NOAUTH_ERROR: (http://forum.ubuntu.ru/index.php?topic=241992.msg1958936#msg1958936)
Не стартует индикатор (v.1.2) когда (на слабом канале) демон не успевает авторизоваться. Видимо идёт какое-то промежуточно сообщение от утилиты (обновлённой яндексом недавно).
Решение: Обработка ошибки старта демона на старте — в случае ошибки предложить запустить индикатор без ожидания запуска демона. fixed
CRASH_CASE:
- Индикатор крашится после саспенда/поверофа, а иногда и просто так ??? при этом часто возникает CAPTURED-LOCK_CASE (HARON_CASE_2)
Причина: точно не установлена
---- вероятно глюк демона (???)
---- в краш репорте что-то про меню проскакивало.... возможно глюк связан с меню последних синхронизированных и тем, что ранее я не отключал там явно опцию use_underline?(возможно коррелирует с MENU-ACCELERATOR_CASE: FIXED) Изменено в 1.1.3 — по факту не помогло :(.
---- Возможно это было связано с асинхронной работой inotify — заменил в 1.1.9 на работу по таймеру — нужно наблюдать.
Решение: переделать с двух-поточной на событийную модель (сделано в 1.1.9).
Результат: тестирование, 03.09.15 — вроде о крашах в последнее время никто не сообщает вероятно помог переход на событийную модель. FIXED ver 1.1.9
CAPTURED-LOCK_CASE (HARON_CASE_2):
- Одно из последствий CRASH_CASE, а также закрытия сессии пользователя - lock файл индикатора лочится демоном: О!!! БРЕД какой-то!!!
Причина: точно не установлена
---- возможно это как-то связано с запуском yandex-disk status через subprocess.check_output и/или с тем (дополнительно), что там использовалась опция shell=True: убрал shell=True в 1.1.5 смотрим......
Решение: попробовать все причесать вокруг обращений к демону (1.1.5 ).
Результат: по наблюдениям — вроде не повторяется. Не подтверждено.
ACCESS_ERROR_STORY:
Вывод yandex-disk status:
>Статус ядра синхронизации: ошибка
>Ошибка: ошибка доступа
>Путь: 'Документы/работа/акт'
>Путь к папке Яндекс.Диска: '/home/user/Yandex.Disk'
>...
проверил путь - оказалось, по указанному пути лежит битая ссылка.
Индикатор деталей ошибки не дает.
Причина — нет обработки и детализации по этой ошибке
Решение — вывести полный вывод демона в диалоге по клику на статус (сделать его активным пунктом меню). FIXED ver 1.2.0
MENU-ACCELERATOR_CASE: FIXED (1.1.3)
В меню последних синхронизированных не показывается (съедается) символ подчеркивания(_), несмотря на установку <meny_item>set_use_underline(False) (по крайней мере в Xubuntu 12.04 и 13.10). Кроме того, иногда (плавающий глюк) не смотря на установку включается режим когда за подчеркиванием идет акселератор. Бред какой-то просто с этим use_underline !!!!
Решение: подмена символа <_> на unicode символ 02CD (hex)
Результат: FIXED (in 1.1.3)
________CANCELED________
- Добавить скрипт установки демона в preinst скрипт пакета — NGI (DAEMON-INSTALL_STORY) - CANCELED
________Known bugs/issues/stories:_________
ICON_RESIZE_BUG: (ON HOLD)
- не масштабируются иконки в панели gnome-fallback и XFCE (начиная с Xubuntu 14.04)
Возможно ошибки/недоработки в библиотеках gnome-fallback— что с этим делать — не ясно (нет тестовой платформы).
В Xubuntu вроде как баг есть — разрабы не хотят фиксить — что делать — тоже пока не ясно.
Временное решение (1.3.1+) - иконки отмасштабированы под классический размер панели (24х24)
DAEMON-INSTALL_STORY: (ON HOLD)
- Не понятно как добиться установки демона вместе с (из) индикатора (вариант установки индикатора вместе с демоном - Not in this universe!)
Возможные решения:
1. Поставить по зависимостям — нельзя т. к. репозитрий YD на чистой машине не добавлен. По неудовлетворённым зависимостям установка упадет. - Not a good idea!
2. Добавить репу в процессе инсталляции — можно, но из него ничего не поставится без apt-get update (который во время установки пакета запустить не удастся из за того, что уже залочены ресурсы пакетного менеджера) - Not a good idea!
3. Ставить из индикатора: нужны права рута — в разных DE разные GUI морды для SUDO, а запускать в терминале (через просто sudo) — как то некрасиво. — Not a good idea!
4. Включить пакет индикатора в общий пакет с демоном — требуется определенная кооперация со стороны Yandex — Not in this universe!
5. Забить и записать как требования к установке - Looks as a good idea :)
6. В preinst скрипте DEB пакета залить wget-ом DEB yandex-disk и поставить его - не получилось т.к. пакетная база залочена и не уедается поставить пакет из preinst скрипта
Решение: пока 5.
Результат: нет
PROJECT Histry:
Idea
- 2014-04-08, 09:46:51 http://forum.ubuntu.ru/index.php?topic=241992.msg1908444#msg1908444
First functions to parse CLI daemon output
- 2014-04-09, 21:32:08 http://forum.ubuntu.ru/index.php?topic=241992.msg1909078#msg1909078
Alfa 0.1 version
- 2014-04-10, 23:50:32 http://forum.ubuntu.ru/index.php?topic=241992.msg1909651#msg1909651
Alfa 0.2 version (deb pacakge)
- 2014-04-11, 15:55:43 http://forum.ubuntu.ru/index.php?topic=241992.msg1909861#msg1909861
Beta 0.4 version
- 2014-04-12, 04:20:10 http://forum.ubuntu.ru/index.php?topic=241992.msg1910159#msg1910159
Ver 0.8 (beta) - Translation to Russian
- 2014-04-15, 16:24:26 http://forum.ubuntu.ru/index.php?topic=241992.msg1911851#msg1911851
Publication on Launchpad PPA
- 2014-04-16, 18:43:55 http://forum.ubuntu.ru/index.php?topic=241992.msg1912370#msg1912370
Ver 1.0 (first stable)
- 2014-04-17, 14:57:17 http://forum.ubuntu.ru/index.php?topic=241992.msg1912781#msg1912781
Icon contest announcement
- 2014-04-19, 11:14:32 http://forum.ubuntu.ru/index.php?topic=241992.msg1914054#msg1914054
Icon contest voting
- 2014-04-30, 10:25:32 http://forum.ubuntu.ru/index.php?topic=241992.msg1920150#msg1920150
Publication on GitHub
- 2015-03-13, 18:20:40 http://forum.ubuntu.ru/index.php?topic=241992.msg2044809#msg2044809
The rest of the history is available on GitHub.