mirror of
https://github.com/teacat/chaturbate-dvr.git
synced 2025-10-29 16:59:59 +00:00
Updates and refactors
Channel_file.go - fix issue with segments not correctly ending when they were supposed to Log_type.go - moved log type to it's own file, setup global logging (touches on issue #47) Main.go - added update_log_level handler, setting global log level Channel.go, channel_internal.go, channel_util.go - updated to use new log_type Manager.go - updated to use new log_type, update from .com to .global (issue #74) Channel_update.go, create_channel.go, delete_channel.go, get_channel.go, get_settings.go, listen_update.go, pause_channel.go, resume_channel.go, terminal_program.go - go fmt / go vet Chaturbate_channels.json.sample - added sample json of the channels file, for mapping in docker config List_channels.go - refactored to sort by online status, so online is always at the first ones you see Script.js - adjust default settings, added pagination, added global log logic Index.html - updated to use online version of tocas ui, added pagination, added global log logic, visual improvements Removal of local tocas folder since using online version
This commit is contained in:
120
handler/update_log_level.go
Normal file
120
handler/update_log_level.go
Normal file
@@ -0,0 +1,120 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"log"
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/gin-gonic/gin/binding"
|
||||
"github.com/go-playground/validator/v10"
|
||||
"github.com/teacat/chaturbate-dvr/chaturbate"
|
||||
"github.com/urfave/cli/v2"
|
||||
)
|
||||
|
||||
type UpdateLogLevelHandler struct {
|
||||
cli *cli.Context
|
||||
}
|
||||
|
||||
// Custom validator for LogType
|
||||
func LogTypeValidator(fl validator.FieldLevel) bool {
|
||||
value := fl.Field().String()
|
||||
switch value {
|
||||
case string(chaturbate.LogTypeDebug), string(chaturbate.LogTypeInfo), string(chaturbate.LogTypeWarning), string(chaturbate.LogTypeError):
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func init() {
|
||||
if v, ok := binding.Validator.Engine().(*validator.Validate); ok {
|
||||
v.RegisterValidation("logtype", LogTypeValidator)
|
||||
}
|
||||
}
|
||||
|
||||
func NewUpdateLogLevelHandler(cli *cli.Context) *UpdateLogLevelHandler {
|
||||
return &UpdateLogLevelHandler{cli}
|
||||
}
|
||||
|
||||
func (h *UpdateLogLevelHandler) Handle(c *gin.Context) {
|
||||
var req chaturbate.LogLevelRequest
|
||||
|
||||
// Bind and validate the request body
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"error": "Invalid request format. Expected {\"log_level\": \"INFO\"}",
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
// Use the correct log type for setting the global log level
|
||||
chaturbate.SetGlobalLogLevel(req.LogLevel)
|
||||
|
||||
log.Printf("Global log level updated to: %s", req.LogLevel)
|
||||
|
||||
// Send success response
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"message": "Log level updated",
|
||||
"log_level": req.LogLevel,
|
||||
})
|
||||
}
|
||||
|
||||
// func (h *UpdateLogLevelHandler) Handle(c *gin.Context) {
|
||||
// // Read the raw request body for debugging
|
||||
// bodyBytes, err := c.GetRawData()
|
||||
// if err != nil {
|
||||
// log.Printf("Error reading request body: %v", err)
|
||||
// c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid request format"})
|
||||
// return
|
||||
// }
|
||||
|
||||
// // Log the raw request body
|
||||
// log.Printf("Received raw request body: %s", string(bodyBytes))
|
||||
|
||||
// // Reset the request body so it can be re-read by ShouldBindJSON
|
||||
// c.Request.Body = ioutil.NopCloser(strings.NewReader(string(bodyBytes)))
|
||||
|
||||
// // Attempt to bind the JSON to the struct
|
||||
// var req LogLevelRequest
|
||||
// if err := c.ShouldBindJSON(&req); err != nil {
|
||||
// log.Printf("Error binding JSON: %v", err)
|
||||
// c.JSON(http.StatusBadRequest, gin.H{
|
||||
// "error": "Invalid request format. Expected {\"log_level\": \"INFO\"}",
|
||||
// })
|
||||
// return
|
||||
// }
|
||||
|
||||
// // Log the updated log level
|
||||
// log.Printf("Log level updated to: %s", req.LogLevel)
|
||||
|
||||
// // Store the log level in the CLI context if needed
|
||||
// h.cli.Set("log_level", string(req.LogLevel))
|
||||
|
||||
// // Send success response
|
||||
// c.JSON(http.StatusOK, gin.H{
|
||||
// "message": "Log level updated",
|
||||
// "log_level": req.LogLevel,
|
||||
// })
|
||||
// }
|
||||
|
||||
// NewUpdateLogLevelHandler creates a handler for updating log level.
|
||||
// func NewUpdateLogLevelHandler(c *cli.Context) gin.HandlerFunc {
|
||||
// return func(ctx *gin.Context) {
|
||||
// var req LogLevelRequest
|
||||
|
||||
// // Bind and validate request body
|
||||
// if err := ctx.ShouldBindJSON(&req); err != nil {
|
||||
// ctx.JSON(http.StatusBadRequest, gin.H{"error": "Invalid request format"})
|
||||
// return
|
||||
// }
|
||||
|
||||
// if !allowedLogLevels[req.LogLevel] {
|
||||
// ctx.JSON(http.StatusBadRequest, gin.H{"error": "Invalid log level"})
|
||||
// return
|
||||
// }
|
||||
|
||||
// ctx.JSON(http.StatusOK, gin.H{
|
||||
// "message": "Log level updated",
|
||||
// "log_level": req.LogLevel,
|
||||
// })
|
||||
// }
|
||||
// }
|
||||
Reference in New Issue
Block a user