mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-10 10:11:46 +00:00
setup SongInfo **once**
This commit is contained in:
2
index.js
2
index.js
@ -11,6 +11,7 @@ const { setApplicationMenu } = require("./menu");
|
||||
const { fileExists, injectCSS } = require("./plugins/utils");
|
||||
const { isTesting } = require("./utils/testing");
|
||||
const { setUpTray } = require("./tray");
|
||||
const { setupSongInfo } = require("./providers/song-info");
|
||||
|
||||
// Catch errors and log them
|
||||
unhandled({
|
||||
@ -157,6 +158,7 @@ function createMainWindow() {
|
||||
}
|
||||
|
||||
app.once("browser-window-created", (event, win) => {
|
||||
setupSongInfo(win);
|
||||
loadPlugins(win);
|
||||
|
||||
win.webContents.on("did-fail-load", (
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
const Discord = require("discord-rpc");
|
||||
|
||||
const getSongInfo = require("../../providers/song-info");
|
||||
const registerCallback = require("../../providers/song-info");
|
||||
|
||||
const rpc = new Discord.Client({
|
||||
transport: "ipc",
|
||||
@ -12,8 +12,6 @@ const clientId = "790655993809338398";
|
||||
let clearActivity;
|
||||
|
||||
module.exports = (win, {activityTimoutEnabled, activityTimoutTime}) => {
|
||||
const registerCallback = getSongInfo(win);
|
||||
|
||||
// If the page is ready, register the callback
|
||||
win.once("ready-to-show", () => {
|
||||
rpc.once("ready", () => {
|
||||
|
||||
@ -4,7 +4,7 @@ const { join } = require("path");
|
||||
const ID3Writer = require("browser-id3-writer");
|
||||
const { dialog, ipcMain } = require("electron");
|
||||
|
||||
const getSongInfo = require("../../providers/song-info");
|
||||
const registerCallback = require("../../providers/song-info");
|
||||
const { injectCSS, listenAction } = require("../utils");
|
||||
const { cropMaxWidth } = require("./utils");
|
||||
const { ACTIONS, CHANNEL } = require("./actions.js");
|
||||
@ -25,7 +25,6 @@ let nowPlayingMetadata = {};
|
||||
|
||||
function handle(win) {
|
||||
injectCSS(win.webContents, join(__dirname, "style.css"));
|
||||
const registerCallback = getSongInfo(win);
|
||||
registerCallback((info) => {
|
||||
nowPlayingMetadata = info;
|
||||
});
|
||||
|
||||
@ -2,7 +2,7 @@ const fetch = require('node-fetch');
|
||||
const md5 = require('md5');
|
||||
const { shell } = require('electron');
|
||||
const { setOptions } = require('../../config/plugins');
|
||||
const getSongInfo = require('../../providers/song-info');
|
||||
const registerCallback = require('../../providers/song-info');
|
||||
const defaultConfig = require('../../config/defaults');
|
||||
|
||||
const createFormData = params => {
|
||||
@ -128,9 +128,7 @@ const setNowPlaying = (songInfo, config) => {
|
||||
// this will store the timeout that will trigger addScrobble
|
||||
let scrobbleTimer = undefined;
|
||||
|
||||
const lastfm = async (win, config) => {
|
||||
const registerCallback = getSongInfo(win);
|
||||
|
||||
const lastfm = async (_win, config) => {
|
||||
if (!config.api_root) {
|
||||
// settings are not present, creating them with the default values
|
||||
config = defaultConfig.plugins['last-fm'];
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
const { Notification } = require("electron");
|
||||
const is = require("electron-is");
|
||||
const getSongInfo = require("../../providers/song-info");
|
||||
const registerCallback = require("../../providers/song-info");
|
||||
const { notificationImage } = require("./utils");
|
||||
|
||||
const { setupInteractive, notifyInteractive } = require("./interactive")
|
||||
@ -29,7 +29,6 @@ module.exports = (win, options) => {
|
||||
if (isInteractive) {
|
||||
setupInteractive(win, options.unpauseNotification);
|
||||
}
|
||||
const registerCallback = getSongInfo(win);
|
||||
let oldNotification;
|
||||
let oldURL = "";
|
||||
win.once("ready-to-show", () => {
|
||||
|
||||
@ -1,12 +1,11 @@
|
||||
const getSongControls = require('../../providers/song-controls');
|
||||
const getSongInfo = require('../../providers/song-info');
|
||||
const registerCallback = require('../../providers/song-info');
|
||||
const path = require('path');
|
||||
|
||||
let controls;
|
||||
let currentSongInfo;
|
||||
|
||||
module.exports = win => {
|
||||
const registerCallback = getSongInfo(win);
|
||||
const { playPause, next, previous } = getSongControls(win);
|
||||
controls = { playPause, next, previous };
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@ const {
|
||||
TouchBarScrubber,
|
||||
} = TouchBar;
|
||||
|
||||
const getSongInfo = require("../../providers/song-info");
|
||||
const registerCallback = require("../../providers/song-info");
|
||||
const getSongControls = require("../../providers/song-controls");
|
||||
|
||||
// Songtitle label
|
||||
@ -59,7 +59,6 @@ const touchBar = new TouchBar({
|
||||
});
|
||||
|
||||
module.exports = (win) => {
|
||||
const registerCallback = getSongInfo(win);
|
||||
const { playPause, next, previous, like, dislike } = getSongControls(win);
|
||||
|
||||
// If the page is ready, register the callback
|
||||
|
||||
@ -51,6 +51,7 @@ const songInfo = {
|
||||
};
|
||||
|
||||
const handleData = async (responseText, win) => {
|
||||
console.log("handling song-info")
|
||||
let data = JSON.parse(responseText);
|
||||
songInfo.title = data?.videoDetails?.title;
|
||||
songInfo.artist = await getArtist(win) || cleanupArtistName(data?.videoDetails?.author);
|
||||
@ -64,15 +65,15 @@ const handleData = async (responseText, win) => {
|
||||
win.webContents.send("update-song-info", JSON.stringify(songInfo));
|
||||
};
|
||||
|
||||
// This variable will be filled with the callbacks once they register
|
||||
const callbacks = [];
|
||||
|
||||
// This function will allow plugins to register callback that will be triggered when data changes
|
||||
const registerCallback = (callback) => {
|
||||
callbacks.push(callback);
|
||||
};
|
||||
|
||||
const registerProvider = (win) => {
|
||||
// This variable will be filled with the callbacks once they register
|
||||
const callbacks = [];
|
||||
|
||||
// This function will allow plugins to register callback that will be triggered when data changes
|
||||
const registerCallback = (callback) => {
|
||||
callbacks.push(callback);
|
||||
};
|
||||
|
||||
win.on("page-title-updated", async () => {
|
||||
// Get and set the new data
|
||||
songInfo.isPaused = await getPausedStatus(win);
|
||||
@ -93,8 +94,6 @@ const registerProvider = (win) => {
|
||||
c(songInfo);
|
||||
});
|
||||
});
|
||||
|
||||
return registerCallback;
|
||||
};
|
||||
|
||||
const suffixesToRemove = [' - Topic', 'VEVO'];
|
||||
@ -110,7 +109,8 @@ function cleanupArtistName(artist) {
|
||||
return artist;
|
||||
}
|
||||
|
||||
module.exports = registerProvider;
|
||||
module.exports = registerCallback;
|
||||
module.exports.setupSongInfo = registerProvider;
|
||||
module.exports.getImage = getImage;
|
||||
module.exports.cleanupArtistName = cleanupArtistName;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user