"use strict"; let EPL = { showPage: function(document, db, query, type, ver) { let data = this.loadData(db, query, type, ver); let template = this.template; template = this.processTemplate(template, data); document.title = data.type + " for " + data.name + " :: Classic Add-ons Archive"; let contfrag = document.createRange().createContextualFragment(template); let page = document.getElementById("page"); // Limpiar solo contenido dinĂ¡mico, mantener cabecera Array.from(page.children).forEach(child => { if (!child.classList.contains('amo-header')) child.remove(); }); let frag = contfrag.firstElementChild; page.appendChild(frag); }, loadData: function(db, query, type, ver) { let col; if (/^\d+$/.test(query)) { col = "addon_id"; } else { col = "slug"; } let dbQuery; if (type == "eula") { dbQuery = db.createStatement("SELECT addons.name AS name, slug, eulas.text AS eula FROM addons LEFT JOIN eulas ON eulas.addon_id = addons.addon_id WHERE addons." + col + " = :query"); } else if (type == "privacy") { dbQuery = db.createStatement("SELECT addons.name AS name, slug, policies.text AS policy FROM addons LEFT JOIN policies ON policies.addon_id = addons.addon_id WHERE addons." + col + " = :query"); } else { dbQuery = db.createStatement("SELECT addons.name AS name, slug, version, licenses.name AS lic_name, licenses.text AS lic_text FROM addons INNER JOIN versions ON addons.addon_id = versions.addon_id LEFT JOIN licenses ON licenses.license_id = versions.license_id WHERE addons." + col + " = :query AND versions.version = :version LIMIT 1"); dbQuery.params.version = ver; } dbQuery.params.query = query; let data = {}; dbQuery.executeStep(); data.name = dbQuery.row.name; data.slug = dbQuery.row.slug; if (type == "eula") { data.content = dbQuery.row.eula.replace(/(?:\r\n|\r|\n)/g, "
").replace("$", "$"); data.type = "End-User License Agreement"; data.version = ""; data.licname = ""; } else if (type == "privacy") { data.content = dbQuery.row.policy.replace(/(?:\r\n|\r|\n)/g, "
").replace("$", "$"); data.type = "Privacy Policy"; data.version = ""; data.licname = ""; } else { data.content = dbQuery.row.lic_text.replace(/(?:\r\n|\r|\n)/g, "
").replace("$", "$"); data.version = '' + dbQuery.row.version + ''; data.type = "Source Code License"; data.licname = "

" + dbQuery.row.lic_name + "

"; } dbQuery.finalize(); return data; }, processTemplate: function(template, data) { template = template.replace(/%NAME%/g, data.name); template = template.replace("%VERSION%", data.version); template = template.replace("%TYPE%", data.type); template = template.replace("%LICNAME%", data.licname); template = template.replace("%SLUG%", data.slug); template = template.replace("%CONTENT%", data.content); return template; }, template: `

%NAME% %VERSION%

%TYPE%

%LICNAME%
%CONTENT%

Back to %NAME%…

` };