From 4e401cbb7a65360106b2234873c753c2248f3ec1 Mon Sep 17 00:00:00 2001 From: Daniel Aberger Date: Sat, 31 Jul 2021 03:09:42 +0200 Subject: [PATCH] add first working version with example template and kamojis --- kamoji_template.html | 17 +++++++++++++ kamojis.txt | 15 ++++++++++++ main.go | 58 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 90 insertions(+) create mode 100644 kamoji_template.html create mode 100644 kamojis.txt create mode 100644 main.go diff --git a/kamoji_template.html b/kamoji_template.html new file mode 100644 index 0000000..592d0c3 --- /dev/null +++ b/kamoji_template.html @@ -0,0 +1,17 @@ + + + + + + + + + +{{.Kamoji}} + + + +{{.Kamoji}} + + + diff --git a/kamojis.txt b/kamojis.txt new file mode 100644 index 0000000..478af10 --- /dev/null +++ b/kamojis.txt @@ -0,0 +1,15 @@ +¯\_(ツ)_/¯ +(=^ ◡ ^=) +(⊃。•́‿•̀。)⊃━☆*:・゚ +♬♫♪◖(● o ●)◗♪♫♬ +( ╯°□°)╯ ┻━━┻ +┬─┬ノ( º _ ºノ) +(-‸ლ) +(*¯︶¯*) +凸( ` ロ ´ )凸 +(+_+) +ლ(ಠ_ಠ ლ) +( ̄▽ ̄)ノ +(づ ◕‿◕ )づ +C= C= C= C=┌( `ー´)┘ +( ̄o ̄) zzZZzzZZ \ No newline at end of file diff --git a/main.go b/main.go new file mode 100644 index 0000000..effc806 --- /dev/null +++ b/main.go @@ -0,0 +1,58 @@ +package main + +import ( + "bufio" + "html/template" + "log" + "math/rand" + "net/http" + "os" + "time" +) + +type Kamoji struct { + Kamoji string +} + +type Kamojis struct { + Kamojis []Kamoji +} + +func loadKamojis() Kamojis { + kamojis := Kamojis{} + + file, err := os.Open("kamojis.txt") + if err != nil { + log.Fatal(err) + } + defer file.Close() + + scanner := bufio.NewScanner(file) + for scanner.Scan() { + kamojis.Kamojis = append(kamojis.Kamojis, Kamoji{Kamoji: scanner.Text()}) + } + + if err := scanner.Err(); err != nil { + log.Fatal(err) + } + return kamojis +} + +func main() { + tmpl, err := template.ParseFiles("kamoji_template.html") + if err != nil { + log.Fatal(err) + } + allk := loadKamojis() + timestamp := time.Now().Unix() + randomNumber := rand.Intn(len(allk.Kamojis)) + http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + if time.Now().Unix()-timestamp > 60 { + randomNumber = rand.Intn(len(allk.Kamojis)) + timestamp = time.Now().Unix() + } + k := allk.Kamojis[randomNumber] + tmpl.Execute(w, k) + }) + http.ListenAndServe(":80", nil) +}