removed browser bypass, small fixes

removed browser bypass for funimation
small fixes
This commit is contained in:
hama3254 2021-06-20 19:02:55 +02:00
parent 24ad3774ca
commit c4ea1510ac
21 changed files with 325 additions and 242 deletions

Binary file not shown.

10
CRD-addon/inject_beta.js Normal file
View File

@ -0,0 +1,10 @@
var episodeCount = document.getElementsByClassName("c-playable-card__link").length;
var i;
for (i = 0; i < episodeCount; i++) {
var old_element = document.getElementsByClassName("c-playable-card__link")[i];
var new_element = old_element.cloneNode(true);
old_element.parentNode.replaceChild(new_element, old_element);
document.getElementsByClassName("c-playable-card__link")[i].setAttribute('href', "javascript:" + document.getElementsByClassName("c-playable-card__link")[i].href);
document.getElementsByClassName("c-playable-card__link")[i].setAttribute('onclick', 'this.classList.contains("CRD-Selected")?(this.classList.remove("CRD-Selected"),this.style.background="#000000",this.style.opacity="0"):(this.classList.add("CRD-Selected"),this.style.background="#f78c25",this.style.opacity="0.5");');
}

View File

@ -0,0 +1,11 @@
var episodeCount = document.getElementsByClassName("episode-card").length;
var i;
for (i = 0; i < episodeCount; i++) {
var old_element = document.getElementsByClassName("episode-card")[i];
var new_element = old_element.cloneNode(true);
old_element.parentNode.replaceChild(new_element, old_element);
document.getElementsByClassName("episode-card")[i].classList.remove('transparent')
document.getElementsByClassName("episode-card")[i].setAttribute('href', "javascript:" + document.getElementsByClassName("episode-card")[i].href);
document.getElementsByClassName("episode-card")[i].setAttribute('onclick', 'this.classList.contains("CRD-Selected")?(this.classList.remove("CRD-Selected"),this.style.background="#000000",this.style.borderStyle="none",this.style.opacity="1"):(this.classList.add("CRD-Selected"),this.style.background="#400099",this.style.borderStyle="solid", this.style.borderColor="#400099", this.style.borderWidth = "10px");');
}

View File

