summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main_server.go6
-rw-r--r--web_page/index.html15
-rw-r--r--web_page/main.css15
-rw-r--r--web_page/main.js26
-rw-r--r--web_server/web_server.go45
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());
}