From f887666ce3b047d70b3689be04a90f6c9596c03d Mon Sep 17 00:00:00 2001
From: cshenfu <men883234@gmail.com>
Date: 星期二, 10 十二月 2024 15:15:43 +0800
Subject: [PATCH] 区分小红书cookie

---
 test.txt                                                                  |    0 
 app/src/main/java/com/shsening/autouploadvideos/SessionProfileActivity.kt |    4 -
 .idea/deploymentTargetSelector.xml                                        |    4 
 app/ttt.json                                                              |   23 +++++++
 app/release/baselineProfiles/1/app-release.dm                             |    0 
 app/src/main/java/com/shsening/autouploadvideos/SessionProfileWebView.kt  |    1 
 app/src/main/java/com/shsening/autouploadvideos/UploadSessionActivity.kt  |   31 ++-------
 app/src/main/java/com/shsening/autouploadvideos/action/ActionRedbook.kt   |   19 ++----
 /dev/null                                                                 |    0 
 app/src/main/java/com/shsening/autouploadvideos/action/ActionShipinhao.kt |    4 +
 app/src/main/java/com/shsening/autouploadvideos/CookieHelper.kt           |   11 +--
 app/release/baselineProfiles/0/app-release.dm                             |    0 
 app/src/main/java/com/shsening/autouploadvideos/Cookiehelper2.kt          |   64 +++++++++++++++++++++
 app/src/main/java/com/shsening/autouploadvideos/UploadFragment.kt         |    4 +
 app/src/main/java/com/shsening/autouploadvideos/action/ActionBilibili.kt  |    2 
 15 files changed, 117 insertions(+), 50 deletions(-)

diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml
index f0ded44..24573fd 100644
--- a/.idea/deploymentTargetSelector.xml
+++ b/.idea/deploymentTargetSelector.xml
@@ -4,10 +4,10 @@
     <selectionStates>
       <SelectionState runConfigName="app">
         <option name="selectionMode" value="DROPDOWN" />
-        <DropdownSelection timestamp="2024-11-27T11:37:15.668942400Z">
+        <DropdownSelection timestamp="2024-12-09T08:10:34.232180Z">
           <Target type="DEFAULT_BOOT">
             <handle>
-              <DeviceId pluginId="Default" identifier="serial=127.0.0.1:5555;connection=03e18c1a" />
+              <DeviceId pluginId="PhysicalDevice" identifier="serial=xg4hkjgmhexwdawg" />
             </handle>
           </Target>
         </DropdownSelection>
diff --git a/app/debug/app-debug.apk b/app/debug/app-debug.apk
deleted file mode 100644
index c7411eb..0000000
--- a/app/debug/app-debug.apk
+++ /dev/null
Binary files differ
diff --git a/app/release/app-release.apk b/app/release/app-release.apk
deleted file mode 100644
index 7b64ce2..0000000
--- a/app/release/app-release.apk
+++ /dev/null
Binary files differ
diff --git a/app/release/baselineProfiles/0/app-release.dm b/app/release/baselineProfiles/0/app-release.dm
index 978bfb0..05bf43b 100644
--- a/app/release/baselineProfiles/0/app-release.dm
+++ b/app/release/baselineProfiles/0/app-release.dm
Binary files differ
diff --git a/app/release/baselineProfiles/1/app-release.dm b/app/release/baselineProfiles/1/app-release.dm
index 058c788..d515ebd 100644
--- a/app/release/baselineProfiles/1/app-release.dm
+++ b/app/release/baselineProfiles/1/app-release.dm
Binary files differ
diff --git a/app/src/main/java/com/shsening/autouploadvideos/CookieHelper.kt b/app/src/main/java/com/shsening/autouploadvideos/CookieHelper.kt
index 0fef0ae..15c40a8 100644
--- a/app/src/main/java/com/shsening/autouploadvideos/CookieHelper.kt
+++ b/app/src/main/java/com/shsening/autouploadvideos/CookieHelper.kt
@@ -3,18 +3,13 @@
 import android.util.Log
 import android.webkit.CookieManager
 import org.json.JSONObject
