fix AoD ffmpeg command issue
workaround funimation certifcate error
fix add-on setting default value issue
This commit is contained in:
hama3254 2021-02-28 13:22:00 +01:00
parent 924642371e
commit 29793c0b3b
20 changed files with 294 additions and 77 deletions

Binary file not shown.

View File

@ -21,7 +21,8 @@
<button type="button" class='btn_class' id='btn_add_funimation'>Add this Funimation Episode</button> <button type="button" class='btn_class' id='btn_add_funimation'>Add this Funimation Episode</button>
<button type="button" class='btn_class' id='btn_add'>Add this Crunchyroll Episode</button> <button type="button" class='btn_class' id='btn_add'>Add this Crunchyroll Episode</button>
<button type="button" class='btn_class' id='btn_add_AoD'>Add this Series</button> <button type="button" class='btn_class' id='btn_add_AoD'>Add this Series</button>
<button type="button" class='btn_class' id='btn_add_mass'>Add selected Episodes</button> <button type="button" class='btn_class' id='btn_add_mass'>Add selected Crunchyroll Episodes</button>
<button type="button" class='btn_class' id='btn_add_mass_funimation'>Add selected Funimation Episodes</button>
<button type="button" class='btn_class' id='btn_enable_select'>Select Episodes</button> <button type="button" class='btn_class' id='btn_enable_select'>Select Episodes</button>
<button type="button" class='btn_class' id='btn_select_all'>Select All</button> <button type="button" class='btn_class' id='btn_select_all'>Select All</button>
<button type="button" class='btn_class' id='btn_select_none'>Deselect All</button> <button type="button" class='btn_class' id='btn_select_none'>Deselect All</button>

View File

