File size: 4,767 Bytes
dadc1bd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1fd2c08
 
dadc1bd
 
 
 
 
 
 
 
cf5dca3
dadc1bd
 
 
cf5dca3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70

#  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