docs/website: fixing js for the new feed source

Feed source is moved to a local atom file available on the web server to
remove further problems with unreliable feed sources.
Moving the feed required a bit of refactor of the load_activity function
so it won't download two times te same url.

This change requires a cron job like this enabled on the website:
* * * * * wget -O new.atom https://lore.kernel.org/buildroot/new.atom

Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Angelo Compagnucci
2022-09-25 18:03:20 +02:00
committed by Thomas Petazzoni
parent ee7cf14b51
commit ca97c78ee0

View File

@@ -1,24 +1,23 @@
function load_activity(feedurl, divid) { function display_activity(result, activity) {
let container = document.getElementById(divid);
$.ajax({
url: "https://cors-anywhere.herokuapp.com/" + feedurl
})
.done(function(data){
let x2js = new X2JS();
let result = x2js.xml_str2json(data.documentElement.outerHTML);
let loaded = 0; let loaded = 0;
let nb_display = 8; let nb_display = 8;
let container;
if (result==null) return; if (result==null) return;
for (let i = 0; i < result.feed.entry.length; i++) { for (let i = 0; i < result.feed.entry.length; i++) {
let entry = result.feed.entry[i]; let entry = result.feed.entry[i];
if (entry.title.indexOf("git commit") !== -1) if (activity==="commit" && entry.title.toString().indexOf("git commit") !== -1) {
container = document.getElementById("commit-activity");
} else if (activity==="mailing-list" && entry.title.toString().indexOf("git commit") === -1) {
container = document.getElementById("mailing-list-activity");
} else {
continue; continue;
loaded += 1; }
loaded += 1
if (loaded > nb_display) if (loaded > nb_display)
break; break;
let div = document.createElement("p"); let div = document.createElement("p");
let link = document.createElement("a"); let link = document.createElement("a");
let d = new Date(entry.published); let d = new Date(entry.updated);
let data = '[' + d.toLocaleDateString() + '] ' + entry.title; let data = '[' + d.toLocaleDateString() + '] ' + entry.title;
let text = document.createTextNode(data); let text = document.createTextNode(data);
link.appendChild(text); link.appendChild(text);
@@ -27,13 +26,25 @@ function load_activity(feedurl, divid) {
div.appendChild(link); div.appendChild(link);
container.appendChild(div); container.appendChild(div);
} }
let empty = nb_display - loaded; for (let i = 0; i < (nb_display - loaded); i++) {
for (let i = 0; i < empty; i++) {
container.appendChild(document.createElement("p")); container.appendChild(document.createElement("p"));
} }
}
function load_activity(feedurl) {
$.ajax({
url: feedurl
})
.done(function(data){
let x2js = new X2JS();
let result = x2js.xml_str2json(data.documentElement.outerHTML);
display_activity(result, "commit");
display_activity(result, "mailing-list");
}); });
} }
function google_analytics() { function google_analytics() {
let _gaq = _gaq || []; let _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-21761074-1']); _gaq.push(['_setAccount', 'UA-21761074-1']);
@@ -86,8 +97,7 @@ jQuery(document).ready(function($) {
url = url.split(/[\\/]/).pop(); url = url.split(/[\\/]/).pop();
$('.nav a[href="/' + url + '"]').parent().addClass('active'); $('.nav a[href="/' + url + '"]').parent().addClass('active');
load_activity("http://buildroot-busybox.2317881.n4.nabble.com/Buildroot-busybox-ft2.xml", "mailing-list-activity"); load_activity("/new.atom");
load_activity("http://git.buildroot.org/buildroot/atom/?h=master", "commit-activity");
$('#slides').html('<iframe src="https://docs.google.com/gview?url=http://bootlin.com/doc/training/buildroot/buildroot-slides.pdf&embedded=true" style="position:absolute; width:100%; height:100%; top:0; left:0;" frameborder="0"></iframe>') $('#slides').html('<iframe src="https://docs.google.com/gview?url=http://bootlin.com/doc/training/buildroot/buildroot-slides.pdf&embedded=true" style="position:absolute; width:100%; height:100%; top:0; left:0;" frameborder="0"></iframe>')
}); });