package handler import ( "net/http" "github.com/gin-gonic/gin" ) // TimelineFromGit 从 Git commits 页 URL 导入时间线条目(登录 + CSRF + 限流) func (h *Handlers) TimelineFromGit(c *gin.Context) { var req struct { URLs []string `json:"urls"` FollowPages *bool `json:"follow_pages"` } if err := c.ShouldBindJSON(&req); err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": "请求参数无效"}) return } follow := true if req.FollowPages != nil { follow = *req.FollowPages } result, err := h.Setting.ImportTimelineFromGit(req.URLs, follow) if err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) return } c.JSON(http.StatusOK, result) } // TimelineFromReleases 从 Git releases 页 URL 导入时间线条目(登录 + CSRF + 限流) func (h *Handlers) TimelineFromReleases(c *gin.Context) { var req struct { URLs []string `json:"urls"` } if err := c.ShouldBindJSON(&req); err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": "请求参数无效"}) return } result, err := h.Setting.ImportTimelineFromReleases(req.URLs) if err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) return } c.JSON(http.StatusOK, result) }