resolver.nim 654 B

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