mirror of
https://github.com/kiwix/kiwix-js-pwa.git
synced 2025-09-10 04:40:27 -04:00
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:
parent
5a99359638
commit
c21c42cb65
@ -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 *******/
|
||||||
/*********************************/
|
/*********************************/
|
||||||
|
@ -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: ' + 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: ' + 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: ' + 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: ' + 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: ' + 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: ' + 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();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user