mirror of
https://github.com/AAndyProgram/SCrawler.git
synced 2026-03-14 15:52:18 +00:00
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
79 lines
3.5 KiB
VB.net
79 lines
3.5 KiB
VB.net
' 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 |