File size: 4,245 Bytes
762fa11
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import { JackettCategory } from "ts-jackett-api/lib/types/JackettCategory.js";
import { searchEztv } from "./eztv.js";
import { ItorrentCategory, ItorrentQuality, searchItorrent, } from "./itorrent.js";
import { searchJackett } from "./jackett.js";
import { NcoreCategory, searchNcore } from "./ncore.js";
import { searchYts } from "./yts.js";
import { InsaneCategory, searchInsane } from "./insane.js";
export const searchTorrents = async (query, options) => {
    const searchAllCategories = !options?.categories?.length;
    const searchAllSources = !options?.sources?.length;
    const promises = [];
    if (options?.sources?.includes("jackett") || searchAllSources) {
        const categories = new Set();
        if (options?.categories?.includes("movie") || searchAllCategories) {
            categories.add(JackettCategory.Movies);
        }
        if (options?.categories?.includes("show") || searchAllCategories) {
            categories.add(JackettCategory.TV);
        }
        promises.push(searchJackett(query, Array.from(categories), options?.jackett?.url, options?.jackett?.apiKey));
    }
    if (options?.sources?.includes("ncore") || searchAllSources) {
        const categories = new Set();
        if (options?.categories?.includes("movie") || searchAllCategories) {
            categories.add(NcoreCategory.Film_HD_HU);
            categories.add(NcoreCategory.Film_HD_EN);
            categories.add(NcoreCategory.Film_SD_HU);
            categories.add(NcoreCategory.Film_SD_EN);
        }
        if (options?.categories?.includes("show") || searchAllCategories) {
            categories.add(NcoreCategory.Sorozat_HD_HU);
            categories.add(NcoreCategory.Sorozat_HD_EN);
            categories.add(NcoreCategory.Sorozat_SD_HU);
            categories.add(NcoreCategory.Sorozat_SD_EN);
        }
        promises.push(searchNcore(query, Array.from(categories), options?.ncore?.user, options?.ncore?.password));
    }
    if (options?.sources?.includes("insane") || searchAllSources) {
        const categories = new Set();
        if (options?.categories?.includes("movie") || searchAllCategories) {
            categories.add(InsaneCategory.Film_Hun_SD);
            categories.add(InsaneCategory.Film_Hun_HD);
            categories.add(InsaneCategory.Film_Hun_UHD);
            categories.add(InsaneCategory.Film_Eng_SD);
            categories.add(InsaneCategory.Film_Eng_HD);
            categories.add(InsaneCategory.Film_Eng_UHD);
        }
        if (options?.categories?.includes("show") || searchAllCategories) {
            categories.add(InsaneCategory.Sorozat_Hun);
            categories.add(InsaneCategory.Sorozat_Hun_HD);
            categories.add(InsaneCategory.Sorozat_Hun_UHD);
            categories.add(InsaneCategory.Sorozat_Eng);
            categories.add(InsaneCategory.Sorozat_Eng_HD);
            categories.add(InsaneCategory.Sorozat_Eng_UHD);
        }
        promises.push(searchInsane(query, Array.from(categories), options?.insane?.user, options?.insane?.password));
    }
    if (options?.sources?.includes("itorrent") || searchAllSources) {
        const categories = new Set();
        if (options?.categories?.includes("movie") || searchAllCategories) {
            categories.add(ItorrentCategory.Film);
        }
        if (options?.categories?.includes("show") || searchAllCategories) {
            categories.add(ItorrentCategory.Sorozat);
        }
        const qualities = [
            ItorrentQuality.HD,
            ItorrentQuality.SD,
            ItorrentQuality.CAM,
        ];
        promises.push(searchItorrent(query, Array.from(categories), qualities));
    }
    if (options?.sources?.includes("yts") || searchAllSources) {
        if (options?.categories?.includes("movie") || searchAllCategories) {
            promises.push(searchYts(query));
        }
    }
    if (options?.sources?.includes("eztv") || searchAllSources) {
        if (options?.categories?.includes("show") || searchAllCategories) {
            promises.push(searchEztv(query));
        }
    }
    const results = (await Promise.all(promises)).flat();
    console.log(`Search: got ${results.length} results for ${query}`);
    return results;
};
//# sourceMappingURL=search.js.map