iptv-m3u/scripts/iptv-generate-m3u

43 lines
1.2 KiB
JavaScript
Executable File

#!/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);
});
});