better dir support

This commit is contained in:
Kyle Brown 2020-12-21 23:11:00 -08:00
parent 19907a5664
commit 48ec65c776
2 changed files with 20 additions and 12 deletions

View file

@ -2,7 +2,7 @@ let doc = """
Renamer.
Usage:
renamer [<from>] [<to>] [--season=<se>] [--preview] [--log]
renamer <path>... [--season=<se>] [--preview] [--log]
renamer (-h | --help)
renamer [--version]
@ -55,8 +55,7 @@ func isMovie*(input: string): bool =
func findSubber*(input: string): string =
## Returns string containing subber of given input
## Returns empty string if not found
let seq_input = input.split(" ")
let first_str = seq_input[0].join()
let first_str = input.split(" ")[0].join()
if first_str.contains("[") and first_str.contains("]"):
return first_str
else:
@ -103,9 +102,14 @@ func isAnime*(input: string): bool =
## Returns bool of anime detected
not isEmptyOrWhitespace(findSubber(input))
func normalize(dir: string): string =
func normalize*(dir: string): string =
## Returnes a normalized filename
normalizedPath(dir).dup(normalizeExe)
func isDir*(input: string): bool =
## Returns bool of if input is a path
findExt(input.normalize).isEmptyOrWhiteSpace
proc main() =
# Initializes season to be blank. Can be overridden with command
var
@ -115,11 +119,17 @@ proc main() =
fromDir: string
toDir: string
let args = docopt(doc, version = "Renamer 0.1")
let path = args["<path>"]
if args["<from>"]:
fromDir = normalizePathEnd($args["<from>"], true)
if args["<to>"]:
toDir = normalizePathEnd($args["<to>"], true)
# Builds file list up to 1 directory deep. Last option is the output dir
for i, c in path:
if i < path.len-1:
if not c.isDir:
file_list.append(c.join)
else: # Is a dir, walk and add files
for kind, path in walkDir(c):
if not path.isDir: file_list.append(path)
else: toDir = c
if args["--season"]:
season = $args["--season"]
@ -133,9 +143,6 @@ proc main() =
except EOFError:
break
for kind, path in walkDir(fromDir):
file_list.append(path)
for i in file_list:
if isMovie(i):
let frm = normalize(fmt"{fromDir}{i}")

View file

@ -8,7 +8,6 @@
import src/renamer
let animeTestStr = "[BLA] Test anime 02 [590p].mkv"
let animeMovieTestStr = "[BLA] Test Movie [1080p].mkv"
let movieTestStr = "Gotta.go.fast.2043.[2048p].mp4"
assert isSubber(animeTestStr) == true
assert isAnime(animeTestStr) == true
@ -18,3 +17,5 @@ assert findYear(movieTestStr) == "2043"
assert findExt(movieTestStr) == ".mp4"
assert findAnime(animeTestStr, "") == "Test anime S01E02.mkv"
assert findAnime(animeTestStr, "03") == "Test anime S03E02.mkv"
assert isDir("/test") == true
assert normalize("/test/") == "/test"