Исправил загрузку файлов (сравнение контрольных сумм)

This commit is contained in:
Sergey Kalinin
2025-12-11 18:32:48 +03:00
parent 88e5119dec
commit cee3178af5

34
main.go
View File

@@ -7,26 +7,26 @@
package main
import (
"crypto/sha256"
"encoding/hex"
"encoding/json"
"fmt"
"html/template"
"io"
"log"
"net"
"net/http"
"os"
"path/filepath"
"strings"
"sync"
"os"
"io"
"path/filepath"
"fmt"
"time"
"sync"
"encoding/hex"
"crypto/sha256"
"github.com/go-co-op/gocron"
"github.com/gorilla/mux"
"github.com/likexian/whois"
"github.com/oschwald/geoip2-golang"
"golang.org/x/text/language"
"github.com/likexian/whois"
"github.com/go-co-op/gocron"
)
type GeoData struct {
@@ -93,6 +93,8 @@ var (
dbFilesVersion string
)
func main() {
var err error
// Загрузка конфигурации
@@ -163,7 +165,6 @@ func getFileModTime(filePath string) string {
// fmt.Printf("Форматированное время: %s\n", modTime.Format("02/01/2006 15:04:05"))
return modTime.Format("02/01/2006 15:04:05")
}
// reopenDBs закрывает и заново открывает нужную БД
func reopenDBs(fileName string) {
dbMutex.Lock()
@@ -362,6 +363,7 @@ func getPreferredLocale(r *http.Request) string {
return "en"
}
func sendJSONResponse(w http.ResponseWriter, data interface{}) {
w.Header().Set("Content-Type", "application/json; charset=utf-8")
w.Header().Set("Access-Control-Allow-Origin", "*")
@@ -569,6 +571,7 @@ func getWhoIsInfo(address string) string {
return "WhoIs request error"
}
return result
}
@@ -590,6 +593,7 @@ func getEnv(key, defaultValue string) string {
return defaultValue
}
// Запуск задания скачивания файлов
func sheduler() {
// инициализируем объект планировщика
@@ -667,9 +671,12 @@ func getRemoteChecksum(url string) string {
if err != nil {
return ""
}
// Так как запрос возвращает сумму и путь к файлу то
// разбиваем строку на массив и берем первый элемент
words := strings.Fields(string(body))
checkSum := words[0]
// Предполагаем, что файл содержит только хеш
return strings.TrimSpace(string(body))
return strings.TrimSpace(checkSum)
}
func shouldDownload(fileName string) bool {
@@ -704,7 +711,7 @@ func shouldDownload(fileName string) bool {
fmt.Println(remoteFileChecksum)
fmt.Println(localFileChecksum)
if localFileChecksum != remoteFileChecksum {
return false
return true
}
}
} else {
@@ -716,7 +723,6 @@ func shouldDownload(fileName string) bool {
return false
}
// Загрузка файлов БД с ВЭБ-сервера
func mmdbDownload(fileName string) {
fileURL := cfg.MMDBURL + fileName