Add article index to editor info
This commit is contained in:
parent
26d9e2c3a3
commit
4705a39c41
|
@ -89,6 +89,9 @@ def title_constraint_analysis(
|
||||||
# E: This article has already been written and addendums are disabled
|
# E: This article has already been written and addendums are disabled
|
||||||
elif not lexicon.cfg.article.addendum.allowed:
|
elif not lexicon.cfg.article.addendum.allowed:
|
||||||
errors.append('Article already exists')
|
errors.append('Article already exists')
|
||||||
|
# I: This article's index
|
||||||
|
index = get_index_for_title(lexicon, title)
|
||||||
|
infos.append(f'Article index: {index}')
|
||||||
# The article does not sort under the player's assigned index
|
# The article does not sort under the player's assigned index
|
||||||
pass
|
pass
|
||||||
# The article's title is new, but its index is full
|
# The article's title is new, but its index is full
|
||||||
|
@ -174,6 +177,26 @@ def index_match(index, title) -> bool:
|
||||||
raise ValueError(f'Unknown index type: "{index.type}"')
|
raise ValueError(f'Unknown index type: "{index.type}"')
|
||||||
|
|
||||||
|
|
||||||
|
def get_index_for_title(lexicon: LexiconModel, title: str):
|
||||||
|
"""
|
||||||
|
Returns the index pattern for the given title.
|
||||||
|
"""
|
||||||
|
index_specs = lexicon.cfg.article.index.list
|
||||||
|
index_by_pri: dict = {}
|
||||||
|
for index in index_specs:
|
||||||
|
if index.pri not in index_by_pri:
|
||||||
|
index_by_pri[index.pri] = []
|
||||||
|
index_by_pri[index.pri].append(index)
|
||||||
|
index_eval_order = [
|
||||||
|
index
|
||||||
|
for pri in sorted(index_by_pri.keys(), reverse=True)
|
||||||
|
for index in index_by_pri[pri]]
|
||||||
|
for index in index_eval_order:
|
||||||
|
if index_match(index, title):
|
||||||
|
return index.pattern
|
||||||
|
return "&c"
|
||||||
|
|
||||||
|
|
||||||
def sort_by_index_spec(articles, index_specs, key=None):
|
def sort_by_index_spec(articles, index_specs, key=None):
|
||||||
"""
|
"""
|
||||||
Sorts a list under the appropriate index in the given index
|
Sorts a list under the appropriate index in the given index
|
||||||
|
|
Loading…
Reference in New Issue