Files
SpotX/js-helper/sectionBlock.js
amd64fox 91654f616f block subfeeds
- block subfeed filter chips if there was a blocking of podcasts on the main page
2024-09-03 17:22:10 +03:00

90 lines
3.6 KiB
JavaScript

function sectionBlock(e, type) {
// block subfeeds
if (type === "podcast" || type === "all") {
const style = document.createElement("style");
style.innerHTML = `
.cj6vRk3nFAi80HSVqX91,
.zbU90jX5VWUhVlpUda7B {
display: none !important;
}
`;
document.body.appendChild(style);
}
const body = e?.data?.home;
const sections = body?.sectionContainer?.sections?.items;
function removeSections() {
const sectionsData = [
{ id: '0JQ5IMCbQBLupUQrQFeCzx', name: 'Best of the Year' },
{ id: '0JQ5DAnM3wGh0gz1MXnu3C', name: 'Best of Artists / Tracks' },
{ id: '0JQ5DAnM3wGh0gz1MXnu4w', name: 'Best of songwriters' },
{ id: '0JQ5IMCbQBLhSb02SGYpDM', name: 'Biggest Indie Playlists' },
{ id: '0JQ5DAnM3wGh0gz1MXnu5g', name: 'Charts' },
{ id: '0JQ5DAnM3wGh0gz1MXnu3p', name: 'Dinner' },
{ id: '0JQ5DAob0KOew1FBAMSmBz', name: 'Featured Charts' },
{ id: '0JQ5DAob0JCuWaGLU6ntFY', name: 'Focus' },
{ id: '0JQ5DAnM3wGh0gz1MXnu3s', name: 'Fresh new music' },
{ id: '0JQ5DAob0LaV9FOMJ9utY5', name: 'Gaming music' },
{ id: '0JQ5DAnM3wGh0gz1MXnu3q', name: 'Happy' },
{ id: '0JQ5IMCbQBLiqrNCH9VvmA', name: 'ICE PHONK' },
{ id: '0JQ5DAnM3wGh0gz1MXnucG', name: 'Mood' },
{ id: '0JQ5DAob0JCuWaGLU6ntFT', name: 'Mood' },
{ id: '0JQ5IMCbQBLicmNERjnGn5', name: 'Most Listened 2023' },
{ id: '0JQ5DAob0Jr9ClCbkV4pZD', name: 'Music to game to' },
{ id: '0JQ5DAnM3wGh0gz1MXnu3B', name: 'Popular Albums / Artists' },
{ id: '0JQ5DAnM3wGh0gz1MXnu3D', name: 'Popular new releases' },
{ id: '0JQ5DAnM3wGh0gz1MXnu4h', name: 'Popular radio' },
{ id: '0JQ5DAnM3wGh0gz1MXnu3u', name: 'Sad' },
{ id: '0JQ5DAnM3wGh0gz1MXnu3w', name: 'Throwback' },
{ id: '0JQ5DAuChZYPe9iDhh2mJz', name: 'Throwback Thursday / Spotify Playlists' },
{ id: '0JQ5DAnM3wGh0gz1MXnu3M', name: 'Today`s biggest hits' },
{ id: '0JQ5DAnM3wGh0gz1MXnu3E', name: 'Trending now' },
{ id: '0JQ5DAnM3wGh0gz1MXnu3x', name: 'Workout' },
{ id: '0JQ5IMCbQBLqTJyy28YCa9', name: '?' },
{ id: '0JQ5IMCbQBLlC31GvtaB6w', name: '?' },
{ id: '0JQ5DAnM3wGh0gz1MXnu7R', name: '?' }
]
const sectionIdsRegex = new RegExp(sectionsData.map(section => section.id).join('|'));
for (let i = sections.length - 1; i >= 0; i--) {
const uri = sections[i]?.uri;
if (uri && uri.match(sectionIdsRegex)) {
sections.splice(i, 1);
}
}
}
function removePodcasts() {
if (Array.isArray(sections)) {
for (let i = 0; i < sections.length; i++) {
const sectionItems = sections[i]?.sectionItems?.items;
if (Array.isArray(sectionItems)) {
for (let j = 0; j < sectionItems.length; j++) {
const contentData = sectionItems[j]?.content?.data;
if (contentData && ["Podcast", "Audiobook", "Episode"].includes(contentData.__typename)) {
sectionItems.splice(j, 1);
j--;
}
}
}
}
}
}
if (body?.greeting && sections) {
if (type === "section" || type === "all") {
removeSections();
}
if (type === "podcast" || type === "all") {
removePodcasts();
}
}
}