| 123456789101112131415161718192021222324252627282930313233343536373839 |
- extends Node
- var outfile = "no_file" #bad name for the output directory
- var cdpoutput = "no_file" #output from running thread used for recycling output files
- func check_for_invalid_chars(file: String) -> Dictionary:
- var output = {
- "contains_invalid_characters" = false,
- "invalid_characters_found" = [],
- "string_without_invalid_characters" = ""
- }
- #check path and file name do not contain special characters
- var check_characters = []
- if file.contains("/"):
- check_characters = file.get_basename().split("/")
- else:
- check_characters.append(file)
-
- var invalid_chars:= []
- var regex = RegEx.new()
- regex.compile("[^a-zA-Z0-9\\-_ :+]")
- for string in check_characters:
- if string != "":
- var result = regex.search_all(string)
- for matches in result:
- var character = matches.get_string()
- if invalid_chars.has(character) == false:
- invalid_chars.append(character)
-
- if invalid_chars.size() == 0:
- output["contains_invalid_characters"] = false
- else:
- output["contains_invalid_characters"] = true
- output["invalid_characters_found"] = invalid_chars
- var cleaned_string = file
- for character in invalid_chars:
- cleaned_string = cleaned_string.replace(character, "")
- output["string_without_invalid_characters"] = cleaned_string
- return output
|