mirror of
https://github.com/AAndyProgram/SCrawler.git
synced 2026-03-14 15:52:18 +00:00
API.OnlyFans: new dynamic rules updating algo API.Instagram: update settings Feed: add ability to set the last session as the current one; wrong marking data as saved posts when moving a file
165 lines
8.2 KiB
VB.net
165 lines
8.2 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.Controls.Base
|
|
Imports PersonalUtilities.Forms.Toolbars
|
|
Namespace API.OnlyFans
|
|
Friend Class OnlyFansAdvancedSettingsForm
|
|
#Region "Declarations"
|
|
Private WithEvents MyDefs As DefaultFormOptions
|
|
Friend Property CurrentRulesEnv As DynamicRulesEnv
|
|
Private ReadOnly Property CurrentRulesEnv_LIST As DynamicRulesEnv
|
|
#End Region
|
|
#Region "Initializer"
|
|
Friend Sub New(ByVal rules As DynamicRulesEnv)
|
|
InitializeComponent()
|
|
MyDefs = New DefaultFormOptions(Me, Settings.Design)
|
|
CurrentRulesEnv = rules
|
|
CurrentRulesEnv_LIST = New DynamicRulesEnv
|
|
CurrentRulesEnv_LIST.Copy(rules, False)
|
|
End Sub
|
|
#End Region
|
|
#Region "Form handlers"
|
|
Private Sub OnlyFansAdvancedSettingsForm_Load(sender As Object, e As EventArgs) Handles Me.Load
|
|
With MyDefs
|
|
.MyViewInitialize()
|
|
.AddOkCancelToolbar()
|
|
|
|
.MyEditToolbar = New EditToolbar(Me,, CONTAINER_LIST.TopToolStripPanel) With {.Buttons = Nothing}
|
|
.MyEditToolbar.AddThisToolbar()
|
|
|
|
With CurrentRulesEnv
|
|
Select Case .Mode
|
|
Case DynamicRulesEnv.Modes.List : OPT_RULES_LIST.Checked = True
|
|
Case DynamicRulesEnv.Modes.Personal : TXT_PERSONAL_RULE.Checked = True
|
|
End Select
|
|
CH_LOG_ERR.Checked = .AddErrorsToLog
|
|
CH_RULES_REPLACE_CONFIG.Checked = .RulesReplaceConfig
|
|
CH_UPDATE_RULES_CONST.Checked = .RulesUpdateConst
|
|
CH_CONFIG_MANUAL_MODE.Checked = .RulesConfigManualMode
|
|
CH_UPDATE_CONF.Checked = .ConfigAutoUpdate
|
|
TXT_UP_INTERVAL.Text = .UpdateInterval
|
|
If Not .PersonalRule.IsEmptyString Then TXT_PERSONAL_RULE.Text = .PersonalRule
|
|
Refill()
|
|
CH_PROTECTED.Checked = .ProtectFile
|
|
CH_FORCE_UPDATE.Checked = .RulesForceUpdateRequired
|
|
End With
|
|
|
|
.MyFieldsCheckerE = New FieldsChecker
|
|
.MyFieldsCheckerE.AddControl(Of Integer)(TXT_UP_INTERVAL, TXT_UP_INTERVAL.CaptionText,,
|
|
New FieldsCheckerProviderSimple(Function(v) IIf(AConvert(Of Integer)(v, 0, EDP.ReturnValue) > 0, v, Nothing),
|
|
"The value of [{0}] field must be greater than 0"))
|
|
.MyFieldsCheckerE.EndLoaderOperations()
|
|
|
|
.EndLoaderOperations()
|
|
End With
|
|
End Sub
|
|
Private Sub OnlyFansAdvancedSettingsForm_Disposed(sender As Object, e As EventArgs) Handles Me.Disposed
|
|
CurrentRulesEnv_LIST.Dispose()
|
|
End Sub
|
|
#End Region
|
|
#Region "Refill"
|
|
Private Sub Refill()
|
|
With CurrentRulesEnv_LIST
|
|
Dim ls% = _LatestSelected
|
|
LIST_RULES.Items.Clear()
|
|
If .Count > 0 Then LIST_RULES.Items.AddRange(.Select(Function(r) r.UrlRepo).Cast(Of Object).ToArray)
|
|
Dim lim% = LIST_RULES.Items.Count - 1
|
|
If (ls - 1).ValueBetween(0, lim) Then
|
|
ls -= 1
|
|
ElseIf (ls + 1).ValueBetween(0, lim) Then
|
|
ls += 1
|
|
End If
|
|
If ls.ValueBetween(0, lim) Then LIST_RULES.SelectedIndex = ls Else ls = -1
|
|
_LatestSelected = ls
|
|
End With
|
|
End Sub
|
|
#End Region
|
|
#Region "OK, Cancel"
|
|
Private Sub MyDefs_ButtonOkClick(ByVal Sender As Object, ByVal e As KeyHandleEventArgs) Handles MyDefs.ButtonOkClick
|
|
If MyDefs.MyFieldsChecker.AllParamsOK Then
|
|
With CurrentRulesEnv
|
|
.Copy(CurrentRulesEnv_LIST, True)
|
|
.ProtectFile = CH_PROTECTED.Checked
|
|
.UpdateInterval = AConvert(Of Integer)(TXT_UP_INTERVAL.Text, DynamicRulesEnv.UpdateIntervalDefault)
|
|
.Mode = If(TXT_PERSONAL_RULE.Checked, DynamicRulesEnv.Modes.Personal, DynamicRulesEnv.Modes.List)
|
|
.PersonalRule = TXT_PERSONAL_RULE.Text
|
|
.RulesReplaceConfig = CH_RULES_REPLACE_CONFIG.Checked
|
|
.RulesUpdateConst = CH_UPDATE_RULES_CONST.Checked
|
|
.RulesConfigManualMode = CH_CONFIG_MANUAL_MODE.Checked
|
|
.ConfigAutoUpdate = CH_UPDATE_CONF.Checked
|
|
.AddErrorsToLog = CH_LOG_ERR.Checked
|
|
If CH_FORCE_UPDATE.Checked Then .RulesForceUpdateRequired = True
|
|
.NeedToSave = True
|
|
End With
|
|
MyDefs.CloseForm()
|
|
End If
|
|
End Sub
|
|
#End Region
|
|
#Region "Add, Delete"
|
|
Private Sub MyDefs_ButtonAddClick(ByVal Sender As Object, ByVal e As EditToolbarEventArgs) Handles MyDefs.ButtonAddClick
|
|
Const msgTitle$ = "Add a rule"
|
|
Dim i%
|
|
Dim rule As DynamicRulesValue
|
|
Dim r$ = InputBoxE("Enter a valid rules URL:", msgTitle)
|
|
If Not r.IsEmptyString Then
|
|
rule = Rules.ParseURL(r)
|
|
If rule.Valid Then
|
|
i = CurrentRulesEnv_LIST.IndexOf(r)
|
|
If i >= 0 Then
|
|
MsgBoxE({$"The rule you entered already exists:{vbCr}{rule.UrlRepo}", msgTitle}, vbCritical)
|
|
Else
|
|
CurrentRulesEnv_LIST.Add(rule, False, False)
|
|
Refill()
|
|
End If
|
|
Else
|
|
MsgBoxE({$"The rule you entered has an incompatible format:{vbCr}{r}", msgTitle}, vbCritical)
|
|
End If
|
|
End If
|
|
End Sub
|
|
Private Sub MyDefs_ButtonDeleteClickE(ByVal Sender As Object, ByVal e As EditToolbarEventArgs) Handles MyDefs.ButtonDeleteClickE
|
|
If _LatestSelected.ValueBetween(0, LIST_RULES.Items.Count - 1) Then
|
|
Dim r$ = LIST_RULES.Items(_LatestSelected)
|
|
If MsgBoxE({$"Are you sure you want to delete the following rule?{vbCr}{r}", "Delete a rule"}, vbExclamation,,, {"Process", "Cancel"}) = 0 Then
|
|
If CurrentRulesEnv_LIST.RemoveAt(_LatestSelected) Then
|
|
LIST_RULES.Items.RemoveAt(_LatestSelected)
|
|
Refill()
|
|
Else
|
|
MsgBoxE({$"The following rule cannot be deleted:{vbCr}{r}", "Delete a rule"}, vbCritical)
|
|
End If
|
|
End If
|
|
End If
|
|
End Sub
|
|
#End Region
|
|
#Region "Options"
|
|
Private Sub TXT_UP_INTERVAL_ActionOnButtonClick(ByVal Sender As Object, ByVal e As ActionButtonEventArgs) Handles TXT_UP_INTERVAL.ActionOnButtonClick
|
|
If e.DefaultButton = ActionButton.DefaultButtons.Refresh Then TXT_UP_INTERVAL.Text = DynamicRulesEnv.UpdateIntervalDefault
|
|
End Sub
|
|
Private Sub TXT_PERSONAL_RULE_ActionOnCheckedChange(ByVal Sender As Object, ByVal e As EventArgs, ByVal Checked As Boolean) Handles TXT_PERSONAL_RULE.ActionOnCheckedChange
|
|
Mode_CheckedChanged()
|
|
End Sub
|
|
Private Sub OPT_RULES_LIST_CheckedChanged(sender As Object, e As EventArgs)
|
|
Mode_CheckedChanged()
|
|
End Sub
|
|
Private Sub Mode_CheckedChanged()
|
|
Dim e As Boolean = TXT_PERSONAL_RULE.Checked
|
|
TXT_PERSONAL_RULE.Enabled(False) = e
|
|
CONTAINER_LIST.Enabled = Not e
|
|
CH_PROTECTED.Enabled = Not e
|
|
CH_FORCE_UPDATE.Enabled = Not e
|
|
End Sub
|
|
#End Region
|
|
#Region "List handlers"
|
|
Private _LatestSelected As Integer = -1
|
|
Private Sub LIST_RULES_SelectedIndexChanged(sender As Object, e As EventArgs) Handles LIST_RULES.SelectedIndexChanged
|
|
_LatestSelected = LIST_RULES.SelectedIndex
|
|
End Sub
|
|
#End Region
|
|
End Class
|
|
End Namespace |