2023-04-23 01:26:54 +00:00
|
|
|
class Terminator:
|
2023-05-01 22:31:28 +00:00
|
|
|
def __init__(self, name):
|
|
|
|
self._name = name
|
2023-04-23 05:34:46 +00:00
|
|
|
self._glossary_cache = {}
|
2023-05-01 22:31:28 +00:00
|
|
|
self._image_dir = None
|
|
|
|
|
|
|
|
def set_image_dir(self, image_dir):
|
|
|
|
self._image_dir = image_dir
|
2023-04-23 01:26:54 +00:00
|
|
|
|
|
|
|
def make_terms(self, entry):
|
|
|
|
terms = []
|
|
|
|
headwords = entry.get_headwords()
|
|
|
|
for reading, expressions in headwords.items():
|
|
|
|
for expression in expressions:
|
|
|
|
definition_tags = self._definition_tags(entry)
|
|
|
|
inflection_rules = self._inflection_rules(entry, expression)
|
|
|
|
score = -len(terms)
|
|
|
|
glossary = self._glossary(entry)
|
|
|
|
sequence = self._sequence(entry)
|
2023-04-23 05:17:42 +00:00
|
|
|
term_tags = self._term_tags(entry)
|
2023-04-23 01:26:54 +00:00
|
|
|
term = [
|
|
|
|
expression, reading, definition_tags, inflection_rules,
|
|
|
|
score, glossary, sequence, term_tags
|
|
|
|
]
|
|
|
|
terms.append(term)
|
|
|
|
|
|
|
|
for x in self._link_glossary_parameters(entry):
|
|
|
|
(subentries, definition_tags) = x
|
|
|
|
if len(subentries) == 0:
|
|
|
|
continue
|
|
|
|
score = -len(terms)
|
|
|
|
glossary = self.__links_glossary(subentries)
|
|
|
|
term = [
|
|
|
|
expression, reading, definition_tags, inflection_rules,
|
|
|
|
score, glossary, sequence, term_tags
|
|
|
|
]
|
|
|
|
terms.append(term)
|
|
|
|
|
|
|
|
for subentries in self._subentry_lists(entry):
|
|
|
|
for subentry in subentries:
|
|
|
|
for term in self.make_terms(subentry):
|
|
|
|
terms.append(term)
|
|
|
|
return terms
|
|
|
|
|
|
|
|
@staticmethod
|
|
|
|
def __links_glossary(subentries):
|
|
|
|
glossary = []
|
|
|
|
for subentry in subentries:
|
|
|
|
exp = subentry.get_first_expression()
|
|
|
|
gloss = {
|
|
|
|
"type": "structured-content",
|
|
|
|
"content": {
|
|
|
|
"tag": "a",
|
|
|
|
"href": f"?query={exp}&wildcards=off",
|
|
|
|
"content": exp,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
glossary.append(gloss)
|
|
|
|
return glossary
|