diff --git a/.air.toml b/.air.toml new file mode 100644 index 0000000..61c6b0f --- /dev/null +++ b/.air.toml @@ -0,0 +1,78 @@ +# Config file for [Air](https://github.com/air-verse/air) in TOML format + +root = "." +tmp_dir = "tmp" + +[build] +# Just plain old shell command. You could use `make` as well. +cmd = "go build -o ./tmp/main ." +# Array of commands to run after ^C +# Binary file yields from `cmd`. +bin = "tmp/main" +# Customize binary, can setup environment variables when run your app. +full_bin = "APP_ENV=dev APP_USER=air ./tmp/main" +# Add additional arguments when running binary (bin/full_bin). Will run './tmp/main hello world'. +args_bin = ["hello", "world"] +# Watch these filename extensions. +include_ext = ["go", "tpl", "tmpl", "html"] +# Ignore these filename extensions or directories. +exclude_dir = ["assets", "tmp", "vendor", "frontend/node_modules"] +# Watch these directories if you specified. +include_dir = [] +# Watch these files. +include_file = [] +# Exclude files. +exclude_file = [] +# Exclude specific regular expressions. +exclude_regex = ["_test\\.go"] +# Exclude unchanged files. +exclude_unchanged = true +# Follow symlink for directories +follow_symlink = true +# This log file is placed in your tmp_dir. +log = "air.log" +# Poll files for changes instead of using fsnotify. +poll = false +# Poll interval (defaults to the minimum interval of 500ms). +poll_interval = 500 # ms +# It's not necessary to trigger build each time file changes if it's too frequent. +delay = 0 # ms +# Stop running old binary when build errors occur. +stop_on_error = true +# Send Interrupt signal before killing process (windows does not support this feature) +send_interrupt = false +# Delay after sending Interrupt signal +kill_delay = 500 # nanosecond +# Rerun binary or not +rerun = false +# Delay after each execution +rerun_delay = 500 + +[log] +# Show log time +time = false +# Only show main log (silences watcher, build, runner) +main_only = false +# silence all logs produced by air +silent = false + +[color] +# Customize each part's color. If no color found, use the raw app log. +main = "magenta" +watcher = "cyan" +build = "yellow" +runner = "green" + +[misc] +# Delete tmp directory on exit +clean_on_exit = true + +[screen] +clear_on_rebuild = true +keep_scroll = true + +[proxy] +# Enable live-reloading on the browser. +enabled = true +proxy_port = 8090 +app_port = 8080 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ceeb05b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/tmp diff --git a/README.md b/README.md index e29d0b0..3d4ca93 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,26 @@ # Advertisement_Panel +This project is written with go, and has hot realoding for the main.go + +Install Air +```bash +go install github.com/air-verse/air@latest +``` + +Add air to path or use the following disgusting command +```bash +$(go env GOPATH)/bin/air -c .air.toml +``` + + +# Tasks + +- [ ] Interface for adding new images +- [ ] ATB integration +- [ ] ASCII ART support +- [ ] show more spicy images after kl 10:00 +- [ ] more images??? + + +# NB +Changes in the static directory will not rebuild the project, simple workaround is to just make a small change in main.go and save, for example adding a space diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..c9369b5 --- /dev/null +++ b/go.mod @@ -0,0 +1,3 @@ +module Advertisement_Panel + +go 1.24.5 diff --git a/main.go b/main.go new file mode 100644 index 0000000..9a7b407 --- /dev/null +++ b/main.go @@ -0,0 +1,35 @@ +package main + +import ( + "encoding/json" + "net/http" + "os" + "strings" +) + +func main() { + http.HandleFunc("/files", func(w http.ResponseWriter, r *http.Request) { + files, err := os.ReadDir("./static") + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + var names []string + for _, f := range files { + + name := f.Name() + if strings.HasSuffix(name, ".jpg") || strings.HasSuffix(name, ".png") || strings.HasSuffix(name, ".gif") { + + names = append(names, name) + } + } + w.Header().Set("Content-Type", "application/json") + + json.NewEncoder(w).Encode(names) + }) + + fs := http.FileServer(http.Dir("./static")) + http.Handle("/", fs) + + http.ListenAndServe(":8080", nil) +} diff --git a/static/Keffiyeh.png b/static/Keffiyeh.png new file mode 100644 index 0000000..3e715d3 Binary files /dev/null and b/static/Keffiyeh.png differ diff --git a/static/berserk_poster.png b/static/berserk_poster.png new file mode 100644 index 0000000..dc9ea33 Binary files /dev/null and b/static/berserk_poster.png differ diff --git a/static/detailed_flower.png b/static/detailed_flower.png new file mode 100644 index 0000000..c9cb845 Binary files /dev/null and b/static/detailed_flower.png differ diff --git a/static/img1.jpg b/static/img1.jpg new file mode 100644 index 0000000..1b6d8a3 Binary files /dev/null and b/static/img1.jpg differ diff --git a/static/index.html b/static/index.html new file mode 100644 index 0000000..d7ef863 --- /dev/null +++ b/static/index.html @@ -0,0 +1,41 @@ + + + +
+ +