mirror of
https://github.com/Open-Argon/isotope-server.git
synced 2026-10-28 09:43:51 +00:00
add download counter
This commit is contained in:
1 parent
2f5b665714
commit
3c0bae76ec
5 files changed
+26
-3
No files matched your search
@@ -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
|
||||||
@@ -2,7 +2,7 @@ import "server" as *
|
|||||||
import "config" as *
|
import "config" as *
|
||||||
import "database" as *
|
import "database" as *
|
||||||
|
|
||||||
let search(req, res) = do
|
let download(req, res) = do
|
||||||
let name = req.query.get("name", null)
|
let name = req.query.get("name", null)
|
||||||
let version = req.query.get("version", "latest")
|
let version = req.query.get("version", "latest")
|
||||||
let package = packages.get(name)
|
let package = packages.get(name)
|
||||||
@@ -20,4 +20,5 @@ let search(req, res) = do
|
|||||||
let filename = currentVersion.get("filename")
|
let filename = currentVersion.get("filename")
|
||||||
let p = path.join([program.cwd, "data","packages", name, filename])
|
let p = path.join([program.cwd, "data","packages", name, filename])
|
||||||
res.sendFile(p)
|
res.sendFile(p)
|
||||||
app.route("/isotope-download", null, search)
|
package.download = package.get("download", 0) + 1
|
||||||
|
app.route("/isotope-download", null, download)
|
||||||
@@ -4,6 +4,7 @@ import "url.ar" as url
|
|||||||
import "bleach.ar" as bleach
|
import "bleach.ar" as bleach
|
||||||
import "shlex.ar" as shlex
|
import "shlex.ar" as shlex
|
||||||
import "render" as render
|
import "render" as render
|
||||||
|
import "commaNumbers" as *
|
||||||
|
|
||||||
let package(req, res) = do
|
let package(req, res) = do
|
||||||
let acc = account.getByToken(req.cookies.get("token", ""))
|
let acc = account.getByToken(req.cookies.get("token", ""))
|
||||||
@@ -44,5 +45,5 @@ let package(req, res) = do
|
|||||||
if (versioni == "latest") versions.insert(0, html)
|
if (versioni == "latest") versions.insert(0, html)
|
||||||
else versions.append(html)
|
else versions.append(html)
|
||||||
let author = account.getById(package.get("owner")) || {username:"Unknown", id:""}
|
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)
|
app.route("/package", null, package)
|
||||||
@@ -284,12 +284,14 @@ input:focus {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.package .versions {
|
.package .versions {
|
||||||
|
margin: 0 1rem;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
max-width: 250px;
|
max-width: 250px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 750px) {
|
@media (max-width: 750px) {
|
||||||
.package .versions {
|
.package .versions {
|
||||||
|
margin: 1rem 0;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -84,6 +84,8 @@
|
|||||||
>{{command}}<div style="float: right;margin-left: 1rem;">📋 Click to Copy</div></pre>
|
>{{command}}<div style="float: right;margin-left: 1rem;">📋 Click to Copy</div></pre>
|
||||||
</div>
|
</div>
|
||||||
<div class="versions">
|
<div class="versions">
|
||||||
|
<h2>{{downloads}} download(s)</h2>
|
||||||
|
<div class="split"></div>
|
||||||
<h2>Versions</h2>
|
<h2>Versions</h2>
|
||||||
<div class="results">{{%versions}}</div>
|
<div class="results">{{%versions}}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in new issue
Block a user