-
-
-
 object CookieHelper {
     private const val PREF_NAME = "CookieHelper"
-
-
-
     fun saveSessionProfileUrlCookies(context: Context, sessionProfileId: String, url: String) {
         try{
             val cookies = CookieManager.getInstance().getCookie(url)
             if (cookies != null) {
+                println("杩欐槸cookie"+cookies)
                 val sharedPreferences = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE)
                 val sessionCookiesMap = sharedPreferences.getString(sessionProfileId, "{}")
                 val sessionCookies = JSONObject(sessionCookiesMap!!)
@@ -26,15 +21,17 @@
             Log.e("CookieHelper", "Failed to get cookies: ", e)
         }
     }
-
     fun getAllSessionProfileCookies(context: Context, sessionProfileId: String): Map<String, String> {
         val sharedPreferences = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE)
         val sessionCookiesMap = sharedPreferences.getString(sessionProfileId, "{}")
         val sessionCookies = JSONObject(sessionCookiesMap!!)
+        println("鏈�缁堢殑sessioncookies鏄�"+sessionCookies)
+        println("杩斿洖鐨勭粨鏋滄槸锛�"+sessionCookies.keys().asSequence().associateWith { sessionCookies.getString(it) })
         return sessionCookies.keys().asSequence().associateWith { sessionCookies.getString(it) }
     }
     private fun getBaseUrl(url: String): String {
         val uri = Uri.parse(url)
+        println("鏈�缁堣矾寰勶細${uri.scheme}://${uri.host}/")
         return "${uri.scheme}://${uri.host}/"
     }
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/shsening/autouploadvideos/Cookiehelper2.kt b/app/src/main/java/com/shsening/autouploadvideos/Cookiehelper2.kt
new file mode 100644
index 0000000..3142cc7
--- /dev/null
+++ b/app/src/main/java/com/shsening/autouploadvideos/Cookiehelper2.kt
@@ -0,0 +1,64 @@
+import android.content.Context
+import android.webkit.CookieManager
+import com.shsening.autouploadvideos.AppConfig
+import org.json.JSONObject
+
+object CookieHelper2 {
+    private const val PREF_NAME = "CookieHelper"
+
+    fun saveSessionProfileUrlCookies(context: Context, sessionProfileId: String, url: String, cookies: String) {
+        println("杩涙潵浜�"+cookies)
+        val sharedPreferences = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE)
+        val sessionCookiesMap = sharedPreferences.getString(sessionProfileId, "{}")
+        val sessionCookies = JSONObject(sessionCookiesMap!!)
+        sessionCookies.put(url, cookies)
+        sharedPreferences.edit().putString(sessionProfileId, sessionCookies.toString()).apply()
+        println("缁撴潫浜�")
+    }
+
+    fun getAllSessionProfileCookies(context: Context, sessionProfileId: String): Map<String, String> {
+        val sharedPreferences = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE)
+        val sessionCookiesMap = sharedPreferences.getString(sessionProfileId, "{}")
+        val sessionCookies = JSONObject(sessionCookiesMap!!)
+        return sessionCookies.keys().asSequence().associateWith { sessionCookies.getString(it) }
+    }
+
+    fun removeCookiesForUrl(url: String) {
+        val cookieManager = CookieManager.getInstance()
+        val cookies = cookieManager.getCookie(url) // 鑾峰彇鐗瑰畾 URL 鐨勬墍鏈� Cookie
+        if (cookies != null) {
+            val cookieArray = cookies.split(";") // 鎸夊垎鍙峰垎闅斿涓� Cookie
+            for (cookie in cookieArray) {
+                val cookieParts = cookie.split("=")
+                if (cookieParts.size > 0) {
+                    val cookieName = cookieParts[0].trim()
+                    // 璁剧疆涓�涓繃鏈熺殑 Cookie 瑕嗙洊鍘熸潵鐨�
+                    cookieManager.setCookie(url, "$cookieName=; Expires=Thu, 01 Jan 1970 00:00:00 GMT")
+                }
+            }
+            // 纭繚灏嗘洿鏀瑰悓姝ュ埌瀛樺偍涓�
+            cookieManager.flush()
+        }
+    }
+
+    fun removeCookieForAllPlatform(){
+        AppConfig.SESSION_PROFILE_PALTFORM_LISTS.forEach { item ->
+            removeCookiesForUrl(item.url)
+        }
+    }
+
+    fun saveSessionCookies(context: Context,sessionProfileId:String) {
+        var cookieManager = CookieManager.getInstance()
+        AppConfig.SESSION_PROFILE_PALTFORM_LISTS.forEach { item ->
+            val cookies = cookieManager.getCookie(item.url)
+            if (cookies != null) {
+                saveSessionProfileUrlCookies(
+                    context,
+                    sessionProfileId,
+                    item.url,
+                    cookies
+                )
+            }
+        }
+    }
+}
diff --git a/app/src/main/java/com/shsening/autouploadvideos/SessionProfileActivity.kt b/app/src/main/java/com/shsening/autouploadvideos/SessionProfileActivity.kt
index 10016fc..80f71da 100644
--- a/app/src/main/java/com/shsening/autouploadvideos/SessionProfileActivity.kt
+++ b/app/src/main/java/com/shsening/autouploadvideos/SessionProfileActivity.kt
@@ -1,7 +1,6 @@
 package com.shsening.autouploadvideos
 
 import CookieHelper
