Example #1
0
def render_file(filename, parents):
    mimetype = mimetypes.MimeTypes().guess_type(filename)[0]
    app.logger.info("%s mimetype is %s", filename, mimetype)
    content = s3.content(filename)
    if mimetype in ("text/csv", "text/tab-separated-values"):
        delimiter = "\t" if mimetype == "text/tab-separated-values" else ","
        table = csv_table(content, delimiter)
        return render_template("s3list.html", crumbs=parents, s3objects=table)
    else:
        mimetype = "application/octet-stream"
    return send_file(io.BytesIO(content), mimetype=mimetype)
def downloadFile():
    file_id = ObjectId(request.json['file_id'])
    data = fs.get(file_id)
    file_name = request.json['file_name']
    file_type = mimetypes.MimeTypes().guess_type(str(file_name))[0]

    fileBytes = data.read()

    return send_file(io.BytesIO(fileBytes),
                     attachment_filename=file_name,
                     mimetype=file_type)
Example #3
0
    def handle_file(self, status_code, path, file_path):
        self.send_response(status_code)
        content, encoding = memetypes.MimeTypes().guess_type(file_path)
        info = os.stat(file_path)
        print(content, encoding, info)
        self.send_header("Content-Type", content)
        self.send_header("Content-Encoding", encoding)
        self.send_header("Content-Length", info.st_size)
        self.end_headers()

        return
Example #4
0
    def test_encoding(self):
        getpreferredencoding = locale.getpreferredencoding
        self.addCleanup(setattr, locale, 'getpreferredencoding',
                        getpreferredencoding)
        locale.getpreferredencoding = lambda: 'ascii'

        filename = support.findfile("mime.types")
        mimes = mimetypes.MimeTypes([filename])
        exts = mimes.guess_all_extensions('application/vnd.geocube+xml',
                                          strict=True)
        self.assertEqual(exts, ['.g3', '.g\xb3'])
Example #5
0
    def mimeType(self):
        if self._mimeType:
            return self._mimeType

        elif isinstance(self.source, AttachmentRef):
            return self.source.mimeType

        elif isinstance(self.source, pathlib.Path):
            mimeType, encoding = mimetypes.MimeTypes().guess_type(
                str(self.source))
            return mimeType
Example #6
0
    def get_data(self, uri):
        '''
            TODO: This function has to be updated for M2
        '''
        docroot = "/home/prem/Documents/IOS/M4/"
        if uri == "/bin/":
            data = "Can not access bin directory"
            return 404, "text/plain", len(data), data.encode()
        elif uri.startswith("/bin"):
            stdin = sys.stdin.fileno()  # usually 0
            stdout = sys.stdout.fileno()  # usually 1
            pr, cw = os.pipe()
            pid = os.fork()
            if pid > 0:
                os.close(cw)
                os.dup2(pr, stdin)
                res = ""
                for line in sys.stdin:
                    res = res + line + "<br>"
                return 200, "text/html", len(res), res.encode()
            else:
                os.close(pr)
                os.dup2(cw, stdout)
                args = [docroot[:-1] + uri]
                if uri.find(".py") != -1:
                    cmd = "python3"
                    args = [cmd, docroot[:-1] + uri]
                    os.execvp(args[0], args)
                else:
                    os.execvp(args[0], args)
        else:

            if uri == "/":
                text = os.listdir("./www/")
                data = ""
                for i in text:
                    if not i.startswith("."):
                        data = data + '''<a href = ''' + "/" + i + '''>''' + i + '''</a><br>'''
                return 200, "text/html", len(data), data.encode()
            elif os.path.isfile("./www" + uri):
                mime = mimetypes.MimeTypes().guess_type("./www" + uri)[0]
                file_pointer = open("./www" + uri, 'rb')
                data = file_pointer.read()
                return 200, mime, len(data), data
            elif os.path.isdir("./www" + uri):
                text = os.listdir("./www" + uri)
                data = ""
                for i in text:
                    if not i.startswith("."):
                        data = data + '''<a href = ''' + uri + "/" + i + '''>''' + i + '''</a><br>'''
                return 200, "text/html", len(data), data.encode()
            else:
                data = "<h1>File Not Found</h1>"
                return 404, "text/html", len(data), data.encode()
