HSJ_USERID: fake

This commit is contained in:
yzqzss 2024-07-05 01:21:30 +08:00
parent 3b00ba2407
commit c56c074740

View File

@ -1,12 +1,15 @@
package huashijie_api
import (
"crypto/md5"
"fmt"
"io"
"log"
"math/rand"
"net/http"
"os"
"strings"
"time"
)
var XIAOMI_MODELS = []string{
@ -23,6 +26,8 @@ var XIAOMI_MODELS = []string{
"MDE5",
}
var Logger = log.New(os.Stdout, "[huashijie_api] ", log.Ldate|log.Ltime|log.Lmsgprefix)
func EnsureConnection(client http.Client) {
// https://app.huashijie.art/api/update/checkUpdate
req, err := http.NewRequest("GET", "https://app.huashijie.art/api/update/checkUpdate", nil)
@ -49,6 +54,9 @@ func EnsureConnection(client http.Client) {
}
}
var cur_fake_user_id = -1
var cur_fake_user_left = time.Now()
func GetWorkDetailResponse(client http.Client, work_id string) ([]byte, int) {
endpoint := "https://app.huashijie.art/"
if os.Getenv("HSJ_ENDPOINT") == "pandapaint" {
@ -58,14 +66,36 @@ func GetWorkDetailResponse(client http.Client, work_id string) ([]byte, int) {
if err != nil {
panic(err)
}
visitorId := "-1"
token := ""
if os.Getenv("HSJ_USERID") != "" {
visitorId = os.Getenv("HSJ_USERID")
if visitorId == "random" {
if cur_fake_user_left.Before(time.Now()) { // rotate [1, 15] minutes
cur_fake_user_left = time.Now().Add(time.Duration(rand.Intn(15)) * time.Minute)
// random [30000000, 40000000]
cur_fake_user_id = rand.Intn(40000000-30000000) + 30000000
}
visitorId = fmt.Sprintf("%d", cur_fake_user_id)
}
// fake token = md5(visitorId + "huashijie")
md5hash := md5.New()
md5hash.Write([]byte(visitorId + "huashijie"))
token = fmt.Sprintf("%x", md5hash.Sum(nil))
Logger.Println("USERID:", visitorId, "token:", token, "left", time.Until(cur_fake_user_left))
}
// q := req.URL.Query()
p := ""
// q.Add("visitorId", "-1")
p += "visitorId=-1"
p += "visitorId=" + visitorId
// q.Add("workId", work_id)
p += "&workId=" + work_id
// q.Add("cur_user_id", "-1")
p += "&cur_user_id=-1"
p += "&cur_user_id=" + visitorId
// q.Add("platform", "android")
p += "&platform=android"
os_version := rand.Intn(34-28) + 28
@ -86,7 +116,7 @@ func GetWorkDetailResponse(client http.Client, work_id string) ([]byte, int) {
// q.Add("device_model", device_model)
p += "&device_model=" + device_model
// q.Add("token", "")
p += "&token="
p += "&token=" + token
if os.Getenv("HSJ_ENDPOINT") == "pandapaint" {
// q.Add("channel", "Panda.main")