diff options
-rw-r--r-- | main_server.go | 6 | ||||
-rw-r--r-- | web_page/index.html | 15 | ||||
-rw-r--r-- | web_page/main.css | 15 | ||||
-rw-r--r-- | web_page/main.js | 26 | ||||
-rw-r--r-- | web_server/web_server.go | 45 |
5 files changed, 102 insertions, 5 deletions
diff --git a/main_server.go b/main_server.go index ea41ce8..00d3938 100644 --- a/main_server.go +++ b/main_server.go @@ -59,7 +59,7 @@ func correct_url(url string) string { return url; } -func add_url(url string) { +func add_url(url string) string{ hurl := correct_url(url); hsh := gen_hash(hurl); fmt.Printf("adding: %s -> %s \n", hurl, hsh); @@ -90,6 +90,7 @@ func add_url(url string) { log.Fatal(err); } } + return hsh; } func get_hash_from_db(hash string) string{ @@ -122,7 +123,8 @@ func read_json(cont []byte) (Data, error) { func handle_request(conn net.Conn, data Data) { if data.Type == 1 { - add_url(data.URL); + ret := add_url(data.URL); + conn.Write([]byte(fmt.Sprintf("%s\n", ret))); }else if data.Type == 2 { ret := get_hash_from_db(data.URL); conn.Write([]byte(fmt.Sprintf("%s\n", ret))); diff --git a/web_page/index.html b/web_page/index.html new file mode 100644 index 0000000..756bbc9 --- /dev/null +++ b/web_page/index.html @@ -0,0 +1,15 @@ +<!DOCTYPE html> +<html> +<head> + <title> ADICIONAR LINK </title> + <link rel="stylesheet" href="./main.css"> + <script src="main.js"></script> +</head> +<body> + <div> + <label >URL: </label> + <input id="inp1" type="text"> + <input id="btn1" type="button" value="Enviar" onclick="click_send()"> + </div> +</body> +</html> diff --git a/web_page/main.css b/web_page/main.css new file mode 100644 index 0000000..8d0e985 --- /dev/null +++ b/web_page/main.css @@ -0,0 +1,15 @@ +div { + margin: auto; + width: 350px; + border: 3px solid purple; + padding: 10px; + text-align: center; +} +p{ + margin: auto; + margin-top: 5px; + width: 350px; + border: 3px solid purple; + padding: 10px; + text-align: center; +}
\ No newline at end of file diff --git a/web_page/main.js b/web_page/main.js new file mode 100644 index 0000000..5b0bf05 --- /dev/null +++ b/web_page/main.js @@ -0,0 +1,26 @@ +function click_send(){ + data = document.getElementById("inp1").value; + console.log(data); + + fetch("http://localhost:5556/add/"+data).then(response => { + if (!response.ok) { + throw new Error('Network response was not ok'); + } + return response.text(); + }).then(result => { + console.log(result); + const res = document.createElement("p"); + res.textContent = data + " => " + "localhost:5556/" + result; + document.body.appendChild(res); + }) + return 10 * 3; +} + +document.addEventListener("DOMContentLoaded", function () { + const input = document.getElementById("inp1"); + + input.addEventListener("keydown", function (event) { + if (event.key === "Enter") + click_send(); + }); +});
\ No newline at end of file diff --git a/web_server/web_server.go b/web_server/web_server.go index 7f1201c..0bf9306 100644 --- a/web_server/web_server.go +++ b/web_server/web_server.go @@ -7,21 +7,43 @@ import ( "strings" "net" "bufio" + //"html" ) func handler(w http.ResponseWriter, r *http.Request) { w.Header().Set("Cache-Control", "no-cache, no-store, must-revalidate") w.Header().Set("Expires", "0") + w.Header().Set("Access-Control-Allow-Origin", "*") + w.Header().Set("Access-Control-Allow-Methods", "GET, POST, OPTIONS") + w.Header().Set("Access-Control-Allow-Headers", "Content-Type") + tmp := strings.Split(r.URL.Path, "/"); fmt.Println(tmp); - if len(tmp[1]) == 6 { + if tmp[1] == "add" && len(tmp[2]) != 0 { + fmt.Println("Request add:"); + fmt.Println("Sending a request to add: " + tmp[2] + "..."); + conn, err := net.Dial("tcp", "localhost:5555"); + if err != nil { + log.Fatal(err); + } + defer conn.Close(); + + fmt.Fprintf(conn, "{\"type\": 1, \"url\": \"%s\"}", tmp[2]); + res, _ := bufio.NewReader(conn).ReadBytes('\n'); + fmt.Println(string(res)); + + w.Write(res); + + return; + }else if len(tmp[1]) == 6 { s := tmp[1]; fmt.Println(tmp[1]); conn, err := net.Dial("tcp", "localhost:5555"); if err != nil { log.Fatal(err); } + defer conn.Close(); fmt.Println(s); fmt.Fprintf(conn, "{\"type\": 2, \"url\": \"%s\"}", s); @@ -34,14 +56,31 @@ func handler(w http.ResponseWriter, r *http.Request) { } } +func add_page(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Cache-Control", "no-cache, no-store, must-revalidate") + w.Header().Set("Expires", "0") + tmp := strings.Split(r.URL.Path, "/"); + fmt.Println(tmp); +} + func main() { -// page := &Page{Title: "Redirect", Body: []byte("Redirecting...")}; - fmt.Println("Port 5556"); + /*fmt.Println("Port 5556"); server := &http.Server{ Addr: "localhost:5556", Handler: http.HandlerFunc(handler), }; + server.SetKeepAlivesEnabled(false);*/ + + mux := http.NewServeMux(); + mux.HandleFunc("/", handler); + //mux.HandleFunc("/add", add_page); + server := &http.Server{ + Addr: "localhost:5556", + Handler: mux, + }; server.SetKeepAlivesEnabled(false); + fmt.Println("Listen on port 5556"); + //http.HandleFunc("/", handler); log.Fatal(server.ListenAndServe()); } |