mirror of
https://github.com/Open-Argon/isotope-server.git
synced 2026-10-28 09:43:51 +00:00
update markdown.ar
This commit is contained in:
1 parent
7d897f4c41
commit
668f4dc86b
4 files changed
+66
-60
No files matched your search
+1
-1
@@ -1 +1 @@
|
||||
[{"Name":"bleach.ar","Version":"1.0.0","URL":"https://isotope.wbell.dev/isotope-download?version=1.0.0\u0026name=bleach.ar","Remote":"isotope.wbell.dev"},{"Name":"shlex.ar","Version":"1.0.1","URL":"https://isotope.wbell.dev/isotope-download?name=shlex.ar\u0026version=1.0.1","Remote":"isotope.wbell.dev"},{"Name":"neon.ar","Version":"beta1.0.2","URL":"https://isotope.wbell.dev/isotope-download?name=neon.ar\u0026version=beta1.0.2","Remote":"isotope.wbell.dev"},{"Name":"url.ar","Version":"1.0.2","URL":"https://isotope.wbell.dev/isotope-download?name=url.ar\u0026version=1.0.2","Remote":"isotope.wbell.dev"},{"Name":"http.ar","Version":"1.1.5","URL":"https://isotope.wbell.dev/isotope-download?version=1.1.5\u0026name=http.ar","Remote":"isotope.wbell.dev"},{"Name":"markdown.ar","Version":"beta1.0.1","URL":"https://isotope.wbell.dev/isotope-download?name=markdown.ar\u0026version=beta1.0.1","Remote":"isotope.wbell.dev"}]
|
||||
[{"Name":"bleach.ar","Version":"1.0.0","URL":"https://isotope.wbell.dev/isotope-download?version=1.0.0\u0026name=bleach.ar","Remote":"isotope.wbell.dev"},{"Name":"shlex.ar","Version":"1.0.1","URL":"https://isotope.wbell.dev/isotope-download?name=shlex.ar\u0026version=1.0.1","Remote":"isotope.wbell.dev"},{"Name":"neon.ar","Version":"beta1.0.2","URL":"https://isotope.wbell.dev/isotope-download?name=neon.ar\u0026version=beta1.0.2","Remote":"isotope.wbell.dev"},{"Name":"url.ar","Version":"1.0.2","URL":"https://isotope.wbell.dev/isotope-download?name=url.ar\u0026version=1.0.2","Remote":"isotope.wbell.dev"},{"Name":"http.ar","Version":"1.1.5","URL":"https://isotope.wbell.dev/isotope-download?version=1.1.5\u0026name=http.ar","Remote":"isotope.wbell.dev"},{"Name":"markdown.ar","Version":"beta1.0.3","URL":"https://isotope.wbell.dev/isotope-download?name=markdown.ar\u0026version=beta1.0.3","Remote":"isotope.wbell.dev"}]
|
||||
@@ -7,16 +7,20 @@ let login(req, res) = do
|
||||
let acc = account.getByToken(req.cookies.get_value("token", ""))
|
||||
if (acc) do
|
||||
return res.redirect(redirect)
|
||||
else if (req.method == "POST") do
|
||||
let user = req.formdata.get_value("user")
|
||||
let password = req.formdata.get_value("password")
|
||||
let errResp(err) = res.renderTemplate("login.html", {errorMsg:err, user:user})
|
||||
if (not user) return errResp("Missing user")
|
||||
else if (not password) return errResp("Missing password")
|
||||
let acc = account.login(user, password)
|
||||
if ("error" in acc) return errResp(acc.error)
|
||||
res.setCookie("token", {value:acc.token, path:"/", expires:time.unix(time.now().unix()+3.156e+9, 0).format()})
|
||||
res.redirect(redirect)
|
||||
return
|
||||
res.renderTemplate("login.html", {})
|
||||
app.all("/login", login)
|
||||
|
||||
let loginPOST(req, res) = do
|
||||
let redirect = req.query.get_value("to", "/")
|
||||
if (redirect == "/login") redirect = "/"
|
||||
let acc = account.getByToken(req.cookies.get_value("token", ""))
|
||||
let user = req.formdata.get_value("user")
|
||||
let password = req.formdata.get_value("password")
|
||||
let errResp(err) = res.renderTemplate("login.html", {errorMsg:err, user:user})
|
||||
if (not user) return errResp("Missing user")
|
||||
else if (not password) return errResp("Missing password")
|
||||
let acc = account.login(user, password)
|
||||
if ("error" in acc) return errResp(acc.error)
|
||||
res.setCookie("token", {value:acc.token, path:"/", expires:time.unix(time.now().unix()+3.156e+9, 0).format()})
|
||||
res.redirect(redirect)
|
||||
|
||||
app.route("/login").get(login).post(loginPOST)
|
||||
@@ -4,51 +4,6 @@ import "url.ar" as url
|
||||
|
||||
let newPackage(req, res) = do
|
||||
let acc = account.getByToken(req.cookies.get_value("token", ""))
|
||||
if (req.method == "POST") do
|
||||
if (not acc) return res.redirect("/login?"+url.queryStr({to:req.path+"?"+url.queryStr(req.formdata)}))
|
||||
let name = req.formdata.get_value("name", "")
|
||||
let shortDescription = req.formdata.get_value("short-description", "")
|
||||
let description = req.formdata.get_value("description", "")
|
||||
let license = req.formdata.get_value("license", "")
|
||||
let repository = req.formdata.get_value("repository", "")
|
||||
let keywords = req.formdata.get_value("keywords", "")
|
||||
let errResp(err) = res.renderTemplate("createPackage.html", {name:name, "short-description":shortDescription, description:description, license:license, repository:repository, keywords:keywords, error:err})
|
||||
let package = packages.get_value(name)
|
||||
if (package != null) do
|
||||
errResp("Package already exists")
|
||||
return
|
||||
if (name == "") do
|
||||
errResp("Name cannot be empty")
|
||||
return
|
||||
if (shortDescription == "") do
|
||||
errResp("Short description cannot be empty")
|
||||
return
|
||||
if (description == "") do
|
||||
errResp("Description cannot be empty")
|
||||
return
|
||||
if (license == "") do
|
||||
errResp("License cannot be empty")
|
||||
return
|
||||
let repositoryURL = url.URL(repository)
|
||||
if (not (repositoryURL.protocol && repositoryURL.host && repositoryURL.path)) do
|
||||
errResp("upload a valid repository URL")
|
||||
return
|
||||
if (keywords == "") do
|
||||
errResp("Keywords cannot be empty")
|
||||
return
|
||||
if (not validName(name)) do
|
||||
errResp("Invalid name")
|
||||
return
|
||||
let keywordsList = keywords.split(",")
|
||||
let keywordsList2 = []
|
||||
for (i from 0 to keywordsList.length) do
|
||||
let keyword = keywordsList[i]
|
||||
if (keyword != "") keywordsList2.append(keyword)
|
||||
keywordsList = keywordsList2
|
||||
let package = {name:name, "short-description":shortDescription, description:description, license:license, repository:repository, keywords:keywordsList, owner:acc.id, versions:{}, order:{}}
|
||||
packages[name] = package
|
||||
makeChange()
|
||||
return res.redirect("/package?"+url.queryStr({name:name}))
|
||||
let values = {}
|
||||
values.name = req.query.get_value("name", "")
|
||||
values["short-description"] = req.query.get_value("short-description", "")
|
||||
@@ -57,4 +12,52 @@ let newPackage(req, res) = do
|
||||
values.repository = req.query.get_value("repository", "")
|
||||
values.keywords = req.query.get_value("keywords", "")
|
||||
res.renderTemplate("createPackage.html", values)
|
||||
app.all("/package/create", newPackage)
|
||||
|
||||
let newPackagePOST(req,res) = do
|
||||
let acc = account.getByToken(req.cookies.get_value("token", ""))
|
||||
if (not acc) return res.redirect("/login?"+url.queryStr({to:req.path+"?"+url.queryStr(req.formdata)}))
|
||||
let name = req.formdata.get_value("name", "")
|
||||
let shortDescription = req.formdata.get_value("short-description", "")
|
||||
let description = req.formdata.get_value("description", "")
|
||||
let license = req.formdata.get_value("license", "")
|
||||
let repository = req.formdata.get_value("repository", "")
|
||||
let keywords = req.formdata.get_value("keywords", "")
|
||||
let errResp(err) = res.renderTemplate("createPackage.html", {name:name, "short-description":shortDescription, description:description, license:license, repository:repository, keywords:keywords, error:err})
|
||||
let package = packages.get_value(name)
|
||||
if (package != null) do
|
||||
errResp("Package already exists")
|
||||
return
|
||||
if (name == "") do
|
||||
errResp("Name cannot be empty")
|
||||
return
|
||||
if (shortDescription == "") do
|
||||
errResp("Short description cannot be empty")
|
||||
return
|
||||
if (description == "") do
|
||||
errResp("Description cannot be empty")
|
||||
return
|
||||
if (license == "") do
|
||||
errResp("License cannot be empty")
|
||||
return
|
||||
let repositoryURL = url.URL(repository)
|
||||
if (not (repositoryURL.protocol && repositoryURL.host && repositoryURL.path)) do
|
||||
errResp("upload a valid repository URL")
|
||||
return
|
||||
if (keywords == "") do
|
||||
errResp("Keywords cannot be empty")
|
||||
return
|
||||
if (not validName(name)) do
|
||||
errResp("Invalid name")
|
||||
return
|
||||
let keywordsList = keywords.split(",")
|
||||
let keywordsList2 = []
|
||||
for (i from 0 to keywordsList.length) do
|
||||
let keyword = keywordsList[i]
|
||||
if (keyword != "") keywordsList2.append(keyword)
|
||||
keywordsList = keywordsList2
|
||||
let package = {name:name, "short-description":shortDescription, description:description, license:license, repository:repository, keywords:keywordsList, owner:acc.id, versions:{}, order:{}}
|
||||
packages[name] = package
|
||||
makeChange()
|
||||
return res.redirect("/package?"+url.queryStr({name:name}))
|
||||
|
||||
app.route("/package/create").get(newPackage).post(newPackagePOST)
|
||||
@@ -32,7 +32,6 @@ let editPackage(req, res) = do
|
||||
errResp("License cannot be empty")
|
||||
return
|
||||
let repositoryURL = url.URL(repository)
|
||||
term.log(repositoryURL, repository)
|
||||
if (not (repositoryURL.protocol && repositoryURL.host && repositoryURL.path)) do
|
||||
errResp("upload a valid repository URL")
|
||||
return
|
||||
|
||||
Reference in new issue
Block a user