User:Peter F. Patel-Schneider/ship maintenance query script

From Wikidata
Jump to navigation Jump to search
#!/bin/python
import re
import subprocess

command = ['/usr/bin/curl','-o','queries.text','--http1.1','-s','-G','https://www.wikidata.org/wiki/Wikidata:WikiProject_Ships/Maintenance']
subprocess.call(command)

command = ['/usr/bin/curl','--http1.1','-s','-H','Accept: text/tab-separated-values','-G','https://query.wikidata.org/sparql','--data',]

file1 = open('queries.text', 'r')

while True:
   line = file1.readline()
   if not line:
       break
   if not re.compile('class="external text').search(line):
       continue
   if not re.compile('query.wikidata.org').search(line):
       continue
   label = re.compile('href.*').search(line).group()
#    print('LABEL',label)
   label = re.compile('">[^<]*').search(label).group()[2:]
   print(label)
   query = re.compile('SELECT[^"]*').search(line).group()
   query = re.sub('LIMIT.*',,query)
   select = re.compile('SELECT.*WHERE').search(query).group()
   variable = re.compile('%3F[^%]*').search(query).group()
   query = re.sub(select,,query)
   query = 'SELECT%20(COUNT(' + variable + ')%20AS%20%3Fcount)%20WHERE' + query
#    print("QUERY",query)

   command[-1] = 'query=' + query
#    print('COMMAND', command)
   result = subprocess.check_output(command, text=True)
   print(re.sub('\n',' ',result))
   print()

file1.close()