-
Notifications
You must be signed in to change notification settings - Fork 0
/
inputHandler.py
120 lines (108 loc) · 3.73 KB
/
inputHandler.py
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
import datetime
def isSQLInjection(userInput: str) -> bool:
# Check if the user input contains SQL injections
if (userInput.find(";") != -1):
return True
if (userInput.find("--") != -1):
return True
if (userInput.find("\"") != -1):
return True
if (userInput.find("\'") != -1):
return True
if (userInput.find("/*") != -1):
return True
return False
def inputSQLData(message: str) -> str:
"""
Get input from the user and check if it contains SQL injections
"""
userInput: str = input(message)
if isSQLInjection(userInput):
print("Possible SQL Injection detected")
print("Please do not do this again :)")
return ""
else:
return userInput
def convertSpecialCharacters(userInput: str) -> str:
userInput = userInput.replace("ø", "oe")
userInput = userInput.replace("Ø", "OE")
userInput = userInput.replace("æ", "ae")
userInput = userInput.replace("Æ", "AE")
userInput = userInput.replace("å", "aa")
userInput = userInput.replace("Å", "AA")
return userInput
def previewWithSpecialCharacters(userInput: str) -> str:
userInput = userInput.replace("oe", "ø")
userInput = userInput.replace("OE", "Ø")
userInput = userInput.replace("ae", "æ")
userInput = userInput.replace("AE", "Æ")
userInput = userInput.replace("aa", "å")
userInput = userInput.replace("AA", "Å")
return userInput
def convertStationName(stationName: str) -> str:
"""
Convert the station name to a format that can be used in SQL
"""
stations: list = stationName.split(" ")
convertedStationName: str = ' '.join([convertSpecialCharacters(station[0].upper() + station[1:].lower()) for station in stations])
return convertedStationName
def isEnglishWeekday(weekday: str) -> bool:
# Check if the weekday is in english
weekdays = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
return weekday in weekdays
def translateWeekdayToEnglish(weekday: str) -> str:
# Translate the weekday to english
weekdays = {
"Mandag": "Monday",
"Tirsdag": "Tuesday",
"Onsdag": "Wednesday",
"Torsdag": "Thursday",
"Fredag": "Friday",
"Lørdag": "Saturday",
"Søndag": "Sunday"
}
return weekdays[weekday]
def translateWeekdayToNorwegian(weekday: str) -> str:
# Translate the weekday to norwegian
weekdays = {
"Monday": "Mandag",
"Tuesday": "Tirsdag",
"Wednesday": "Onsdag",
"Thursday": "Torsdag",
"Friday": "Fredag",
"Saturday": "Lørdag",
"Sunday": "Søndag"
}
return weekdays[weekday]
def convertDate(date: str) -> str:
"""
Convert the date from DD.MM.YYYY to YYYY-MM-DD
"""
day, month, year = date.split(".")
return year + "-" + month + "-" + day
def convertDateToWeekday(date: str) -> str:
"""
Convert the date to a weekday
DD.MM.YYYY -> weekday
"""
day, month, year = date.split(".")
datetime_object = datetime.datetime(int(year), int(month), int(day))
weekday = datetime_object.strftime("%A")
return translateWeekdayToNorwegian(weekday)
def previewDate(date: str) -> str:
"""
Convert the date from YYYY-MM-DD to DD.MM.YYYY
"""
year, month, day = date.split("-")
return day[:2] + "." + month[:2] + "." + year[:4]
def nextDate(date: str):
"""
Get date after the given date
Input format: DD.MM.YYYY
return: DD.MM.YYYY
"""
day, month, year = date.split(".")
datetime_object = datetime.datetime(int(year), int(month), int(day))
datetime_next_day = datetime_object + datetime.timedelta(days=1)
next_day = datetime_next_day.strftime("%d.%m.%Y")
return next_day