                 {
                     maxPage = pageInt
                 }
-            }
-            let t = V2ValueResponse<([TopicListModel],Int)>(value:(resultArray,maxPage), success: response.result.isSuccess)
-            done(t);
+                let t = V2ValueResponse<([TopicListModel],Int)>(value:(resultArray,maxPage), success: isSuccess)
+                done(t);
         }
     }
     class func favorite(_ nodeId:String,type:NSInteger){

    let USER_AGENT = "Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.3 (KHTML, like Gecko) Version/8.0 Mobile/12A4345d Safari/600.1.4";
    var MOBILE_CLIENT_HEADERS : [String:String] = [:]
    @discardableResult
    public func responseJi(_ url: String,_ parameters: Parameters? = nil,completionHandler:@escaping (DataResponse<Ji>) -> Void){
        var href = url
        if !url.hasPrefix("https://"){

            params["p"] = "\(page)"
            url = "recent"
        }
        let xpath = "//body/div[@id='Wrapper']/div[@class='content']/div[@class='box']/div[@class='cell item']"
        TJHttp().responseNode(url,params,xpath) {JiHtml,jiRootNode, aRootNode ,isSuccess -> Void in
            var resultArray : [TopicListModel] = []
            if aRootNode != nil {
                for aNode in aRootNode! {
                    let topic = TopicListModel(rootNode:aNode)
                    resultArray.append(topic);
                }
                User.shared.getNotificationsCount(jiRootNode!)
            }
            let t = V2ValueResponse<[TopicListModel]>(value:resultArray, success: isSuccess)
            done(t)
        }
    }
    typealias ResponseTopicList =  (V2ValueResponse<([TopicListModel] ,String?)>) -> Void
    class func getTopicList(_ nodeName: String,page:Int,done: @escaping ResponseTopicList){
        let url =  "go/\(nodeName)?p=\(page)"
        let xpath = "//*[@id='Wrapper']/div[@class='content']/div[@class='box']/div[@class='cell']"
        TJHttp().responseNode(url,nil,xpath) {jiHtml,jiRootNode, aRootNode ,isSuccess -> Void in
            var resultArray:[TopicListModel] = []
            var favoriteUrl :String?
            for aNode in aRootNode! {
                let topic = TopicListModel(nodeRootNode: aNode)
                resultArray.append(topic);
            }
            User.shared.getNotificationsCount(jiRootNode!)
            if let node = jiHtml.xPath("//*[@id='Wrapper']/div/div[1]/div[1]/div[1]/a")?.first{
                favoriteUrl = node["href"]
            }
            let t = V2ValueResponse<([TopicListModel], String?)>(value:(resultArray,favoriteUrl), success: isSuccess)
            done(t);
        }
    }
    typealias V2ValueResponseTopicListModelInt = (V2ValueResponse<([TopicListModel],Int)>) -> Void
    class func getFavoriteList(_ page:Int = 1, done: @escaping V2ValueResponseTopicListModelInt){
        let xpath = "//*[@class='cell item']"
        TJHttp().responseNode("my/topics?p=\(page)",nil,xpath){jiHtml,jiRootNode, aRootNode ,isSuccess -> Void in
//        TJHttp().responseJi("my/topics?p=\(page)"){ (response) -> Void in
            var resultArray:[TopicListModel] = []
            var maxPage = 1
                for aNode in aRootNode! {
                    let topic = TopicListModel(favoritesRootNode:aNode)
                    resultArray.append(topic);
                }
                //更新通知数量
                User.shared.getNotificationsCount(jiHtml.rootNode!)
