#include <stdlib.h>

#include "../utils/utils.h"
#include "bilibili.h"
#include "extractor.h"
#include "haokan.h"

Site_map site_map = {
    {{"www.bilibili.com", SITE_BILIBILI}, {"haokan.baidu.com", SITE_HAOKAN}},
    2};

void options_cleanup(Options *options) {
  free_and_nullify(options->URL);
  free_and_nullify(options->path);
  free_and_nullify(options->query);
  free_and_nullify(options->pagedata);
}

int extract(void *v) {
  Options *options = (Options *)v;
  switch (options->site) {
  case SITE_BILIBILI:
    bilibili_extract(options);
    break;
  case SITE_HAOKAN:
    haokan_extract(options);
    break;
  }
  options_cleanup(options);
  return 0;
}