chgksuite 0.24.0b1__tar.gz → 0.24.0b3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {chgksuite-0.24.0b1/chgksuite.egg-info → chgksuite-0.24.0b3}/PKG-INFO +3 -2
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/cli.py +20 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/composer/composer_common.py +11 -2
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/composer/docx.py +9 -8
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/composer/lj.py +2 -2
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/composer/openquiz.py +0 -1
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/composer/pptx.py +2 -3
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/composer/telegram.py +6 -19
- chgksuite-0.24.0b3/chgksuite/resources/regexes_by.json +16 -0
- chgksuite-0.24.0b3/chgksuite/resources/regexes_en.json +16 -0
- chgksuite-0.24.0b3/chgksuite/resources/regexes_kz_cyr.json +15 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/resources/regexes_ru.json +13 -13
- chgksuite-0.24.0b3/chgksuite/resources/regexes_sr.json +16 -0
- chgksuite-0.24.0b3/chgksuite/resources/regexes_ua.json +16 -0
- chgksuite-0.24.0b3/chgksuite/resources/regexes_uz_cyr.json +15 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/typotools.py +16 -14
- chgksuite-0.24.0b3/chgksuite/version.py +1 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3/chgksuite.egg-info}/PKG-INFO +3 -2
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/history.md +9 -0
- chgksuite-0.24.0b1/chgksuite/resources/regexes_by.json +0 -16
- chgksuite-0.24.0b1/chgksuite/resources/regexes_en.json +0 -16
- chgksuite-0.24.0b1/chgksuite/resources/regexes_kz_cyr.json +0 -15
- chgksuite-0.24.0b1/chgksuite/resources/regexes_sr.json +0 -16
- chgksuite-0.24.0b1/chgksuite/resources/regexes_ua.json +0 -16
- chgksuite-0.24.0b1/chgksuite/resources/regexes_uz_cyr.json +0 -15
- chgksuite-0.24.0b1/chgksuite/version.py +0 -1
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/LICENSE +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/MANIFEST.in +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/README.md +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/__init__.py +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/__main__.py +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/common.py +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/composer/__init__.py +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/composer/chgksuite_parser.py +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/composer/db.py +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/composer/latex.py +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/composer/reddit.py +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/composer/stats.py +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/composer/telegram_parser.py +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/parser.py +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/parser_db.py +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/resources/cheader.tex +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/resources/fix-unnumbered-sections.sty +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/resources/labels_by.toml +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/resources/labels_by_tar.toml +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/resources/labels_en.toml +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/resources/labels_kz_cyr.toml +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/resources/labels_ru.toml +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/resources/labels_sr.toml +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/resources/labels_ua.toml +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/resources/labels_uz.toml +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/resources/labels_uz_cyr.toml +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/resources/pptx_config.toml +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/resources/template.docx +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/resources/template.pptx +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/resources/trello.json +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/trello.py +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite/vulture_whitelist.py +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite.egg-info/SOURCES.txt +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite.egg-info/dependency_links.txt +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite.egg-info/entry_points.txt +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite.egg-info/requires.txt +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/chgksuite.egg-info/top_level.txt +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/setup.cfg +0 -0
- {chgksuite-0.24.0b1 → chgksuite-0.24.0b3}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: chgksuite
|
|
3
|
-
Version: 0.24.
|
|
3
|
+
Version: 0.24.0b3
|
|
4
4
|
Summary: A package for chgk automation
|
|
5
5
|
Home-page: https://gitlab.com/peczony/chgksuite
|
|
6
6
|
Author: Alexander Pecheny
|
|
@@ -33,6 +33,7 @@ Dynamic: classifier
|
|
|
33
33
|
Dynamic: description
|
|
34
34
|
Dynamic: description-content-type
|
|
35
35
|
Dynamic: home-page
|
|
36
|
+
Dynamic: license-file
|
|
36
37
|
Dynamic: requires-dist
|
|
37
38
|
Dynamic: summary
|
|
38
39
|
|
|
@@ -81,6 +81,26 @@ class ArgparseBuilder:
|
|
|
81
81
|
advanced=True,
|
|
82
82
|
argtype="radiobutton",
|
|
83
83
|
)
|
|
84
|
+
self.add_argument(
|
|
85
|
+
parser,
|
|
86
|
+
"--replace_no_break_spaces",
|
|
87
|
+
choices=["on", "off"],
|
|
88
|
+
default=default_overrides.get("replace_no_break_spaces") or "on",
|
|
89
|
+
help="add non-breaking spaces where applicable",
|
|
90
|
+
caption="Добавить неразрывные пробелы",
|
|
91
|
+
advanced=True,
|
|
92
|
+
argtype="radiobutton",
|
|
93
|
+
)
|
|
94
|
+
self.add_argument(
|
|
95
|
+
parser,
|
|
96
|
+
"--replace_no_break_hyphens",
|
|
97
|
+
choices=["on", "off"],
|
|
98
|
+
default=default_overrides.get("replace_no_break_hyphens") or "on",
|
|
99
|
+
help="add non-breaking hyphens where applicable",
|
|
100
|
+
caption="Добавить неразрывные дефисы",
|
|
101
|
+
advanced=True,
|
|
102
|
+
argtype="radiobutton",
|
|
103
|
+
)
|
|
84
104
|
self.add_argument(
|
|
85
105
|
parser,
|
|
86
106
|
"-v",
|
|
@@ -17,7 +17,7 @@ import toml
|
|
|
17
17
|
from PIL import Image
|
|
18
18
|
|
|
19
19
|
import chgksuite.typotools as typotools
|
|
20
|
-
from chgksuite.common import get_chgksuite_dir, init_logger, log_wrap
|
|
20
|
+
from chgksuite.common import DummyLogger, get_chgksuite_dir, init_logger, log_wrap
|
|
21
21
|
from chgksuite.typotools import re_lowercase, re_percent, re_uppercase, re_url
|
|
22
22
|
|
|
23
23
|
|
|
@@ -68,7 +68,9 @@ def make_filename(s, ext, args, addsuffix=""):
|
|
|
68
68
|
if addsuffix:
|
|
69
69
|
bn += addsuffix
|
|
70
70
|
if args.add_ts == "on":
|
|
71
|
-
return "{}_{}.{}".format(
|
|
71
|
+
return "{}_{}.{}".format(
|
|
72
|
+
bn, datetime.datetime.now().strftime("%Y%m%dT%H%M"), ext
|
|
73
|
+
)
|
|
72
74
|
return bn + "." + ext
|
|
73
75
|
|
|
74
76
|
|
|
@@ -401,6 +403,13 @@ class BaseExporter:
|
|
|
401
403
|
else:
|
|
402
404
|
self.logger = init_logger("composer", debug=self.args.debug)
|
|
403
405
|
|
|
406
|
+
def _replace_no_break(self, s):
|
|
407
|
+
return typotools.replace_no_break(
|
|
408
|
+
s,
|
|
409
|
+
spaces=self.args.replace_no_break_spaces == "on",
|
|
410
|
+
hyphens=self.args.replace_no_break_hyphens == "on",
|
|
411
|
+
)
|
|
412
|
+
|
|
404
413
|
def parse_4s_elem(self, *args, **kwargs):
|
|
405
414
|
kwargs["logger"] = self.logger
|
|
406
415
|
return _parse_4s_elem(*args, **kwargs)
|
|
@@ -14,7 +14,6 @@ from docx.shared import Pt as DocxPt
|
|
|
14
14
|
|
|
15
15
|
from chgksuite.common import log_wrap, replace_escaped
|
|
16
16
|
from chgksuite.composer.composer_common import BaseExporter, backtick_replace, parseimg
|
|
17
|
-
from chgksuite.typotools import replace_no_break_spaces
|
|
18
17
|
|
|
19
18
|
WHITEN = {
|
|
20
19
|
"handout": False,
|
|
@@ -126,7 +125,7 @@ class DocxExporter(BaseExporter):
|
|
|
126
125
|
else:
|
|
127
126
|
text = run[1]["for_print"]
|
|
128
127
|
if kwargs.get("replace_no_break_spaces"):
|
|
129
|
-
text =
|
|
128
|
+
text = self._replace_no_break(text)
|
|
130
129
|
r = para.add_run(text)
|
|
131
130
|
elif run[0] == "hyperlink" and not (
|
|
132
131
|
whiten and self.args.spoilers == "whiten"
|
|
@@ -175,7 +174,7 @@ class DocxExporter(BaseExporter):
|
|
|
175
174
|
else:
|
|
176
175
|
text = run[1]
|
|
177
176
|
if kwargs.get("replace_no_break_spaces"):
|
|
178
|
-
text =
|
|
177
|
+
text = self._replace_no_break(text)
|
|
179
178
|
r = para.add_run(text)
|
|
180
179
|
if "italic" in run[0]:
|
|
181
180
|
r.italic = True
|
|
@@ -206,9 +205,7 @@ class DocxExporter(BaseExporter):
|
|
|
206
205
|
return hyperlink
|
|
207
206
|
|
|
208
207
|
def add_question(
|
|
209
|
-
self,
|
|
210
|
-
element, skip_qcount=False, screen_mode=False,
|
|
211
|
-
external_para=None
|
|
208
|
+
self, element, skip_qcount=False, screen_mode=False, external_para=None
|
|
212
209
|
):
|
|
213
210
|
q = element[1]
|
|
214
211
|
if external_para is None:
|
|
@@ -326,8 +323,12 @@ class DocxExporter(BaseExporter):
|
|
|
326
323
|
table.cell(0, 0).paragraphs[0].add_run("Версия для ведущего\n").bold = True
|
|
327
324
|
table.cell(0, 1).paragraphs[0].add_run("Версия для экрана\n").bold = True
|
|
328
325
|
|
|
329
|
-
self.add_question(
|
|
330
|
-
|
|
326
|
+
self.add_question(
|
|
327
|
+
element, screen_mode=False, external_para=table.cell(0, 0).paragraphs[0]
|
|
328
|
+
)
|
|
329
|
+
self.add_question(
|
|
330
|
+
element, screen_mode=True, external_para=table.cell(0, 1).paragraphs[0]
|
|
331
|
+
)
|
|
331
332
|
|
|
332
333
|
self.doc.add_paragraph()
|
|
333
334
|
|
|
@@ -17,7 +17,7 @@ from chgksuite.composer.composer_common import (
|
|
|
17
17
|
md5,
|
|
18
18
|
parseimg,
|
|
19
19
|
)
|
|
20
|
-
from chgksuite.typotools import re_lowercase, re_uppercase
|
|
20
|
+
from chgksuite.typotools import re_lowercase, re_uppercase
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
class LjExporter(BaseExporter):
|
|
@@ -375,7 +375,7 @@ class LjExporter(BaseExporter):
|
|
|
375
375
|
else:
|
|
376
376
|
res += self.htmlrepl(run[1])
|
|
377
377
|
if replace_spaces:
|
|
378
|
-
res =
|
|
378
|
+
res = self._replace_no_break(res)
|
|
379
379
|
return res
|
|
380
380
|
|
|
381
381
|
@staticmethod
|
|
@@ -10,7 +10,6 @@ from pptx.util import Pt as PptxPt
|
|
|
10
10
|
|
|
11
11
|
from chgksuite.common import log_wrap, replace_escaped
|
|
12
12
|
from chgksuite.composer.composer_common import BaseExporter, backtick_replace, parseimg
|
|
13
|
-
from chgksuite.typotools import replace_no_break_spaces
|
|
14
13
|
|
|
15
14
|
|
|
16
15
|
class PptxExporter(BaseExporter):
|
|
@@ -51,7 +50,7 @@ class PptxExporter(BaseExporter):
|
|
|
51
50
|
def pptx_format(self, el, para, tf, slide, replace_spaces=True):
|
|
52
51
|
def r_sp(text):
|
|
53
52
|
if replace_spaces:
|
|
54
|
-
return
|
|
53
|
+
return self._replace_no_break(text)
|
|
55
54
|
return text
|
|
56
55
|
|
|
57
56
|
if isinstance(el, list):
|
|
@@ -127,7 +126,7 @@ class PptxExporter(BaseExporter):
|
|
|
127
126
|
for punct in (".", ",", "!", "?", ":"):
|
|
128
127
|
s = s.replace(" " + punct, punct)
|
|
129
128
|
if replace_spaces:
|
|
130
|
-
s =
|
|
129
|
+
s = self._replace_no_break(s)
|
|
131
130
|
s = s.strip()
|
|
132
131
|
return s
|
|
133
132
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import importlib
|
|
2
1
|
import os
|
|
3
2
|
import random
|
|
4
3
|
import re
|
|
4
|
+
import shutil
|
|
5
5
|
import sqlite3
|
|
6
6
|
import time
|
|
7
7
|
|
|
@@ -27,12 +27,13 @@ class TelegramExporter(BaseExporter):
|
|
|
27
27
|
try:
|
|
28
28
|
self.init_tg()
|
|
29
29
|
except (errors.AuthKeyUnregisteredError, sqlite3.OperationalError) as e:
|
|
30
|
-
self.logger.warning(f"Session error: {str(e)}")
|
|
31
30
|
filepath = os.path.join(
|
|
32
31
|
self.chgksuite_dir, self.args.tgaccount + ".session"
|
|
33
32
|
)
|
|
33
|
+
new_filepath = filepath + ".bak"
|
|
34
|
+
self.logger.warning(f"Session error: {str(e)}. Moving session: {filepath} -> {new_filepath}")
|
|
34
35
|
if os.path.isfile(filepath):
|
|
35
|
-
|
|
36
|
+
shutil.move(filepath, new_filepath)
|
|
36
37
|
self.init_tg()
|
|
37
38
|
self.qcount = 1
|
|
38
39
|
self.number = 1
|
|
@@ -328,22 +329,8 @@ class TelegramExporter(BaseExporter):
|
|
|
328
329
|
)
|
|
329
330
|
root_msg_in_chat = result.messages[0]
|
|
330
331
|
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
if channel_username:
|
|
335
|
-
root_msg_link = f"https://t.me/{channel_username}/{root_msg.id}"
|
|
336
|
-
else:
|
|
337
|
-
root_msg_link = f"https://t.me/c/{str(self.channel_id)[4:]}/{root_msg.id}"
|
|
338
|
-
|
|
339
|
-
if chat_username:
|
|
340
|
-
root_msg_in_chat_link = (
|
|
341
|
-
f"https://t.me/{chat_username}/{root_msg_in_chat.id}"
|
|
342
|
-
)
|
|
343
|
-
else:
|
|
344
|
-
root_msg_in_chat_link = (
|
|
345
|
-
f"https://t.me/c/{str(self.chat_id)[4:]}/{root_msg_in_chat.id}"
|
|
346
|
-
)
|
|
332
|
+
root_msg_link = self.get_message_link(root_msg, self.channel_entity)
|
|
333
|
+
root_msg_in_chat_link = self.get_message_link(root_msg_in_chat, self.chat_entity)
|
|
347
334
|
|
|
348
335
|
self.logger.info(
|
|
349
336
|
f"Posted message {root_msg_link} ({root_msg_in_chat_link} in chat)"
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"tour": "^(#\\s+)?Т[Уу][Рр]\\s?№?\\s?([0-9IVXLCDM]*)([\\.:])?$",
|
|
3
|
+
"tourrev": "^([0-9IVXLCDM]+)\\s[Тт][Уу][Рр]([\\.:])?$",
|
|
4
|
+
"question": "П[Ыы][Тт][Аа][Нн][Ьь]?[Нн][Ее]\\s?[№N]?([0-9\\s]*)\\s?([\\.:]|\n|\r\n|$)",
|
|
5
|
+
"handout": "Р[Аа][Зз][Дд][Аа][Тт]([Аа][Чч][Нн]|[Кк][Аа][Вв])[Ыы][\\s\\s][Мм][Аа][Тт][Ээ][Рр][Ыы][Яя][Лл][\\.:]",
|
|
6
|
+
"answer": "А[Дд][Кк][Аа][Зз][Ыы]?\\s?[№N]?([0-9]+)?\\s?[\\.:]",
|
|
7
|
+
"zachet": "З[Аа][Лл][Іі][Кк]\\s?[\\.:]",
|
|
8
|
+
"nezachet": "Н[Ее][Зз][Аа][Лл][Іі][Кк]\\s?[\\.:]",
|
|
9
|
+
"comment": "К[Аа][Мм]([Ее][Нн][Тт]([Аа][Рр]([Ыы][Йй])?|\\.)|\\.)\\s?[№N]?([0-9]+)?\\s?[\\.:]",
|
|
10
|
+
"author": "А[Ўў][Тт][Аа][Рр](\\(?[Ыы]?\\)?|[Кк][АаИи])?\\s?[\\.:]",
|
|
11
|
+
"source": "К[Рр][Ыы][Нн][Іі][Цц][АаЫы]\\s?[\\.:]",
|
|
12
|
+
"editor": "[Рр][Ээ][Дд][Аа][Кк][Тт][Аа][Рр]([Ыы])?(\\s?[\\.:]|\\s[\\-–—]+\\s)",
|
|
13
|
+
"date": "Д[Аа][Тт][Аа]\\s?[\\.:]",
|
|
14
|
+
"date2": "(^|\\s)студзеня|лютага|сакавіка|красавіка|мая|чэрвеня|ліпеня|жніўня|верасня|кастрычніка|лістапада|снежня(\\s|$)",
|
|
15
|
+
"number": "^[0-9]+[\\.\\)]\\s*"
|
|
16
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"tour": "^(#\\s+)?(B[Ll][Oo][Cc][Kk]|R[Oo][Uu][Nn][Dd])\\s?№?\\s?([0-9IVXLCDM]*)([\\.:])?$",
|
|
3
|
+
"tourrev": "^([0-9IVXLCDM]+)\\s(B[Ll][Oo][Cc][Kk]|R[Oo][Uu][Nn][Dd])([\\.:])?$",
|
|
4
|
+
"question": "Q[Uu][Ee][Ss][Tt][Ii][Oo][Nn]\\s?[№N]?([0-9\\s]*)\\s?([\\.:]|\n|\r\n|$)",
|
|
5
|
+
"answer": "A[Nn][Ss][Ww][Ee][Rr]\\s?[№N]?([0-9]+)?\\s?[\\.:]",
|
|
6
|
+
"handout": "^H[Aa][Nn][Dd][Oo][Uu][Tt][\\.:]",
|
|
7
|
+
"zachet": "A[Cc][Ee][Pp][Tt]\\s?[\\.:]",
|
|
8
|
+
"nezachet": "R[Ee][Jj][Ee][Cc][Tt]\\s?[\\.:]",
|
|
9
|
+
"comment": "C[Oo][Mm][Mm]?([Ee][Nn][Tt])?\\s?[№N]?([0-9]+)?\\s?[\\.:]",
|
|
10
|
+
"author": "A[Uu][Tt][Hh][Oo][Rr][Ss]?\\s?[\\.:]",
|
|
11
|
+
"source": "S[Oo][Uu][Rr][Cc][Ee][Ss]?\\s?[\\.:]",
|
|
12
|
+
"editor": "E[Dd][Ii][Tt]([Oo][Rr][Ss]?|[Ee][Dd]\\s[Bb][Yy])\\s?(\\s?[\\.:]|\\s[\\-–—]+\\s)",
|
|
13
|
+
"date": "D[Aa][Tt][Ee]\\s?[\\.:]",
|
|
14
|
+
"date2": "(^|\\s)Jan(uary)?|Feb(ruary)?|Mar(ch)?|Apr(il)?|May|June?|July?|Aug(ust)?|Sep(tember)?|Oct(ober)?|Nov(ember)?|Dec(ember)?(\\s|$)",
|
|
15
|
+
"number": "^[0-9]+[\\.\\)]\\s*"
|
|
16
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"tour": "^(#\\s+)?([0-9]+)\\s?[-–—]\\s?[Тт][Уу][Рр]\\s*$",
|
|
3
|
+
"question": "([0-9]+)\\s?[-–—]\\s?\\sС[Ұұ][Рр][Аа][Ққ]([\\.:]|\n|\r\n|$)",
|
|
4
|
+
"handout": "^Ү[Лл][Ее][Сс][Тт][Іі][Рр][Уу][\\s\\s][Мм][Аа][Тт][Ее][Рр][Ии][Аа][Лл][Ыы][\\.:]",
|
|
5
|
+
"answer": "Ж[Аа][Уу][Аа][Пп]\\s?[№N]?([0-9]+)?\\s?[\\.:]",
|
|
6
|
+
"zachet": "Қ[Аа][Бб][Ыы][Лл][Дд][Аа][Нн][Аа][Тт][Ыы][Нн]\\s[Жж][Аа][Уу][Аа][Пп](\\([Тт][Аа][Рр]\\))?\\s?[\\.:]",
|
|
7
|
+
"nezachet": "Қ[Аа][Бб][Ыы][Лл][Дд][Аа][Нн][Бб][Аа][Йй][Тт][Ыы][Нн]\\s[Жж][Аа][Уу][Аа][Пп](\\([Тт][Аа][Рр]\\))?\\s?[\\.:]",
|
|
8
|
+
"comment": "Т[Үү][Сс][Іі][Нн][Іі][Кк][Тт][Ее][Мм][Ее]\\s?[№N]?([0-9]+)?\\s?[\\.:]",
|
|
9
|
+
"author": "А[Вв][Тт][Оо][Рр]([Лл][Аа][Рр])?\\s?[\\.:]",
|
|
10
|
+
"source": "Д[Ее][Рр][Ее][Кк][Кк][Өө][Зз]([Дд][Ее][Рр])?\\s?[\\.:]",
|
|
11
|
+
"editor": "Р[Ее][Дд][Аа][Кк][Тт][Оо][Рр]([Лл][Аа][Рр])?(\\s?[\\.:]|\\s[\\-–—]+\\s)",
|
|
12
|
+
"date": "Д[Аа][Тт][Аа]\\s?[\\.:]",
|
|
13
|
+
"date2": "(^|\\s)[Яя][Нн][Вв][Аа][Рр][ЬьЯя]|[Фф][Ее][Вв][Рр][Аа][Лл][ЬьЯя]|[Мм][Аа][Рр][Тт][Аа]?|[Аа][Пп][Рр][Ее][Лл][ЬьЯя]|[Мм][Аа][ЙйЯя]|[Ии][Юю][Нн][ЬьЯя]|[Ии][Юю][Лл][ЬьЯя]|[Аа][Вв][Гг][Уу][Сс][Тт][Аа]?|[Сс][Ее][Нн][Тт][Яя][Бб][Рр][ЬьЯя]|[Оо][Кк][Тт][Яя][Бб][Рр][ЬьЯя]|[Нн][Оо][Яя][Бб][Рр][ЬьЯя]|[Дд][Ее][Кк][Аа][Бб][Рр][ЬьЯя](\\s|$)",
|
|
14
|
+
"number": "^[0-9]+[\\.\\)]\\s*"
|
|
15
|
+
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
|
-
"tour": "^(
|
|
3
|
-
"tourrev": "^([0-9IVXLCDM]+)
|
|
4
|
-
"question": "В[Оо][Пп][Рр][Оо][Сс]
|
|
5
|
-
"handout": "^Р[Аа][Зз][Дд][Аа][Тт][Оо][Чч][Нн][Ыы][Йй]
|
|
6
|
-
"answer": "О[Тт][Вв][Ее][Тт][Ыы]?
|
|
7
|
-
"zachet": "З[Аа][Чч][ЕеЁё][Тт]
|
|
8
|
-
"nezachet": "Н[Ее][Зз][Аа][Чч][ЕеЁё][Тт]
|
|
9
|
-
"comment": "К[Оо][Мм][Мм]?([Ее][Нн][Тт]([Аа][Рр][Ии][ИиЙй]|\\.)|\\.)
|
|
10
|
-
"author": "А[Вв][Тт][Оо][Рр](\\(?[Ыы]?\\)?|[Кк][АаИи])?
|
|
11
|
-
"source": "И[Сс][Тт][Оо][Чч][Нн][Ии][Кк]\\(?[Ии]?\\)?
|
|
12
|
-
"editor": "[Рр][Ее][Дд][Аа][Кк][Тт][Оо][Рр]([Ыы]|[Сс][Кк][Аа][Яя]
|
|
13
|
-
"date": "Д[Аа][Тт][Аа]
|
|
2
|
+
"tour": "^(#\\s+)?Т[Уу][Рр]\\s?№?\\s?([0-9IVXLCDM]*)([\\.:])?$",
|
|
3
|
+
"tourrev": "^([0-9IVXLCDM]+)\\s[Тт][Уу][Рр]([\\.:])?$",
|
|
4
|
+
"question": "В[Оо][Пп][Рр][Оо][Сс]\\s?[№N]?([0-9\\s]*)\\s?([\\.:]|\n|\r\n|$)",
|
|
5
|
+
"handout": "^Р[Аа][Зз][Дд][Аа][Тт][Оо][Чч][Нн][Ыы][Йй]\\s+[Мм][Аа][Тт][Ее][Рр][Ии][Аа][Лл][\\.:]",
|
|
6
|
+
"answer": "О[Тт][Вв][Ее][Тт][Ыы]?\\s?[№N]?([0-9]+)?\\s?[\\.:]",
|
|
7
|
+
"zachet": "З[Аа][Чч][ЕеЁё][Тт]\\s?[\\.:]",
|
|
8
|
+
"nezachet": "Н[Ее][Зз][Аа][Чч][ЕеЁё][Тт]\\s?[\\.:]",
|
|
9
|
+
"comment": "К[Оо][Мм][Мм]?([Ее][Нн][Тт]([Аа][Рр][Ии][ИиЙй]|\\.)|\\.)\\s?[№N]?([0-9]+)?\\s?[\\.:]",
|
|
10
|
+
"author": "А[Вв][Тт][Оо][Рр](\\(?[Ыы]?\\)?|[Кк][АаИи])?\\s?[\\.:]",
|
|
11
|
+
"source": "И[Сс][Тт][Оо][Чч][Нн][Ии][Кк]\\(?[Ии]?\\)?\\s?[\\.:]",
|
|
12
|
+
"editor": "[Рр][Ее][Дд][Аа][Кк][Тт][Оо][Рр]([Ыы]|[Сс][Кк][Аа][Яя]\\s[Гг][Рр][Уу][Пп][Пп][Аа])?(\\s?[\\.:]|\\s[\\-–—]+\\s)",
|
|
13
|
+
"date": "Д[Аа][Тт][Аа]\\s?[\\.:]",
|
|
14
14
|
"date2": "(^|\\s)[Яя][Нн][Вв][Аа][Рр][ЬьЯя]|[Фф][Ее][Вв][Рр][Аа][Лл][ЬьЯя]|[Мм][Аа][Рр][Тт][Аа]?|[Аа][Пп][Рр][Ее][Лл][ЬьЯя]|[Мм][Аа][ЙйЯя]|[Ии][Юю][Нн][ЬьЯя]|[Ии][Юю][Лл][ЬьЯя]|[Аа][Вв][Гг][Уу][Сс][Тт][Аа]?|[Сс][Ее][Нн][Тт][Яя][Бб][Рр][ЬьЯя]|[Оо][Кк][Тт][Яя][Бб][Рр][ЬьЯя]|[Нн][Оо][Яя][Бб][Рр][ЬьЯя]|[Дд][Ее][Кк][Аа][Бб][Рр][ЬьЯя](\\s|$)",
|
|
15
|
-
"number": "^[0-9]+[\\.\\)]
|
|
15
|
+
"number": "^[0-9]+[\\.\\)]\\s*"
|
|
16
16
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"tour": "^(#\\s+)?R[Uu][Nn][Dd][Aa]\\s?№?\\s?([0-9IVXLCDM]*)([\\.:])?$",
|
|
3
|
+
"tourrev": "^([0-9IVXLCDM]+)\\sR[Uu][Nn][Dd][Aa]([\\.:])?$",
|
|
4
|
+
"question": "P[Ii][Tt][Aa][Nn][Jj][Ee]\\s?[№N]?([0-9\\s]*)\\s?([\\.:]|\n|\r\n|$)",
|
|
5
|
+
"answer": "O[Dd][Gg][Oo][Vv][Oo][Rr]\\s?[№N]?([0-9]+)?\\s?[\\.:]",
|
|
6
|
+
"handout": "^(M[Aa][Tt][Ee][Rr][Ii][Jj][Aa][Ll]|P[Oo][Dd][Ee][Ll][Jj][Ee][Nn][Oo])[\\.:]",
|
|
7
|
+
"zachet": "P[Rr][Ii][Hh][Vv][Aa][Tt][Aa]\\s[Ss][Ee]\\s?[\\.:]",
|
|
8
|
+
"nezachet": "N[Ee]\\s[Pp][Rr][Ii][Hh][Vv][Aa][Tt][Aa]\\s[Ss][Ee]\\s?[\\.:]",
|
|
9
|
+
"comment": "K[Oo][Mm][Ee][Nn][Tt][Aa][Rr]\\s?[№N]?([0-9]+)?\\s?[\\.:]",
|
|
10
|
+
"author": "A[Uu][Tt][Oo][Rr][Ii]?\\s?[\\.:]",
|
|
11
|
+
"source": "I[Zz][Vv][Oo][Rr][Ii]?\\s?[\\.:]",
|
|
12
|
+
"editor": "U[Rr][Ee][Dd][Nn][Ii][Kk][Ii]?\\s?(\\s?[\\.:]|\\s[\\-–—]+\\s)",
|
|
13
|
+
"date": "D[Aa][Tt][Uu][Mm]\\s?[\\.:]",
|
|
14
|
+
"date2": "WILL_FILL_LATER",
|
|
15
|
+
"number": "^[0-9]+[\\.\\)]\\s*"
|
|
16
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"tour": "^(#\\s+)?Т[Уу][Рр]\\s?№?\\s?([0-9IVXLCDM]*)([\\.:])?$",
|
|
3
|
+
"tourrev": "^([0-9IVXLCDM]+)\\s[Тт][Уу][Рр]([\\.:])?$",
|
|
4
|
+
"question": "З[Аа][Пп][Ии][Тт][Аа][Нн][Нн][Яя]\\s?[№N]?([0-9\\s]*)\\s?([\\.:]|\n|\r\n|$)",
|
|
5
|
+
"handout": "Р[Оо][Зз][Дд][Аа][Тт][Кк][Оо][Вв][Ии][Йй][\\s\\s][Мм][Аа][Тт][Ее][Рр][Іі][Аа][Лл][\\.:]",
|
|
6
|
+
"answer": "В[Іі][Дд][Пп][Оо][Вв][Іі][Дд][Ьь]?\\s?[№N]?([0-9]+)?\\s?[\\.:]",
|
|
7
|
+
"zachet": "З[Аа][Лл][Іі][Кк]\\s?[\\.:]",
|
|
8
|
+
"nezachet": "Н[Ее][Зз][Аа]Лл][Іі][Кк]\\s?[\\.:]",
|
|
9
|
+
"comment": "К[Оо][Мм][Мм]?([Ее][Нн][Тт]([Аа][Рр]|\\.)|\\.)\\s?[№N]?([0-9]+)?\\s?[\\.:]",
|
|
10
|
+
"author": "А[Вв][Тт][Оо][Рр](\\(?[Ии]?\\)?|[Кк][АаИи])?\\s?[\\.:]",
|
|
11
|
+
"source": "Д[Жж][Ее][Рр][Ее][Лл][ОоАа]\\s?[\\.:]",
|
|
12
|
+
"editor": "[Рр][Ее][Дд][Аа][Кк][Тт][Оо][Рр]([Ии]|[Сс][Ьь][Кк][Аа]\\s[Гг][Рр][Уу][Пп][Аа])?(\\s?[\\.:]|\\s[\\-–—]+\\s)",
|
|
13
|
+
"date": "Д[Аа][Тт][Аа]\\s?[\\.:]",
|
|
14
|
+
"date2": "(^|\\s)cічня|лютого|березня|квітня|травня|червня|липня|серпня|вересня|жовтня|листопада|грудня(\\s|$)",
|
|
15
|
+
"number": "^[0-9]+[\\.\\)]\\s*"
|
|
16
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"tour": "^(#\\s+)?([0-9]+)\\s?[-–—]\\s?[Тт][Уу][Рр]\\s*$",
|
|
3
|
+
"question": "([0-9]+)\\s?[-–—]\\s?\\sС[Аа][Вв][Оо][Лл]([\\.:]|\n|\r\n|$)",
|
|
4
|
+
"answer": "Ж[Аа][Вв][Оо][Бб]\\s?[№N]?([0-9]+)?\\s?[\\.:]",
|
|
5
|
+
"handout": "Т[Аа][Рр][Ққ][Аа][Тт][Мм][Аа][\\s\\s][Мм][Аа][Тт][Ее][Рр][Ии][Аа][Лл][\\.:]",
|
|
6
|
+
"zachet": "Қ[Аа][Бб][Уу][Лл]\\s?[\\.:]",
|
|
7
|
+
"nezachet": "Қ[Аа][Бб][Уу][Лл]\\s[Ээ][Мм][Аа][Сс]?[\\.:]",
|
|
8
|
+
"comment": "И[Зз][Оо][Ҳҳ]\\s?[№N]?([0-9]+)?\\s?[\\.:]",
|
|
9
|
+
"author": "М[Уу][Аа][Лл][Лл][Ии][Фф]([Лл][Аа][Рр])?\\s?[\\.:]",
|
|
10
|
+
"source": "М[Аа][Нн][Бб][Аа]\\s?[\\.:]",
|
|
11
|
+
"editor": "(М|Тур\\sм)[Уу][Ҳҳ][Аа][Рр][Рр][Ии][Рр]([Лл][Аа][Рр][Ии]?)?(\\s?[\\.:]|\\s[\\-–—]+\\s)",
|
|
12
|
+
"date": "С[Аа][Нн][Аа]\\s?[\\.:]",
|
|
13
|
+
"date2": "(^|\\s)январь|февраль|март|апрель|май|июнь|июль|август|сентябрь|октябрь|ноябрь|декабрь(\\s|$)",
|
|
14
|
+
"number": "^[0-9]+[\\.\\)]\\s*"
|
|
15
|
+
}
|
|
@@ -252,21 +252,23 @@ def get_dashes_right(s):
|
|
|
252
252
|
return s
|
|
253
253
|
|
|
254
254
|
|
|
255
|
-
def
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
s = s.replace(
|
|
267
|
-
srch.group("word"), srch.group("word").replace("-", "\u2011")
|
|
268
|
-
) # non-breaking hyphen
|
|
255
|
+
def replace_no_break(s, spaces=True, hyphens=True):
|
|
256
|
+
if spaces:
|
|
257
|
+
for sp in NO_BREAK_SEQUENCES + [x.title() for x in NO_BREAK_SEQUENCES]:
|
|
258
|
+
r_from = "(^|[ \u00a0]){sp} ".format(sp=sp)
|
|
259
|
+
r_to = "\\g<1>{sp}\u00a0".format(sp=sp)
|
|
260
|
+
s = re.sub(r_from, r_to, s)
|
|
261
|
+
for sp in NO_BREAK_SEQUENCES_LEFT + [x.title() for x in NO_BREAK_SEQUENCES_LEFT]:
|
|
262
|
+
r_from = " {sp}([ \u00a0]|$)".format(sp=sp)
|
|
263
|
+
r_to = "\u00a0{sp}\\g<1>".format(sp=sp)
|
|
264
|
+
s = re.sub(r_from, r_to, s)
|
|
265
|
+
if hyphens:
|
|
269
266
|
srch = re_nbh.search(s)
|
|
267
|
+
while srch:
|
|
268
|
+
s = s.replace(
|
|
269
|
+
srch.group("word"), srch.group("word").replace("-", "\u2011")
|
|
270
|
+
) # non-breaking hyphen
|
|
271
|
+
srch = re_nbh.search(s)
|
|
270
272
|
return s
|
|
271
273
|
|
|
272
274
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.24.0b3"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: chgksuite
|
|
3
|
-
Version: 0.24.
|
|
3
|
+
Version: 0.24.0b3
|
|
4
4
|
Summary: A package for chgk automation
|
|
5
5
|
Home-page: https://gitlab.com/peczony/chgksuite
|
|
6
6
|
Author: Alexander Pecheny
|
|
@@ -33,6 +33,7 @@ Dynamic: classifier
|
|
|
33
33
|
Dynamic: description
|
|
34
34
|
Dynamic: description-content-type
|
|
35
35
|
Dynamic: home-page
|
|
36
|
+
Dynamic: license-file
|
|
36
37
|
Dynamic: requires-dist
|
|
37
38
|
Dynamic: summary
|
|
38
39
|
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# What’s new
|
|
2
2
|
|
|
3
|
+
## v0.24.0
|
|
4
|
+
- При невозможности распарсить табличку в вордовском файле теперь выдаётся предупреждение об этом (раньше программа просто падала)
|
|
5
|
+
- Исправлен баг, при котором в некоторых случаях при парсинге редакторы следующего тура вставлялись до конца предыдущего.
|
|
6
|
+
- Добавлено автоматическое исправление проблем с размерами раздатки в телеграме (телеграм не разрешает слишком длинные или узкие раздатки).
|
|
7
|
+
- Добавлена возможность автозаполнения имени автора из произвольной строки.
|
|
8
|
+
- Вместо библиотеки pyrogram для постинга в телеграм теперь используется telethon.
|
|
9
|
+
- Добавлена возможность отключить проставление неразрывных пробелов и дефисов при экспорте в word, pptx, openquiz, жж.
|
|
10
|
+
- При парсинге теперь неразрывные пробелы и табы считаются наравне с обычными пробелами.
|
|
11
|
+
|
|
3
12
|
## v0.23.0
|
|
4
13
|
- Для экспорта в Word:
|
|
5
14
|
- добавлен режим `screen_mode=add_versions_columns`, в нём версии для ведущего и экрана расположены в двух колонках
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"tour": "^(# +)?Т[Уу][Рр] ?№? ?([0-9IVXLCDM]*)([\\.:])?$",
|
|
3
|
-
"tourrev": "^([0-9IVXLCDM]+) [Тт][Уу][Рр]([\\.:])?$",
|
|
4
|
-
"question": "П[Ыы][Тт][Аа][Нн][Ьь]?[Нн][Ее] ?[№N]?([0-9 ]*) ?([\\.:]|\n|\r\n|$)",
|
|
5
|
-
"handout": "Р[Аа][Зз][Дд][Аа][Тт]([Аа][Чч][Нн]|[Кк][Аа][Вв])[Ыы][ ][Мм][Аа][Тт][Ээ][Рр][Ыы][Яя][Лл][\\.:]",
|
|
6
|
-
"answer": "А[Дд][Кк][Аа][Зз][Ыы]? ?[№N]?([0-9]+)? ?[\\.:]",
|
|
7
|
-
"zachet": "З[Аа][Лл][Іі][Кк] ?[\\.:]",
|
|
8
|
-
"nezachet": "Н[Ее][Зз][Аа][Лл][Іі][Кк] ?[\\.:]",
|
|
9
|
-
"comment": "К[Аа][Мм]([Ее][Нн][Тт]([Аа][Рр]([Ыы][Йй])?|\\.)|\\.) ?[№N]?([0-9]+)? ?[\\.:]",
|
|
10
|
-
"author": "А[Ўў][Тт][Аа][Рр](\\(?[Ыы]?\\)?|[Кк][АаИи])? ?[\\.:]",
|
|
11
|
-
"source": "К[Рр][Ыы][Нн][Іі][Цц][АаЫы] ?[\\.:]",
|
|
12
|
-
"editor": "[Рр][Ээ][Дд][Аа][Кк][Тт][Аа][Рр]([Ыы])?( ?[\\.:]| [\\-–—]+ )",
|
|
13
|
-
"date": "Д[Аа][Тт][Аа] ?[\\.:]",
|
|
14
|
-
"date2": "(^|\\s)студзеня|лютага|сакавіка|красавіка|мая|чэрвеня|ліпеня|жніўня|верасня|кастрычніка|лістапада|снежня(\\s|$)",
|
|
15
|
-
"number": "^[0-9]+[\\.\\)] *"
|
|
16
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"tour": "^(# +)?(B[Ll][Oo][Cc][Kk]|R[Oo][Uu][Nn][Dd]) ?№? ?([0-9IVXLCDM]*)([\\.:])?$",
|
|
3
|
-
"tourrev": "^([0-9IVXLCDM]+) (B[Ll][Oo][Cc][Kk]|R[Oo][Uu][Nn][Dd])([\\.:])?$",
|
|
4
|
-
"question": "Q[Uu][Ee][Ss][Tt][Ii][Oo][Nn] ?[№N]?([0-9 ]*) ?([\\.:]|\n|\r\n|$)",
|
|
5
|
-
"answer": "A[Nn][Ss][Ww][Ee][Rr] ?[№N]?([0-9]+)? ?[\\.:]",
|
|
6
|
-
"handout": "^H[Aa][Nn][Dd][Oo][Uu][Tt][\\.:]",
|
|
7
|
-
"zachet": "A[Cc][Ee][Pp][Tt] ?[\\.:]",
|
|
8
|
-
"nezachet": "R[Ee][Jj][Ee][Cc][Tt] ?[\\.:]",
|
|
9
|
-
"comment": "C[Oo][Mm][Mm]?([Ee][Nn][Tt])? ?[№N]?([0-9]+)? ?[\\.:]",
|
|
10
|
-
"author": "A[Uu][Tt][Hh][Oo][Rr][Ss]? ?[\\.:]",
|
|
11
|
-
"source": "S[Oo][Uu][Rr][Cc][Ee][Ss]? ?[\\.:]",
|
|
12
|
-
"editor": "E[Dd][Ii][Tt]([Oo][Rr][Ss]?|[Ee][Dd] [Bb][Yy]) ?( ?[\\.:]| [\\-–—]+ )",
|
|
13
|
-
"date": "D[Aa][Tt][Ee] ?[\\.:]",
|
|
14
|
-
"date2": "(^|\\s)Jan(uary)?|Feb(ruary)?|Mar(ch)?|Apr(il)?|May|June?|July?|Aug(ust)?|Sep(tember)?|Oct(ober)?|Nov(ember)?|Dec(ember)?(\\s|$)",
|
|
15
|
-
"number": "^[0-9]+[\\.\\)] *"
|
|
16
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"tour": "^(# +)?([0-9]+) ?[-–—] ?[Тт][Уу][Рр]\\s*$",
|
|
3
|
-
"question": "([0-9]+) ?[-–—] ? С[Ұұ][Рр][Аа][Ққ]([\\.:]|\n|\r\n|$)",
|
|
4
|
-
"handout": "^Ү[Лл][Ее][Сс][Тт][Іі][Рр][Уу][ ][Мм][Аа][Тт][Ее][Рр][Ии][Аа][Лл][Ыы][\\.:]",
|
|
5
|
-
"answer": "Ж[Аа][Уу][Аа][Пп] ?[№N]?([0-9]+)? ?[\\.:]",
|
|
6
|
-
"zachet": "Қ[Аа][Бб][Ыы][Лл][Дд][Аа][Нн][Аа][Тт][Ыы][Нн] [Жж][Аа][Уу][Аа][Пп](\\([Тт][Аа][Рр]\\))? ?[\\.:]",
|
|
7
|
-
"nezachet": "Қ[Аа][Бб][Ыы][Лл][Дд][Аа][Нн][Бб][Аа][Йй][Тт][Ыы][Нн] [Жж][Аа][Уу][Аа][Пп](\\([Тт][Аа][Рр]\\))? ?[\\.:]",
|
|
8
|
-
"comment": "Т[Үү][Сс][Іі][Нн][Іі][Кк][Тт][Ее][Мм][Ее] ?[№N]?([0-9]+)? ?[\\.:]",
|
|
9
|
-
"author": "А[Вв][Тт][Оо][Рр]([Лл][Аа][Рр])? ?[\\.:]",
|
|
10
|
-
"source": "Д[Ее][Рр][Ее][Кк][Кк][Өө][Зз]([Дд][Ее][Рр])? ?[\\.:]",
|
|
11
|
-
"editor": "Р[Ее][Дд][Аа][Кк][Тт][Оо][Рр]([Лл][Аа][Рр])?( ?[\\.:]| [\\-–—]+ )",
|
|
12
|
-
"date": "Д[Аа][Тт][Аа] ?[\\.:]",
|
|
13
|
-
"date2": "(^|\\s)[Яя][Нн][Вв][Аа][Рр][ЬьЯя]|[Фф][Ее][Вв][Рр][Аа][Лл][ЬьЯя]|[Мм][Аа][Рр][Тт][Аа]?|[Аа][Пп][Рр][Ее][Лл][ЬьЯя]|[Мм][Аа][ЙйЯя]|[Ии][Юю][Нн][ЬьЯя]|[Ии][Юю][Лл][ЬьЯя]|[Аа][Вв][Гг][Уу][Сс][Тт][Аа]?|[Сс][Ее][Нн][Тт][Яя][Бб][Рр][ЬьЯя]|[Оо][Кк][Тт][Яя][Бб][Рр][ЬьЯя]|[Нн][Оо][Яя][Бб][Рр][ЬьЯя]|[Дд][Ее][Кк][Аа][Бб][Рр][ЬьЯя](\\s|$)",
|
|
14
|
-
"number": "^[0-9]+[\\.\\)] *"
|
|
15
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"tour": "^(# +)?R[Uu][Nn][Dd][Aa] ?№? ?([0-9IVXLCDM]*)([\\.:])?$",
|
|
3
|
-
"tourrev": "^([0-9IVXLCDM]+) R[Uu][Nn][Dd][Aa]([\\.:])?$",
|
|
4
|
-
"question": "P[Ii][Tt][Aa][Nn][Jj][Ee] ?[№N]?([0-9 ]*) ?([\\.:]|\n|\r\n|$)",
|
|
5
|
-
"answer": "O[Dd][Gg][Oo][Vv][Oo][Rr] ?[№N]?([0-9]+)? ?[\\.:]",
|
|
6
|
-
"handout": "^(M[Aa][Tt][Ee][Rr][Ii][Jj][Aa][Ll]|P[Oo][Dd][Ee][Ll][Jj][Ee][Nn][Oo])[\\.:]",
|
|
7
|
-
"zachet": "P[Rr][Ii][Hh][Vv][Aa][Tt][Aa] [Ss][Ee] ?[\\.:]",
|
|
8
|
-
"nezachet": "N[Ee] [Pp][Rr][Ii][Hh][Vv][Aa][Tt][Aa] [Ss][Ee] ?[\\.:]",
|
|
9
|
-
"comment": "K[Oo][Mm][Ee][Nn][Tt][Aa][Rr] ?[№N]?([0-9]+)? ?[\\.:]",
|
|
10
|
-
"author": "A[Uu][Tt][Oo][Rr][Ii]? ?[\\.:]",
|
|
11
|
-
"source": "I[Zz][Vv][Oo][Rr][Ii]? ?[\\.:]",
|
|
12
|
-
"editor": "U[Rr][Ee][Dd][Nn][Ii][Kk][Ii]? ?( ?[\\.:]| [\\-–—]+ )",
|
|
13
|
-
"date": "D[Aa][Tt][Uu][Mm] ?[\\.:]",
|
|
14
|
-
"date2": "WILL_FILL_LATER",
|
|
15
|
-
"number": "^[0-9]+[\\.\\)] *"
|
|
16
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"tour": "^(# +)?Т[Уу][Рр] ?№? ?([0-9IVXLCDM]*)([\\.:])?$",
|
|
3
|
-
"tourrev": "^([0-9IVXLCDM]+) [Тт][Уу][Рр]([\\.:])?$",
|
|
4
|
-
"question": "З[Аа][Пп][Ии][Тт][Аа][Нн][Нн][Яя] ?[№N]?([0-9 ]*) ?([\\.:]|\n|\r\n|$)",
|
|
5
|
-
"handout": "Р[Оо][Зз][Дд][Аа][Тт][Кк][Оо][Вв][Ии][Йй][ ][Мм][Аа][Тт][Ее][Рр][Іі][Аа][Лл][\\.:]",
|
|
6
|
-
"answer": "В[Іі][Дд][Пп][Оо][Вв][Іі][Дд][Ьь]? ?[№N]?([0-9]+)? ?[\\.:]",
|
|
7
|
-
"zachet": "З[Аа][Лл][Іі][Кк] ?[\\.:]",
|
|
8
|
-
"nezachet": "Н[Ее][Зз][Аа]Лл][Іі][Кк] ?[\\.:]",
|
|
9
|
-
"comment": "К[Оо][Мм][Мм]?([Ее][Нн][Тт]([Аа][Рр]|\\.)|\\.) ?[№N]?([0-9]+)? ?[\\.:]",
|
|
10
|
-
"author": "А[Вв][Тт][Оо][Рр](\\(?[Ии]?\\)?|[Кк][АаИи])? ?[\\.:]",
|
|
11
|
-
"source": "Д[Жж][Ее][Рр][Ее][Лл][ОоАа] ?[\\.:]",
|
|
12
|
-
"editor": "[Рр][Ее][Дд][Аа][Кк][Тт][Оо][Рр]([Ии]|[Сс][Ьь][Кк][Аа] [Гг][Рр][Уу][Пп][Аа])?( ?[\\.:]| [\\-–—]+ )",
|
|
13
|
-
"date": "Д[Аа][Тт][Аа] ?[\\.:]",
|
|
14
|
-
"date2": "(^|\\s)cічня|лютого|березня|квітня|травня|червня|липня|серпня|вересня|жовтня|листопада|грудня(\\s|$)",
|
|
15
|
-
"number": "^[0-9]+[\\.\\)] *"
|
|
16
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"tour": "^(# +)?([0-9]+) ?[-–—] ?[Тт][Уу][Рр]\\s*$",
|
|
3
|
-
"question": "([0-9]+) ?[-–—] ? С[Аа][Вв][Оо][Лл]([\\.:]|\n|\r\n|$)",
|
|
4
|
-
"answer": "Ж[Аа][Вв][Оо][Бб] ?[№N]?([0-9]+)? ?[\\.:]",
|
|
5
|
-
"handout": "Т[Аа][Рр][Ққ][Аа][Тт][Мм][Аа][ ][Мм][Аа][Тт][Ее][Рр][Ии][Аа][Лл][\\.:]",
|
|
6
|
-
"zachet": "Қ[Аа][Бб][Уу][Лл] ?[\\.:]",
|
|
7
|
-
"nezachet": "Қ[Аа][Бб][Уу][Лл] [Ээ][Мм][Аа][Сс]?[\\.:]",
|
|
8
|
-
"comment": "И[Зз][Оо][Ҳҳ] ?[№N]?([0-9]+)? ?[\\.:]",
|
|
9
|
-
"author": "М[Уу][Аа][Лл][Лл][Ии][Фф]([Лл][Аа][Рр])? ?[\\.:]",
|
|
10
|
-
"source": "М[Аа][Нн][Бб][Аа] ?[\\.:]",
|
|
11
|
-
"editor": "(М|Тур м)[Уу][Ҳҳ][Аа][Рр][Рр][Ии][Рр]([Лл][Аа][Рр][Ии]?)?( ?[\\.:]| [\\-–—]+ )",
|
|
12
|
-
"date": "С[Аа][Нн][Аа] ?[\\.:]",
|
|
13
|
-
"date2": "(^|\\s)январь|февраль|март|апрель|май|июнь|июль|август|сентябрь|октябрь|ноябрь|декабрь(\\s|$)",
|
|
14
|
-
"number": "^[0-9]+[\\.\\)] *"
|
|
15
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.24.0b1"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|