def save_share_list(self, url, path, password=None, filter_callback=None):
<EOL>respond = self._request(None, url=url)<EOL>target_url = respond.url<EOL>surl = re.search(r"<STR_LIT>", target_url)<EOL>if surl is None:<EOL><INDENT>surl = re.search(r"<STR_LIT>", target_url).group(<NUM_LIT:1>)[<NUM_LIT:1>:]<EOL><DEDENT>else:<EOL><INDENT>surl = surl.group(<NUM_LIT:1>)<EOL><DEDENT>data = {<EOL>"<STR_LIT>": password,<EOL>"<STR_LIT:t>": str(int(time.time())),<EOL>}<EOL>url = "<STR_LIT>" + surl<EOL>verify_result = json.loads(self._request(None, data=data, url=url).content)<EOL>if not verify_result or verify_result['<STR_LIT>'] != <NUM_LIT:0>:<EOL><INDENT>return verify_result<EOL><DEDENT>html = self._request(None, url=target_url).text<EOL>r = re.compile(r"<STR_LIT>")<EOL>m = r.search(html)<EOL>if m:<EOL><INDENT>context = json.loads(m.group(<NUM_LIT:1>))<EOL>file_list = context['<STR_LIT>']['<STR_LIT:list>']<EOL>uk = str(context['<STR_LIT>'])<EOL>shareid = str(context['<STR_LIT>'])<EOL>ret = {"<STR_LIT>": []}<EOL>for f in file_list:<EOL><INDENT>file_obj = {<EOL>'<STR_LIT:filename>': f['<STR_LIT>'],<EOL>'<STR_LIT:size>': f['<STR_LIT:size>'],<EOL>'<STR_LIT>': f['<STR_LIT>']<EOL>}<EOL>if not filter_callback or filter_callback(file_obj):<EOL><INDENT>ret['<STR_LIT>'].append(f['<STR_LIT:path>'])<EOL><DEDENT><DEDENT>save_share_file_ret = self._save_shared_file_list(shareid, uk, path, ret['<STR_LIT>'])<EOL>if save_share_file_ret and save_share_file_ret['<STR_LIT>'] == <NUM_LIT:0>:<EOL><INDENT>return save_share_file_ret<EOL><DEDENT>else:<EOL><INDENT>return ret<EOL><DEDENT><DEDENT>else:<EOL><INDENT>return {"<STR_LIT>": -<NUM_LIT:1>, "<STR_LIT>": "<STR_LIT>"}<EOL><DEDENT>
保存分享文件列表到自己的网盘, 支持密码, 支持文件过滤的回调函数
        :param url: 分享的url
        :type url: str

        :param path 保存到自己网盘的位置
        :type path: str

        :param password 分享密码, 如果没有分享资源没有密码则不用填
        :type password: str

        :param filter_callback 过滤文件列表中文件的回调函数, filter(file), 返回值是假值则被过滤掉
        file = {
            "filename": "xxx",
            "size": 1234,
            "isdir": 0
        }
        :return
        {
            "error": 0, # 无错误为0, 否则出错.
            "result": [] # 如果成功会返回添加到自己网盘的文件列表
        }

        context是从分享页面的html中提取的json, 里面保存了分享文件列表
        暂时有用的是file_list, uk, shareid
        context = {
            "typicalPath": "\/\u65b0\u5efa\u6587\u4ef6\u5939(1)\/[SumiSora][Yosuga_no_Sora][BDRip][BIG5][720P]",
            "self": false,
            "username": "",
            "photo": "http:\/\/himg.bdimg.com\/sys\/portrait\/item\/0237bb1b.jpg",
            "uk": 924798052,
            "ctime": 1455779404,
            "flag": 2,
            "linkusername": "cls1010123",
            "vCnt": 118442,
            "tCnt": 27916,
            "dCnt": 12006,
            "file_list": {
                "errno": 0,
                "list": [{
                    "fs_id": 882212291049391,
                    "app_id": "250528",
                    "parent_path": "%2F%E6%96%B0%E5%BB%BA%E6%96%87%E4%BB%B6%E5%A4%B9%281%29",
                    "server_filename": "[SumiSora][Yosuga_no_Sora][BDRip][BIG5][720P]",
                    "size": 0,
                    "server_mtime": 1455779174,
                    "server_ctime": 1455779174,
                    "local_mtime": 1455779174,
                    "local_ctime": 1455779174,
                    "isdir": 1,
                    "isdelete": "0",
                    "status": "0",
                    "category": 6,
                    "share": "0",
                    "path_md5": "18281300157632491061",
                    "delete_fs_id": "0",
                    "extent_int3": "0",
                    "extent_tinyint1": "0",
                    "extent_tinyint2": "0",
                    "extent_tinyint3": "0",
                    "extent_tinyint4": "0",
                    "path": "\/\u65b0\u5efa\u6587\u4ef6\u5939(1)\/[SumiSora][Yosuga_no_Sora][BDRip][BIG5][720P]",
                    "root_ns": 465254146,
                    "md5": "",
                    "file_key": ""
                }]
            },
            "loginstate": 0,
            "channel": 4,
            "third_url": 0,
            "bdstoken": null ,
            "sampling": {
                "expvar": ["chengyong"]
            },
            "is_vip": 0,
            "description": "",
            "shorturl": "1skhBegP",
            "shareinfo": "",
            "is_baiduspider": 0,
            "isinwhitelist": 0,
            "public": 0,
            "shareid": 23915657,
            "bj_unicom": 0,
            "visitor_uk": null ,
            "visitor_avatar": null ,
            "timestamp": 1458198232,
            "sign": "xxxx",
            "sekey": "xxxx",
            "novelid": false,
            "is_master_vip": 0,
            "urlparam": [],
            "XDUSS": "null"
        }