Example #7
0
 def send_header_as_code(self, status_code, url):
     """send the header of the response with the given status code"""
     mime_url = url
     if mime_url[-1] == '/':
         mime_url = url + "index.html"
     mime_type = mimetypes.MimeTypes().guess_type(mime_url)[0]
     if mime_type is None:
         mime_type = "text/html"
     self.send_response(status_code)
     self.send_header("Content-type", mime_type)
     self.end_headers()
Example #8
0
    def handle_upload(self, soc, addr):
        header = soc.recv(1024).decode().splitlines()
        try:
            print("Received header : ")
            print(header)
            version = header[0].split()[-1]
            num = header[0].split()[-2]
            method = header[0].split()[0]
            path = '%s/rfc%s.txt' % (self.DIR, num)
            if version != self.V:
                soc.sendall(str.encode(
                    self.V + ' 505 P2P-CI Version Not Supported\n'))
            elif not Path(path).is_file():
                soc.sendall(str.encode(self.V + ' 404 Not Found\n'))
            elif method == 'GET':
                header = self.V + ' 200 OK\n'
                header += 'Data: %s\n' % (time.strftime(
                    "%a, %d %b %Y %H:%M:%S GMT", time.gmtime()))
                header += 'OS: %s\n' % (platform.platform())
                header += 'Last-Modified: %s\n' % (time.strftime(
                    "%a, %d %b %Y %H:%M:%S GMT", time.gmtime(os.path.getmtime(path))))
                header += 'Content-Length: %s\n' % (os.path.getsize(path))
                header += 'Content-Type: %s\n' % (
                    mimetypes.MimeTypes().guess_type(path)[0])
                print("sending first header : ")
                print(header)
                soc.sendall(header.encode())
                # Uploading
                try:
                    print('\nUploading...')

                    send_length = 0
                    with open(path, 'r') as file:
                        to_send = file.read(1024)
                        while to_send:
                            send_length += len(to_send.encode())
                            soc.sendall(to_send.encode())
                            to_send = file.read(1024)
                except Exception:
                    raise MyException('Uploading Failed')
                # total_length = int(os.path.getsize(path))
                # print('send: %s | total: %s' % (send_length, total_length))
                # if send_length < total_length:
                #     raise MyException('Uploading Failed')
                print('Uploading Completed.')
                # Restore CLI
                print(
                    '\n 1: Add file for sharing\n 2: Fetch a file information\n 3: View the database\n 4: Download file\n 5: Shut Down the peer\n\nEnter your request: ')
            else:
                raise MyException('Bad Request.')
        except Exception:
            soc.sendall(str.encode(self.V + '  400 Bad Request\n'))
        finally:
            soc.close()
Example #9
0
 def get(self, request, name):
     print(name)
     filepath = os.path.join(ARCHIVE_DIR, name)
     if not os.path.exists(filepath):
         print('NOT FOUND')
         return HttpResponseNotFound('File not found')
     mimetype = mimetypes.MimeTypes().guess_type(filepath)[0]
     response = HttpResponse()
     response['X-Sendfile'] = filepath
     response['Content-Type'] = mimetype
     response['Content-Disposition'] = 'attachment; filename=%s' % name
     return response
Example #10
0
def istext(filename):
    global args
    dump("Checking type of {}".format(filename), 2)
    m = mimetypes.MimeTypes()
    type, subtype = m.guess_type(filename)
    dump("mimetypes returns {} ".format(type), 2)
    if type and ('text' in type):
        dump("Retuning True", 3)
        return True
    else:
        dump("Retuning False", 3)
        return False
Example #11
0
def get_file_info(filename: str) -> dict:
    """Given a file path returns its size (in bytes) and its name"""
    if not os.path.isfile(filename):
        return {}
    st = os.stat(filename)
    name = os.path.basename(filename)
    mime = mimetypes.MimeTypes().guess_type(filename)[0]
    return {
        "size": st.st_size,
        "name": name,
        "mime": mime
    }
Example #12
0
File: app.py Project: pksebben/paws
def send_from_package(package, directory, filename, **options):
    fp = read_from_package(package, directory, filename)
    options.setdefault('conditional', True)

    mimetype = mimetypes.MimeTypes().guess_type(filename, strict=False)[0]

    try:
        return flask.send_file(fp, mimetype=mimetype, **options)
    except ValueError:
        print("still having mimetype problems. See app.py")
        mimetype = "application/octet stream"
        return flask.send_file(fp, mimetype=mimetype, **options)
