From 18dbea42f13f3cce9fc8196a3dd97d328ddb5c20 Mon Sep 17 00:00:00 2001 From: Wesley Kerfoot Date: Sat, 21 Dec 2019 16:06:30 -0500 Subject: [PATCH] implement basic thread renderer --- src/twit2blog.nim | 3 +-- src/twit2blogpkg/twitter.nim | 13 ++++++++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/twit2blog.nim b/src/twit2blog.nim index 1a5a0c8..14a0461 100644 --- a/src/twit2blog.nim +++ b/src/twit2blog.nim @@ -30,5 +30,4 @@ when isMainModule: stderr.writeLine("Invalid Arguments. Must provide both --user and --thread (or -u and -t). E.g. -u:foo -t:123") quit(1) - for tweet in twitterParams["thread"].getThread(twitterParams["user"]): - echo tweet + echo twitterParams["thread"].renderThread(twitterParams["user"]) diff --git a/src/twit2blogpkg/twitter.nim b/src/twit2blogpkg/twitter.nim index 4544151..01db36e 100644 --- a/src/twit2blogpkg/twitter.nim +++ b/src/twit2blogpkg/twitter.nim @@ -1,4 +1,4 @@ -import httpClient, base64, uri, json, os, strformat, sequtils +import httpClient, base64, uri, json, os, strformat, sequtils, strutils proc buildAuthHeader() : string = let consumerKey = "TWITTER_CONSUMER_KEY".getEnv @@ -65,3 +65,14 @@ proc getThread*(tweetStart : string, user : string) : seq[string] = else: return nextTweetID.getThread(user) +proc stripAts(tweet : string) : string = + let words = tweet.split(" ") + var stripped : seq[string] + for word in words: + if word[0] != '@': + stripped &= word + stripped.join(" ") + +proc renderThread*(tweetID : string, user : string) : string = + let thread = tweetID.getThread(user).map(stripAts).map(capitalizeAscii).join("\n\n") + fmt"### By {user}" & "\n" & fmt"{thread}"