import { facebookdl } from '../lib/facebook/facebook.js';
import { savefrom } from '../lib/savefrom/savefrom.js';
import { mediafiredl } from '../lib/mediafire/mediafire.js';
import { snapsave } from '../lib/snapsave/snapsave.js';
import { tiktokdl } from '../lib/tiktok/tiktok.js';
import { youtubedl } from '../lib/youtube/youtube.js';
import { sfilemobi } from '../lib/sfilemobi/sfilemobi-dl.js';
import { sfilemobiSearch } from '../lib/sfilemobi/sfilemobisearch.js';
import axios from 'axios';
import { TiktokDownloader, XnxxDownloader } from '../lib/scrapper.js';
import { twitterdl } from '../lib/twitter/twitter.js';
import xnxx from "xnxx-dl";
import gifted from 'gifted-dls';
import { capcutdl } from '../lib/@randydev/capcut.js';
import { PinterestDownloader } from '../lib/@randydev/pinterest.js';
import { TeraboxDownloader, TeraboxV2Downloader } from '../lib/@randydev/terabox.js';

import * as igdlv2 from "instagram-url-direct";
import * as xpro from 'xnxx-scraper';
import * as happykntl from 'happy-dl';

import { igdl } from 'ruhend-scraper'

import { 
  TwitterDownloader,
  InstagramDownloader,
  PinterestDL,
  CreatorOriginal,
  SeachTiktok,
} from '../lib/scrapper.js';

import { trbtoken, trburl } from '../config.js';

async function InstagramDLV2(url) {
  try {
    const data = await igdlv2.instagramGetUrl(url);
    console.log(data);
    return data;
  } catch(err) {
    console.error(err);
    return null;
  }
}

async function TelegramUseLog(user_id, api_key, text_log) {
  const options = {
    method: 'GET',
    url: 'https://randydev-meta-ai.hf.space/user/tg/send_message',
    params: {
      user_id: user_id,
      api_key: api_key,
      text_log: text_log
    }
  };
  try {
    const response = await axios.request(options);
    return true;
  } catch (error) {
    console.error(error);
    return null;
  }
}


async function InstagramDLV3(url) {
  try {
    const data = await igdl(url);
    console.log(data);
    return data;
  } catch(err) {
    console.error(err);
    return null;
  }
}

async function InstagramDLV4(url) {
  try {
    const data = await happykntl.default.instagramDownloader(url);
    if (typeof data === "object") {
      console.log(data);
      data.developer = "xtdevs";
      return data;
    }
    // return {"message": "ok"};
  } catch(err) {
    console.error(err);
    return null;
  }
}

async function XsearchDownloaderV2(q) {
  const data = await xpro.default.search(q);
  return CreatorOriginal(data);
}

async function XInfoDownloaderV2(url) {
  const data = await xpro.default.info(url);
  return CreatorOriginal(data);
}

export {
  facebookdl,
  savefrom,
  mediafiredl,
  snapsave,
  tiktokdl,
  youtubedl,
  sfilemobi,
  gifted,
  xnxx,
  capcutdl,
  trbtoken,
  trburl,
  twitterdl,
  PinterestDL,
  SeachTiktok,
  sfilemobiSearch,
  XnxxDownloader,
  TiktokDownloader,
  TwitterDownloader,
  InstagramDownloader,
  TeraboxDownloader,
  TeraboxV2Downloader,
  PinterestDownloader,
  InstagramDLV2,
  InstagramDLV3,
  InstagramDLV4,
  XsearchDownloaderV2,
  XInfoDownloaderV2,
  TelegramUseLog,
};