| 3 | this.EJS = EJS; |
| 4 | } |
| 5 | isCompressed(data) { //https://www.garykessler.net/library/file_sigs.html |
| 6 | //todo. Use hex instead of numbers |
| 7 | if ((data[0] === 80 && data[1] === 75) && ((data[2] === 3 && data[3] === 4) || (data[2] === 5 && data[3] === 6) || (data[2] === 7 && data[3] === 8))) { |
| 8 | return "zip"; |
| 9 | } else if (data[0] === 55 && data[1] === 122 && data[2] === 188 && data[3] === 175 && data[4] === 39 && data[5] === 28) { |
| 10 | return "7z"; |
| 11 | } else if ((data[0] === 82 && data[1] === 97 && data[2] === 114 && data[3] === 33 && data[4] === 26 && data[5] === 7) && ((data[6] === 0) || (data[6] === 1 && data[7] == 0))) { |
| 12 | return "rar"; |
| 13 | } |
| 14 | return null; |
| 15 | } |
| 16 | decompress(data, updateMsg, fileCbFunc) { |
| 17 | const compressed = this.isCompressed(data.slice(0, 10)); |
| 18 | if (compressed === null) { |