Example #13
0
 def assets_set_asset(self, asset_name, file, **kwargs):
     """Set an asset image by name."""
     content_type = mimetypes.MimeTypes().guess_type(file)
     files = {
         asset_name: (file, open(file, "rb"), content_type[0], {
             "Expires": "0"
         }),
     }
     return self.call_api_post("assets.setAsset",
                               kwargs=kwargs,
                               use_json=False,
                               files=files)
Example #14
0
def validate_video_file(upload):
    """
    Validates uploaded file name by using mimetypes, part of Python standard
    library, to guess the mime type from the file extension.

    The file extension is not a reliable way to determine mime type. A better
    alternative is using the python-magic library, but that requires the
    libmagic library which is extra overhead, so not worth.
    """
    mime_type = mimetypes.MimeTypes().guess_type(upload.name)[0]
    if mime_type not in VIDEO_MIME_TYPES:
        raise ValidationError('File type not supported. MP4, Quicktime, or WebM recommended.')
Example #15
0
 def assets_set_asset(self, asset_name, file, **kwargs):
     """Set an asset image by name."""
     content_type = mimetypes.MimeTypes().guess_type(file)
     files = {
         asset_name: (file, open(file, 'rb'), content_type[0], {
             'Expires': '0'
         }),
     }
     return self.__call_api_post('assets.setAsset',
                                 kwargs=kwargs,
                                 use_json=False,
                                 files=files)
Example #16
0
def findvideos(item):
    # logger.debug('DEBUG', item)
    item.contentTitle = item.fulltitle
    itemlist = []
    json = []
    if 'links' in item.url:
        json = item.url['links']
    elif 'find_links' in item.url:
        for link in item.url['find_links']:
            link['url'] = unshortenit.findlinks(link['url'])
            mimetype = findS = None
            mimetype = mimetypes.MimeTypes().guess_type(link['url'])[0]
            if mimetype is None:
                findS = servertools.get_server_from_url(link['url'])
            if mimetype is None and findS is None:
                data = support.match(link['url']).data
                itemlist_url = servertools.find_video_items(data=data)
                if len(itemlist_url):
                    for item_url in itemlist_url:
                        valid = True
                        patterns = link.get('patterns', False)
                        if patterns:
                            valid = False
                            for pattern in patterns:
                                match = re.search(pattern, item_url.url)
                                if match:
                                    valid = True
                                    break
                        if valid:
                            json.append({"url": item_url.url})
            else:
                json.append(link)

    else:
        url = item.url
        item.url = {}
        json.append({"url": url})

    # support.dbg()
    for option in json:
        extra = set_extra_values(item, option, item.path)
        itemlist.append(
            item.clone(url=option['url'],
                       action='play',
                       quality=extra.quality,
                       contentLanguage=extra.language,
                       extraInfo=extra.info))

    videolibrary = item.url.get('videolibrary', True)
    item.autoplay = item.url.get('autoplay', False)

    item.url = ''  # do not pass referer
    return support.server(item, itemlist=itemlist, Videolibrary=videolibrary)
Example #17
0
    def mixresque(self, message):
        t = time.asctime(time.localtime(time.time()))

        error_file = '<html><head><title>404 Not Found</title></head><body bgcolor="red"><center>' \
                     '<h1>404 Not Found</h1></center><hr><center>nginx</center></body></html>'
        error = 'HTTP/1.1 404 Not Found\r\nDate: '+ t +'\r\nServer: NetSec Prototype Server 1.0\r\n' \
                                                       'Content-Length: '+str(len(error_file))+'\r\nContent-Type:' \
                                                                                               ' text/html\r\n\r\n'
        command, vals = message.split('\r\n', 1)

        method, uri, version = command.split(' ')
        if method != 'GET':
            self.transport.write(str.encode(error + error_file))
            self.transport.close()
        if version[-3:] not in ['1.1', '1.0']:
            self.transport.write(str.encode(error + error_file))
            self.transport.close()

        if self.document_root[-1:] == '/':
            if len(self.document_root) > 1:
                self.document_root = self.document_root[:-1]
            else:
                self.document_root = ''

        address = self.document_root + '/' + uri
        if os.path.isdir(address):
            address += '/index.html'

        con_type = mimetypes.MimeTypes().guess_type(address)[0]
        # print("con_type: ", con_type)
        try:
            last_modified = time.asctime(
                time.localtime(os.stat(address).st_mtime))
        except Exception:
            last_modified = t
        try:
            file = open(address,
                        'rb')  # open file , r => read , b => byte format
            response = file.read()
            file.close()
            con_length = len(response)
        except Exception as e:
            self.transport.write(str.encode(error + error_file))
            self.transport.close()
        else:
            out = 'HTTP/1.1 200 OK\r\nDate: '+t+'\r\nServer: NetSec Prototype Server 1.0\r\n' \
                  'Last-Modified: '+last_modified+'\r\nContent-Length: '+str(con_length)+'\r\nConnection:' \
                  ' close\r\nContent-Type: '+con_type+'\r\n\r\n'
            # print(out)

            self.transport.write(str.encode(out) + response)
            self.transport.close()