@ -1,4 +1,5 @@
var Port; var Port;
var FunCookie;
document.getElementById("btn_add").hidden = true; document.getElementById("btn_add").hidden = true;
document.getElementById("btn_enable_select").hidden = true; document.getElementById("btn_enable_select").hidden = true;
document.getElementById("btn_add_mass").hidden = true; document.getElementById("btn_add_mass").hidden = true;
@ -6,6 +7,7 @@ document.getElementById("btn_select_all").hidden = true;
document.getElementById("btn_select_none").hidden = true; document.getElementById("btn_select_none").hidden = true;
document.getElementById("btn_enable_funimation_select").hidden = true; document.getElementById("btn_enable_funimation_select").hidden = true;
document.getElementById("btn_add_funimation").hidden = true; document.getElementById("btn_add_funimation").hidden = true;
document.getElementById("btn_add_mass_funimation").hidden = true;
document.getElementById("btn_add_AoD").hidden = true; document.getElementById("btn_add_AoD").hidden = true;
browser.storage.local.get("CRD_Port") browser.storage.local.get("CRD_Port")
@ -205,8 +207,9 @@ document.getElementById('btn_add').addEventListener('click', () => {
}); });
document.getElementById('btn_add_funimation').addEventListener('click', () => { document.getElementById('btn_add_funimation').addEventListener('click', () => {
var add_fun = browser.tabs.executeScript({ var add_fun = browser.tabs.executeScript({
code: "javascript:void(0);" //"document.getElementsByClassName('show-details')[0].innerHTML;" code: "document.cookie" //"document.getElementsByClassName('show-details')[0].innerHTML;"
}); });
add_fun.then(add_fun_ok, add_one_error); add_fun.then(add_fun_ok, add_one_error);
@ -221,6 +224,15 @@ document.getElementById('btn_add_mass').addEventListener('click', () => {
}); });
document.getElementById('btn_add_mass_funimation').addEventListener('click', () => {
var add_mass = browser.tabs.executeScript({
code: 'var i,URLList="";for(i=0;i<document.getElementsByClassName("CRD-Selected").length;i++)URLList+=document.getElementsByClassName("CRD-Selected")[i].getAttribute("href");URLList;'
});
add_mass.then(add_mass_fun_ok, add_mass_error);
});
function onExecuted(result) { function onExecuted(result) {
console.log(result[0]); console.log(result[0]);
@ -275,7 +287,7 @@ function add_fun_ok(result) {
var xhttp = new XMLHttpRequest(); var xhttp = new XMLHttpRequest();
xhttp.open("POST", "http://127.0.0.1:" + Port + "/post", true); xhttp.open("POST", "http://127.0.0.1:" + Port + "/post", true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send("FunimationURL=" + tab.url); xhttp.send("FunimationURL=" + tab.url + "&FunimationCookie=" + result);
setTimeout(function () { setTimeout(function () {
document.getElementById("btn_add_funimation").style.background = "#ff8000" document.getElementById("btn_add_funimation").style.background = "#ff8000"
@ -328,6 +340,27 @@ function add_mass_ok(result) {
} }
function add_mass_fun_ok(result) {
document.getElementById("btn_add_mass_funimation").disabled = true;
document.getElementById("btn_add_mass_funimation").style.background = "#c9c9c9"
var postdata = result + "&FunimationCookie=" + FunCookie
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("FunimationMass=" + postdata);
setTimeout(function () {
document.getElementById("btn_add_mass_funimation").style.background = "#ff8000"
}, 10000);
setTimeout(function () {
document.getElementById("btn_add_mass_funimation").disabled = false;
}, 10000);
}
function add_mass_error(error) { function add_mass_error(error) {
console.log(`Error: ${error}`); console.log(`Error: ${error}`);
} }
@ -339,22 +372,31 @@ document.getElementById('btn_enable_funimation_select').addEventListener('click'
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
document.getElementById("btn_add_mass").hidden = false; 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_all").hidden = false;
document.getElementById("btn_select_none").hidden = false; document.getElementById("btn_select_none").hidden = false;
document.getElementById("btn_enable_select").hidden = true; document.getElementById("btn_enable_select").hidden = true;
document.getElementById("btn_add").hidden = true; document.getElementById("btn_add").hidden = true;
document.getElementById("btn_add_funimation").hidden = true; document.getElementById("btn_add_funimation").hidden = true;
document.getElementById("btn_add_AoD").hidden = true; document.getElementById("btn_add_AoD").hidden = true;
document.getElementById("btn_enable_funimation_select").hidden = true;
}); });
function fun_cookie_ok(result) {
FunCookie = result;
}
function FunimationSuccess(result) { function FunimationSuccess(result) {
console.log(result[0]); console.log(result[0]);
if (result[0].includes('javascript:')) { if (result[0].includes('javascript:')) {
document.getElementById("btn_add").hidden = true; document.getElementById("btn_add").hidden = true;
document.getElementById("btn_add_mass").hidden = false; 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_all").hidden = false;
document.getElementById("btn_select_none").hidden = false; document.getElementById("btn_select_none").hidden = false;
document.getElementById("btn_enable_select").hidden = true; document.getElementById("btn_enable_select").hidden = true;
@ -363,6 +405,10 @@ function FunimationSuccess(result) {
document.getElementById("btn_enable_funimation_select").hidden = true; document.getElementById("btn_enable_funimation_select").hidden = true;
document.getElementById("btn_add_funimation").hidden = true; document.getElementById("btn_add_funimation").hidden = true;
document.getElementById("btn_add_AoD").hidden = true; document.getElementById("btn_add_AoD").hidden = true;
var SaveFunimationCookie = browser.tabs.executeScript({
code: "document.cookie"
});
SaveFunimationCookie.then(fun_cookie_ok, add_mass_error);
console.log(true); console.log(true);
} else { } else {
document.getElementById("btn_add").hidden = true; document.getElementById("btn_add").hidden = true;
@ -373,7 +419,10 @@ function FunimationSuccess(result) {
document.getElementById("btn_select_none").hidden = true; document.getElementById("btn_select_none").hidden = true;
document.getElementById("btn_enable_funimation_select").hidden = false; document.getElementById("btn_enable_funimation_select").hidden = false;
document.getElementById("btn_add_AoD").hidden = true; document.getElementById("btn_add_AoD").hidden = true;
var SaveFunimationCookie = browser.tabs.executeScript({
code: "document.cookie"
});
SaveFunimationCookie.then(fun_cookie_ok, add_mass_error);
console.log(false); console.log(false);
} }
} }

View File

@ -294,55 +294,58 @@ Public Class Anime_Add
AoDlogFileReader.Close() AoDlogFileReader.Close()
AoDlogFileStream.Close() AoDlogFileStream.Close()
If AoD_Cookie = Nothing Then If AoD_Cookie = Nothing Then
MsgBox(Main.LoginReminder) MsgBox(Main.LoginReminder)
Main.Text = "Crunchyroll Downloader" Main.Text = "Crunchyroll Downloader"
Main.Invalidate() Main.Invalidate()
StatusLabel.Text = "Status: idle" StatusLabel.Text = "Status: idle"
Exit Sub Exit Sub
End If End If
'MsgBox(AoD_Cookie) 'MsgBox(AoD_Cookie)
'Main.WebbrowserCookie = AoD_Cookie 'Main.WebbrowserCookie = AoD_Cookie
If CBool(InStr(Main.WebbrowserText, "/OmU/1080/hlsfirst/")) Then If CBool(InStr(Main.WebbrowserText, "/OmU/1080/hlsfirst/")) Then
Dim OmUStreamSplit() As String = Main.WebbrowserText.Split(New String() {"/OmU/1080/hlsfirst/"}, System.StringSplitOptions.RemoveEmptyEntries) Dim OmUStreamSplit() As String = Main.WebbrowserText.Split(New String() {"/OmU/1080/hlsfirst/"}, System.StringSplitOptions.RemoveEmptyEntries)
Dim OmUStreamSplitToken() As String = OmUStreamSplit(1).Split(New String() {Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) Dim OmUStreamSplitToken() As String = OmUStreamSplit(1).Split(New String() {Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries)
Dim OmUStreamSplitEpisodeIndex() As String = OmUStreamSplit(0).Split(New String() {"/videomaterialurl/"}, System.StringSplitOptions.RemoveEmptyEntries) Dim OmUStreamSplitEpisodeIndex() As String = OmUStreamSplit(0).Split(New String() {"/videomaterialurl/"}, System.StringSplitOptions.RemoveEmptyEntries)
Dim OmUStreamSplitEpisodeIndex2() As String = OmUStreamSplitEpisodeIndex(1).Split(New String() {"/"}, System.StringSplitOptions.RemoveEmptyEntries) Dim OmUStreamSplitEpisodeIndex2() As String = OmUStreamSplitEpisodeIndex(1).Split(New String() {"/"}, System.StringSplitOptions.RemoveEmptyEntries)
Dim m3u8Strings As String = Nothing Dim m3u8Strings As String = Nothing
'I/nsHttp Cookie: 'I/nsHttp Cookie:
Try Try
Using client As New WebClient() Using client As New WebClient()
client.Encoding = System.Text.Encoding.UTF8 client.Encoding = System.Text.Encoding.UTF8
client.Headers.Add(My.Resources.ffmpeg_user_agend.Replace(Chr(34), "")) client.Headers.Add(My.Resources.ffmpeg_user_agend.Replace(Chr(34), ""))
client.Headers.Add("ACCEPT: application/json, text/javascript, */*; q=0.01") client.Headers.Add("ACCEPT: application/json, text/javascript, */*; q=0.01")
client.Headers.Add("Accept-Encoding: gzip, deflate, br") client.Headers.Add("Accept-Encoding: gzip, deflate, br")
client.Headers.Add("X-Requested-With: XMLHttpRequest") client.Headers.Add("X-Requested-With: XMLHttpRequest")
client.Headers.Add(AoD_Cookie) '+ WebBrowser1.Document.Cookie) client.Headers.Add(AoD_Cookie) '+ WebBrowser1.Document.Cookie)
'MsgBox(OmUStreamSplitEpisodeIndex(1)) 'MsgBox(OmUStreamSplitEpisodeIndex(1))
m3u8Strings = client.DownloadString("https://www.anime-on-demand.de/videomaterialurl/" + OmUStreamSplitEpisodeIndex2(0) + "/OmU/1080/hlsfirst/" + OmUStreamSplitToken(0)) m3u8Strings = client.DownloadString("https://www.anime-on-demand.de/videomaterialurl/" + OmUStreamSplitEpisodeIndex2(0) + "/OmU/1080/hlsfirst/" + OmUStreamSplitToken(0))
'("Sub: " + m3u8Strings) '("Sub: " + m3u8Strings)
End Using End Using
Catch ex As Exception Catch ex As Exception
MsgBox(ex.ToString + vbNewLine + "https://www.anime-on-demand.de/videomaterialurl/" + OmUStreamSplitEpisodeIndex2(0) + "/OmU/1080/hlsfirst/" + OmUStreamSplitToken(0)) MsgBox(ex.ToString + vbNewLine + "https://www.anime-on-demand.de/videomaterialurl/" + OmUStreamSplitEpisodeIndex2(0) + "/OmU/1080/hlsfirst/" + OmUStreamSplitToken(0))
End Try End Try
If m3u8Strings = Nothing Then If m3u8Strings = Nothing Then
Else Else
Dim OmUStreams() As String = m3u8Strings.Split(New String() {My.Resources.AoD_files}, System.StringSplitOptions.RemoveEmptyEntries)
For i As Integer = 1 To OmUStreams.Count - 1
AoD_OmUList.Add(OmUStreams(i))
Next
End If
Dim OmUStreams() As String = m3u8Strings.Split(New String() {My.Resources.AoD_files}, System.StringSplitOptions.RemoveEmptyEntries)
For i As Integer = 1 To OmUStreams.Count - 1
AoD_OmUList.Add(OmUStreams(i))
Next
End If End If
End If If CBool(InStr(Main.WebbrowserText, "/Dub/1080/hlsfirst/")) Then
If CBool(InStr(Main.WebbrowserText, "/Dub/1080/hlsfirst/")) Then
Dim DubStreamSplit() As String = Main.WebbrowserText.Split(New String() {"/Dub/1080/hlsfirst/"}, System.StringSplitOptions.RemoveEmptyEntries) Dim DubStreamSplit() As String = Main.WebbrowserText.Split(New String() {"/Dub/1080/hlsfirst/"}, System.StringSplitOptions.RemoveEmptyEntries)
Dim DubStreamSplitToken() As String = DubStreamSplit(1).Split(New String() {Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries) Dim DubStreamSplitToken() As String = DubStreamSplit(1).Split(New String() {Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries)
Dim DubStreamSplitEpisodeIndex() As String = DubStreamSplit(0).Split(New String() {"/videomaterialurl/"}, System.StringSplitOptions.RemoveEmptyEntries) Dim DubStreamSplitEpisodeIndex() As String = DubStreamSplit(0).Split(New String() {"/videomaterialurl/"}, System.StringSplitOptions.RemoveEmptyEntries)
Dim DubStreamSplitEpisodeIndex2() As String = DubStreamSplitEpisodeIndex(1).Split(New String() {"/"}, System.StringSplitOptions.RemoveEmptyEntries) Dim DubStreamSplitEpisodeIndex2() As String = DubStreamSplitEpisodeIndex(1).Split(New String() {"/"}, System.StringSplitOptions.RemoveEmptyEntries)
Dim m3u8Strings As String = Nothing Dim m3u8Strings As String = Nothing
'I/nsHttp Cookie:
Try Try
Using client As New WebClient() Using client As New WebClient()
client.Encoding = System.Text.Encoding.UTF8 client.Encoding = System.Text.Encoding.UTF8
@ -689,11 +692,57 @@ Public Class Anime_Add
End If End If
Main.Funimation_Grapp_RDY = False Main.Funimation_Grapp_RDY = False
GeckoFX.WebBrowser1.Navigate(UriUsed) Main.WebbrowserURL = UriUsed
ListBox1.Items.Remove(ListBox1.Items(0)) ListBox1.Items.Remove(ListBox1.Items(0))
Main.b = False 'Main.b = False
StatusLabel.Text = "Status: loading ..." StatusLabel.Text = "Status: loading ..."
Main.Text = "Status: loading ..." Main.Text = "Status: loading ..."
If Main.SystemWebBrowserCookie IsNot Nothing Then
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, deflate, br")
client.Headers.Add("Cookie:" + Main.SystemWebBrowserCookie)
Dim HTMLString As String = DecompressString(client.DownloadData(Main.WebbrowserURL))
If InStr(HTMLString, My.Resources.Funimation_Player_ID) 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()
Else
Me.Invoke(New Action(Function()
Main.Text = "Status: no video found"
Me.StatusLabel.Text = "fail?"
Return Nothing
End Function))
End If
End Using
Catch ex As Exception
MsgBox(ex.ToString)
Exit Sub
End Try
Else
GeckoFX.WebBrowser1.Navigate(UriUsed)
End If
Main.Invalidate() Main.Invalidate()
End If End If
@ -768,6 +817,7 @@ Public Class Anime_Add
Dim ProcessList As New List(Of String) Dim ProcessList As New List(Of String)
Dim Dub As Boolean = False Dim Dub As Boolean = False
Dim RDY As Boolean = True Dim RDY As Boolean = True
Dim ffmpeg As String = Main.ffmpeg_command
Dim Running As Integer = Main.RunningDownloads Dim Running As Integer = Main.RunningDownloads
Dim DlMax As Integer = Main.MaxDL Dim DlMax As Integer = Main.MaxDL
Dim Pfad0 As String = Main.Pfad Dim Pfad0 As String = Main.Pfad
@ -788,6 +838,7 @@ Public Class Anime_Add
Me.Invoke(New Action(Function() Me.Invoke(New Action(Function()
'Main.StatusMainForm.Text = "Crunchyroll Downloader" 'Main.StatusMainForm.Text = "Crunchyroll Downloader"
ffmpeg = Main.ffmpeg_command
Pfad2 = Main.Pfad Pfad2 = Main.Pfad
NameMethode = Main.CR_NameMethode NameMethode = Main.CR_NameMethode
If Main.AoD_Reso = 0 Then If Main.AoD_Reso = 0 Then
@ -1180,7 +1231,7 @@ Public Class Anime_Add
End If End If
Dim AoDm3u8Final As String = "-i " + Chr(34) + m3u8_url + Chr(34) + " " + Main.ffmpeg_command Dim AoDm3u8Final As String = "-i " + Chr(34) + m3u8_url + Chr(34) + " " + ffmpeg
Dim DisplayReso As String = TargetReso.ToString + "p" Dim DisplayReso As String = TargetReso.ToString + "p"
If AoD_1080pPlus = True Then If AoD_1080pPlus = True Then
DisplayReso = "1080p+" DisplayReso = "1080p+"
@ -1365,7 +1416,5 @@ Public Class Anime_Add
End If End If
End Sub End Sub
Private Sub Anime_Add_DoubleClick(sender As Object, e As EventArgs) Handles Me.DoubleClick
'
End Sub
End Class End Class

View File

@ -7,7 +7,7 @@ Imports System.ComponentModel
Imports MetroFramework Imports MetroFramework
Imports MetroFramework.Components Imports MetroFramework.Components
Imports MetroFramework.Forms Imports MetroFramework.Forms
Imports System.IO.Compression
Public Class CRD_List_Item Public Class CRD_List_Item
Inherits Controls.MetroUserControl Inherits Controls.MetroUserControl
@ -1355,22 +1355,9 @@ Public Class CRD_List_Item
End Try End Try
End Sub End Sub
Public Function DecompressString(ByVal bytes As Byte()) As String
Using ms = New MemoryStream(bytes)
Using ds = New GZipStream(ms, CompressionMode.Decompress)
Using sr = New StreamReader(ds)
Return sr.ReadToEnd()
End Using
End Using
End Using
End Function
End Class End Class
Public Class FailedSegemtsWithURL Public Class FailedSegemtsWithURL
Public path As String Public path As String
Public url As String Public url As String

View File

@ -93,6 +93,7 @@ Public Class Main
Public WebbrowserHeadText As String = Nothing Public WebbrowserHeadText As String = Nothing
Public WebbrowserSoftSubURL As String = Nothing Public WebbrowserSoftSubURL As String = Nothing
Public WebbrowserURL As String = Nothing Public WebbrowserURL As String = Nothing
Public SystemWebBrowserCookie As String = Nothing
Public WebbrowserText As String = Nothing Public WebbrowserText As String = Nothing
Public WebbrowserTitle As String = Nothing Public WebbrowserTitle As String = Nothing
Public WebbrowserCookie As String = Nothing Public WebbrowserCookie As String = Nothing
@ -134,7 +135,7 @@ Public Class Main
Public DL_Count_simultaneousText As String = "Simultaneous Downloads" Public DL_Count_simultaneousText As String = "Simultaneous Downloads"
Public GB_Sub_FormatText As String = "extended Sub Settings" Public GB_Sub_FormatText As String = "extended Sub Settings"
Public LabelResoNotFoundText As String = "resolution not found" + vbNewLine + "Select another one below" Public LabelResoNotFoundText As String = "resolution not found" + vbNewLine + "Select another one below"
Public LabelLangNotFoundText As String = "language not found" + vbNewLine + "Select another one below" Public LabelLangNotFoundText As String = "subtitle language not found" + vbNewLine + "Select another one below"
Public ButtonResoNotFoundText As String = "Submit" Public ButtonResoNotFoundText As String = "Submit"
Public CB_SuB_Nothing As String = "[ null ]" Public CB_SuB_Nothing As String = "[ null ]"
Dim StatusToolTip As ToolTip = New ToolTip() Dim StatusToolTip As ToolTip = New ToolTip()
@ -2623,6 +2624,7 @@ Public Class Main
SubsClient.Encoding = Encoding.UTF8 SubsClient.Encoding = Encoding.UTF8
If WebbrowserCookie = Nothing Then If WebbrowserCookie = Nothing Then
Else Else
'MsgBox(WebbrowserCookie)
SubsClient.Headers.Add(HttpRequestHeader.Cookie, WebbrowserCookie) SubsClient.Headers.Add(HttpRequestHeader.Cookie, WebbrowserCookie)
End If End If
Dim PlayerPage As String = SubsClient.DownloadString("https://www.funimation.com/player/" + Player_ID2(0) + "/?bdub=0&qid=") Dim PlayerPage As String = SubsClient.DownloadString("https://www.funimation.com/player/" + Player_ID2(0) + "/?bdub=0&qid=")
@ -3211,10 +3213,69 @@ Public Class Main
SendHTMLResponse(strRequest, stream) SendHTMLResponse(strRequest, stream)
End Try End Try
#End Region #End Region
#Region "Funimation-mass"
ElseIf InStr(htmlReq, "FunimationMass=") Then
Debug.WriteLine("Funimation multi episode mode")
Try
Dim DecodedHTML As String = UrlDecode(htmlReq)
If InStr(DecodedHTML, "&FunimationCookie=") Then
Dim CookieSplit() As String = DecodedHTML.Split(New String() {"&FunimationCookie="}, System.StringSplitOptions.RemoveEmptyEntries)
SystemWebBrowserCookie = CookieSplit(1)
Dim URLSplit() As String = CookieSplit(0).Split(New String() {"FunimationMass="}, System.StringSplitOptions.RemoveEmptyEntries)
Dim URLSplit2() As String = URLSplit(1).Split(New String() {"javascript:"}, System.StringSplitOptions.RemoveEmptyEntries)
If Application.OpenForms().OfType(Of Anime_Add).Any = True Then
For i As Integer = 0 To URLSplit2.Count - 1
Dim ii As Integer = i
Me.Invoke(New Action(Function()
If Anime_Add.ListBox1.Items.Contains(URLSplit2(ii)) = False Then
Anime_Add.ListBox1.Items.Add(URLSplit2(ii))
End If
'Anime_Add.ListBox1.Items.Add(URLSplit(ii))
Return Nothing
End Function))
Next
Else
For i As Integer = 0 To URLSplit2.Count - 1
If ListBoxList.Contains(URLSplit2(i)) = False Then
ListBoxList.Add(URLSplit2(i))
End If
Next
Me.Invoke(New Action(Function()
Me.Text = "Status: " + ListBoxList.Count.ToString + " Downloads in queue" + vbNewLine + "open the add window to continue"
Me.Invalidate()
Return Nothing
End Function))
End If
strRequest = rootPath & "Post_Mass_Sucess.html" 'PostPage
SendHTMLResponse(strRequest, stream)
End If
Catch abort As ThreadAbortException
Exit Sub
Catch ex As Exception
Dim ErrorPage As String = My.Resources.Post_error_Top + ex.ToString + My.Resources.Post_error_Bottom
My.Computer.FileSystem.WriteAllText(Application.StartupPath + "\WebInterface\error_Page.html", ErrorPage, False)
strRequest = rootPath & "error_Page.html" 'PostPage
SendHTMLResponse(strRequest, stream)
End Try
#End Region
#Region "funimation Einzeln" #Region "funimation Einzeln"
ElseIf InStr(htmlReq, "FunimationURL=") Then ElseIf InStr(htmlReq, "FunimationURL=") Then
Debug.WriteLine("single episode mode - Funimation") Debug.WriteLine("single episode mode - Funimation")
'Debug.WriteLine(htmlReq) MsgBox(htmlReq)
Me.Invoke(New Action(Function() Me.Invoke(New Action(Function()
Me.Text = "Status: Download added from add-on" Me.Text = "Status: Download added from add-on"
Me.Invalidate() Me.Invalidate()
@ -3222,7 +3283,9 @@ Public Class Main
End Function)) End Function))
Try Try
Dim URLSplit() As String = htmlReq.Split(New String() {"FunimationURL="}, System.StringSplitOptions.RemoveEmptyEntries) Dim URLSplit() As String = htmlReq.Split(New String() {"FunimationURL="}, System.StringSplitOptions.RemoveEmptyEntries)
WebbrowserURL = UrlDecode(URLSplit(1)) Dim URLSplit2() As String = URLSplit(1).Split(New String() {"&FunimationCookie="}, System.StringSplitOptions.RemoveEmptyEntries)
SystemWebBrowserCookie = URLSplit2(1)
WebbrowserURL = UrlDecode(URLSplit2(0))
If InStr(WebbrowserURL, "funimation.com") Then If InStr(WebbrowserURL, "funimation.com") Then
If DubFunimation = "Disabled" Then If DubFunimation = "Disabled" Then
@ -3278,12 +3341,58 @@ 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
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, deflate, br")
client.Headers.Add("Cookie:" + SystemWebBrowserCookie)
Dim HTMLString As String = DecompressString(client.DownloadData(WebbrowserURL))
If InStr(HTMLString, My.Resources.Funimation_Player_ID) 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
End If End If
Else Else

View File

@ -32,6 +32,6 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben: ' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")> ' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("3.7.5.1")> <Assembly: AssemblyVersion("3.7.6")>
<Assembly: AssemblyFileVersion("3.7.5.1")> <Assembly: AssemblyFileVersion("3.7.6")>
<Assembly: NeutralResourcesLanguage("en")> <Assembly: NeutralResourcesLanguage("en")>

View File

@ -1,4 +1,6 @@
Module ProcessSleep Imports System.IO
Imports System.IO.Compression
Module ProcessSleep
Public Enum ThreadAccess As Integer Public Enum ThreadAccess As Integer
TERMINATE = (&H1) TERMINATE = (&H1)
SUSPEND_RESUME = (&H2) SUSPEND_RESUME = (&H2)
@ -43,4 +45,19 @@
stopWatch.Stop() stopWatch.Stop()
End Sub End Sub
Public Function DecompressString(ByVal bytes As Byte()) As String
Using ms = New MemoryStream(bytes)
Using ds = New GZipStream(ms, CompressionMode.Decompress)
Using sr = New StreamReader(ds)
Return sr.ReadToEnd()
End Using
End Using
End Using
End Function
End Module End Module

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 3178.</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 3287.</p>
</div> </div>
</body> </body>
</html> </html>

View File

@ -1005,10 +1005,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(493, 461) Me.TabPage1.Size = New System.Drawing.Size(493, 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
@ -1225,7 +1225,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 = 3 Me.TabControl1.SelectedIndex = 0
Me.TabControl1.Size = New System.Drawing.Size(501, 500) Me.TabControl1.Size = New System.Drawing.Size(501, 500)
Me.TabControl1.TabIndex = 38 Me.TabControl1.TabIndex = 38
Me.TabControl1.UseSelectable = True Me.TabControl1.UseSelectable = True

View File

@ -126,9 +126,6 @@
<metadata name="MenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="MenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>118, 20</value> <value>118, 20</value>
</metadata> </metadata>
<metadata name="MenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>118, 20</value>
</metadata>
<metadata name="BackgroundWorker1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="BackgroundWorker1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>332, 20</value> <value>332, 20</value>
</metadata> </metadata>

View File

@ -250,6 +250,8 @@ Public Class Einstellungen
End If End If
Catch ex As Exception Catch ex As Exception
http_support.Text = "add-on support disabled"
End Try End Try
If Main.DefaultSubFunimation = "en" Then If Main.DefaultSubFunimation = "en" Then
@ -303,6 +305,12 @@ Public Class Einstellungen
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
Else
AAuto.Checked = False
A360p.Checked = True
End If
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