Skip to content

Commit b909df9

Browse files
authored
Merge pull request #1073 from Araxeus/add-starting-page-option
add starting page option
2 parents 4364d3b + af569c3 commit b909df9

File tree

4 files changed

+51
-5
lines changed

4 files changed

+51
-5
lines changed

config/defaults.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ const defaultConfig = {
1616
autoResetAppCache: false,
1717
resumeOnStart: true,
1818
proxy: "",
19+
startingPage: "",
1920
},
2021
plugins: {
2122
// Enabled plugins

menu.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ const { restart } = require("./providers/app-controls");
77

88
const { getAllPlugins } = require("./plugins/utils");
99
const config = require("./config");
10+
const { startingPages } = require("./providers/extracted-data");
1011

1112
const prompt = require("custom-electron-prompt");
1213
const promptOptions = require("./providers/prompt-options");
@@ -81,6 +82,17 @@ const mainMenuTemplate = (win) => {
8182
config.setMenuOption("options.resumeOnStart", item.checked);
8283
},
8384
},
85+
{
86+
label: 'Starting page',
87+
submenu: Object.keys(startingPages).map((name) => ({
88+
label: name,
89+
type: 'radio',
90+
checked: config.get('options.startingPage') === name,
91+
click: () => {
92+
config.set('options.startingPage', name);
93+
},
94+
}))
95+
},
8496
{
8597
label: "Visual Tweaks",
8698
submenu: [

preload.js

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,12 @@ const { setupSongControls } = require("./providers/song-controls-front");
55
const { ipcRenderer } = require("electron");
66
const is = require("electron-is");
77

8+
const { startingPages } = require("./providers/extracted-data");
9+
810
const plugins = config.plugins.getEnabled();
911

12+
const $ = document.querySelector.bind(document);
13+
1014
let api;
1115

1216
plugins.forEach(async ([plugin, options]) => {
@@ -79,14 +83,14 @@ document.addEventListener("DOMContentLoaded", () => {
7983
});
8084

8185
function listenForApiLoad() {
82-
api = document.querySelector('#movie_player');
86+
api = $('#movie_player');
8387
if (api) {
8488
onApiLoaded();
8589
return;
8690
}
8791

8892
const observer = new MutationObserver(() => {
89-
api = document.querySelector('#movie_player');
93+
api = $('#movie_player');
9094
if (api) {
9195
observer.disconnect();
9296
onApiLoaded();
@@ -97,7 +101,7 @@ function listenForApiLoad() {
97101
}
98102

99103
function onApiLoaded() {
100-
const video = document.querySelector("video");
104+
const video = $("video");
101105
const audioContext = new AudioContext();
102106
const audioSource = audioContext.createMediaElementSource(video);
103107
audioSource.connect(audioContext.destination);
@@ -127,9 +131,15 @@ function onApiLoaded() {
127131
document.dispatchEvent(new CustomEvent('apiLoaded', { detail: api }));
128132
ipcRenderer.send('apiLoaded');
129133

134+
// Navigate to "Starting page"
135+
const startingPage = config.get("options.startingPage");
136+
if (startingPage && startingPages[startingPage]) {
137+
$('ytmusic-app')?.navigate_(startingPages[startingPage]);
138+
}
139+
130140
// Remove upgrade button
131141
if (config.get("options.removeUpgradeButton")) {
132-
const upgradeButton = document.querySelector('ytmusic-pivot-bar-item-renderer[tab-id="SPunlimited"]')
142+
const upgradeButton = $('ytmusic-pivot-bar-item-renderer[tab-id="SPunlimited"]')
133143
if (upgradeButton) {
134144
upgradeButton.style.display = "none";
135145
}
@@ -139,7 +149,7 @@ function onApiLoaded() {
139149
// Hide / Force show like buttons
140150
const likeButtonsOptions = config.get("options.likeButtons");
141151
if (likeButtonsOptions) {
142-
const likeButtons = document.querySelector("ytmusic-like-button-renderer");
152+
const likeButtons = $("ytmusic-like-button-renderer");
143153
if (likeButtons) {
144154
likeButtons.style.display =
145155
{

providers/extracted-data.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
const startingPages = {
2+
Default: '',
3+
Home: 'FEmusic_home',
4+
Explore: 'FEmusic_explore',
5+
'New Releases': 'FEmusic_new_releases',
6+
Charts: 'FEmusic_charts',
7+
'Moods & Genres': 'FEmusic_moods_and_genres',
8+
Library: 'FEmusic_library_landing',
9+
Playlists: 'FEmusic_liked_playlists',
10+
Songs: 'FEmusic_liked_videos',
11+
Albums: 'FEmusic_liked_albums',
12+
Artists: 'FEmusic_library_corpus_track_artists',
13+
'Subscribed Artists': 'FEmusic_library_corpus_artists',
14+
Uploads: 'FEmusic_library_privately_owned_landing',
15+
'Uploaded Playlists': 'FEmusic_liked_playlists',
16+
'Uploaded Songs': 'FEmusic_library_privately_owned_tracks',
17+
'Uploaded Albums': 'FEmusic_library_privately_owned_releases',
18+
'Uploaded Artists': 'FEmusic_library_privately_owned_artists',
19+
};
20+
21+
module.exports = {
22+
startingPages,
23+
};

0 commit comments

Comments
 (0)