This commit is contained in:
Your Name 2022-07-31 21:20:54 -05:00
parent bfe4d962d5
commit 8023645165
4 changed files with 113 additions and 1 deletions

View File

@ -1,3 +1,5 @@
# szuru2shimmie2
An accursed set of tools hobbled together to
An accursed set of tools hobbled together to migrate from szurubooru 2 shimmie2.
Expect these tools to be ineffective and low quality, they were cobbled together simply to get a job done, not to be effective.

35
finalizer.nim Normal file
View File

@ -0,0 +1,35 @@
import std/parsecsv
import std/strutils
import std/osproc
var safety: CsvParser
###Translate Them###
safety.open("post_safety.csv")
var f = open("post_ids_with_named_tags.csv", fmAppend)
f.writeLine("post_id,tag_name")
safety.readHeaderRow()
while safety.readRow():
var command = "find images/ -iname " & safety.rowEntry("id") & "\\.*"
var filename = execCmdEx(command).output.replace("\n")
var tags: string
var rating: char
if len(readFile("PostsWithTags/" & safety.rowEntry("id"))) > 0:
tags = readFile("PostsWithTags/" & safety.rowEntry("id"))
tags = tags[1..len(tags)-1]
else:
tags = "tagme"
if safety.rowEntry("safety") == "safe":
rating = 's'
elif safety.rowEntry("safety") == "questionable":
rating = 'q'
elif safety.rowEntry("safety") == "explicit":
rating = 'e'
let finalFile = open("finalized.csv", fmAppend)
finalFile.writeLine "\"" & filename & "\"" & ",\"" & tags & "\",\"\",\"" & rating & "\",\"thumbnail" & filename & "\""
finalFile.close()

49
merger.nim Normal file
View File

@ -0,0 +1,49 @@
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()

26
translate.nim Normal file
View File

@ -0,0 +1,26 @@
import std/parsecsv
import std/os
var postTags: CsvParser
var tagNames: CsvParser
removeFile("post_ids_with_named_tags.csv")
###Translate Them###
postTags.open("post_tags.csv")
tagNames.open("tag_names.csv")
var f = open("post_ids_with_named_tags.csv", fmAppend)
f.writeLine("post_id,tag_name")
postTags.readHeaderRow()
while postTags.readRow():
tagNames.readHeaderRow()
while tagNames.readRow():
if postTags.rowEntry("tag_id") == tagNames.rowEntry("tag_id"):
f.writeLine(postTags.rowEntry("post_id") & "," & tagNames.rowEntry("name"))
echo (postTags.rowEntry("post_id") & "," & tagNames.rowEntry("name"))
tagNames.close()
tagNames.open("tag_names.csv")