#!/usr/bin/env python

from youkudownloader import acfun
from youkudownloader import bilibili
from youkudownloader import chinanews
from youkudownloader import cntv
from youkudownloader import ifeng
from youkudownloader import iqiyi
from youkudownloader import ku6
from youkudownloader import letv
from youkudownloader import mtime
from youkudownloader import pptv
from youkudownloader import qq
from youkudownloader import sina
from youkudownloader import sohu
from youkudownloader import tudou
from youkudownloader import w56
from youkudownloader import yesky
from youkudownloader import yinyuetai
from youkudownloader import youku
from youkudownloader import zol

from youkudownloader.common import *
import re

def url_to_module(url):
	site = r1(r'http://([^/]+)/', url)
	assert site, 'invalid url: ' + url
	if site.endswith('.com.cn'):
		site = site[:-3]
	domain = r1(r'(\.[^.]+\.[^.]+)$', site)
	assert domain, 'not supported url: ' + url
	k = r1(r'([^.]+)', domain)
	downloads = {
			'youku':youku,
			'bilibili':bilibili,
			'zol':zol,
			'kankanews':bilibili,
			'smgbb':bilibili,
			'acfun':acfun,
			'sina':sina,
			'ku6':ku6,
			'mtime':mtime,
			'pptv':pptv,
			'iqiyi':iqiyi,
			'tudou':tudou,
			'sohu':sohu,
			'chinanews':chinanews,
			'56':w56,
			'yesky':yesky,
			'letv':letv,
			'qq':qq,
			'cntv':cntv,
			'yinyuetai':yinyuetai,
			'ifeng':ifeng,
	}
	if k in downloads:
		return downloads[k]
	else:
		raise NotImplementedError(url)

def any_download(url, merge=True):
	m = url_to_module(url)
	m.download(url, merge=merge)

def any_download_playlist(url, create_dir=False, merge=True):
	m = url_to_module(url)
	m.download_playlist(url, create_dir=create_dir, merge=merge)

def main():
	script_main('main', any_download, any_download_playlist)

if __name__ == '__main__':
	main()


