follow upstream update
All checks were successful
Gitea Go Release Actions / Release Go Binary (amd64, darwin) (push) Successful in 1m18s
Gitea Go Release Actions / Release Go Binary (amd64, windows) (push) Successful in 1m17s
Gitea Go Release Actions / Release Go Binary (amd64, linux) (push) Successful in 1m29s
Gitea Go Release Actions / Release Go Binary (arm64, darwin) (push) Successful in 1m12s
Gitea Go Release Actions / Release Go Binary (arm, linux) (push) Successful in 1m13s
Gitea Go Release Actions / Release Go Binary (arm64, linux) (push) Successful in 1m13s
Gitea Go Release Actions / Release Go Binary (mips, linux) (push) Successful in 1m7s
Gitea Go Release Actions / Release Go Binary (loong64, linux) (push) Successful in 1m12s
Gitea Go Release Actions / Release Go Binary (riscv64, linux) (push) Successful in 1m7s
All checks were successful
Gitea Go Release Actions / Release Go Binary (amd64, darwin) (push) Successful in 1m18s
Gitea Go Release Actions / Release Go Binary (amd64, windows) (push) Successful in 1m17s
Gitea Go Release Actions / Release Go Binary (amd64, linux) (push) Successful in 1m29s
Gitea Go Release Actions / Release Go Binary (arm64, darwin) (push) Successful in 1m12s
Gitea Go Release Actions / Release Go Binary (arm, linux) (push) Successful in 1m13s
Gitea Go Release Actions / Release Go Binary (arm64, linux) (push) Successful in 1m13s
Gitea Go Release Actions / Release Go Binary (mips, linux) (push) Successful in 1m7s
Gitea Go Release Actions / Release Go Binary (loong64, linux) (push) Successful in 1m12s
Gitea Go Release Actions / Release Go Binary (riscv64, linux) (push) Successful in 1m7s
This commit is contained in:
parent
fb9a1a0b98
commit
316ad15a55
@ -7,6 +7,7 @@ import (
|
||||
"net/http"
|
||||
"os"
|
||||
"os/signal"
|
||||
"runtime/debug"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
@ -49,15 +50,38 @@ func init() {
|
||||
Logger = log.New(os.Stdout, "["+project_id+"] ", log.Ldate|log.Ltime|log.Lmsgprefix)
|
||||
}
|
||||
|
||||
var custom_delay_lock = sync.Mutex{}
|
||||
|
||||
func panicDelyRecoverExit() {
|
||||
if r := recover(); r != nil {
|
||||
Logger.Println("Panic:", r)
|
||||
Logger.Println("debug.Stack():", string(debug.Stack()))
|
||||
Logger.Println("Sleep 60s before exit...")
|
||||
time.Sleep(60 * time.Second)
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
// ClaimTask 并把任务放入 task_chan
|
||||
func claimWorker(i int, tracker *savewebtracker.Tracker) {
|
||||
Logger.Println("[START] ClaimWorker", i)
|
||||
defer Logger.Println("[STOP] ClaimWorker", i, " exited...")
|
||||
defer WaitClaimWorker.Done()
|
||||
defer panicDelyRecoverExit()
|
||||
for {
|
||||
if Interrupted {
|
||||
return
|
||||
}
|
||||
if os.Getenv("CUSTOM_DELAY") != "" {
|
||||
custom_delay_lock.Lock()
|
||||
// xxxms
|
||||
custom_delay, _ := time.ParseDuration(os.Getenv("CUSTOM_DELAY"))
|
||||
Logger.Println("Custom delay:", custom_delay, "...")
|
||||
time.Sleep(custom_delay)
|
||||
custom_delay_lock.Unlock()
|
||||
|
||||
WITH_DELAY = false
|
||||
}
|
||||
task := tracker.ClaimTask(WITH_DELAY)
|
||||
if task == nil {
|
||||
notask_sleep := max(
|
||||
@ -77,6 +101,7 @@ func ProcesserWorker(i int, tracker *savewebtracker.Tracker) {
|
||||
Logger.Println("[START] ProcesserWorker", i)
|
||||
defer Logger.Println("[STOP] ProcesserWorker", i, " exited...")
|
||||
defer WaitProcesserWorker.Done()
|
||||
defer panicDelyRecoverExit()
|
||||
for task := range tasks_chan {
|
||||
Logger.Println("Processing task", task.Id)
|
||||
|
||||
@ -173,7 +198,7 @@ func ShowStatus(t *savewebtracker.Tracker) {
|
||||
}
|
||||
|
||||
func main() {
|
||||
tracker := savewebtracker.GetTracker(project_id, "0.4", savewebtracker.Archivist())
|
||||
tracker := savewebtracker.GetTracker(project_id, "0.5", savewebtracker.Archivist())
|
||||
tracker.PING_client = GetRetryableHttpClient(10*time.Second, DEBUG)
|
||||
tracker.HTTP_client = GetRetryableHttpClient(10*time.Second, DEBUG)
|
||||
tracker.SelectBestTracker().StartSelectTrackerBackground().StartFetchProjectBackground()
|
||||
@ -181,6 +206,11 @@ func main() {
|
||||
go InterruptHandler()
|
||||
go ShowStatus(tracker)
|
||||
|
||||
time.Sleep(3 * time.Second)
|
||||
Logger.Println("force sleep 10s before start...")
|
||||
time.Sleep(7 * time.Second)
|
||||
Logger.Println("start...")
|
||||
|
||||
huashijie_api.EnsureConnection(*tracker.HTTP_client)
|
||||
|
||||
Logger.Println("-- Start --")
|
||||
|
@ -35,7 +35,7 @@ func EnsureConnection(client http.Client) {
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
req.Header.Add("Referer", "https://app.huashijie.art/")
|
||||
// req.Header.Add("Referer", "https://app.huashijie.art/")
|
||||
req.Header.Add("User-Agent", "Dalvik/2.1.0 (Linux; U; Android 9; MI 8 SE MIUI/V12.0.2.0.PEBCNXM)")
|
||||
|
||||
resp, err := client.Do(req)
|
||||
@ -55,7 +55,7 @@ func EnsureConnection(client http.Client) {
|
||||
}
|
||||
|
||||
// 125277547
|
||||
body, r_status := GetWorkDetailResponse(client, "125277547")
|
||||
body, r_status := GetWorkDetailResponse(client, "129107778")
|
||||
|
||||
if r_status != 200 {
|
||||
Logger.Println("HTTP status code:", r_status, "body:", string(body))
|
||||
@ -69,6 +69,11 @@ func EnsureConnection(client http.Client) {
|
||||
panic("failed to parse JSON: " + string(body))
|
||||
}
|
||||
|
||||
if !strings.Contains(string(body), "要你管啦离人家远远") {
|
||||
Logger.Println("JSON:", string(body))
|
||||
Logger.Panicln("assertion failed: body not contains '要你管啦离人家远远'")
|
||||
}
|
||||
|
||||
// check if 'status' in r_json
|
||||
if status, ok := r_json["status"]; ok {
|
||||
switch status := status.(type) {
|
||||
@ -127,9 +132,9 @@ func GetWorkDetailResponse(client http.Client, work_id string) ([]byte, int) {
|
||||
p += fmt.Sprintf("&os_version=%d", os_version)
|
||||
|
||||
if os.Getenv("HSJ_ENDPOINT") == "pandapaint" {
|
||||
p += "&version_code=168"
|
||||
p += "&version_code=170"
|
||||
} else {
|
||||
p += "&version_code=241"
|
||||
p += "&version_code=247"
|
||||
}
|
||||
|
||||
p += "&device_brand=xiaomi"
|
||||
|
Loading…
Reference in New Issue
Block a user