Исходный код cerebro.cargador

# -*- coding: utf-8 -*-
"""
Модуль cerebro.cargador предоставляет доступ к файловому хранилищу Cargador.

.. rubric:: Функции

* :py:func:`download_file() <cerebro.cargador.download_file>`
* :py:func:`download_thumbnail() <cerebro.cargador.download_thumbnail>`
* :py:func:`file_name_form_hash() <cerebro.cargador.file_name_form_hash>`
* :py:func:`is_connected() <cerebro.cargador.is_connected>`
* :py:func:`is_local() <cerebro.cargador.is_local>`
* :py:func:`storage_host() <cerebro.cargador.storage_host>`
* :py:func:`storage_path() <cerebro.cargador.storage_path>`
"""


import py_cerebro_carga

[документация]def file_name_form_hash(hash): """ :param string hash: хеш файла. :returns: абсолютный путь до файла. Если файла в файловом хранилище нет, возвращается None. :rtype: string :: attach = cerebro.core.current_attachment() # получаем текущее вложение file_name = cerebro.cargador.file_name_form_hash(attach.file_hash()) # пробуем получить имя файла по хешу print('Имя файла', file_name) """ return py_cerebro_carga.file_name_form_hash(hash)
[документация]def download_file(hash, project_id): """ :param string hash: хеш файла. :param int project_id: идентификатор проекта. Ставит файл на закачку из удаленного файлового хранилища. :: # Скачивание файла attach = cerebro.core.current_attachment() # получаем текущее вложение task = cerebro.core.current_task() # получаем текущую задачу, чтобы узнать идентификатор проекта if attach.is_link() != True: # проверяем, что вложение не является линком file_name = cerebro.cargador.file_name_form_hash(attach.file_hash()) # пробуем получить имя файла по хешу if file_name == '' or file_name == None: # если файла нет, пробуем его скачать cerebro.cargador.download_file(attach.file_hash(), task.project_id()) .. note:: Таким же образом можно скачать рецензию на файл. Для этого нужно у вложения вместо хеша файла получить хеш рецензии - :py:meth:`attach.review_hash() <cerebro.aclasses.Attachment.review_hash>`. Для скачивания эскизов файла(уменшенных изображений) воспользуйтесь функцией :py:func:`cerebro.cargador.download_thumbnail`. .. seealso:: :py:func:`download_thumbnail() <cerebro.cargador.download_thumbnail>` """ py_cerebro_carga.download_file(hash, project_id)
[документация]def download_thumbnail(hash, project_id): """ :param string hash: хеш эскиза файла(уменщенного изобращения). :param int project_id: идентификатор проекта. Ставит эскиз файла на закачку из удаленного файлового хранилища. .. note:: Скачивание при помощи функции download_thumbnail, производится в специальную папку для эскизов, чтобы они не захламляли каталоги с основными файлами. :: # Скачивание эскизов вложения attach = cerebro.core.current_attachment() # получаем текущее вложение task = cerebro.core.current_task() # получаем текущую задачу, чтобы узнать идентификатор проекта hashs = attach.thumbnail_hashs() # получаем список хешей эскизов файла for hash in hashs: # перебираем эскизы if hash != '' and hash != None: # если эскиз у файла существует file_name = cerebro.cargador.file_name_form_hash(hash) # пробуем получить имя эскиза файла по хешу if file_name == '' or file_name == None: # если эскиза нет, пробуем его скачать cerebro.cargador.download_thumbnail(hash, project_id) .. seealso:: :py:func:`download_file() <cerebro.cargador.download_file>` """ py_cerebro_carga.download_thumbnail(hash, project_id)
[документация]def is_local(): """ :returns: True, если соединение установлено с локальным сервисом Cargador. False, если с сетевым. :rtype: bool """ return py_cerebro_carga.carga_is_local() != 0
[документация]def is_connected(): """ :returns: True, если соединение c сервисом Cargador установлено. :rtype: bool """ return py_cerebro_carga.carga_is_connected() != 0
[документация]def storage_path(): """ :returns: Путь до хранилища файлов. :rtype: string """ return py_cerebro_carga.carga_path()
[документация]def storage_host(): """ :returns: Адрес хоста на котором расположен подключенный сервис Cargador. :rtype: string Если соединиение установлено с локальным сервисом Cargador, то вернется 'localhost'. """ return py_cerebro_carga.carga_host()