def cloud_add_link_task(cookie, tokens, source_url, save_path,<EOL>vcode='<STR_LIT>', vcode_input='<STR_LIT>'):
url = '<STR_LIT>'.join([<EOL>const.PAN_URL,<EOL>'<STR_LIT>',<EOL>'<STR_LIT>', tokens['<STR_LIT>'],<EOL>])<EOL>type_ = '<STR_LIT>'<EOL>if source_url.startswith('<STR_LIT>'):<EOL><INDENT>type_ = '<STR_LIT>'<EOL><DEDENT>if not save_path.endswith('<STR_LIT:/>'):<EOL><INDENT>save_path = save_path + '<STR_LIT:/>'<EOL><DEDENT>data = [<EOL>'<STR_LIT>',<EOL>'<STR_LIT>', encoder.encode_uri_component(source_url),<EOL>'<STR_LIT>', encoder.encode_uri_component(save_path),<EOL>'<STR_LIT>', type_,<EOL>]<EOL>if vcode:<EOL><INDENT>data.append('<STR_LIT>')<EOL>data.append(vcode_input)<EOL>data.append('<STR_LIT>')<EOL>data.append(vcode)<EOL><DEDENT>data = '<STR_LIT>'.join(data)<EOL>req = net.urlopen(url, headers={'<STR_LIT>': cookie.header_output()},<EOL>data=data.encode())<EOL>if req:<EOL><INDENT>content = req.data<EOL>return json.loads(content.decode())<EOL><DEDENT>else:<EOL><INDENT>return None<EOL><DEDENT>
新建离线下载任务.

    source_url - 可以是http/https/ftp等一般的链接
                 可以是eMule这样的链接
    path       - 要保存到哪个目录, 比如 /Music/, 以/开头, 以/结尾的绝对路径.