Example #18
0
def send_email():
    subject = request.form['email-subject']
    body = request.form['email-body']
    emails = request.form['emails']

    if subject and body and emails:

        msg = EmailMessage()

        asparagus_cid = make_msgid()

        msg['Subject'] = subject
        msg['From'] = '*****@*****.**'
        msg['To'] = (emails)

        msg.add_alternative(body.format(asparagus_cid=asparagus_cid[1:-1]),
                            subtype='html')

        if 'email-attachments[]' in request.files:
            files = request.files.getlist('email-attachments[]')

            for file in files:
                filename = secure_filename(file.filename)

                ctype = mimetypes.MimeTypes().guess_type(filename)[0]

                if ctype is None:
                    ctype = 'application/octet-stream'

                maintype, subtype = ctype.split('/', 1)
                f_data = file.read()

                msg.add_attachment(f_data,
                                   maintype=maintype,
                                   filename=filename,
                                   subtype=subtype)

        s = smtplib.SMTP('smtp.gmail.com', 587)

        s.starttls()

        s.login('*****@*****.**', 'gmail password')
        s.send_message(msg)
        s.quit()

        flash('Email successfully sent to recepients')

        return render_template('emails.html', color='green')
    else:
        flash('Email subject, body and list of emails are required field')

        return render_template('emails.html', color='red')
Example #19
0
    def run_errands(self):
        args = self.get_configured_args()

        if (args.get("list")
            and not mimetypes.MimeTypes().guess_type(args["list"])[0] == "text/plain"
        ):
            raise ArgumentError(
                "{0} is not of a valid argument to --list, argument must be plain text file.".format(
                    args["list"]
                )
            )

        if args.get("write_m3u") and not args.get("list"):
            raise ArgumentError("--write-m3u can only be used with --list.")

        if args["write_to"] and not (
            args.get("playlist") or args.get("album") or args.get("all_albums") or args.get("username") or args.get("write_m3u")
        ):
            raise ArgumentError(
                "--write-to can only be used with --playlist, --album, --all-albums, --username, or --write-m3u."
            )

        ffmpeg_exists = shutil.which("ffmpeg")
        if not ffmpeg_exists:
            logger.warn("FFmpeg was not found in PATH. Will not re-encode media to specified output format.")
            args["no_encode"] = True

        if args["no_encode"] and args["trim_silence"]:
            logger.warn("--trim-silence can only be used when an encoder is set.")

        if args["output_file"] == "-" and args["no_metadata"] is False:
            logger.warn(
                "Cannot write metadata when target is STDOUT. Pass "
                "--no-metadata explicitly to hide this warning."
            )
            args["no_metadata"] = True
        elif os.path.isdir(args["output_file"]):
            adjusted_output_file = os.path.join(
                args["output_file"],
                self.parser.get_default("output_file")
            )
            logger.warn(
                "Given output file is a directory. Will download tracks "
                "in this directory with their filename as per the default "
                "file format. Pass --output-file=\"{}\" to hide this "
                "warning.".format(
                    adjusted_output_file
                )
            )
            args["output_file"] = adjusted_output_file

        return args
