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)