mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-09-29 14:06:36 +08:00
63cd906cfc
- Merge all files inside openflare-server to the repository root directory. - Relocate agent, relay, and flared subprojects from internal/ to internal/apps/. - Combine docker-compose files and update build context paths to root. - Update GitHub workflows and Dockerfiles to refer to new directories and package names. - Rewrite Go package imports across all files. - Resolve database renew test race condition and clean up docs.
58 lines
1.6 KiB
Go
58 lines
1.6 KiB
Go
// Copyright 2025 linux.do
|
|
// Copyright 2026 Arctel.net
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
// Package config 提供公开配置查询接口
|
|
package config
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"github.com/Rain-kl/Wavelet/internal/model"
|
|
"github.com/Rain-kl/Wavelet/internal/repository"
|
|
"github.com/gin-gonic/gin"
|
|
|
|
"github.com/Rain-kl/Wavelet/internal/common/response"
|
|
)
|
|
|
|
// GetPublicConfig 获取公共配置
|
|
// @Summary 获取公共配置
|
|
// @Description 返回系统配置表中 visibility 为 1 的配置键值集合
|
|
// @Tags config
|
|
// @Accept json
|
|
// @Produce json
|
|
// @Success 200 {object} response.Any
|
|
// @Router /api/v1/config/public [get]
|
|
func GetPublicConfig(c *gin.Context) {
|
|
ctx := c.Request.Context()
|
|
configs, err := repository.ListVisibleSystemConfigs(ctx)
|
|
if err != nil {
|
|
response.AbortInternal(c, err.Error())
|
|
return
|
|
}
|
|
|
|
resp := make(map[string]string, len(configs))
|
|
for _, config := range configs {
|
|
resp[config.Key] = config.Value
|
|
}
|
|
|
|
c.JSON(http.StatusOK, response.OK(resp))
|
|
}
|
|
|
|
// GetRobotsTXT 动态生成 robots.txt
|
|
// @Summary 获取 robots.txt
|
|
// @Description 根据系统配置决定是否允许搜索引擎检索,并返回相应的 robots.txt 文件内容
|
|
// @Tags config
|
|
// @Produce text/plain
|
|
// @Success 200 {string} string "robots.txt 内容"
|
|
// @Router /robots.txt [get]
|
|
func GetRobotsTXT(c *gin.Context) {
|
|
ctx := c.Request.Context()
|
|
enabled, err := repository.GetBoolByKey(ctx, model.ConfigKeySearchEngineIndexingEnabled)
|
|
content := "User-Agent: *\nDisallow: /\n"
|
|
if err == nil && enabled {
|
|
content = "User-Agent: *\nAllow: /\n"
|
|
}
|
|
c.Data(http.StatusOK, "text/plain; charset=utf-8", []byte(content))
|
|
}
|