-import CookieHelper.saveSessionProfileUrlCookies
 import Profile
 import SessionProfile
 import SessionProfileManager
@@ -46,7 +45,6 @@
         super.onCreate(savedInstanceState)
         setContentView(R.layout.activity_session_profile)
         activityReference = this
-
         // 鑾峰彇浼犲叆鐨� SessionProfile
         sessionProfile = intent.getSerializableExtra("sessionProfile") as? SessionProfile
             ?: SessionProfile(
@@ -56,7 +54,6 @@
                 lastUploadTime = "",
                 profiles = mutableListOf()
             )
-
         if (sessionProfile.id == ""){
             isNewSessionProfile = true
             sessionProfile.id = UUID.randomUUID().toString().replace("-", "")
@@ -64,7 +61,6 @@
         }else {
             findViewById<TextView>(R.id.txt_session_id).text = sessionProfile.id
         }
-
         editName = findViewById(R.id.edit_name)
         findViewById<TextView>(R.id.edit_name).text = sessionProfile.name
 
diff --git a/app/src/main/java/com/shsening/autouploadvideos/SessionProfileWebView.kt b/app/src/main/java/com/shsening/autouploadvideos/SessionProfileWebView.kt
index f319772..4964485 100644
--- a/app/src/main/java/com/shsening/autouploadvideos/SessionProfileWebView.kt
+++ b/app/src/main/java/com/shsening/autouploadvideos/SessionProfileWebView.kt
@@ -46,6 +46,7 @@
         CookieManager.getInstance().removeAllCookies(null)
         CookieManager.getInstance().flush()
         val sessionCookies = CookieHelper.getAllSessionProfileCookies(context, sessionProfileId)
+        println("杩欐槸session cookie"+sessionCookies)
         for ((url, cookies) in sessionCookies) {
             splitCookieStringAndSetCookie(url,cookies)
         }
diff --git a/app/src/main/java/com/shsening/autouploadvideos/UploadFragment.kt b/app/src/main/java/com/shsening/autouploadvideos/UploadFragment.kt
index 2f30566..22b1edf 100644
--- a/app/src/main/java/com/shsening/autouploadvideos/UploadFragment.kt
+++ b/app/src/main/java/com/shsening/autouploadvideos/UploadFragment.kt
@@ -22,6 +22,7 @@
 import com.shsening.autouploadvideos.action.ActionDouyin
 import com.shsening.autouploadvideos.action.ActionKuaishou
 import com.shsening.autouploadvideos.action.ActionShipinhao
+import com.shsening.autouploadvideos.action.ActionRedbook
 import com.shsening.autouploadvideos.utils.Utils
 import kotlinx.coroutines.launch
 import kotlinx.coroutines.runBlocking
@@ -169,6 +170,9 @@
 
                 }
                 AppConfig.UPLOADSERVERTYPE_XIAOHONGSHU -> {
+                    val actionXiaohongshu =
+                        ActionRedbook(this, requireContext(), threadHandler, currentUploadVideoInfo)
+                    actionXiaohongshu.checkIfContentLoaded()
 
                 }
 
diff --git a/app/src/main/java/com/shsening/autouploadvideos/UploadSessionActivity.kt b/app/src/main/java/com/shsening/autouploadvideos/UploadSessionActivity.kt
index 573fe83..3ff8236 100644
--- a/app/src/main/java/com/shsening/autouploadvideos/UploadSessionActivity.kt
+++ b/app/src/main/java/com/shsening/autouploadvideos/UploadSessionActivity.kt
@@ -1,11 +1,10 @@
 package com.shsening.autouploadvideos
 
 import CookieHelper
