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,
"name": "Crunchyroll Downloader Addon",
"version": "0.5.0",
"version": "0.6.0",
"description": "A Firefox Addon for my Crunchyroll Downloader",
@ -16,6 +16,14 @@
"http://127.0.0.1/*",
"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": {
"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);
console.log(tab.url);
if (tab.url.includes('crunchyroll.com')) {
var crunchyroll = browser.tabs.executeScript({
code: 'document.getElementsByClassName("episode")[0].href;'
});
if (tab.url.includes('beta.crunchyroll.com')) {
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')) {
@ -39,7 +49,7 @@ function getServerValue(request, sender, sendResponse) {
code: 'document.getElementsByClassName("trackVideo")[0].href'
});
funimation.then(FunimationSuccess, FunimationError);
funimation.then(FunimationSuccess, FunimationOldNotFound);
} else if (tab.url.includes('anime-on-demand.de/anime/')) {
document.getElementById("btn_add").hidden = true;
@ -136,20 +146,46 @@ document.getElementById('btn_add_AoD').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;
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;
browser.tabs.query({
currentWindow: true,
active: true
}).then((tabs) => {
let tab = tabs[0]; // Safe to assume there will only be one resultconsole.log(tab.url);
console.log(tab.url);
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', () => {
browser.tabs.query({
currentWindow: true,
@ -157,8 +193,13 @@ document.getElementById('btn_select_all').addEventListener('click', () => {
}).then((tabs) => {
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({
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({
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 {}
}, console.error)
@ -182,7 +227,13 @@ document.getElementById('btn_select_none').addEventListener('click', () => {
}).then((tabs) => {
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({
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({
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 {}
}, console.error)
});
document.getElementById('btn_add').addEventListener('click', () => {
var add_one = browser.tabs.executeScript({
code: "document.getElementsByClassName('no-js')[0].innerHTML;"
});
add_one.then(add_one_ok, add_one_error);
browser.tabs.query({
currentWindow: true,
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) {
document.getElementById("btn_add_mass_funimation").disabled = true;
@ -367,8 +465,21 @@ function add_mass_error(error) {
//funimation
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);'
}); //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_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) {
@ -426,9 +556,18 @@ function FunimationSuccess(result) {
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) {
console.log(`Error: ${error}`);
console.log(`Error: ${error}`);
document.getElementById("btn_add").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_enable_funimation_select").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))
'Main.b = False
If Main.SystemWebBrowserCookie = Nothing Then
Main.b = False
Main.b = False
GeckoFX.WebBrowser1.Navigate(UriUsed)
StatusLabel.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
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()
Main.Invalidate()
End If
Else

View File

@ -884,6 +884,7 @@ Public Class CRD_List_Item
#End Region
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 DL_URL_old As String = DL_URL
Dim PauseTime As Integer = 0
@ -897,11 +898,11 @@ Public Class CRD_List_Item
Me.Invoke(New Action(Function()
Label_percent.Text = "Checking input..."
Return Nothing
End Function))
End Function))
For i As Integer = 0 To InuputStreams.Count - 1
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
InputClient.Encoding = Encoding.UTF8
If Main.WebbrowserCookie = Nothing Then
@ -910,6 +911,10 @@ Public Class CRD_List_Item
End If
Dim SubsFile As String = Pfad2 + Einstellungen.GeräteID() + ".txt"
If File.Exists(SubsFile) Then
SubsFile = Pfad2 + Einstellungen.GeräteID2() + ".txt"
End If
Try
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")
Else
'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)
Using sink As New StreamWriter(SubsFile, False, utf8WithoutBom2)
sink.WriteLine(InputData)
@ -984,7 +999,7 @@ Public Class CRD_List_Item
Dim startinfo As New System.Diagnostics.ProcessStartInfo
Dim cmd As String = DL_URL + " " + DL_Pfad
LogText.Add(Date.Now + " " + cmd)
If Debug2 = True Then
MsgBox(cmd)
End If
@ -1065,10 +1080,7 @@ Public Class CRD_List_Item
Catch ex As Exception
End Try
'Me.Invoke(New Action(Function()
' Label_percent.Text = "Finished - event"
' Return Nothing
' End Function))
End Sub
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.MassGrapp()
Else
My.Computer.FileSystem.WriteAllText(Application.StartupPath + "\html.log", WebBrowser1.Document.Body.OuterHtml, True)
Main.b = True
MsgBox(Main.No_Stream, MsgBoxStyle.OkOnly)
Anime_Add.StatusLabel.Text = "Status: idle"

View File

@ -4805,61 +4805,12 @@ Public Class Main
End If
'ListBoxList.Add(WebbrowserURL)
Else
'Me.Invoke(New Action(Function()
' GeckoFX.WebBrowser1.Navigate(WebbrowserURL)
' Return Nothing
' End Function))
Me.Invoke(New Action(Function()
GeckoFX.WebBrowser1.Navigate(WebbrowserURL)
Return Nothing
End Function))
'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
b = False
@ -4994,7 +4945,7 @@ Public Class Main
"HTTP/1.0 200 OK" & ControlChars.CrLf &
"Server: CRD 1.0" & ControlChars.CrLf &
"Content-Length: " & respByte.Length & ControlChars.CrLf &
"Content-Type: " & GetContentType(httpRequest) &
"Content-Type: " & GetContentType(httpRequest) & ControlChars.CrLf &
"Connection: close" &
ControlChars.CrLf & ControlChars.CrLf
' The content Length of HTML Header

View File

@ -43,7 +43,7 @@
</div>
<h1>Failed!</h1>
<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>
</body>
</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.ComboBox1 = New MetroFramework.Controls.MetroComboBox()
Me.TabPage2 = New MetroFramework.Controls.MetroTabPage()
Me.GB_Filename_Pre = 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_Season_Prefix = New MetroFramework.Controls.MetroComboBox()
Me.CR_Filename = New MetroFramework.Controls.MetroComboBox()
Me.GroupBox4 = New System.Windows.Forms.GroupBox()
Me.MergeMP4 = New MetroFramework.Controls.MetroCheckBox()
Me.CB_Format = New MetroFramework.Controls.MetroComboBox()
Me.CheckBox1 = New MetroFramework.Controls.MetroCheckBox()
Me.GroupBox2 = New System.Windows.Forms.GroupBox()
Me.Panel1 = New System.Windows.Forms.Panel()
Me.MenuStrip1 = New System.Windows.Forms.MenuStrip()
@ -132,6 +130,8 @@ Partial Class Einstellungen
Me.Label6 = New MetroFramework.Controls.MetroLabel()
Me.Label5 = New MetroFramework.Controls.MetroLabel()
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.pictureBox4, System.ComponentModel.ISupportInitialize).BeginInit()
Me.GroupBox14.SuspendLayout()
@ -139,6 +139,7 @@ Partial Class Einstellungen
Me.SoftSubs.SuspendLayout()
Me.GB_SubLanguage.SuspendLayout()
Me.TabPage2.SuspendLayout()
Me.GB_Filename_Pre.SuspendLayout()
Me.GroupBox12.SuspendLayout()
Me.GroupBox4.SuspendLayout()
Me.GroupBox2.SuspendLayout()
@ -395,9 +396,9 @@ Partial Class Einstellungen
'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.Controls.Add(Me.GB_Filename_Pre)
Me.TabPage2.Controls.Add(Me.GroupBox12)
Me.TabPage2.Controls.Add(Me.GroupBox4)
Me.TabPage2.Controls.Add(Me.CheckBox1)
Me.TabPage2.Controls.Add(Me.GroupBox2)
Me.TabPage2.Controls.Add(Me.GB_Resolution)
Me.TabPage2.HorizontalScrollbarBarColor = True
@ -414,11 +415,23 @@ Partial Class Einstellungen
Me.TabPage2.VerticalScrollbarSize = 10
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
'
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_Season_Prefix)
Me.GroupBox12.Controls.Add(Me.CR_Filename)
@ -431,29 +444,6 @@ Partial Class Einstellungen
Me.GroupBox12.TabStop = False
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
'
Me.DD_Episode_Prefix.DropDownHeight = 250
@ -463,7 +453,7 @@ Partial Class Einstellungen
Me.DD_Episode_Prefix.IntegralHeight = False
Me.DD_Episode_Prefix.ItemHeight = 23
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.Size = New System.Drawing.Size(225, 29)
Me.DD_Episode_Prefix.TabIndex = 36
@ -478,7 +468,7 @@ Partial Class Einstellungen
Me.DD_Season_Prefix.IntegralHeight = False
Me.DD_Season_Prefix.ItemHeight = 23
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.Size = New System.Drawing.Size(225, 29)
Me.DD_Season_Prefix.TabIndex = 35
@ -492,7 +482,7 @@ Partial Class Einstellungen
Me.CR_Filename.IntegralHeight = False
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.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.Size = New System.Drawing.Size(467, 29)
Me.CR_Filename.TabIndex = 34
@ -505,7 +495,7 @@ Partial Class Einstellungen
Me.GroupBox4.Controls.Add(Me.CB_Format)
Me.GroupBox4.Font = New System.Drawing.Font("Arial", 9.75!)
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.Size = New System.Drawing.Size(490, 78)
Me.GroupBox4.TabIndex = 42
@ -536,27 +526,13 @@ Partial Class Einstellungen
Me.CB_Format.TabIndex = 37
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
'
Me.GroupBox2.BackColor = System.Drawing.Color.Transparent
Me.GroupBox2.Controls.Add(Me.Panel1)
Me.GroupBox2.Enabled = False
Me.GroupBox2.Font = New System.Drawing.Font("Arial", 9.75!)
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.Size = New System.Drawing.Size(490, 63)
Me.GroupBox2.TabIndex = 40
@ -726,7 +702,7 @@ Partial Class Einstellungen
Me.GB_Resolution.Controls.Add(Me.A1080p)
Me.GB_Resolution.Font = New System.Drawing.Font("Arial", 9.75!)
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.Size = New System.Drawing.Size(490, 59)
Me.GB_Resolution.TabIndex = 38
@ -811,10 +787,10 @@ Partial Class Einstellungen
Me.TabPage1.HorizontalScrollbarBarColor = True
Me.TabPage1.HorizontalScrollbarHighlightOnWheel = False
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.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.Text = " Main"
Me.TabPage1.VerticalScrollbar = True
@ -1032,7 +1008,7 @@ Partial Class Einstellungen
Me.TabControl1.FontWeight = MetroFramework.MetroTabControlWeight.Regular
Me.TabControl1.Location = New System.Drawing.Point(22, 60)
Me.TabControl1.Name = "TabControl1"
Me.TabControl1.SelectedIndex = 1
Me.TabControl1.SelectedIndex = 0
Me.TabControl1.Size = New System.Drawing.Size(509, 500)
Me.TabControl1.TabIndex = 38
Me.TabControl1.UseSelectable = True
@ -1337,9 +1313,9 @@ Partial Class Einstellungen
Me.TabPage7.Controls.Add(Me.Label4)
Me.TabPage7.Controls.Add(Me.Label6)
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.Size = New System.Drawing.Size(501, 452)
Me.TabPage7.Size = New System.Drawing.Size(501, 461)
Me.TabPage7.TabIndex = 5
Me.TabPage7.Text = "About "
'
@ -1455,6 +1431,29 @@ Partial Class Einstellungen
'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
'
Me.ApplyImageInvert = True
@ -1481,9 +1480,9 @@ Partial Class Einstellungen
Me.SoftSubs.PerformLayout()
Me.GB_SubLanguage.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.PerformLayout()
Me.GroupBox4.ResumeLayout(False)
Me.GroupBox4.PerformLayout()
Me.GroupBox2.ResumeLayout(False)
@ -1595,7 +1594,6 @@ Partial Class Einstellungen
Friend WithEvents CB_srt As MetroFramework.Controls.MetroCheckBox
Friend WithEvents CB_vtt 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 A480p 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 ListC7 As ToolStripMenuItem
Friend WithEvents ListP3 As ToolStripMenuItem
Friend WithEvents GB_Filename_Pre As GroupBox
Friend WithEvents KodiSupport As MetroFramework.Controls.MetroToggle
Friend WithEvents MetroLink1 As MetroFramework.Controls.MetroLink
End Class

View File

@ -17,7 +17,7 @@ Public Class Einstellungen
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()
@ -329,7 +329,7 @@ Public Class Einstellungen
Try
Port = CInt(http_support.Text)
rk.SetValue("ServerPort", Port, RegistryValueKind.String)
Main.StartServer = False
'Main.StartServer = False
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
@ -340,9 +340,13 @@ Public Class Einstellungen
MsgBox("The add-on support Port can only be numbers!", MsgBoxStyle.Exclamation)
Exit Sub
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
If KodiSupport.Checked = True Then
Main.KodiNaming = True
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
ffpmeg_cmd = " " + FFMPEG_CommandP1.Text + " " + FFMPEG_CommandP4.Text
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
End If
rk.SetValue("ffmpeg_command", ffpmeg_cmd, RegistryValueKind.String)
Main.ffmpeg_command = ffpmeg_cmd
End If
@ -739,6 +740,18 @@ Public Class Einstellungen
Return "CRD-Temp-File-" + HWID
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
Me.Close()
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
Dim Button As ToolStripMenuItem = sender
@ -895,10 +899,17 @@ Public Class Einstellungen
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
GB_SubLanguage.ForeColor = color
DL_Count_simultaneous.ForeColor = color
GB_Resolution.ForeColor = color
GB_Filename_Pre.ForeColor = color
GroupBox1.ForeColor = color
GroupBox2.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
Dim rk As RegistryKey = Registry.CurrentUser.CreateSubKey("Software\CRDownloader")
@ -924,6 +933,8 @@ Public Class Einstellungen
rk.SetValue("Dark_Mode", 1, RegistryValueKind.String)
Manager.Theme = MetroThemeStyle.Dark
GroupBoxColor(Color.FromArgb(150, 150, 150))
NumericUpDown1.BackColor = Color.FromArgb(17, 17, 17)
NumericUpDown2.BackColor = Color.FromArgb(17, 17, 17)
Main.DarkMode()
Main.DarkModeValue = True
pictureBox1.Image = Main.CloseImg
@ -933,6 +944,8 @@ Public Class Einstellungen
Manager.Theme = MetroThemeStyle.Light
Main.LightMode()
GroupBoxColor(Color.FromArgb(0, 0, 0))
NumericUpDown1.BackColor = Color.FromArgb(243, 243, 243)
NumericUpDown2.BackColor = Color.FromArgb(243, 243, 243)
pictureBox1.Image = Main.CloseImg
End If
End Sub
@ -1144,7 +1157,7 @@ Public Class Einstellungen
End If
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")
End Sub