50 lines
1.4 KiB
Nim
50 lines
1.4 KiB
Nim
|
import std/parsecsv
|
||
|
import std/threadpool
|
||
|
import std/os
|
||
|
|
||
|
{.experimental: "parallel".}
|
||
|
|
||
|
###Merge Them###
|
||
|
proc mergeThem(postID: int) =
|
||
|
var tagSpaced: string
|
||
|
var uncleanTagged: CsvParser
|
||
|
var curTagList: seq[string]
|
||
|
uncleanTagged.open("post_ids_with_named_tags.csv")
|
||
|
# while true:
|
||
|
# try:
|
||
|
# uncleanTagged.open("post_ids_with_named_tags.csv")
|
||
|
# except CsvError as e:
|
||
|
# echo e.msg
|
||
|
# echo "failed on 17"
|
||
|
# os.sleep(10000)
|
||
|
uncleanTagged.readHeaderRow()
|
||
|
while uncleanTagged.readRow():
|
||
|
if uncleanTagged.rowEntry("post_id") == $postID:
|
||
|
try:
|
||
|
curTagList.add(uncleanTagged.rowEntry("tag_name"))
|
||
|
except:
|
||
|
echo "fuck"
|
||
|
if len(curTagList)-1 > 0:
|
||
|
for tag in countup(0,len(curTagList)-1):
|
||
|
tagSpaced = tagSpaced & " " & curTagList[tag]
|
||
|
var tries = 0
|
||
|
while true and tries != 3:
|
||
|
try:
|
||
|
echo "Writing" & $tagSpaced & " to PostsWithTags/" & $postID
|
||
|
writeFile("PostsWithTags/" & $postID, tagSpaced)
|
||
|
break
|
||
|
except:
|
||
|
os.sleep(5000)
|
||
|
tries = tries + 1
|
||
|
|
||
|
#tagSpaced = ""
|
||
|
#curTagList = @[]
|
||
|
uncleanTagged.close()
|
||
|
#uncleanTagged.open("post_ids_with_named_tags.csv")
|
||
|
parallel:
|
||
|
for postID in 1..7000:
|
||
|
spawn mergeThem(postID)
|
||
|
if postID mod 100 == 0:
|
||
|
sync()
|
||
|
|