47 lines
1006 B
Nim
47 lines
1006 B
Nim
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
|