Close but with errors on TED and others

Former-commit-id: fbb54fa7e385a1bb9caf1834efd0f5375d381d06 [formerly 3340c539f663cf50b10ac10e45555a662d77dc4d [formerly a667a252db041875cbaf121ff6998a5a4e0870c4]]
Former-commit-id: 558abbbaf21140d596d0ac93ca96237120360b06
Former-commit-id: f7424147328cb61f0236df69e9b8c3cffacae3f2
This commit is contained in:
Jaifroid 2021-07-26 11:17:00 +01:00
parent 01de9fbfc6
commit 6cf8190e0f
2 changed files with 42 additions and 19 deletions

View File

@ -415,6 +415,10 @@ pre {
margin-bottom: 15% !important; margin-bottom: 15% !important;
} }
#dl-panel-body::before, #dl-panel-body::after {
content: '' !important;
}
/*********************************/ /*********************************/
/******* Custom checkboxes *******/ /******* Custom checkboxes *******/
/*********************************/ /*********************************/

View File

@ -208,6 +208,7 @@ define([], function () {
pms: 'Piemontèis (Piedmontese)', pms: 'Piemontèis (Piedmontese)',
ps: 'پښتو (Pashto)', ps: 'پښتو (Pashto)',
pt: 'Português (Portuguese)', pt: 'Português (Portuguese)',
ptbr: 'Português brasileiro (Brazilian Portuguese)',
qu: 'Runa Simi (Quechua)', qu: 'Runa Simi (Quechua)',
rm: 'Rumantsch (Raeto Romance)', rm: 'Rumantsch (Raeto Romance)',
rmy: 'Romani / रोमानी (Romani)', rmy: 'Romani / रोमानी (Romani)',
@ -549,11 +550,17 @@ define([], function () {
} }
dropdownDate += '</select>\r\n'; dropdownDate += '</select>\r\n';
} }
//Add language, subject and date spans to doc
if (/^(?:[^._]+\.stack(?:exchange|overflow)|askubuntu|stackapps|stackoverflow|superuser|serverfault)/mi.test(doc)) {
doc = doc.replace(/^([^>\n\r]+>(?:.+(stackoverflow)|([^.\n\r]+))\.([^_\n\r]+)_([^_\n\r]+)_.*?(\d[\d-]+)\.zi[mp].+)$[\n\r]*/img, '<span class="wikiLang" lang="$5" data-kiwixsubject="$2$3" data-kiwixdate="$6">$1<br /></span>');
} else {
doc = doc.replace(/^([^_\n\r]+_([^_\n\r]+)_((?:[^_]|_(?!maxi|mini|nopic|\d\d\d\d))+)_.*?(\d[\d-]+)\.zi[mp].+)$[\n\r]*/img, '<span class="wikiLang" lang="$2" data-kiwixsubject="$3" data-kiwixdate="$4">$1<br /></span>');
}
// Normalize languages with a - (from Stackexchange)
doc = doc.replace(/(lang="\w+)-(\w+")/, '$1$2');
doc = dropdownDate ? doc.replace(/<\/h3>/i, '</h3>' + (dropdownLang || dropdownSubj ? '' : '\r\n<div class="row">\r\n') + '<div class="col-xs-4">Date:&nbsp;&nbsp;' + dropdownDate + '</div>\r\n</div>\r\n') : doc; doc = dropdownDate ? doc.replace(/<\/h3>/i, '</h3>' + (dropdownLang || dropdownSubj ? '' : '\r\n<div class="row">\r\n') + '<div class="col-xs-4">Date:&nbsp;&nbsp;' + dropdownDate + '</div>\r\n</div>\r\n') : doc;
doc = dropdownSubj ? doc.replace(/<\/h3>/i, '</h3>' + (dropdownLang ? '' : '\r\n<div class="row">\r\n') + '<div class="col-xs-4">Subject:&nbsp;&nbsp;' + dropdownSubj + '</div>\r\n' + (dropdownDate ? '' : '</div>\r\n')) : doc; doc = dropdownSubj ? doc.replace(/<\/h3>/i, '</h3>' + (dropdownLang ? '' : '\r\n<div class="row">\r\n') + '<div class="col-xs-4">Subject:&nbsp;&nbsp;' + dropdownSubj + '</div>\r\n' + (dropdownDate ? '' : '</div>\r\n')) : doc;
doc = dropdownLang ? doc.replace(/<\/h3>/i, '</h3>\r\n<div class="row">\r\n<div class="col-xs-4">Language:&nbsp;&nbsp;' + dropdownLang + '</div>\r\n' + (dropdownSubj || dropdownDate ? '' : '</div>\r\n')) : doc; doc = dropdownLang ? doc.replace(/<\/h3>/i, '</h3>\r\n<div class="row">\r\n<div class="col-xs-4">Language:&nbsp;&nbsp;' + dropdownLang + '</div>\r\n' + (dropdownSubj || dropdownDate ? '' : '</div>\r\n')) : doc;
//Add language and date spans to doc
doc = doc.replace(/^([^_\n\r]+_([^_\n\r]+)_([^_\n\r]+)_.*?(\d[\d-]+)\.zi[mp].+)$[\n\r]*/img, '<span class="wikiLang" lang="$2" data-kiwixsubject="$3" data-kiwixdate="$4">$1<br /></span>');
} }
downloadLinks.innerHTML = doc; downloadLinks.innerHTML = doc;
var langSel = document.getElementById('langs'); var langSel = document.getElementById('langs');
@ -572,7 +579,7 @@ define([], function () {
if (subjSel) subjSel.value = subj || 'All'; if (subjSel) subjSel.value = subj || 'All';
if (dateSel) dateSel.value = kiwixDate || 'All'; if (dateSel) dateSel.value = kiwixDate || 'All';
} }
if (typeof langArray !== "undefined") { if (langArray && langSel) {
//Set up event listener for language selector //Set up event listener for language selector
langSel.addEventListener("change", function () { langSel.addEventListener("change", function () {
var dateID = dateSel ? dateSel.options[dateSel.selectedIndex].value : ''; var dateID = dateSel ? dateSel.options[dateSel.selectedIndex].value : '';
@ -604,7 +611,8 @@ define([], function () {
var subjList = subjectArray.join('\r\n'); var subjList = subjectArray.join('\r\n');
subjList = subjList.replace(/^(.*)[\r\n]*/mg, function (p0, p1) { subjList = subjList.replace(/^(.*)[\r\n]*/mg, function (p0, p1) {
// DEV: innerText doesn't include hidden items // DEV: innerText doesn't include hidden items
if (p1 !== 'All' && !~langPanel.innerText.indexOf('_' + p1 + '_')) return ''; var rgxSubject = new RegExp('_?' + p1 + '[._]', 'i');
if (p1 !== 'All' && !rgxSubject.test(langPanel.innerText)) return '';
return '<option value="' + p1 + '"' + (subjID === p1 ? ' selected' : '') + '>' + p1 + '</option>'; return '<option value="' + p1 + '"' + (subjID === p1 ? ' selected' : '') + '>' + p1 + '</option>';
}); });
subjSel.innerHTML = subjList; subjSel.innerHTML = subjList;
@ -618,7 +626,7 @@ define([], function () {
} }
}); });
} }
if (typeof subjectArray !== "undefined") { if (subjectArray && subjSel) {
//Set up event listener for subject selector //Set up event listener for subject selector
subjSel.addEventListener("change", function () { subjSel.addEventListener("change", function () {
var langID = langSel ? langSel.options[langSel.selectedIndex].value : ''; var langID = langSel ? langSel.options[langSel.selectedIndex].value : '';
@ -636,9 +644,11 @@ define([], function () {
// Prune the language list // Prune the language list
if (langID === 'All') { if (langID === 'All') {
var langList = langArray.join('\r\n'); var langList = langArray.join('\r\n');
langList = langList.replace(/^(.*)[\r\n]*/mg, function (p0, p1) { // We need to normalize language codes in langPanel (for Stackexchange)
// DEV: innerText doesn't include hidden items // DEV: innerText doesn't include hidden items
if (p1 !== 'All' && !~langPanel.innerText.indexOf('_' + p1 + '_')) return ''; var langTestPanel = langPanel.innerText.replace(/(_\w+)-(\w+_)/, '$1$2');
langList = langList.replace(/^(.*)[\r\n]*/mg, function (p0, p1) {
if (p1 !== 'All' && !~langTestPanel.indexOf('_' + p1 + '_')) return '';
return '<option value="' + p1 + '"' + (langID === p1 ? ' selected' : '' ) + '>' + p1 + (p1 === 'All' ? '' : ' : ' + langCodes[p1]) + '</option>'; return '<option value="' + p1 + '"' + (langID === p1 ? ' selected' : '' ) + '>' + p1 + (p1 === 'All' ? '' : ' : ' + langCodes[p1]) + '</option>';
}); });
langSel.innerHTML = langList; langSel.innerHTML = langList;
@ -662,7 +672,7 @@ define([], function () {
} }
}); });
} }
if (typeof dateArray !== "undefined") { if (dateArray && dateSel) {
//Set up event listener for date selector //Set up event listener for date selector
dateSel.addEventListener("change", function () { dateSel.addEventListener("change", function () {
var langID = langSel ? langSel.options[langSel.selectedIndex].value : ''; var langID = langSel ? langSel.options[langSel.selectedIndex].value : '';
@ -680,9 +690,11 @@ define([], function () {
// Prune the language list // Prune the language list
if (langID === 'All') { if (langID === 'All') {
var langList = langArray.join('\r\n'); var langList = langArray.join('\r\n');
langList = langList.replace(/^(.*)[\r\n]*/mg, function (p0, p1) { // We need to normalize language codes in langPanel (for Stackexchange)
// DEV: innerText doesn't include hidden items // DEV: innerText doesn't include hidden items
if (p1 !== 'All' && !~langPanel.innerText.indexOf('_' + p1 + '_')) return ''; var langTestPanel = langPanel.innerText.replace(/(_\w+)-(\w+_)/, '$1$2');
langList = langList.replace(/^(.*)[\r\n]*/mg, function (p0, p1) {
if (p1 !== 'All' && !~langTestPanel.indexOf('_' + p1 + '_')) return '';
return '<option value="' + p1 + '"' + (langID === p1 ? ' selected' : '' ) + '>' + p1 + (p1 === 'All' ? '' : ' : ' + langCodes[p1]) + '</option>'; return '<option value="' + p1 + '"' + (langID === p1 ? ' selected' : '' ) + '>' + p1 + (p1 === 'All' ? '' : ' : ' + langCodes[p1]) + '</option>';
}); });
langSel.innerHTML = langList; langSel.innerHTML = langList;
@ -692,7 +704,8 @@ define([], function () {
var subjList = subjectArray.join('\r\n'); var subjList = subjectArray.join('\r\n');
subjList = subjList.replace(/^(.*)[\r\n]*/mg, function (p0, p1) { subjList = subjList.replace(/^(.*)[\r\n]*/mg, function (p0, p1) {
// DEV: innerText doesn't include hidden items // DEV: innerText doesn't include hidden items
if (p1 !== 'All' && !~langPanel.innerText.indexOf('_' + p1 + '_')) return ''; var rgxSubject = new RegExp('_?' + p1 + '[._]', 'i');
if (p1 !== 'All' && !rgxSubject.test(langPanel.innerText)) return '';
return '<option value="' + p1 + '"' + (subjID === p1 ? ' selected' : '') + '>' + p1 + '</option>'; return '<option value="' + p1 + '"' + (subjID === p1 ? ' selected' : '') + '>' + p1 + '</option>';
}); });
subjSel.innerHTML = subjList; subjSel.innerHTML = subjList;
@ -707,7 +720,7 @@ define([], function () {
}); });
} }
var links = downloadLinks.getElementsByTagName("a"); var links = downloadLinks.getElementsByTagName("a");
for (var i = 0; i < links.length; i++) { for (i = 0; i < links.length; i++) {
//Store the href - seems it's not useful? //Store the href - seems it's not useful?
//links[i].setAttribute("data-kiwix-dl", links[i].href); //links[i].setAttribute("data-kiwix-dl", links[i].href);
links[i].href = "#"; links[i].href = "#";
@ -737,11 +750,11 @@ define([], function () {
// Standardize the document for array extraction // Standardize the document for array extraction
function getStandardizedDoc(fromDoc) { function getStandardizedDoc(fromDoc) {
//Add back any missing carriage returns //Add back any missing carriage returns
var std = fromDoc.replace(/<\/span><span\b/ig, "\n"); var std = fromDoc.replace(/<\/span><span\b/ig, '\n');
//Delete all lines without a wiki pattern from language list //Delete all lines without a wiki pattern from language list
std = std.replace(/^(?![^_\n\r]+_(\w+)_.+$).*[\r\n]*/mg, ""); std = std.replace(/^(?![^_\n\r]+_([\w-]+)_.+$).*[\r\n]*/mg, '');
//Delete any hidden lines //Delete any hidden lines
std = std.replace(/^.*?display:\s*none;.*[\r\n]*/mg, ""); std = std.replace(/^.*?display:\s*none;.*[\r\n]*/mg, '');
return std; return std;
} }
@ -750,8 +763,9 @@ define([], function () {
//Get list of all languages //Get list of all languages
var langList = fromDoc.replace(/^[^_]+_([^_]+)_.+[\r\n]*/mg, '$1\n'); var langList = fromDoc.replace(/^[^_]+_([^_]+)_.+[\r\n]*/mg, '$1\n');
//Delete recurrences //Delete recurrences
langList = langList.replace(/\b(\w+\n)(?=[\s\S]*\b\1\n?)/g, ''); langList = langList.replace(/\b([\w-]+\n)(?=[\s\S]*\b\1\n?)/g, '');
langList = 'All\n' + langList; langList = 'All\n' + langList;
langList = langList.replace(/-/, '');
var langArray = langList.match(/^\w+$/mg); var langArray = langList.match(/^\w+$/mg);
//Sort list alphabetically //Sort list alphabetically
langArray.sort(); langArray.sort();
@ -761,12 +775,17 @@ define([], function () {
// Get list of subjects // Get list of subjects
function getSubjectArray(fromDoc) { function getSubjectArray(fromDoc) {
//Get list of all subjects //Get list of all subjects
var subList = fromDoc.replace(/^[^_]+_[^_]+_([^_]+).+[\r\n]*/mg, '$1\n'); var subList;
if (/^(?:[^._]+\.stack(?:exchange|overflow)|askubuntu|stackapps|stackoverflow|superuser|serverfault)/mi.test(fromDoc)) {
subList = fromDoc.replace(/^(?:.+(stackoverflow)|[^"]+"([^.]+)).+[\r\n]/img, '$1$2\n');
} else {
subList = fromDoc.replace(/^[^_]+_[^_]+_((?:[^_]|_(?!maxi|mini|nopic|\d\d\d\d))+).+[\r\n]*/mg, '$1\n');
}
//Delete recurrences //Delete recurrences
subList = subList.replace(/\b(\w+\n)(?=[\s\S]*\b\1\n?)/g, ''); subList = subList.replace(/\b([\w_-]+\n)(?=[\s\S]*\b\1\n?)/g, '');
//Remove 'all' //Remove 'all'
subList = subList.replace(/^all$/mi, ''); subList = subList.replace(/^all$/mi, '');
var subArray = subList.match(/^\w+$/mg); var subArray = subList.match(/^.+$/mg);
if (subArray) { if (subArray) {
//Sort list alphabetically //Sort list alphabetically
subArray.sort(); subArray.sort();