docs: def gen_tasks(self, urls):
          """ according the urls gen {name:'', url:''} dict.
          :param urls:
          :type urls:
          :return:
          :rtype:
          """
          tasks = []
          if isinstance(urls, list):
              for url in urls:
                  dat = {
                      'url': url,
                      'name': url.split('/')[-1]
                  }
                  if not self.overwrite and helper.is_file_ok(dat['name']):
                      self.result['skip'] += 1
                  else:
                      tasks.append(dat)
          elif isinstance(urls, dict):
              # {k: v} => k is name, v is url value
              for k, v in urls.items():
                  dat = {
                      'url': v,
                      'name': k,
                  }
                  if not self.overwrite and helper.is_file_ok(dat['name']):
                      self.result['skip'] += 1
                  else:
                      tasks.append(dat)
          else:
              raise CrawlerParamsError('urls should be list/dict')
          return tasks