mirror of
https://github.com/hama3254/Crunchyroll-Downloader-v3.0.git
synced 2024-11-15 04:35:06 +01:00
workaround invalid server response
workaround invalid server response "CR must be followed by LF"
This commit is contained in:
parent
26cf94d36f
commit
1ab8b7e319
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -113,11 +113,9 @@ Public Class CefSharp_Browser
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
If WebBrowser1.Address = "about:blank" Or WebBrowser1.Address = Nothing Then
|
If WebBrowser1.Address = "about:blank" Or WebBrowser1.Address = Nothing Then
|
||||||
If Main.LoginOnly = "US_UnBlock" Then
|
|
||||||
WebBrowser1.Load("https://www.crunchyroll.com/login")
|
WebBrowser1.Load(Main.Startseite)
|
||||||
Else
|
|
||||||
WebBrowser1.Load(Main.Startseite)
|
|
||||||
End If
|
|
||||||
End If
|
End If
|
||||||
Try
|
Try
|
||||||
Me.Icon = My.Resources.icon
|
Me.Icon = My.Resources.icon
|
||||||
|
@ -152,6 +152,12 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="ApplicationEvents.vb" />
|
<Compile Include="ApplicationEvents.vb" />
|
||||||
|
<Compile Include="ErrorBrowser.Designer.vb">
|
||||||
|
<DependentUpon>ErrorBrowser.vb</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="ErrorBrowser.vb">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
<Compile Include="GlobalSuppressions.vb" />
|
<Compile Include="GlobalSuppressions.vb" />
|
||||||
<Compile Include="My Project\Resources.Designer.vb">
|
<Compile Include="My Project\Resources.Designer.vb">
|
||||||
<AutoGen>True</AutoGen>
|
<AutoGen>True</AutoGen>
|
||||||
@ -220,6 +226,9 @@
|
|||||||
<Compile Include="Subfolder.vb" />
|
<Compile Include="Subfolder.vb" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<EmbeddedResource Include="ErrorBrowser.resx">
|
||||||
|
<DependentUpon>ErrorBrowser.vb</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="network_scan.resx">
|
<EmbeddedResource Include="network_scan.resx">
|
||||||
<DependentUpon>network_scan.vb</DependentUpon>
|
<DependentUpon>network_scan.vb</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
51
Crunchyroll Downloader/ErrorBrowser.Designer.vb
generated
Normal file
51
Crunchyroll Downloader/ErrorBrowser.Designer.vb
generated
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||||
|
Partial Class ErrorBrowser
|
||||||
|
Inherits System.Windows.Forms.Form
|
||||||
|
|
||||||
|
'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
|
||||||
|
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||||
|
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||||
|
Try
|
||||||
|
If disposing AndAlso components IsNot Nothing Then
|
||||||
|
components.Dispose()
|
||||||
|
End If
|
||||||
|
Finally
|
||||||
|
MyBase.Dispose(disposing)
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
'Wird vom Windows Form-Designer benötigt.
|
||||||
|
Private components As System.ComponentModel.IContainer
|
||||||
|
|
||||||
|
'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
|
||||||
|
'Das Bearbeiten ist mit dem Windows Form-Designer möglich.
|
||||||
|
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
|
||||||
|
<System.Diagnostics.DebuggerStepThrough()> _
|
||||||
|
Private Sub InitializeComponent()
|
||||||
|
Me.ChromiumWebBrowser1 = New CefSharp.WinForms.ChromiumWebBrowser()
|
||||||
|
Me.SuspendLayout()
|
||||||
|
'
|
||||||
|
'ChromiumWebBrowser1
|
||||||
|
'
|
||||||
|
Me.ChromiumWebBrowser1.ActivateBrowserOnCreation = False
|
||||||
|
'TODO: Ausnahme "Ungültiger primitiver Typ: System.IntPtr. Verwenden Sie CodeObjectCreateExpression." beim Generieren des Codes für "".
|
||||||
|
Me.ChromiumWebBrowser1.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.ChromiumWebBrowser1.Location = New System.Drawing.Point(0, 0)
|
||||||
|
Me.ChromiumWebBrowser1.Name = "ChromiumWebBrowser1"
|
||||||
|
Me.ChromiumWebBrowser1.Size = New System.Drawing.Size(911, 569)
|
||||||
|
Me.ChromiumWebBrowser1.TabIndex = 0
|
||||||
|
'
|
||||||
|
'ErrorBrowser
|
||||||
|
'
|
||||||
|
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||||
|
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||||
|
Me.ClientSize = New System.Drawing.Size(911, 569)
|
||||||
|
Me.Controls.Add(Me.ChromiumWebBrowser1)
|
||||||
|
Me.Name = "ErrorBrowser"
|
||||||
|
Me.Text = "ErrorBrowser"
|
||||||
|
Me.ResumeLayout(False)
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Friend WithEvents ChromiumWebBrowser1 As CefSharp.WinForms.ChromiumWebBrowser
|
||||||
|
End Class
|
120
Crunchyroll Downloader/ErrorBrowser.resx
Normal file
120
Crunchyroll Downloader/ErrorBrowser.resx
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
57
Crunchyroll Downloader/ErrorBrowser.vb
Normal file
57
Crunchyroll Downloader/ErrorBrowser.vb
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
Imports CefSharp
|
||||||
|
|
||||||
|
Public Class ErrorBrowser
|
||||||
|
|
||||||
|
|
||||||
|
Private Sub ChromiumWebBrowser1_FrameLoadEnd(sender As Object, e As FrameLoadEndEventArgs) Handles ChromiumWebBrowser1.FrameLoadEnd
|
||||||
|
If e.Frame.IsMain Then
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
GetHTML()
|
||||||
|
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Async Sub GetHTML()
|
||||||
|
Try
|
||||||
|
|
||||||
|
Dim HTML As String = Await ChromiumWebBrowser1.GetSourceAsync
|
||||||
|
Debug.WriteLine("got error browser html")
|
||||||
|
Me.Invoke(New Action(Function() As Object
|
||||||
|
|
||||||
|
ProcessFallbackHTML(HTML, ChromiumWebBrowser1.Address)
|
||||||
|
'If Main.UserBowser = False Then
|
||||||
|
' Me.Close()
|
||||||
|
'End If
|
||||||
|
Return Nothing
|
||||||
|
End Function))
|
||||||
|
|
||||||
|
Catch ex As Exception
|
||||||
|
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub ProcessFallbackHTML(ByVal document As String, ByVal Address As String)
|
||||||
|
Dim localHTML As String = document
|
||||||
|
Debug.WriteLine(Date.Now.ToString + "." + Date.Now.Millisecond.ToString)
|
||||||
|
Debug.WriteLine(Address)
|
||||||
|
|
||||||
|
If CBool(InStr(Address, "https://www.funimation.com/api/showexperience/")) Then
|
||||||
|
|
||||||
|
Main.ErrorBrowserBackString = localHTML.Replace("<body>", "").Replace("</body>", "").Replace("<pre>", "").Replace("</pre>", "").Replace("</html>", "").Replace("<html><head></head><pre style=" + Chr(34) + "word-wrap: break-word; white-space: pre-wrap;" + Chr(34) + ">", "") '
|
||||||
|
|
||||||
|
Me.Close()
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub ErrorBrowser_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||||
|
Me.Location = New Point(-10000, -10000)
|
||||||
|
If Main.ErrorBrowserString = "Funimation_showexperience" Then
|
||||||
|
ChromiumWebBrowser1.Load(Main.ErrorBrowserUrl)
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
End Class
|
@ -84,6 +84,9 @@ Public Class Main
|
|||||||
Public NonCR_URL As String = Nothing
|
Public NonCR_URL As String = Nothing
|
||||||
Public DlSoftSubsRDY As Boolean = True
|
Public DlSoftSubsRDY As Boolean = True
|
||||||
Public DialogTaskString As String
|
Public DialogTaskString As String
|
||||||
|
Public ErrorBrowserString As String
|
||||||
|
Public ErrorBrowserUrl As String
|
||||||
|
Public ErrorBrowserBackString As String
|
||||||
Public UserCloseDialog As Boolean = False
|
Public UserCloseDialog As Boolean = False
|
||||||
Dim Aktuell As String
|
Dim Aktuell As String
|
||||||
Dim Gesamt As String
|
Dim Gesamt As String
|
||||||
@ -3915,10 +3918,9 @@ Public Class Main
|
|||||||
ElseIf Not SystemWebBrowserCookie = Nothing Then
|
ElseIf Not SystemWebBrowserCookie = Nothing Then
|
||||||
client0.Headers.Add(HttpRequestHeader.Cookie, SystemWebBrowserCookie)
|
client0.Headers.Add(HttpRequestHeader.Cookie, SystemWebBrowserCookie)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Dim str0 As String = client0.DownloadString("https://www.funimation.com/api/showexperience/" + Player_ID2(0) + "/?pinst_id=fzQc9p9f")
|
Dim str0 As String = client0.DownloadString("https://www.funimation.com/api/showexperience/" + Player_ID2(0) + "/?pinst_id=fzQc9p9f")
|
||||||
'MsgBox("https://www.funimation.com/api/showexperience/" + Player_ID2(0) + "/?pinst_id=fzQc9p9f")
|
|
||||||
'MsgBox(str0)
|
|
||||||
Dim Funimation_m3u8() As String = str0.Split(New String() {My.Resources.Funimation_src_string}, System.StringSplitOptions.RemoveEmptyEntries)
|
Dim Funimation_m3u8() As String = str0.Split(New String() {My.Resources.Funimation_src_string}, System.StringSplitOptions.RemoveEmptyEntries)
|
||||||
Dim Funimation_m3u8_Main As String = Nothing
|
Dim Funimation_m3u8_Main As String = Nothing
|
||||||
For i As Integer = 0 To Funimation_m3u8.Count - 1
|
For i As Integer = 0 To Funimation_m3u8.Count - 1
|
||||||
@ -5123,18 +5125,44 @@ Public Class Main
|
|||||||
Return Nothing
|
Return Nothing
|
||||||
End Function))
|
End Function))
|
||||||
|
|
||||||
|
Dim showexperience As String = Nothing
|
||||||
|
Try
|
||||||
|
'Throw New System.Exception("Test")
|
||||||
|
Using client As New WebClient()
|
||||||
|
client.Encoding = System.Text.Encoding.UTF8
|
||||||
|
client.Headers.Add(My.Resources.ffmpeg_user_agend.Replace(Chr(34), ""))
|
||||||
|
showexperience = client.DownloadString("https://www.funimation.com/api/showexperience/" + ExperienceID + "/?pinst_id=fzQc9p9f")
|
||||||
|
|
||||||
|
|
||||||
If Not WebbrowserCookie = Nothing Then
|
End Using
|
||||||
client0.Headers.Add(HttpRequestHeader.Cookie, WebbrowserCookie)
|
Catch ex As Exception
|
||||||
ElseIf Not SystemWebBrowserCookie = Nothing Then
|
Debug.WriteLine("error- getting funimation showexperience data")
|
||||||
client0.Headers.Add(HttpRequestHeader.Cookie, SystemWebBrowserCookie)
|
Me.Invoke(New Action(Function() As Object
|
||||||
End If
|
'Me.Text = "Status: Resolution not found!"
|
||||||
|
'Me.Invalidate()
|
||||||
|
ErrorBrowserString = "Funimation_showexperience"
|
||||||
|
ErrorBrowserUrl = "https://www.funimation.com/api/showexperience/" + ExperienceID + "/?pinst_id=fzQc9p9f"
|
||||||
|
ErrorBrowser.ShowDialog()
|
||||||
|
Return Nothing
|
||||||
|
End Function))
|
||||||
|
showexperience = ErrorBrowserBackString
|
||||||
|
|
||||||
Dim str0 As String = client0.DownloadString("https://www.funimation.com/api/showexperience/" + ExperienceID + "/?pinst_id=fzQc9p9f")
|
End Try
|
||||||
'MsgBox("https://www.funimation.com/api/showexperience/" + Player_ID2(0) + "/?pinst_id=fzQc9p9f")
|
|
||||||
'MsgBox(str0)
|
|
||||||
Dim Funimation_m3u8() As String = str0.Split(New String() {My.Resources.Funimation_src_string}, System.StringSplitOptions.RemoveEmptyEntries)
|
|
||||||
|
|
||||||
|
'If Not WebbrowserCookie = Nothing Then
|
||||||
|
' client0.Headers.Add(HttpRequestHeader.Cookie, WebbrowserCookie)
|
||||||
|
'ElseIf Not SystemWebBrowserCookie = Nothing Then
|
||||||
|
' client0.Headers.Add(HttpRequestHeader.Cookie, SystemWebBrowserCookie)
|
||||||
|
'End If
|
||||||
|
|
||||||
|
'Dim str0 As String = client0.DownloadString("")
|
||||||
|
''MsgBox("https://www.funimation.com/api/showexperience/" + Player_ID2(0) + "/?pinst_id=fzQc9p9f")
|
||||||
|
''MsgBox(str0)
|
||||||
|
|
||||||
|
Dim Funimation_m3u8() As String = showexperience.Split(New String() {My.Resources.Funimation_src_string}, System.StringSplitOptions.RemoveEmptyEntries)
|
||||||
Dim Funimation_m3u8_Main As String = Nothing
|
Dim Funimation_m3u8_Main As String = Nothing
|
||||||
For i As Integer = 0 To Funimation_m3u8.Count - 1
|
For i As Integer = 0 To Funimation_m3u8.Count - 1
|
||||||
If CBool(InStr(Funimation_m3u8(i), "m3u8?")) Then
|
If CBool(InStr(Funimation_m3u8(i), "m3u8?")) Then
|
||||||
@ -5145,7 +5173,7 @@ Public Class Main
|
|||||||
Next
|
Next
|
||||||
If Funimation_m3u8_Main = Nothing Then
|
If Funimation_m3u8_Main = Nothing Then
|
||||||
|
|
||||||
If MessageBox.Show("No media found in:" + vbNewLine + str0, "No media", MessageBoxButtons.RetryCancel) = DialogResult.Retry Then
|
If MessageBox.Show("No media found in:" + vbNewLine + showexperience, "No media", MessageBoxButtons.RetryCancel) = DialogResult.Retry Then
|
||||||
Me.Invoke(New Action(Function() As Object
|
Me.Invoke(New Action(Function() As Object
|
||||||
Navigate(WebbrowserURL)
|
Navigate(WebbrowserURL)
|
||||||
Try
|
Try
|
||||||
|
120
Crunchyroll Downloader/MaxPath.resx
Normal file
120
Crunchyroll Downloader/MaxPath.resx
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1 +1 @@
|
|||||||
9d0b0f58f3e3e0b7bdc86a742adab0e96e9318e5
|
6f9417ce7e694fa1e780dfd866bafe4f10e58047
|
||||||
|
@ -106,3 +106,4 @@ D:\Projecte\Crunchyroll Downloader - v3.0-final\Crunchyroll-Downloader-v3.0 - Ce
|
|||||||
D:\Projecte\Crunchyroll Downloader - v3.0-final\Crunchyroll-Downloader-v3.0 - CefSharp\Crunchyroll Downloader\obj\x64\Debug\Crunchyroll Downloader.pdb
|
D:\Projecte\Crunchyroll Downloader - v3.0-final\Crunchyroll-Downloader-v3.0 - CefSharp\Crunchyroll Downloader\obj\x64\Debug\Crunchyroll Downloader.pdb
|
||||||
D:\Projecte\Crunchyroll Downloader - v3.0-final\Crunchyroll-Downloader-v3.0 - CefSharp\Crunchyroll Downloader\obj\x64\Debug\Crunchyroll Downloader.vbprojAssemblyReference.cache
|
D:\Projecte\Crunchyroll Downloader - v3.0-final\Crunchyroll-Downloader-v3.0 - CefSharp\Crunchyroll Downloader\obj\x64\Debug\Crunchyroll Downloader.vbprojAssemblyReference.cache
|
||||||
D:\Projecte\Crunchyroll Downloader - v3.0-final\Crunchyroll-Downloader-v3.0 - CefSharp\Crunchyroll Downloader\bin\x64\Debug\libcef.dll
|
D:\Projecte\Crunchyroll Downloader - v3.0-final\Crunchyroll-Downloader-v3.0 - CefSharp\Crunchyroll Downloader\bin\x64\Debug\libcef.dll
|
||||||
|
D:\Projecte\Crunchyroll Downloader - v3.0-final\Crunchyroll-Downloader-v3.0 - CefSharp\Crunchyroll Downloader\obj\x64\Debug\Crunchyroll_Downloader.ErrorBrowser.resources
|
||||||
|
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user