Mechanical Edits/Mateusz Konieczny - bot account/Poczta Polska

From OpenStreetMap Wiki
Jump to navigation Jump to search

Page content created as advised on Automated_Edits_code_of_conduct#Document_and_discuss_your_plans.

Who

I, Mateusz Konieczny using my bot account

contact

message via OSM I will respond also to PMs to the bot account. In both cases I will be notified about incoming PMs via email and notifications in OSM editors.

What

Fix bad tagging

Why

NSI demanded wrong tagging, see https://github.com/osmlab/name-suggestion-index/issues/10028 and https://github.com/osmlab/name-suggestion-index/pull/10076

Numbers

Depends on how many cases are present and how many new matches appear - depends on editing activity in OSM.

Single run is expected.

How

Each changeset contains a single element or group of close elements to avoid edits spanning across large areas (it is impossible in cases where edited object itself spans very large area)

Changeset would be described and tagged with tags that mark it as automatic, provide link to documentation page etc

Editing is limited to objects in Poland.

With Wikipedia

state before a mechanical edit:

state after a mechanical edit:

Without Wikipedia variant, post box variant

state before a mechanical edit:

state after a mechanical edit:

Bot source code

Bot is using https://github.com/matkoniecz/osm_bot_abstraction_layer library, this code is GNU GPLv3 licensed

code for my bots resides in https://codeberg.org/matkoniecz/OpenStreetMap_cleanup_scripts/src/branch/master/recurrent_bot_edits

from osm_bot_abstraction_layer.generic_bot_retagging import run_simple_retagging_task


def edit_element(tags):
    if tags.get('amenity') not in ["post_office", "post_box"]:
        return tags
    if tags.get('operator') in ["Poczta Polska"]:
        if tags.get('operator:wikidata') in ["Q168833"]:
            if tags.get('operator:wikipedia') in ["pl:Poczta Polska"]:
                del tags["operator"]
                del tags["operator:wikidata"]
                del tags["operator:wikipedia"]
                tags["brand"] = "Poczta Polska"
                tags["brand:wikidata"] = "Q168833"
                tags["brand:wikipedia"] = "pl:Poczta Polska"
                return tags
    if tags.get('operator') in ["Poczta Polska"]:
        if tags.get('operator:wikidata') in ["Q168833"]:
            if 'operator:wikipedia' not in tags:
                del tags["operator"]
                del tags["operator:wikidata"]
                tags["brand"] = "Poczta Polska"
                tags["brand:wikidata"] = "Q168833"
                return tags
    return tags


def main():
    query = """
[out:xml][timeout:1800];
area[name="Polska"]->.a;
(
  nwr[operator='Poczta Polska']['operator:wikidata'='Q168833']["operator:wikipedia"!~"pl:Poczta Polska"](area.a);
  nwr[operator='Poczta Polska']['operator:wikidata'='Q168833'](area.a);
);
out body;
>;
out skel qt;
"""
    run_simple_retagging_task(
        max_count_of_elements_in_one_changeset=500,
        objects_to_consider_query=query,
        cache_folder_filepath='/media/mateusz/OSM_cache/osm_bot_cache',
        is_in_manual_mode=False,
        changeset_comment='poprawa tagowania Poczty Polskiej',
        discussion_url='https://community.openstreetmap.org/t/brand-poczta-polska-propozycja-automatycznej-edycji-kasowanie-operator-dodanego-na-slepo-przez-nsi/116091/5',
        osm_wiki_documentation_page='https://wiki.openstreetmap.org/wiki/Mechanical_Edits/Mateusz_Konieczny_-_bot_account/Poczta_Polska',
        edit_element_function=edit_element,
    )


main()

Discussion

https://community.openstreetmap.org/t/brand-poczta-polska-propozycja-automatycznej-edycji-kasowanie-operator-dodanego-na-slepo-przez-nsi/116091/5

Repetition

This is reoccurring edit and may be made as soon as new matching elements appear. At this moment triggering new edit requires human intervention so exact schedule is not predictable and bot may stop running at any moment.

This can change in a future. If bot is abandoned and does not run, feel free to ping me. If I am unable to run it any more feel free to use my code. Note that it may require going through bot approval process again and that code is on specific license.

https://codeberg.org/matkoniecz/OpenStreetMap_cleanup_scripts/src/branch/master/recurrent_bot_edits may have more up to date code version that what is listed on this page

Opt-out

Please write at forum topic where it was discussed .

Note that in case of opt-out exactly the same edit will be made manually.