From c9936bc791a03408c227011f39d04484b62ba3e1 Mon Sep 17 00:00:00 2001 From: Mauricio Baeza Date: Fri, 27 Sep 2019 14:49:44 -0500 Subject: [PATCH] Update easymacro --- CHANGELOG | 8 + README.md | 2 +- VERSION | 2 +- conf.py | 4 +- easymacro.py | 1145 +++++++++++++++++++++++++++----- files/ZAZBarCode_v0.4.0.oxt | Bin 0 -> 280522 bytes files/zazbarcode.update.xml | 4 +- source/ZAZBarCode.py | 7 +- source/description.xml | 2 +- source/pythonpath/easymacro.py | 1144 ++++++++++++++++++++++++++----- 10 files changed, 1980 insertions(+), 338 deletions(-) create mode 100644 files/ZAZBarCode_v0.4.0.oxt diff --git a/CHANGELOG b/CHANGELOG index c351bc4..50db289 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,13 +1,21 @@ +v 0.4.0 [27-sep-2019] + - Update library easymacro.py + - Add icon in command button + + v 0.3.0 [18-sep-2019] - Add support for generate barcode by code + v 0.2.1 [16-sep-2019] + - Fix #1 v 0.2.0 [14-sep-2019] --------------------- - Add support for spanish + v 0.1.0 [06-sep-2019] --------------------- - Initial version diff --git a/README.md b/README.md index 3afea37..c46c353 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ BCH: `1RPLWHJW34p7pMQV1ft4x7eWhAYw69Dsb` BTC: `3Fe4JuADrAK8Qs7GDAxbSXR8E54avwZJLW` -* [See the wiki](https://gitlab.com/mauriciobaeza/zaz-barcode/wikis/home) +* [Look the wiki](https://gitlab.com/mauriciobaeza/zaz-barcode/wikis/home) * [Mira la wiki](https://gitlab.com/mauriciobaeza/zaz-barcode/wikis/home_es) diff --git a/VERSION b/VERSION index 69367fd..26b5dec 100644 --- a/VERSION +++ b/VERSION @@ -1,2 +1,2 @@ -0.3.0 +0.4.0 diff --git a/conf.py b/conf.py index 7096f82..b0be8a7 100644 --- a/conf.py +++ b/conf.py @@ -26,7 +26,7 @@ import logging TYPE_EXTENSION = 1 # ~ https://semver.org/ -VERSION = '0.3.0' +VERSION = '0.4.0' # ~ Your great extension name, not used spaces NAME = 'ZAZBarCode' @@ -506,7 +506,7 @@ NODE_MENUS = '' if TYPE_EXTENSION == 1: if PARENT == 'AddonMenu': NODE_MENUS = '\n'.join(menus) - else: + elif PARENT == 'OfficeMenuBar': tmp = ' {}' titles = '\n'.join([tmp.format(k, v) for k, v in MENU_MAIN.items()]) SUBMENUS = '\n ' + '\n'.join(menus) + '\n ' diff --git a/easymacro.py b/easymacro.py index 8b41c24..3bf53b9 100644 --- a/easymacro.py +++ b/easymacro.py @@ -17,11 +17,12 @@ # ~ You should have received a copy of the GNU General Public License # ~ along with ZAZ. If not, see . - +import base64 import ctypes import datetime import errno import getpass +import hashlib import json import logging import os @@ -34,18 +35,30 @@ import sys import tempfile import threading import time +import traceback import zipfile from collections import OrderedDict from collections.abc import MutableMapping -from datetime import datetime from functools import wraps +from operator import itemgetter from pathlib import Path, PurePath from pprint import pprint +from string import Template from subprocess import PIPE +import smtplib +from smtplib import SMTPException, SMTPAuthenticationError +from email.mime.multipart import MIMEMultipart +from email.mime.base import MIMEBase +from email.mime.text import MIMEText +from email.utils import formatdate +from email import encoders +import mailbox + import uno import unohelper +from com.sun.star.util import Time, Date, DateTime from com.sun.star.beans import PropertyValue from com.sun.star.awt import MessageBoxButtons as MSG_BUTTONS from com.sun.star.awt.MessageBoxResults import YES @@ -60,12 +73,20 @@ from com.sun.star.lang import XEventListener from com.sun.star.awt import XActionListener from com.sun.star.awt import XMouseListener +try: + from fernet import Fernet, InvalidToken + CRYPTO = True +except ImportError: + CRYPTO = False + MSG_LANG = { 'es': { 'OK': 'Aceptar', 'Cancel': 'Cancelar', 'Select file': 'Seleccionar archivo', + 'Incorrect user or password': 'Nombre de usuario o contraseña inválidos', + 'Allow less secure apps in GMail': 'Activa: Permitir aplicaciones menos segura en GMail', } } @@ -94,7 +115,8 @@ TYPE_DOC = { 'writer': 'com.sun.star.text.TextDocument', 'impress': 'com.sun.star.presentation.PresentationDocument', 'draw': 'com.sun.star.drawing.DrawingDocument', - 'base': 'com.sun.star.sdb.OfficeDatabaseDocument', + # ~ 'base': 'com.sun.star.sdb.OfficeDatabaseDocument', + 'base': 'com.sun.star.sdb.DocumentDataSource', 'math': 'com.sun.star.formula.FormulaProperties', 'basic': 'com.sun.star.script.BasicIDE', } @@ -113,14 +135,33 @@ MENUS_CALC = { 'windows': '.uno:WindowList', 'help': '.uno:HelpMenu', } +MENUS_WRITER = { + 'file': '.uno:PickList', + 'edit': '.uno:EditMenu', + 'view': '.uno:ViewMenu', + 'insert': '.uno:InsertMenu', + 'format': '.uno:FormatMenu', + 'styles': '.uno:FormatStylesMenu', + 'sheet': '.uno:TableMenu', + 'data': '.uno:FormatFormMenu', + 'tools': '.uno:ToolsMenu', + 'windows': '.uno:WindowList', + 'help': '.uno:HelpMenu', +} MENUS_APP = { 'calc': MENUS_CALC, + 'writer': MENUS_WRITER, } -FILE_NAME_DEBUG = 'zaz-debug.log' -FILE_NAME_CONFIG = 'zaz-config.json' +EXT = { + 'pdf': 'pdf', +} + + +FILE_NAME_DEBUG = 'debug.odt' +FILE_NAME_CONFIG = 'zaz-{}.json' LOG_FORMAT = '%(asctime)s - %(levelname)s - %(message)s' LOG_DATE = '%d/%m/%Y %H:%M:%S' logging.addLevelName(logging.ERROR, '\033[1;41mERROR\033[1;0m') @@ -130,10 +171,16 @@ logging.basicConfig(level=logging.DEBUG, format=LOG_FORMAT, datefmt=LOG_DATE) log = logging.getLogger(__name__) +_start = 0 +_stop_thread = {} +TIMEOUT = 10 + + CTX = uno.getComponentContext() SM = CTX.getServiceManager() +# ~ Export ok def create_instance(name, with_context=False): if with_context: instance = SM.createInstanceWithContext(name, CTX) @@ -163,6 +210,7 @@ NAME = TITLE = _get_app_config('ooName', 'org.openoffice.Setup/Product') VERSION = _get_app_config('ooSetupVersion', 'org.openoffice.Setup/Product') +# ~ Export ok def mri(obj): m = create_instance('mytools.Mri') if m is None: @@ -180,7 +228,10 @@ def catch_exception(f): try: return f(*args, **kwargs) except Exception as e: - log.error(f.__name__, exc_info=True) + name = f.__name__ + if IS_WIN: + debug(traceback.format_exc()) + log.error(name, exc_info=True) return func @@ -188,30 +239,30 @@ class LogWin(object): def __init__(self, doc): self.doc = doc + self.doc.Title = FILE_NAME_DEBUG def write(self, info): text = self.doc.Text cursor = text.createTextCursor() cursor.gotoEnd(False) - text.insertString(cursor, str(info), 0) + text.insertString(cursor, str(info) + '\n\n', 0) return +# ~ Export ok def info(data): log.info(data) return +# ~ Export ok def debug(info): if IS_WIN: - # ~ app = LOApp(self.ctx, self.sm, self.desktop, self.toolkit) - # ~ doc = app.getDoc(FILE_NAME_DEBUG) - # ~ if not doc: - # ~ doc = app.newDoc(WRITER) - # ~ out = OutputDoc(doc) - # ~ sys.stdout = out - # ~ pprint(info) - doc = LogWin(new_doc('writer').obj) + doc = get_document(FILE_NAME_DEBUG) + if doc is None: + # ~ doc = new_doc('writer') + return + doc = LogWin(doc.obj) doc.write(info) return @@ -219,14 +270,16 @@ def debug(info): return +# ~ Export ok def error(info): log.error(info) return +# ~ Export ok def save_log(path, data): with open(path, 'a') as out: - out.write('{} -{}- '.format(str(datetime.now())[:19], LOG_NAME)) + out.write('{} -{}- '.format(str(now())[:19], LOG_NAME)) pprint(data, stream=out) return @@ -239,32 +292,40 @@ def run_in_thread(fn): return run -def get_config(key=''): - values = {} - path = join(get_config_path('UserConfig'), FILE_NAME_CONFIG) +def now(): + return datetime.datetime.now() + + +# ~ Export ok +def get_config(key='', default=None, prefix='config'): + path_json = FILE_NAME_CONFIG.format(prefix) + values = None + path = join(get_config_path('UserConfig'), path_json) if not exists_path(path): - return values + return default with open(path, 'r', encoding='utf-8') as fh: data = fh.read() - if data: - values = json.loads(data) + values = json.loads(data) if key: - return values.get(key, None) + return values.get(key, default) return values -def set_config(key, value): - path = join(get_config_path('UserConfig'), FILE_NAME_CONFIG) - values = get_config() +# ~ Export ok +def set_config(key, value, prefix='config'): + path_json = FILE_NAME_CONFIG.format(prefix) + path = join(get_config_path('UserConfig'), path_json) + values = get_config(default={}, prefix=prefix) values[key] = value with open(path, 'w', encoding='utf-8') as fh: json.dump(values, fh, ensure_ascii=False, sort_keys=True, indent=4) - return True + return +# ~ Export ok def sleep(seconds): time.sleep(seconds) return @@ -281,6 +342,7 @@ def _(msg): return MSG_LANG[L][msg] +# ~ Export ok def msgbox(message, title=TITLE, buttons=MSG_BUTTONS.BUTTONS_OK, type_msg='infobox'): """ Create message box type_msg: infobox, warningbox, errorbox, querybox, messbox @@ -292,15 +354,18 @@ def msgbox(message, title=TITLE, buttons=MSG_BUTTONS.BUTTONS_OK, type_msg='infob return mb.execute() +# ~ Export ok def question(message, title=TITLE): res = msgbox(message, title, MSG_BUTTONS.BUTTONS_YES_NO, 'querybox') return res == YES +# ~ Export ok def warning(message, title=TITLE): return msgbox(message, title, type_msg='warningbox') +# ~ Export ok def errorbox(message, title=TITLE): return msgbox(message, title, type_msg='errorbox') @@ -309,10 +374,20 @@ def get_desktop(): return create_instance('com.sun.star.frame.Desktop', True) +# ~ Export ok def get_dispatch(): return create_instance('com.sun.star.frame.DispatchHelper') +# ~ Export ok +def call_dispatch(url, args=()): + frame = get_document().frame + dispatch = get_dispatch() + dispatch.executeDispatch(frame, url, '', 0, args) + return + + +# ~ Export ok def get_temp_file(): delete = True if IS_WIN: @@ -332,6 +407,7 @@ def _path_system(path): return path +# ~ Export ok def exists_app(name): try: dn = subprocess.DEVNULL @@ -341,33 +417,20 @@ def exists_app(name): return False return True -# ~ Delete -def exists(path): - return Path(path).exists() + +# ~ Export ok def exists_path(path): return Path(path).exists() +# ~ Export ok def get_type_doc(obj): - # ~ services = { - # ~ 'calc': 'com.sun.star.sheet.SpreadsheetDocument', - # ~ 'writer': 'com.sun.star.text.TextDocument', - # ~ 'impress': 'com.sun.star.presentation.PresentationDocument', - # ~ 'draw': 'com.sun.star.drawing.DrawingDocument', - # ~ 'base': 'com.sun.star.sdb.OfficeDatabaseDocument', - # ~ 'math': 'com.sun.star.formula.FormulaProperties', - # ~ 'basic': 'com.sun.star.script.BasicIDE', - # ~ } for k, v in TYPE_DOC.items(): if obj.supportsService(v): return k return '' -# ~ def _properties(values): - # ~ p = [PropertyValue(Name=n, Value=v) for n, v in values.items()] - # ~ return tuple(p) - def dict_to_property(values, uno_any=False): ps = tuple([PropertyValue(Name=n, Value=v) for n, v in values.items()]) if uno_any: @@ -380,82 +443,12 @@ def property_to_dict(values): return d -# ~ Third classes - - -# ~ https://github.com/psf/requests/blob/v2.22.0/requests/structures.py -class CaseInsensitiveDict(MutableMapping): - """A case-insensitive ``dict``-like object. - Implements all methods and operations of - ``MutableMapping`` as well as dict's ``copy``. Also - provides ``lower_items``. - All keys are expected to be strings. The structure remembers the - case of the last key to be set, and ``iter(instance)``, - ``keys()``, ``items()``, ``iterkeys()``, and ``iteritems()`` - will contain case-sensitive keys. However, querying and contains - testing is case insensitive:: - cid = CaseInsensitiveDict() - cid['Accept'] = 'application/json' - cid['aCCEPT'] == 'application/json' # True - list(cid) == ['Accept'] # True - For example, ``headers['content-encoding']`` will return the - value of a ``'Content-Encoding'`` response header, regardless - of how the header name was originally stored. - If the constructor, ``.update``, or equality comparison - operations are given keys that have equal ``.lower()``s, the - behavior is undefined. - """ - - def __init__(self, data=None, **kwargs): - self._store = OrderedDict() - if data is None: - data = {} - self.update(data, **kwargs) - - def __setitem__(self, key, value): - # Use the lowercased key for lookups, but store the actual - # key alongside the value. - self._store[key.lower()] = (key, value) - - def __getitem__(self, key): - return self._store[key.lower()][1] - - def __delitem__(self, key): - del self._store[key.lower()] - - def __iter__(self): - return (casedkey for casedkey, mappedvalue in self._store.values()) - - def __len__(self): - return len(self._store) - - def lower_items(self): - """Like iteritems(), but with all lowercase keys.""" - return ( - (lowerkey, keyval[1]) - for (lowerkey, keyval) - in self._store.items() - ) - - def __eq__(self, other): - if isinstance(other, Mapping): - other = CaseInsensitiveDict(other) - else: - return NotImplemented - # Compare insensitively - return dict(self.lower_items()) == dict(other.lower_items()) - - # Copy is required - def copy(self): - return CaseInsensitiveDict(self._store.values()) - - def __repr__(self): - return str(dict(self.items())) +def array_to_dict(values): + d = {r[0]: r[1] for r in values} + return d # ~ Custom classes - - class LODocument(object): def __init__(self, obj): @@ -464,7 +457,10 @@ class LODocument(object): def _init_values(self): self._type_doc = get_type_doc(self.obj) - self._cc = self.obj.getCurrentController() + if self._type_doc == 'base': + self._cc = self.obj.DatabaseDocument.getCurrentController() + else: + self._cc = self.obj.getCurrentController() return @property @@ -499,6 +495,10 @@ class LODocument(object): def path(self): return _path_system(self.obj.getURL()) + @property + def statusbar(self): + return self._cc.getStatusIndicator() + @property def visible(self): w = self._cc.getFrame().getContainerWindow() @@ -543,6 +543,30 @@ class LODocument(object): self._cc.insertTransferable(transferable) return self.obj.getCurrentSelection() + def to_pdf(self, path, **kwargs): + path_pdf = path + if path: + if is_dir(path): + _, _, n, _ = get_info_path(self.path) + path_pdf = join(path, '{}.{}'.format(n, EXT['pdf'])) + else: + path_pdf = replace_ext(self.path, EXT['pdf']) + + filter_name = '{}_pdf_Export'.format(self.type) + filter_data = dict_to_property(kwargs, True) + args = { + 'FilterName': filter_name, + 'FilterData': filter_data, + } + args = dict_to_property(args) + try: + self.obj.storeToURL(_path_url(path_pdf), args) + except Exception as e: + error(e) + path_pdf = '' + + return path_pdf + class LOCalc(LODocument): @@ -693,7 +717,6 @@ class LODrawImpress(LODocument): def draw_page(self): return self._cc.getCurrentPage() - @catch_exception def insert_image(self, path, **kwargs): w = kwargs.get('width', 3000) h = kwargs.get('Height', 1000) @@ -913,6 +936,34 @@ class EventsMouse(EventsListenerBase, XMouseListener): pass +class EventsMouseGrid(EventsMouse): + selected = False + + def mousePressed(self, event): + super().mousePressed(event) + # ~ obj = event.Source + # ~ col = obj.getColumnAtPoint(event.X, event.Y) + # ~ row = obj.getRowAtPoint(event.X, event.Y) + # ~ print(col, row) + # ~ if col == -1 and row == -1: + # ~ if self.selected: + # ~ obj.deselectAllRows() + # ~ else: + # ~ obj.selectAllRows() + # ~ self.selected = not self.selected + return + + def mouseReleased(self, event): + obj = event.Source + col = obj.getColumnAtPoint(event.X, event.Y) + row = obj.getRowAtPoint(event.X, event.Y) + if row == -1 and col > -1: + gdm = obj.Model.GridDataModel + for i in range(gdm.RowCount): + gdm.updateRowHeading(i, i + 1) + return + + class UnoBaseObject(object): def __init__(self, obj): @@ -1020,6 +1071,10 @@ class UnoLabel(UnoBaseObject): def __init__(self, obj): super().__init__(obj) + @property + def type(self): + return 'label' + @property def value(self): return self.model.Label @@ -1032,16 +1087,10 @@ class UnoButton(UnoBaseObject): def __init__(self, obj): super().__init__(obj) - # ~ self._set_icon() - def _set_icon(self): - icon_name = self.tag.strip() - if icon_name: - path_icon = _file_url('{}/img/{}'.format(CURRENT_PATH, icon_name)) - self._model.ImageURL = path_icon - if self.value: - self._model.ImageAlign = 0 - return + @property + def type(self): + return 'button' @property def value(self): @@ -1056,6 +1105,10 @@ class UnoText(UnoBaseObject): def __init__(self, obj): super().__init__(obj) + @property + def type(self): + return 'text' + @property def value(self): return self.model.Text @@ -1074,6 +1127,10 @@ class UnoListBox(UnoBaseObject): super().__init__(obj) self._data = [] + @property + def type(self): + return 'listbox' + @property def value(self): return self.obj.SelectedItem @@ -1088,6 +1145,118 @@ class UnoListBox(UnoBaseObject): return +class UnoGrid(UnoBaseObject): + + def __init__(self, obj): + super().__init__(obj) + self._gdm = self._model.GridDataModel + # ~ self._data = [] + self._columns = {} + # ~ self._format_columns = () + + def __getitem__(self, index): + value = self._gdm.getCellData(index[0], index[1]) + return value + + @property + def type(self): + return 'grid' + + def _format_cols(self): + rows = tuple(tuple( + self._format_columns[i].format(r) for i, r in enumerate(row)) for row in self._data + ) + return rows + + # ~ @property + # ~ def format_columns(self): + # ~ return self._format_columns + # ~ @format_columns.setter + # ~ def format_columns(self, value): + # ~ self._format_columns = value + + @property + def data(self): + return self._data + @data.setter + def data(self, values): + # ~ self._data = values + self._gdm.removeAllRows() + headings = tuple(range(1, len(values) + 1)) + self._gdm.addRows(headings, values) + + # ~ rows = range(grid_dm.RowCount) + # ~ colors = [COLORS['GRAY'] if r % 2 else COLORS['WHITE'] for r in rows] + # ~ grid.Model.RowBackgroundColors = tuple(colors) + return + + @property + def row(self): + return self.obj.CurrentRow + + @property + def rows(self): + return self._gdm.RowCount + + @property + def column(self): + return self.obj.CurrentColumn + + @property + def columns(self): + return self._gdm.ColumnCount + + def set_cell_tooltip(self, col, row, value): + self._gdm.updateCellToolTip(col, row, value) + return + + def get_cell_tooltip(self, col, row): + value = self._gdm.getCellToolTip(col, row) + return value + + def _validate_column(self, data): + row = [] + for i, d in enumerate(data): + if i in self._columns: + if 'image' in self._columns[i]: + row.append(self._columns[i]['image']) + else: + row.append(d) + return tuple(row) + + def add_row(self, data): + # ~ self._data.append(data) + data = self._validate_column(data) + self._gdm.addRow(self.rows + 1, data) + return + + def remove_row(self, row): + self._gdm.removeRow(row) + # ~ del self._data[row] + self._update_row_heading() + return + + def _update_row_heading(self): + for i in range(self.rows): + self._gdm.updateRowHeading(i, i + 1) + return + + def sort(self, column, asc=True): + self._gdm.sortByColumn(column, asc) + # ~ self._data.sort(key=itemgetter(column), reverse=not asc) + self._update_row_heading() + return + + def set_column_image(self, column, path): + gp = create_instance('com.sun.star.graphic.GraphicProvider') + data = dict_to_property({'URL': _path_url(path)}) + image = gp.queryGraphic(data) + if not column in self._columns: + self._columns[column] = {} + self._columns[column]['image'] = image + return + + class LODialog(object): def __init__(self, properties): @@ -1160,6 +1329,9 @@ class LODialog(object): } for key, value in listeners.items(): if hasattr(control.obj, key): + if control.type == 'grid' and key == 'addMouseListener': + control.obj.addMouseListener(EventsMouseGrid(self.events)) + continue getattr(control.obj, key)(listeners[key](self.events)) return @@ -1191,6 +1363,7 @@ class LODialog(object): 'button': UnoButton, 'text': UnoText, 'listbox': UnoListBox, + 'grid': UnoGrid, # ~ 'link': UnoLink, # ~ 'tab': UnoTab, # ~ 'roadmap': UnoRoadmap, @@ -1198,13 +1371,35 @@ class LODialog(object): # ~ 'radio': UnoRadio, # ~ 'groupbox': UnoGroupBox, # ~ 'tree': UnoTree, - # ~ 'grid': UnoGrid, } return classes[tipo](obj) - @catch_exception + def _set_column_model(self, columns): + #~ https://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1awt_1_1grid_1_1XGridColumn.html + column_model = create_instance('com.sun.star.awt.grid.DefaultGridColumnModel', True) + # ~ column_model.setDefaultColumns(len(columns)) + for column in columns: + grid_column = create_instance('com.sun.star.awt.grid.GridColumn', True) + for k, v in column.items(): + setattr(grid_column, k, v) + column_model.addColumn(grid_column) + # ~ mri(grid_column) + return column_model + + def _set_image_url(self, path): + if exists_path(path): + return _path_url(path) + return '' + def add_control(self, properties): tipo = properties.pop('Type').lower() + + columns = properties.pop('Columns', ()) + if tipo == 'grid': + properties['ColumnModel'] = self._set_column_model(columns) + if tipo == 'button' and 'ImageURL' in properties: + properties['ImageURL'] = self._set_image_url(properties['ImageURL']) + model = self.model.createInstance(self._get_control_model(tipo)) set_properties(model, properties) name = properties['Name'] @@ -1233,14 +1428,35 @@ def _get_class_doc(obj): return classes[type_doc](obj) -def get_document(): +# ~ Export ok +def get_document(title=''): doc = None desktop = get_desktop() - try: + if not title: doc = _get_class_doc(desktop.getCurrentComponent()) - except Exception as e: - log.error(e) - return doc + return doc + + for d in desktop.getComponents(): + if d.Title == title: + doc = d + break + + if doc is None: + return + + return _get_class_doc(doc) + + +# ~ Export ok +def get_documents(custom=True): + docs = [] + desktop = get_desktop() + for doc in desktop.getComponents(): + if custom: + docs.append(_get_class_doc(doc)) + else: + docs.append(doc) + return docs def get_selection(): @@ -1277,6 +1493,7 @@ def set_properties(model, properties): return +# ~ Export ok def get_config_path(name='Work'): """ Return de path name in config @@ -1286,6 +1503,7 @@ def get_config_path(name='Work'): return _path_system(getattr(path, name)) +# ~ Export ok def get_file(init_dir='', multiple=False, filters=()): """ init_folder: folder default open @@ -1298,31 +1516,115 @@ def get_file(init_dir='', multiple=False, filters=()): """ if not init_dir: init_dir = get_config_path() + init_dir = _path_url(init_dir) file_picker = create_instance('com.sun.star.ui.dialogs.FilePicker') file_picker.setTitle(_('Select file')) file_picker.setDisplayDirectory(init_dir) file_picker.setMultiSelectionMode(multiple) + path = '' if filters: file_picker.setCurrentFilter(filters[0][0]) for f in filters: file_picker.appendFilter(f[0], f[1]) if file_picker.execute(): + path = _path_system(file_picker.getSelectedFiles()[0]) if multiple: - return [_path_system(f) for f in file_picker.getSelectedFiles()] - return _path_system(file_picker.getSelectedFiles()[0]) + path = [_path_system(f) for f in file_picker.getSelectedFiles()] - return '' + return path +# ~ Export ok +def get_path(init_dir='', filters=()): + """ + Options: http://api.libreoffice.org/docs/idl/ref/namespacecom_1_1sun_1_1star_1_1ui_1_1dialogs_1_1TemplateDescription.html + filters: Example + ( + ('XML', '*.xml'), + ('TXT', '*.txt'), + ) + """ + if not init_dir: + init_dir = get_config_path() + init_dir = _path_url(init_dir) + file_picker = create_instance('com.sun.star.ui.dialogs.FilePicker') + file_picker.setTitle(_('Select file')) + file_picker.setDisplayDirectory(init_dir) + file_picker.initialize((2,)) + if filters: + file_picker.setCurrentFilter(filters[0][0]) + for f in filters: + file_picker.appendFilter(f[0], f[1]) + + path = '' + if file_picker.execute(): + path = _path_system(file_picker.getSelectedFiles()[0]) + return path + + +# ~ Export ok +def get_dir(init_dir=''): + folder_picker = create_instance('com.sun.star.ui.dialogs.FolderPicker') + if not init_dir: + init_dir = get_config_path() + init_dir = _path_url(init_dir) + folder_picker.setDisplayDirectory(init_dir) + + path = '' + if folder_picker.execute(): + path = _path_system(folder_picker.getDirectory()) + return path + + +# ~ Export ok def get_info_path(path): path, filename = os.path.split(path) name, extension = os.path.splitext(filename) return (path, filename, name, extension) -def inputbox(message, default='', title=TITLE): +# ~ Export ok +def read_file(path, mode='r', array=False): + data = '' + with open(path, mode) as f: + if array: + data = tuple(f.read().splitlines()) + else: + data = f.read() + return data + + +# ~ Export ok +def save_file(path, mode='w', data=None): + with open(path, mode) as f: + f.write(data) + return + + +# ~ Export ok +def to_json(path, data): + with open(path, 'w') as f: + f.write(json.dumps(data, indent=4, sort_keys=True)) + return + + +# ~ Export ok +def from_json(path): + with open(path) as f: + data = json.loads(f.read()) + return data + + +def get_path_extension(id): + pip = CTX.getValueByName('/singletons/com.sun.star.deployment.PackageInformationProvider') + path = _path_system(pip.getPackageLocation(id)) + return path + + +# ~ Export ok +def inputbox(message, default='', title=TITLE, echochar=''): class ControllersInput(object): @@ -1361,6 +1663,8 @@ def inputbox(message, default='', title=TITLE): 'Width': 190, 'Height': 15, } + if echochar: + args['EchoChar'] = ord(echochar[0]) dlg.add_control(args) dlg.txt_value.move(dlg.lbl_msg) @@ -1393,12 +1697,24 @@ def inputbox(message, default='', title=TITLE): return '' -def new_doc(type_doc=CALC): +# ~ Export ok +def new_doc(type_doc=CALC, **kwargs): path = 'private:factory/s{}'.format(type_doc) - doc = get_desktop().loadComponentFromURL(path, '_default', 0, ()) + opt = dict_to_property(kwargs) + doc = get_desktop().loadComponentFromURL(path, '_default', 0, opt) return _get_class_doc(doc) +# ~ Export ok +def new_db(path): + dbc = create_instance('com.sun.star.sdb.DatabaseContext') + db = dbc.createInstance() + db.URL = 'sdbc:embedded:firebird' # hsqldb + db.DatabaseDocument.storeAsURL(_path_url(path), ()) + return _get_class_doc(db) + + +# ~ Export ok def open_doc(path, **kwargs): """ Open document in path Usually options: @@ -1413,7 +1729,6 @@ def open_doc(path, **kwargs): http://api.libreoffice.org/docs/idl/ref/servicecom_1_1sun_1_1star_1_1document_1_1MediaDescriptor.html """ path = _path_url(path) - # ~ opt = _properties(kwargs) opt = dict_to_property(kwargs) doc = get_desktop().loadComponentFromURL(path, '_blank', 0, opt) if doc is None: @@ -1422,6 +1737,7 @@ def open_doc(path, **kwargs): return _get_class_doc(doc) +# ~ Export ok def open_file(path): if IS_WIN: os.startfile(path) @@ -1430,37 +1746,45 @@ def open_file(path): return +# ~ Export ok def join(*paths): return os.path.join(*paths) +# ~ Export ok def is_dir(path): return Path(path).is_dir() +# ~ Export ok def is_file(path): return Path(path).is_file() +# ~ Export ok def get_file_size(path): return Path(path).stat().st_size +# ~ Export ok def is_created(path): return is_file(path) and bool(get_file_size(path)) +# ~ Export ok def replace_ext(path, extension): path, _, name, _ = get_info_path(path) return '{}/{}.{}'.format(path, name, extension) -def zip_names(path): +# ~ Export ok +def zip_content(path): with zipfile.ZipFile(path) as z: names = z.namelist() return names +# ~ Export ok def run(command, wait=False): # ~ debug(command) # ~ debug(shlex.split(command)) @@ -1515,6 +1839,7 @@ def _zippwd(source, target, pwd): return is_created(target) +# ~ Export ok def zip(source, target='', mode='w', pwd=''): if pwd: return _zippwd(source, target, pwd) @@ -1556,6 +1881,7 @@ def zip(source, target='', mode='w', pwd=''): return is_created(target) +# ~ Export ok def unzip(source, path='', members=None, pwd=None): if not path: path, _, _, _ = get_info_path(source) @@ -1568,6 +1894,7 @@ def unzip(source, path='', members=None, pwd=None): return True +# ~ Export ok def merge_zip(target, zips): try: with zipfile.ZipFile(target, 'w', compression=zipfile.ZIP_DEFLATED) as t: @@ -1582,18 +1909,20 @@ def merge_zip(target, zips): return True +# ~ Export ok def kill(path): p = Path(path) - if p.is_file(): - try: + try: + if p.is_file(): p.unlink() - except: - pass - elif p.is_dir(): - p.rmdir() + elif p.is_dir(): + shutil.rmtree(path) + except OSError as e: + log.error(e) return +# ~ Export ok def get_size_screen(): if IS_WIN: user32 = ctypes.windll.user32 @@ -1604,6 +1933,7 @@ def get_size_screen(): return res.strip() +# ~ Export ok def get_clipboard(): df = None text = '' @@ -1649,6 +1979,7 @@ class TextTransferable(unohelper.Base, XTransferable): return False +# ~ Export ok def set_clipboard(value): ts = TextTransferable(value) sc = create_instance('com.sun.star.datatransfer.clipboard.SystemClipboard') @@ -1656,40 +1987,38 @@ def set_clipboard(value): return -def copy(doc=None): - if doc is None: - doc = get_document() - if hasattr(doc, 'frame'): - frame = doc.frame - else: - frame = doc.getCurrentController().getFrame() - dispatch = get_dispatch() - dispatch.executeDispatch(frame, '.uno:Copy', '', 0, ()) +# ~ Todo +def copy(): + call_dispatch('.uno:Copy') return +# ~ Export ok def get_epoch(): - now = datetime.datetime.now() - return int(time.mktime(now.timetuple())) + n = now() + return int(time.mktime(n.timetuple())) +# ~ Export ok def file_copy(source, target='', name=''): p, f, n, e = get_info_path(source) if target: p = target if name: + e = '' n = name path_new = join(p, '{}{}'.format(n, e)) shutil.copy(source, path_new) - return + return path_new -def get_files(path, ext='*'): - docs = [] +# ~ Export ok +def get_path_content(path, filters='*'): + paths = [] for folder, _, files in os.walk(path): - pattern = re.compile(r'\.{}'.format(ext), re.IGNORECASE) - docs += [join(folder, f) for f in files if pattern.search(f)] - return docs + pattern = re.compile(r'\.(?:{})$'.format(filters), re.IGNORECASE) + paths += [join(folder, f) for f in files if pattern.search(f)] + return paths def _get_menu(type_doc, name_menu): @@ -1739,7 +2068,7 @@ def insert_menu(type_doc, name_menu, **kwargs): separator = False if label == '-': separator = True - command = kwargs.get('Command', '') + command = kwargs.get('CommandURL', '') index = kwargs.get('Index', 0) if not index: index = _get_index_menu(menu, kwargs['After']) @@ -1779,6 +2108,8 @@ def _add_sub_menus(ui, menus, menu, sub_menu): if submenu: idc = ui.createSettings() sm['ItemDescriptorContainer'] = idc + if sm['Label'] == '-': + sm = {'Type': 1} _store_menu(ui, menus, menu, i - 1, sm) if submenu: _add_sub_menus(ui, menus, idc, submenu) @@ -1799,6 +2130,488 @@ def remove_menu(type_doc, name_menu, command): return True +def _get_app_submenus(menus, count=0): + for i, menu in enumerate(menus): + data = property_to_dict(menu) + cmd = data.get('CommandURL', '') + msg = ' ' * count + '├─' + cmd + debug(msg) + submenu = data.get('ItemDescriptorContainer', None) + if not submenu is None: + _get_app_submenus(submenu, count + 1) + return + + +def get_app_menus(name_app, index=-1): + instance = 'com.sun.star.ui.ModuleUIConfigurationManagerSupplier' + service = TYPE_DOC[name_app] + manager = create_instance(instance, True) + ui = manager.getUIConfigurationManager(service) + menus = ui.getSettings(NODE_MENUBAR, True) + if index == -1: + for menu in menus: + data = property_to_dict(menu) + debug(data.get('CommandURL', '')) + else: + menus = property_to_dict(menus[index])['ItemDescriptorContainer'] + _get_app_submenus(menus) + return menus + + +# ~ Export ok +def start(): + global _start + _start = now() + log.info(_start) + return + + +# ~ Export ok +def end(): + global _start + e = now() + return str(e - _start).split('.')[0] + + +# ~ Export ok +# ~ https://en.wikipedia.org/wiki/Web_colors +def get_color(value): + COLORS = { + 'aliceblue': 15792383, + 'antiquewhite': 16444375, + 'aqua': 65535, + 'aquamarine': 8388564, + 'azure': 15794175, + 'beige': 16119260, + 'bisque': 16770244, + 'black': 0, + 'blanchedalmond': 16772045, + 'blue': 255, + 'blueviolet': 9055202, + 'brown': 10824234, + 'burlywood': 14596231, + 'cadetblue': 6266528, + 'chartreuse': 8388352, + 'chocolate': 13789470, + 'coral': 16744272, + 'cornflowerblue': 6591981, + 'cornsilk': 16775388, + 'crimson': 14423100, + 'cyan': 65535, + 'darkblue': 139, + 'darkcyan': 35723, + 'darkgoldenrod': 12092939, + 'darkgray': 11119017, + 'darkgreen': 25600, + 'darkgrey': 11119017, + 'darkkhaki': 12433259, + 'darkmagenta': 9109643, + 'darkolivegreen': 5597999, + 'darkorange': 16747520, + 'darkorchid': 10040012, + 'darkred': 9109504, + 'darksalmon': 15308410, + 'darkseagreen': 9419919, + 'darkslateblue': 4734347, + 'darkslategray': 3100495, + 'darkslategrey': 3100495, + 'darkturquoise': 52945, + 'darkviolet': 9699539, + 'deeppink': 16716947, + 'deepskyblue': 49151, + 'dimgray': 6908265, + 'dimgrey': 6908265, + 'dodgerblue': 2003199, + 'firebrick': 11674146, + 'floralwhite': 16775920, + 'forestgreen': 2263842, + 'fuchsia': 16711935, + 'gainsboro': 14474460, + 'ghostwhite': 16316671, + 'gold': 16766720, + 'goldenrod': 14329120, + 'gray': 8421504, + 'grey': 8421504, + 'green': 32768, + 'greenyellow': 11403055, + 'honeydew': 15794160, + 'hotpink': 16738740, + 'indianred': 13458524, + 'indigo': 4915330, + 'ivory': 16777200, + 'khaki': 15787660, + 'lavender': 15132410, + 'lavenderblush': 16773365, + 'lawngreen': 8190976, + 'lemonchiffon': 16775885, + 'lightblue': 11393254, + 'lightcoral': 15761536, + 'lightcyan': 14745599, + 'lightgoldenrodyellow': 16448210, + 'lightgray': 13882323, + 'lightgreen': 9498256, + 'lightgrey': 13882323, + 'lightpink': 16758465, + 'lightsalmon': 16752762, + 'lightseagreen': 2142890, + 'lightskyblue': 8900346, + 'lightslategray': 7833753, + 'lightslategrey': 7833753, + 'lightsteelblue': 11584734, + 'lightyellow': 16777184, + 'lime': 65280, + 'limegreen': 3329330, + 'linen': 16445670, + 'magenta': 16711935, + 'maroon': 8388608, + 'mediumaquamarine': 6737322, + 'mediumblue': 205, + 'mediumorchid': 12211667, + 'mediumpurple': 9662683, + 'mediumseagreen': 3978097, + 'mediumslateblue': 8087790, + 'mediumspringgreen': 64154, + 'mediumturquoise': 4772300, + 'mediumvioletred': 13047173, + 'midnightblue': 1644912, + 'mintcream': 16121850, + 'mistyrose': 16770273, + 'moccasin': 16770229, + 'navajowhite': 16768685, + 'navy': 128, + 'oldlace': 16643558, + 'olive': 8421376, + 'olivedrab': 7048739, + 'orange': 16753920, + 'orangered': 16729344, + 'orchid': 14315734, + 'palegoldenrod': 15657130, + 'palegreen': 10025880, + 'paleturquoise': 11529966, + 'palevioletred': 14381203, + 'papayawhip': 16773077, + 'peachpuff': 16767673, + 'peru': 13468991, + 'pink': 16761035, + 'plum': 14524637, + 'powderblue': 11591910, + 'purple': 8388736, + 'red': 16711680, + 'rosybrown': 12357519, + 'royalblue': 4286945, + 'saddlebrown': 9127187, + 'salmon': 16416882, + 'sandybrown': 16032864, + 'seagreen': 3050327, + 'seashell': 16774638, + 'sienna': 10506797, + 'silver': 12632256, + 'skyblue': 8900331, + 'slateblue': 6970061, + 'slategray': 7372944, + 'slategrey': 7372944, + 'snow': 16775930, + 'springgreen': 65407, + 'steelblue': 4620980, + 'tan': 13808780, + 'teal': 32896, + 'thistle': 14204888, + 'tomato': 16737095, + 'turquoise': 4251856, + 'violet': 15631086, + 'wheat': 16113331, + 'white': 16777215, + 'whitesmoke': 16119285, + 'yellow': 16776960, + 'yellowgreen': 10145074, + } + + if isinstance(value, tuple): + return (value[0] << 16) + (value[1] << 8) + value[2] + + if isinstance(value, str) and value[0] == '#': + r, g, b = bytes.fromhex(value[1:]) + return (r << 16) + (g << 8) + b + + return COLORS.get(value.lower(), -1) + + +# ~ Export ok +def render(template, data): + s = Template(template) + return s.safe_substitute(**data) + + +def _to_date(value): + new_value = value + if isinstance(value, Time): + new_value = datetime.time(value.Hours, value.Minutes, value.Seconds) + elif isinstance(value, Date): + new_value = datetime.date(value.Year, value.Month, value.Day) + elif isinstance(value, DateTime): + new_value = datetime.datetime( + value.Year, value.Month, value.Day, + value.Hours, value.Minutes, value.Seconds) + return new_value + + +# ~ Export ok +def format(template, data): + """ + https://pyformat.info/ + """ + if isinstance(data, (str, int, float)): + # ~ print(template.format(data)) + return template.format(data) + + if isinstance(data, (Time, Date, DateTime)): + return template.format(_to_date(data)) + + if isinstance(data, tuple) and isinstance(data[0], tuple): + data = {r[0]: _to_date(r[1]) for r in data} + return template.format(**data) + + data = [_to_date(v) for v in data] + result = template.format(*data) + return result + + +def _call_macro(macro): + #~ https://wiki.openoffice.org/wiki/Documentation/DevGuide/Scripting/Scripting_Framework_URI_Specification + name = 'com.sun.star.script.provider.MasterScriptProviderFactory' + factory = create_instance(name, False) + + data = macro.copy() + if macro['language'] == 'Python': + data['module'] = '.py$' + elif macro['language'] == 'Basic': + data['module'] = '.{}.'.format(macro['module']) + if macro['location'] == 'user': + data['location'] = 'application' + else: + data['module'] = '.' + + args = macro.get('args', ()) + url = 'vnd.sun.star.script:{library}{module}{name}?language={language}&location={location}' + path = url.format(**data) + script = factory.createScriptProvider('').getScript(path) + return script.invoke(args, None, None)[0] + + +# ~ Export ok +def call_macro(macro): + in_thread = macro.pop('thread') + if in_thread: + t = threading.Thread(target=_call_macro, args=(macro,)) + t.start() + return + + return _call_macro(macro) + + +class TimerThread(threading.Thread): + + def __init__(self, event, seconds, macro): + threading.Thread.__init__(self) + self.stopped = event + self.seconds = seconds + self.macro = macro + + def run(self): + info('Timer started... {}'.format(self.macro['name'])) + while not self.stopped.wait(self.seconds): + _call_macro(self.macro) + info('Timer stopped... {}'.format(self.macro['name'])) + return + + +# ~ Export ok +def timer(name, seconds, macro): + global _stop_thread + _stop_thread[name] = threading.Event() + thread = TimerThread(_stop_thread[name], seconds, macro) + thread.start() + return + + +# ~ Export ok +def stop_timer(name): + global _stop_thread + _stop_thread[name].set() + del _stop_thread[name] + return + + +def _get_key(password): + digest = hashlib.sha256(password.encode()).digest() + key = base64.urlsafe_b64encode(digest) + return key + + +# ~ Export ok +def encrypt(data, password): + f = Fernet(_get_key(password)) + token = f.encrypt(data).decode() + return token + + +# ~ Export ok +def decrypt(token, password): + data = '' + f = Fernet(_get_key(password)) + try: + data = f.decrypt(token.encode()).decode() + except InvalidToken as e: + error('Invalid Token') + return data + + +class SmtpServer(object): + + def __init__(self, config): + self._server = None + self._error = '' + self._sender = '' + self._is_connect = self._login(config) + + def __enter__(self): + return self + + def __exit__(self, *args): + self.close() + + @property + def is_connect(self): + return self._is_connect + + @property + def error(self): + return self._error + + def _login(self, config): + name = config['server'] + port = config['port'] + is_ssl = config['ssl'] + self._sender = config['user'] + hosts = ('gmail' in name or 'outlook' in name) + try: + if is_ssl and hosts: + self._server = smtplib.SMTP(name, port, timeout=TIMEOUT) + self._server.ehlo() + self._server.starttls() + self._server.ehlo() + elif is_ssl: + self._server = smtplib.SMTP_SSL(name, port, timeout=TIMEOUT) + self._server.ehlo() + else: + self._server = smtplib.SMTP(name, port, timeout=TIMEOUT) + + self._server.login(self._sender, config['pass']) + msg = 'Connect to: {}'.format(name) + debug(msg) + return True + except smtplib.SMTPAuthenticationError as e: + if '535' in str(e): + self._error = _('Incorrect user or password') + return False + if '534' in str(e) and 'gmail' in name: + self._error = _('Allow less secure apps in GMail') + return False + except smtplib.SMTPException as e: + self._error = str(e) + return False + except Exception as e: + self._error = str(e) + return False + return False + + def _body(self, msg): + body = msg.replace('\\n', '
') + return body + + def send(self, message): + file_name = 'attachment; filename={}' + email = MIMEMultipart() + email['From'] = self._sender + email['To'] = message['to'] + email['Cc'] = message.get('cc', '') + email['Subject'] = message['subject'] + email['Date'] = formatdate(localtime=True) + if message.get('confirm', False): + email['Disposition-Notification-To'] = email['From'] + email.attach(MIMEText(self._body(message['body']), 'html')) + + for path in message.get('files', ()): + _, fn, _, _ = get_info_path(path) + part = MIMEBase('application', 'octet-stream') + part.set_payload(read_file(path, 'rb')) + encoders.encode_base64(part) + part.add_header('Content-Disposition', file_name.format(fn)) + email.attach(part) + + receivers = ( + email['To'].split(',') + + email['CC'].split(',') + + message.get('bcc', '').split(',')) + try: + self._server.sendmail(self._sender, receivers, email.as_string()) + msg = 'Email sent...' + debug(msg) + if message.get('path', ''): + self.save_message(email, message['path']) + return True + except Exception as e: + self._error = str(e) + return False + return False + + def save_message(self, email, path): + mbox = mailbox.mbox(path, create=True) + mbox.lock() + try: + msg = mailbox.mboxMessage(email) + mbox.add(msg) + mbox.flush() + finally: + mbox.unlock() + return + + def close(self): + try: + self._server.quit() + msg = 'Close connection...' + debug(msg) + except: + pass + return + + +def _send_email(server, messages): + with SmtpServer(server) as server: + if server.is_connect: + for msg in messages: + server.send(msg) + else: + error(server.error) + return server.error + + +def send_email(server, message): + messages = message + if isinstance(message, dict): + messages = (message,) + t = threading.Thread(target=_send_email, args=(server, messages)) + t.start() + return + + +def server_smtp_test(config): + with SmtpServer(config) as server: + if server.error: + error(server.error) + return server.error + + # ~ name = 'com.sun.star.configuration.ConfigurationProvider' # ~ cp = create_instance(name, True) # ~ node = PropertyValue(Name='nodepath', Value=NODE_SETTING) diff --git a/files/ZAZBarCode_v0.4.0.oxt b/files/ZAZBarCode_v0.4.0.oxt new file mode 100644 index 0000000000000000000000000000000000000000..bfc2a4e7139c821f89ec718319569d3af73d9196 GIT binary patch literal 280522 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�=!)Z5 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%0DEn} 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 z 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 - + - + diff --git a/source/ZAZBarCode.py b/source/ZAZBarCode.py index 7fcb43a..5bbd349 100644 --- a/source/ZAZBarCode.py +++ b/source/ZAZBarCode.py @@ -48,11 +48,14 @@ class Controllers(object): class ZAZBarCode(unohelper.Base, XJob, XJobExecutor): + IMAGES = 'images' def __init__(self, ctx): self.ctx = ctx self._data = '' self._type = '' + self.path_ext = app.get_path_extension(ID_EXTENSION) + self.IMAGES = app.join(self.path_ext, self.IMAGES) def execute(self, args): data = app.property_to_dict(args) @@ -228,8 +231,10 @@ class ZAZBarCode(unohelper.Base, XJob, XJobExecutor): 'Type': 'Button', 'Name': 'button', 'Label': _('~Insert Barcode'), - 'Width': 60, + 'Width': 70, 'Height': 15, + 'ImageURL': app.join(self.IMAGES, 'qr.png'), + 'ImagePosition': 1, } dlg.add_control(args) diff --git a/source/description.xml b/source/description.xml index c574c9c..a917c1f 100644 --- a/source/description.xml +++ b/source/description.xml @@ -1,7 +1,7 @@ - + ZAZ Bar Code ZAZ Códigos de Barras diff --git a/source/pythonpath/easymacro.py b/source/pythonpath/easymacro.py index 8b41c24..e63299f 100644 --- a/source/pythonpath/easymacro.py +++ b/source/pythonpath/easymacro.py @@ -17,11 +17,12 @@ # ~ You should have received a copy of the GNU General Public License # ~ along with ZAZ. If not, see . - +import base64 import ctypes import datetime import errno import getpass +import hashlib import json import logging import os @@ -34,18 +35,30 @@ import sys import tempfile import threading import time +import traceback import zipfile from collections import OrderedDict from collections.abc import MutableMapping -from datetime import datetime from functools import wraps +from operator import itemgetter from pathlib import Path, PurePath from pprint import pprint +from string import Template from subprocess import PIPE +import smtplib +from smtplib import SMTPException, SMTPAuthenticationError +from email.mime.multipart import MIMEMultipart +from email.mime.base import MIMEBase +from email.mime.text import MIMEText +from email.utils import formatdate +from email import encoders +import mailbox + import uno import unohelper +from com.sun.star.util import Time, Date, DateTime from com.sun.star.beans import PropertyValue from com.sun.star.awt import MessageBoxButtons as MSG_BUTTONS from com.sun.star.awt.MessageBoxResults import YES @@ -60,12 +73,20 @@ from com.sun.star.lang import XEventListener from com.sun.star.awt import XActionListener from com.sun.star.awt import XMouseListener +try: + from fernet import Fernet, InvalidToken + CRYPTO = True +except ImportError: + CRYPTO = False + MSG_LANG = { 'es': { 'OK': 'Aceptar', 'Cancel': 'Cancelar', 'Select file': 'Seleccionar archivo', + 'Incorrect user or password': 'Nombre de usuario o contraseña inválidos', + 'Allow less secure apps in GMail': 'Activa: Permitir aplicaciones menos segura en GMail', } } @@ -94,7 +115,8 @@ TYPE_DOC = { 'writer': 'com.sun.star.text.TextDocument', 'impress': 'com.sun.star.presentation.PresentationDocument', 'draw': 'com.sun.star.drawing.DrawingDocument', - 'base': 'com.sun.star.sdb.OfficeDatabaseDocument', + # ~ 'base': 'com.sun.star.sdb.OfficeDatabaseDocument', + 'base': 'com.sun.star.sdb.DocumentDataSource', 'math': 'com.sun.star.formula.FormulaProperties', 'basic': 'com.sun.star.script.BasicIDE', } @@ -113,14 +135,33 @@ MENUS_CALC = { 'windows': '.uno:WindowList', 'help': '.uno:HelpMenu', } +MENUS_WRITER = { + 'file': '.uno:PickList', + 'edit': '.uno:EditMenu', + 'view': '.uno:ViewMenu', + 'insert': '.uno:InsertMenu', + 'format': '.uno:FormatMenu', + 'styles': '.uno:FormatStylesMenu', + 'sheet': '.uno:TableMenu', + 'data': '.uno:FormatFormMenu', + 'tools': '.uno:ToolsMenu', + 'windows': '.uno:WindowList', + 'help': '.uno:HelpMenu', +} MENUS_APP = { 'calc': MENUS_CALC, + 'writer': MENUS_WRITER, } -FILE_NAME_DEBUG = 'zaz-debug.log' -FILE_NAME_CONFIG = 'zaz-config.json' +EXT = { + 'pdf': 'pdf', +} + + +FILE_NAME_DEBUG = 'debug.odt' +FILE_NAME_CONFIG = 'zaz-{}.json' LOG_FORMAT = '%(asctime)s - %(levelname)s - %(message)s' LOG_DATE = '%d/%m/%Y %H:%M:%S' logging.addLevelName(logging.ERROR, '\033[1;41mERROR\033[1;0m') @@ -130,10 +171,16 @@ logging.basicConfig(level=logging.DEBUG, format=LOG_FORMAT, datefmt=LOG_DATE) log = logging.getLogger(__name__) +_start = 0 +_stop_thread = {} +TIMEOUT = 10 + + CTX = uno.getComponentContext() SM = CTX.getServiceManager() +# ~ Export ok def create_instance(name, with_context=False): if with_context: instance = SM.createInstanceWithContext(name, CTX) @@ -163,6 +210,7 @@ NAME = TITLE = _get_app_config('ooName', 'org.openoffice.Setup/Product') VERSION = _get_app_config('ooSetupVersion', 'org.openoffice.Setup/Product') +# ~ Export ok def mri(obj): m = create_instance('mytools.Mri') if m is None: @@ -180,7 +228,10 @@ def catch_exception(f): try: return f(*args, **kwargs) except Exception as e: - log.error(f.__name__, exc_info=True) + name = f.__name__ + if IS_WIN: + debug(traceback.format_exc()) + log.error(name, exc_info=True) return func @@ -188,30 +239,30 @@ class LogWin(object): def __init__(self, doc): self.doc = doc + self.doc.Title = FILE_NAME_DEBUG def write(self, info): text = self.doc.Text cursor = text.createTextCursor() cursor.gotoEnd(False) - text.insertString(cursor, str(info), 0) + text.insertString(cursor, str(info) + '\n\n', 0) return +# ~ Export ok def info(data): log.info(data) return +# ~ Export ok def debug(info): if IS_WIN: - # ~ app = LOApp(self.ctx, self.sm, self.desktop, self.toolkit) - # ~ doc = app.getDoc(FILE_NAME_DEBUG) - # ~ if not doc: - # ~ doc = app.newDoc(WRITER) - # ~ out = OutputDoc(doc) - # ~ sys.stdout = out - # ~ pprint(info) - doc = LogWin(new_doc('writer').obj) + doc = get_document(FILE_NAME_DEBUG) + if doc is None: + # ~ doc = new_doc('writer') + return + doc = LogWin(doc.obj) doc.write(info) return @@ -219,14 +270,16 @@ def debug(info): return +# ~ Export ok def error(info): log.error(info) return +# ~ Export ok def save_log(path, data): with open(path, 'a') as out: - out.write('{} -{}- '.format(str(datetime.now())[:19], LOG_NAME)) + out.write('{} -{}- '.format(str(now())[:19], LOG_NAME)) pprint(data, stream=out) return @@ -239,32 +292,40 @@ def run_in_thread(fn): return run -def get_config(key=''): - values = {} - path = join(get_config_path('UserConfig'), FILE_NAME_CONFIG) +def now(): + return datetime.datetime.now() + + +# ~ Export ok +def get_config(key='', default=None, prefix='config'): + path_json = FILE_NAME_CONFIG.format(prefix) + values = None + path = join(get_config_path('UserConfig'), path_json) if not exists_path(path): - return values + return default with open(path, 'r', encoding='utf-8') as fh: data = fh.read() - if data: - values = json.loads(data) + values = json.loads(data) if key: - return values.get(key, None) + return values.get(key, default) return values -def set_config(key, value): - path = join(get_config_path('UserConfig'), FILE_NAME_CONFIG) - values = get_config() +# ~ Export ok +def set_config(key, value, prefix='config'): + path_json = FILE_NAME_CONFIG.format(prefix) + path = join(get_config_path('UserConfig'), path_json) + values = get_config(default={}, prefix=prefix) values[key] = value with open(path, 'w', encoding='utf-8') as fh: json.dump(values, fh, ensure_ascii=False, sort_keys=True, indent=4) - return True + return +# ~ Export ok def sleep(seconds): time.sleep(seconds) return @@ -281,6 +342,7 @@ def _(msg): return MSG_LANG[L][msg] +# ~ Export ok def msgbox(message, title=TITLE, buttons=MSG_BUTTONS.BUTTONS_OK, type_msg='infobox'): """ Create message box type_msg: infobox, warningbox, errorbox, querybox, messbox @@ -292,15 +354,18 @@ def msgbox(message, title=TITLE, buttons=MSG_BUTTONS.BUTTONS_OK, type_msg='infob return mb.execute() +# ~ Export ok def question(message, title=TITLE): res = msgbox(message, title, MSG_BUTTONS.BUTTONS_YES_NO, 'querybox') return res == YES +# ~ Export ok def warning(message, title=TITLE): return msgbox(message, title, type_msg='warningbox') +# ~ Export ok def errorbox(message, title=TITLE): return msgbox(message, title, type_msg='errorbox') @@ -309,10 +374,20 @@ def get_desktop(): return create_instance('com.sun.star.frame.Desktop', True) +# ~ Export ok def get_dispatch(): return create_instance('com.sun.star.frame.DispatchHelper') +# ~ Export ok +def call_dispatch(url, args=()): + frame = get_document().frame + dispatch = get_dispatch() + dispatch.executeDispatch(frame, url, '', 0, args) + return + + +# ~ Export ok def get_temp_file(): delete = True if IS_WIN: @@ -332,6 +407,7 @@ def _path_system(path): return path +# ~ Export ok def exists_app(name): try: dn = subprocess.DEVNULL @@ -341,33 +417,20 @@ def exists_app(name): return False return True -# ~ Delete -def exists(path): - return Path(path).exists() + +# ~ Export ok def exists_path(path): return Path(path).exists() +# ~ Export ok def get_type_doc(obj): - # ~ services = { - # ~ 'calc': 'com.sun.star.sheet.SpreadsheetDocument', - # ~ 'writer': 'com.sun.star.text.TextDocument', - # ~ 'impress': 'com.sun.star.presentation.PresentationDocument', - # ~ 'draw': 'com.sun.star.drawing.DrawingDocument', - # ~ 'base': 'com.sun.star.sdb.OfficeDatabaseDocument', - # ~ 'math': 'com.sun.star.formula.FormulaProperties', - # ~ 'basic': 'com.sun.star.script.BasicIDE', - # ~ } for k, v in TYPE_DOC.items(): if obj.supportsService(v): return k return '' -# ~ def _properties(values): - # ~ p = [PropertyValue(Name=n, Value=v) for n, v in values.items()] - # ~ return tuple(p) - def dict_to_property(values, uno_any=False): ps = tuple([PropertyValue(Name=n, Value=v) for n, v in values.items()]) if uno_any: @@ -380,82 +443,12 @@ def property_to_dict(values): return d -# ~ Third classes - - -# ~ https://github.com/psf/requests/blob/v2.22.0/requests/structures.py -class CaseInsensitiveDict(MutableMapping): - """A case-insensitive ``dict``-like object. - Implements all methods and operations of - ``MutableMapping`` as well as dict's ``copy``. Also - provides ``lower_items``. - All keys are expected to be strings. The structure remembers the - case of the last key to be set, and ``iter(instance)``, - ``keys()``, ``items()``, ``iterkeys()``, and ``iteritems()`` - will contain case-sensitive keys. However, querying and contains - testing is case insensitive:: - cid = CaseInsensitiveDict() - cid['Accept'] = 'application/json' - cid['aCCEPT'] == 'application/json' # True - list(cid) == ['Accept'] # True - For example, ``headers['content-encoding']`` will return the - value of a ``'Content-Encoding'`` response header, regardless - of how the header name was originally stored. - If the constructor, ``.update``, or equality comparison - operations are given keys that have equal ``.lower()``s, the - behavior is undefined. - """ - - def __init__(self, data=None, **kwargs): - self._store = OrderedDict() - if data is None: - data = {} - self.update(data, **kwargs) - - def __setitem__(self, key, value): - # Use the lowercased key for lookups, but store the actual - # key alongside the value. - self._store[key.lower()] = (key, value) - - def __getitem__(self, key): - return self._store[key.lower()][1] - - def __delitem__(self, key): - del self._store[key.lower()] - - def __iter__(self): - return (casedkey for casedkey, mappedvalue in self._store.values()) - - def __len__(self): - return len(self._store) - - def lower_items(self): - """Like iteritems(), but with all lowercase keys.""" - return ( - (lowerkey, keyval[1]) - for (lowerkey, keyval) - in self._store.items() - ) - - def __eq__(self, other): - if isinstance(other, Mapping): - other = CaseInsensitiveDict(other) - else: - return NotImplemented - # Compare insensitively - return dict(self.lower_items()) == dict(other.lower_items()) - - # Copy is required - def copy(self): - return CaseInsensitiveDict(self._store.values()) - - def __repr__(self): - return str(dict(self.items())) +def array_to_dict(values): + d = {r[0]: r[1] for r in values} + return d # ~ Custom classes - - class LODocument(object): def __init__(self, obj): @@ -464,7 +457,10 @@ class LODocument(object): def _init_values(self): self._type_doc = get_type_doc(self.obj) - self._cc = self.obj.getCurrentController() + if self._type_doc == 'base': + self._cc = self.obj.DatabaseDocument.getCurrentController() + else: + self._cc = self.obj.getCurrentController() return @property @@ -499,6 +495,10 @@ class LODocument(object): def path(self): return _path_system(self.obj.getURL()) + @property + def statusbar(self): + return self._cc.getStatusIndicator() + @property def visible(self): w = self._cc.getFrame().getContainerWindow() @@ -543,6 +543,31 @@ class LODocument(object): self._cc.insertTransferable(transferable) return self.obj.getCurrentSelection() + @catch_exception + def to_pdf(self, path, **kwargs): + path_pdf = path + if path: + if is_dir(path): + _, _, n, _ = get_info_path(self.path) + path_pdf = join(path, '{}.{}'.format(n, EXT['pdf'])) + else: + path_pdf = replace_ext(self.path, EXT['pdf']) + + filter_name = '{}_pdf_Export'.format(self.type) + filter_data = dict_to_property(kwargs, True) + args = { + 'FilterName': filter_name, + 'FilterData': filter_data, + } + args = dict_to_property(args) + try: + self.obj.storeToURL(_path_url(path_pdf), args) + except Exception as e: + error(e) + path_pdf = '' + + return path_pdf + class LOCalc(LODocument): @@ -913,6 +938,34 @@ class EventsMouse(EventsListenerBase, XMouseListener): pass +class EventsMouseGrid(EventsMouse): + selected = False + + def mousePressed(self, event): + super().mousePressed(event) + # ~ obj = event.Source + # ~ col = obj.getColumnAtPoint(event.X, event.Y) + # ~ row = obj.getRowAtPoint(event.X, event.Y) + # ~ print(col, row) + # ~ if col == -1 and row == -1: + # ~ if self.selected: + # ~ obj.deselectAllRows() + # ~ else: + # ~ obj.selectAllRows() + # ~ self.selected = not self.selected + return + + def mouseReleased(self, event): + obj = event.Source + col = obj.getColumnAtPoint(event.X, event.Y) + row = obj.getRowAtPoint(event.X, event.Y) + if row == -1 and col > -1: + gdm = obj.Model.GridDataModel + for i in range(gdm.RowCount): + gdm.updateRowHeading(i, i + 1) + return + + class UnoBaseObject(object): def __init__(self, obj): @@ -1020,6 +1073,10 @@ class UnoLabel(UnoBaseObject): def __init__(self, obj): super().__init__(obj) + @property + def type(self): + return 'label' + @property def value(self): return self.model.Label @@ -1032,16 +1089,10 @@ class UnoButton(UnoBaseObject): def __init__(self, obj): super().__init__(obj) - # ~ self._set_icon() - def _set_icon(self): - icon_name = self.tag.strip() - if icon_name: - path_icon = _file_url('{}/img/{}'.format(CURRENT_PATH, icon_name)) - self._model.ImageURL = path_icon - if self.value: - self._model.ImageAlign = 0 - return + @property + def type(self): + return 'button' @property def value(self): @@ -1056,6 +1107,10 @@ class UnoText(UnoBaseObject): def __init__(self, obj): super().__init__(obj) + @property + def type(self): + return 'text' + @property def value(self): return self.model.Text @@ -1074,6 +1129,10 @@ class UnoListBox(UnoBaseObject): super().__init__(obj) self._data = [] + @property + def type(self): + return 'listbox' + @property def value(self): return self.obj.SelectedItem @@ -1088,6 +1147,118 @@ class UnoListBox(UnoBaseObject): return +class UnoGrid(UnoBaseObject): + + def __init__(self, obj): + super().__init__(obj) + self._gdm = self._model.GridDataModel + # ~ self._data = [] + self._columns = {} + # ~ self._format_columns = () + + def __getitem__(self, index): + value = self._gdm.getCellData(index[0], index[1]) + return value + + @property + def type(self): + return 'grid' + + def _format_cols(self): + rows = tuple(tuple( + self._format_columns[i].format(r) for i, r in enumerate(row)) for row in self._data + ) + return rows + + # ~ @property + # ~ def format_columns(self): + # ~ return self._format_columns + # ~ @format_columns.setter + # ~ def format_columns(self, value): + # ~ self._format_columns = value + + @property + def data(self): + return self._data + @data.setter + def data(self, values): + # ~ self._data = values + self._gdm.removeAllRows() + headings = tuple(range(1, len(values) + 1)) + self._gdm.addRows(headings, values) + + # ~ rows = range(grid_dm.RowCount) + # ~ colors = [COLORS['GRAY'] if r % 2 else COLORS['WHITE'] for r in rows] + # ~ grid.Model.RowBackgroundColors = tuple(colors) + return + + @property + def row(self): + return self.obj.CurrentRow + + @property + def rows(self): + return self._gdm.RowCount + + @property + def column(self): + return self.obj.CurrentColumn + + @property + def columns(self): + return self._gdm.ColumnCount + + def set_cell_tooltip(self, col, row, value): + self._gdm.updateCellToolTip(col, row, value) + return + + def get_cell_tooltip(self, col, row): + value = self._gdm.getCellToolTip(col, row) + return value + + def _validate_column(self, data): + row = [] + for i, d in enumerate(data): + if i in self._columns: + if 'image' in self._columns[i]: + row.append(self._columns[i]['image']) + else: + row.append(d) + return tuple(row) + + def add_row(self, data): + # ~ self._data.append(data) + data = self._validate_column(data) + self._gdm.addRow(self.rows + 1, data) + return + + def remove_row(self, row): + self._gdm.removeRow(row) + # ~ del self._data[row] + self._update_row_heading() + return + + def _update_row_heading(self): + for i in range(self.rows): + self._gdm.updateRowHeading(i, i + 1) + return + + def sort(self, column, asc=True): + self._gdm.sortByColumn(column, asc) + # ~ self._data.sort(key=itemgetter(column), reverse=not asc) + self._update_row_heading() + return + + def set_column_image(self, column, path): + gp = create_instance('com.sun.star.graphic.GraphicProvider') + data = dict_to_property({'URL': _path_url(path)}) + image = gp.queryGraphic(data) + if not column in self._columns: + self._columns[column] = {} + self._columns[column]['image'] = image + return + + class LODialog(object): def __init__(self, properties): @@ -1160,6 +1331,9 @@ class LODialog(object): } for key, value in listeners.items(): if hasattr(control.obj, key): + if control.type == 'grid' and key == 'addMouseListener': + control.obj.addMouseListener(EventsMouseGrid(self.events)) + continue getattr(control.obj, key)(listeners[key](self.events)) return @@ -1191,6 +1365,7 @@ class LODialog(object): 'button': UnoButton, 'text': UnoText, 'listbox': UnoListBox, + 'grid': UnoGrid, # ~ 'link': UnoLink, # ~ 'tab': UnoTab, # ~ 'roadmap': UnoRoadmap, @@ -1198,13 +1373,36 @@ class LODialog(object): # ~ 'radio': UnoRadio, # ~ 'groupbox': UnoGroupBox, # ~ 'tree': UnoTree, - # ~ 'grid': UnoGrid, } return classes[tipo](obj) + def _set_column_model(self, columns): + #~ https://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1awt_1_1grid_1_1XGridColumn.html + column_model = create_instance('com.sun.star.awt.grid.DefaultGridColumnModel', True) + # ~ column_model.setDefaultColumns(len(columns)) + for column in columns: + grid_column = create_instance('com.sun.star.awt.grid.GridColumn', True) + for k, v in column.items(): + setattr(grid_column, k, v) + column_model.addColumn(grid_column) + # ~ mri(grid_column) + return column_model + + def _set_image_url(self, path): + if exists_path(path): + return _path_url(path) + return '' + @catch_exception def add_control(self, properties): tipo = properties.pop('Type').lower() + + columns = properties.pop('Columns', ()) + if tipo == 'grid': + properties['ColumnModel'] = self._set_column_model(columns) + if tipo == 'button' and 'ImageURL' in properties: + properties['ImageURL'] = self._set_image_url(properties['ImageURL']) + model = self.model.createInstance(self._get_control_model(tipo)) set_properties(model, properties) name = properties['Name'] @@ -1233,14 +1431,35 @@ def _get_class_doc(obj): return classes[type_doc](obj) -def get_document(): +# ~ Export ok +def get_document(title=''): doc = None desktop = get_desktop() - try: + if not title: doc = _get_class_doc(desktop.getCurrentComponent()) - except Exception as e: - log.error(e) - return doc + return doc + + for d in desktop.getComponents(): + if d.Title == title: + doc = d + break + + if doc is None: + return + + return _get_class_doc(doc) + + +# ~ Export ok +def get_documents(custom=True): + docs = [] + desktop = get_desktop() + for doc in desktop.getComponents(): + if custom: + docs.append(_get_class_doc(doc)) + else: + docs.append(doc) + return docs def get_selection(): @@ -1277,6 +1496,7 @@ def set_properties(model, properties): return +# ~ Export ok def get_config_path(name='Work'): """ Return de path name in config @@ -1286,6 +1506,7 @@ def get_config_path(name='Work'): return _path_system(getattr(path, name)) +# ~ Export ok def get_file(init_dir='', multiple=False, filters=()): """ init_folder: folder default open @@ -1298,31 +1519,115 @@ def get_file(init_dir='', multiple=False, filters=()): """ if not init_dir: init_dir = get_config_path() + init_dir = _path_url(init_dir) file_picker = create_instance('com.sun.star.ui.dialogs.FilePicker') file_picker.setTitle(_('Select file')) file_picker.setDisplayDirectory(init_dir) file_picker.setMultiSelectionMode(multiple) + path = '' if filters: file_picker.setCurrentFilter(filters[0][0]) for f in filters: file_picker.appendFilter(f[0], f[1]) if file_picker.execute(): + path = _path_system(file_picker.getSelectedFiles()[0]) if multiple: - return [_path_system(f) for f in file_picker.getSelectedFiles()] - return _path_system(file_picker.getSelectedFiles()[0]) + path = [_path_system(f) for f in file_picker.getSelectedFiles()] - return '' + return path +# ~ Export ok +def get_path(init_dir='', filters=()): + """ + Options: http://api.libreoffice.org/docs/idl/ref/namespacecom_1_1sun_1_1star_1_1ui_1_1dialogs_1_1TemplateDescription.html + filters: Example + ( + ('XML', '*.xml'), + ('TXT', '*.txt'), + ) + """ + if not init_dir: + init_dir = get_config_path() + init_dir = _path_url(init_dir) + file_picker = create_instance('com.sun.star.ui.dialogs.FilePicker') + file_picker.setTitle(_('Select file')) + file_picker.setDisplayDirectory(init_dir) + file_picker.initialize((2,)) + if filters: + file_picker.setCurrentFilter(filters[0][0]) + for f in filters: + file_picker.appendFilter(f[0], f[1]) + + path = '' + if file_picker.execute(): + path = _path_system(file_picker.getSelectedFiles()[0]) + return path + + +# ~ Export ok +def get_dir(init_dir=''): + folder_picker = create_instance('com.sun.star.ui.dialogs.FolderPicker') + if not init_dir: + init_dir = get_config_path() + init_dir = _path_url(init_dir) + folder_picker.setDisplayDirectory(init_dir) + + path = '' + if folder_picker.execute(): + path = _path_system(folder_picker.getDirectory()) + return path + + +# ~ Export ok def get_info_path(path): path, filename = os.path.split(path) name, extension = os.path.splitext(filename) return (path, filename, name, extension) -def inputbox(message, default='', title=TITLE): +# ~ Export ok +def read_file(path, mode='r', array=False): + data = '' + with open(path, mode) as f: + if array: + data = tuple(f.read().splitlines()) + else: + data = f.read() + return data + + +# ~ Export ok +def save_file(path, mode='w', data=None): + with open(path, mode) as f: + f.write(data) + return + + +# ~ Export ok +def to_json(path, data): + with open(path, 'w') as f: + f.write(json.dumps(data, indent=4, sort_keys=True)) + return + + +# ~ Export ok +def from_json(path): + with open(path) as f: + data = json.loads(f.read()) + return data + + +def get_path_extension(id): + pip = CTX.getValueByName('/singletons/com.sun.star.deployment.PackageInformationProvider') + path = _path_system(pip.getPackageLocation(id)) + return path + + +# ~ Export ok +def inputbox(message, default='', title=TITLE, echochar=''): class ControllersInput(object): @@ -1361,6 +1666,8 @@ def inputbox(message, default='', title=TITLE): 'Width': 190, 'Height': 15, } + if echochar: + args['EchoChar'] = ord(echochar[0]) dlg.add_control(args) dlg.txt_value.move(dlg.lbl_msg) @@ -1393,12 +1700,24 @@ def inputbox(message, default='', title=TITLE): return '' -def new_doc(type_doc=CALC): +# ~ Export ok +def new_doc(type_doc=CALC, **kwargs): path = 'private:factory/s{}'.format(type_doc) - doc = get_desktop().loadComponentFromURL(path, '_default', 0, ()) + opt = dict_to_property(kwargs) + doc = get_desktop().loadComponentFromURL(path, '_default', 0, opt) return _get_class_doc(doc) +# ~ Export ok +def new_db(path): + dbc = create_instance('com.sun.star.sdb.DatabaseContext') + db = dbc.createInstance() + db.URL = 'sdbc:embedded:firebird' # hsqldb + db.DatabaseDocument.storeAsURL(_path_url(path), ()) + return _get_class_doc(db) + + +# ~ Export ok def open_doc(path, **kwargs): """ Open document in path Usually options: @@ -1413,7 +1732,6 @@ def open_doc(path, **kwargs): http://api.libreoffice.org/docs/idl/ref/servicecom_1_1sun_1_1star_1_1document_1_1MediaDescriptor.html """ path = _path_url(path) - # ~ opt = _properties(kwargs) opt = dict_to_property(kwargs) doc = get_desktop().loadComponentFromURL(path, '_blank', 0, opt) if doc is None: @@ -1422,6 +1740,7 @@ def open_doc(path, **kwargs): return _get_class_doc(doc) +# ~ Export ok def open_file(path): if IS_WIN: os.startfile(path) @@ -1430,37 +1749,45 @@ def open_file(path): return +# ~ Export ok def join(*paths): return os.path.join(*paths) +# ~ Export ok def is_dir(path): return Path(path).is_dir() +# ~ Export ok def is_file(path): return Path(path).is_file() +# ~ Export ok def get_file_size(path): return Path(path).stat().st_size +# ~ Export ok def is_created(path): return is_file(path) and bool(get_file_size(path)) +# ~ Export ok def replace_ext(path, extension): path, _, name, _ = get_info_path(path) return '{}/{}.{}'.format(path, name, extension) -def zip_names(path): +# ~ Export ok +def zip_content(path): with zipfile.ZipFile(path) as z: names = z.namelist() return names +# ~ Export ok def run(command, wait=False): # ~ debug(command) # ~ debug(shlex.split(command)) @@ -1515,6 +1842,7 @@ def _zippwd(source, target, pwd): return is_created(target) +# ~ Export ok def zip(source, target='', mode='w', pwd=''): if pwd: return _zippwd(source, target, pwd) @@ -1556,6 +1884,7 @@ def zip(source, target='', mode='w', pwd=''): return is_created(target) +# ~ Export ok def unzip(source, path='', members=None, pwd=None): if not path: path, _, _, _ = get_info_path(source) @@ -1568,6 +1897,7 @@ def unzip(source, path='', members=None, pwd=None): return True +# ~ Export ok def merge_zip(target, zips): try: with zipfile.ZipFile(target, 'w', compression=zipfile.ZIP_DEFLATED) as t: @@ -1582,18 +1912,20 @@ def merge_zip(target, zips): return True +# ~ Export ok def kill(path): p = Path(path) - if p.is_file(): - try: + try: + if p.is_file(): p.unlink() - except: - pass - elif p.is_dir(): - p.rmdir() + elif p.is_dir(): + shutil.rmtree(path) + except OSError as e: + log.error(e) return +# ~ Export ok def get_size_screen(): if IS_WIN: user32 = ctypes.windll.user32 @@ -1604,6 +1936,7 @@ def get_size_screen(): return res.strip() +# ~ Export ok def get_clipboard(): df = None text = '' @@ -1649,6 +1982,7 @@ class TextTransferable(unohelper.Base, XTransferable): return False +# ~ Export ok def set_clipboard(value): ts = TextTransferable(value) sc = create_instance('com.sun.star.datatransfer.clipboard.SystemClipboard') @@ -1656,40 +1990,38 @@ def set_clipboard(value): return -def copy(doc=None): - if doc is None: - doc = get_document() - if hasattr(doc, 'frame'): - frame = doc.frame - else: - frame = doc.getCurrentController().getFrame() - dispatch = get_dispatch() - dispatch.executeDispatch(frame, '.uno:Copy', '', 0, ()) +# ~ Todo +def copy(): + call_dispatch('.uno:Copy') return +# ~ Export ok def get_epoch(): - now = datetime.datetime.now() - return int(time.mktime(now.timetuple())) + n = now() + return int(time.mktime(n.timetuple())) +# ~ Export ok def file_copy(source, target='', name=''): p, f, n, e = get_info_path(source) if target: p = target if name: + e = '' n = name path_new = join(p, '{}{}'.format(n, e)) shutil.copy(source, path_new) - return + return path_new -def get_files(path, ext='*'): - docs = [] +# ~ Export ok +def get_path_content(path, filters='*'): + paths = [] for folder, _, files in os.walk(path): - pattern = re.compile(r'\.{}'.format(ext), re.IGNORECASE) - docs += [join(folder, f) for f in files if pattern.search(f)] - return docs + pattern = re.compile(r'\.(?:{})$'.format(filters), re.IGNORECASE) + paths += [join(folder, f) for f in files if pattern.search(f)] + return paths def _get_menu(type_doc, name_menu): @@ -1739,7 +2071,7 @@ def insert_menu(type_doc, name_menu, **kwargs): separator = False if label == '-': separator = True - command = kwargs.get('Command', '') + command = kwargs.get('CommandURL', '') index = kwargs.get('Index', 0) if not index: index = _get_index_menu(menu, kwargs['After']) @@ -1779,6 +2111,8 @@ def _add_sub_menus(ui, menus, menu, sub_menu): if submenu: idc = ui.createSettings() sm['ItemDescriptorContainer'] = idc + if sm['Label'] == '-': + sm = {'Type': 1} _store_menu(ui, menus, menu, i - 1, sm) if submenu: _add_sub_menus(ui, menus, idc, submenu) @@ -1799,6 +2133,488 @@ def remove_menu(type_doc, name_menu, command): return True +def _get_app_submenus(menus, count=0): + for i, menu in enumerate(menus): + data = property_to_dict(menu) + cmd = data.get('CommandURL', '') + msg = ' ' * count + '├─' + cmd + debug(msg) + submenu = data.get('ItemDescriptorContainer', None) + if not submenu is None: + _get_app_submenus(submenu, count + 1) + return + + +def get_app_menus(name_app, index=-1): + instance = 'com.sun.star.ui.ModuleUIConfigurationManagerSupplier' + service = TYPE_DOC[name_app] + manager = create_instance(instance, True) + ui = manager.getUIConfigurationManager(service) + menus = ui.getSettings(NODE_MENUBAR, True) + if index == -1: + for menu in menus: + data = property_to_dict(menu) + debug(data.get('CommandURL', '')) + else: + menus = property_to_dict(menus[index])['ItemDescriptorContainer'] + _get_app_submenus(menus) + return menus + + +# ~ Export ok +def start(): + global _start + _start = now() + log.info(_start) + return + + +# ~ Export ok +def end(): + global _start + e = now() + return str(e - _start).split('.')[0] + + +# ~ Export ok +# ~ https://en.wikipedia.org/wiki/Web_colors +def get_color(value): + COLORS = { + 'aliceblue': 15792383, + 'antiquewhite': 16444375, + 'aqua': 65535, + 'aquamarine': 8388564, + 'azure': 15794175, + 'beige': 16119260, + 'bisque': 16770244, + 'black': 0, + 'blanchedalmond': 16772045, + 'blue': 255, + 'blueviolet': 9055202, + 'brown': 10824234, + 'burlywood': 14596231, + 'cadetblue': 6266528, + 'chartreuse': 8388352, + 'chocolate': 13789470, + 'coral': 16744272, + 'cornflowerblue': 6591981, + 'cornsilk': 16775388, + 'crimson': 14423100, + 'cyan': 65535, + 'darkblue': 139, + 'darkcyan': 35723, + 'darkgoldenrod': 12092939, + 'darkgray': 11119017, + 'darkgreen': 25600, + 'darkgrey': 11119017, + 'darkkhaki': 12433259, + 'darkmagenta': 9109643, + 'darkolivegreen': 5597999, + 'darkorange': 16747520, + 'darkorchid': 10040012, + 'darkred': 9109504, + 'darksalmon': 15308410, + 'darkseagreen': 9419919, + 'darkslateblue': 4734347, + 'darkslategray': 3100495, + 'darkslategrey': 3100495, + 'darkturquoise': 52945, + 'darkviolet': 9699539, + 'deeppink': 16716947, + 'deepskyblue': 49151, + 'dimgray': 6908265, + 'dimgrey': 6908265, + 'dodgerblue': 2003199, + 'firebrick': 11674146, + 'floralwhite': 16775920, + 'forestgreen': 2263842, + 'fuchsia': 16711935, + 'gainsboro': 14474460, + 'ghostwhite': 16316671, + 'gold': 16766720, + 'goldenrod': 14329120, + 'gray': 8421504, + 'grey': 8421504, + 'green': 32768, + 'greenyellow': 11403055, + 'honeydew': 15794160, + 'hotpink': 16738740, + 'indianred': 13458524, + 'indigo': 4915330, + 'ivory': 16777200, + 'khaki': 15787660, + 'lavender': 15132410, + 'lavenderblush': 16773365, + 'lawngreen': 8190976, + 'lemonchiffon': 16775885, + 'lightblue': 11393254, + 'lightcoral': 15761536, + 'lightcyan': 14745599, + 'lightgoldenrodyellow': 16448210, + 'lightgray': 13882323, + 'lightgreen': 9498256, + 'lightgrey': 13882323, + 'lightpink': 16758465, + 'lightsalmon': 16752762, + 'lightseagreen': 2142890, + 'lightskyblue': 8900346, + 'lightslategray': 7833753, + 'lightslategrey': 7833753, + 'lightsteelblue': 11584734, + 'lightyellow': 16777184, + 'lime': 65280, + 'limegreen': 3329330, + 'linen': 16445670, + 'magenta': 16711935, + 'maroon': 8388608, + 'mediumaquamarine': 6737322, + 'mediumblue': 205, + 'mediumorchid': 12211667, + 'mediumpurple': 9662683, + 'mediumseagreen': 3978097, + 'mediumslateblue': 8087790, + 'mediumspringgreen': 64154, + 'mediumturquoise': 4772300, + 'mediumvioletred': 13047173, + 'midnightblue': 1644912, + 'mintcream': 16121850, + 'mistyrose': 16770273, + 'moccasin': 16770229, + 'navajowhite': 16768685, + 'navy': 128, + 'oldlace': 16643558, + 'olive': 8421376, + 'olivedrab': 7048739, + 'orange': 16753920, + 'orangered': 16729344, + 'orchid': 14315734, + 'palegoldenrod': 15657130, + 'palegreen': 10025880, + 'paleturquoise': 11529966, + 'palevioletred': 14381203, + 'papayawhip': 16773077, + 'peachpuff': 16767673, + 'peru': 13468991, + 'pink': 16761035, + 'plum': 14524637, + 'powderblue': 11591910, + 'purple': 8388736, + 'red': 16711680, + 'rosybrown': 12357519, + 'royalblue': 4286945, + 'saddlebrown': 9127187, + 'salmon': 16416882, + 'sandybrown': 16032864, + 'seagreen': 3050327, + 'seashell': 16774638, + 'sienna': 10506797, + 'silver': 12632256, + 'skyblue': 8900331, + 'slateblue': 6970061, + 'slategray': 7372944, + 'slategrey': 7372944, + 'snow': 16775930, + 'springgreen': 65407, + 'steelblue': 4620980, + 'tan': 13808780, + 'teal': 32896, + 'thistle': 14204888, + 'tomato': 16737095, + 'turquoise': 4251856, + 'violet': 15631086, + 'wheat': 16113331, + 'white': 16777215, + 'whitesmoke': 16119285, + 'yellow': 16776960, + 'yellowgreen': 10145074, + } + + if isinstance(value, tuple): + return (value[0] << 16) + (value[1] << 8) + value[2] + + if isinstance(value, str) and value[0] == '#': + r, g, b = bytes.fromhex(value[1:]) + return (r << 16) + (g << 8) + b + + return COLORS.get(value.lower(), -1) + + +# ~ Export ok +def render(template, data): + s = Template(template) + return s.safe_substitute(**data) + + +def _to_date(value): + new_value = value + if isinstance(value, Time): + new_value = datetime.time(value.Hours, value.Minutes, value.Seconds) + elif isinstance(value, Date): + new_value = datetime.date(value.Year, value.Month, value.Day) + elif isinstance(value, DateTime): + new_value = datetime.datetime( + value.Year, value.Month, value.Day, + value.Hours, value.Minutes, value.Seconds) + return new_value + + +# ~ Export ok +def format(template, data): + """ + https://pyformat.info/ + """ + if isinstance(data, (str, int, float)): + # ~ print(template.format(data)) + return template.format(data) + + if isinstance(data, (Time, Date, DateTime)): + return template.format(_to_date(data)) + + if isinstance(data, tuple) and isinstance(data[0], tuple): + data = {r[0]: _to_date(r[1]) for r in data} + return template.format(**data) + + data = [_to_date(v) for v in data] + result = template.format(*data) + return result + + +def _call_macro(macro): + #~ https://wiki.openoffice.org/wiki/Documentation/DevGuide/Scripting/Scripting_Framework_URI_Specification + name = 'com.sun.star.script.provider.MasterScriptProviderFactory' + factory = create_instance(name, False) + + data = macro.copy() + if macro['language'] == 'Python': + data['module'] = '.py$' + elif macro['language'] == 'Basic': + data['module'] = '.{}.'.format(macro['module']) + if macro['location'] == 'user': + data['location'] = 'application' + else: + data['module'] = '.' + + args = macro.get('args', ()) + url = 'vnd.sun.star.script:{library}{module}{name}?language={language}&location={location}' + path = url.format(**data) + script = factory.createScriptProvider('').getScript(path) + return script.invoke(args, None, None)[0] + + +# ~ Export ok +def call_macro(macro): + in_thread = macro.pop('thread') + if in_thread: + t = threading.Thread(target=_call_macro, args=(macro,)) + t.start() + return + + return _call_macro(macro) + + +class TimerThread(threading.Thread): + + def __init__(self, event, seconds, macro): + threading.Thread.__init__(self) + self.stopped = event + self.seconds = seconds + self.macro = macro + + def run(self): + info('Timer started... {}'.format(self.macro['name'])) + while not self.stopped.wait(self.seconds): + _call_macro(self.macro) + info('Timer stopped... {}'.format(self.macro['name'])) + return + + +# ~ Export ok +def timer(name, seconds, macro): + global _stop_thread + _stop_thread[name] = threading.Event() + thread = TimerThread(_stop_thread[name], seconds, macro) + thread.start() + return + + +# ~ Export ok +def stop_timer(name): + global _stop_thread + _stop_thread[name].set() + del _stop_thread[name] + return + + +def _get_key(password): + digest = hashlib.sha256(password.encode()).digest() + key = base64.urlsafe_b64encode(digest) + return key + + +# ~ Export ok +def encrypt(data, password): + f = Fernet(_get_key(password)) + token = f.encrypt(data).decode() + return token + + +# ~ Export ok +def decrypt(token, password): + data = '' + f = Fernet(_get_key(password)) + try: + data = f.decrypt(token.encode()).decode() + except InvalidToken as e: + error('Invalid Token') + return data + + +class SmtpServer(object): + + def __init__(self, config): + self._server = None + self._error = '' + self._sender = '' + self._is_connect = self._login(config) + + def __enter__(self): + return self + + def __exit__(self, *args): + self.close() + + @property + def is_connect(self): + return self._is_connect + + @property + def error(self): + return self._error + + def _login(self, config): + name = config['server'] + port = config['port'] + is_ssl = config['ssl'] + self._sender = config['user'] + hosts = ('gmail' in name or 'outlook' in name) + try: + if is_ssl and hosts: + self._server = smtplib.SMTP(name, port, timeout=TIMEOUT) + self._server.ehlo() + self._server.starttls() + self._server.ehlo() + elif is_ssl: + self._server = smtplib.SMTP_SSL(name, port, timeout=TIMEOUT) + self._server.ehlo() + else: + self._server = smtplib.SMTP(name, port, timeout=TIMEOUT) + + self._server.login(self._sender, config['pass']) + msg = 'Connect to: {}'.format(name) + debug(msg) + return True + except smtplib.SMTPAuthenticationError as e: + if '535' in str(e): + self._error = _('Incorrect user or password') + return False + if '534' in str(e) and 'gmail' in name: + self._error = _('Allow less secure apps in GMail') + return False + except smtplib.SMTPException as e: + self._error = str(e) + return False + except Exception as e: + self._error = str(e) + return False + return False + + def _body(self, msg): + body = msg.replace('\\n', '
') + return body + + def send(self, message): + file_name = 'attachment; filename={}' + email = MIMEMultipart() + email['From'] = self._sender + email['To'] = message['to'] + email['Cc'] = message.get('cc', '') + email['Subject'] = message['subject'] + email['Date'] = formatdate(localtime=True) + if message.get('confirm', False): + email['Disposition-Notification-To'] = email['From'] + email.attach(MIMEText(self._body(message['body']), 'html')) + + for path in message.get('files', ()): + _, fn, _, _ = get_info_path(path) + part = MIMEBase('application', 'octet-stream') + part.set_payload(read_file(path, 'rb')) + encoders.encode_base64(part) + part.add_header('Content-Disposition', file_name.format(fn)) + email.attach(part) + + receivers = ( + email['To'].split(',') + + email['CC'].split(',') + + message.get('bcc', '').split(',')) + try: + self._server.sendmail(self._sender, receivers, email.as_string()) + msg = 'Email sent...' + debug(msg) + if message.get('path', ''): + self.save_message(email, message['path']) + return True + except Exception as e: + self._error = str(e) + return False + return False + + def save_message(self, email, path): + mbox = mailbox.mbox(path, create=True) + mbox.lock() + try: + msg = mailbox.mboxMessage(email) + mbox.add(msg) + mbox.flush() + finally: + mbox.unlock() + return + + def close(self): + try: + self._server.quit() + msg = 'Close connection...' + debug(msg) + except: + pass + return + + +def _send_email(server, messages): + with SmtpServer(server) as server: + if server.is_connect: + for msg in messages: + server.send(msg) + else: + error(server.error) + return server.error + + +def send_email(server, message): + messages = message + if isinstance(message, dict): + messages = (message,) + t = threading.Thread(target=_send_email, args=(server, messages)) + t.start() + return + + +def server_smtp_test(config): + with SmtpServer(config) as server: + if server.error: + error(server.error) + return server.error + + # ~ name = 'com.sun.star.configuration.ConfigurationProvider' # ~ cp = create_instance(name, True) # ~ node = PropertyValue(Name='nodepath', Value=NODE_SETTING)