oeffisearch/src/utils.nim
2020-02-07 14:09:42 +01:00

31 lines
863 B
Nim

import parseutils, times, json
proc toAlphaId* (n: int): string =
let chars = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
var tmp = n
var digitValue: int = 1
var digit: int = 0
while tmp > 0:
digitValue *= chars.len
digit = tmp mod digitValue
let char = int(digit * chars.len / digitValue)
result = $(chars[char]) & result
tmp -= digit
proc fromAlphaId* (s: string): int =
let chars = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
for char in s:
result *= chars.len
result += chars.skipUntil(char)
proc iso8601toUnix* (iso8601string: string): int64 =
let date = parse(iso8601string, "yyyy-MM-dd'T'HH:mm:sszzz")
return toUnix(toTime(date))
proc mergeJObjects* (root: JsonNode, new: JsonNode): JsonNode =
result = root
for key, value in new:
result.add(key, value)