++
This commit is contained in:
+65
@@ -0,0 +1,65 @@
|
||||
.DS_Store
|
||||
# Byte-compiled / optimized / DLL files
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
|
||||
# C extensions
|
||||
*.so
|
||||
|
||||
# Distribution / packaging
|
||||
.Python
|
||||
env/
|
||||
build/
|
||||
develop-eggs/
|
||||
dist/
|
||||
downloads/
|
||||
eggs/
|
||||
.eggs/
|
||||
lib/
|
||||
lib64/
|
||||
parts/
|
||||
sdist/
|
||||
var/
|
||||
*.egg-info/
|
||||
.installed.cfg
|
||||
*.egg
|
||||
.idea/*
|
||||
xml_files/
|
||||
|
||||
# PyInstaller
|
||||
# Usually these files are written by a python script from a template
|
||||
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||
*.manifest
|
||||
*.spec
|
||||
|
||||
# Installer logs
|
||||
pip-log.txt
|
||||
pip-delete-this-directory.txt
|
||||
|
||||
# Unit test / coverage reports
|
||||
htmlcov/
|
||||
.tox/
|
||||
.coverage
|
||||
.coverage.*
|
||||
.cache
|
||||
nosetests.xml
|
||||
coverage.xml
|
||||
*,cover
|
||||
|
||||
# Translations
|
||||
*.mo
|
||||
*.pot
|
||||
|
||||
# Django stuff:
|
||||
*.log
|
||||
|
||||
# Sphinx documentation
|
||||
docs/_build/
|
||||
|
||||
# PyBuilder
|
||||
target/
|
||||
|
||||
other/split_clash_config/split_config
|
||||
ai_news/save_data
|
||||
daily/*.txt
|
||||
@@ -0,0 +1,48 @@
|
||||
syntax = "v1"
|
||||
|
||||
info(
|
||||
title: "HD4K漫画下载服务"
|
||||
desc: "下载HD4K漫画图片的API服务"
|
||||
author: "hd4k-downloader"
|
||||
version: "v1.0.0"
|
||||
)
|
||||
|
||||
type (
|
||||
// 下载请求
|
||||
DownloadRequest {
|
||||
Title string `json:"title"`
|
||||
Imgs map[string]string `json:"imgs"`
|
||||
}
|
||||
|
||||
// 下载进度详情
|
||||
ProgressDetail {
|
||||
Key string `json:"key"`
|
||||
URL string `json:"url"`
|
||||
Status string `json:"status"`
|
||||
Message string `json:"message"`
|
||||
SavedAs string `json:"saved_as,optional"`
|
||||
}
|
||||
|
||||
// 下载响应
|
||||
DownloadResponse {
|
||||
Success bool `json:"success"`
|
||||
Message string `json:"message"`
|
||||
Title string `json:"title"`
|
||||
Folder string `json:"folder"`
|
||||
JsonPath string `json:"json_path"`
|
||||
Total int `json:"total"`
|
||||
Saved int `json:"saved"`
|
||||
Skipped int `json:"skipped"`
|
||||
Failed int `json:"failed"`
|
||||
Details []ProgressDetail `json:"details"`
|
||||
}
|
||||
)
|
||||
|
||||
@server(
|
||||
middleware: Cors
|
||||
timeout: 300000ms # 添加时间单位ms
|
||||
)
|
||||
service hd4k_downloader {
|
||||
@handler SaveImages
|
||||
post /api/save_imgs (DownloadRequest) returns (DownloadResponse)
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
Name: hd4k_downloader
|
||||
Host: 0.0.0.0
|
||||
Port: 8888
|
||||
@@ -0,0 +1,5 @@
|
||||
module hd4k-downloader
|
||||
|
||||
go 1.24.7
|
||||
|
||||
require github.com/zeromicro/go-zero v1.9.3 // indirect
|
||||
@@ -0,0 +1,2 @@
|
||||
github.com/zeromicro/go-zero v1.9.3 h1:dJ568uUoRJY0RUxo4aH4htSglbEUF60WiM1MZVkTK9A=
|
||||
github.com/zeromicro/go-zero v1.9.3/go.mod h1:JBAtfXQvErk+V7pxzcySR0mW6m2I4KPhNQZGASltDRQ=
|
||||
@@ -0,0 +1,34 @@
|
||||
// Code scaffolded by goctl. Safe to edit.
|
||||
// goctl 1.9.2
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
|
||||
"hd4k-downloader/internal/config"
|
||||
"hd4k-downloader/internal/handler"
|
||||
"hd4k-downloader/internal/svc"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/conf"
|
||||
"github.com/zeromicro/go-zero/rest"
|
||||
)
|
||||
|
||||
var configFile = flag.String("f", "etc/hd4kdownloader.yaml", "the config file")
|
||||
|
||||
func main() {
|
||||
flag.Parse()
|
||||
|
||||
var c config.Config
|
||||
conf.MustLoad(*configFile, &c)
|
||||
|
||||
server := rest.MustNewServer(c.RestConf)
|
||||
defer server.Stop()
|
||||
|
||||
ctx := svc.NewServiceContext(c)
|
||||
handler.RegisterHandlers(server, ctx)
|
||||
|
||||
fmt.Printf("Starting server at %s:%d...\n", c.Host, c.Port)
|
||||
server.Start()
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
// Code scaffolded by goctl. Safe to edit.
|
||||
// goctl 1.9.2
|
||||
|
||||
package config
|
||||
|
||||
import "github.com/zeromicro/go-zero/rest"
|
||||
|
||||
type Config struct {
|
||||
rest.RestConf
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
// Code scaffolded by goctl. Safe to edit.
|
||||
// goctl 1.9.2
|
||||
|
||||
package svc
|
||||
|
||||
import (
|
||||
"github.com/zeromicro/go-zero/rest"
|
||||
"hd4k-downloader/internal/config"
|
||||
"hd4k-downloader/internal/middleware"
|
||||
)
|
||||
|
||||
type ServiceContext struct {
|
||||
Config config.Config
|
||||
Cors rest.Middleware
|
||||
}
|
||||
|
||||
func NewServiceContext(c config.Config) *ServiceContext {
|
||||
return &ServiceContext{
|
||||
Config: c,
|
||||
Cors: middleware.NewCorsMiddleware().Handle,
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
// Code generated by goctl. DO NOT EDIT.
|
||||
// goctl 1.9.2
|
||||
|
||||
package types
|
||||
|
||||
type DownloadRequest struct {
|
||||
Title string `json:"title"`
|
||||
Imgs map[string]string `json:"imgs"`
|
||||
}
|
||||
|
||||
type DownloadResponse struct {
|
||||
Success bool `json:"success"`
|
||||
Message string `json:"message"`
|
||||
Title string `json:"title"`
|
||||
Folder string `json:"folder"`
|
||||
JsonPath string `json:"json_path"`
|
||||
Total int `json:"total"`
|
||||
Saved int `json:"saved"`
|
||||
Skipped int `json:"skipped"`
|
||||
Failed int `json:"failed"`
|
||||
Details []ProgressDetail `json:"details"`
|
||||
}
|
||||
|
||||
type ProgressDetail struct {
|
||||
Key string `json:"key"`
|
||||
URL string `json:"url"`
|
||||
Status string `json:"status"`
|
||||
Message string `json:"message"`
|
||||
SavedAs string `json:"saved_as,optional"`
|
||||
}
|
||||
Reference in New Issue
Block a user