diff options
-rw-r--r-- | indeedwatcher.nimble | 2 | ||||
-rw-r--r-- | src/indeedwatcher.nim | 31 |
2 files changed, 23 insertions, 10 deletions
diff --git a/indeedwatcher.nimble b/indeedwatcher.nimble index 3357061..3845030 100644 --- a/indeedwatcher.nimble +++ b/indeedwatcher.nimble @@ -1,6 +1,6 @@ # Package -version = "1.0.1" +version = "1.0.2" author = "msglm" description = "Watches indeed for job updates." license = "AGPL-3.0-only" diff --git a/src/indeedwatcher.nim b/src/indeedwatcher.nim index 69c0071..7419321 100644 --- a/src/indeedwatcher.nim +++ b/src/indeedwatcher.nim @@ -71,13 +71,17 @@ for feed in feeds: #Getting the listing URLs from the feeds var rssFeedReply: RSS - #TODO implement a retry-on-fail system - try: - echo "now reading " & feed - rssFeedReply = getRSS(feed) - except: - raise - + for attempt in countup(0,3): + try: + echo "now reading " & feed + rssFeedReply = getRSS(feed) + except: + if attempt < 3: + echo "Recieved an error: trying again..." + continue + else: + raise + break for entry in rssFeedReply.items: #Sleep so indeed.com doesn't freak out @@ -90,8 +94,17 @@ for feed in feeds: var URL = entry.link let URLID = entry.link.split('&')[3] if not any(cache, proc (input: string): bool = input.contains(URLID)): - echo "Telling chromium to navigate to " & URL - session.navigate(URL) + for attempt in countup(0,3): + try: + echo "Telling chromium to navigate to " & URL + session.navigate(URL) + except: + if attempt < 3: + echo "Recieved an error: trying again..." + continue + else: + raise + break counter = counter + 1 #HTML Parser |