-import Profile
+import CookieHelper2
 import SessionProfile
 import SessionProfileManager
-import android.app.Activity
-import android.content.Intent
+import android.graphics.Bitmap
 import android.net.Uri
 import android.os.Bundle
 import android.os.Handler
@@ -17,13 +16,7 @@
 import android.webkit.WebChromeClient
 import android.webkit.WebView
 import android.webkit.WebViewClient
-import android.widget.ArrayAdapter
 import android.widget.Button
-import android.widget.EditText
-import android.widget.LinearLayout
-import android.widget.ProgressBar
-import android.widget.Spinner
-import android.widget.Switch
 import android.widget.TextView
 import android.widget.Toast
 import androidx.appcompat.app.AppCompatActivity
@@ -31,27 +24,18 @@
 import com.shsening.autouploadvideos.AppConfig.Companion.SESSION_PROFILE_PALTFORM_LISTS
 import com.shsening.autouploadvideos.action.ActionDouyin
 import com.shsening.autouploadvideos.action.ActionKuaishou
+import com.shsening.autouploadvideos.action.ActionRedbook
 import com.shsening.autouploadvideos.action.ActionShipinhao
 import com.shsening.autouploadvideos.utils.DownloadHelper
-import com.shsening.autouploadvideos.utils.DownloadReceiver
 import com.shsening.autouploadvideos.utils.Utils
-import kotlinx.coroutines.CoroutineScope
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.launch
-import okhttp3.Call
-import okhttp3.Callback
-import okhttp3.OkHttpClient
-import okhttp3.Request
-import okhttp3.Response
-import org.json.JSONArray
 import java.io.File
-import java.io.IOException
 import java.util.LinkedList
 import java.util.Queue
