# 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()