From 520280b038db0f5741c0ef1af3e7d52244ac8a34 Mon Sep 17 00:00:00 2001 From: Andy <88590076+AAndyProgram@users.noreply.github.com> Date: Mon, 12 Feb 2024 10:28:21 +0300 Subject: [PATCH] 2024.2.12.0 API.Instagram: extract 'csrftoken' from cookies; remove 'x-ig-www-claim' from settings --- SCrawler/API/Instagram/SiteSettings.vb | 49 ++++++++++++++++++++++++-- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/SCrawler/API/Instagram/SiteSettings.vb b/SCrawler/API/Instagram/SiteSettings.vb index 08380cb..e9ce04c 100644 --- a/SCrawler/API/Instagram/SiteSettings.vb +++ b/SCrawler/API/Instagram/SiteSettings.vb @@ -63,13 +63,14 @@ Namespace API.Instagram Friend Const Header_Browser As String = "Sec-Ch-Ua" Friend Const Header_BrowserExt As String = "Sec-Ch-Ua-Full-Version-List" Friend Const Header_Platform As String = "Sec-Ch-Ua-Platform-Version" - + Friend ReadOnly Property HH_CSRF_TOKEN As PropertyValue Friend Property HH_IG_APP_ID As PropertyValue Friend Property HH_ASBD_ID As PropertyValue - + 'PropertyOption(ControlText:="x-ig-www-claim", IsAuth:=True, AllowNull:=True) + Friend Property HH_IG_WWW_CLAIM As PropertyValue Private Property HH_BROWSER As PropertyValue @@ -352,6 +353,50 @@ Namespace API.Instagram SkipUntilNextSession = False End Sub #End Region +#Region "Settings" + Private ____HH_CSRF_TOKEN As String = String.Empty + Private ____HH_IG_APP_ID As String = String.Empty + Private ____HH_ASBD_ID As String = String.Empty + Private ____HH_BROWSER As String = String.Empty + Private ____HH_BROWSER_EXT As String = String.Empty + Private ____HH_PLATFORM As String = String.Empty + Private ____HH_USER_AGENT As String = String.Empty + Private ____Cookies As CookieKeeper = Nothing + Friend Overrides Sub BeginEdit() + ____HH_CSRF_TOKEN = AConvert(Of String)(HH_CSRF_TOKEN.Value, String.Empty) + ____HH_IG_APP_ID = AConvert(Of String)(HH_IG_APP_ID.Value, String.Empty) + ____HH_ASBD_ID = AConvert(Of String)(HH_ASBD_ID.Value, String.Empty) + ____HH_BROWSER = AConvert(Of String)(HH_BROWSER.Value, String.Empty) + ____HH_BROWSER_EXT = AConvert(Of String)(HH_BROWSER_EXT.Value, String.Empty) + ____HH_PLATFORM = AConvert(Of String)(HH_PLATFORM.Value, String.Empty) + ____HH_USER_AGENT = AConvert(Of String)(HH_USER_AGENT.Value, String.Empty) + ____Cookies = Responser.Cookies.Copy + MyBase.BeginEdit() + End Sub + Friend Overrides Sub Update() + If _SiteEditorFormOpened Then + Dim vals() = {New With {.ValueOld = ____HH_CSRF_TOKEN, .ValueNew = AConvert(Of String)(HH_CSRF_TOKEN.Value, String.Empty).ToString}, + New With {.ValueOld = ____HH_IG_APP_ID, .ValueNew = AConvert(Of String)(HH_IG_APP_ID.Value, String.Empty).ToString}, + New With {.ValueOld = ____HH_ASBD_ID, .ValueNew = AConvert(Of String)(HH_ASBD_ID.Value, String.Empty).ToString}, + New With {.ValueOld = ____HH_BROWSER, .ValueNew = AConvert(Of String)(HH_BROWSER.Value, String.Empty).ToString}, + New With {.ValueOld = ____HH_BROWSER_EXT, .ValueNew = AConvert(Of String)(HH_BROWSER_EXT.Value, String.Empty).ToString}, + New With {.ValueOld = ____HH_PLATFORM, .ValueNew = AConvert(Of String)(HH_PLATFORM.Value, String.Empty).ToString}, + New With {.ValueOld = ____HH_USER_AGENT, .ValueNew = AConvert(Of String)(HH_USER_AGENT.Value, String.Empty).ToString} + } + If vals.Any(Function(v) Not v.ValueOld = v.ValueNew) OrElse + Not Responser.Cookies.ListEquals(____Cookies) Then HH_IG_WWW_CLAIM.Value = 0 + If Responser.CookiesExists Then + Dim csrf$ = If(Responser.Cookies.FirstOrDefault(Function(c) c.Name.StringToLower = Header_CSRF_TOKEN_COOKIE)?.Value, String.Empty) + If Not csrf.IsEmptyString Then HH_CSRF_TOKEN.Value = csrf + End If + End If + MyBase.Update() + End Sub + Friend Overrides Sub EndEdit() + If _SiteEditorFormOpened Then ____Cookies.DisposeIfReady(False) : ____Cookies = Nothing + MyBase.EndEdit() + End Sub +#End Region #Region "UserOptions, GetUserUrl, GetUserPostUrl" Friend Overrides Sub UserOptions(ByRef Options As Object, ByVal OpenForm As Boolean) If Options Is Nothing OrElse Not TypeOf Options Is EditorExchangeOptions Then Options = New EditorExchangeOptions(Me)