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()
|
|
|