#!/usr/bin/env python

"""Takes a badly formatted SRT file and outputs a strictly valid one."""

import srt_tools.utils
import logging

log = logging.getLogger(__name__)


def main():
    examples = {"Normalise a subtitle": "srt normalise -i bad.srt -o good.srt"}

    args = srt_tools.utils.basic_parser(
        description=__doc__, examples=examples, hide_no_strict=True
    ).parse_args()
    logging.basicConfig(level=args.log_level)
    srt_tools.utils.set_basic_args(args)
    output = srt_tools.utils.compose_suggest_on_fail(args.input, strict=args.strict)

    try:
        args.output.write(output)
    except (UnicodeEncodeError, TypeError):  # Python 2 fallback
        args.output.write(output.encode(args.encoding))


if __name__ == "__main__":  # pragma: no cover
    main()
