USERNAME = Main.pref.get("wikidata.username") PASSWORD = Main.pref.get("wikidata.password") EDIT_AS_BOT = False WD_QrefRE = re.compile(r'^([Qq]\d+)$') WD_PrefRE = re.compile(r'^([Pp]\d+)$') siteIri = "" NEWITEM = ItemIdValue.NULL mapper = ObjectMapper() osm_account = 'Polyglot' osm_import_account = 'Polyglot_Import' dummyNode = Node() dummyWay = Way() dummyRelation = Relation() class WbSearchEntitiesAction: def __init__(self, connection, siteUri): self.connection = connection self.siteIri = siteUri # def WbSearchEntities(properties): # return WbSearchEntities(self, properties.ids, properties.sites, properties.titles, properties.props, properties.languages, properties.sitefilter) def WbSearchEntities(self, searchString, props=None, language='en', sitefilter=None): parameters = {ApiConnection.PARAM_ACTION: "wbsearchentities"} if searchString == None: raise IllegalArgumentException("Please provide a string to search for")
''' forceNameCA = False ''' if True name:ca will be same as name on checked nodes/ways/relations ''' def getMapView(): if Main.main and Main.main.map: return Main.main.map.mapView else: return None dummy_node = Node() dummy_way = Way() dummy_relation = Relation() commandsList = [] pattern = re.compile("^(L'|El |La |Els |Les |Los |Lo |S'|Es |Sa |Ses )") mv = getMapView() if mv and mv.editLayer and mv.editLayer.data: selectedNodes = mv.editLayer.data.getSelectedNodes() selectedWays = mv.editLayer.data.getSelectedWays() selectedRelations = mv.editLayer.data.getSelectedRelations() if not (selectedNodes or selectedWays or selectedRelations): JOptionPane.showMessageDialog(
found = False for i in range(19, 0, -1): time.sleep(i / 3) params = '?action=wbsearchentities&search=' + URLEncoder.encode( name, "UTF-8") + '&language=en&format=json' url = baseurl + 'api.php' + params r1 = HttpClient.create(URL(url), "GET") r2 = r1.setHeader("Content-Type", "application/x-www-form-urlencoded" ).connect().fetchContent() #print dir(r2) print i, r2 Q_school = QinJSONRE.search(r2) if Q_school: print Q_school.group('qid') break else: print 'not found yet' break else: print 'already in Wikidata' newSchool = Node(element) newSchool.put('wikidata', Q_school.group('qid')) newSchool.put('isced:level', isced) CommandsList = [Command.ChangeCommand(element, newSchool)] Main.main.undoRedo.add( Command.SequenceCommand( "Add wikidata and isced:level tags to school", CommandsList))
import re, time, sys import codecs def getMapView(): if Main.main and Main.main.map: return Main.main.map.mapView else: return None mv = getMapView() if mv and mv.editLayer and mv.editLayer.data: selectedNodes = mv.editLayer.data.getSelectedNodes() platform = Node() # Find stop_position nodes for platform in selectedNodes: if (platform.get('public_transport') == 'platform'): print platform.getId() # Check if stop position is alrady in a stop area relation nodeInRelation = False exampleRoute = Relation() stop_position = Node() distance = 0.00000006 for parent in platform.getReferrers(): parentTags = parent.getKeys()