First version of command line app.

This commit is contained in:
severak 2022-01-02 21:42:08 +01:00
parent fb4d9ecda2
commit c897a3b07c
1 changed files with 50 additions and 0 deletions

50
kyselo.nim Normal file
View File

@ -0,0 +1,50 @@
# Kyselo companion tool
import std/parseopt
import std/json
import std/httpclient
import std/os
import std/uri
proc writeHelp() =
echo """Kyselo companion v 0.1
possible commands:
-D, --download-images-for=backup-someone.jsonl
"""
quit(QuitSuccess)
proc writeVersion() =
echo "0.1"
quit(QuitSuccess)
proc downloadImages(backupFile : string) =
var client = newHttpClient()
echo "Backing up images from ", backupFile, "..."
for line in backupFile.lines:
let post = parseJson(line)
try:
let url = post["url"].getStr()
let target = getCurrentDir() & url
if not fileExists(target):
echo "downloading ", url
var (dir, name, ext) = splitFile(target)
createDir(dir)
let imgUri = parseUri("https://kyselo.eu") / url
client.downloadFile(imgUri, target)
except KeyError:
discard
## neřešíme
quit(QuitSuccess)
for kind, key, val in getopt():
case kind
of cmdLongOption, cmdShortOption:
case key
of "help", "h": writeHelp()
of "version", "v": writeVersion()
of "download-images-for", "D": downloadImages(val)
of cmdArgument: discard
of cmdEnd: assert(false) # cannot happen
writeHelp()