Xqt has submitted this change. ( 
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1093381?usp=email )

Change subject: [IMPR] use Site.search() in get_item_with_prop_value
......................................................................

[IMPR] use Site.search() in get_item_with_prop_value

Change-Id: Ia1c0c8ced9926ae48ca6fd7c6704150492035d5f
---
M scripts/create_isbn_edition.py
1 file changed, 12 insertions(+), 26 deletions(-)

Approvals:
  Xqt: Verified; Looks good to me, approved




diff --git a/scripts/create_isbn_edition.py b/scripts/create_isbn_edition.py
index 274627d..a802484 100755
--- a/scripts/create_isbn_edition.py
+++ b/scripts/create_isbn_edition.py
@@ -377,7 +377,6 @@

 import pywikibot  # API interface to Wikidata
 from pywikibot.config import verbose_output as verbose
-from pywikibot.data import api
 from pywikibot.tools import first_upper


@@ -813,7 +812,8 @@
 def get_item_with_prop_value(prop: str, propval: str) -> set[str]:
     """Get list of items that have a property/value statement.

-    .. seealso:: :api:`Search`
+    .. seealso:: :meth:`Site.search()
+       <pywikibot.site._generators.GeneratorsMixin.search>`

     :param prop: Property ID
     :param propval: Property value
@@ -823,33 +823,19 @@
     pywikibot.debug(f'Search statement: {srsearch}')
     item_name_canon = unidecode(propval).casefold()
     item_list = set()
-    # TODO: use APISite.search instead?
-    params = {
-        'action': 'query',  # Statement search
-        'list': 'search',
-        'srsearch': srsearch,
-        'srwhat': 'text',
-        'format': 'json',
-        'srlimit': 50,  # Should be reasonable value
-    }
-    request = api.Request(site=repo, parameters=params)
-    result = request.submit()
-    # 
https://www.wikidata.org/w/api.php?action=query&list=search&srwhat=text&srsearch=P212:978-94-028-1317-3
-    # https://www.wikidata.org/w/index.php?search=P212:978-94-028-1317-3

-    if 'query' in result and 'search' in result['query']:
-        # Loop though items
-        for row in result['query']['search']:
-            qnumber = row['title']
-            item = get_item_page(qnumber)
+    # Loop though items
+    for row in repo.search(srsearch, where='text', total=50):
+        qnumber = row['title']
+        item = get_item_page(qnumber)

-            if prop not in item.claims:
-                continue
+        if prop not in item.claims:
+            continue

-            for seq in item.claims[prop]:
-                if unidecode(seq.getTarget()).casefold() == item_name_canon:
-                    item_list.add(item)  # Found match
-                    break
+        for seq in item.claims[prop]:
+            if unidecode(seq.getTarget()).casefold() == item_name_canon:
+                item_list.add(item)  # Found match
+                break

     pywikibot.log(item_list)
     return item_list

--
To view, visit 
https://gerrit.wikimedia.org/r/c/pywikibot/core/+/1093381?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.wikimedia.org/r/settings?usp=email

Gerrit-MessageType: merged
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: Ia1c0c8ced9926ae48ca6fd7c6704150492035d5f
Gerrit-Change-Number: 1093381
Gerrit-PatchSet: 2
Gerrit-Owner: Xqt <[email protected]>
Gerrit-Reviewer: Geertivp <[email protected]>
Gerrit-Reviewer: Xqt <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
Pywikibot-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to