workign on the yamls

This commit is contained in:
2024-06-30 15:36:33 +03:00
parent 9a716d8b54
commit e430bfa01f
9 changed files with 143 additions and 35 deletions

View File

@@ -3,29 +3,29 @@ package main
import (
"crypto/sha256"
"database/sql"
"encoding/hex"
"fmt"
"html/template"
"log/slog"
"net/http"
"os"
"os/exec"
"encoding/hex"
"regexp"
"runtime"
"strconv"
"strings"
"html/template"
_ "modernc.org/sqlite"
)
type jsonStruct struct {
Vendor string
Package string
Version string
Type string
Location string
Checksum string
Url string
Vendor string
Package string
Version string
Type string
Location string
Checksum string
Url string
}
// packages struct represents a package with its details.
@@ -38,6 +38,18 @@ type packages struct {
Warning bool
Element *elements
}
type yaml struct {
PID string
VER string
TYPE string
URL string
HASH string
PUB string
NAME string
INIT string
LOCATION string
FILELOCATION string
}
// ConvertStringsToPackage converts a slice of strings to a packages struct.
// It returns an error if the input slice does not have exactly 6 elements or if the Warning value cannot be parsed as a boolean.
@@ -145,14 +157,14 @@ func getVendor(data map[string]string) string {
for key, val := range data {
switch key {
case "Author":
return strings.ToLower(strings.Replace(val," ","",-1))
return strings.ToLower(strings.Replace(val, " ", "", -1))
case "Company Name":
return strings.ToLower(strings.Replace(val," ","",-1))
return strings.ToLower(strings.Replace(val, " ", "", -1))
case "Manufacturer":
return strings.ToLower(strings.Replace(val," ","",-1))
return strings.ToLower(strings.Replace(val, " ", "", -1))
case "Publisher":
return strings.ToLower(strings.Replace(val," ","",-1))
return strings.ToLower(strings.Replace(val, " ", "", -1))
}
}
@@ -162,32 +174,32 @@ func getProgram(data map[string]string) string {
for key, val := range data {
switch key {
case "Title":
return strings.ToLower(strings.Replace(val," ","",-1))
return strings.ToLower(strings.Replace(val, " ", "", -1))
case "Product Name":
return strings.ToLower(strings.Replace(val," ","",-1))
return strings.ToLower(strings.Replace(val, " ", "", -1))
case "ProductName":
return strings.ToLower(strings.Replace(val," ","",-1))
return strings.ToLower(strings.Replace(val, " ", "", -1))
case "Subject":
return strings.ToLower(strings.Replace(val," ","",-1))
return strings.ToLower(strings.Replace(val, " ", "", -1))
}
}
return ""
}
func getVersion(data map[string]string) string {
replacer:=regexp.MustCompile(`[, ]+`)
replacer := regexp.MustCompile(`[, ]+`)
for key, val := range data {
switch key {
case "Version":
return replacer.ReplaceAllString(val,".")
return replacer.ReplaceAllString(val, ".")
case "Product Version":
return replacer.ReplaceAllString(val,".")
return replacer.ReplaceAllString(val, ".")
case "ProductVersion":
return replacer.ReplaceAllString(val,".")
return replacer.ReplaceAllString(val, ".")
case "File Version":
return replacer.ReplaceAllString(val,".")
return replacer.ReplaceAllString(val, ".")
case "FileVersion":
return replacer.ReplaceAllString(val,".")
return replacer.ReplaceAllString(val, ".")
}
}
return ""
@@ -198,7 +210,7 @@ func detectProblems(data map[string]string) bool {
if !err || (exe == "exe" && !(mime == "application/octet-stream")) {
return false
}
if (exe != "msi" && exe != "exe" && exe != "zip") {
if exe != "msi" && exe != "exe" && exe != "zip" {
return false
}
return true
@@ -232,14 +244,14 @@ func moveToNewLocationAndName(data map[string]string) string {
func createObject(object map[string]string) jsonStruct {
if detectProblems(object) {
prop := jsonStruct{
Vendor: getVendor(object) ,
Package: getProgram(object),
Version: getVersion(object),
Type: getInstallerType(object),
Vendor: getVendor(object),
Package: getProgram(object),
Version: getVersion(object),
Type: getInstallerType(object),
}
loc, _ := os.ReadFile(object["Directory"] + "/" + object["File Name"])
chksum:=sha256.Sum256(loc)
chksum := sha256.Sum256(loc)
prop.Checksum = hex.EncodeToString(chksum[:])
lc := moveToNewLocationAndName(object)
prop.Url = os.Getenv("uri") + lc
@@ -267,11 +279,11 @@ func getJson(sqldb *sql.DB) http.Handler {
if err != nil {
slog.Error(err.Error())
}
temp,err:=template.ParseFiles("html/lastob.json")
temp, err := template.ParseFiles("html/lastob.json")
if err != nil {
slog.Error(err.Error())
}
err=temp.ExecuteTemplate(res, "main", jsonelement)
err = temp.ExecuteTemplate(res, "main", jsonelement)
if err != nil {
slog.Error(err.Error())
}