Example #20
0
def adhocBackupFiles(fromPatterns, backupDirID, user_agent):
    logging.debug("Adhoc backup fromPatterns: " + str(fromPatterns))
    logging.debug("Adhoc backup backupDirID: " + backupDirID)
    logging.debug("Adhoc backup user_agent: " + user_agent)

    backupTimestamp = datetime.datetime.now().isoformat()
    drive_service = getDriveService(user_agent)

    copyCount = 0
    newCount = 0
    replacedCount = 0

    filesToCopy = []
    for fromPattern in fromPatterns:
        globResult = glob.glob(fromPattern)
        logging.debug("glob of " + fromPattern + " returned " +
                      str(globResult))
        filesToCopy.extend(globResult)

    logging.debug("Files to copy: " + str(filesToCopy))

    for file in filesToCopy:

        file_size = os.path.getsize(file)
        if file_size == 0:
            raise Exception(
                "The file, " + file +
                " is empty. This application cannot copy empty (size = 0) files to Google Drive."
            )

        matchesFound = deleteIfThere(file, backupDirID, drive_service)
        if matchesFound == 0:
            newCount += 1
        else:
            replacedCount += matchesFound
        shortFileName = ntpath.basename(file)
        MIMETYPE = mimetypes.MimeTypes().guess_type(shortFileName, False)[0]
        TITLE = shortFileName
        DESCRIPTION = 'Backup from hassio of ' + file
        backupFile(file, backupDirID, drive_service, MIMETYPE, TITLE,
                   DESCRIPTION)
        copyCount += 1

    result = {
        'adhocBackupTimestamp': backupTimestamp,
        'fromPatterns': fromPatterns,
        'backupDirID': backupDirID,
        'copyCount': copyCount,
        'newCount': newCount,
        'replacedCount': replacedCount
    }
    return result
Example #21
0
    def upload(self, account_id, filename):
        files = {
            'file': (os.path.basename(filename), open(filename, 'rb'),
                     mimetypes.MimeTypes().guess_type(filename)[0])
        }

        res = self.session.post(self.api_url + f'account/{account_id}/upload',
                                headers={'X-File-Parse': 'true'},
                                files=files)
        res.raise_for_status()
        res = res.json()
        logging.debug(f'uploaded {filename}, response "{res}"')
        return res
 def __init__(self, **kwargs):
     BaseObject.__init__(self, **kwargs)
     Config.__init__(self, **kwargs)
     self._default_filetype = None
     self._mimetypes = mimetypes.MimeTypes()
     self.filetypes = {}
     filetype_data = kwargs.get('filetype_data', [])
     for data in filetype_data:
         self.add_filetype(**data)
     self.recent_files = {}
     self.files_by_path = {}
     self.get_recent_files()
     self.bind(current_file=self._on_current_file_set)
 def visit_file(self, name):
     if not os.path.isfile(name):
         error('Must be a valid file [', name, ']')
         return
     mime = mimetypes.MimeTypes().guess_type(name)[0]
     if not mime:
         error('Unknown file type [', name, ']')
         return
     mm = mime.split('/')
     if mm[0] == 'text':
         self.process_text_file(name)
     else:
         self.process_external_app(name)
Example #24
0
 def status_code_200(self, path):
     # OK
     # https://www.tutorialspoint.com/How-to-find-the-mime-type-of-a-file-in-Python, Author: Rajendra Dharmkar, Published on 27-Dec-2017 15:55:12
     # https://www.geeksforgeeks.org/python-os-path-basename-method/#:~:text=basename()%20method%20in%20Python,pair%20(head%2C%20tail)., Author: ihritik, Last Updated : 26 Aug, 2019
     mimetype = mimetypes.MimeTypes().guess_type(os.path.basename(path))[0]
     try:
         with open(self.ROOT + path, "r") as f:
             content = f.read()
             if self.DEBUG: return bytearray(f"HTTP/1.1 200 OK\r\nCache-Control: no-cache\r\nContent-type:{mimetype}\r\n\r\n{content}", "utf-8")
             return bytearray(f"HTTP/1.1 200 OK\r\nContent-type:{mimetype}\r\n\r\n{content}", "utf-8")
     except:
         # Error(s) occured while reading file :(
         return bytearray(self.status_code_500())
Example #25
0
def file_getmime(filepath):
    '''获取文件mime类型
    :param filepath: 提供文件路径
    :return: mime类型
    '''
    mimetypes.init('/usr/local/openresty/nginx/conf/mime.types')
    mime = mimetypes.MimeTypes()
    mimetype = mime.guess_type(filepath)
    if mimetype[0] == "None":
        from magic import Magic
        f = Magic(mime=True)
        return f.from_file(filepath)
    return mimetype[0]
Example #26
0
 def __init__(self,
              folderModel,
              dataFileIndex,
              existingUnverifiedDatafile,
              verificationModel,
              bytesUploadedPreviously=None):
     self.folderModel = folderModel
     self.dataFileIndex = dataFileIndex
     self.uploadModel = None
     self.existingUnverifiedDatafile = existingUnverifiedDatafile
     self.verificationModel = verificationModel
     self.bytesUploadedPreviously = bytesUploadedPreviously
     self.mimeTypes = mimetypes.MimeTypes()
