mirror of
https://github.com/AAndyProgram/SCrawler.git
synced 2026-03-14 15:52:18 +00:00
2022.9.10.0
Fixed: missed posts are not saved Fixed memory leaking because of the video
This commit is contained in:
@@ -1,3 +1,10 @@
|
|||||||
|
# 2022.9.10.0
|
||||||
|
|
||||||
|
*2022-09-10*
|
||||||
|
|
||||||
|
- Fixed
|
||||||
|
- The memory is still leaking. This time because of the video. *Using WMP was not the best choice.*
|
||||||
|
|
||||||
# 2022.9.8.1
|
# 2022.9.8.1
|
||||||
|
|
||||||
*2022-09-08*
|
*2022-09-08*
|
||||||
|
|||||||
@@ -32,6 +32,6 @@ Imports System.Runtime.InteropServices
|
|||||||
' by using the '*' as shown below:
|
' by using the '*' as shown below:
|
||||||
' <Assembly: AssemblyVersion("1.0.*")>
|
' <Assembly: AssemblyVersion("1.0.*")>
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("2022.9.8.0")>
|
<Assembly: AssemblyVersion("2022.9.10.0")>
|
||||||
<Assembly: AssemblyFileVersion("2022.9.8.0")>
|
<Assembly: AssemblyFileVersion("2022.9.10.0")>
|
||||||
<Assembly: NeutralResourcesLanguage("en")>
|
<Assembly: NeutralResourcesLanguage("en")>
|
||||||
|
|||||||
@@ -152,7 +152,8 @@ Public Class UserData : Implements IPluginContentProvider
|
|||||||
If Responser.Client.StatusCode = Net.HttpStatusCode.ServiceUnavailable Then
|
If Responser.Client.StatusCode = Net.HttpStatusCode.ServiceUnavailable Then
|
||||||
LogProvider.Add("LPSG not available")
|
LogProvider.Add("LPSG not available")
|
||||||
Else
|
Else
|
||||||
m.DownloadState = UStates.Skipped
|
m.DownloadState = UStates.Missing
|
||||||
|
m.Attempts += 1
|
||||||
End If
|
End If
|
||||||
End Try
|
End Try
|
||||||
RaiseEvent ProgressChanged(1)
|
RaiseEvent ProgressChanged(1)
|
||||||
|
|||||||
@@ -32,6 +32,6 @@ Imports System.Runtime.InteropServices
|
|||||||
' by using the '*' as shown below:
|
' by using the '*' as shown below:
|
||||||
' <Assembly: AssemblyVersion("1.0.*")>
|
' <Assembly: AssemblyVersion("1.0.*")>
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("2022.9.8.0")>
|
<Assembly: AssemblyVersion("2022.9.10.0")>
|
||||||
<Assembly: AssemblyFileVersion("2022.9.8.0")>
|
<Assembly: AssemblyFileVersion("2022.9.10.0")>
|
||||||
<Assembly: NeutralResourcesLanguage("en")>
|
<Assembly: NeutralResourcesLanguage("en")>
|
||||||
|
|||||||
@@ -208,7 +208,8 @@ Public Class UserData : Implements IPluginContentProvider
|
|||||||
m.File = f
|
m.File = f
|
||||||
m.DownloadState = UStates.Downloaded
|
m.DownloadState = UStates.Downloaded
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
m.DownloadState = UStates.Skipped
|
m.DownloadState = UStates.Missing
|
||||||
|
m.Attempts += 1
|
||||||
End Try
|
End Try
|
||||||
TempMediaList(i) = m
|
TempMediaList(i) = m
|
||||||
RaiseEvent ProgressChanged(1)
|
RaiseEvent ProgressChanged(1)
|
||||||
|
|||||||
@@ -32,6 +32,6 @@ Imports System.Runtime.InteropServices
|
|||||||
' by using the '*' as shown below:
|
' by using the '*' as shown below:
|
||||||
' <Assembly: AssemblyVersion("1.0.*")>
|
' <Assembly: AssemblyVersion("1.0.*")>
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("2022.9.8.0")>
|
<Assembly: AssemblyVersion("2022.9.10.0")>
|
||||||
<Assembly: AssemblyFileVersion("2022.9.8.0")>
|
<Assembly: AssemblyFileVersion("2022.9.10.0")>
|
||||||
<Assembly: NeutralResourcesLanguage("en")>
|
<Assembly: NeutralResourcesLanguage("en")>
|
||||||
|
|||||||
@@ -26,5 +26,6 @@ Namespace Plugin
|
|||||||
Public PostID As String
|
Public PostID As String
|
||||||
Public PostDate As Date?
|
Public PostDate As Date?
|
||||||
Public SpecialFolder As String
|
Public SpecialFolder As String
|
||||||
|
Public Attempts As Integer
|
||||||
End Structure
|
End Structure
|
||||||
End Namespace
|
End Namespace
|
||||||
@@ -52,6 +52,7 @@ Namespace API.Base
|
|||||||
Post = New UserPost With {.ID = m.PostID, .[Date] = m.PostDate}
|
Post = New UserPost With {.ID = m.PostID, .[Date] = m.PostDate}
|
||||||
State = m.DownloadState
|
State = m.DownloadState
|
||||||
SpecialFolder = m.SpecialFolder
|
SpecialFolder = m.SpecialFolder
|
||||||
|
Attempts = m.Attempts
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
Public Shared Widening Operator CType(ByVal _URL As String) As UserMedia
|
Public Shared Widening Operator CType(ByVal _URL As String) As UserMedia
|
||||||
@@ -72,7 +73,8 @@ Namespace API.Base
|
|||||||
.URL = URL,
|
.URL = URL,
|
||||||
.SpecialFolder = SpecialFolder,
|
.SpecialFolder = SpecialFolder,
|
||||||
.PostID = Post.ID,
|
.PostID = Post.ID,
|
||||||
.PostDate = Post.Date
|
.PostDate = Post.Date,
|
||||||
|
.Attempts = Attempts
|
||||||
}
|
}
|
||||||
End Function
|
End Function
|
||||||
Friend Overloads Function Equals(ByVal Other As UserMedia) As Boolean Implements IEquatable(Of UserMedia).Equals
|
Friend Overloads Function Equals(ByVal Other As UserMedia) As Boolean Implements IEquatable(Of UserMedia).Equals
|
||||||
|
|||||||
@@ -846,7 +846,7 @@ BlockNullPicture:
|
|||||||
DownloadContent(Token)
|
DownloadContent(Token)
|
||||||
ThrowIfDisposed()
|
ThrowIfDisposed()
|
||||||
LatestData.ListAddList(_ContentNew.Where(_downContent), LNC)
|
LatestData.ListAddList(_ContentNew.Where(_downContent), LNC)
|
||||||
_ContentList.ListAddList(_ContentNew.Where(_downContent), LNC)
|
_ContentList.ListAddList(_ContentNew.Where(Function(c) _downContent(c) Or MissingFinder(c)), LNC)
|
||||||
If DownloadedTotal(False) > 0 Or EnvirChanged.Invoke Or _ContentList.Exists(MissingFinder) Then
|
If DownloadedTotal(False) > 0 Or EnvirChanged.Invoke Or _ContentList.Exists(MissingFinder) Then
|
||||||
If __SaveData Then
|
If __SaveData Then
|
||||||
LastUpdated = Now
|
LastUpdated = Now
|
||||||
|
|||||||
@@ -765,7 +765,11 @@ Namespace API.Reddit
|
|||||||
dCount += 1
|
dCount += 1
|
||||||
End If
|
End If
|
||||||
Catch wex As Exception
|
Catch wex As Exception
|
||||||
If Not IsChannel And Not IsImgurStuff And MissingErrorsAdd Then ErrorDownloading(f, v.URL)
|
If Not IsChannel Then
|
||||||
|
If Not IsImgurStuff And MissingErrorsAdd Then ErrorDownloading(f, v.URL)
|
||||||
|
v.Attempts += 1
|
||||||
|
v.State = UStates.Missing
|
||||||
|
End If
|
||||||
End Try
|
End Try
|
||||||
If ImgurUrls.Count > 0 Then ImgurUrls.RemoveAt(0)
|
If ImgurUrls.Count > 0 Then ImgurUrls.RemoveAt(0)
|
||||||
Loop While ImgurUrls.Count > 0
|
Loop While ImgurUrls.Count > 0
|
||||||
|
|||||||
@@ -16,9 +16,9 @@ Imports SCrawler.API
|
|||||||
Imports SCrawler.API.Base
|
Imports SCrawler.API.Base
|
||||||
Namespace DownloadObjects
|
Namespace DownloadObjects
|
||||||
Friend Class AutoDownloader : Inherits GroupParameters : Implements IEContainerProvider
|
Friend Class AutoDownloader : Inherits GroupParameters : Implements IEContainerProvider
|
||||||
Friend Shared ReadOnly Property CachePath As SFile
|
Private Shared ReadOnly Property CachePath As SFile
|
||||||
Get
|
Get
|
||||||
Return "_Cache\"
|
Return Settings.CachePath
|
||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
Friend Enum Modes As Integer
|
Friend Enum Modes As Integer
|
||||||
|
|||||||
16
SCrawler/Download/FeedMedia.Designer.vb
generated
16
SCrawler/Download/FeedMedia.Designer.vb
generated
@@ -27,7 +27,6 @@ Namespace DownloadObjects
|
|||||||
Dim CONTEXT_SEP_2 As System.Windows.Forms.ToolStripSeparator
|
Dim CONTEXT_SEP_2 As System.Windows.Forms.ToolStripSeparator
|
||||||
Dim CONTEXT_SEP_3 As System.Windows.Forms.ToolStripSeparator
|
Dim CONTEXT_SEP_3 As System.Windows.Forms.ToolStripSeparator
|
||||||
Dim TP_LBL As System.Windows.Forms.TableLayoutPanel
|
Dim TP_LBL As System.Windows.Forms.TableLayoutPanel
|
||||||
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(FeedMedia))
|
|
||||||
Me.CH_CHECKED = New System.Windows.Forms.CheckBox()
|
Me.CH_CHECKED = New System.Windows.Forms.CheckBox()
|
||||||
Me.LBL_INFO = New System.Windows.Forms.Label()
|
Me.LBL_INFO = New System.Windows.Forms.Label()
|
||||||
Me.CONTEXT_DATA = New System.Windows.Forms.ContextMenuStrip(Me.components)
|
Me.CONTEXT_DATA = New System.Windows.Forms.ContextMenuStrip(Me.components)
|
||||||
@@ -39,7 +38,6 @@ Namespace DownloadObjects
|
|||||||
Me.BTT_CONTEXT_INFO = New System.Windows.Forms.ToolStripMenuItem()
|
Me.BTT_CONTEXT_INFO = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
Me.BTT_CONTEXT_DELETE = New System.Windows.Forms.ToolStripMenuItem()
|
Me.BTT_CONTEXT_DELETE = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
Me.TP_MAIN = New System.Windows.Forms.TableLayoutPanel()
|
Me.TP_MAIN = New System.Windows.Forms.TableLayoutPanel()
|
||||||
Me.MyVideo = New AxWMPLib.AxWindowsMediaPlayer()
|
|
||||||
CONTEXT_SEP_1 = New System.Windows.Forms.ToolStripSeparator()
|
CONTEXT_SEP_1 = New System.Windows.Forms.ToolStripSeparator()
|
||||||
CONTEXT_SEP_2 = New System.Windows.Forms.ToolStripSeparator()
|
CONTEXT_SEP_2 = New System.Windows.Forms.ToolStripSeparator()
|
||||||
CONTEXT_SEP_3 = New System.Windows.Forms.ToolStripSeparator()
|
CONTEXT_SEP_3 = New System.Windows.Forms.ToolStripSeparator()
|
||||||
@@ -47,7 +45,6 @@ Namespace DownloadObjects
|
|||||||
TP_LBL.SuspendLayout()
|
TP_LBL.SuspendLayout()
|
||||||
Me.CONTEXT_DATA.SuspendLayout()
|
Me.CONTEXT_DATA.SuspendLayout()
|
||||||
Me.TP_MAIN.SuspendLayout()
|
Me.TP_MAIN.SuspendLayout()
|
||||||
CType(Me.MyVideo, System.ComponentModel.ISupportInitialize).BeginInit()
|
|
||||||
Me.SuspendLayout()
|
Me.SuspendLayout()
|
||||||
'
|
'
|
||||||
'CONTEXT_SEP_1
|
'CONTEXT_SEP_1
|
||||||
@@ -164,7 +161,6 @@ Namespace DownloadObjects
|
|||||||
Me.TP_MAIN.ColumnCount = 1
|
Me.TP_MAIN.ColumnCount = 1
|
||||||
Me.TP_MAIN.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
Me.TP_MAIN.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
||||||
Me.TP_MAIN.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
|
Me.TP_MAIN.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
|
||||||
Me.TP_MAIN.Controls.Add(Me.MyVideo, 0, 1)
|
|
||||||
Me.TP_MAIN.Controls.Add(TP_LBL, 0, 0)
|
Me.TP_MAIN.Controls.Add(TP_LBL, 0, 0)
|
||||||
Me.TP_MAIN.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.TP_MAIN.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.TP_MAIN.Location = New System.Drawing.Point(0, 0)
|
Me.TP_MAIN.Location = New System.Drawing.Point(0, 0)
|
||||||
@@ -176,16 +172,6 @@ Namespace DownloadObjects
|
|||||||
Me.TP_MAIN.Size = New System.Drawing.Size(146, 146)
|
Me.TP_MAIN.Size = New System.Drawing.Size(146, 146)
|
||||||
Me.TP_MAIN.TabIndex = 0
|
Me.TP_MAIN.TabIndex = 0
|
||||||
'
|
'
|
||||||
'MyVideo
|
|
||||||
'
|
|
||||||
Me.MyVideo.Dock = System.Windows.Forms.DockStyle.Fill
|
|
||||||
Me.MyVideo.Enabled = True
|
|
||||||
Me.MyVideo.Location = New System.Drawing.Point(3, 28)
|
|
||||||
Me.MyVideo.Name = "MyVideo"
|
|
||||||
Me.MyVideo.OcxState = CType(resources.GetObject("MyVideo.OcxState"), System.Windows.Forms.AxHost.State)
|
|
||||||
Me.MyVideo.Size = New System.Drawing.Size(140, 115)
|
|
||||||
Me.MyVideo.TabIndex = 1
|
|
||||||
'
|
|
||||||
'FeedMedia
|
'FeedMedia
|
||||||
'
|
'
|
||||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||||
@@ -201,7 +187,6 @@ Namespace DownloadObjects
|
|||||||
TP_LBL.PerformLayout()
|
TP_LBL.PerformLayout()
|
||||||
Me.CONTEXT_DATA.ResumeLayout(False)
|
Me.CONTEXT_DATA.ResumeLayout(False)
|
||||||
Me.TP_MAIN.ResumeLayout(False)
|
Me.TP_MAIN.ResumeLayout(False)
|
||||||
CType(Me.MyVideo, System.ComponentModel.ISupportInitialize).EndInit()
|
|
||||||
Me.ResumeLayout(False)
|
Me.ResumeLayout(False)
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
@@ -213,7 +198,6 @@ Namespace DownloadObjects
|
|||||||
Private WithEvents BTT_CONTEXT_OPEN_USER_POST As ToolStripMenuItem
|
Private WithEvents BTT_CONTEXT_OPEN_USER_POST As ToolStripMenuItem
|
||||||
Private WithEvents BTT_CONTEXT_FIND_USER As ToolStripMenuItem
|
Private WithEvents BTT_CONTEXT_FIND_USER As ToolStripMenuItem
|
||||||
Private WithEvents BTT_CONTEXT_DELETE As ToolStripMenuItem
|
Private WithEvents BTT_CONTEXT_DELETE As ToolStripMenuItem
|
||||||
Private WithEvents MyVideo As AxWMPLib.AxWindowsMediaPlayer
|
|
||||||
Private WithEvents BTT_CONTEXT_OPEN_USER As ToolStripMenuItem
|
Private WithEvents BTT_CONTEXT_OPEN_USER As ToolStripMenuItem
|
||||||
Private WithEvents CH_CHECKED As CheckBox
|
Private WithEvents CH_CHECKED As CheckBox
|
||||||
Private WithEvents LBL_INFO As Label
|
Private WithEvents LBL_INFO As Label
|
||||||
|
|||||||
@@ -132,15 +132,4 @@
|
|||||||
<metadata name="CONTEXT_DATA.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="CONTEXT_DATA.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>17, 17</value>
|
<value>17, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<data name="MyVideo.OcxState" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>
|
|
||||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
|
||||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACFTeXN0
|
|
||||||
ZW0uV2luZG93cy5Gb3Jtcy5BeEhvc3QrU3RhdGUBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAtwAAAAIB
|
|
||||||
AAAAAQAAAAAAAAAAAAAAAKIAAAAAAwAACAAAAAAABQAAAAAAAADwPwMAAAAAAAUAAAAAAAAAAAAIAAIA
|
|
||||||
AAAAAAMAAQAAAAsA//8DAAAAAAALAP//CAACAAAAAAADADIAAAALAAAACAAKAAAAZgB1AGwAbAAAAAsA
|
|
||||||
AAALAAAACwD//wsA//8LAAAACAACAAAAAAAIAAIAAAAAAAgAAgAAAAAACAACAAAAAAALAAAA4g4AAE0M
|
|
||||||
AAAL
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
</root>
|
||||||
@@ -11,7 +11,6 @@ Imports System.ComponentModel
|
|||||||
Imports PersonalUtilities.Forms
|
Imports PersonalUtilities.Forms
|
||||||
Imports PersonalUtilities.Tools
|
Imports PersonalUtilities.Tools
|
||||||
Imports SCrawler.API.Base
|
Imports SCrawler.API.Base
|
||||||
Imports AxWMPLib
|
|
||||||
Imports UserMediaD = SCrawler.DownloadObjects.TDownloader.UserMediaD
|
Imports UserMediaD = SCrawler.DownloadObjects.TDownloader.UserMediaD
|
||||||
Namespace DownloadObjects
|
Namespace DownloadObjects
|
||||||
<ToolboxItem(False), DesignTimeVisible(False)>
|
<ToolboxItem(False), DesignTimeVisible(False)>
|
||||||
@@ -20,6 +19,7 @@ Namespace DownloadObjects
|
|||||||
Private Const VideoHeight As Integer = 450
|
Private Const VideoHeight As Integer = 450
|
||||||
Private WithEvents MyPicture As PictureBox
|
Private WithEvents MyPicture As PictureBox
|
||||||
Private ReadOnly MyImage As ImageRenderer
|
Private ReadOnly MyImage As ImageRenderer
|
||||||
|
Private ReadOnly MyVideo As FeedVideo
|
||||||
Friend ReadOnly Property Exists As Boolean
|
Friend ReadOnly Property Exists As Boolean
|
||||||
Get
|
Get
|
||||||
Return Not MyPicture Is Nothing Or Not MyVideo Is Nothing
|
Return Not MyPicture Is Nothing Or Not MyVideo Is Nothing
|
||||||
@@ -106,16 +106,12 @@ Namespace DownloadObjects
|
|||||||
.Padding = New Padding(0),
|
.Padding = New Padding(0),
|
||||||
.ContextMenuStrip = CONTEXT_DATA
|
.ContextMenuStrip = CONTEXT_DATA
|
||||||
}
|
}
|
||||||
TP_MAIN.Controls.Remove(MyVideo)
|
|
||||||
MyVideo.Dispose()
|
|
||||||
MyVideo = Nothing
|
|
||||||
TP_MAIN.Controls.Add(MyPicture, 0, 1)
|
TP_MAIN.Controls.Add(MyPicture, 0, 1)
|
||||||
BTT_CONTEXT_OPEN_MEDIA.Text &= " picture"
|
BTT_CONTEXT_OPEN_MEDIA.Text &= " picture"
|
||||||
BTT_CONTEXT_DELETE.Text &= " picture"
|
BTT_CONTEXT_DELETE.Text &= " picture"
|
||||||
Case UserMedia.Types.Video
|
Case UserMedia.Types.Video
|
||||||
MyVideo.Tag = File
|
MyVideo = New FeedVideo(File) With {.Tag = File, .Dock = DockStyle.Fill, .ContextMenuStrip = CONTEXT_DATA}
|
||||||
TP_MAIN.Controls.Add(MyVideo, 0, 1)
|
TP_MAIN.Controls.Add(MyVideo, 0, 1)
|
||||||
MyVideo.URL = File.ToString
|
|
||||||
BTT_CONTEXT_OPEN_MEDIA.Text &= " video"
|
BTT_CONTEXT_OPEN_MEDIA.Text &= " video"
|
||||||
BTT_CONTEXT_DELETE.Text &= " video"
|
BTT_CONTEXT_DELETE.Text &= " video"
|
||||||
h = VideoHeight
|
h = VideoHeight
|
||||||
@@ -158,6 +154,7 @@ Namespace DownloadObjects
|
|||||||
Private Sub FeedImage_Disposed(sender As Object, e As EventArgs) Handles Me.Disposed
|
Private Sub FeedImage_Disposed(sender As Object, e As EventArgs) Handles Me.Disposed
|
||||||
If Not MyImage Is Nothing Then MyImage.Dispose()
|
If Not MyImage Is Nothing Then MyImage.Dispose()
|
||||||
If Not MyPicture Is Nothing Then MyPicture.Dispose()
|
If Not MyPicture Is Nothing Then MyPicture.Dispose()
|
||||||
|
If Not MyVideo Is Nothing Then MyVideo.Dispose()
|
||||||
End Sub
|
End Sub
|
||||||
#End Region
|
#End Region
|
||||||
#Region "LBL"
|
#Region "LBL"
|
||||||
@@ -172,21 +169,6 @@ Namespace DownloadObjects
|
|||||||
Private Sub MyPicture_DoubleClick(sender As Object, e As EventArgs) Handles MyPicture.DoubleClick
|
Private Sub MyPicture_DoubleClick(sender As Object, e As EventArgs) Handles MyPicture.DoubleClick
|
||||||
Try : Process.Start(File) : Catch : End Try
|
Try : Process.Start(File) : Catch : End Try
|
||||||
End Sub
|
End Sub
|
||||||
Private VideoPaused As Boolean = False
|
|
||||||
Private Sub MyVideo_PlayStateChange(sender As Object, e As _WMPOCXEvents_PlayStateChangeEvent) Handles MyVideo.PlayStateChange
|
|
||||||
Try
|
|
||||||
If Not VideoPaused Then
|
|
||||||
With MyVideo
|
|
||||||
If .playState = WMPLib.WMPPlayState.wmppsPlaying Then
|
|
||||||
.Ctlcontrols.currentPosition = 1
|
|
||||||
.Ctlcontrols.pause()
|
|
||||||
VideoPaused = True
|
|
||||||
End If
|
|
||||||
End With
|
|
||||||
End If
|
|
||||||
Catch
|
|
||||||
End Try
|
|
||||||
End Sub
|
|
||||||
#End Region
|
#End Region
|
||||||
#Region "Context"
|
#Region "Context"
|
||||||
Private Sub BTT_CONTEXT_OPEN_MEDIA_Click(sender As Object, e As EventArgs) Handles BTT_CONTEXT_OPEN_MEDIA.Click
|
Private Sub BTT_CONTEXT_OPEN_MEDIA_Click(sender As Object, e As EventArgs) Handles BTT_CONTEXT_OPEN_MEDIA.Click
|
||||||
|
|||||||
168
SCrawler/Download/FeedVideo.Designer.vb
generated
Normal file
168
SCrawler/Download/FeedVideo.Designer.vb
generated
Normal file
@@ -0,0 +1,168 @@
|
|||||||
|
' Copyright (C) 2022 Andy
|
||||||
|
' This program is free software: you can redistribute it and/or modify
|
||||||
|
' it under the terms of the GNU General Public License as published by
|
||||||
|
' the Free Software Foundation, either version 3 of the License, or
|
||||||
|
' (at your option) any later version.
|
||||||
|
'
|
||||||
|
' This program is distributed in the hope that it will be useful,
|
||||||
|
' but WITHOUT ANY WARRANTY
|
||||||
|
Namespace DownloadObjects
|
||||||
|
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
|
||||||
|
Partial Public Class FeedVideo : Inherits System.Windows.Forms.UserControl
|
||||||
|
<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
|
||||||
|
Private components As System.ComponentModel.IContainer
|
||||||
|
<System.Diagnostics.DebuggerStepThrough()>
|
||||||
|
Private Sub InitializeComponent()
|
||||||
|
Dim TP_MAIN As System.Windows.Forms.TableLayoutPanel
|
||||||
|
Dim TP_BUTTONS As System.Windows.Forms.TableLayoutPanel
|
||||||
|
Me.MyVideo = New LibVLCSharp.WinForms.VideoView()
|
||||||
|
Me.TR_POSITION = New System.Windows.Forms.TrackBar()
|
||||||
|
Me.BTT_PLAY = New System.Windows.Forms.Button()
|
||||||
|
Me.BTT_PAUSE = New System.Windows.Forms.Button()
|
||||||
|
Me.BTT_STOP = New System.Windows.Forms.Button()
|
||||||
|
Me.TR_VOLUME = New System.Windows.Forms.TrackBar()
|
||||||
|
TP_MAIN = New System.Windows.Forms.TableLayoutPanel()
|
||||||
|
TP_BUTTONS = New System.Windows.Forms.TableLayoutPanel()
|
||||||
|
TP_MAIN.SuspendLayout()
|
||||||
|
CType(Me.MyVideo, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
CType(Me.TR_POSITION, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
TP_BUTTONS.SuspendLayout()
|
||||||
|
CType(Me.TR_VOLUME, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
Me.SuspendLayout()
|
||||||
|
'
|
||||||
|
'TP_MAIN
|
||||||
|
'
|
||||||
|
TP_MAIN.ColumnCount = 1
|
||||||
|
TP_MAIN.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
||||||
|
TP_MAIN.Controls.Add(Me.MyVideo, 0, 0)
|
||||||
|
TP_MAIN.Controls.Add(Me.TR_POSITION, 0, 1)
|
||||||
|
TP_MAIN.Controls.Add(TP_BUTTONS, 0, 2)
|
||||||
|
TP_MAIN.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
TP_MAIN.Location = New System.Drawing.Point(0, 0)
|
||||||
|
TP_MAIN.Margin = New System.Windows.Forms.Padding(0)
|
||||||
|
TP_MAIN.Name = "TP_MAIN"
|
||||||
|
TP_MAIN.RowCount = 3
|
||||||
|
TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
||||||
|
TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
|
TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
|
||||||
|
TP_MAIN.Size = New System.Drawing.Size(180, 160)
|
||||||
|
TP_MAIN.TabIndex = 0
|
||||||
|
'
|
||||||
|
'MyVideo
|
||||||
|
'
|
||||||
|
Me.MyVideo.BackColor = System.Drawing.Color.Black
|
||||||
|
Me.MyVideo.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.MyVideo.Location = New System.Drawing.Point(1, 1)
|
||||||
|
Me.MyVideo.Margin = New System.Windows.Forms.Padding(1)
|
||||||
|
Me.MyVideo.MediaPlayer = Nothing
|
||||||
|
Me.MyVideo.Name = "MyVideo"
|
||||||
|
Me.MyVideo.Size = New System.Drawing.Size(178, 105)
|
||||||
|
Me.MyVideo.TabIndex = 0
|
||||||
|
'
|
||||||
|
'TR_POSITION
|
||||||
|
'
|
||||||
|
Me.TR_POSITION.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.TR_POSITION.Location = New System.Drawing.Point(3, 110)
|
||||||
|
Me.TR_POSITION.Name = "TR_POSITION"
|
||||||
|
Me.TR_POSITION.Size = New System.Drawing.Size(174, 19)
|
||||||
|
Me.TR_POSITION.TabIndex = 1
|
||||||
|
'
|
||||||
|
'TP_BUTTONS
|
||||||
|
'
|
||||||
|
TP_BUTTONS.ColumnCount = 5
|
||||||
|
TP_BUTTONS.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
|
TP_BUTTONS.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
|
TP_BUTTONS.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
|
||||||
|
TP_BUTTONS.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
||||||
|
TP_BUTTONS.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 100.0!))
|
||||||
|
TP_BUTTONS.Controls.Add(Me.BTT_PLAY, 0, 0)
|
||||||
|
TP_BUTTONS.Controls.Add(Me.BTT_PAUSE, 1, 0)
|
||||||
|
TP_BUTTONS.Controls.Add(Me.BTT_STOP, 2, 0)
|
||||||
|
TP_BUTTONS.Controls.Add(Me.TR_VOLUME, 4, 0)
|
||||||
|
TP_BUTTONS.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
TP_BUTTONS.Location = New System.Drawing.Point(1, 133)
|
||||||
|
TP_BUTTONS.Margin = New System.Windows.Forms.Padding(1)
|
||||||
|
TP_BUTTONS.Name = "TP_BUTTONS"
|
||||||
|
TP_BUTTONS.RowCount = 1
|
||||||
|
TP_BUTTONS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
|
||||||
|
TP_BUTTONS.Size = New System.Drawing.Size(178, 26)
|
||||||
|
TP_BUTTONS.TabIndex = 2
|
||||||
|
'
|
||||||
|
'BTT_PLAY
|
||||||
|
'
|
||||||
|
Me.BTT_PLAY.BackgroundImage = Global.SCrawler.My.Resources.Resources.StartPic_01_Green_16
|
||||||
|
Me.BTT_PLAY.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom
|
||||||
|
Me.BTT_PLAY.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.BTT_PLAY.Location = New System.Drawing.Point(1, 1)
|
||||||
|
Me.BTT_PLAY.Margin = New System.Windows.Forms.Padding(1)
|
||||||
|
Me.BTT_PLAY.Name = "BTT_PLAY"
|
||||||
|
Me.BTT_PLAY.Size = New System.Drawing.Size(23, 24)
|
||||||
|
Me.BTT_PLAY.TabIndex = 0
|
||||||
|
Me.BTT_PLAY.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'BTT_PAUSE
|
||||||
|
'
|
||||||
|
Me.BTT_PAUSE.BackgroundImage = Global.SCrawler.My.Resources.Resources.Pause_Blue_16
|
||||||
|
Me.BTT_PAUSE.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom
|
||||||
|
Me.BTT_PAUSE.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.BTT_PAUSE.Location = New System.Drawing.Point(26, 1)
|
||||||
|
Me.BTT_PAUSE.Margin = New System.Windows.Forms.Padding(1)
|
||||||
|
Me.BTT_PAUSE.Name = "BTT_PAUSE"
|
||||||
|
Me.BTT_PAUSE.Size = New System.Drawing.Size(23, 24)
|
||||||
|
Me.BTT_PAUSE.TabIndex = 1
|
||||||
|
Me.BTT_PAUSE.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'BTT_STOP
|
||||||
|
'
|
||||||
|
Me.BTT_STOP.BackgroundImage = Global.SCrawler.My.Resources.Resources.Delete
|
||||||
|
Me.BTT_STOP.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom
|
||||||
|
Me.BTT_STOP.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.BTT_STOP.Location = New System.Drawing.Point(51, 1)
|
||||||
|
Me.BTT_STOP.Margin = New System.Windows.Forms.Padding(1)
|
||||||
|
Me.BTT_STOP.Name = "BTT_STOP"
|
||||||
|
Me.BTT_STOP.Size = New System.Drawing.Size(23, 24)
|
||||||
|
Me.BTT_STOP.TabIndex = 2
|
||||||
|
Me.BTT_STOP.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'TR_VOLUME
|
||||||
|
'
|
||||||
|
Me.TR_VOLUME.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.TR_VOLUME.Location = New System.Drawing.Point(81, 3)
|
||||||
|
Me.TR_VOLUME.Name = "TR_VOLUME"
|
||||||
|
Me.TR_VOLUME.Size = New System.Drawing.Size(94, 20)
|
||||||
|
Me.TR_VOLUME.TabIndex = 3
|
||||||
|
'
|
||||||
|
'FeedVideo
|
||||||
|
'
|
||||||
|
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||||
|
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||||
|
Me.Controls.Add(TP_MAIN)
|
||||||
|
Me.Name = "FeedVideo"
|
||||||
|
Me.Size = New System.Drawing.Size(180, 160)
|
||||||
|
TP_MAIN.ResumeLayout(False)
|
||||||
|
TP_MAIN.PerformLayout()
|
||||||
|
CType(Me.MyVideo, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
CType(Me.TR_POSITION, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
TP_BUTTONS.ResumeLayout(False)
|
||||||
|
TP_BUTTONS.PerformLayout()
|
||||||
|
CType(Me.TR_VOLUME, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
Me.ResumeLayout(False)
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
Private WithEvents MyVideo As LibVLCSharp.WinForms.VideoView
|
||||||
|
Private WithEvents TR_POSITION As TrackBar
|
||||||
|
Private WithEvents BTT_PLAY As Button
|
||||||
|
Private WithEvents BTT_PAUSE As Button
|
||||||
|
Private WithEvents BTT_STOP As Button
|
||||||
|
Private WithEvents TR_VOLUME As TrackBar
|
||||||
|
End Class
|
||||||
|
End Namespace
|
||||||
126
SCrawler/Download/FeedVideo.resx
Normal file
126
SCrawler/Download/FeedVideo.resx
Normal file
@@ -0,0 +1,126 @@
|
|||||||
|
<?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>
|
||||||
|
<metadata name="TP_MAIN.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>False</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="TP_BUTTONS.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>False</value>
|
||||||
|
</metadata>
|
||||||
|
</root>
|
||||||
73
SCrawler/Download/FeedVideo.vb
Normal file
73
SCrawler/Download/FeedVideo.vb
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
' Copyright (C) 2022 Andy
|
||||||
|
' This program is free software: you can redistribute it and/or modify
|
||||||
|
' it under the terms of the GNU General Public License as published by
|
||||||
|
' the Free Software Foundation, either version 3 of the License, or
|
||||||
|
' (at your option) any later version.
|
||||||
|
'
|
||||||
|
' This program is distributed in the hope that it will be useful,
|
||||||
|
' but WITHOUT ANY WARRANTY
|
||||||
|
Imports LibVLCSharp
|
||||||
|
Imports System.ComponentModel
|
||||||
|
Imports PersonalUtilities.Tools
|
||||||
|
Imports PersonalUtilities.Tools.WEB
|
||||||
|
Namespace DownloadObjects
|
||||||
|
<ToolboxItem(False), DesignTimeVisible(False)>
|
||||||
|
Public Class FeedVideo
|
||||||
|
Private WithEvents MediaPlayer As [Shared].MediaPlayer
|
||||||
|
Private ReadOnly TimeChange As Action = Sub()
|
||||||
|
Dim v# = DivideWithZeroChecking(MediaPlayer.Time, MediaPlayer.Length) * 10
|
||||||
|
If v > 10 Then TR_POSITION.Value = 10 Else TR_POSITION.Value = v
|
||||||
|
End Sub
|
||||||
|
Private ReadOnly MyImage As ImageRenderer
|
||||||
|
Public Sub New()
|
||||||
|
InitializeComponent()
|
||||||
|
End Sub
|
||||||
|
Friend Sub New(ByVal File As SFile)
|
||||||
|
InitializeComponent()
|
||||||
|
Dim debugLogs As Boolean = False
|
||||||
|
#If DEBUG Then
|
||||||
|
debugLogs = True
|
||||||
|
#End If
|
||||||
|
MediaPlayer = New [Shared].MediaPlayer(New [Shared].Media(New [Shared].LibVLC(enableDebugLogs:=debugLogs), New Uri(File.ToString)))
|
||||||
|
MyVideo.MediaPlayer = MediaPlayer
|
||||||
|
TR_VOLUME.Value = MediaPlayer.Volume / 10
|
||||||
|
If Settings.UseM3U8 Then
|
||||||
|
Dim f As SFile = $"{Settings.CachePath.PathWithSeparator}FeedSnapshots\{File.GetHashCode}.png"
|
||||||
|
If Not f.Exists Then f = FFMPEG.TakeSnapshot(File, f, Settings.FfmpegFile, TimeSpan.FromSeconds(1))
|
||||||
|
If f.Exists Then
|
||||||
|
MyImage = New ImageRenderer(f, EDP.None)
|
||||||
|
If Not MyImage.HasError Then
|
||||||
|
MyVideo.BackgroundImage = MyImage
|
||||||
|
MyVideo.BackgroundImageLayout = ImageLayout.Zoom
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
Private Sub FeedVideo_Disposed(sender As Object, e As EventArgs) Handles Me.Disposed
|
||||||
|
If Not MediaPlayer Is Nothing Then MediaPlayer.Dispose()
|
||||||
|
If Not MyImage Is Nothing Then MyImage.Dispose()
|
||||||
|
End Sub
|
||||||
|
Private Sub BTT_PLAY_Click(sender As Object, e As EventArgs) Handles BTT_PLAY.Click
|
||||||
|
Try : MediaPlayer.Play() : Catch : End Try
|
||||||
|
End Sub
|
||||||
|
Private Sub BTT_PAUSE_Click(sender As Object, e As EventArgs) Handles BTT_PAUSE.Click
|
||||||
|
Try : MediaPlayer.Pause() : Catch : End Try
|
||||||
|
End Sub
|
||||||
|
Private Sub BTT_STOP_Click(sender As Object, e As EventArgs) Handles BTT_STOP.Click
|
||||||
|
Try : MediaPlayer.Stop() : Catch : End Try
|
||||||
|
End Sub
|
||||||
|
Private Sub MediaPlayer_TimeChanged(sender As Object, e As [Shared].MediaPlayerTimeChangedEventArgs) Handles MediaPlayer.TimeChanged
|
||||||
|
If TR_POSITION.InvokeRequired Then TR_POSITION.Invoke(TimeChange) Else TimeChange.Invoke
|
||||||
|
End Sub
|
||||||
|
Private Sub TR_POSITION_MouseUp(sender As Object, e As MouseEventArgs) Handles TR_POSITION.MouseUp
|
||||||
|
Try : MediaPlayer.Time = (MediaPlayer.Length / 100) * (TR_POSITION.Value * 10) : Catch : End Try
|
||||||
|
End Sub
|
||||||
|
Private Sub TR_VOLUME_MouseUp(sender As Object, e As MouseEventArgs) Handles TR_VOLUME.MouseUp
|
||||||
|
Try : MediaPlayer.Volume = TR_VOLUME.Value * 10 : Catch : End Try
|
||||||
|
End Sub
|
||||||
|
Private Sub MediaPlayer_Stopped(sender As Object, e As EventArgs) Handles MediaPlayer.Stopped
|
||||||
|
Dim a As Action = Sub() TR_POSITION.Value = TR_POSITION.Maximum
|
||||||
|
If TR_POSITION.InvokeRequired Then TR_POSITION.Invoke(a) Else a.Invoke
|
||||||
|
End Sub
|
||||||
|
End Class
|
||||||
|
End Namespace
|
||||||
@@ -112,24 +112,24 @@ Namespace DownloadObjects
|
|||||||
#End Region
|
#End Region
|
||||||
#Region "Post actions"
|
#Region "Post actions"
|
||||||
Private Sub BTT_DOWN_Click(sender As Object, e As EventArgs) Handles BTT_DOWN.Click
|
Private Sub BTT_DOWN_Click(sender As Object, e As EventArgs) Handles BTT_DOWN.Click
|
||||||
Try
|
'Try
|
||||||
If LIST_DATA.SelectedItems.Count > 0 Then
|
' If LIST_DATA.SelectedItems.Count > 0 Then
|
||||||
Dim users As List(Of IUserData) = LIST_DATA.SelectedItems.ToObjectsList.ListCast(Of ListViewItem)().
|
' Dim users As List(Of IUserData) = LIST_DATA.SelectedItems.ToObjectsList.ListCast(Of ListViewItem)().
|
||||||
Select(Function(d) Settings.GetUser(CStr(d.Group.Tag))).ListWithRemove(Function(d) d Is Nothing)
|
' Select(Function(d) Settings.GetUser(CStr(d.Group.Tag))).ListWithRemove(Function(d) d Is Nothing)
|
||||||
If users.ListExists Then
|
' If users.ListExists Then
|
||||||
If MsgBoxE({"The following users will be added to the download queue:" & vbCr & vbCr &
|
' If MsgBoxE({"The following users will be added to the download queue:" & vbCr & vbCr &
|
||||||
users.Select(Function(u) u.ToString).ListToString(vbNewLine), "Download users"},,,, {"Process", "Cancel"}) = 0 Then
|
' users.Select(Function(u) u.ToString).ListToString(vbNewLine), "Download users"},,,, {"Process", "Cancel"}) = 0 Then
|
||||||
users.ForEach(Sub(u) u.DownloadMissingOnly = True)
|
' users.ForEach(Sub(u) u.DownloadMissingOnly = True)
|
||||||
Downloader.AddRange(users)
|
' Downloader.AddRange(users)
|
||||||
users.Clear()
|
' users.Clear()
|
||||||
End If
|
' End If
|
||||||
End If
|
' End If
|
||||||
Else
|
' Else
|
||||||
MsgBoxE("No selected posts")
|
' MsgBoxE("No selected posts")
|
||||||
End If
|
' End If
|
||||||
Catch ex As Exception
|
'Catch ex As Exception
|
||||||
ErrorsDescriber.Execute(EDP.SendInLog, ex, "[DownloadObjects.MissingPostsForm.Download]")
|
' ErrorsDescriber.Execute(EDP.SendInLog, ex, "[DownloadObjects.MissingPostsForm.Download]")
|
||||||
End Try
|
'End Try
|
||||||
End Sub
|
End Sub
|
||||||
Private Sub BTT_OPEN_POST_Click(sender As Object, e As EventArgs) Handles BTT_OPEN_POST.Click
|
Private Sub BTT_OPEN_POST_Click(sender As Object, e As EventArgs) Handles BTT_OPEN_POST.Click
|
||||||
Try
|
Try
|
||||||
|
|||||||
@@ -32,6 +32,6 @@ Imports System.Runtime.InteropServices
|
|||||||
' by using the '*' as shown below:
|
' by using the '*' as shown below:
|
||||||
' <Assembly: AssemblyVersion("1.0.*")>
|
' <Assembly: AssemblyVersion("1.0.*")>
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("2022.9.8.1")>
|
<Assembly: AssemblyVersion("2022.9.10.0")>
|
||||||
<Assembly: AssemblyFileVersion("2022.9.8.1")>
|
<Assembly: AssemblyFileVersion("2022.9.10.0")>
|
||||||
<Assembly: NeutralResourcesLanguage("en")>
|
<Assembly: NeutralResourcesLanguage("en")>
|
||||||
|
|||||||
@@ -29,6 +29,8 @@
|
|||||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||||
<UseApplicationTrust>false</UseApplicationTrust>
|
<UseApplicationTrust>false</UseApplicationTrust>
|
||||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||||
|
<NuGetPackageImportStamp>
|
||||||
|
</NuGetPackageImportStamp>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetPlatformVersion>10.0</TargetPlatformVersion>
|
<TargetPlatformVersion>10.0</TargetPlatformVersion>
|
||||||
@@ -111,10 +113,29 @@
|
|||||||
<ApplicationManifest>My Project\app.manifest</ApplicationManifest>
|
<ApplicationManifest>My Project\app.manifest</ApplicationManifest>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Reference Include="LibVLCSharp, Version=3.6.6.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\LibVLCSharp.3.6.6\lib\net40\LibVLCSharp.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="LibVLCSharp.WinForms, Version=3.6.6.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\LibVLCSharp.WinForms.3.6.6\lib\net40\LibVLCSharp.WinForms.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Threading.Tasks, Version=1.0.12.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Threading.Tasks.Extensions, Version=1.0.12.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Threading.Tasks.Extensions.Desktop, Version=1.0.168.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Data" />
|
<Reference Include="System.Data" />
|
||||||
<Reference Include="System.Deployment" />
|
<Reference Include="System.Deployment" />
|
||||||
<Reference Include="System.Drawing" />
|
<Reference Include="System.Drawing" />
|
||||||
|
<Reference Include="System.Net" />
|
||||||
|
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
<Reference Include="System.Windows.Forms" />
|
<Reference Include="System.Windows.Forms" />
|
||||||
<Reference Include="System.Xml" />
|
<Reference Include="System.Xml" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
@@ -181,6 +202,12 @@
|
|||||||
<Compile Include="Download\FeedMedia.vb">
|
<Compile Include="Download\FeedMedia.vb">
|
||||||
<SubType>UserControl</SubType>
|
<SubType>UserControl</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="Download\FeedVideo.Designer.vb">
|
||||||
|
<DependentUpon>FeedVideo.vb</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Download\FeedVideo.vb">
|
||||||
|
<SubType>UserControl</SubType>
|
||||||
|
</Compile>
|
||||||
<Compile Include="Download\Groups\DownloadGroup.vb" />
|
<Compile Include="Download\Groups\DownloadGroup.vb" />
|
||||||
<Compile Include="Download\DownloadProgress.vb" />
|
<Compile Include="Download\DownloadProgress.vb" />
|
||||||
<Compile Include="Download\Groups\DownloadGroupCollection.vb" />
|
<Compile Include="Download\Groups\DownloadGroupCollection.vb" />
|
||||||
@@ -372,6 +399,9 @@
|
|||||||
<EmbeddedResource Include="Download\FeedMedia.resx">
|
<EmbeddedResource Include="Download\FeedMedia.resx">
|
||||||
<DependentUpon>FeedMedia.vb</DependentUpon>
|
<DependentUpon>FeedMedia.vb</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Download\FeedVideo.resx">
|
||||||
|
<DependentUpon>FeedVideo.vb</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Download\Groups\GroupEditorForm.resx">
|
<EmbeddedResource Include="Download\Groups\GroupEditorForm.resx">
|
||||||
<DependentUpon>GroupEditorForm.vb</DependentUpon>
|
<DependentUpon>GroupEditorForm.vb</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
@@ -428,6 +458,7 @@
|
|||||||
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
|
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
|
||||||
</None>
|
</None>
|
||||||
<None Include="App.config" />
|
<None Include="App.config" />
|
||||||
|
<None Include="packages.config" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\..\..\MyUtilities\PersonalUtilities.Notifications\PersonalUtilities.Notifications.vbproj">
|
<ProjectReference Include="..\..\..\MyUtilities\PersonalUtilities.Notifications\PersonalUtilities.Notifications.vbproj">
|
||||||
@@ -477,33 +508,14 @@
|
|||||||
<Install>false</Install>
|
<Install>false</Install>
|
||||||
</BootstrapperPackage>
|
</BootstrapperPackage>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
|
||||||
<COMReference Include="AxWMPLib">
|
|
||||||
<Guid>{6BF52A50-394A-11D3-B153-00C04F79FAA6}</Guid>
|
|
||||||
<VersionMajor>1</VersionMajor>
|
|
||||||
<VersionMinor>0</VersionMinor>
|
|
||||||
<Lcid>0</Lcid>
|
|
||||||
<WrapperTool>aximp</WrapperTool>
|
|
||||||
<Isolated>False</Isolated>
|
|
||||||
</COMReference>
|
|
||||||
<COMReference Include="stdole">
|
|
||||||
<Guid>{00020430-0000-0000-C000-000000000046}</Guid>
|
|
||||||
<VersionMajor>2</VersionMajor>
|
|
||||||
<VersionMinor>0</VersionMinor>
|
|
||||||
<Lcid>0</Lcid>
|
|
||||||
<WrapperTool>primary</WrapperTool>
|
|
||||||
<Isolated>False</Isolated>
|
|
||||||
<EmbedInteropTypes>True</EmbedInteropTypes>
|
|
||||||
</COMReference>
|
|
||||||
<COMReference Include="WMPLib">
|
|
||||||
<Guid>{6BF52A50-394A-11D3-B153-00C04F79FAA6}</Guid>
|
|
||||||
<VersionMajor>1</VersionMajor>
|
|
||||||
<VersionMinor>0</VersionMinor>
|
|
||||||
<Lcid>0</Lcid>
|
|
||||||
<WrapperTool>tlbimp</WrapperTool>
|
|
||||||
<Isolated>False</Isolated>
|
|
||||||
<EmbedInteropTypes>True</EmbedInteropTypes>
|
|
||||||
</COMReference>
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||||
|
<Import Project="..\packages\VideoLAN.LibVLC.Windows.3.0.17.4\build\VideoLAN.LibVLC.Windows.targets" Condition="Exists('..\packages\VideoLAN.LibVLC.Windows.3.0.17.4\build\VideoLAN.LibVLC.Windows.targets')" />
|
||||||
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||||
|
<PropertyGroup>
|
||||||
|
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Error Condition="!Exists('..\packages\VideoLAN.LibVLC.Windows.3.0.17.4\build\VideoLAN.LibVLC.Windows.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\VideoLAN.LibVLC.Windows.3.0.17.4\build\VideoLAN.LibVLC.Windows.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets'))" />
|
||||||
|
</Target>
|
||||||
|
<Import Project="..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets" Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" />
|
||||||
</Project>
|
</Project>
|
||||||
@@ -29,6 +29,7 @@ Friend Class SettingsCLS : Implements IDisposable
|
|||||||
Return OS64 And FfmpegExists
|
Return OS64 And FfmpegExists
|
||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
|
Friend ReadOnly Property CachePath As SFile = "_Cache\"
|
||||||
Friend ReadOnly Plugins As List(Of PluginHost)
|
Friend ReadOnly Plugins As List(Of PluginHost)
|
||||||
Friend ReadOnly Property Users As List(Of IUserData)
|
Friend ReadOnly Property Users As List(Of IUserData)
|
||||||
Friend ReadOnly Property UsersList As List(Of UserInfo)
|
Friend ReadOnly Property UsersList As List(Of UserInfo)
|
||||||
@@ -555,7 +556,7 @@ Friend Class SettingsCLS : Implements IDisposable
|
|||||||
DeleteCachePath()
|
DeleteCachePath()
|
||||||
End If
|
End If
|
||||||
If Not Automation Is Nothing Then Automation.Dispose()
|
If Not Automation Is Nothing Then Automation.Dispose()
|
||||||
AutoDownloader.CachePath.Delete(SFO.Path, SFODelete.DeletePermanently, EDP.None)
|
CachePath.Delete(SFO.Path, SFODelete.DeletePermanently, EDP.None)
|
||||||
Plugins.Clear()
|
Plugins.Clear()
|
||||||
Users.ListClearDispose
|
Users.ListClearDispose
|
||||||
UsersList.Clear()
|
UsersList.Clear()
|
||||||
|
|||||||
10
SCrawler/packages.config
Normal file
10
SCrawler/packages.config
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<packages>
|
||||||
|
<package id="LibVLCSharp" version="3.6.6" targetFramework="net461" />
|
||||||
|
<package id="LibVLCSharp.WinForms" version="3.6.6" targetFramework="net461" />
|
||||||
|
<package id="Microsoft.Bcl" version="1.1.10" targetFramework="net461" />
|
||||||
|
<package id="Microsoft.Bcl.Async" version="1.0.168" targetFramework="net461" />
|
||||||
|
<package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="net461" />
|
||||||
|
<package id="System.ValueTuple" version="4.5.0" targetFramework="net461" />
|
||||||
|
<package id="VideoLAN.LibVLC.Windows" version="3.0.17.4" targetFramework="net461" />
|
||||||
|
</packages>
|
||||||
Reference in New Issue
Block a user