Dachary has uploaded a new change for review. https://gerrit.wikimedia.org/r/311351
Change subject: remove hardcoded properties ...................................................................... remove hardcoded properties Change-Id: I65fc7f71627bfdba61ef1aa1ac0225de8fd308c7 Signed-off-by: Loic Dachary <l...@dachary.org> --- M FLOSSbot/qa.py M FLOSSbot/repository.py 2 files changed, 36 insertions(+), 29 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/pywikibot/bots/FLOSSbot refs/changes/51/311351/1 diff --git a/FLOSSbot/qa.py b/FLOSSbot/qa.py index d893c6c..deb58a4 100644 --- a/FLOSSbot/qa.py +++ b/FLOSSbot/qa.py @@ -58,11 +58,14 @@ def run(self): QUERY = """ - SELECT DISTINCT ?item WHERE { - ?item wdt:P1324 ?repo FILTER CONTAINS(str(?repo), "github.com"). - FILTER NOT EXISTS { ?item p:P2992 ?qa } - } - """ + SELECT DISTINCT ?item WHERE {{ + ?item wdt:{source_code_repository} + ?repo FILTER CONTAINS(str(?repo), "github.com"). + FILTER NOT EXISTS {{ ?item p:{software_quality_assurance} ?qa }} + }} + """.format( + source_code_repository=self.P_source_code_repository, + software_quality_assurance=self.P_software_quality_assurance) for item in pg.WikidataSPARQLPageGenerator(QUERY, site=self.site, result_type=list): @@ -73,7 +76,8 @@ item_dict = item.get() clm_dict = item_dict["claims"] headers = {'User-Agent': 'FLOSSbot'} - for url in [claim.getTarget() for claim in clm_dict['P1324']]: + for url in [claim.getTarget() for claim in + clm_dict[self.P_source_code_repository]]: if 'github.com' not in url: continue path = os.path.normpath(urlparse(url).path)[1:] diff --git a/FLOSSbot/repository.py b/FLOSSbot/repository.py index 9cedd79..49ad37d 100644 --- a/FLOSSbot/repository.py +++ b/FLOSSbot/repository.py @@ -179,31 +179,34 @@ def run_query(self): if self.args.filter == 'no-protocol': query = """ - SELECT DISTINCT ?item WHERE { - ?item p:P1324 ?repo. - ?repo ps:P1324 ?value. - OPTIONAL { ?repo pq:P2700 ?protocol } # try to get the protocol + SELECT DISTINCT ?item WHERE {{ + ?item p:{source_code_repository} ?repo. + ?repo ps:{source_code_repository} ?value. + OPTIONAL {{ ?repo pq:{protocol} ?protocol }} # get the protocol FILTER(!BOUND(?protocol)) # and only keep those with no protocol - } ORDER BY ?item - """ + }} ORDER BY ?item + """.format(source_code_repository=self.P_source_code_repository, + protocol=self.P_protocol) elif self.args.filter == 'no-preferred': query = """ SELECT ?item (COUNT(?value) AS ?count) WHERE - { - ?item p:P1324 [ - ps:P1324 ?value; wikibase:rank wikibase:NormalRank ]. - MINUS { ?item p:P1324/wikibase:rank wikibase:PreferredRank. } - } + {{ + ?item p:{source_code_repository} [ + ps:{source_code_repository} ?value; + wikibase:rank wikibase:NormalRank ]. + MINUS {{ ?item p:{source_code_repository}/wikibase:rank + wikibase:PreferredRank. }} + }} GROUP BY ?item HAVING(?count > 1) ORDER BY ?item - """ + """.format(source_code_repository=self.P_source_code_repository) else: query = """ - SELECT DISTINCT ?item WHERE { - ?item wdt:P1324 ?url. - } ORDER BY ?item - """ + SELECT DISTINCT ?item WHERE {{ + ?item wdt:{source_code_repository} ?url. + }} ORDER BY ?item + """.format(source_code_repository=self.P_source_code_repository) query = query + " # " + str(time.time()) log.debug(query) for item in pg.WikidataSPARQLPageGenerator(query, @@ -219,15 +222,15 @@ item_dict = item.get() clm_dict = item_dict["claims"] - if len(clm_dict['P1324']) == 1: + if len(clm_dict[self.P_source_code_repository]) == 1: return False - if len(clm_dict['P1324']) != 2: + if len(clm_dict[self.P_source_code_repository]) != 2: self.debug(item, "SKIP more than two URLs is too difficult to fix") return False http = [] - for claim in clm_dict['P1324']: + for claim in clm_dict[self.P_source_code_repository]: if claim.getRank() == 'preferred': self.debug(item, "SKIP because there already is a preferred URL") @@ -251,10 +254,10 @@ clm_dict = item_dict["claims"] urls = [] - for claim in clm_dict['P1324']: + for claim in clm_dict[self.P_source_code_repository]: urls.append(claim.getTarget()) - for claim in clm_dict['P1324']: + for claim in clm_dict[self.P_source_code_repository]: url = claim.getTarget() extracted = self.extract_repository(url) if extracted and extracted not in urls: @@ -273,10 +276,10 @@ claim.changeRank('preferred') self.info(item, "PREFERRED set to " + url) - for claim in clm_dict['P1324']: + for claim in clm_dict[self.P_source_code_repository]: self.fixup_url(claim) - for claim in clm_dict['P1324']: + for claim in clm_dict[self.P_source_code_repository]: if self.P_protocol in claim.qualifiers: self.debug(item, "IGNORE " + claim.getTarget() + " because it already has a protocol") -- To view, visit https://gerrit.wikimedia.org/r/311351 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I65fc7f71627bfdba61ef1aa1ac0225de8fd308c7 Gerrit-PatchSet: 1 Gerrit-Project: pywikibot/bots/FLOSSbot Gerrit-Branch: master Gerrit-Owner: Dachary <l...@dachary.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits