global.gd 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. extends Node
  2. var outfile = "no_file" #bad name for the output directory
  3. var cdpoutput = "no_file" #output from running thread used for recycling output files
  4. func check_for_invalid_chars(file: String) -> Dictionary:
  5. var output = {
  6. "contains_invalid_characters" = false,
  7. "invalid_characters_found" = [],
  8. "string_without_invalid_characters" = ""
  9. }
  10. #check path and file name do not contain special characters
  11. var check_characters = []
  12. if file.contains("/"):
  13. check_characters = file.get_basename().split("/")
  14. else:
  15. check_characters.append(file)
  16. var invalid_chars:= []
  17. var regex = RegEx.new()
  18. regex.compile("[^a-zA-Z0-9\\-_ :+]")
  19. for string in check_characters:
  20. if string != "":
  21. var result = regex.search_all(string)
  22. for matches in result:
  23. var character = matches.get_string()
  24. if invalid_chars.has(character) == false:
  25. invalid_chars.append(character)
  26. if invalid_chars.size() == 0:
  27. output["contains_invalid_characters"] = false
  28. else:
  29. output["contains_invalid_characters"] = true
  30. output["invalid_characters_found"] = invalid_chars
  31. var cleaned_string = file
  32. for character in invalid_chars:
  33. cleaned_string = cleaned_string.replace(character, "")
  34. output["string_without_invalid_characters"] = cleaned_string
  35. return output