Fixes
This commit is contained in:
parent
10746d5dba
commit
29896be872
3 changed files with 71 additions and 29 deletions
|
@ -13,10 +13,6 @@ services:
|
||||||
command: redis-server --appendonly yes
|
command: redis-server --appendonly yes
|
||||||
volumes:
|
volumes:
|
||||||
- db:/data
|
- db:/data
|
||||||
ports:
|
|
||||||
- "6379:6379"
|
|
||||||
environment:
|
|
||||||
- REDIS_PASSWORD=abc123
|
|
||||||
restart: always
|
restart: always
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
|
|
16
main.go
16
main.go
|
@ -21,8 +21,8 @@ func main() {
|
||||||
})
|
})
|
||||||
|
|
||||||
client := redis.NewClient(&redis.Options{
|
client := redis.NewClient(&redis.Options{
|
||||||
Addr: "db:6379",
|
Addr: "redis:6379",
|
||||||
Password: "abc123",
|
Password: "",
|
||||||
DB: 0,
|
DB: 0,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ func main() {
|
||||||
})
|
})
|
||||||
|
|
||||||
type EUrl struct {
|
type EUrl struct {
|
||||||
URL string `json:"surl" xml:"surl" form:"surl"`
|
URL string `form:"surl"`
|
||||||
}
|
}
|
||||||
|
|
||||||
app.Get("/:id", func(c *fiber.Ctx) error {
|
app.Get("/:id", func(c *fiber.Ctx) error {
|
||||||
|
@ -62,8 +62,8 @@ func main() {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if !regexp.MustCompile(`^(http|https)://`).MatchString(u.URL) {
|
if !regexp.MustCompile(`^(http|https|mailto|ts3server)://`).MatchString(u.URL) {
|
||||||
c.Status(http.StatusBadRequest).SendString("Invalid URL")
|
return c.Status(http.StatusBadRequest).SendString("Invalid URL")
|
||||||
}
|
}
|
||||||
|
|
||||||
id, err := gonanoid.New(8)
|
id, err := gonanoid.New(8)
|
||||||
|
@ -78,7 +78,11 @@ func main() {
|
||||||
c.SendString(err.Error())
|
c.SendString(err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
return c.SendString("https://" + c.Hostname() + "/" + id)
|
fURL := c.Protocol() + "://" + c.Hostname() + "/" + id
|
||||||
|
|
||||||
|
return c.Render("home", fiber.Map{
|
||||||
|
"URL": fURL,
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
log.Fatal(app.Listen(":3000"))
|
log.Fatal(app.Listen(":3000"))
|
||||||
|
|
|
@ -6,32 +6,74 @@
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
|
||||||
<link href="https://bootswatch.com/5/darkly/bootstrap.min.css" rel="stylesheet">
|
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.0/css/all.min.css" rel="stylesheet">
|
||||||
|
<link href="https://bootswatch.com/4/darkly/bootstrap.min.css" rel="stylesheet">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
html {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
height: 100%;
|
||||||
|
display: grid;
|
||||||
|
grid-template-rows: auto 1fr auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer {
|
||||||
|
background-color: #303030;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<br><br>
|
<br><br>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="mt-2 mb-4 bg-secondary rounded-3">
|
<div class="jumbotron">
|
||||||
<div class="container-fluid py-5">
|
<h1>goshortly</h1>
|
||||||
<h1 class="display-5 fw-bold">goshortly</h1>
|
<p>An dead simple & fast URL Shortner. <br>
|
||||||
<p class="col-md-8 fs-4">An dead simple & fast URL Shortner</p>
|
All shortend URLs will be available for 30days!
|
||||||
<p class="col-md-8 fs-4">All shortend URLs will be available for 30days</p>
|
</p>
|
||||||
<hr>
|
<hr>
|
||||||
<form method="post" action="#">
|
<form method="post" action="#">
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<div class="container">
|
<input type="text" class="form-control" id="surl" name="surl" placeholder="https://google.de"
|
||||||
<input type="text" class="form-control" id="surl" name="surl" placeholder="https://google.de" required>
|
required>
|
||||||
</div>
|
<br>
|
||||||
<button type="submit" class="btn btn-primary">Submit</button>
|
<center>
|
||||||
</fieldset>
|
<button type="submit" class="btn btn-primary btn-lg">Submit</button>
|
||||||
</form>
|
</center>
|
||||||
</div>
|
</fieldset>
|
||||||
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/js/bootstrap.bundle.min.js"
|
<!-- URL PASS CHECK -->
|
||||||
integrity="sha384-/bQdsTh/da6pkI1MST/rWKFNjaCP5gBSY4sEBT38Q/9RBh9AH40zEOg7Hlq2THRZ" crossorigin="anonymous">
|
{{ if .URL }}
|
||||||
|
<div style="padding-right: 20px;" class="alert alert-dismissible alert-success">
|
||||||
|
<input id="foo" class="form-control" value="{{ .URL }}" readonly>
|
||||||
|
<br>
|
||||||
|
<center>
|
||||||
|
<button class="btn-copy btn btn-success" data-clipboard-target="#foo">
|
||||||
|
Copy to clipboard
|
||||||
|
</button>
|
||||||
|
</center>
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<footer>
|
||||||
|
<center>
|
||||||
|
Made with <a href="https://git.ucode.space/Phil/goshorly"><i class="fas fa-code-branch"></i>
|
||||||
|
Phil/goshortly</a>
|
||||||
|
</center>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/js/bootstrap.bundle.min.js"></script>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/clipboard@2.0.8/dist/clipboard.min.js"></script>
|
||||||
|
<script>
|
||||||
|
new ClipboardJS('body > div > div.alert.alert-dismissible.alert-success > center > button');
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
Loading…
Reference in a new issue