Adjusting redirect banner desc based on tags

pull/400/head
Kevin Payravi 2023-12-18 00:34:37 -05:00
parent 687d45e572
commit f91d8600e2
1 changed files with 26 additions and 15 deletions

View File

@ -34,7 +34,8 @@ async function getData() {
"destination_platform": site.destination_platform, "destination_platform": site.destination_platform,
"destination_icon": site.destination_icon, "destination_icon": site.destination_icon,
"destination_main_page": site.destination_main_page, "destination_main_page": site.destination_main_page,
"lang": LANGS[i] "lang": LANGS[i],
"tags": site.tags || []
}) })
}) })
}); });
@ -44,7 +45,7 @@ async function getData() {
return sites; return sites;
} }
function displayRedirectBanner(newUrl, id, destinationName, destinationLanguage, storage) { function displayRedirectBanner(newUrl, id, destinationName, destinationLanguage, tags, storage) {
// Output CSS // Output CSS
styleString = ` styleString = `
#indie-wiki-banner { #indie-wiki-banner {
@ -106,21 +107,21 @@ function displayRedirectBanner(newUrl, id, destinationName, destinationLanguage,
document.head.append(style); document.head.append(style);
// Output banner // Output banner
var banner = document.createElement('div'); let banner = document.createElement('div');
banner.id = 'indie-wiki-banner'; banner.id = 'indie-wiki-banner';
var bannerExit = document.createElement('div'); let bannerExit = document.createElement('div');
bannerExit.id = 'indie-wiki-banner-exit'; bannerExit.id = 'indie-wiki-banner-exit';
banner.appendChild(bannerExit); banner.appendChild(bannerExit);
bannerExit.textContent = '✕'; bannerExit.textContent = '✕';
bannerExit.onclick = function () { this.parentElement.remove(); }; bannerExit.onclick = function () { this.parentElement.remove(); };
// Output control links container // Output control links container
var bannerControls = document.createElement('div'); let bannerControls = document.createElement('div');
bannerControls.id = 'indie-wiki-banner-controls'; bannerControls.id = 'indie-wiki-banner-controls';
banner.appendChild(bannerControls); banner.appendChild(bannerControls);
// Output "restore banner" link // Output "restore banner" link
var bannerRestoreLink = document.createElement('div'); let bannerRestoreLink = document.createElement('div');
bannerRestoreLink.id = 'indie-wiki-banner-restore'; bannerRestoreLink.id = 'indie-wiki-banner-restore';
bannerRestoreLink.classList.add('indie-wiki-banner-link'); bannerRestoreLink.classList.add('indie-wiki-banner-link');
bannerRestoreLink.classList.add('indie-wiki-banner-link-small'); bannerRestoreLink.classList.add('indie-wiki-banner-link-small');
@ -141,7 +142,7 @@ function displayRedirectBanner(newUrl, id, destinationName, destinationLanguage,
} }
// Output "disable banner" link // Output "disable banner" link
var bannerDisableLink = document.createElement('div'); let bannerDisableLink = document.createElement('div');
bannerDisableLink.id = 'indie-wiki-banner-disable'; bannerDisableLink.id = 'indie-wiki-banner-disable';
bannerDisableLink.classList.add('indie-wiki-banner-link'); bannerDisableLink.classList.add('indie-wiki-banner-link');
bannerDisableLink.classList.add('indie-wiki-banner-link-small'); bannerDisableLink.classList.add('indie-wiki-banner-link-small');
@ -162,7 +163,7 @@ function displayRedirectBanner(newUrl, id, destinationName, destinationLanguage,
} }
// Output "auto redirect" link // Output "auto redirect" link
var bannerRedirectLink = document.createElement('div'); let bannerRedirectLink = document.createElement('div');
bannerRedirectLink.id = 'indie-wiki-banner-redirect'; bannerRedirectLink.id = 'indie-wiki-banner-redirect';
bannerRedirectLink.classList.add('indie-wiki-banner-link'); bannerRedirectLink.classList.add('indie-wiki-banner-link');
bannerRedirectLink.classList.add('indie-wiki-banner-link-small'); bannerRedirectLink.classList.add('indie-wiki-banner-link-small');
@ -183,15 +184,25 @@ function displayRedirectBanner(newUrl, id, destinationName, destinationLanguage,
} }
// Output main banner text // Output main banner text
var bannerText = document.createElement('span'); let bannerText = document.createElement('span');
bannerText.classList.add('indie-wiki-banner-big-text'); bannerText.classList.add('indie-wiki-banner-big-text');
banner.appendChild(bannerText); banner.appendChild(bannerText);
if (destinationLanguage === 'EN' && location.href.match(/fandom\.com\/[a-z]{2}\/wiki\//)) {
bannerText.textContent = 'There is an independent wiki covering this topic in English!'; // Build descriptor
} else { let descriptor = 'an independent';
bannerText.textContent = 'There is an independent wiki covering this topic!'; if (tags.includes('wiki.gg')) {
descriptor = 'a wiki.gg';
} }
var bannerWikiLink = document.createElement('a'); if (tags.includes('official')) {
descriptor = 'an official ' + descriptor.split(" ").slice(-1);
}
if (destinationLanguage === 'EN' && location.href.match(/fandom\.com\/[a-z]{2}\/wiki\//)) {
bannerText.textContent = 'There is ' + descriptor + ' wiki covering this topic in English!';
} else {
bannerText.textContent = 'There is ' + descriptor + ' wiki covering this topic!';
}
let bannerWikiLink = document.createElement('a');
bannerWikiLink.classList.add('indie-wiki-banner-link'); bannerWikiLink.classList.add('indie-wiki-banner-link');
bannerText.appendChild(bannerWikiLink); bannerText.appendChild(bannerWikiLink);
bannerWikiLink.href = newUrl; bannerWikiLink.href = newUrl;
@ -302,7 +313,7 @@ function main() {
const headElement = document.querySelector('head'); const headElement = document.querySelector('head');
if (headElement) { if (headElement) {
try { try {
displayRedirectBanner(newURL, site['id'], site['destination'], site['lang'], storage); displayRedirectBanner(newURL, site['id'], site['destination'], site['lang'], site['tags'], storage);
} finally { } finally {
mutationInstance.disconnect(); mutationInstance.disconnect();
} }