better dir support
This commit is contained in:
parent
19907a5664
commit
48ec65c776
2 changed files with 20 additions and 12 deletions
|
@ -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}")
|
||||
|
|
|
@ -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"
|
||||
|
|
Loading…
Add table
Reference in a new issue