Close but with errors on TED and others

Former-commit-id: 6cf8190e0f1260e5a9caf4a5547cdf39ac210d4c [formerly f7424147328cb61f0236df69e9b8c3cffacae3f2] [formerly 558abbbaf21140d596d0ac93ca96237120360b06] [formerly fbb54fa7e385a1bb9caf1834efd0f5375d381d06 [formerly 3340c539f663cf50b10ac10e45555a662d77dc4d [formerly a667a252db041875cbaf121ff6998a5a4e0870c4]]]
Former-commit-id: 3411bc919e4bfa9673c74c4c4e22b8dbc68ec997 [formerly 9a864041d23080e329e61b065775fd55cbc47ff9 [formerly 7488cd149539f0477da27ca060b85f69d54813e2]]
Former-commit-id: 4d1dd1021ef718adf1f91f94fda4c6a0a318c647 [formerly 5423c07a04b36d959d1b9fd959ad8058a6c9f85a]
Former-commit-id: ee0518d24e1a92c5a9571fce44937b7991d49d97
This commit is contained in:
Jaifroid 2021-07-26 11:17:00 +01:00
parent 5a99359638
commit c21c42cb65
2 changed files with 42 additions and 19 deletions

View File

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

View File

@ -208,6 +208,7 @@ define([], function () {
pms: 'Piemontèis (Piedmontese)',
ps: 'پښتو (Pashto)',
pt: 'Português (Portuguese)',
ptbr: 'Português brasileiro (Brazilian Portuguese)',
qu: 'Runa Simi (Quechua)',
rm: 'Rumantsch (Raeto Romance)',
rmy: 'Romani / रोमानी (Romani)',
@ -549,11 +550,17 @@ define([], function () {
}
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 = 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;
//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;
var langSel = document.getElementById('langs');
@ -572,7 +579,7 @@ define([], function () {
if (subjSel) subjSel.value = subj || 'All';
if (dateSel) dateSel.value = kiwixDate || 'All';
}
if (typeof langArray !== "undefined") {
if (langArray && langSel) {
//Set up event listener for language selector
langSel.addEventListener("change", function () {
var dateID = dateSel ? dateSel.options[dateSel.selectedIndex].value : '';
@ -604,7 +611,8 @@ define([], function () {
var subjList = subjectArray.join('\r\n');
subjList = subjList.replace(/^(.*)[\r\n]*/mg, function (p0, p1) {
// 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>';
});
subjSel.innerHTML = subjList;
@ -618,7 +626,7 @@ define([], function () {
}
});
}
if (typeof subjectArray !== "undefined") {
if (subjectArray && subjSel) {
//Set up event listener for subject selector
subjSel.addEventListener("change", function () {
var langID = langSel ? langSel.options[langSel.selectedIndex].value : '';
@ -636,9 +644,11 @@ define([], function () {
// Prune the language list
if (langID === 'All') {
var langList = langArray.join('\r\n');
// We need to normalize language codes in langPanel (for Stackexchange)
// DEV: innerText doesn't include hidden items
var langTestPanel = langPanel.innerText.replace(/(_\w+)-(\w+_)/, '$1$2');
langList = langList.replace(/^(.*)[\r\n]*/mg, function (p0, p1) {
// DEV: innerText doesn't include hidden items
if (p1 !== 'All' && !~langPanel.innerText.indexOf('_' + p1 + '_')) return '';
if (p1 !== 'All' && !~langTestPanel.indexOf('_' + p1 + '_')) return '';
return '<option value="' + p1 + '"' + (langID === p1 ? ' selected' : '' ) + '>' + p1 + (p1 === 'All' ? '' : ' : ' + langCodes[p1]) + '</option>';
});
langSel.innerHTML = langList;
@ -662,7 +672,7 @@ define([], function () {
}
});
}
if (typeof dateArray !== "undefined") {
if (dateArray && dateSel) {
//Set up event listener for date selector
dateSel.addEventListener("change", function () {
var langID = langSel ? langSel.options[langSel.selectedIndex].value : '';
@ -680,9 +690,11 @@ define([], function () {
// Prune the language list
if (langID === 'All') {
var langList = langArray.join('\r\n');
// We need to normalize language codes in langPanel (for Stackexchange)
// DEV: innerText doesn't include hidden items
var langTestPanel = langPanel.innerText.replace(/(_\w+)-(\w+_)/, '$1$2');
langList = langList.replace(/^(.*)[\r\n]*/mg, function (p0, p1) {
// DEV: innerText doesn't include hidden items
if (p1 !== 'All' && !~langPanel.innerText.indexOf('_' + p1 + '_')) return '';
if (p1 !== 'All' && !~langTestPanel.indexOf('_' + p1 + '_')) return '';
return '<option value="' + p1 + '"' + (langID === p1 ? ' selected' : '' ) + '>' + p1 + (p1 === 'All' ? '' : ' : ' + langCodes[p1]) + '</option>';
});
langSel.innerHTML = langList;
@ -692,7 +704,8 @@ define([], function () {
var subjList = subjectArray.join('\r\n');
subjList = subjList.replace(/^(.*)[\r\n]*/mg, function (p0, p1) {
// 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>';
});
subjSel.innerHTML = subjList;
@ -707,7 +720,7 @@ define([], function () {
});
}
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?
//links[i].setAttribute("data-kiwix-dl", links[i].href);
links[i].href = "#";
@ -737,11 +750,11 @@ define([], function () {
// Standardize the document for array extraction
function getStandardizedDoc(fromDoc) {
//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
std = std.replace(/^(?![^_\n\r]+_(\w+)_.+$).*[\r\n]*/mg, "");
std = std.replace(/^(?![^_\n\r]+_([\w-]+)_.+$).*[\r\n]*/mg, '');
//Delete any hidden lines
std = std.replace(/^.*?display:\s*none;.*[\r\n]*/mg, "");
std = std.replace(/^.*?display:\s*none;.*[\r\n]*/mg, '');
return std;
}
@ -750,8 +763,9 @@ define([], function () {
//Get list of all languages
var langList = fromDoc.replace(/^[^_]+_([^_]+)_.+[\r\n]*/mg, '$1\n');
//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 = langList.replace(/-/, '');
var langArray = langList.match(/^\w+$/mg);
//Sort list alphabetically
langArray.sort();
@ -761,12 +775,17 @@ define([], function () {
// Get list of subjects
function getSubjectArray(fromDoc) {
//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
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'
subList = subList.replace(/^all$/mi, '');
var subArray = subList.match(/^\w+$/mg);
var subArray = subList.match(/^.+$/mg);
if (subArray) {
//Sort list alphabetically
subArray.sort();