def internal_error(self, what, *pars): ext_sleep = 0 if what == 'noopen': err = u'13Ошибка открытия файла ^15_%s' % pars[0] elif what == 'nofile': err = u'13Не передали файл параметром!' elif what == 'no_ext': err = u'13Не определили расширение файла ^15_%s' % pars[0] elif what == 'nogenerator': err = u'13Не создан генератор (Generator)' elif what == 'no_ids': err = u'13Закончились сгенерированные последовательности\n' err += u'Увеличьте количество символов для генерации\n' err += u'Сейчас сгенерировано ^15_%d ^13_последовательностей' % pars[ 0] ext_sleep = 2 elif what == 'already': err = u'13Файл ^15_%s ^13_уже защищён.\nПовторная защита не допускается.' % pars[ 0] ext_sleep = 1 else: cp.cprint(u'12Неизвестная ошибка!') cp.cprint(err) # cp.cprint(u'14--------------- ^12_ERROR ^14_---------------') # raw_input('--------------- END ---------------') time.sleep(3 + ext_sleep) exit(1)
def read_settings(filename_config): params = {} fileini = os.path.join(PATH_SCRIPT, filename_config) if not os.path.isfile(fileini): cp.cprint(u'13Ошибка открытия файла ^15_%s' % filename_config) time.sleep(3 + ext_sleep) exit(1) settings = Ini(fileini) settings.set_name_section('Global') sec_param = settings.get_allparam() sec_param = {i[0]: i[1] for i in sec_param} params['fin'] = sec_param.get('suffix_decode', u'').decode('utf-8') params['fout'] = sec_param.get('suffix_protection', u'').decode('utf-8') params['fcod'] = sec_param.get('code', 'cp1251').decode('utf-8') settings.set_name_section('Encoder') sec_param = settings.get_allparam() sec_param = {i[0]: i[1] for i in sec_param} # print sec_param params['symbols'] = sec_param.get('symbols', u'hbdp').decode('utf-8') params['length'] = int(sec_param.get('length', 8)) params['edging'] = sec_param.get('edging', u'q').decode('utf-8') params['delspaces'] = to_bool( sec_param.get('del_spaces', 'False').decode('utf-8')) params['delcomments'] = to_bool( sec_param.get('del_comments', 'False').decode('utf-8')) params['levels'] = int(sec_param.get('levels', 1)) params['console'] = to_bool( sec_param.get('console', 'False').decode('utf-8')) params['statistics'] = to_bool( sec_param.get('statistics', 'False').decode('utf-8')) # print params return params
def print_stat_table(self, counter, max_key): values = [val for key, val in counter.items()] if not values: return values.sort(reverse=True) max_val = values[0] print 'max count ', max_val # print counter cp.cprint2(u'5\n%s' % (u'График количества строк по длине строки'.center(80))) cp.cprint2(u'8%s' % ('-' * 80)) over80 = 0 for line in range(max_val, -1, -1): sp = [] for i in range(max_key + 1): val = counter.get(i, 0) if i > 79 and val > line: over80 += 1 if i % 3 == 0: color = 2 elif (i - 1) % 3 == 0: color = 3 else: color = 6 if val > line: if sp: sp.append('^%d_' % color) else: sp.append(str(color)) sp.append('I') else: sp.append(' ') cp.cprint2(u'%s\r' % (''.join(sp))) s1 = [str(n) for n in range(0, 10, 3)] s1b = [str(n) for n in range(12, 79, 3)] s2 = [str(n) for n in range(1, 10, 3)] s2b = [str(n) for n in range(10, 79, 3)] s3 = [str(n) for n in range(2, 10, 3)] s3b = [str(n) for n in range(11, 79, 3)] cp.cprint2(u'8%s\r' % ('-' * 80)) cp.cprint2(u'2_%s %s' % (' '.join(s1), ' '.join(s1b))) cp.cprint2(u'3_ %s %s\n' % (' '.join(s2), ' '.join(s2b))) cp.cprint(u'6_ %s %s\n' % (' '.join(s3), ' '.join(s3b))) if over80: cp.cprint(u'5Строк длиной 80 символов и более ^15_%d ^5_шт.' % over80)
def run(self): self.create_ids(self.symbols, self.length, self.edging) len_ids = len(self.ids) for filename in self.files: cp.cprint(u'1свободных ids: ^15_%d' % (len(self.ids))) print cp.cprint(u'1Обрабатываем файл:') cp.cprint(u'3_%s \n' % filename) class_enc = EncoderCMS(filename, self.fin, self.fout, self.fcod, self.ids, len_ids, self.console) self.ids = class_enc.encode_(self.delspace, self.delcomment, self.levels, self.stat_freq) if self.console: print u'\nВернулось %d шт. ids' % len(self.ids) print '\n%s' % ('-' * 80) cp.cprint(u"3Всего затрачено ^15_%d шт. ^3_'ids'\n" % (len_ids - len(self.ids)))
# position_quotes = EncoderCMS.get_position_symbol(st, '"') # exit() filename_config = u'settings_encrypt.ini' params = read_settings(filename_config) # fin = u'_decode' # суффикс входного файла # fout = u'_protection' # суффикс выходного файла # fcod = 'cp1251' # кодировка выходного файла # symbols = 'hbdp' # набор символов для генерации последовательности # length = 8 # длина основной части последовательности # edging = 'q' # символы обрамления # delspaces = False # удалять пустые строки # delcomments = False # удалять комментарии # levels = 1 # количество проходов кодирования # console = True # показывать процесс # statistics = False # статистика количества строк по длине строки GeneralEncoder(**params).run() # time.sleep(1) # raw_input('--------------- END ---------------') cp.cprint(u'2------------ Скрипт защищён ----------\n') raw_input() # ------------------------------------------------------------------------------ # chdir /D D:\Яндекс Диск\_Python\A_Python\Encrypt_CMS # python "D:\Яндекс Диск\_Python\A_Python\Encrypt_CMS\Encode_CMS.py" My_encr_011_decode.cms # python "D:\Яндекс Диск\_Python\A_Python\Encrypt_CMS\Encode_CMS.py" Test_script.cms My_encr_011_decode.cms # python "D:\Яндекс Диск\_Python\A_Python\Encrypt_CMS\Encode_CMS.py" Luhn_check_small.cms