change name folder, project file optimization

This commit is contained in:
Данил 2023-03-18 16:40:05 +03:00
parent b9ffe9611e
commit 3463c8af8c
No known key found for this signature in database
GPG key ID: BB6531316DD682D0
9 changed files with 43 additions and 57 deletions

11
utils/connect.go Normal file
View file

@ -0,0 +1,11 @@
package utils
import "net/http"
func Connected() (ok bool) {
_, err := http.Get("http://clients3.google.com/generate_204")
if err != nil {
return false
}
return true
}

55
utils/createLnk.go Normal file
View file

@ -0,0 +1,55 @@
package utils
import (
"os"
"github.com/go-ole/go-ole"
"github.com/go-ole/go-ole/oleutil"
)
func CreateLnk(src, dst string) error {
err := ole.CoInitializeEx(0, ole.COINIT_APARTMENTTHREADED|ole.COINIT_SPEED_OVER_MEMORY)
if err != nil {
Logger(err.Error())
}
oleShellObject, err := oleutil.CreateObject("WScript.Shell")
if err != nil {
Logger(err.Error())
}
defer oleShellObject.Release()
wshell, err := oleShellObject.QueryInterface(ole.IID_IDispatch)
if err != nil {
Logger(err.Error())
}
defer wshell.Release()
cs, err := oleutil.CallMethod(wshell, "CreateShortcut", dst)
if err != nil {
Logger(err.Error())
}
idispatch := cs.ToIDispatch()
_, err = oleutil.PutProperty(idispatch, "TargetPath", src)
if err != nil {
Logger(err.Error())
}
dir, err := os.Getwd()
if err != nil {
Logger(err.Error())
}
_, err = oleutil.PutProperty(idispatch, "WorkingDirectory", dir)
if err != nil {
Logger(err.Error())
}
_, err = oleutil.CallMethod(idispatch, "Save")
if err != nil {
Logger(err.Error())
}
return nil
}

74
utils/database.go Normal file
View file

@ -0,0 +1,74 @@
package utils
import (
"database/sql"
_ "github.com/mattn/go-sqlite3"
)
func Database() {
db, err := sql.Open("sqlite3", "EveryNasa.db")
if err != nil {
Logger(err.Error())
}
if !TableExists(db, "settings") {
sqlTable := `
CREATE TABLE IF NOT EXISTS settings (
startup INTEGER DEFAULT 0,
wallpaper INTEGER DEFAULT 0,
save_logg INTEGER DEFAULT 1
);`
_, err = db.Exec(sqlTable)
if err != nil {
Logger(err.Error())
}
stmt, err := db.Prepare("INSERT INTO settings(startup, wallpaper, save_logg) values(?,?,?)")
if err != nil {
Logger(err.Error())
}
_, err = stmt.Exec(0, 0, 1)
if err != nil {
Logger(err.Error())
}
}
if !TableExists(db, "favorite") {
sqlTable := `
CREATE TABLE IF NOT EXISTS favorite (
title TEXT,
explanation TEXT,
copyright TEXT,
date TEXT,
url TEXT,
hdurl TEXT,
media_type TEXT
);`
_, err = db.Exec(sqlTable)
if err != nil {
Logger(err.Error())
}
}
}
func GetDatabase() *sql.DB {
db, err := sql.Open("sqlite3", "EveryNasa.db")
if err != nil {
Logger(err.Error())
}
return db
}
func TableExists(db *sql.DB, name string) bool {
var exists bool
err := db.QueryRow("SELECT EXISTS(SELECT name FROM sqlite_master WHERE type='table' AND name=?)", name).Scan(&exists)
if err != nil {
Logger(err.Error())
}
return exists
}

19
utils/respondAPI.go Normal file
View file

@ -0,0 +1,19 @@
package utils
import (
"encoding/json"
"github.com/gofiber/fiber/v2"
)
func Message(status bool, message string) map[string]interface{} {
return map[string]interface{}{"status": status, "message": message}
}
func Respond(c *fiber.Ctx, data map[string]interface{}) {
c.Set("Content-Type", "application/json")
err := json.NewEncoder(c).Encode(data)
if err != nil {
Logger(err.Error())
}
}

108
utils/wallpaper.go Normal file
View file

@ -0,0 +1,108 @@
package utils
import (
"encoding/json"
"time"
"github.com/jasonlvhit/gocron"
"github.com/reujab/wallpaper"
"github.com/rodkranz/fetch"
)
func GetWallpaper(date string) string {
type WallpaperStruct struct {
Hdurl string `json:"hdurl"`
Url string `json:"url"`
Media_type string `json:"media_type"`
}
client := fetch.NewDefault()
res, err := client.Get("https://api.nasa.gov/planetary/apod?api_key=1gI9G84ZafKDEnrbydviGknReOGiVK9jqrQBE3et&date="+
date,
nil)
if err != nil {
Logger(err.Error())
}
body, err := res.ToString()
if err != nil {
Logger(err.Error())
}
var Wallpaper WallpaperStruct
err = json.Unmarshal([]byte(body), &Wallpaper)
if err != nil {
Logger(err.Error())
}
if Wallpaper.Media_type == "video" {
return "https://img.youtube.com/vi/" + Wallpaper.Url[30:41] + "/maxresdefault.jpg"
}
return Wallpaper.Hdurl
}
func SetWallpaper() {
times := time.Now()
t := time.Date(times.Year(),
times.Month(),
times.Day(),
times.Hour(),
times.Minute(),
times.Second(),
times.Nanosecond(),
time.UTC)
err := wallpaper.SetFromURL(GetWallpaper(t.Format("2006-01-02")))
if err != nil {
t = t.AddDate(0, 0, -1)
err = wallpaper.SetFromURL(GetWallpaper(t.Format("2006-01-02")))
if err != nil {
Logger(err.Error())
}
}
}
func StartWallpaper() {
type Autostart struct {
Wallpaper int `json:"wallpaper"`
}
client := fetch.NewDefault()
res, err := client.Get("http://localhost:3000/api/get/settings", nil)
if err != nil {
Logger(err.Error())
}
body, err := res.ToString()
if err != nil {
Logger(err.Error())
}
var AutostartSetWallpaper Autostart
err = json.Unmarshal([]byte(body), &AutostartSetWallpaper)
if err != nil {
Logger(err.Error())
}
if AutostartSetWallpaper.Wallpaper == 1 {
times := time.Now()
t := time.Date(times.Year(),
times.Month(),
times.Day(),
4,
50,
times.Second(),
times.Nanosecond(),
time.UTC)
SetWallpaper()
err = gocron.Every(1).Day().From(&t).Do(SetWallpaper)
if err != nil {
Logger(err.Error())
}
gocron.Start()
}
}