Расширение, устанавливающее расширения...

Автор chkur, 22 июля 2010, 00:37

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

chkur

Простенькое расширение, устанавливающее все расширения из указанного каталога (Linux only).
Сделано на коленке на Python при помощи фреймворка для создания расширений ООо EuroOffice Extension Creator (EOEC) с целью соббсно демонстрации возможностей EOEC. Надеюсь, подробная статья о EOEC всё-таки когда-нибудь появится на MyOOo ;) Лицензия - GPL3.

Как пользоваться:
Сложить расширения в один каталог. Открыть расширение exset архиватором, найти файл settings. Установить в нем параметр path_ext = пути к каталогу, в котором лежат расширения (по умолчанию /tmp), сохранить settings. Установить расширение. Перезапустить ООо. Запустить из меню "Сервис" - "Install Extensions". Возможно, ответить на вопросы расширений о принятии лицензии. Перезапустить ООо. Всё.

З.Ы. Графической морды не делал, но, в принципе, это возможно. Linux only - потому, что для Windows не сделал, но это возможно :) Версия 0.1, сильно не пинать.

Рыбка Рио

Размер очень большой. Все файлы *.pyc можно удалить. Они автоматически генерируются при запуске фалов *.py.

Кстати, посмотрите для примера MRI - UNO Object Inspection Tool, или Default Browser - там нет ничего лишнего (поэтому проще разобраться что к чему) и никаких бинарных файлов, но зато там даже файл .ods есть для перевода диалогов и справка. И обратите внимание на размер.
ubuntu 12.04 + LibO3.6.0

chkur

#2
Извините, можно в 2010 году я не буду размер в полмегабайта считать ОЧЕНЬ большим? ;D Да, можно (и, пожалуй, нужно :)) при желании выгрести всё ненужное и неиспользуемое. Картинки, неиспользуемые модули, компилированые pyc'и.
Здесь упор на другое - на скорость разработки. Есть каркас, на который довольно быстро натягивается нужный функционал. Вот скринкаст. В комплекте с EOEC - достаточно подробная документация и примеры расширений. Если есть инструкция, как создавались указанные Вами расширения - интересно было бы почитать.
Цитата: Крио от 22 июля 2010, 08:37
файл .ods есть для перевода диалогов.
Кстати, расширение для перевода диалогов в расширениях.

Рыбка Рио

#3
Eclipse + Pydev + PyUNO
( Google Переводчик )
А вообще, можно любое расширение использовать как основу.
В данном расширении может быть всего 1 файл py, всё остальное лишнее. Посмотрите, к примеру, PythonCalculator | OpenOffice.org repository for Extensions. В общем, дело не только в размере, но и в скорости запуска, а размер у файла из 0,5 МБ, может превратиться в 5 кБ.
ubuntu 12.04 + LibO3.6.0

Рыбка Рио

Кстати, для написания на Яве можно использовать Eclipse+OpenOffice.org Plugin (Cedric Bosdonnat) (в планах добавление Питона и C++)), либо Netbeans+OpenOffice.org plugin (juergen schmidt)

Кстати, сайт hanya (расширения очень качественные, человек очень много знает) http://hermione.s41.xrea.com/pukiwiki
Там есть такое, чего даже в обычной вики не всегда есть.
ubuntu 12.04 + LibO3.6.0

chkur

С японским у меня туго, а гуглопереводчик судорожно бьется в конвульсиях, отображая пустую страницу (это насчет сайта hanya).
Цитата: Крио от 22 июля 2010, 20:41
Eclipse + Pydev + PyUNO
Т.е. с нуля ручками.
Цитата: Крио от 22 июля 2010, 20:41
В общем, дело не только в размере, но и в скорости запуска, а размер у файла из 0,5 МБ, может превратиться в 5 кБ.
Это вопрос из области "Зачем использовать web-фреймворки для сайтостроения, без них на "голом" php сайты работают в разы быстрее и по размерам компактнее". И у первого, и у второго варианта всегда будут свои сторонники и противники. Что до скорости запуска расширения - для конечного пользователя она практически одинакова. По скорости "бутылочным горлышком", скорее, будет сам Python. Можете сравнить по скорости тот же python-калькулятор и это расширение - разницы нет.
Когда-то давно в вики ООо читал я о написании расширения на Python. Если ничего с тех времён не изменилось - Eclipse с pydev'ом тут особо жизнь не облегчат.

chkur

#6
Продолжаем. Теперь это у нас пакет расширений. Открываем архиватором exset.oxt и в папку ext внутри архива забрасываем нужные и удаляем ненужные расширения. Я без ложной скромности бросил туда свои - Alba, Pager и "Конвертер Валют" (его пункт меню появится во Writer в меню Сервис). Устанавливаем exset.oxt. Перезапускаем OOo. Выбираем "Сервис-Install Extension Pack". Расширения устанавливаются. Перезапускаем OOo. Вообще, процесс можно и нужно еще упростить, но пока не получается. Прошу прощения, расширение не облегчал. И, наверное, не буду :)
Linux Only.