-import java.util.UUID
+
 
 class UploadSessionActivity : AppCompatActivity() {
-
+    private var RedbooklUrl: String? = "https://creator.xiaohongshu.com/publish/publish?from=menu"
+    private var DingyuehaolUrl: String? = null
     private lateinit var sessionProfileManager: SessionProfileManager
     lateinit var sessionProfileWebView:SessionProfileWebView
 
@@ -99,11 +83,12 @@
             override fun onPageStarted(
                 view: WebView?,
                 url: String?,
-                favicon: android.graphics.Bitmap?
+                favicon: Bitmap?
             ) {
                 super.onPageStarted(view, url, favicon)
             }
             override fun onPageFinished(view: WebView?, url: String?) {
+                println("杩欐槸鍏朵粬椤甸潰"+url)
                 super.onPageFinished(view, url)
                 view?.requestFocus() // 纭繚 WebView 鑾峰彇鐒︾偣
                 //inject action
diff --git a/app/src/main/java/com/shsening/autouploadvideos/action/ActionBilibili.kt b/app/src/main/java/com/shsening/autouploadvideos/action/ActionBilibili.kt
index 8dee10a..51d040f 100644
--- a/app/src/main/java/com/shsening/autouploadvideos/action/ActionBilibili.kt
+++ b/app/src/main/java/com/shsening/autouploadvideos/action/ActionBilibili.kt
@@ -1,4 +1,4 @@
-package com.shsening.autouploadvideos
+package com.shsening.autouploadvideos.action
 
 
 import android.app.Instrumentation
diff --git a/app/src/main/java/com/shsening/autouploadvideos/action/ActionRedbook.kt b/app/src/main/java/com/shsening/autouploadvideos/action/ActionRedbook.kt
index 5c11e4f..7c51459 100644
--- a/app/src/main/java/com/shsening/autouploadvideos/action/ActionRedbook.kt
+++ b/app/src/main/java/com/shsening/autouploadvideos/action/ActionRedbook.kt
@@ -1,4 +1,4 @@
-package com.shsening.autouploadvideos
+package com.shsening.autouploadvideos.action
 
 
 import android.app.Instrumentation
@@ -8,6 +8,8 @@
 import android.os.Bundle
 import android.os.Looper
 import androidx.appcompat.app.AppCompatActivity
+import com.shsening.autouploadvideos.UploadSessionActivity
+import com.shsening.autouploadvideos.WebviewUtils
 import com.shsening.autouploadvideos.action.PlatformActionInterface
 import com.shsening.autouploadvideos.utils.Utils
 
@@ -33,14 +35,6 @@
     private fun updatePostDescription(){
         WebviewUtils.addValueToInput(webView,"#publish-container > div > div.body > div.content > div.input.titleInput > div.d-input-wrapper.d-inline-block.c-input_inner > div > input",videoInfo.title)
         WebviewUtils.addValueToDiv(webView,"#quillEditor > div > p",videoInfo.description)
-        WebviewUtils.simpleElementClick(webView,"#topicBtn")
-        SystemClock.sleep(500)
-        WebviewUtils.simpleElementClick(webView,"#quill-mention-item-0")
-        WebviewUtils.simpleElementClick(webView,"#topicBtn")
-        SystemClock.sleep(500)
-        WebviewUtils.simpleElementClick(webView,"#quill-mention-item-1")
-
-//        WebviewUtils.simpleElementClick(webView,"#el-id-3410-26 > label:nth-child(1)")
         WebviewUtils.simpleElementClick(webView,"html > body > div:nth-of-type(1) > div > div:nth-of-type(2) > div > div:nth-of-type(2) > main > div:nth-of-type(3) > div > div > div:nth-of-type(1) > div > div > div > div:nth-of-type(2) > div:nth-of-type(1) > div:nth-of-type(1) > div:nth-of-type(10) > div > div:nth-of-type(5) > div:nth-of-type(2) > label:nth-of-type(2)")
         addValueToDatePickerInput(true,"html > body > div:nth-of-type(1) > div > div:nth-of-type(2) > div > div:nth-of-type(2) > main > div:nth-of-type(3) > div > div > div:nth-of-type(1) > div > div > div > div:nth-of-type(2) > div:nth-of-type(1) > div:nth-of-type(1) > div:nth-of-type(10) > div > div:nth-of-type(5) > div:nth-of-type(2) > div > div:nth-of-type(1) > div",videoInfo.datetime)
         // 鍦ㄤ富绾跨▼涓缃欢杩熸墽琛�
@@ -75,9 +69,12 @@
             webView.evaluateJavascript(jsCode_CheckVideoUploadFinished) { result ->
                 if (result == "true") {
                     // 绛夊緟瑙嗛妫�娴嬪拰鐢熸垚灏侀潰
+//                    WebviewUtils.simpleElementClick(webView,"#web > div > div > div > div.upload-content > div.upload-wrapper > div > input")
+                    println("33333333333333333333333333333333333333")
                     threadHandler.postDelayed({updatePostDescription()},3000)
 
                 } else {
+                    println("11111111111111111111111")
                     // 鍏冪礌涓嶅瓨鍦紝1绉掑悗鍐嶆妫�鏌�
                     webView.postDelayed({
                         checkVideoUploadFinished()
@@ -86,7 +83,6 @@
             }
         }, 1000) // 姣忕妫�鏌ヤ竴娆�
     }
-
     private fun checkVideoPublishFinished(){
         webView.postDelayed({
             webView.evaluateJavascript(jsCode_PublishVideo_Finished) { result ->
@@ -152,11 +148,9 @@
         val displayMetrics = activity.resources.displayMetrics
         val width = displayMetrics.widthPixels
         val height = displayMetrics.heightPixels
-
         val startX = width.toFloat() * 0.9f // 浠庡彸渚ф粦鍔�
         val endX = width.toFloat() * 0.1f // 婊戝姩鍒板乏渚�
         val y = height / 3f // Y 鍧愭爣鍦ㄥ睆骞曚腑闂�
-
         Thread {
             Utils.instrumentationSwipe(instrumentation, startX, y, endX, y)
             SystemClock.sleep(500)
@@ -164,6 +158,7 @@
             SystemClock.sleep(500)
             Utils.instrumentationClick(instrumentation, width / 2f, height * 2 / 4f)
             // back to main thread
+
             threadHandler.post {
                 checkVideoUploadFinished()
             }
diff --git a/app/src/main/java/com/shsening/autouploadvideos/action/ActionShipinhao.kt b/app/src/main/java/com/shsening/autouploadvideos/action/ActionShipinhao.kt
index 89083f4..444833c 100644
--- a/app/src/main/java/com/shsening/autouploadvideos/action/ActionShipinhao.kt
+++ b/app/src/main/java/com/shsening/autouploadvideos/action/ActionShipinhao.kt
@@ -31,6 +31,7 @@
      * Title,description(including # and @ ) publish datetime etc
      */
     private fun updatePostDescription(){
+        WebviewUtils.addValueToInput(webView,"#container-wrap > div.container-center > div > div > div.main-body-wrap.post-create > div.main-body > div > div.post-edit-wrap.material-edit-wrap > div.form > div:nth-child(8) > div.form-item-body.short-title-wrap > div > div > span > input",videoInfo.title)
         WebviewUtils.addValueToDiv(
             webView,
             "#container-wrap > div.container-center > div > div > div.main-body-wrap.post-create > div.main-body > div > div.post-edit-wrap.material-edit-wrap > div.form > div:nth-child(2) > div.form-item-body > div > div.input-editor",
@@ -41,7 +42,7 @@
         // publish later radiobox
         WebviewUtils.simpleElementClick(
             webView,
-            "#container-wrap > div.container-center > div > div > div.main-body-wrap.post-create > div.main-body > div > div.post-edit-wrap.material-edit-wrap > div.form > div.post-time-wrap > div:nth-child(1) > div.form-item-body > div > label:nth-child(2)"
+            "#container-wrap > div.container-center > div > div > div.main-body-wrap.post-create > div.main-body > div > div.post-edit-wrap.material-edit-wrap > div.form > div.post-time-wrap > div > div.form-item-body > div > label:nth-child(2)"
         )
 
         addValueToDatePickerInput(true,"#container-wrap > div.container-center > div > div > div.main-body-wrap.post-create > div.main-body > div > div.post-edit-wrap.material-edit-wrap > div.form > div.post-time-wrap > div:nth-child(2) > div.form-item-body > dl > dd",videoInfo.datetime)
@@ -106,6 +107,7 @@
 
 
     private fun addValueToDatePickerInput(first:Boolean, jsPath: String, targetValue: String) {
+        println(targetValue+"杩欐槸鏃堕棿///////////")
 
         var datetimes = Utils.validateAndReturnDateTime(targetValue) ?: return
 
diff --git a/app/ttt.json b/app/ttt.json
new file mode 100644
index 0000000..17462f4
--- /dev/null
+++ b/app/ttt.json
@@ -0,0 +1,23 @@
+xsecappid=ugc;
+a1=1939a580098qal8prsprpx71cj9rygo65cs0ame6n30000165115;
+webId=3fe950abc269d8ccc08d8ab1a513b51e;
+gid=yjqj02Yyqf2Kyjqj02Y88S6djYA01YUFMUFUMKICWySVj8q8FvklK0888yK2yy288YqdW84f;
+customer-sso-sid=68c517445160666216132753128a94cf26ffda46;
+x-user-id-creator.xiaohongshu.com=66f9208b000000001d0307a5;
+customerClientId=496382327268371;
+access-token-creator.xiaohongshu.com=customer.creator.AT-68c517446276627574625368zz58vqokvj20qob0;
+galaxy_creator_session_id=NrzaB1vOCZl5RrtKdOBmW7Glu0Z9uQAz6uWh;
+galaxy.creator.beaker.session.id=1733721380817008025744;
+acw_tc=0a4a9a7a17337344438126430e8b239cf9bb9e8ccd29cd7c5128375c1e1baa;
+websectiga=29098a4cf41f76ee3f8db19051aaa60c0fc7c5e305572fec762da32d457d76ae;
+sec_poison_id=fc7e7662-9729-4ea2-80fe-0d9f21445919
+
+
+
+
+
+xsecappid=ugc;
+acw_tc=0a4a1d1e17338016839177906e1b35470f735fdbfbd6b1e5910b33b5940d03;
+websectiga=2a3d3ea002e7d92b5c9743590ebd24010cf3710ff3af8029153751e41a6af4a3;
+sec_poison_id=4a974805-0f17-4f34-aace-af303de48018;
+gid=yjq0d0J4yKF4yjq000280M1SS8fvd3hv1Fl8VCI6D343T828yhSY0h888q8qq2Y8d8y20JqS
\ No newline at end of file
diff --git a/test.txt b/test.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/test.txt

--
Gitblit v1.9.1