import db_sqlite, os, streams, threadpool, twtxt proc updateTweetsOnce() {. gcsafe .} = var db = open("./data/twtxt.db", nil, nil, nil) var users = db.getAllRows sql"select * from users where username != 'twtxtlist'" for user in users.items(): echo "updating " & $user spawn db.updateTweetsByUser(user[1], user[2]) proc updateSystemUser() = let fname = "public" / "twtxt.txt" db = open("data/twtxt.db", nil, nil, nil) if fname.existsFile: try: fname.removeFile except: quit "can't make my list" var fout = fname.newFileStream fmWrite if fout.isNil: echo "wtf it's nil?" return let tweets = db.getAllRows(sql"select * from tweets where username='twtxtlist'") for tweet in tweets.items: let tweetObj = tweet.fromDBRow() echo tweetObj fout.writeLine $tweetObj fout.close echo "Updated system user" when isMainModule: while true: spawn updateTweetsOnce() spawn updateSystemUser() sleep 300_000 # 5 minutes