def iter_osm_notes(feed_limit=<NUM_LIT>, interval=<NUM_LIT>, parse_timestamps=True):
last_seen_guid = None<EOL>while True:<EOL><INDENT>u = urllib2.urlopen('<STR_LIT>' % feed_limit)<EOL>tree = etree.parse(u)<EOL>new_notes = []<EOL>for note_item in tree.xpath('<STR_LIT>'):<EOL><INDENT>title = note_item.xpath('<STR_LIT:title>')[<NUM_LIT:0>].text<EOL>if title.startswith('<STR_LIT>'):<EOL><INDENT>action = '<STR_LIT>'<EOL><DEDENT>elif title.startswith('<STR_LIT>'):<EOL><INDENT>action = '<STR_LIT>'<EOL><DEDENT>elif title.startswith('<STR_LIT>'):<EOL><INDENT>action = '<STR_LIT>'<EOL><DEDENT>guid = note_item.xpath('<STR_LIT>')[<NUM_LIT:0>].text<EOL>if last_seen_guid == guid:<EOL><INDENT>break<EOL><DEDENT>elif last_seen_guid == None:<EOL><INDENT>last_seen_guid = guid<EOL><DEDENT>else:<EOL><INDENT>note_id = int(guid.split('<STR_LIT:/>')[-<NUM_LIT:1>].split('<STR_LIT>')[<NUM_LIT:0>])<EOL>new_notes.append((action, get_note(note_id, parse_timestamps)))<EOL><DEDENT><DEDENT>for note in reversed(new_notes):<EOL><INDENT>yield note<EOL><DEDENT>yield model.Finished(None, None)<EOL>time.sleep(interval)<EOL><DEDENT>
Parses the global OSM Notes feed and yields as much Note information as possible.