diff --git a/src/templates/tweets.mustache b/src/templates/tweets.mustache index 7bd4815..0eacc86 100644 --- a/src/templates/tweets.mustache +++ b/src/templates/tweets.mustache @@ -7,7 +7,7 @@ {{# tweets }}
@{{ username }} - {{ time }} -

{{ tweet }}

+

{{{ tweet }}}

permalink

diff --git a/src/tweet/.gitignore b/src/tweet/.gitignore new file mode 100644 index 0000000..d8dc22d --- /dev/null +++ b/src/tweet/.gitignore @@ -0,0 +1 @@ +parse diff --git a/src/tweet/parse.nim b/src/tweet/parse.nim new file mode 100644 index 0000000..65d4ff1 --- /dev/null +++ b/src/tweet/parse.nim @@ -0,0 +1,32 @@ +import strutils, ../twtxt +from htmlgen import nil + +type + TweetData* = seq[string] + +proc `$`*(t: TweetData): string = t.join "" + +proc prettyfyTweet*(t: string): TweetData = + result = newSeq[string]() + + var tweet = t.replace("<", "<").replace(">", ">") + + for word in tokenize(tweet): + if word.isSep: + result.add word.token + else: + if word.token.startsWith "@": + let + username = word.token.substr 1 + ahref = htmlgen.a(href="/users/" & username & "/0", word.token) + result.add ahref + elif word.token.startsWith "http": + let ahref = htmlgen.a(href=word.token, word.token) + result.add ahref + else: + result.add word.token + +when isMainModule: + const inp = "@reednj Yeah I was gonna work on that today http://foo.bar foo" + + echo inp.prettyfyTweet diff --git a/src/twtxtlist.nim b/src/twtxtlist.nim index ed39e68..86669c5 100644 --- a/src/twtxtlist.nim +++ b/src/twtxtlist.nim @@ -1,5 +1,5 @@ import asyncdispatch, db_sqlite, httpclient, jester, moustachu, os, shorturl, - strutils, tables, templates/all, times, twtxt, typetraits + strutils, tables, templates/all, times, tweet/parse, twtxt, typetraits let db = open("data/twtxt.db", nil, nil, nil) @@ -142,7 +142,7 @@ routes: c["permalink"] = tweet[0].parseInt().encodeURLSimple() c["username"] = tweet[1] c["time"] = time - c["tweet"] = tweet[3] + c["tweet"] = $tweet[3].prettyfyTweet() tweetList.add c @@ -177,7 +177,7 @@ routes: c["permalink"] = tweet[0].parseInt().encodeURLSimple() c["username"] = tweet[1] c["time"] = time - c["tweet"] = tweet[3] + c["tweet"] = $tweet[3].prettyfyTweet() tweetList.add c @@ -213,7 +213,7 @@ routes: c["permalink"] = tweet[0].parseInt().encodeURLSimple() c["username"] = tweet[1] c["time"] = time - c["tweet"] = tweet[3] + c["tweet"] = $tweet[3].prettyfyTweet() tweetList.add c