diff --git a/pwiki/mquery.py b/pwiki/mquery.py index 0211325..df54cde 100644 --- a/pwiki/mquery.py +++ b/pwiki/mquery.py @@ -10,7 +10,7 @@ from .ns import NS from .query_constants import PropCont, PropNoCont, QConstant from .query_utils import chunker, denormalize_result, get_continue_params, query_and_validate -from .utils import mine_for +from .utils import mine_for, PROP_TITLE_MAX if TYPE_CHECKING: from .wiki import Wiki @@ -71,7 +71,7 @@ def _prop_no_cont(wiki: Wiki, titles: list[str], template: QConstant) -> dict: out = dict.fromkeys(titles) for chunk in chunker(titles, wiki.prop_title_max): - if response := query_and_validate(wiki, {**template.pl, "prop": template.name, "titles": "|".join(chunk)}, desc=f"peform a prop_no_cont query with '{template.name}'"): + if response := query_and_validate(wiki, {**template.pl, "prop": template.name, "titles": "|".join(chunk)}, len(chunk) > PROP_TITLE_MAX, f"peform a prop_no_cont query with '{template.name}'"): for p in mine_for(response, "query", "pages"): try: out[p["title"]] = template.retrieve_results(p) diff --git a/pwiki/utils.py b/pwiki/utils.py index e83dc36..80d249d 100644 --- a/pwiki/utils.py +++ b/pwiki/utils.py @@ -5,6 +5,8 @@ from typing import Any API_DEFAULTS = {"format": "json", "formatversion": "2"} +PROP_TITLE_MAX = 50 +PROP_TITLE_MAX_BOT = 500 log = logging.getLogger(__name__) diff --git a/pwiki/wiki.py b/pwiki/wiki.py index 6cdff27..e7e8638 100644 --- a/pwiki/wiki.py +++ b/pwiki/wiki.py @@ -20,6 +20,7 @@ from .oquery import OQuery from .query_constants import MAX from .query_utils import flatten_generator +from .utils import PROP_TITLE_MAX ,PROP_TITLE_MAX_BOT from .waction import WAction from .wparser import WikiText, WParser @@ -73,11 +74,11 @@ def _refresh_rights(self) -> None: if not self.username: self.rights: list = [] self.is_bot: bool = False - self.prop_title_max: int = 50 + self.prop_title_max: int = PROP_TITLE_MAX else: self.rights: list = self.list_user_rights() self.is_bot: bool = "bot" in self.rights - self.prop_title_max: int = 500 if self.is_bot or "sysop" in self.rights else 50 + self.prop_title_max: int = PROP_TITLE_MAX_BOT if self.is_bot or "sysop" in self.rights else PROP_TITLE_MAX ################################################################################################## ######################################## C O O K I E S ###########################################