mirror of
https://github.com/AAndyProgram/SCrawler.git
synced 2026-03-14 15:52:18 +00:00
2025.8.30.0
YT Add video trim Fix downloading error Add artist name when downloading audio Embed chapters SCrawler Add correct handling of 'webp' files API.Redgifs: hide 'Responser.Save' error
This commit is contained in:
79
SCrawler.YouTube/Controls/TrimOptionForm.vb
Normal file
79
SCrawler.YouTube/Controls/TrimOptionForm.vb
Normal file
@@ -0,0 +1,79 @@
|
||||
' Copyright (C) Andy https://github.com/AAndyProgram
|
||||
' 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 PersonalUtilities.Forms
|
||||
Imports PersonalUtilities.Forms.Toolbars
|
||||
Imports SCrawler.API.YouTube.Base
|
||||
Namespace API.YouTube.Controls
|
||||
Friend Class TrimOptionForm
|
||||
Private WithEvents MyDefs As DefaultFormOptions
|
||||
Friend Property MyTrimOption As TrimOption
|
||||
Private ReadOnly FieldsDateProvider As New CustomProvider(Function(v) AConvert(Of TimeSpan)(v, Nothing, EDP.ReturnValue))
|
||||
Private ReadOnly TCE As New ErrorsDescriber(False, False, False, New TimeSpan)
|
||||
Friend Sub New(Optional ByVal Opt As TrimOption = Nothing)
|
||||
InitializeComponent()
|
||||
MyDefs = New DefaultFormOptions(Me, MyYouTubeSettings.DesignXml)
|
||||
MyTrimOption = Opt
|
||||
End Sub
|
||||
Private Sub TrimOptionForm_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||
Try
|
||||
With MyDefs
|
||||
.MyViewInitialize()
|
||||
.AddOkCancelToolbar()
|
||||
|
||||
TXT_NAME.Text = MyTrimOption.Name
|
||||
TXT_FROM_INT.Text = MyTrimOption.Start
|
||||
TXT_TO_INT.Text = MyTrimOption.End
|
||||
|
||||
OPT_INT.Checked = True
|
||||
|
||||
.MyFieldsCheckerE = New FieldsChecker
|
||||
With .MyFieldsCheckerE
|
||||
.AddControl(Of Integer)(TXT_FROM_INT, "From")
|
||||
.AddControl(Of Integer)(TXT_TO_INT, "To")
|
||||
.AddControl(Of String)(TXT_FROM_DATE, "From (time)",, FieldsDateProvider)
|
||||
.AddControl(Of String)(TXT_TO_DATE, "To (time)",, FieldsDateProvider)
|
||||
.EndLoaderOperations()
|
||||
End With
|
||||
|
||||
.EndLoaderOperations()
|
||||
End With
|
||||
Catch ex As Exception
|
||||
MyDefs.InvokeLoaderError(ex)
|
||||
End Try
|
||||
End Sub
|
||||
Private Sub MyDefs_ButtonOkClick(ByVal Sender As Object, ByVal e As KeyHandleEventArgs) Handles MyDefs.ButtonOkClick
|
||||
If MyDefs.MyFieldsChecker.AllParamsOK Then
|
||||
MyTrimOption = New TrimOption With {
|
||||
.Name = TXT_NAME.Text,
|
||||
.Start = AConvert(Of Integer)(TXT_FROM_INT.Text, 0),
|
||||
.[End] = AConvert(Of Integer)(TXT_TO_INT.Text, 0)
|
||||
}
|
||||
MyDefs.CloseForm()
|
||||
End If
|
||||
End Sub
|
||||
Private Sub OPT_INT_TIME_CheckedChanged(sender As Object, e As EventArgs) Handles OPT_INT.CheckedChanged, OPT_TIME.CheckedChanged
|
||||
TP_TIME_INT.Enabled = OPT_INT.Checked
|
||||
TP_TIME_TIME.Enabled = OPT_TIME.Checked
|
||||
End Sub
|
||||
Private _TextHandlersEnabled As Boolean = True
|
||||
Private Sub TXT_FROM_TO_TextChanged(sender As Object, e As EventArgs) Handles TXT_FROM_INT.ActionOnTextChanged, TXT_TO_INT.ActionOnTextChanged,
|
||||
TXT_FROM_DATE.ActionOnTextChanged, TXT_TO_DATE.ActionOnTextChanged
|
||||
If _TextHandlersEnabled Then
|
||||
_TextHandlersEnabled = False
|
||||
Select Case DirectCast(sender, Control).Name
|
||||
Case TXT_FROM_INT.Name : TXT_FROM_DATE.Value = AConvert(Of String)(TimeSpan.FromSeconds(AConvert(Of Integer)(TXT_FROM_INT.Text, 0)), TimeToStringProviderH)
|
||||
Case TXT_TO_INT.Name : TXT_TO_DATE.Value = AConvert(Of String)(TimeSpan.FromSeconds(AConvert(Of Integer)(TXT_TO_INT.Text, 0)), TimeToStringProviderH)
|
||||
Case TXT_FROM_DATE.Name : TXT_FROM_INT.Text = CInt(CType(AConvert(Of TimeSpan)(TXT_FROM_DATE.Text, TCE), TimeSpan).TotalSeconds)
|
||||
Case TXT_TO_DATE.Name : TXT_TO_INT.Text = CInt(CType(AConvert(Of TimeSpan)(TXT_TO_DATE.Text, TCE), TimeSpan).TotalSeconds)
|
||||
End Select
|
||||
_TextHandlersEnabled = True
|
||||
End If
|
||||
End Sub
|
||||
End Class
|
||||
End Namespace
|
||||
Reference in New Issue
Block a user