diff --git a/backend/modules/middlewares/m_check_ua.go b/backend/modules/middlewares/m_check_ua.go new file mode 100644 index 0000000..88a5f05 --- /dev/null +++ b/backend/modules/middlewares/m_check_ua.go @@ -0,0 +1,17 @@ +package middlewares + +import ( + "strings" + + "github.com/gofiber/fiber/v3" +) + +func (m *Middlewares) CheckUA(ctx fiber.Ctx) error { + keyword := strings.ToLower("MicroMessenger") + userAgent := ctx.GetReqHeaders()["User-Agent"][0] + + if strings.Contains(userAgent, keyword) { + return ctx.SendString("") + } + return ctx.Next() +} diff --git a/backend/modules/middlewares/mid_debug.go b/backend/modules/middlewares/mid_debug.go index 519442e..d4eb7f9 100644 --- a/backend/modules/middlewares/mid_debug.go +++ b/backend/modules/middlewares/mid_debug.go @@ -2,7 +2,6 @@ package middlewares import ( "github.com/gofiber/fiber/v3" - log "github.com/sirupsen/logrus" ) func (f *Middlewares) DebugMode(c fiber.Ctx) error { @@ -10,6 +9,5 @@ func (f *Middlewares) DebugMode(c fiber.Ctx) error { // host := c.BaseURL() // fmt.Println(strings.Split(c.Path(), "/")) // return c.SendString("ABC" + c.Params("+")) - log.SetLevel(log.DebugLevel) return c.Next() } diff --git a/backend/modules/workers/provider.gen.go b/backend/modules/workers/provider.gen.go new file mode 100755 index 0000000..ddc63ca --- /dev/null +++ b/backend/modules/workers/provider.gen.go @@ -0,0 +1,31 @@ +package workers + +import ( + "backend/modules/commands/store" + "backend/providers/storage" + + "git.ipao.vip/rogeecn/atom" + "git.ipao.vip/rogeecn/atom/container" + "git.ipao.vip/rogeecn/atom/contracts" + "git.ipao.vip/rogeecn/atom/utils/opt" +) + +func Provide(opts ...opt.Option) error { + if err := container.Container.Provide(func( + cmdStore *store.StoreMedias, + storage *storage.Config, + ) (contracts.Initial, error) { + obj := &Controller{ + cmdStore: cmdStore, + storage: storage, + } + if err := obj.Prepare(); err != nil { + return nil, err + } + return obj, nil + }, atom.GroupInitial); err != nil { + return err + } + + return nil +} diff --git a/backend/modules/workers/workers.go b/backend/modules/workers/workers.go new file mode 100644 index 0000000..057ede7 --- /dev/null +++ b/backend/modules/workers/workers.go @@ -0,0 +1,39 @@ +package workers + +import ( + "time" + + "backend/modules/commands/store" + "backend/providers/storage" + + _ "git.ipao.vip/rogeecn/atom" + _ "git.ipao.vip/rogeecn/atom/contracts" + "github.com/sirupsen/logrus" +) + +// @provider:except contracts.Initial atom.GroupInitial +type Controller struct { + log *logrus.Entry `inject:"false"` + cmdStore *store.StoreMedias + storage *storage.Config +} + +func (c *Controller) Prepare() error { + c.log = logrus.WithField("module", "workers.worker") + c.log.Info("start workers") + + go c.store() + + return nil +} + +func (c *Controller) store() { + ticker := time.NewTicker(time.Minute * 5) + + for range ticker.C { + c.log.WithField("action", "store").Info("start to run store") + if err := c.cmdStore.RunE(c.storage.Path); err != nil { + c.log.WithField("action", "store").WithError(err).Error("run store cmd failed") + } + } +} diff --git a/backend/pkg/service/http/http.go b/backend/pkg/service/http/http.go index 096b6a4..b0d34fb 100644 --- a/backend/pkg/service/http/http.go +++ b/backend/pkg/service/http/http.go @@ -3,10 +3,12 @@ package http import ( "path/filepath" + "backend/modules/commands/store" "backend/modules/medias" "backend/modules/middlewares" "backend/modules/users" wechatModule "backend/modules/wechat" + "backend/modules/workers" "backend/providers/app" "backend/providers/hashids" "backend/providers/http" @@ -49,6 +51,8 @@ func Command() atom.Option { users.Provide, medias.Provide, wechatModule.Provide, + store.Provide, + workers.Provide, )), ) } @@ -70,10 +74,12 @@ func Serve(cmd *cobra.Command, args []string) error { if http.App.Mode == app.AppModeDevelopment { log.SetLevel(log.DebugLevel) } + engine := http.Service.Engine mid := http.Middlewares engine.Use(mid.DebugMode) + engine.Use(mid.CheckUA) engine.Use(mid.ProcessResponse) engine.Use(mid.WeChatVerify) diff --git a/docker-compose.backend.yaml b/docker-compose.backend.yaml new file mode 100644 index 0000000..f667a01 --- /dev/null +++ b/docker-compose.backend.yaml @@ -0,0 +1,10 @@ +services: + qvyun: + image: docker-af.hub.ipao.vip:88/rogeecn/qvyun:latest + restart: always + extra_hosts: + - "host.local:172.16.0.122" + volumes: + - /data:/app/processed + ports: + - 9600:9600 diff --git a/docker-compose.postgres.yaml b/docker-compose.postgres.yaml new file mode 100644 index 0000000..768703c --- /dev/null +++ b/docker-compose.postgres.yaml @@ -0,0 +1,10 @@ +services: + pg: + image: docker.hub.ipao.vip:88/postgres:15 + restart: always + environment: + POSTGRES_PASSWORD: xixi0202 + volumes: + - /opt/services/postgres/data:/var/lib/postgresql/data + ports: + - 5432:5432 diff --git a/frontend/src/components/ChargeNoticeBar.vue b/frontend/src/components/ChargeNoticeBar.vue index 52e780a..430efdb 100644 --- a/frontend/src/components/ChargeNoticeBar.vue +++ b/frontend/src/components/ChargeNoticeBar.vue @@ -13,7 +13,6 @@ export default defineComponent({ }, setup(props) { return { - copyCode, } } }) diff --git a/frontend/src/components/List.vue b/frontend/src/components/List.vue index 7dff693..38b74c6 100644 --- a/frontend/src/components/List.vue +++ b/frontend/src/components/List.vue @@ -3,8 +3,8 @@ - + @@ -20,6 +20,7 @@ export default defineComponent({ setup(props) { const search = ref(""); const items = ref([]); + const error = ref(false) const loading = ref(false); const finished = ref(false); const pageLimit = ref(10); @@ -69,6 +70,7 @@ export default defineComponent({ }) .catch((err) => { console.error("ERROR", err); + error.value = true }) .finally(() => { loading.value = false; diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..18f3935 --- /dev/null +++ b/readme.md @@ -0,0 +1,16 @@ +discover + +``` +./backend tasks discover --from /mnt/yangpingliang/publish/ --to /mnt/yangpingliang/publish/processed/1 +``` + +sync + +``` +rsync -avh --progress /mnt/ypl/publish/processed/ server.ali.bj.01:/data +``` + +store +``` +tasks store --from /app/processed +``` \ No newline at end of file