ml_vpc: added options to use cookies from browsers and enable/disable the mod completely

This commit is contained in:
kafeijao 2025-11-18 14:53:59 +00:00
parent da9dc508d0
commit 7ada4c4d86
No known key found for this signature in database
GPG key ID: E99978723E454B4C
7 changed files with 302 additions and 3 deletions

View file

@ -1,3 +1,4 @@
using System;
using ABI_RC.VideoPlayer;
using System.Reflection;
using System.IO;
@ -10,6 +11,7 @@ namespace ml_vpc
public override void OnInitializeMelon()
{
Settings.Init();
HarmonyInstance.Patch(typeof(YoutubeDl).GetMethod("GetVideoMetaDataAsync", BindingFlags.NonPublic | BindingFlags.Static),
new HarmonyLib.HarmonyMethod(typeof(VideoPlayerCookies).GetMethod(nameof(OnGetYoutubeVideoMetaData_Prefix), BindingFlags.NonPublic | BindingFlags.Static))
);
@ -19,8 +21,52 @@ namespace ml_vpc
static void OnGetYoutubeVideoMetaData_Prefix(ref string parameter)
{
if(File.Exists(ms_cookiesPath))
parameter += string.Format(" --cookies \"{0}\"", ms_cookiesPath);
try
{
if (!Settings.Enabled)
return;
switch (Settings.Mode)
{
case Settings.CookieMode.File:
if (File.Exists(ms_cookiesPath))
parameter += string.Format(" --cookies \"{0}\"", ms_cookiesPath);
else
MelonLoader.MelonLogger.Warning("Cookies file not found in: '" + ms_cookiesPath + "'");
break;
case Settings.CookieMode.BrowserFirefox:
parameter += " --cookies-from-browser firefox";
break;
case Settings.CookieMode.BrowserBrave:
parameter += " --cookies-from-browser brave";
break;
case Settings.CookieMode.BrowserChrome:
parameter += " --cookies-from-browser chrome";
break;
case Settings.CookieMode.BrowserChromium:
parameter += " --cookies-from-browser chromium";
break;
case Settings.CookieMode.BrowserEdge:
parameter += " --cookies-from-browser edge";
break;
case Settings.CookieMode.BrowserOpera:
parameter += " --cookies-from-browser opera";
break;
case Settings.CookieMode.BrowserSafari:
parameter += " --cookies-from-browser safari";
break;
case Settings.CookieMode.BrowserVivaldi:
parameter += " --cookies-from-browser vivaldi";
break;
case Settings.CookieMode.BrowserWhale:
parameter += " --cookies-from-browser whale";
break;
}
}
catch(Exception e)
{
MelonLoader.MelonLogger.Warning(e);
}
}
}
}