twtxtlist/src/tweet/parse.nim

33 lines
836 B
Nim

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("<", "&lt;").replace(">", "&gt;")
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 <b>foo</b>"
echo inp.prettyfyTweet