@ -1,7 +1,7 @@
{ {
"manifest_version": 2, "manifest_version": 2,
"name": "Crunchyroll Downloader Addon", "name": "Crunchyroll Downloader Addon",
"version": "0.5.0", "version": "0.6.0",
"description": "A Firefox Addon for my Crunchyroll Downloader", "description": "A Firefox Addon for my Crunchyroll Downloader",
@ -16,6 +16,14 @@
"http://127.0.0.1/*", "http://127.0.0.1/*",
"tabs" "tabs"
], ],
"content_scripts": [
{
"all_frames": true,
"matches": ["http://beta.crunchyroll.com/*", "https://beta.crunchyroll.com/*"],
"match_about_blank": true,
"js": ["inject_beta.js"]
}
],
"browser_action": { "browser_action": {
"default_icon": { "default_icon": {

View File

@ -27,11 +27,21 @@ function getServerValue(request, sender, sendResponse) {
let tab = tabs[0]; // Safe to assume there will only be one resultconsole.log(tab.url); let tab = tabs[0]; // Safe to assume there will only be one resultconsole.log(tab.url);
console.log(tab.url); console.log(tab.url);
if (tab.url.includes('crunchyroll.com')) { if (tab.url.includes('crunchyroll.com')) {
var crunchyroll = browser.tabs.executeScript({ if (tab.url.includes('beta.crunchyroll.com')) {
code: 'document.getElementsByClassName("episode")[0].href;' var crunchyroll = browser.tabs.executeScript({
}); code: 'document.getElementsByClassName("c-playable-card__link")[0].href;'
});
crunchyroll.then(onExecuted, onError); crunchyroll.then(onExecuted, onError);
} else {
var crunchyroll = browser.tabs.executeScript({
code: 'document.getElementsByClassName("episode")[0].href;'
});
crunchyroll.then(onExecuted, onError);
}
} else if (tab.url.includes('funimation.com')) { } else if (tab.url.includes('funimation.com')) {
@ -39,7 +49,7 @@ function getServerValue(request, sender, sendResponse) {
code: 'document.getElementsByClassName("trackVideo")[0].href' code: 'document.getElementsByClassName("trackVideo")[0].href'
}); });
funimation.then(FunimationSuccess, FunimationError); funimation.then(FunimationSuccess, FunimationOldNotFound);
} else if (tab.url.includes('anime-on-demand.de/anime/')) { } else if (tab.url.includes('anime-on-demand.de/anime/')) {
document.getElementById("btn_add").hidden = true; document.getElementById("btn_add").hidden = true;
@ -136,20 +146,46 @@ document.getElementById('btn_add_AoD').addEventListener('click', () => {
}); });
document.getElementById('btn_enable_select').addEventListener('click', () => { document.getElementById('btn_enable_select').addEventListener('click', () => {
browser.tabs.executeScript({
code: 'var script=document.createElement("script");script.type="text/javascript",script.src="http://127.0.0.1:' + Port + '/inject.js",document.head.appendChild(script);'
}); //load script from local CRD Server included in https://github.com/hama3254/Crunchyroll-Downloader-v3.0
document.getElementById("btn_add_mass").hidden = false; browser.tabs.query({
document.getElementById("btn_select_all").hidden = false; currentWindow: true,
document.getElementById("btn_select_none").hidden = false; active: true
document.getElementById("btn_enable_select").hidden = true; }).then((tabs) => {
document.getElementById("btn_add").hidden = true;
document.getElementById("btn_enable_funimation_select").hidden = true; let tab = tabs[0]; // Safe to assume there will only be one resultconsole.log(tab.url);
document.getElementById("btn_add_funimation").hidden = true; console.log(tab.url);
document.getElementById("btn_add_AoD").hidden = true;
if (tab.url.includes('beta.crunchyroll.com')) {
let executing = browser.tabs.executeScript({
file: "inject_beta.js"
});
executing.then(OnChange);
} else {
browser.tabs.executeScript({
code: 'var script=document.createElement("script");script.type="text/javascript",script.src="http://127.0.0.1:' + Port + '/inject.js",document.head.appendChild(script);'
}); //load script from local CRD Server included in https://github.com/hama3254/Crunchyroll-Downloader-v3.0
document.getElementById("btn_add_mass").hidden = false;
document.getElementById("btn_select_all").hidden = false;
document.getElementById("btn_select_none").hidden = false;
document.getElementById("btn_enable_select").hidden = true;
document.getElementById("btn_add").hidden = true;
document.getElementById("btn_enable_funimation_select").hidden = true;
document.getElementById("btn_add_funimation").hidden = true;
document.getElementById("btn_add_AoD").hidden = true;
}
}, console.error)
}); });
function OnChange(result) {
window.close()
}
document.getElementById('btn_select_all').addEventListener('click', () => { document.getElementById('btn_select_all').addEventListener('click', () => {
browser.tabs.query({ browser.tabs.query({
currentWindow: true, currentWindow: true,
@ -157,8 +193,13 @@ document.getElementById('btn_select_all').addEventListener('click', () => {
}).then((tabs) => { }).then((tabs) => {
let tab = tabs[0]; let tab = tabs[0];
if (tab.url.includes('beta.crunchyroll.com')) {
if (tab.url.includes('crunchyroll.com')) { browser.tabs.executeScript({
code: 'var i,episodeCount=document.getElementsByClassName("c-playable-card__link").length;for(i=0;i<episodeCount;i++)document.getElementsByClassName("c-playable-card__link")[i].style.background="#f78c25",document.getElementsByClassName("c-playable-card__link")[i].style.opacity = "0.5",document.getElementsByClassName("c-playable-card__link")[i].classList.add("CRD-Selected");'
});
} else if (tab.url.includes('crunchyroll.com')) {
browser.tabs.executeScript({ browser.tabs.executeScript({
code: 'var i,episodeCount=document.getElementsByClassName("episode").length;for(i=0;i<episodeCount;i++)document.getElementsByClassName("episode")[i].style.background="#f78c25",document.getElementsByClassName("episode")[i].classList.add("CRD-Selected");' code: 'var i,episodeCount=document.getElementsByClassName("episode").length;for(i=0;i<episodeCount;i++)document.getElementsByClassName("episode")[i].style.background="#f78c25",document.getElementsByClassName("episode")[i].classList.add("CRD-Selected");'
@ -169,6 +210,10 @@ document.getElementById('btn_select_all').addEventListener('click', () => {
browser.tabs.executeScript({ browser.tabs.executeScript({
code: 'var i,episodeCount=document.getElementsByClassName("fullEpisodeThumbs").length;for(i=0;i<episodeCount;i++)document.getElementsByClassName("fullEpisodeThumbs")[i].style.background="#f78c25",document.getElementsByClassName("fullEpisodeThumbs")[i].classList.add("CRD-Selected");' code: 'var i,episodeCount=document.getElementsByClassName("fullEpisodeThumbs").length;for(i=0;i<episodeCount;i++)document.getElementsByClassName("fullEpisodeThumbs")[i].style.background="#f78c25",document.getElementsByClassName("fullEpisodeThumbs")[i].classList.add("CRD-Selected");'
}); });
browser.tabs.executeScript({
code: 'var i,episodeCount=document.getElementsByClassName("episode-card").length;for(i=0;i<episodeCount;i++)document.getElementsByClassName("episode-card")[i].style.background="#400099",document.getElementsByClassName("episode-card")[i].classList.add("CRD-Selected"),document.getElementsByClassName("episode-card")[i].style.borderStyle="solid", document.getElementsByClassName("episode-card")[i].style.borderColor="#400099", document.getElementsByClassName("episode-card")[i].style.borderWidth = "10px";'
});
} else {} } else {}
}, console.error) }, console.error)
@ -182,7 +227,13 @@ document.getElementById('btn_select_none').addEventListener('click', () => {
}).then((tabs) => { }).then((tabs) => {
let tab = tabs[0]; let tab = tabs[0];
if (tab.url.includes('crunchyroll.com')) { if (tab.url.includes('beta.crunchyroll.com')) {
browser.tabs.executeScript({
code: 'var i,episodeCount=document.getElementsByClassName("c-playable-card__link").length;for(i=0;i<episodeCount;i++)document.getElementsByClassName("c-playable-card__link")[i].style.background="#000000",document.getElementsByClassName("c-playable-card__link")[i].style.opacity="0",document.getElementsByClassName("c-playable-card__link")[i].classList.remove("CRD-Selected");'
});
} else if (tab.url.includes('crunchyroll.com')) {
browser.tabs.executeScript({ browser.tabs.executeScript({
code: 'var i,episodeCount=document.getElementsByClassName("episode").length;for(i=0;i<episodeCount;i++)document.getElementsByClassName("episode")[i].style.background="#ffffff",document.getElementsByClassName("episode")[i].classList.remove("CRD-Selected");' code: 'var i,episodeCount=document.getElementsByClassName("episode").length;for(i=0;i<episodeCount;i++)document.getElementsByClassName("episode")[i].style.background="#ffffff",document.getElementsByClassName("episode")[i].classList.remove("CRD-Selected");'
@ -193,16 +244,43 @@ document.getElementById('btn_select_none').addEventListener('click', () => {
browser.tabs.executeScript({ browser.tabs.executeScript({
code: 'var i,episodeCount=document.getElementsByClassName("fullEpisodeThumbs").length;for(i=0;i<episodeCount;i++)document.getElementsByClassName("fullEpisodeThumbs")[i].style.background="#ffffff",document.getElementsByClassName("fullEpisodeThumbs")[i].classList.remove("CRD-Selected");' code: 'var i,episodeCount=document.getElementsByClassName("fullEpisodeThumbs").length;for(i=0;i<episodeCount;i++)document.getElementsByClassName("fullEpisodeThumbs")[i].style.background="#ffffff",document.getElementsByClassName("fullEpisodeThumbs")[i].classList.remove("CRD-Selected");'
}); });
browser.tabs.executeScript({
code: 'var i,episodeCount=document.getElementsByClassName("episode-card").length;for(i=0;i<episodeCount;i++)document.getElementsByClassName("episode-card")[i].style.background="#1e1e1e",document.getElementsByClassName("episode-card")[i].classList.remove("CRD-Selected"),document.getElementsByClassName("episode-card")[i].style.borderStyle="none";'
});
} else {} } else {}
}, console.error) }, console.error)
}); });
document.getElementById('btn_add').addEventListener('click', () => { document.getElementById('btn_add').addEventListener('click', () => {
var add_one = browser.tabs.executeScript({
code: "document.getElementsByClassName('no-js')[0].innerHTML;" browser.tabs.query({
}); currentWindow: true,
add_one.then(add_one_ok, add_one_error); active: true
}).then((tabs) => {
let tab = tabs[0];
if (tab.url.includes('beta.crunchyroll.com')) {
add_beta_ok(tab.url)
} else if (tab.url.includes('crunchyroll.com')) {
var add_one = browser.tabs.executeScript({
code: "document.getElementsByClassName('no-js')[0].innerHTML;"
});
add_one.then(add_one_ok, add_one_error);
} else if (tab.url.includes('funimation.com')) {
browser.tabs.executeScript({
code: 'var i,episodeCount=document.getElementsByClassName("fullEpisodeThumbs").length;for(i=0;i<episodeCount;i++)document.getElementsByClassName("fullEpisodeThumbs")[i].style.background="#ffffff",document.getElementsByClassName("fullEpisodeThumbs")[i].classList.remove("CRD-Selected");'
});
} else {}
}, console.error)
}); });
@ -340,6 +418,26 @@ function add_mass_ok(result) {
} }
function add_beta_ok(result) {
document.getElementById("btn_add").disabled = true;
document.getElementById("btn_add").style.background = "#c9c9c9"
var xhttp = new XMLHttpRequest();
xhttp.open("POST", "http://127.0.0.1:" + Port + "/post", true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send("HTMLMass=" + result);
setTimeout(function () {
document.getElementById("btn_add").style.background = "#ff8000"
}, 10000);
setTimeout(function () {
document.getElementById("btn_add").disabled = false;
}, 10000);
}
function add_mass_fun_ok(result) { function add_mass_fun_ok(result) {
document.getElementById("btn_add_mass_funimation").disabled = true; document.getElementById("btn_add_mass_funimation").disabled = true;
@ -367,8 +465,21 @@ function add_mass_error(error) {
//funimation //funimation
document.getElementById('btn_enable_funimation_select').addEventListener('click', () => { document.getElementById('btn_enable_funimation_select').addEventListener('click', () => {
var funimation = browser.tabs.executeScript({
browser.tabs.executeScript({ code: 'document.getElementsByClassName("episode-card")[0].href'
});
funimation.then(FunimationNewSelect, FunimationOldSelect);
});
function FunimationOldSelect(result) {
browser.tabs.executeScript({
code: 'var script=document.createElement("script");script.type="text/javascript",script.src="http://127.0.0.1:' + Port + '/inject_funimation.js",document.head.appendChild(script);' code: 'var script=document.createElement("script");script.type="text/javascript",script.src="http://127.0.0.1:' + Port + '/inject_funimation.js",document.head.appendChild(script);'
}); //load script from local CRD Server included in https://github.com/hama3254/Crunchyroll-Downloader-v3.0 }); //load script from local CRD Server included in https://github.com/hama3254/Crunchyroll-Downloader-v3.0
@ -382,7 +493,26 @@ document.getElementById('btn_enable_funimation_select').addEventListener('click'
document.getElementById("btn_add_AoD").hidden = true; document.getElementById("btn_add_AoD").hidden = true;
document.getElementById("btn_enable_funimation_select").hidden = true; document.getElementById("btn_enable_funimation_select").hidden = true;
}); }
function FunimationNewSelect(result) {
browser.tabs.executeScript({
file: 'inject_funimation_new.js'
});
document.getElementById("btn_add_mass").hidden = true;
document.getElementById("btn_add_mass_funimation").hidden = false;
document.getElementById("btn_select_all").hidden = false;
document.getElementById("btn_select_none").hidden = false;
document.getElementById("btn_enable_select").hidden = true;
document.getElementById("btn_add").hidden = true;
document.getElementById("btn_add_funimation").hidden = true;
document.getElementById("btn_add_AoD").hidden = true;
document.getElementById("btn_enable_funimation_select").hidden = true;
}
function fun_cookie_ok(result) { function fun_cookie_ok(result) {
@ -426,9 +556,18 @@ function FunimationSuccess(result) {
console.log(false); console.log(false);
} }
} }
function FunimationOldNotFound(error) {
var funimation = browser.tabs.executeScript({
code: 'document.getElementsByClassName("episode-card")[0].href'
});
funimation.then(FunimationSuccess, FunimationError);
}
function FunimationError(error) { function FunimationError(error) {
console.log(`Error: ${error}`);
console.log(`Error: ${error}`);
document.getElementById("btn_add").hidden = true; document.getElementById("btn_add").hidden = true;
document.getElementById("btn_add_mass").hidden = true; document.getElementById("btn_add_mass").hidden = true;
@ -438,5 +577,7 @@ function FunimationError(error) {
document.getElementById("btn_add_funimation").hidden = false; document.getElementById("btn_add_funimation").hidden = false;
document.getElementById("btn_enable_funimation_select").hidden = true; document.getElementById("btn_enable_funimation_select").hidden = true;
document.getElementById("btn_add_AoD").hidden = true; document.getElementById("btn_add_AoD").hidden = true;
} }

View File

@ -834,86 +834,13 @@ Public Class Anime_Add
ListBox1.Items.Remove(ListBox1.Items(0)) ListBox1.Items.Remove(ListBox1.Items(0))
'Main.b = False 'Main.b = False
If Main.SystemWebBrowserCookie = Nothing Then
Main.b = False Main.b = False
GeckoFX.WebBrowser1.Navigate(UriUsed) GeckoFX.WebBrowser1.Navigate(UriUsed)
StatusLabel.Text = "Status: loading in browser" StatusLabel.Text = "Status: loading in browser"
Main.Text = "Status: loading in browser" Main.Text = "Status: loading in browser"
Else
StatusLabel.Text = "Status: loading ..."
Main.Text = "Status: loading ..."
'MsgBox(Main.SystemWebBrowserCookie)
ServicePointManager.Expect100Continue = True
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
Try
Using client As New WebClient()
client.Headers.Add("User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:87.0) Gecko/20100101 Firefox/87.0")
client.Headers.Add("ACCEPT: application/json, text/javascript, */*; q=0.01")
client.Headers.Add("Accept-Encoding: *")
client.Headers.Add("Cookie:" + Main.SystemWebBrowserCookie)
Dim HTMLString As String = "No Value"
Try Main.Invalidate()
HTMLString = DecompressString(client.DownloadData(Main.WebbrowserURL))
Catch ex As Exception
HTMLString = client.DownloadString(Main.WebbrowserURL)
End Try
Dim Funimation_iFrame As String = Nothing
If InStr(HTMLString, My.Resources.Funimation_Player_ID) Then
Funimation_iFrame = My.Resources.Funimation_Player_ID
ElseIf InStr(HTMLString, My.Resources.Funimation_Player_ID_2) Then
Funimation_iFrame = My.Resources.Funimation_Player_ID_2
End If
If InStr(HTMLString, Funimation_iFrame) Then
Dim WebbrowserHeadTextSplit() As String = HTMLString.Split(New String() {"<head"}, System.StringSplitOptions.RemoveEmptyEntries)
Dim WebbrowserHeadTextSplit2() As String = WebbrowserHeadTextSplit(1).Split(New String() {"</head>"}, System.StringSplitOptions.RemoveEmptyEntries)
Dim WebbrowserTitleSplit() As String = HTMLString.Split(New String() {"<title>"}, System.StringSplitOptions.RemoveEmptyEntries)
Dim WebbrowserTitleSplit2() As String = WebbrowserTitleSplit(1).Split(New String() {"</title>"}, System.StringSplitOptions.RemoveEmptyEntries)
Main.WebbrowserText = HTMLString
Main.WebbrowserTitle = "<title>" + WebbrowserTitleSplit2(0) + "</title>"
Main.WebbrowserHeadText = "<head" + WebbrowserHeadTextSplit2(0) + "</head>"
Main.WebbrowserCookie = Main.SystemWebBrowserCookie
Dim t As Thread
t = New Thread(AddressOf Main.Funitmation_Grapp)
t.Priority = ThreadPriority.Normal
t.IsBackground = True
t.Start()
ElseIf HTMLString = "No Value" Then
Me.Invoke(New Action(Function()
Main.Text = "Status: Website error"
Me.StatusLabel.Text = "Status: no video found"
Return Nothing
Main.Funimation_Grapp_RDY = True
End Function))
Else
Me.Invoke(New Action(Function()
Main.Text = "Status: no video found"
Me.StatusLabel.Text = "Status: no video found"
My.Computer.FileSystem.WriteAllText(Application.StartupPath + "\funimation.log", HTMLString, True)
Main.Funimation_Grapp_RDY = True
Return Nothing
End Function))
End If
End Using
Catch ex As Exception
MsgBox(ex.ToString)
Main.Funimation_Grapp_RDY = True
Exit Sub
End Try
End If
Main.Invalidate()
End If End If
Else Else

View File

@ -884,6 +884,7 @@ Public Class CRD_List_Item
#End Region #End Region
Public Function DownloadHybrid(ByVal DL_URL As String, ByVal DL_Pfad As String, ByVal Filename As String) As String Public Function DownloadHybrid(ByVal DL_URL As String, ByVal DL_Pfad As String, ByVal Filename As String) As String
LogText.Add(Date.Now + " " + DL_URL)
Dim Folder As String = Einstellungen.GeräteID() Dim Folder As String = Einstellungen.GeräteID()
Dim DL_URL_old As String = DL_URL Dim DL_URL_old As String = DL_URL
Dim PauseTime As Integer = 0 Dim PauseTime As Integer = 0
@ -897,11 +898,11 @@ Public Class CRD_List_Item
Me.Invoke(New Action(Function() Me.Invoke(New Action(Function()
Label_percent.Text = "Checking input..." Label_percent.Text = "Checking input..."
Return Nothing Return Nothing
End Function)) End Function))
For i As Integer = 0 To InuputStreams.Count - 1 For i As Integer = 0 To InuputStreams.Count - 1
Dim int As Integer = i Dim int As Integer = i
Dim InputURL As String() = InuputStreams(i).Split(New [Char]() {Chr(34)}) Dim InputURL As String() = InuputStreams(int).Split(New [Char]() {Chr(34)})
Dim InputClient As New WebClient Dim InputClient As New WebClient
InputClient.Encoding = Encoding.UTF8 InputClient.Encoding = Encoding.UTF8
If Main.WebbrowserCookie = Nothing Then If Main.WebbrowserCookie = Nothing Then
@ -910,6 +911,10 @@ Public Class CRD_List_Item
End If End If
Dim SubsFile As String = Pfad2 + Einstellungen.GeräteID() + ".txt" Dim SubsFile As String = Pfad2 + Einstellungen.GeräteID() + ".txt"
If File.Exists(SubsFile) Then
SubsFile = Pfad2 + Einstellungen.GeräteID2() + ".txt"
End If
Try Try
Dim InputData As String = InputClient.DownloadString(InputURL(0)) Dim InputData As String = InputClient.DownloadString(InputURL(0))
@ -941,6 +946,16 @@ Public Class CRD_List_Item
DL_URL = DL_URL.Replace("-i " + Chr(34) + InputURL(0), "-allowed_extensions ALL " + "-i " + Chr(34) + Pfad2 + "Stream-" + int.ToString + "\index.m3u8") DL_URL = DL_URL.Replace("-i " + Chr(34) + InputURL(0), "-allowed_extensions ALL " + "-i " + Chr(34) + Pfad2 + "Stream-" + int.ToString + "\index.m3u8")
Else Else
'write string to file 'write string to file
If Not Directory.Exists(Path.GetDirectoryName(Pfad2)) Then
' Nein! Jetzt erstellen...
Try
Directory.CreateDirectory(Path.GetDirectoryName(Pfad2))
Catch ex As Exception
Debug.WriteLine("folder issue")
Return "Error"
Exit Function
End Try
End If
Dim utf8WithoutBom2 As New System.Text.UTF8Encoding(False) Dim utf8WithoutBom2 As New System.Text.UTF8Encoding(False)
Using sink As New StreamWriter(SubsFile, False, utf8WithoutBom2) Using sink As New StreamWriter(SubsFile, False, utf8WithoutBom2)
sink.WriteLine(InputData) sink.WriteLine(InputData)
@ -984,7 +999,7 @@ Public Class CRD_List_Item
Dim startinfo As New System.Diagnostics.ProcessStartInfo Dim startinfo As New System.Diagnostics.ProcessStartInfo
Dim cmd As String = DL_URL + " " + DL_Pfad Dim cmd As String = DL_URL + " " + DL_Pfad
LogText.Add(Date.Now + " " + cmd)
If Debug2 = True Then If Debug2 = True Then
MsgBox(cmd) MsgBox(cmd)
End If End If
@ -1065,10 +1080,7 @@ Public Class CRD_List_Item
Catch ex As Exception Catch ex As Exception
End Try End Try
'Me.Invoke(New Action(Function()
' Label_percent.Text = "Finished - event"
' Return Nothing
' End Function))
End Sub End Sub
Sub FFMPEGOutput(ByVal sender As Object, ByVal e As DataReceivedEventArgs) Sub FFMPEGOutput(ByVal sender As Object, ByVal e As DataReceivedEventArgs)

View File

@ -136,6 +136,7 @@ Public Class GeckoFX
Main.WebbrowserHeadText = WebBrowser1.Document.Head.InnerHtml Main.WebbrowserHeadText = WebBrowser1.Document.Head.InnerHtml
Main.MassGrapp() Main.MassGrapp()
Else Else
My.Computer.FileSystem.WriteAllText(Application.StartupPath + "\html.log", WebBrowser1.Document.Body.OuterHtml, True)
Main.b = True Main.b = True
MsgBox(Main.No_Stream, MsgBoxStyle.OkOnly) MsgBox(Main.No_Stream, MsgBoxStyle.OkOnly)
Anime_Add.StatusLabel.Text = "Status: idle" Anime_Add.StatusLabel.Text = "Status: idle"

View File

@ -4805,61 +4805,12 @@ Public Class Main
End If End If
'ListBoxList.Add(WebbrowserURL) 'ListBoxList.Add(WebbrowserURL)
Else Else
'Me.Invoke(New Action(Function() Me.Invoke(New Action(Function()
' GeckoFX.WebBrowser1.Navigate(WebbrowserURL) GeckoFX.WebBrowser1.Navigate(WebbrowserURL)
' Return Nothing Return Nothing
' End Function)) End Function))
'b = False b = False
ServicePointManager.Expect100Continue = True
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
Try
Using client As New WebClient()
client.Headers.Add("User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0")
client.Headers.Add("ACCEPT: application/json, text/javascript, */*; q=0.01")
client.Headers.Add("Accept-Encoding: gzip")
client.Headers.Add("Cookie:" + SystemWebBrowserCookie)
Dim HTMLString As String = DecompressString(client.DownloadData(WebbrowserURL))
Dim Funimation_iFrame As String = Nothing
If InStr(HTMLString, My.Resources.Funimation_Player_ID) Then
Funimation_iFrame = My.Resources.Funimation_Player_ID
ElseIf InStr(HTMLString, My.Resources.Funimation_Player_ID_2) Then
Funimation_iFrame = My.Resources.Funimation_Player_ID_2
End If
If InStr(HTMLString, Funimation_iFrame) Then
Dim WebbrowserHeadTextSplit() As String = HTMLString.Split(New String() {"<head"}, System.StringSplitOptions.RemoveEmptyEntries)
Dim WebbrowserHeadTextSplit2() As String = WebbrowserHeadTextSplit(1).Split(New String() {"</head>"}, System.StringSplitOptions.RemoveEmptyEntries)
Dim WebbrowserTitleSplit() As String = HTMLString.Split(New String() {"<title>"}, System.StringSplitOptions.RemoveEmptyEntries)
Dim WebbrowserTitleSplit2() As String = WebbrowserTitleSplit(1).Split(New String() {"</title>"}, System.StringSplitOptions.RemoveEmptyEntries)
WebbrowserText = HTMLString
WebbrowserTitle = "<title>" + WebbrowserTitleSplit2(0) + "</title>"
WebbrowserHeadText = "<head" + WebbrowserHeadTextSplit2(0) + "</head>"
WebbrowserCookie = SystemWebBrowserCookie
Dim t As Thread
t = New Thread(AddressOf Funitmation_Grapp)
t.Priority = ThreadPriority.Normal
t.IsBackground = True
t.Start()
Else
Me.Invoke(New Action(Function()
Me.Text = "Status: no video found"
Anime_Add.StatusLabel.Text = "fail?"
Return Nothing
End Function))
End If
End Using
Catch ex As Exception
MsgBox(ex.ToString)
Exit Sub
End Try
@ -4994,7 +4945,7 @@ Public Class Main
"HTTP/1.0 200 OK" & ControlChars.CrLf & "HTTP/1.0 200 OK" & ControlChars.CrLf &
"Server: CRD 1.0" & ControlChars.CrLf & "Server: CRD 1.0" & ControlChars.CrLf &
"Content-Length: " & respByte.Length & ControlChars.CrLf & "Content-Length: " & respByte.Length & ControlChars.CrLf &
"Content-Type: " & GetContentType(httpRequest) & "Content-Type: " & GetContentType(httpRequest) & ControlChars.CrLf &
"Connection: close" & "Connection: close" &
ControlChars.CrLf & ControlChars.CrLf ControlChars.CrLf & ControlChars.CrLf
' The content Length of HTML Header ' The content Length of HTML Header

View File

@ -43,7 +43,7 @@
</div> </div>
<h1>Failed!</h1> <h1>Failed!</h1>
<p>System.IndexOutOfRangeException: Der Index war außerhalb des Arraybereichs. <p>System.IndexOutOfRangeException: Der Index war außerhalb des Arraybereichs.
bei Crunchyroll_Downloader.Main.ProcessRequest(NetworkStream stream, String htmlReq) in D:\Projecte\Crunchyroll Downloader - v3.0-final\Crunchyroll-Downloader-v3.0\Crunchyroll Downloader\Main.vb:Zeile 3304.</p> bei Crunchyroll_Downloader.Main.ProcessRequest(NetworkStream stream, String htmlReq) in D:\Projecte\Crunchyroll Downloader - v3.0-final\Crunchyroll-Downloader-v3.0\Crunchyroll Downloader\Main.vb:Zeile 4697.</p>
</div> </div>
</body> </body>
</html> </html>

View File

@ -0,0 +1,10 @@
var episodeCount = document.getElementsByClassName("c-playable-card__link").length;
var i;
for (i = 0; i < episodeCount; i++) {
var old_element = document.getElementsByClassName("c-playable-card__link")[i];
var new_element = old_element.cloneNode(true);
old_element.parentNode.replaceChild(new_element, old_element);
document.getElementsByClassName("c-playable-card__link")[i].setAttribute('href', "javascript:" + document.getElementsByClassName("c-playable-card__link")[i].href);
document.getElementsByClassName("c-playable-card__link")[i].setAttribute('onclick', 'this.classList.contains("CRD-Selected")?(this.classList.remove("CRD-Selected"),this.style.background="#000000",this.style.opacity="0"):(this.classList.add("CRD-Selected"),this.style.background="#f78c25",this.style.opacity="0.5");');
}

View File

@ -43,16 +43,14 @@ Partial Class Einstellungen
Me.GB_SubLanguage = New System.Windows.Forms.GroupBox() Me.GB_SubLanguage = New System.Windows.Forms.GroupBox()
Me.ComboBox1 = New MetroFramework.Controls.MetroComboBox() Me.ComboBox1 = New MetroFramework.Controls.MetroComboBox()
Me.TabPage2 = New MetroFramework.Controls.MetroTabPage() Me.TabPage2 = New MetroFramework.Controls.MetroTabPage()
Me.GB_Filename_Pre = New System.Windows.Forms.GroupBox()
Me.GroupBox12 = New System.Windows.Forms.GroupBox() Me.GroupBox12 = New System.Windows.Forms.GroupBox()
Me.KodiSupport = New MetroFramework.Controls.MetroToggle()
Me.MetroLink1 = New MetroFramework.Controls.MetroLink()
Me.DD_Episode_Prefix = New MetroFramework.Controls.MetroComboBox() Me.DD_Episode_Prefix = New MetroFramework.Controls.MetroComboBox()
Me.DD_Season_Prefix = New MetroFramework.Controls.MetroComboBox() Me.DD_Season_Prefix = New MetroFramework.Controls.MetroComboBox()
Me.CR_Filename = New MetroFramework.Controls.MetroComboBox() Me.CR_Filename = New MetroFramework.Controls.MetroComboBox()
Me.GroupBox4 = New System.Windows.Forms.GroupBox() Me.GroupBox4 = New System.Windows.Forms.GroupBox()
Me.MergeMP4 = New MetroFramework.Controls.MetroCheckBox() Me.MergeMP4 = New MetroFramework.Controls.MetroCheckBox()
Me.CB_Format = New MetroFramework.Controls.MetroComboBox() Me.CB_Format = New MetroFramework.Controls.MetroComboBox()
Me.CheckBox1 = New MetroFramework.Controls.MetroCheckBox()
Me.GroupBox2 = New System.Windows.Forms.GroupBox() Me.GroupBox2 = New System.Windows.Forms.GroupBox()
Me.Panel1 = New System.Windows.Forms.Panel() Me.Panel1 = New System.Windows.Forms.Panel()
Me.MenuStrip1 = New System.Windows.Forms.MenuStrip() Me.MenuStrip1 = New System.Windows.Forms.MenuStrip()
@ -132,6 +130,8 @@ Partial Class Einstellungen
Me.Label6 = New MetroFramework.Controls.MetroLabel() Me.Label6 = New MetroFramework.Controls.MetroLabel()
Me.Label5 = New MetroFramework.Controls.MetroLabel() Me.Label5 = New MetroFramework.Controls.MetroLabel()
Me.BackgroundWorker1 = New System.ComponentModel.BackgroundWorker() Me.BackgroundWorker1 = New System.ComponentModel.BackgroundWorker()
Me.KodiSupport = New MetroFramework.Controls.MetroToggle()
Me.MetroLink1 = New MetroFramework.Controls.MetroLink()
CType(Me.pictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.pictureBox1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.pictureBox4, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.pictureBox4, System.ComponentModel.ISupportInitialize).BeginInit()
Me.GroupBox14.SuspendLayout() Me.GroupBox14.SuspendLayout()
@ -139,6 +139,7 @@ Partial Class Einstellungen
Me.SoftSubs.SuspendLayout() Me.SoftSubs.SuspendLayout()
Me.GB_SubLanguage.SuspendLayout() Me.GB_SubLanguage.SuspendLayout()
Me.TabPage2.SuspendLayout() Me.TabPage2.SuspendLayout()
Me.GB_Filename_Pre.SuspendLayout()
Me.GroupBox12.SuspendLayout() Me.GroupBox12.SuspendLayout()
Me.GroupBox4.SuspendLayout() Me.GroupBox4.SuspendLayout()
Me.GroupBox2.SuspendLayout() Me.GroupBox2.SuspendLayout()
@ -395,9 +396,9 @@ Partial Class Einstellungen
'TabPage2 'TabPage2
' '
Me.TabPage2.BackColor = System.Drawing.Color.FromArgb(CType(CType(243, Byte), Integer), CType(CType(243, Byte), Integer), CType(CType(243, Byte), Integer)) Me.TabPage2.BackColor = System.Drawing.Color.FromArgb(CType(CType(243, Byte), Integer), CType(CType(243, Byte), Integer), CType(CType(243, Byte), Integer))
Me.TabPage2.Controls.Add(Me.GB_Filename_Pre)
Me.TabPage2.Controls.Add(Me.GroupBox12) Me.TabPage2.Controls.Add(Me.GroupBox12)
Me.TabPage2.Controls.Add(Me.GroupBox4) Me.TabPage2.Controls.Add(Me.GroupBox4)
Me.TabPage2.Controls.Add(Me.CheckBox1)
Me.TabPage2.Controls.Add(Me.GroupBox2) Me.TabPage2.Controls.Add(Me.GroupBox2)
Me.TabPage2.Controls.Add(Me.GB_Resolution) Me.TabPage2.Controls.Add(Me.GB_Resolution)
Me.TabPage2.HorizontalScrollbarBarColor = True Me.TabPage2.HorizontalScrollbarBarColor = True
@ -414,11 +415,23 @@ Partial Class Einstellungen
Me.TabPage2.VerticalScrollbarSize = 10 Me.TabPage2.VerticalScrollbarSize = 10
Me.TabPage2.Visible = False Me.TabPage2.Visible = False
' '
'GB_Filename_Pre
'
Me.GB_Filename_Pre.BackColor = System.Drawing.Color.Transparent
Me.GB_Filename_Pre.Controls.Add(Me.KodiSupport)
Me.GB_Filename_Pre.Controls.Add(Me.MetroLink1)
Me.GB_Filename_Pre.Font = New System.Drawing.Font("Arial", 9.75!)
Me.GB_Filename_Pre.ForeColor = System.Drawing.Color.Black
Me.GB_Filename_Pre.Location = New System.Drawing.Point(5, 167)
Me.GB_Filename_Pre.Name = "GB_Filename_Pre"
Me.GB_Filename_Pre.Size = New System.Drawing.Size(490, 59)
Me.GB_Filename_Pre.TabIndex = 39
Me.GB_Filename_Pre.TabStop = False
Me.GB_Filename_Pre.Text = "Filename Prefix"
'
'GroupBox12 'GroupBox12
' '
Me.GroupBox12.BackColor = System.Drawing.Color.Transparent Me.GroupBox12.BackColor = System.Drawing.Color.Transparent
Me.GroupBox12.Controls.Add(Me.KodiSupport)
Me.GroupBox12.Controls.Add(Me.MetroLink1)
Me.GroupBox12.Controls.Add(Me.DD_Episode_Prefix) Me.GroupBox12.Controls.Add(Me.DD_Episode_Prefix)
Me.GroupBox12.Controls.Add(Me.DD_Season_Prefix) Me.GroupBox12.Controls.Add(Me.DD_Season_Prefix)
Me.GroupBox12.Controls.Add(Me.CR_Filename) Me.GroupBox12.Controls.Add(Me.CR_Filename)
@ -431,29 +444,6 @@ Partial Class Einstellungen
Me.GroupBox12.TabStop = False Me.GroupBox12.TabStop = False
Me.GroupBox12.Text = "Filename" Me.GroupBox12.Text = "Filename"
' '
'KodiSupport
'
Me.KodiSupport.AutoSize = True
Me.KodiSupport.Location = New System.Drawing.Point(259, 120)
Me.KodiSupport.Name = "KodiSupport"
Me.KodiSupport.Size = New System.Drawing.Size(80, 20)
Me.KodiSupport.TabIndex = 38
Me.KodiSupport.Text = "Aus"
Me.KodiSupport.UseSelectable = True
'
'MetroLink1
'
Me.MetroLink1.FontSize = MetroFramework.MetroLinkSize.Medium
Me.MetroLink1.ForeColor = System.Drawing.Color.SteelBlue
Me.MetroLink1.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
Me.MetroLink1.Location = New System.Drawing.Point(97, 120)
Me.MetroLink1.Name = "MetroLink1"
Me.MetroLink1.Size = New System.Drawing.Size(145, 23)
Me.MetroLink1.TabIndex = 37
Me.MetroLink1.Text = "enable Kodi naming"
Me.MetroLink1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
Me.MetroLink1.UseSelectable = True
'
'DD_Episode_Prefix 'DD_Episode_Prefix
' '
Me.DD_Episode_Prefix.DropDownHeight = 250 Me.DD_Episode_Prefix.DropDownHeight = 250
@ -463,7 +453,7 @@ Partial Class Einstellungen
Me.DD_Episode_Prefix.IntegralHeight = False Me.DD_Episode_Prefix.IntegralHeight = False
Me.DD_Episode_Prefix.ItemHeight = 23 Me.DD_Episode_Prefix.ItemHeight = 23
Me.DD_Episode_Prefix.Items.AddRange(New Object() {"[default episode prefix]"}) Me.DD_Episode_Prefix.Items.AddRange(New Object() {"[default episode prefix]"})
Me.DD_Episode_Prefix.Location = New System.Drawing.Point(248, 70) Me.DD_Episode_Prefix.Location = New System.Drawing.Point(248, 94)
Me.DD_Episode_Prefix.Name = "DD_Episode_Prefix" Me.DD_Episode_Prefix.Name = "DD_Episode_Prefix"
Me.DD_Episode_Prefix.Size = New System.Drawing.Size(225, 29) Me.DD_Episode_Prefix.Size = New System.Drawing.Size(225, 29)
Me.DD_Episode_Prefix.TabIndex = 36 Me.DD_Episode_Prefix.TabIndex = 36
@ -478,7 +468,7 @@ Partial Class Einstellungen
Me.DD_Season_Prefix.IntegralHeight = False Me.DD_Season_Prefix.IntegralHeight = False
Me.DD_Season_Prefix.ItemHeight = 23 Me.DD_Season_Prefix.ItemHeight = 23
Me.DD_Season_Prefix.Items.AddRange(New Object() {"[default season prefix]"}) Me.DD_Season_Prefix.Items.AddRange(New Object() {"[default season prefix]"})
Me.DD_Season_Prefix.Location = New System.Drawing.Point(6, 70) Me.DD_Season_Prefix.Location = New System.Drawing.Point(6, 94)
Me.DD_Season_Prefix.Name = "DD_Season_Prefix" Me.DD_Season_Prefix.Name = "DD_Season_Prefix"
Me.DD_Season_Prefix.Size = New System.Drawing.Size(225, 29) Me.DD_Season_Prefix.Size = New System.Drawing.Size(225, 29)
Me.DD_Season_Prefix.TabIndex = 35 Me.DD_Season_Prefix.TabIndex = 35
@ -492,7 +482,7 @@ Partial Class Einstellungen
Me.CR_Filename.IntegralHeight = False Me.CR_Filename.IntegralHeight = False
Me.CR_Filename.ItemHeight = 23 Me.CR_Filename.ItemHeight = 23
Me.CR_Filename.Items.AddRange(New Object() {"[episode number]", "[episode name]", "[episode number] [episode name]", "[episode name] [episode number]"}) Me.CR_Filename.Items.AddRange(New Object() {"[episode number]", "[episode name]", "[episode number] [episode name]", "[episode name] [episode number]"})
Me.CR_Filename.Location = New System.Drawing.Point(6, 27) Me.CR_Filename.Location = New System.Drawing.Point(6, 35)
Me.CR_Filename.Name = "CR_Filename" Me.CR_Filename.Name = "CR_Filename"
Me.CR_Filename.Size = New System.Drawing.Size(467, 29) Me.CR_Filename.Size = New System.Drawing.Size(467, 29)
Me.CR_Filename.TabIndex = 34 Me.CR_Filename.TabIndex = 34
@ -505,7 +495,7 @@ Partial Class Einstellungen
Me.GroupBox4.Controls.Add(Me.CB_Format) Me.GroupBox4.Controls.Add(Me.CB_Format)
Me.GroupBox4.Font = New System.Drawing.Font("Arial", 9.75!) Me.GroupBox4.Font = New System.Drawing.Font("Arial", 9.75!)
Me.GroupBox4.ForeColor = System.Drawing.Color.Black Me.GroupBox4.ForeColor = System.Drawing.Color.Black
Me.GroupBox4.Location = New System.Drawing.Point(5, 230) Me.GroupBox4.Location = New System.Drawing.Point(5, 285)
Me.GroupBox4.Name = "GroupBox4" Me.GroupBox4.Name = "GroupBox4"
Me.GroupBox4.Size = New System.Drawing.Size(490, 78) Me.GroupBox4.Size = New System.Drawing.Size(490, 78)
Me.GroupBox4.TabIndex = 42 Me.GroupBox4.TabIndex = 42
@ -536,27 +526,13 @@ Partial Class Einstellungen
Me.CB_Format.TabIndex = 37 Me.CB_Format.TabIndex = 37
Me.CB_Format.UseSelectable = True Me.CB_Format.UseSelectable = True
' '
'CheckBox1
'
Me.CheckBox1.AutoSize = True
Me.CheckBox1.BackColor = System.Drawing.Color.Transparent
Me.CheckBox1.FontSize = MetroFramework.MetroCheckBoxSize.Medium
Me.CheckBox1.ForeColor = System.Drawing.Color.Black
Me.CheckBox1.Location = New System.Drawing.Point(67, 320)
Me.CheckBox1.Name = "CheckBox1"
Me.CheckBox1.Size = New System.Drawing.Size(369, 19)
Me.CheckBox1.TabIndex = 6
Me.CheckBox1.Text = "i know that re-encoding the video takes time and power"
Me.CheckBox1.UseSelectable = True
'
'GroupBox2 'GroupBox2
' '
Me.GroupBox2.BackColor = System.Drawing.Color.Transparent Me.GroupBox2.BackColor = System.Drawing.Color.Transparent
Me.GroupBox2.Controls.Add(Me.Panel1) Me.GroupBox2.Controls.Add(Me.Panel1)
Me.GroupBox2.Enabled = False
Me.GroupBox2.Font = New System.Drawing.Font("Arial", 9.75!) Me.GroupBox2.Font = New System.Drawing.Font("Arial", 9.75!)
Me.GroupBox2.ForeColor = System.Drawing.Color.Black Me.GroupBox2.ForeColor = System.Drawing.Color.Black
Me.GroupBox2.Location = New System.Drawing.Point(5, 350) Me.GroupBox2.Location = New System.Drawing.Point(5, 365)
Me.GroupBox2.Name = "GroupBox2" Me.GroupBox2.Name = "GroupBox2"
Me.GroupBox2.Size = New System.Drawing.Size(490, 63) Me.GroupBox2.Size = New System.Drawing.Size(490, 63)
Me.GroupBox2.TabIndex = 40 Me.GroupBox2.TabIndex = 40
@ -726,7 +702,7 @@ Partial Class Einstellungen
Me.GB_Resolution.Controls.Add(Me.A1080p) Me.GB_Resolution.Controls.Add(Me.A1080p)
Me.GB_Resolution.Font = New System.Drawing.Font("Arial", 9.75!) Me.GB_Resolution.Font = New System.Drawing.Font("Arial", 9.75!)
Me.GB_Resolution.ForeColor = System.Drawing.Color.Black Me.GB_Resolution.ForeColor = System.Drawing.Color.Black
Me.GB_Resolution.Location = New System.Drawing.Point(5, 165) Me.GB_Resolution.Location = New System.Drawing.Point(5, 225)
Me.GB_Resolution.Name = "GB_Resolution" Me.GB_Resolution.Name = "GB_Resolution"
Me.GB_Resolution.Size = New System.Drawing.Size(490, 59) Me.GB_Resolution.Size = New System.Drawing.Size(490, 59)
Me.GB_Resolution.TabIndex = 38 Me.GB_Resolution.TabIndex = 38
@ -811,10 +787,10 @@ Partial Class Einstellungen
Me.TabPage1.HorizontalScrollbarBarColor = True Me.TabPage1.HorizontalScrollbarBarColor = True
Me.TabPage1.HorizontalScrollbarHighlightOnWheel = False Me.TabPage1.HorizontalScrollbarHighlightOnWheel = False
Me.TabPage1.HorizontalScrollbarSize = 10 Me.TabPage1.HorizontalScrollbarSize = 10
Me.TabPage1.Location = New System.Drawing.Point(4, 35) Me.TabPage1.Location = New System.Drawing.Point(4, 44)
Me.TabPage1.Name = "TabPage1" Me.TabPage1.Name = "TabPage1"
Me.TabPage1.Padding = New System.Windows.Forms.Padding(3) Me.TabPage1.Padding = New System.Windows.Forms.Padding(3)
Me.TabPage1.Size = New System.Drawing.Size(501, 461) Me.TabPage1.Size = New System.Drawing.Size(501, 452)
Me.TabPage1.TabIndex = 0 Me.TabPage1.TabIndex = 0
Me.TabPage1.Text = " Main" Me.TabPage1.Text = " Main"
Me.TabPage1.VerticalScrollbar = True Me.TabPage1.VerticalScrollbar = True
@ -1032,7 +1008,7 @@ Partial Class Einstellungen
Me.TabControl1.FontWeight = MetroFramework.MetroTabControlWeight.Regular Me.TabControl1.FontWeight = MetroFramework.MetroTabControlWeight.Regular
Me.TabControl1.Location = New System.Drawing.Point(22, 60) Me.TabControl1.Location = New System.Drawing.Point(22, 60)
Me.TabControl1.Name = "TabControl1" Me.TabControl1.Name = "TabControl1"
Me.TabControl1.SelectedIndex = 1 Me.TabControl1.SelectedIndex = 0
Me.TabControl1.Size = New System.Drawing.Size(509, 500) Me.TabControl1.Size = New System.Drawing.Size(509, 500)
Me.TabControl1.TabIndex = 38 Me.TabControl1.TabIndex = 38
Me.TabControl1.UseSelectable = True Me.TabControl1.UseSelectable = True
@ -1337,9 +1313,9 @@ Partial Class Einstellungen
Me.TabPage7.Controls.Add(Me.Label4) Me.TabPage7.Controls.Add(Me.Label4)
Me.TabPage7.Controls.Add(Me.Label6) Me.TabPage7.Controls.Add(Me.Label6)
Me.TabPage7.Controls.Add(Me.Label5) Me.TabPage7.Controls.Add(Me.Label5)
Me.TabPage7.Location = New System.Drawing.Point(4, 44) Me.TabPage7.Location = New System.Drawing.Point(4, 35)
Me.TabPage7.Name = "TabPage7" Me.TabPage7.Name = "TabPage7"
Me.TabPage7.Size = New System.Drawing.Size(501, 452) Me.TabPage7.Size = New System.Drawing.Size(501, 461)
Me.TabPage7.TabIndex = 5 Me.TabPage7.TabIndex = 5
Me.TabPage7.Text = "About " Me.TabPage7.Text = "About "
' '
@ -1455,6 +1431,29 @@ Partial Class Einstellungen
'BackgroundWorker1 'BackgroundWorker1
' '
' '
'KodiSupport
'
Me.KodiSupport.AutoSize = True
Me.KodiSupport.Location = New System.Drawing.Point(263, 24)
Me.KodiSupport.Name = "KodiSupport"
Me.KodiSupport.Size = New System.Drawing.Size(80, 20)
Me.KodiSupport.TabIndex = 40
Me.KodiSupport.Text = "Aus"
Me.KodiSupport.UseSelectable = True
'
'MetroLink1
'
Me.MetroLink1.FontSize = MetroFramework.MetroLinkSize.Medium
Me.MetroLink1.ForeColor = System.Drawing.Color.SteelBlue
Me.MetroLink1.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
Me.MetroLink1.Location = New System.Drawing.Point(101, 24)
Me.MetroLink1.Name = "MetroLink1"
Me.MetroLink1.Size = New System.Drawing.Size(145, 23)
Me.MetroLink1.TabIndex = 39
Me.MetroLink1.Text = "enable Kodi naming"
Me.MetroLink1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
Me.MetroLink1.UseSelectable = True
'
'Einstellungen 'Einstellungen
' '
Me.ApplyImageInvert = True Me.ApplyImageInvert = True
@ -1481,9 +1480,9 @@ Partial Class Einstellungen
Me.SoftSubs.PerformLayout() Me.SoftSubs.PerformLayout()
Me.GB_SubLanguage.ResumeLayout(False) Me.GB_SubLanguage.ResumeLayout(False)
Me.TabPage2.ResumeLayout(False) Me.TabPage2.ResumeLayout(False)
Me.TabPage2.PerformLayout() Me.GB_Filename_Pre.ResumeLayout(False)
Me.GB_Filename_Pre.PerformLayout()
Me.GroupBox12.ResumeLayout(False) Me.GroupBox12.ResumeLayout(False)
Me.GroupBox12.PerformLayout()
Me.GroupBox4.ResumeLayout(False) Me.GroupBox4.ResumeLayout(False)
Me.GroupBox4.PerformLayout() Me.GroupBox4.PerformLayout()
Me.GroupBox2.ResumeLayout(False) Me.GroupBox2.ResumeLayout(False)
@ -1595,7 +1594,6 @@ Partial Class Einstellungen
Friend WithEvents CB_srt As MetroFramework.Controls.MetroCheckBox Friend WithEvents CB_srt As MetroFramework.Controls.MetroCheckBox
Friend WithEvents CB_vtt As MetroFramework.Controls.MetroCheckBox Friend WithEvents CB_vtt As MetroFramework.Controls.MetroCheckBox
Friend WithEvents CB_dfxp As MetroFramework.Controls.MetroCheckBox Friend WithEvents CB_dfxp As MetroFramework.Controls.MetroCheckBox
Friend WithEvents CheckBox1 As MetroFramework.Controls.MetroCheckBox
Friend WithEvents AAuto As MetroFramework.Controls.MetroRadioButton Friend WithEvents AAuto As MetroFramework.Controls.MetroRadioButton
Friend WithEvents A480p As MetroFramework.Controls.MetroRadioButton Friend WithEvents A480p As MetroFramework.Controls.MetroRadioButton
Friend WithEvents A360p As MetroFramework.Controls.MetroRadioButton Friend WithEvents A360p As MetroFramework.Controls.MetroRadioButton
@ -1630,6 +1628,7 @@ Partial Class Einstellungen
Friend WithEvents ListC6 As ToolStripMenuItem Friend WithEvents ListC6 As ToolStripMenuItem
Friend WithEvents ListC7 As ToolStripMenuItem Friend WithEvents ListC7 As ToolStripMenuItem
Friend WithEvents ListP3 As ToolStripMenuItem Friend WithEvents ListP3 As ToolStripMenuItem
Friend WithEvents GB_Filename_Pre As GroupBox
Friend WithEvents KodiSupport As MetroFramework.Controls.MetroToggle Friend WithEvents KodiSupport As MetroFramework.Controls.MetroToggle
Friend WithEvents MetroLink1 As MetroFramework.Controls.MetroLink Friend WithEvents MetroLink1 As MetroFramework.Controls.MetroLink
End Class End Class

View File

@ -17,7 +17,7 @@ Public Class Einstellungen
Private Sub Einstellungen_Load(sender As Object, e As EventArgs) Handles MyBase.Load Private Sub Einstellungen_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Label6.Text = "You have: v" + Application.ProductVersion.ToString + " Beta-U7" Label6.Text = "You have: v" + Application.ProductVersion.ToString + " Beta-U8"
BackgroundWorker1.RunWorkerAsync() BackgroundWorker1.RunWorkerAsync()
@ -329,7 +329,7 @@ Public Class Einstellungen
Try Try
Port = CInt(http_support.Text) Port = CInt(http_support.Text)
rk.SetValue("ServerPort", Port, RegistryValueKind.String) rk.SetValue("ServerPort", Port, RegistryValueKind.String)
Main.StartServer = False 'Main.StartServer = False
Catch ex As Exception Catch ex As Exception
'If MessageBox.Show("Resolution '[Auto]' and merge the subtitle with the video file will download all resolutions!" + vbNewLine + "Press 'Yes' to enable it anyway", "Prepare for unforeseen consequences.", MessageBoxButtons.YesNo) = DialogResult.Yes Then 'If MessageBox.Show("Resolution '[Auto]' and merge the subtitle with the video file will download all resolutions!" + vbNewLine + "Press 'Yes' to enable it anyway", "Prepare for unforeseen consequences.", MessageBoxButtons.YesNo) = DialogResult.Yes Then
@ -340,9 +340,13 @@ Public Class Einstellungen
MsgBox("The add-on support Port can only be numbers!", MsgBoxStyle.Exclamation) MsgBox("The add-on support Port can only be numbers!", MsgBoxStyle.Exclamation)
Exit Sub Exit Sub
End Try End Try
If Main.StartServer = Port Then
Else
MsgBox("The add-on support needs a restart of the downloader.", MsgBoxStyle.Information)
End If
End If End If
If KodiSupport.Checked = True Then If KodiSupport.Checked = True Then
Main.KodiNaming = True Main.KodiNaming = True
rk.SetValue("KodiSupport", 1, RegistryValueKind.String) rk.SetValue("KodiSupport", 1, RegistryValueKind.String)
@ -625,10 +629,8 @@ Public Class Einstellungen
If CheckBox1.Enabled = False Then
Else Dim ffpmeg_cmd As String = Nothing
Dim ffpmeg_cmd As String = Nothing
If FFMPEG_CommandP1.Text = "-c copy" Then If FFMPEG_CommandP1.Text = "-c copy" Then
ffpmeg_cmd = " " + FFMPEG_CommandP1.Text + " " + FFMPEG_CommandP4.Text ffpmeg_cmd = " " + FFMPEG_CommandP1.Text + " " + FFMPEG_CommandP4.Text
ElseIf FFMPEG_CommandP2.Text = "[no Preset]" Then ElseIf FFMPEG_CommandP2.Text = "[no Preset]" Then
@ -638,7 +640,6 @@ Public Class Einstellungen
ffpmeg_cmd = " " + FFMPEG_CommandP1.Text + " " + FFMPEG_CommandP2.Text + " " + FFMPEG_CommandP3.Text + " " + FFMPEG_CommandP4.Text ffpmeg_cmd = " " + FFMPEG_CommandP1.Text + " " + FFMPEG_CommandP2.Text + " " + FFMPEG_CommandP3.Text + " " + FFMPEG_CommandP4.Text
End If
rk.SetValue("ffmpeg_command", ffpmeg_cmd, RegistryValueKind.String) rk.SetValue("ffmpeg_command", ffpmeg_cmd, RegistryValueKind.String)
Main.ffmpeg_command = ffpmeg_cmd Main.ffmpeg_command = ffpmeg_cmd
End If End If
@ -739,6 +740,18 @@ Public Class Einstellungen
Return "CRD-Temp-File-" + HWID Return "CRD-Temp-File-" + HWID
End Function End Function
Public Function GeräteID2() As String
Dim rnd As New Random
Dim possible As String = "56789abcdefghijklmnopqrstuvwxyz01234ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Dim HWID As String = Nothing
For i As Integer = 0 To 15
Dim ZufallsZahl As Integer = rnd.Next(1, 33)
HWID = HWID + possible(ZufallsZahl)
Next
Return "CRD-Temp-File-" + HWID
End Function
Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles pictureBox1.Click Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles pictureBox1.Click
Me.Close() Me.Close()
End Sub End Sub
@ -822,16 +835,7 @@ Public Class Einstellungen
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
GroupBox2.Enabled = CheckBox1.CheckState
If FFMPEG_CommandP1.Text = "-c copy" Then
FFMPEG_CommandP2.Enabled = False
FFMPEG_CommandP3.Enabled = False
Else
FFMPEG_CommandP2.Enabled = True
FFMPEG_CommandP3.Enabled = True
End If
End Sub
Private Sub ListC1_Click(sender As Object, e As EventArgs) Handles ListC1.Click, ListC2.Click, ListC3.Click, ListC4.Click, ListC5.Click, ListC6.Click, ListC7.Click Private Sub ListC1_Click(sender As Object, e As EventArgs) Handles ListC1.Click, ListC2.Click, ListC3.Click, ListC4.Click, ListC5.Click, ListC6.Click, ListC7.Click
Dim Button As ToolStripMenuItem = sender Dim Button As ToolStripMenuItem = sender
@ -895,10 +899,17 @@ Public Class Einstellungen
Sub GroupBoxColor(ByVal color As Color) Sub GroupBoxColor(ByVal color As Color)
NumericUpDown1.ForeColor = color
NumericUpDown2.ForeColor = color
FFMPEG_CommandP1.ForeColor = color
FFMPEG_CommandP2.ForeColor = color
FFMPEG_CommandP3.ForeColor = color
FFMPEG_CommandP4.ForeColor = color
SoftSubs.ForeColor = color SoftSubs.ForeColor = color
GB_SubLanguage.ForeColor = color GB_SubLanguage.ForeColor = color
DL_Count_simultaneous.ForeColor = color DL_Count_simultaneous.ForeColor = color
GB_Resolution.ForeColor = color GB_Resolution.ForeColor = color
GB_Filename_Pre.ForeColor = color
GroupBox1.ForeColor = color GroupBox1.ForeColor = color
GroupBox2.ForeColor = color GroupBox2.ForeColor = color
GroupBox5.ForeColor = color GroupBox5.ForeColor = color
@ -913,9 +924,7 @@ Public Class Einstellungen
Private Sub GroupBox2_EnabledChanged(sender As Object, e As EventArgs) Handles GroupBox2.EnabledChanged
End Sub
Private Sub DarkMode_CheckedChanged(sender As Object, e As EventArgs) Handles DarkMode.CheckedChanged Private Sub DarkMode_CheckedChanged(sender As Object, e As EventArgs) Handles DarkMode.CheckedChanged
Dim rk As RegistryKey = Registry.CurrentUser.CreateSubKey("Software\CRDownloader") Dim rk As RegistryKey = Registry.CurrentUser.CreateSubKey("Software\CRDownloader")
@ -924,6 +933,8 @@ Public Class Einstellungen
rk.SetValue("Dark_Mode", 1, RegistryValueKind.String) rk.SetValue("Dark_Mode", 1, RegistryValueKind.String)
Manager.Theme = MetroThemeStyle.Dark Manager.Theme = MetroThemeStyle.Dark
GroupBoxColor(Color.FromArgb(150, 150, 150)) GroupBoxColor(Color.FromArgb(150, 150, 150))
NumericUpDown1.BackColor = Color.FromArgb(17, 17, 17)
NumericUpDown2.BackColor = Color.FromArgb(17, 17, 17)
Main.DarkMode() Main.DarkMode()
Main.DarkModeValue = True Main.DarkModeValue = True
pictureBox1.Image = Main.CloseImg pictureBox1.Image = Main.CloseImg
@ -933,6 +944,8 @@ Public Class Einstellungen
Manager.Theme = MetroThemeStyle.Light Manager.Theme = MetroThemeStyle.Light
Main.LightMode() Main.LightMode()
GroupBoxColor(Color.FromArgb(0, 0, 0)) GroupBoxColor(Color.FromArgb(0, 0, 0))
NumericUpDown1.BackColor = Color.FromArgb(243, 243, 243)
NumericUpDown2.BackColor = Color.FromArgb(243, 243, 243)
pictureBox1.Image = Main.CloseImg pictureBox1.Image = Main.CloseImg
End If End If
End Sub End Sub
@ -1144,7 +1157,7 @@ Public Class Einstellungen
End If End If
End Sub End Sub
Private Sub MetroLink1_Click(sender As Object, e As EventArgs) Handles MetroLink1.Click Private Sub MetroLink1_Click(sender As Object, e As EventArgs)
Process.Start("https://github.com/hama3254/Crunchyroll-Downloader-v3.0/discussions/276") Process.Start("https://github.com/hama3254/Crunchyroll-Downloader-v3.0/discussions/276")
End Sub End Sub