Advertisement
Andy73

AndyCode Archiver v.0.3.1

Apr 20th, 2014
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.63 KB | None | 0 0
  1. --[[
  2. Pure Lua archiver made by Andy73 a.k.a. viluon
  3.  
  4. Copyright 2014
  5. version 0.3.1 BETA (3rd public release)
  6.  
  7. usage: archiver <compress|extract|help> <file input path> <file output path>
  8.  
  9. FUNCTIONAL!!!
  10. ]]
  11.  
  12. local s=48
  13.  
  14. local function help()
  15. print("Pure Lua archiver by Andy a.k.a. viluon copyright 2014")
  16. print("version 0.3 BETA")
  17. print("")
  18. print("Current dictionary size: "..s.." keywords")
  19. print("")
  20. print("Please note:Beta versions can cause unexpected data changes. Andy is not responsible for any data corruption or removals caused by this program. Use at your own risk.")
  21. end
  22.  
  23. local function usage()
  24. print("Usage:")
  25. print(" archiver <compress|extract|help> <file input path> <file output path>")
  26. print("'compress','extract' or 'help' can be shortened to 'c','e' or '?'")
  27. end
  28.  
  29. local tArgs={...}
  30.  
  31. local t=nil
  32.  
  33. local function r(a,b)
  34. t=string.gsub(t,a,b)
  35. end
  36.  
  37. --COMPRESS
  38. local function compress(...)
  39. local args={...}--ARGS ARE SOLVED BEFORE!!!
  40. local file=fs.open(shell.resolve(tostring(args[1])),"r")
  41. print("FileSize original:"..fs.getSize(shell.resolve(tostring(args[1])))) print("asd")
  42. if file then t=file.readAll() else error("Can't open:Requested source file doesn't exist.") end
  43. file:close()
  44. --FIRST ROUND SYMBOL @ (12x)
  45. r("true","@ě") --new format
  46. r("false","@š")
  47. r("setTextScale","@č")
  48. r("setBackgroundColor","@ř")
  49. r("os.loadAPI","@ž")
  50. r("color","@ý")
  51. r("setTextColor","@á")
  52. r("text","@í")
  53. r("Text","@é")
  54. r("write","@ú")
  55. r("elseif","@ů")
  56. r("local","@ˇ")
  57. r("function","@´")
  58. --SECOND ROUND SYMBOL # (12x)
  59. r("then","#ě")
  60. r("end","#š")
  61. r("else","#č")
  62. r("tostring%(","#ř")
  63. r("tonumber%(","#ž")
  64. r("string","#ý")
  65. r("math","#á")
  66. r("=os.pullEventRaw%(","#í")
  67. r("=os.pullEvent%(","#é")
  68. r("= os.pullEventRaw%(","#ú")
  69. r("= os.pullEvent%(","#ů")
  70. r("window","#ˇ")
  71. r("process","#´")
  72. --THIRD ROUND SYMBOL ! (12x)
  73. r("and","!ě")
  74. r("not","!š")
  75. r("print","!č")
  76. r(" == ","!ř")
  77. r(" ~= ","!ž")
  78. r("= fs.exists%(","!ý")
  79. r("=pcall%(","!á")
  80. r("= pcall%(","!í")
  81. r("pcall%(","!é")
  82. r("=fs.open%(","!ú")
  83. r("= fs.open%(","!ů")
  84. r("fs.exists%(","!ˇ")
  85. r("print%(","!´")
  86. --FOURTH ROUND SYMBOL / (12x)
  87. r("=fs.isDir%(","/š")
  88. r("= fs.isDir%(","/č")
  89. r("fs.isDir%(","/ř")
  90. r("=fs.isReadOnly%(","/ž")
  91. r("= fs.isReadOnly%(","/ý")
  92. r("fs.isReadOnly%(","/á")
  93. r("=fs.getDrive%(","/í")
  94. r("= fs.getDrive%(","/é")
  95. r("fs.getDrive%(","/ú")
  96. r("=fs.getSize%(","/ů")
  97. r("= fs.getSize%(","/ˇ")
  98. r("fs.getSize%(","/´")
  99.  
  100. local target=fs.open(tostring(args[2]),"w")
  101. target.write(t)
  102. target:close()
  103.  
  104. print("FileSize comprimed:"..fs.getSize(args[2]))
  105. one=tonumber(fs.getSize(shell.resolve(args[1])))/100
  106. size=fs.getSize(args[2])
  107. --[[DEBUG
  108. print("fs.getSize(...):"..fs.getSize(args[1]))
  109. print("one:"..one)
  110. print("size:"..size)
  111. --/DEBUG]]
  112. percent=100-(size/one)
  113. print("comprimed by "..percent.."%")
  114. end
  115.  
  116. --EXTRACT
  117. local function extract(...)
  118. local args={...}--ARGS ARE SOLVED BEFORE!!!
  119. local file=fs.open(shell.resolve(tostring(args[1])),"r") print("asd")
  120. t=file.readAll()
  121. file:close()
  122. --FIRST ROUND SYMBOL @ (12x)
  123. r("@ě","true")
  124. r("@š","false")
  125. r("@č","setTextScale")
  126. r("@ř","setBackgroundColor")
  127. r("@ž","os.loadAPI")
  128. r("@ý","color")
  129. r("@á","setTextColor")
  130. r("@í","text")
  131. r("@é","Text")
  132. r("@ú","write")
  133. r("@ů","elseif")
  134. r("@ˇ","local")
  135. r("@´","function")
  136. --SECOND ROUND SYMBOL # (12x)
  137. r("#ě","then")
  138. r("#š","end")
  139. r("#č","else")
  140. r("#ř","tostring%(")
  141. r("#ž","tonumber%(")
  142. r("#ý","string")
  143. r("#á","math")
  144. r("#í","=os.pullEventRaw%(")
  145. r("#é","=os.pullEvent%(")
  146. r("#ú","= os.pullEventRaw%(")
  147. r("#ů","= os.pullEvent%(")
  148. r("#ˇ","window")
  149. r("#´","process")
  150. --THIRD ROUND SYMBOL ! (12x)
  151. r("!ě","and")
  152. r("!š","not")
  153. r("!č","print")
  154. r("!ř"," == ")
  155. r("!ž"," ~= ")
  156. r("!ý","= fs.exists%(")
  157. r("!á","=pcall%(")
  158. r("!í","= pcall%(")
  159. r("!é","pcall%(")
  160. r("!ú","=fs.open%(")
  161. r("!ů","= fs.open%(")
  162. r("!ˇ","fs.exists%(")
  163. r("!´","print%(")
  164. --FOURTH ROUND SYMBOL / (12x)
  165. r("/š","=fs.isDir%(")
  166. r("/č","= fs.isDir%(")
  167. r("/ř","fs.isDir%(")
  168. r("/ž","=fs.isReadOnly%(")
  169. r("/ý","= fs.isReadOnly%(")
  170. r("/á","fs.isReadOnly%(")
  171. r("/í","=fs.getDrive%(")
  172. r("/é","= fs.getDrive%(")
  173. r("/ú","fs.getDrive%(")
  174. r("/ů","=fs.getSize%(")
  175. r("/ˇ","= fs.getSize%(")
  176. r("/´","fs.getSize%(")
  177.  
  178. local target=fs.open(args[2],"w")
  179. target.write(t)
  180. target:close()
  181.  
  182. print("done!")
  183. end
  184.  
  185. if tostring(tArgs[1])=="compress" or tostring(tArgs[1])=="c" then
  186. compress(tArgs[2],tArgs[3])
  187. elseif tostring(tArgs[1])=="extract" or tostring(tArgs[1])=="e" then
  188. extract(tArgs[2],tArgs[3])
  189. elseif tostring(tArgs[1])=="help" or tostring(tArgs[1])=="?" then
  190. help()
  191. else
  192. usage()
  193. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement