add download counter

This commit is contained in:
William Bell committed 2023-08-08 19:26:23 +01:00
1 parent 2f5b665714
commit 3c0bae76ec
5 files changed
+26 -3

No files matched your search

+17
View File
@@ -0,0 +1,17 @@
let commaSeperatedNumber(n) = do
if (n % 1 != 0) do
throwError("Runtime Error","commaSeperatedNumber only accepts integers")
num_str = fraction(n)[:-2]
result = ""
if (num_str[0] == '-') do
result += "-"
num_str = num_str[1:]
length = num_str.length
for (i from 0 to length) do
result += num_str[i]
if ((length - i - 1) % 3 == 0 && i != length - 1) do
result += ","
return result
+3 -2
View File
@@ -2,7 +2,7 @@ import "server" as *
import "config" as *
import "database" as *
let search(req, res) = do
let download(req, res) = do
let name = req.query.get("name", null)
let version = req.query.get("version", "latest")
let package = packages.get(name)
@@ -20,4 +20,5 @@ let search(req, res) = do
let filename = currentVersion.get("filename")
let p = path.join([program.cwd, "data","packages", name, filename])
res.sendFile(p)
app.route("/isotope-download", null, search)
package.download = package.get("download", 0) + 1
app.route("/isotope-download", null, download)
+2 -1
View File
@@ -4,6 +4,7 @@ import "url.ar" as url
import "bleach.ar" as bleach
import "shlex.ar" as shlex
import "render" as render
import "commaNumbers" as *
let package(req, res) = do
let acc = account.getByToken(req.cookies.get("token", ""))
@@ -44,5 +45,5 @@ let package(req, res) = do
if (versioni == "latest") versions.insert(0, html)
else versions.append(html)
let author = account.getById(package.get("owner")) || {username:"Unknown", id:""}
res.renderTemplate("package.html", {name:name, description: package.get("description", ""), 'short-description': package.get("short-description", ""), keywords:package.get("keywords", []).join(', '), repository:package.get("repository", "https://github.com/"), license: package.get("license", "Unspecified"), author: author.username, authorPage: '/author?'+url.queryStr({id:author.id}), version:version, versions:versions.join(""), command:command, commandComma:command.replace("'", "\\'")})
res.renderTemplate("package.html", {name:name, description: package.get("description", ""), 'short-description': package.get("short-description", ""), 'downloads': commaSeperatedNumber(package.get("downloads", 0)), keywords:package.get("keywords", []).join(', '), repository:package.get("repository", "https://github.com/"), license: package.get("license", "Unspecified"), author: author.username, authorPage: '/author?'+url.queryStr({id:author.id}), version:version, versions:versions.join(""), command:command, commandComma:command.replace("'", "\\'")})
app.route("/package", null, package)
+2
View File
@@ -284,12 +284,14 @@ input:focus {
}
.package .versions {
margin: 0 1rem;
width: 100%;
max-width: 250px;
}
@media (max-width: 750px) {
.package .versions {
margin: 1rem 0;
max-width: 100%;
}
+2
View File
@@ -84,6 +84,8 @@
>{{command}}<div style="float: right;margin-left: 1rem;">📋 Click to Copy</div></pre>
</div>
<div class="versions">
<h2>{{downloads}} download(s)</h2>
<div class="split"></div>
<h2>Versions</h2>
<div class="results">{{%versions}}</div>
</div>