# Text in English and German for display in UI text_dict={ 'step1':{'English': 'STEP 1 - Enter your Geocaching name:', 'Deutsch': 'SCHRITT 1 - Gib deinen Geocaching Namen ein:' }, 'step2':{'English': 'STEP 2 - The following spelling of your nicknameame can be constructed from Vienna subway station names:', 'Deutsch': 'SCHRITT 2 - Die folgende Variante deines Nicknamens kann aus wiener U-Bahnstationen erzeugt werden:' }, 'step3':{'English': 'STEP 3 - Upload your image:', 'Deutsch': 'SCHRITT 3 - Lade dein Bild hoch:' }, 'explanation':{'English': 'See explanation - Which stations can you visit to costruct my nickname?', 'Deutsch': 'Erklärung - Welche Stationen kann ich besuchen um meinen Nicknamen zu erzeugen?' }, 'wait':{'English': 'wait for it...', 'Deutsch': 'bitte warten...' }, 'letter':{'English': 'Letter', 'Deutsch': 'Buchstabe' }, 'stations':{'English': 'Stations with that letter', 'Deutsch': 'Stationen mit dem Buchstaben' }, 'detect':{'English': 'The following text was detected in the image:', 'Deutsch': 'Folgender Text wurde im Bild detektiert:' }, 'correct':{'English': "The detected image text matches your nickname! The final coordinates are N48° 11.966' E016° 22.108'", 'Deutsch': "The detektierte Text im Bild entspricht deinem Nicknamen! Die finalen Koordinaten sind N48° 11.966' E016° 22.108'" }, 'wrong':{'Deutsch': 'Der detektierte Text im Bild entspricht nicht deinem Nicknamen!', 'English': 'The detected image text doesnt match your nickname!' } } def construct_possible_nickname(input): """ Function for converting nickname to possible nickname that can be constructed from subway station names used in app """ stations = ['U1:Oberlaa', 'U1:Neulaa', 'U1:Alaudagasse', 'U1:Altes Landgut', 'U1:Troststraße', 'U1:Reumannplatz', 'U1:Keplerplatz', 'U1:Südtiroler Platz – Hauptbahnhof', 'U1:Taubstummengasse', 'U1:Karlsplatz', 'U1:Stephansplatz', 'U1:Schwedenplatz', 'U1:Nestroyplatz', 'U1:Praterstern', 'U1:Vorgartenstraße', 'U1:Donauinsel', 'U1:Kaisermühlen – Vienna International Centre', 'U1:Alte Donau', 'U1:Kagran', 'U1:Kagraner Platz', 'U1:Rennbahnweg', 'U1:Aderklaaer Straße', 'U1:Großfeldsiedlung', 'U1:Leopoldau', 'U2:Seestadt', 'U2:Aspern Nord', 'U2:Hausfeldstraße', 'U2:Aspernstraße', 'U2:Donauspital', 'U2:Hardeggasse', 'U2:Stadlau', 'U2:Donaustadtbrücke', 'U2:Donaumarina', 'U2:Stadion', 'U2:Krieau', 'U2:Messe – Prater', 'U2:Praterstern', 'U2:Taborstraße', 'U2:Schottenring', 'U2:Schottentor', 'U2:Rathaus', 'U2:Volkstheater', 'U2:Museumsquartier', 'U2:Karlsplatz', 'U3:Ottakring', 'U3:Kendlerstraße', 'U3:Hütteldorfer Straße', 'U3:Johnstraße', 'U3:Schweglerstraße', 'U3:Westbahnhof', 'U3:Zieglergasse', 'U3:Neubaugasse', 'U3:Volkstheater', 'U3:Herrengasse', 'U3:Stephansplatz', 'U3:Stubentor', 'U3:Landstraße', 'U3:Rochusgasse', 'U3:Kardinal-Nagl-Platz', 'U3:Schlachthausgasse', 'U3:Erdberg', 'U3:Gasometer', 'U3:Zippererstraße', 'U3:Enkplatz', 'U3:Simmering', 'U4:Hütteldorf', 'U4:Ober St. Veit', 'U4:Unter St. Veit', 'U4:Braunschweiggasse', 'U4:Hietzing', 'U4:Schönbrunn', 'U4:Meidling Hauptstraße', 'U4:Längenfeldgasse', 'U4:Margaretengürtel', 'U4:Pilgramgasse', 'U4:Kettenbrückengasse', 'U4:Karlsplatz', 'U4:Stadtpark', 'U4:Landstraße', 'U4:Schwedenplatz', 'U4:Schottenring', 'U4:Roßauer Lände', 'U4:Friedensbrücke', 'U4:Spittelau', 'U4:Heiligenstadt', 'U6:Siebenhirten', 'U6:Perfektastraße', 'U6:Erlaaer Straße', 'U6:Alterlaa', 'U6:Am Schöpfwerk', 'U6:Tscherttegasse', 'U6:Bahnhof Meidling', 'U6:Niederhofstraße', 'U6:Längenfeldgasse', 'U6:Gumpendorfer Straße', 'U6:Westbahnhof', 'U6:Burggasse – Stadthalle', 'U6:Thaliastraße', 'U6:Josefstädter Straße', 'U6:Alser Straße', 'U6:Michelbeuern – Allgemeines Krankenhaus', 'U6:Währinger Straße – Volksoper', 'U6:Nußdorfer Straße', 'U6:Spittelau', 'U6:Jägerstraße', 'U6:Dresdner Straße', 'U6:Handelskai', 'U6:Neue Donau', 'U6:Floridsdorf'] target_stations = {} target_nickname = "" last_index = -1 for letter_index in range(0,len(input)): current_letter = input[letter_index] tmp_stations = [] for station in stations: if current_letter.lower() in station.lower()[3:]: tmp_stations.append(station) if last_index != letter_index: target_nickname += current_letter last_index = letter_index target_stations[current_letter]=tmp_stations return target_stations, target_nickname