From 170595579dbf983c596b60913776223d2fbba3d9 Mon Sep 17 00:00:00 2001 From: Christine Dodrill Date: Wed, 12 Aug 2015 12:13:24 -0700 Subject: [PATCH] Add more features to the nim client --- client/nim/ponyapi.nim | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/client/nim/ponyapi.nim b/client/nim/ponyapi.nim index c953a51..de85dd6 100644 --- a/client/nim/ponyapi.nim +++ b/client/nim/ponyapi.nim @@ -19,19 +19,21 @@ proc getJson(endpoint: string): json.JsonNode = return jsonTable +proc newEpisodeFromNode(data: json.JsonNode): Episode = + Episode(name: data["name"].getStr, + air_date: data["air_date"].getNum.int, + season: data["season"].getNum.int, + episode: data["episode"].getNum.int, + is_movie: data["is_movie"].getBVal) + proc newest*(): Episode = - var - data = getJson("/newest")["episode"] - ep = Episode(name: data["name"].getStr, - air_date: data["air_date"].getNum.int, - season: data["season"].getNum.int, - episode: data["episode"].getNum.int, - is_movie: data["is_movie"].getBVal) + getJson("/newest")["episode"].newEpisodeFromNode - return ep +proc random*(): Episode = + getJson("/random")["episode"].newEpisodeFromNode -proc `$`*(ep: Episode): string = - return "Episode:: name:" & ep.name & " season:" & $ep.season & " episode:" & $ep.episode & " air_date:" & $ep.air_date & " is_movie:" & $ep.is_movie +proc get_episode*(season, episode: int): Episode = + getJson("/season/" & $season & "/episode/" & $episode)["episode"].newEpisodeFromNode when isMainModule: import unittest @@ -49,3 +51,10 @@ when isMainModule: test "stringify episode": echo ep + + test "random episode": + echo random() + + test "get episode": + var myEp = get_episode(2, 14) # best episode + assert myEp.name == "The Last Roundup"