             bot.pageOffset = self.pageOffset
             self.site.categrory = self.tor?.next()
             DispatchQueue.global().async {
+                 [unowned self] in
                 bot.start(withSite: self.site)
             }
         })

    func bot(_ bot: FetchBot, didFinishedContents contents: [ContentInfo], failedLink : [FetchURL]) {
        let message = ">>>>>>>>>>>> 已成功接收 \(bot.count - failedLink.count) 项数据, \(failedLink.count) 项接收失败, spend time: \(Date().timeIntervalSince(startTime))"
        print(message)
        DispatchQueue.main.async {
            self.label.stringValue = message
        }
        let bot = FetchBot.shareBot
        site.categrory = tor?.next()
        guard let _ = site.categrory else {
            DispatchQueue.main.async {
                self.action.isEnabled = true
            }
            return
        }
        DispatchQueue.global().async {
            bot.start(withSite: self.site)
        }
    }

    var tor: IndexingIterator<[ListCategrory]>?
    var site = Site.netdisk
    var startIndex: UInt = 1
    let pageOffset: UInt = 3
    var startTime: Date!
    @IBOutlet weak var action: NSButton!
    @IBOutlet weak var label: NSTextField!
