43 lines
1.2 KiB
Text
43 lines
1.2 KiB
Text
|
#!/usr/bin/env node
|
||
|
|
||
|
const sqlite3 = require("sqlite3").verbose(),
|
||
|
db = new sqlite3.Database("/tmp/iptv.sqlite"),
|
||
|
languages = require("../config/languages.json"),
|
||
|
countries = require("../config/countries.json"),
|
||
|
categories = require("../config/categories.json");
|
||
|
|
||
|
let languageMatch = "",
|
||
|
countryMatch = "",
|
||
|
categoryMatch = "";
|
||
|
|
||
|
languages.forEach((language, index) => {
|
||
|
languageMatch += `languages='${language}'`;
|
||
|
|
||
|
if (index < languages.length - 1) {
|
||
|
languageMatch += " OR ";
|
||
|
}
|
||
|
});
|
||
|
|
||
|
countries.forEach((country, index) => {
|
||
|
countryMatch += `country='${country}'`;
|
||
|
|
||
|
if (index < countries.length - 1) {
|
||
|
countryMatch += " OR ";
|
||
|
}
|
||
|
});
|
||
|
|
||
|
categories.forEach((category, index) => {
|
||
|
categoryMatch += `categories LIKE '%${category}%'`;
|
||
|
|
||
|
if (index < categories.length - 1) {
|
||
|
categoryMatch += " OR ";
|
||
|
}
|
||
|
});
|
||
|
|
||
|
db.serialize(() => {
|
||
|
db.each(`SELECT * FROM iptv_processed WHERE is_nsfw='FALSE' AND (${languageMatch}) AND link NOT LIKE '' AND (${countryMatch}) AND (${categoryMatch})`, (err, row) => {
|
||
|
console.log(`#EXTINF:-1 tvg-id="${row.id}" tvg-logo="${row.logo}" group-title="${row.name}"`);
|
||
|
console.log(row.link);
|
||
|
});
|
||
|
});
|