Advertisement
Kreiri

Rift: remove discovery data from xml data files

Apr 26th, 2012
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.20 KB | None | 0 0
  1. --[[
  2. Usage:
  3. 1. unpack discoveries archive, save script as .lua file in the same folder
  4. 2. lua <script_file_name.lua> <xml_file_name.lua>
  5. --]]
  6.  
  7. local function trim(s)
  8.   -- from PiL2 20.4
  9.   return (s:gsub("^%s*(.-)%s*$", "%1"))
  10. end
  11.  
  12. local ignoredOpen = {
  13.     ["<FirstCompletedBy>"] = true,
  14.     ["<FirstLootedBy>"] = true,
  15.     ["<FirstKilledBy>"] = true,
  16.     ["<FirstLearnedBy>"] = true
  17. }
  18. local ignoredClose = {
  19.     ["</FirstCompletedBy>"] = true,
  20.     ["</FirstLootedBy>"] = true,
  21.     ["</FirstKilledBy>"] = true,
  22.     ["</FirstLearnedBy>"] = true
  23. }
  24.  
  25. local filename = arg[1]
  26. local sourceFile = io.open(filename, "r")
  27. local targetFile = io.open("_nd_"..filename, "w")
  28.  
  29. local skip = false
  30. local discData = false
  31. local ignore = true
  32.  
  33. local trimmed
  34. while true do
  35.  
  36.     local sourceLine = sourceFile:read("*l")
  37.  
  38.     if sourceLine == nil then break end
  39.  
  40.     trimmed = trim(sourceLine)
  41.     ignore = false
  42.  
  43.     if ignoredOpen[trimmed] then
  44.         discData = true  
  45.         ignore = true
  46.     end
  47.  
  48.     if ignoredClose[trimmed] then
  49.         discData = false
  50.         ignore = true
  51.     end
  52.    
  53.     if (not discData) and (not ignore) then
  54.         targetFile:write(sourceLine)
  55.         targetFile:write("\n")
  56.     end
  57.  
  58. end
  59.  
  60. sourceFile:close()
  61. targetFile:close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement