resolver.nim 628 B

123456789101112131415161718192021222324
  1. import strutils
  2. import jester
  3. import router_utils
  4. import ".."/[query, types, api, agents]
  5. import ../views/general
  6. template respResolved*(url, kind: string): untyped =
  7. let u = url
  8. if u.len == 0:
  9. resp showError("Invalid $1 link" % kind, cfg)
  10. else:
  11. redirect(u)
  12. proc createResolverRouter*(cfg: Config) =
  13. router resolver:
  14. get "/cards/@card/@id":
  15. let url = "https://cards.twitter.com/cards/$1/$2" % [@"card", @"id"]
  16. respResolved(await resolve(url, cookiePrefs()), "card")
  17. get "/t.co/@url":
  18. let url = "https://t.co/" & @"url"
  19. respResolved(await resolve(url, cookiePrefs()), "t.co")