This commit is contained in:
im@fruw.org 2023-10-16 03:23:43 +06:00
parent fc9558bd8b
commit 77465da1d0
2 changed files with 56 additions and 58 deletions

BIN
banek Executable file

Binary file not shown.

114
main.go
View File

@ -40,7 +40,7 @@ var (
) )
const ( const (
version = "1.0.1" version = "1.0.2"
cyan = "\033[1;36m" cyan = "\033[1;36m"
reset = "\033[0m" reset = "\033[0m"
) )
@ -85,13 +85,13 @@ func main() {
err := loadMessages(content) err := loadMessages(content)
if err != nil { if err != nil {
fmt.Printf("Ошибка чтения %d: %d", content, err) fmt.Println("Ошибка чтения JSON:", err)
return return
} }
_, err = ioutil.ReadFile(html) _, err = ioutil.ReadFile(html)
if err != nil { if err != nil {
fmt.Printf("Ошибка чтения %d: %d", html, err) fmt.Println("Ошибка чтения HTML:", err)
return return
} }
@ -105,70 +105,68 @@ func main() {
http.ListenAndServe(fmt.Sprintf(":%d", port), nil) http.ListenAndServe(fmt.Sprintf(":%d", port), nil)
} }
func parseJSON() { func parseJSON() {
jsonData, err := ioutil.ReadFile(jsonParse) jsonData, err := ioutil.ReadFile(jsonParse)
if err != nil { if err != nil {
fmt.Println("Ошибка чтения %d: %d", content, err) fmt.Println("Ошибка чтения %d: %d", content, err)
return return
} }
var channel Channel var channel Channel
if err := json.Unmarshal(jsonData, &channel); err != nil { if err := json.Unmarshal(jsonData, &channel); err != nil {
fmt.Println("Ошибка парсинга JSON:", err) fmt.Println("Ошибка парсинга JSON:", err)
return return
} }
messageNumber := 1 messageNumber := 1
for i, message := range channel.Messages { for i, message := range channel.Messages {
if message.Text != nil { if message.Text != nil {
switch text := message.Text.(type) { switch text := message.Text.(type) {
case string: case string:
if text != "" { if text != "" {
channel.Messages[i].ID = messageNumber channel.Messages[i].ID = messageNumber
channel.Messages[i].Text = fmt.Sprintf("%s", text) channel.Messages[i].Text = fmt.Sprintf("%s", text)
messageNumber++ messageNumber++
} }
case []interface{}: case []interface{}:
var newText []string var newText []string
for _, item := range text { for _, item := range text {
if str, ok := item.(string); ok && str != "" { if str, ok := item.(string); ok && str != "" {
channel.Messages[i].ID = messageNumber channel.Messages[i].ID = messageNumber
newText = append(newText, str) newText = append(newText, str)
messageNumber++ messageNumber++
} }
} }
if len(newText) > 0 { if len(newText) > 0 {
channel.Messages[i].Text = strings.Join(newText, " ") channel.Messages[i].Text = strings.Join(newText, " ")
} }
} }
} }
} }
cleanedMessages := make([]Message, 0) cleanedMessages := make([]Message, 0)
for _, message := range channel.Messages { for _, message := range channel.Messages {
if message.Text != "" { if message.Text != "" {
cleanedMessages = append(cleanedMessages, message) cleanedMessages = append(cleanedMessages, message)
} }
} }
channel.Messages = cleanedMessages channel.Messages = cleanedMessages
formattedJSON, err := json.MarshalIndent(channel, "", " ") formattedJSON, err := json.MarshalIndent(channel, "", " ")
if err != nil { if err != nil {
fmt.Println("Ошибка форматирования JSON:", err) fmt.Println("Ошибка форматирования JSON:", err)
return return
} }
if err := ioutil.WriteFile(content, formattedJSON, 0644); err != nil { if err := ioutil.WriteFile(content, formattedJSON, 0644); err != nil {
fmt.Printf("Ошибка записи JSON файла %d: %d", content, err) fmt.Printf("Ошибка записи JSON файла %d: %d", content, err)
return return
} }
fmt.Println("JSON файл успешно записан по пути", content) fmt.Println("JSON файл успешно записан по пути", content)
return return
} }
func loadMessages(filename string) error { func loadMessages(filename string) error {
data, err := ioutil.ReadFile(filename) data, err := ioutil.ReadFile(filename)
if err != nil { if err != nil {