Skip to content

Commit 0f018ba

Browse files
committed
Closes #995
1 parent 6177d5b commit 0f018ba

File tree

2 files changed

+68
-34
lines changed

2 files changed

+68
-34
lines changed

src/chrome/js/background-inject.js

Lines changed: 34 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2324,6 +2324,26 @@ function mainScript(extensionId, SettingData, defaultSettings) {
23242324

23252325
const FeatureVideoCount = (() => {
23262326

2327+
const onVideoCountData = (pageData, subCount, profileCounts) => {
2328+
2329+
if (!subCount?.["text"]?.["simpleText"]) {
2330+
return;
2331+
}
2332+
2333+
if (subCount["textChanged_"]) {
2334+
subCount["textChanged_"]?.({runs: [{text: profileCounts}]});
2335+
} else if (subCount.textContent === subCount["text"]["simpleText"]) {
2336+
subCount.textContent = profileCounts;
2337+
}
2338+
2339+
const parent = subCount.parentElement;
2340+
2341+
if (parent?.nodeName === "A") {
2342+
parent.title = subCount.textContent;
2343+
}
2344+
2345+
}
2346+
23272347
const onEvent = () => {
23282348

23292349
const subCount = document.getElementById("owner-sub-count");
@@ -2364,28 +2384,25 @@ function mainScript(extensionId, SettingData, defaultSettings) {
23642384
try {
23652385

23662386
const pageData = JSON.parse(matched);
2367-
const videosCountText = pageData?.header?.["c4TabbedHeaderRenderer"]?.["videosCountText"]?.["runs"]?.map((entry) => entry.text)?.join("");
2368-
2369-
if (videosCountText && subCount?.["text"]?.["simpleText"]) {
2387+
const metadataRows = pageData?.header
2388+
?.["pageHeaderRenderer"]
2389+
?.["content"]
2390+
?.["pageHeaderViewModel"]
2391+
?.["metadata"]
2392+
?.["contentMetadataViewModel"]
2393+
?.["metadataRows"];
23702394

2371-
if (subCount["textChanged_"]) {
2395+
if (metadataRows?.constructor === Array && metadataRows.length > 0) {
23722396

2373-
subCount["textChanged_"]?.({
2374-
runs: [
2375-
{text: subCount["text"]["simpleText"]},
2376-
{text: " ‧ "},
2377-
{text: videosCountText},
2378-
]
2379-
});
2397+
for (let i = metadataRows.length - 1; i >= 0; i--) {
23802398

2381-
} else if (subCount.textContent === subCount["text"]["simpleText"]) {
2382-
subCount.textContent = `${subCount["text"]["simpleText"]}${videosCountText}`;
2383-
}
2399+
const metadataParts = metadataRows[i]?.["metadataParts"];
23842400

2385-
const parent = subCount.parentElement;
2401+
if (metadataParts?.constructor === Array && metadataParts.length > 0) {
2402+
onVideoCountData(pageData, subCount, metadataParts.map((entry) => entry?.text?.content)?.join(" ‧ "));
2403+
break;
2404+
}
23862405

2387-
if (parent?.nodeName === "A") {
2388-
parent.title = subCount.textContent;
23892406
}
23902407

23912408
}

src/firefox/js/background-inject.js

Lines changed: 34 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2324,6 +2324,26 @@ function mainScript(extensionId, SettingData, defaultSettings) {
23242324

23252325
const FeatureVideoCount = (() => {
23262326

2327+
const onVideoCountData = (pageData, subCount, profileCounts) => {
2328+
2329+
if (!subCount?.["text"]?.["simpleText"]) {
2330+
return;
2331+
}
2332+
2333+
if (subCount["textChanged_"]) {
2334+
subCount["textChanged_"]?.({runs: [{text: profileCounts}]});
2335+
} else if (subCount.textContent === subCount["text"]["simpleText"]) {
2336+
subCount.textContent = profileCounts;
2337+
}
2338+
2339+
const parent = subCount.parentElement;
2340+
2341+
if (parent?.nodeName === "A") {
2342+
parent.title = subCount.textContent;
2343+
}
2344+
2345+
}
2346+
23272347
const onEvent = () => {
23282348

23292349
const subCount = document.getElementById("owner-sub-count");
@@ -2364,28 +2384,25 @@ function mainScript(extensionId, SettingData, defaultSettings) {
23642384
try {
23652385

23662386
const pageData = JSON.parse(matched);
2367-
const videosCountText = pageData?.header?.["c4TabbedHeaderRenderer"]?.["videosCountText"]?.["runs"]?.map((entry) => entry.text)?.join("");
2368-
2369-
if (videosCountText && subCount?.["text"]?.["simpleText"]) {
2387+
const metadataRows = pageData?.header
2388+
?.["pageHeaderRenderer"]
2389+
?.["content"]
2390+
?.["pageHeaderViewModel"]
2391+
?.["metadata"]
2392+
?.["contentMetadataViewModel"]
2393+
?.["metadataRows"];
23702394

2371-
if (subCount["textChanged_"]) {
2395+
if (metadataRows?.constructor === Array && metadataRows.length > 0) {
23722396

2373-
subCount["textChanged_"]?.({
2374-
runs: [
2375-
{text: subCount["text"]["simpleText"]},
2376-
{text: " ‧ "},
2377-
{text: videosCountText},
2378-
]
2379-
});
2397+
for (let i = metadataRows.length - 1; i >= 0; i--) {
23802398

2381-
} else if (subCount.textContent === subCount["text"]["simpleText"]) {
2382-
subCount.textContent = `${subCount["text"]["simpleText"]}${videosCountText}`;
2383-
}
2399+
const metadataParts = metadataRows[i]?.["metadataParts"];
23842400

2385-
const parent = subCount.parentElement;
2401+
if (metadataParts?.constructor === Array && metadataParts.length > 0) {
2402+
onVideoCountData(pageData, subCount, metadataParts.map((entry) => entry?.text?.content)?.join(" ‧ "));
2403+
break;
2404+
}
23862405

2387-
if (parent?.nodeName === "A") {
2388-
parent.title = subCount.textContent;
23892406
}
23902407

23912408
}

0 commit comments

Comments
 (0)