#!/usr/bin/env python
# -*- coding: utf-8 -*-

from __future__ import print_function
import argparse
import getpass
import os
from u115 import API

# SOCKS proxy
if os.environ.get('PROXY_ADDR'):
    proxy_addr = os.environ.get('PROXY_ADDR')
    proxy_port = int(os.environ.get('PROXY_PORT'))
    import socket
    import socks
    socks.set_default_proxy(socks.SOCKS5, proxy_addr, proxy_port)
    socket.socket = socks.socksocket


def parse_args():
    parser = argparse.ArgumentParser(prog='115up')
    group1 = parser.add_mutually_exclusive_group(required=True)
    group1.add_argument('-l', '--link',
                        help="link resource (HTTP, FTP, eD2k or Magnet)")
    group1.add_argument('-t', '--torrent',
                        help="torrent file")
    group2 = parser.add_mutually_exclusive_group(required=False)
    group2.add_argument('-u', '--username', help='account or username')
    group2.add_argument('-d', '--section', default='default',
                        help='section name in credential file')
    args = parser.parse_args()
    return args


def add_new_task(args):
    password = None
    if args.username is not None:
        password = getpass.getpass()
    api = API()
    api.login(args.username, password, args.section)
    if args.torrent is not None:
        r = api.add_task_bt(args.torrent)
    elif args.link is not None:
        r = api.add_task_url(args.link)
    if r:
        print('Task is successfully created.')
    tasks = api.get_tasks()
    t1 = tasks[0]
    print(t1, t1.status_human)


def main():
    args = parse_args()
    add_new_task(args)


if __name__ == '__main__':
    main()
