mirror of
https://github.com/JonathanHerrewijnen/calibre-web.git
synced 2024-11-13 06:34:26 +00:00
bbf6d9b026
Bugfix for feeds - removed categories related and up - load new books now working - category random now working login page is free of non accessible elements boolean custom column is vivible in UI books with only with certain languages can be shown book shelfs can be deleted from UI Anonymous user view is more resticted Added browse of series in sidebar Dependencys in vendor folder are updated to newer versions (licencs files are now present) Bugfix editing Authors names Made upload on windows working
81 lines
2.4 KiB
Python
81 lines
2.4 KiB
Python
#!/usr/bin/env python
|
|
"""
|
|
Script which takes one or more file paths and reports on their detected
|
|
encodings
|
|
|
|
Example::
|
|
|
|
% chardetect somefile someotherfile
|
|
somefile: windows-1252 with confidence 0.5
|
|
someotherfile: ascii with confidence 1.0
|
|
|
|
If no paths are provided, it takes its input from stdin.
|
|
|
|
"""
|
|
|
|
from __future__ import absolute_import, print_function, unicode_literals
|
|
|
|
import argparse
|
|
import sys
|
|
from io import open
|
|
|
|
from chardet import __version__
|
|
from chardet.universaldetector import UniversalDetector
|
|
|
|
|
|
def description_of(lines, name='stdin'):
|
|
"""
|
|
Return a string describing the probable encoding of a file or
|
|
list of strings.
|
|
|
|
:param lines: The lines to get the encoding of.
|
|
:type lines: Iterable of bytes
|
|
:param name: Name of file or collection of lines
|
|
:type name: str
|
|
"""
|
|
u = UniversalDetector()
|
|
for line in lines:
|
|
u.feed(line)
|
|
u.close()
|
|
result = u.result
|
|
if result['encoding']:
|
|
return '{0}: {1} with confidence {2}'.format(name, result['encoding'],
|
|
result['confidence'])
|
|
else:
|
|
return '{0}: no result'.format(name)
|
|
|
|
|
|
def main(argv=None):
|
|
'''
|
|
Handles command line arguments and gets things started.
|
|
|
|
:param argv: List of arguments, as if specified on the command-line.
|
|
If None, ``sys.argv[1:]`` is used instead.
|
|
:type argv: list of str
|
|
'''
|
|
# Get command line arguments
|
|
parser = argparse.ArgumentParser(
|
|
description="Takes one or more file paths and reports their detected \
|
|
encodings",
|
|
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
|
|
conflict_handler='resolve')
|
|
parser.add_argument('input',
|
|
help='File whose encoding we would like to determine.',
|
|
type=argparse.FileType('rb'), nargs='*',
|
|
default=[sys.stdin])
|
|
parser.add_argument('--version', action='version',
|
|
version='%(prog)s {0}'.format(__version__))
|
|
args = parser.parse_args(argv)
|
|
|
|
for f in args.input:
|
|
if f.isatty():
|
|
print("You are running chardetect interactively. Press " +
|
|
"CTRL-D twice at the start of a blank line to signal the " +
|
|
"end of your input. If you want help, run chardetect " +
|
|
"--help\n", file=sys.stderr)
|
|
print(description_of(f, f.name))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|