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 "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)
|
||||
@@ -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)
|
||||
@@ -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%;
|
||||
}
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in new issue
Block a user