summaryrefslogtreecommitdiff
path: root/data_lib.py
diff options
context:
space:
mode:
authorrusinthread <rusinthread@cock.li>2017-01-07 23:57:44 +0300
committerrusinthread <rusinthread@cock.li>2017-01-07 23:57:44 +0300
commit5bf61081d39bf47e756b5c9775e8614036f8fab8 (patch)
treed9e987ccfd79a7567987c7447c53f19fd2e1fcf9 /data_lib.py
parentb08c2582ec94c34672902ab1579ec584d04d5727 (diff)
improve decoding of type1 ciphertexts
Diffstat (limited to 'data_lib.py')
-rw-r--r--data_lib.py43
1 files changed, 35 insertions, 8 deletions
diff --git a/data_lib.py b/data_lib.py
index 90b1bfd..5bf468e 100644
--- a/data_lib.py
+++ b/data_lib.py
@@ -1,21 +1,41 @@
import os
import json
import re
+import datetime
+import time
CWD = os.path.dirname(os.path.realpath(__file__))
-def load_data():
+def _data_sort_len(i):
+ return len(i['text'])
+
+def _data_sort_date(i):
+ return int(time.mktime(datetime.datetime.strptime(i['date'], '%d/%m/%y').timetuple()))
+
+# sort: 'len', 'date'
+def load_data(sort='len', sort_reverse=False):
with open(os.path.join(CWD, "data.json")) as f:
data = json.loads(f.read())
# ignore placeholders
data = list(filter(lambda i: i['text'] != '', data))
-
+
+ # sort
+ if sort == 'len':
+ sort_f = _data_sort_len
+ elif sort == 'date':
+ sort_f = _data_sort_date
+ else:
+ raise Error("Unknown sort type " + str(sort))
+
+ data = sorted(data, key=sort_f, reverse=sort_reverse)
+
+
return data
def clean_string(s, remove_junk=False):
s = s.replace(')', ') ')
- s = re.sub(r'(\!|\.)([^\)])', r'\1 \2', s)
+ s = re.sub(r'(\!|\.|\]|\,)([^\)])', r'\1 \2', s)
#s = s.replace('/', ' ')
s = s.upper()
@@ -35,16 +55,20 @@ def clean_string(s, remove_junk=False):
'С ВЫШЕСТОЯЩИМИ',
#'ПРИСУТСТВИЕ',
#'ЛИНЕЙНО',
- 'ЗАКОННО!',
+ 'ИНСТРУКЦИИ',
+ 'ЗАКОННО',
'ПОХЛЕБКА',
'СВЯЗЕЙ',
'ЖУЮЩЕГО ХРЯЩИ',
+ 'ИНДЕКСИРОВАН БЕЗУКОРИЗНЕНННО',
'ИНДЕКСИРОВАН БЕЗУКОРИЗНЕННО',
'ОТКЛАДЫВАЕТСЯ ЛИНЕЙНО',
+ 'УСТАЛИ СМОТРЯЩИХ',
'- ЕГО ВЕЛИЧЕСТВО',
'ГУБЕРНИЯ',
'С ВЫШЕСТОЯЩИМИ КОНТРОЛЬ',
- 'С ЛОКАЦИИ',
+ 'С ЛОКАЦИИ',
+ 'КАЗНЬ ВЫШЕСТОЯЩ',
#'КАЗНЬ',
'ГУБЕРНИЯ',
'ПРОВЕРКИ',
@@ -97,17 +121,20 @@ def clean_string(s, remove_junk=False):
# только с пробелами
junks_nwords = list(filter(lambda w: w not in junks_words, junks))
+ #print(junks_nwords)
if remove_junk:
s = s.split(' ')
- s = list(filter(lambda l: re.sub(r'\.|\!$', '', l) not in junks_words, s))
+ s = list(filter(lambda l: re.sub(r'\.|\!|,$', '', l) not in junks_words, s))
s = ' '.join(s)
for j in junks_nwords:
s = s.replace(j, '')
- # хортица - это буква Х
s = s.replace('Х О Р Т И Ц А', 'Х_О_Р_Т_И_Ц_А')
+ s = s.replace('ЯРОСЛАВСКАЯ ГУБЕРНИЯ', 'ЯРОСЛАВСКАЯ_ГУБЕРНИЯ')
+ s = s.replace('ЩУКА В МЕШКЕ', 'ЩУКА_В_МЕШКЕ')
+ s = s.replace('Ъ - ВЕЛИЧЕСТВЕННО', 'Ъ_-_ВЕЛИЧЕСТВЕННО')
s = re.sub(r'\s+', ' ', s).strip()
return s
@@ -116,7 +143,7 @@ def decode(s, is_url=False):
buf = ''
for word in s.split(' '):
word = word.strip()
- if word == '':
+ if word == '' or word == '!':
continue
if re.match(r'^\d+', word):