My work for Hoon 101. Will remain private until the class is over.
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

54 рядки
1.1KB

  1. /+ tapp, stdio
  2. ::
  3. =>
  4. |%
  5. +$ state
  6. $: pokedex=(map cord json)
  7. ==
  8. +$ peek-data _!!
  9. +$ in-poke-data [%noun =cord]
  10. +$ out-poke-data ~
  11. +$ in-peer-data ~
  12. +$ out-peer-data
  13. $% [%pokemon json]
  14. ==
  15. ++ tapp (^tapp state peek-data in-poke-data out-poke-data in-peer-data out-peer-data)
  16. ++ stdio (^stdio out-poke-data out-peer-data)
  17. --
  18. =>
  19. |%
  20. ++ comment-to-tang
  21. |= =tape
  22. ^- tang
  23. %+ welp
  24. %+ turn (rip 10 (crip tape))
  25. |= line=cord
  26. leaf+(trip line)
  27. [leaf+""]~
  28. ++ urls
  29. =/ base "https://pokeapi.co/api/v2/"
  30. :* pokemon=(weld base "pokemon/")
  31. ==
  32. --
  33. =, async=async:tapp
  34. =, tapp-async=tapp-async:tapp
  35. =, stdio
  36. ::
  37. %- create-tapp-poke-peer-take:tapp
  38. ^- tapp-core-poke-peer-take:tapp
  39. |_ [=bowl:gall state]
  40. ::
  41. ++ handle-poke
  42. |= =in-poke-data
  43. =/ m tapp-async
  44. =/ pokename cord.in-poke-data
  45. ^- form:m
  46. ::
  47. ?: (~(has by state) pokename)
  48. ~& 'pokemon already caught'
  49. (pure:m (~(got by state) pokename))
  50. =/ pokeurl (weld pokemon:urls (trip pokename))
  51. %+ (set-timeout _json) (add now.bowl ~s15)
  52. ;< =json bind:m (fetch-json pokeurl)