router_utils.nim 769 B

12345678910111213141516171819202122232425
  1. import strutils, sequtils, asyncdispatch, httpclient
  2. import ../utils, ../prefs
  3. export utils, prefs
  4. template cookiePrefs*(): untyped {.dirty.} =
  5. getPrefs(request.cookies.getOrDefault("preferences"), cfg)
  6. template getPath*(): untyped {.dirty.} =
  7. $(parseUri(request.path) ? filterParams(request.params))
  8. template refPath*(): untyped {.dirty.} =
  9. if @"referer".len > 0: @"referer" else: "/"
  10. proc getNames*(name: string): seq[string] =
  11. name.strip(chars={'/'}).split(",").filterIt(it.len > 0)
  12. proc safeClose*(client: AsyncHttpClient) =
  13. try: client.close()
  14. except: discard
  15. proc safeFetch*(url: string): Future[string] {.async.} =
  16. let client = newAsyncHttpClient()
  17. try: result = await client.getContent(url)
  18. except: discard
  19. finally: client.safeClose()