Рыбка Рио

Цитата: chkur от 22 июля 2010, 22:12Что до скорости запуска расширения
Скорсть запуска OOo, т.к. на все включенные, но не используемые, в manifest.xml файлы, нужно время (особенно если убрать диалог О программе, и настройки (ведь они у вас вроде не используются).
Цитата: chkur от 22 июля 2010, 22:12Т.е. с нуля ручками.
Берёте шаблон или исходный код из другого расширения, подправляете 2-3 файла, и расширение готово (и даже не за 20 минут, а намного быстрее - зависит от того как быстро вы напишете рабочую функцию).
ubuntu 12.04 + LibO3.6.0

Рыбка Рио

Кстати, расширение не работает. Рабочая функция у вас жестко прописывает путь:
class install_ext(threading.Thread):

   def __init__(self, **kwargs):

       super(install_ext, self).__init__()

       self.path_ext = kwargs.pop('path_ext')

       

   def run(self):

       ooopath = os.path.dirname(os.readlink('/usr/bin/soffice'))

       unopkgrun = os.path.join(ooopath, 'unopkg')



       ext_list = glob.glob(self.path_ext)

       for ext in ext_list:

           p1 = os.popen('xterm -fa console-terminus -e "'+unopkgrun + ' add '+ext+'"')

           os.wait()


Была тема, в которой есть способ определения папки установки OOo:
Как найти каталог, в который установлен OpenOffice.org?
ubuntu 12.04 + LibO3.6.0

chkur

Цитата: Крио от 23 июля 2010, 08:00
Берёте шаблон или исходный код из другого расширения, подправляете 2-3 файла, и расширение готово (и даже не за 20 минут, а намного быстрее - зависит от того как быстро вы напишете рабочую функцию).
Сначала нужно хорошо посидеть и разобраться, как чужое недокументированное и, чаще всего, некомментированное, расширение работает.
Цитата: Крио от 23 июля 2010, 08:28
Кстати, расширение не работает. Рабочая функция у вас жестко прописывает путь:
...
Была тема, в которой есть способ определения папки установки OOo:
Как найти каталог, в который установлен OpenOffice.org?
Сейчас используется readlink '/usr/bin/soffice'В большинстве случаев для простого обывателя будет работать (один ООо, ссылка на запускающий файл /usr/bin/soffice). За тему - спасибо, в моем случае логично использовать что-то вроде
Цитата: N2H4 от 11 июня 2010, 14:35ps x | grep soffice |  grep grep -v | awk '{print $5}'

Цитата: Крио от 23 июля 2010, 08:00
Скорсть запуска OOo, т.к. на все включенные, но не используемые, в manifest.xml файлы, нужно время (особенно если убрать диалог О программе, и настройки (ведь они у вас вроде не используются).
Учту :)

Рыбка Рио

#10
Вот смотрите, у меня не получилсось, правда заставить расширения установиться, но в примере находятся три расширения для устновки, само расширение выводит в Writer список файлов для установки, команду для установки, путь к файлу unopkg (для линукса должен наверное работать, а для Win нет - см. Issue 98699). Ярлык находится в OOo Writer в меню Сервис/Дополнения/Питон-линукс-пример.

Ссылки по теме:
Re: [api-dev] How to get the canonical path from a script URL, or at lea
OpenOffice.org Forum :: C++ : How to retrieve unopkg executable path ?

/Туда даже иконка пометилась, кстати.

[вложение удалено Администратором]
ubuntu 12.04 + LibO3.6.0

chkur

Развлекаемся дальше. Добавил чуть-чуть морды.

[вложение удалено Администратором]

Syzygy

Цитата: chkur от 15 августа 2010, 08:21Добавил чуть-чуть морды.
Можно скриншот для тех, кто от сохи от Windows?
A Matter of Life and Death

chkur

Добавить поддержку windows, думаю, несложно, да вот нет у меня ее дома. А на работе не до расширений.
З.Ы. определение пути к ООо не исправлял пока что.

[вложение удалено Администратором]

Nick222

#14
А не может ли это расширение давать два списка - список расширений, что лежат в определённой директории - и список уже установленных расширений?

Или есть отдельное расширение для формирования списка уже установленных расширений (желательно со списком расширений, их именами установочных файлов, их внутренними именами, описаниями, ссылками на официальные страницы) - и экспортом всего этого в HTML?

Может ли это расширение давать в списке не только имя файла, но и правильное название (оно очень часто отличается от имени файла) и, крайне желательно, описание расширения (из пакета расширения)? А ещё хорошо бы - путь к странице расширения (если внутри пакета расширения он - этот путь - прописан)...

Тогда можно было бы сравнивать версии расширения: установленную, скачанную, имеющуюся на официальном сайте.
Xubuntu 21.04, LibreOffice 7.2.*