#!/usr/bin/env python3

import os
import sys
from argparse import ArgumentParser

import appdirs
from livedumper.dumper import LivestreamerDumper

__appname__ = 'livedumper'
__author__ = 'Thiago Kenji Okada'
__version__ = '0.2.1'


def main():
    parser = ArgumentParser(description='Livestreamer stream dumper')
    group = parser.add_argument_group('stream/video related arguments')
    group.add_argument(dest='url', nargs='+', action='store', metavar='URL',
                       help='stream/video url')
    group.add_argument(dest='quality', action='store', metavar='QUALITY',
                       help='stream/video quality')
    parser.add_argument('-d', '--dir', action='store', default='',
                        metavar='PATH', help='path to result directory')
    parser.add_argument('-v', '--version', action='version',
                        version='%(prog)s {}'.format(__version__))

    # Print help when user didn't pass anything to this program
    if len(sys.argv) == 1:
        parser.print_help()
        sys.exit(2)

    # Parse the user choices
    args = parser.parse_args()

    config_path = appdirs.user_config_dir(__appname__)
    if not os.path.exists(config_path):
        os.mkdir(config_path)
    dumper = LivestreamerDumper(config_path)
    
    for video_url in args.url:
        dumper.open(video_url, args.quality)
        destiny_file = os.path.join(args.dir, dumper.get_title())
        dumper.dump(destiny_file)
        dumper.stop()

    dumper.exit()

if __name__ == '__main__':
    main()
