#! /usr/bin/env python3
# -*- coding: utf-8 -*-
import codecs, sys, argparse
key = ":E9 EE E1 E0 ED FB E9 20 F5 F3 E9:"
help_text = '''
-e\\-encode [файл або кілька файлів(через пробіл)] - запакувати
-o\\-output_file файл - кінцевий файл(обов'яковий параметр для -e\\-encode)
-r\\--rat true\\false - замаскувати файл\\файли під інший файл(true - так,false - ні)(головний файл перший в списку -e, інші маскуються під нього)(в -o вказати файл з розширенням першого файлу)
-d\\-decode [файл або кілька файлів(через пробіл)] - розпакувати
'''
def r_file(file,rat):
f = open(file,'rb')
temp = b""
if rat == "false":
temp += codecs.utf_8_encode(str(key+":"+file+":\n"))[0]
for ff in f:
temp += ff
f.close()
return temp
def w_file(file,text):
f = open(file,'wb')
f.write(text)
f.close()
def f_decode(file):
f = open(file,"rb")
name = ""
text = b""
n = 0
for ff in f:
if key in codecs.utf_8_decode(ff)[0]: # строка 36
text = b""
name = codecs.utf_8_decode(ff)[0].split(":")[3]
n = 0
else:
f1 = open(name,"ab")
f1.write(ff)
f1.close()
f.close()
def createParser ():
parser = argparse.ArgumentParser()
parser.add_argument ('-e', '--encode', nargs='+')
parser.add_argument ('-d', '--decode', nargs='+')
parser.add_argument ('-o', '--output_file', nargs='?')
parser.add_argument ('-r', '--rat', nargs='?',default="false")
parser.add_argument ('-i', '--infa',default=None)
return parser
parser = createParser()
namespace = parser.parse_args(sys.argv[1:])
if namespace.encode != None:
if namespace.output_file == None:
print("Параметр -o\\-output_file обов`язковий")
else:
files = namespace.encode
f = namespace.output_file
t = b''
rat = namespace.rat
for file in files:
if rat == "true":
t += r_file(file,"true")
rat = "false"
else:
t += r_file(file,"false")
w_file(f,t)
if namespace.decode != None:
files = namespace.decode
for file in files:
f_decode(file) #строка 78
if namespace.infa == None or namespace.infa != None:
print(help_text)