Example #27
0
    def get_mimetype(path):
        """Get the mimetype of a file, using either libmagic or the mimetypes module when libmagic is not available."""
        if not os.path.exists(path):
            raise ValueError(path)

        try:
            import magic
            mime = magic.Magic(mime=True)
            return mime.from_file(path)
        except ImportError:
            import mimetypes
            mime = mimetypes.MimeTypes()
            return mime.guess_type(path)[0]
Example #28
0
    def __init__(
        self,
        *args,
        data_type: DataType,
        group: typing.Optional[str],
        source: str,
        mime_type: typing.Optional[str] = None,
        unit: typing.Optional[int] = None,
        name: typing.Optional[str] = None,
        duplicate_timestamp_strategy:
        DuplicateTimestampStrategy = DuplicateTimestampStrategy.RAISE,
    ):

        self.__data_type = Timeseries.DataType(data_type)
        self.__duplicate_timestamp_strategy = Timeseries.DuplicateTimestampStrategy(
            duplicate_timestamp_strategy)

        if not source:
            raise Timeseries.InvalidAttributeError(
                "timeseries 'source' attribute cannot be empty")

        group_and_source = Timeseries.normalize_group_and_source(group=group,
                                                                 source=source)
        self.__group = group_and_source[0]
        self.__source = group_and_source[1]

        self.__mime_type = None
        if self.__data_type == Timeseries.DataType.BINARY:
            if mime_type is None:
                raise Timeseries.InvalidAttributeError(
                    "unable to initialize Timeseries with data type BINARY without mime type"
                )

            # use mime_types_db.add_type or mime_types_db.read to add additional,
            # potentially custom types if they happen to be missing from the default db
            mime_types_db = mimetypes.MimeTypes(strict=True)
            mime_types_db.add_type("application/octet-stream",
                                   ".bin",
                                   strict=False)

            self.__mime_type = mime_type.strip().lower()
            if (self.__mime_type not in mime_types_db.types_map_inv[0] and
                    self.__mime_type not in mime_types_db.types_map_inv[1]):
                raise Timeseries.InvalidAttributeError(
                    f"unknown mime type '{self.__mime_type}")

        self.__timestamps = {}
        self.__read_only = False
        self.__values = []
        self.__unit_id = None if unit is None or unit == -1 else int(unit)
        self.__name = name.strip() if name else None
Example #29
0
    def check_file_before_transfer(self,
                                   path,
                                   encryption,
                                   contact,
                                   groupchat=False):
        if not path or not os.path.exists(path):
            return

        invalid_file = False
        stat = os.stat(path)

        if os.path.isfile(path):
            if stat[6] == 0:
                invalid_file = True
                msg = _('File is empty')
        else:
            invalid_file = True
            msg = _('File does not exist')

        if self.max_file_size is not None and \
                stat.st_size > self.max_file_size:
            invalid_file = True
            size = GLib.format_size_full(self.max_file_size,
                                         GLib.FormatSizeFlags.IEC_UNITS)
            msg = _('File is too large, '
                    'maximum allowed file size is: %s') % size

        if invalid_file:
            self._raise_information_event('open-file-error2', msg)
            return

        mime = mimetypes.MimeTypes().guess_type(path)[0]
        if not mime:
            mime = 'application/octet-stream'  # fallback mime type
        self._log.info("Detected MIME type of file: %s", mime)

        try:
            transfer = HTTPFileTransfer(self._account, self._cancel_upload,
                                        path, contact, mime, encryption,
                                        groupchat)
            app.interface.show_httpupload_progress(transfer)
        except Exception as error:
            self._log.exception('Error while loading file')
            self._raise_information_event('open-file-error2', str(error))
            return

        if encryption is not None:
            app.interface.encrypt_file(transfer, self._account,
                                       self._request_slot)
        else:
            self._request_slot(transfer)
Example #30
0
def init_mimedb():
    """Initialize the local MIME database."""
    global mimedb
    try:
        mimedb = mimetypes.MimeTypes(strict=False)
    except StandardError as msg:
        log.error(LOG_CHECK, "could not initialize MIME database: %s" % msg)
        return
    # For Opera bookmark files (opera6.adr)
    add_mimetype(mimedb, 'text/plain', '.adr')
    # To recognize PHP files as HTML with content check.
    add_mimetype(mimedb, 'application/x-httpd-php', '.php')
    # To recognize WML files
    add_mimetype(mimedb, 'text/vnd.wap.wml', '.wml')