diff --git a/map_project/__pycache__/scrape.cpython-311.pyc b/map_project/__pycache__/scrape.cpython-311.pyc deleted file mode 100644 index de2d00b9d..000000000 Binary files a/map_project/__pycache__/scrape.cpython-311.pyc and /dev/null differ diff --git a/map_project/api/__pycache__/__init__.cpython-310.pyc b/map_project/api/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index dd3a6ba07..000000000 Binary files a/map_project/api/__pycache__/__init__.cpython-310.pyc and /dev/null differ diff --git a/map_project/api/__pycache__/__init__.cpython-311.pyc b/map_project/api/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 18872cf18..000000000 Binary files a/map_project/api/__pycache__/__init__.cpython-311.pyc and /dev/null differ diff --git a/map_project/api/__pycache__/admin.cpython-310.pyc b/map_project/api/__pycache__/admin.cpython-310.pyc deleted file mode 100644 index 36b1a7388..000000000 Binary files a/map_project/api/__pycache__/admin.cpython-310.pyc and /dev/null differ diff --git a/map_project/api/__pycache__/admin.cpython-311.pyc b/map_project/api/__pycache__/admin.cpython-311.pyc deleted file mode 100644 index d33fe965f..000000000 Binary files a/map_project/api/__pycache__/admin.cpython-311.pyc and /dev/null differ diff --git a/map_project/api/__pycache__/apps.cpython-310.pyc b/map_project/api/__pycache__/apps.cpython-310.pyc deleted file mode 100644 index c1a702393..000000000 Binary files a/map_project/api/__pycache__/apps.cpython-310.pyc and /dev/null differ diff --git a/map_project/api/__pycache__/apps.cpython-311.pyc b/map_project/api/__pycache__/apps.cpython-311.pyc deleted file mode 100644 index 70c4c2aa4..000000000 Binary files a/map_project/api/__pycache__/apps.cpython-311.pyc and /dev/null differ diff --git a/map_project/api/__pycache__/models.cpython-310.pyc b/map_project/api/__pycache__/models.cpython-310.pyc deleted file mode 100644 index 6addc3834..000000000 Binary files a/map_project/api/__pycache__/models.cpython-310.pyc and /dev/null differ diff --git a/map_project/api/__pycache__/models.cpython-311.pyc b/map_project/api/__pycache__/models.cpython-311.pyc deleted file mode 100644 index 8b71f8dce..000000000 Binary files a/map_project/api/__pycache__/models.cpython-311.pyc and /dev/null differ diff --git a/map_project/api/__pycache__/serializers.cpython-310.pyc b/map_project/api/__pycache__/serializers.cpython-310.pyc deleted file mode 100644 index ef899ea6f..000000000 Binary files a/map_project/api/__pycache__/serializers.cpython-310.pyc and /dev/null differ diff --git a/map_project/api/__pycache__/serializers.cpython-311.pyc b/map_project/api/__pycache__/serializers.cpython-311.pyc deleted file mode 100644 index 8e024d26f..000000000 Binary files a/map_project/api/__pycache__/serializers.cpython-311.pyc and /dev/null differ diff --git a/map_project/api/__pycache__/urls.cpython-310.pyc b/map_project/api/__pycache__/urls.cpython-310.pyc deleted file mode 100644 index c73ee01a2..000000000 Binary files a/map_project/api/__pycache__/urls.cpython-310.pyc and /dev/null differ diff --git a/map_project/api/__pycache__/urls.cpython-311.pyc b/map_project/api/__pycache__/urls.cpython-311.pyc deleted file mode 100644 index 3f91d2623..000000000 Binary files a/map_project/api/__pycache__/urls.cpython-311.pyc and /dev/null differ diff --git a/map_project/api/__pycache__/views.cpython-310.pyc b/map_project/api/__pycache__/views.cpython-310.pyc deleted file mode 100644 index 6893f0244..000000000 Binary files a/map_project/api/__pycache__/views.cpython-310.pyc and /dev/null differ diff --git a/map_project/api/__pycache__/views.cpython-311.pyc b/map_project/api/__pycache__/views.cpython-311.pyc deleted file mode 100644 index 6408e7339..000000000 Binary files a/map_project/api/__pycache__/views.cpython-311.pyc and /dev/null differ diff --git a/map_project/api/admin.py b/map_project/api/admin.py index 8c38f3f3d..c66e2af29 100644 --- a/map_project/api/admin.py +++ b/map_project/api/admin.py @@ -1,3 +1,6 @@ from django.contrib import admin - +from .models import BusAlert, SignUp # Register your models here. + +admin.site.register(BusAlert) +admin.site.register(SignUp) \ No newline at end of file diff --git a/map_project/api/migrations/0006_alter_busalert_busname_alter_busalert_busnumber_and_more.py b/map_project/api/migrations/0006_alter_busalert_busname_alter_busalert_busnumber_and_more.py new file mode 100644 index 000000000..c5b52edc7 --- /dev/null +++ b/map_project/api/migrations/0006_alter_busalert_busname_alter_busalert_busnumber_and_more.py @@ -0,0 +1,28 @@ +# Generated by Django 4.1.3 on 2022-11-06 09:45 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0005_alter_busalert_busname_alter_busalert_busnumber_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='busalert', + name='busname', + field=models.CharField(default='', max_length=50), + ), + migrations.AlterField( + model_name='busalert', + name='busnumber', + field=models.CharField(default='', max_length=3), + ), + migrations.AlterField( + model_name='signup', + name='email', + field=models.EmailField(max_length=254), + ), + ] diff --git a/map_project/api/migrations/0007_alter_signup_time.py b/map_project/api/migrations/0007_alter_signup_time.py new file mode 100644 index 000000000..48ab060b4 --- /dev/null +++ b/map_project/api/migrations/0007_alter_signup_time.py @@ -0,0 +1,18 @@ +# Generated by Django 4.1.3 on 2022-11-06 09:49 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0006_alter_busalert_busname_alter_busalert_busnumber_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='signup', + name='time', + field=models.TimeField(auto_now=True), + ), + ] diff --git a/map_project/api/migrations/0008_alter_signup_favourites.py b/map_project/api/migrations/0008_alter_signup_favourites.py new file mode 100644 index 000000000..f57935738 --- /dev/null +++ b/map_project/api/migrations/0008_alter_signup_favourites.py @@ -0,0 +1,18 @@ +# Generated by Django 4.1.3 on 2022-11-06 14:00 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0007_alter_signup_time'), + ] + + operations = [ + migrations.AlterField( + model_name='signup', + name='favourites', + field=models.CharField(default='', max_length=500), + ), + ] diff --git a/map_project/api/migrations/__pycache__/0001_initial.cpython-310.pyc b/map_project/api/migrations/__pycache__/0001_initial.cpython-310.pyc deleted file mode 100644 index 34594f389..000000000 Binary files a/map_project/api/migrations/__pycache__/0001_initial.cpython-310.pyc and /dev/null differ diff --git a/map_project/api/migrations/__pycache__/0001_initial.cpython-311.pyc b/map_project/api/migrations/__pycache__/0001_initial.cpython-311.pyc deleted file mode 100644 index 82ec55264..000000000 Binary files a/map_project/api/migrations/__pycache__/0001_initial.cpython-311.pyc and /dev/null differ diff --git a/map_project/api/migrations/__pycache__/0002_main_code.cpython-310.pyc b/map_project/api/migrations/__pycache__/0002_main_code.cpython-310.pyc deleted file mode 100644 index da7c8754d..000000000 Binary files a/map_project/api/migrations/__pycache__/0002_main_code.cpython-310.pyc and /dev/null differ diff --git a/map_project/api/migrations/__pycache__/0002_main_code.cpython-311.pyc b/map_project/api/migrations/__pycache__/0002_main_code.cpython-311.pyc deleted file mode 100644 index 585ff58d3..000000000 Binary files a/map_project/api/migrations/__pycache__/0002_main_code.cpython-311.pyc and /dev/null differ diff --git a/map_project/api/migrations/__pycache__/0003_busalert_signup_delete_main.cpython-311.pyc b/map_project/api/migrations/__pycache__/0003_busalert_signup_delete_main.cpython-311.pyc deleted file mode 100644 index 89c5a230b..000000000 Binary files a/map_project/api/migrations/__pycache__/0003_busalert_signup_delete_main.cpython-311.pyc and /dev/null differ diff --git a/map_project/api/migrations/__pycache__/__init__.cpython-310.pyc b/map_project/api/migrations/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index decb3fc8b..000000000 Binary files a/map_project/api/migrations/__pycache__/__init__.cpython-310.pyc and /dev/null differ diff --git a/map_project/api/migrations/__pycache__/__init__.cpython-311.pyc b/map_project/api/migrations/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 58ebc2f3f..000000000 Binary files a/map_project/api/migrations/__pycache__/__init__.cpython-311.pyc and /dev/null differ diff --git a/map_project/api/models.py b/map_project/api/models.py index bb4b3a005..2b4214570 100644 --- a/map_project/api/models.py +++ b/map_project/api/models.py @@ -1,6 +1,10 @@ from django.db import models import string, random import json +from django.core.mail import send_mail +from threading import Thread +import time + # Create your models here. def jsonReader(): @@ -29,6 +33,69 @@ def jsonReader(): print(PopulatedDict) return PopulatedDict +def jsonReadPreferences(preferences): + preferenceList = preferences.split(",") + PopulatedDict = {} + with open("./Alerts.json") as rawOpen: + Data = json.load(rawOpen) + for i in Data: + if Data[i] in preferenceList: + # print(preferences) + for y in Data[i]: + #print(y) + linkIndex = (y).find("<") + #print(linkIndex) + if linkIndex != -1: + #print(i in PopulatedDict.keys()) + if ((i in PopulatedDict.keys()) == False): + PopulatedDict[i] = [(str(y))[0:linkIndex]] + #print("THIS RAN") + else: + PopulatedDict[i].append((str(y))[0:linkIndex]) + else: + if ((i in PopulatedDict.keys()) == False): + PopulatedDict[i] = [str(y)] + else: + PopulatedDict[i].append(str(y)) + print(PopulatedDict) + return PopulatedDict + +def emailPerson(subject,message,otherEmail): + send_mail(subject,message,"ttcdataalert@gmail.com",[str(otherEmail)],fail_silently=False) + print("Email Delivered") + +def EmailTimer(): + while(True): + emailALL() + print("cycle complete") + time.sleep(43200) # 12 hours --> 43200 + +def StartTimer(): + t2 = Thread(target=EmailTimer) + t2.daemon = True + t2.start() + print("TIMER STARTING") + + +def emailALL(): + profileCount = (SignUp.objects.all()).count() + for i in range(profileCount): + favoriteList = getattr(SignUp.objects.all()[i],"favourites") + favoriteList = favoriteList.split(",") # --> ['line 1', 'bus 1', 'bus 50'] + # personalized = jsonReader()#jsonReadPreferences(getattr(SignUp.objects.all()[i],"favourites")) + print(favoriteList) + alertinfo = AlertInfo() + string = f'' + for b in favoriteList: + string += "\n" + alertinfo.getmessage(b) + print(string) + + if not string: + emailPerson("STATUS UPDATE", "No Alert Messages!",getattr(SignUp.objects.all()[i],"email")) + else: + emailPerson("STATUS UPDATE", string ,getattr(SignUp.objects.all()[i],"email")) + #display info + class BusAlert(models.Model): busnumber = models.CharField(max_length=3, default='') busname = models.CharField(max_length=50, default='') @@ -37,8 +104,9 @@ class BusAlert(models.Model): class SignUp(models.Model): email = models.EmailField() - favourites = models.CharField(max_length=8, null=True, blank=True) - time = models.TimeField(auto_now=False, auto_now_add=False) + favourites = models.CharField(max_length=500, default = "") + time = models.TimeField(auto_now=True, auto_now_add=False) + class AlertInfo: @@ -55,8 +123,20 @@ def getNumber(self, bus: str) -> str: elif bus[0] == 'L': return bus[4:] - def getName(self, bus: str) -> str: - message = self.alertdict[bus] - index = message.find(':') + def getmessage(self, bus: str): + if bus in self.alertdict: + print(self.alertdict) + message = self.alertdict[bus] + a = f'' + for i in message: + a += i + a += '\n' + message = a + else: + message = '' + return message + + - return message[:index] \ No newline at end of file +# class Users: +# def __init__ \ No newline at end of file diff --git a/map_project/api/urls.py b/map_project/api/urls.py index dbfe0fe19..5d0019d00 100644 --- a/map_project/api/urls.py +++ b/map_project/api/urls.py @@ -1,7 +1,10 @@ from .views import BusAlertAPIView, SignUpAPIView from django.urls import path +from .models import BusAlert, SignUp, emailPerson, jsonReadPreferences, emailALL, EmailTimer,StartTimer urlpatterns = [ path('BusAlert', BusAlertAPIView.as_view()), path('SignUp', SignUpAPIView.as_view()), -] \ No newline at end of file +] + +StartTimer() \ No newline at end of file diff --git a/map_project/api/views.py b/map_project/api/views.py index 9be0f981c..ba2e93788 100644 --- a/map_project/api/views.py +++ b/map_project/api/views.py @@ -1,5 +1,5 @@ from rest_framework import generics, status -from .models import BusAlert, SignUp +from .models import BusAlert, SignUp, emailPerson, jsonReadPreferences, emailALL, EmailTimer,StartTimer from .serializers import BusAlertSerializer, SignUpCreateSerializer from rest_framework.response import Response @@ -19,5 +19,27 @@ def get(self, request, *args, **kwargs): class SignUpAPIView(generics.CreateAPIView): - queryset = SignUpCreateSerializer - serializer_class = SignUpCreateSerializer \ No newline at end of file + serializer_class = SignUpCreateSerializer + # if Started == False: + # emailALL() + # Started == True + def get_queryset(self): + signups = SignUp.objects.all() + return signups + + def post(self, request, *args, **kwargs): + + signups_data = request.data + + new_signup = SignUp.objects.create(email=signups_data["email"], favourites=signups_data["favourites"],) + + new_signup.save() + + + serializer = SignUpCreateSerializer(new_signup) + + return Response(serializer.data) + + + # def display_model_fields(model): + # print(getattr(new_)) diff --git a/map_project/db.sqlite3 b/map_project/db.sqlite3 index 51beac4c0..99fe367c9 100644 Binary files a/map_project/db.sqlite3 and b/map_project/db.sqlite3 differ diff --git a/map_project/frontend/migrations/__pycache__/__init__.cpython-310.pyc b/map_project/frontend/migrations/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index 8cb376296..000000000 Binary files a/map_project/frontend/migrations/__pycache__/__init__.cpython-310.pyc and /dev/null differ diff --git a/map_project/frontend/migrations/__pycache__/__init__.cpython-311.pyc b/map_project/frontend/migrations/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 9729113cf..000000000 Binary files a/map_project/frontend/migrations/__pycache__/__init__.cpython-311.pyc and /dev/null differ diff --git a/map_project/manage.py b/map_project/manage.py index 66fcc06df..62d136c19 100755 --- a/map_project/manage.py +++ b/map_project/manage.py @@ -5,6 +5,7 @@ from scrape import runScrape from subprocess import call from threading import Thread +#from api.models import emailALL,EmailTimers import requests import time @@ -34,5 +35,8 @@ def startScraping(): t1 = Thread(target=startScraping) t1.daemon = True t1.start() + # t2 = Thread(target = emailALL) + # t2.daemon = True + # t2.start() #startScraping() main() diff --git a/map_project/map_project/Alerts.json b/map_project/map_project/Alerts.json index a048cf13c..7283c0593 100644 --- a/map_project/map_project/Alerts.json +++ b/map_project/map_project/Alerts.json @@ -1 +1 @@ -{"Line 1": ["Line 1: There is no subway service between Sheppard-Yonge and St Clair stations today and tomorrow for work on the Eglinton Crosstown LRT and TTC track work. Shuttle buses are running. See other service alerts.", "Line 1: Mon. November 7 through Thurs. November 10, subway service between Finch and Eglinton stations will end nightly at 11 p.m. for track work. Shuttle buses will run. See other service alerts."], "Line 2": [], "Line 3": [], "Line 4": [], "Bus 0": [], "Bus 1": [], "Bus 2": [], "Bus 3": [], "Bus 4": [], "Bus 5": [], "Bus 6": [], "Bus 7": [], "Bus 8": [], "Bus 9": [], "Bus 10": [], "Bus 11": [], "Bus 12": [], "Bus 13": [], "Bus 14": [], "Bus 15": [], "Bus 16": [], "Bus 17": [], "Bus 18": [], "Bus 19": [], "Bus 20": [], "Bus 21": [], "Bus 22": [], "Bus 23": [], "Bus 24": [], "Bus 25": [], "Bus 26": [], "Bus 27": [], "Bus 28": [], "Bus 29": [], "Bus 30": [], "Bus 31": [], "Bus 32": [], "Bus 33": [], "Bus 34": [], "Bus 35": [], "Bus 36": [], "Bus 37": [], "Bus 38": [], "Bus 39": [], "Bus 40": [], "Bus 41": [], "Bus 42": [], "Bus 43": [], "Bus 44": [], "Bus 45": [], "Bus 46": [], "Bus 47": [], "Bus 48": [], "Bus 49": [], "Bus 50": [], "Bus 51": [], "Bus 52": [], "Bus 53": [], "Bus 54": [], "Bus 55": [], "Bus 56": [], "Bus 57": [], "Bus 58": [], "Bus 59": [], "Bus 60": [], "Bus 61": [], "Bus 62": [], "Bus 63": [], "Bus 64": [], "Bus 65": [], "Bus 66": [], "Bus 67": [], "Bus 68": [], "Bus 69": [], "Bus 70": [], "Bus 71": [], "Bus 72": [], "Bus 73": [], "Bus 74": [], "Bus 75": [], "Bus 76": [], "Bus 77": [], "Bus 78": [], "Bus 79": [], "Bus 80": [], "Bus 81": [], "Bus 82": [], "Bus 83": [], "Bus 84": [], "Bus 85": [], "Bus 86": [], "Bus 87": [], "Bus 88": [], "Bus 89": [], "Bus 90": [], "Bus 91": [], "Bus 92": [], "Bus 93": [], "Bus 94": [], "Bus 95": [], "Bus 96": [], "Bus 97": [], "Bus 98": [], "Bus 99": [], "Bus 100": [], "Bus 101": [], "Bus 102": [], "Bus 103": [], "Bus 104": [], "Bus 105": [], "Bus 106": [], "Bus 107": [], "Bus 108": [], "Bus 109": [], "Bus 110": [], "Bus 111": [], "Bus 112": [], "Bus 113": [], "Bus 114": [], "Bus 115": [], "Bus 116": [], "Bus 117": [], "Bus 118": [], "Bus 119": [], "Bus 120": [], "Bus 121": [], "Bus 122": [], "Bus 123": [], "Bus 124": [], "Bus 125": [], "Bus 126": [], "Bus 127": [], "Bus 128": [], "Bus 129": [], "Bus 130": [], "Bus 131": [], "Bus 132": [], "Bus 133": [], "Bus 134": [], "Bus 135": [], "Bus 136": [], "Bus 137": [], "Bus 138": [], "Bus 139": [], "Bus 140": [], "Bus 141": [], "Bus 142": [], "Bus 143": [], "Bus 144": [], "Bus 145": [], "Bus 146": [], "Bus 147": [], "Bus 148": [], "Bus 149": [], "Bus 150": [], "Bus 151": [], "Bus 152": [], "Bus 153": [], "Bus 154": [], "Bus 155": [], "Bus 156": [], "Bus 157": [], "Bus 158": [], "Bus 159": [], "Bus 160": [], "Bus 161": [], "Bus 162": [], "Bus 163": [], "Bus 164": [], "Bus 165": [], "Bus 166": [], "Bus 167": [], "Bus 168": [], "Bus 169": [], "Bus 170": [], "Bus 171": [], "Bus 172": [], "Bus 173": [], "Bus 174": [], "Bus 175": [], "Bus 176": [], "Bus 177": [], "Bus 178": [], "Bus 179": [], "Bus 180": [], "Bus 181": [], "Bus 182": [], "Bus 183": [], "Bus 184": [], "Bus 185": [], "Bus 186": [], "Bus 187": [], "Bus 188": [], "Bus 189": [], "Bus 190": [], "Bus 191": [], "Bus 192": [], "Bus 193": [], "Bus 194": [], "Bus 195": [], "Bus 196": [], "Bus 197": [], "Bus 198": [], "Bus 199": [], "Bus 200": [], "Bus 201": [], "Bus 202": [], "Bus 203": [], "Bus 204": [], "Bus 205": [], "Bus 206": [], "Bus 207": [], "Bus 208": [], "Bus 209": [], "Bus 210": [], "Bus 211": [], "Bus 212": [], "Bus 213": [], "Bus 214": [], "Bus 215": [], "Bus 216": [], "Bus 217": [], "Bus 218": [], "Bus 219": [], "Bus 220": [], "Bus 221": [], "Bus 222": [], "Bus 223": [], "Bus 224": [], "Bus 225": [], "Bus 226": [], "Bus 227": [], "Bus 228": [], "Bus 229": [], "Bus 230": [], "Bus 231": [], "Bus 232": [], "Bus 233": [], "Bus 234": [], "Bus 235": [], "Bus 236": [], "Bus 237": [], "Bus 238": [], "Bus 239": [], "Bus 240": [], "Bus 241": [], "Bus 242": [], "Bus 243": [], "Bus 244": [], "Bus 245": [], "Bus 246": [], "Bus 247": [], "Bus 248": [], "Bus 249": [], "Bus 250": [], "Bus 251": [], "Bus 252": [], "Bus 253": [], "Bus 254": [], "Bus 255": [], "Bus 256": [], "Bus 257": [], "Bus 258": [], "Bus 259": [], "Bus 260": [], "Bus 261": [], "Bus 262": [], "Bus 263": [], "Bus 264": [], "Bus 265": [], "Bus 266": [], "Bus 267": [], "Bus 268": [], "Bus 269": [], "Bus 270": [], "Bus 271": [], "Bus 272": [], "Bus 273": [], "Bus 274": [], "Bus 275": [], "Bus 276": [], "Bus 277": [], "Bus 278": [], "Bus 279": [], "Bus 280": [], "Bus 281": [], "Bus 282": [], "Bus 283": [], "Bus 284": [], "Bus 285": [], "Bus 286": [], "Bus 287": [], "Bus 288": [], "Bus 289": [], "Bus 290": [], "Bus 291": [], "Bus 292": [], "Bus 293": [], "Bus 294": [], "Bus 295": [], "Bus 296": [], "Bus 297": [], "Bus 298": [], "Bus 299": [], "Bus 300": [], "Bus 301": [], "Bus 302": [], "Bus 303": [], "Bus 304": [], "Bus 305": [], "Bus 306": [], "Bus 307": [], "Bus 308": [], "Bus 309": [], "Bus 310": [], "Bus 311": [], "Bus 312": [], "Bus 313": [], "Bus 314": [], "Bus 315": [], "Bus 316": [], "Bus 317": [], "Bus 318": [], "Bus 319": [], "Bus 320": [], "Bus 321": [], "Bus 322": [], "Bus 323": [], "Bus 324": [], "Bus 325": [], "Bus 326": [], "Bus 327": [], "Bus 328": [], "Bus 329": [], "Bus 330": [], "Bus 331": [], "Bus 332": [], "Bus 333": [], "Bus 334": [], "Bus 335": [], "Bus 336": [], "Bus 337": [], "Bus 338": [], "Bus 339": [], "Bus 340": [], "Bus 341": [], "Bus 342": [], "Bus 343": [], "Bus 344": [], "Bus 345": [], "Bus 346": [], "Bus 347": [], "Bus 348": [], "Bus 349": [], "Bus 350": [], "Bus 351": [], "Bus 352": [], "Bus 353": [], "Bus 354": [], "Bus 355": [], "Bus 356": [], "Bus 357": [], "Bus 358": [], "Bus 359": [], "Bus 360": [], "Bus 361": [], "Bus 362": [], "Bus 363": [], "Bus 364": [], "Bus 365": [], "Bus 366": [], "Bus 367": [], "Bus 368": [], "Bus 369": [], "Bus 370": [], "Bus 371": [], "Bus 372": [], "Bus 373": [], "Bus 374": [], "Bus 375": [], "Bus 376": [], "Bus 377": [], "Bus 378": [], "Bus 379": [], "Bus 380": [], "Bus 381": [], "Bus 382": [], "Bus 383": [], "Bus 384": [], "Bus 385": [], "Bus 386": [], "Bus 387": [], "Bus 388": [], "Bus 389": [], "Bus 390": [], "Bus 391": [], "Bus 392": [], "Bus 393": [], "Bus 394": [], "Bus 395": [], "Bus 396": [], "Bus 397": [], "Bus 398": [], "Bus 399": [], "Bus 400": [], "Bus 401": [], "Bus 402": [], "Bus 403": [], "Bus 404": [], "Bus 405": [], "Bus 406": [], "Bus 407": [], "Bus 408": [], "Bus 409": [], "Bus 410": [], "Bus 411": [], "Bus 412": [], "Bus 413": [], "Bus 414": [], "Bus 415": [], "Bus 416": [], "Bus 417": [], "Bus 418": [], "Bus 419": [], "Bus 420": [], "Bus 421": [], "Bus 422": [], "Bus 423": [], "Bus 424": [], "Bus 425": [], "Bus 426": [], "Bus 427": [], "Bus 428": [], "Bus 429": [], "Bus 430": [], "Bus 431": [], "Bus 432": [], "Bus 433": [], "Bus 434": [], "Bus 435": [], "Bus 436": [], "Bus 437": [], "Bus 438": [], "Bus 439": [], "Bus 440": [], "Bus 441": [], "Bus 442": [], "Bus 443": [], "Bus 444": [], "Bus 445": [], "Bus 446": [], "Bus 447": [], "Bus 448": [], "Bus 449": [], "Bus 450": [], "Bus 451": [], "Bus 452": [], "Bus 453": [], "Bus 454": [], "Bus 455": [], "Bus 456": [], "Bus 457": [], "Bus 458": [], "Bus 459": [], "Bus 460": [], "Bus 461": [], "Bus 462": [], "Bus 463": [], "Bus 464": [], "Bus 465": [], "Bus 466": [], "Bus 467": [], "Bus 468": [], "Bus 469": [], "Bus 470": [], "Bus 471": [], "Bus 472": [], "Bus 473": [], "Bus 474": [], "Bus 475": [], "Bus 476": [], "Bus 477": [], "Bus 478": [], "Bus 479": [], "Bus 480": [], "Bus 481": [], "Bus 482": [], "Bus 483": [], "Bus 484": [], "Bus 485": [], "Bus 486": [], "Bus 487": [], "Bus 488": [], "Bus 489": [], "Bus 490": [], "Bus 491": [], "Bus 492": [], "Bus 493": [], "Bus 494": [], "Bus 495": [], "Bus 496": [], "Bus 497": [], "Bus 498": [], "Bus 499": [], "Bus 500": [], "Bus 501": [], "Bus 502": [], "Bus 503": [], "Bus 504": [], "Bus 505": [], "Bus 506": [], "Bus 507": [], "Bus 508": [], "Bus 509": [], "Bus 510": [], "Bus 511": [], "Bus 512": [], "Bus 513": [], "Bus 514": [], "Bus 515": [], "Bus 516": [], "Bus 517": [], "Bus 518": [], "Bus 519": [], "Bus 520": [], "Bus 521": [], "Bus 522": [], "Bus 523": [], "Bus 524": [], "Bus 525": [], "Bus 526": [], "Bus 527": [], "Bus 528": [], "Bus 529": [], "Bus 530": [], "Bus 531": [], "Bus 532": [], "Bus 533": [], "Bus 534": [], "Bus 535": [], "Bus 536": [], "Bus 537": [], "Bus 538": [], "Bus 539": [], "Bus 540": [], "Bus 541": [], "Bus 542": [], "Bus 543": [], "Bus 544": [], "Bus 545": [], "Bus 546": [], "Bus 547": [], "Bus 548": [], "Bus 549": [], "Bus 550": [], "Bus 551": [], "Bus 552": [], "Bus 553": [], "Bus 554": [], "Bus 555": [], "Bus 556": [], "Bus 557": [], "Bus 558": [], "Bus 559": [], "Bus 560": [], "Bus 561": [], "Bus 562": [], "Bus 563": [], "Bus 564": [], "Bus 565": [], "Bus 566": [], "Bus 567": [], "Bus 568": [], "Bus 569": [], "Bus 570": [], "Bus 571": [], "Bus 572": [], "Bus 573": [], "Bus 574": [], "Bus 575": [], "Bus 576": [], "Bus 577": [], "Bus 578": [], "Bus 579": [], "Bus 580": [], "Bus 581": [], "Bus 582": [], "Bus 583": [], "Bus 584": [], "Bus 585": [], "Bus 586": [], "Bus 587": [], "Bus 588": [], "Bus 589": [], "Bus 590": [], "Bus 591": [], "Bus 592": [], "Bus 593": [], "Bus 594": [], "Bus 595": [], "Bus 596": [], "Bus 597": [], "Bus 598": [], "Bus 599": [], "Bus 600": [], "Bus 601": [], "Bus 602": [], "Bus 603": [], "Bus 604": [], "Bus 605": [], "Bus 606": [], "Bus 607": [], "Bus 608": [], "Bus 609": [], "Bus 610": [], "Bus 611": [], "Bus 612": [], "Bus 613": [], "Bus 614": [], "Bus 615": [], "Bus 616": [], "Bus 617": [], "Bus 618": [], "Bus 619": [], "Bus 620": [], "Bus 621": [], "Bus 622": [], "Bus 623": [], "Bus 624": [], "Bus 625": [], "Bus 626": [], "Bus 627": [], "Bus 628": [], "Bus 629": [], "Bus 630": [], "Bus 631": [], "Bus 632": [], "Bus 633": [], "Bus 634": [], "Bus 635": [], "Bus 636": [], "Bus 637": [], "Bus 638": [], "Bus 639": [], "Bus 640": [], "Bus 641": [], "Bus 642": [], "Bus 643": [], "Bus 644": [], "Bus 645": [], "Bus 646": [], "Bus 647": [], "Bus 648": [], "Bus 649": [], "Bus 650": [], "Bus 651": [], "Bus 652": [], "Bus 653": [], "Bus 654": [], "Bus 655": [], "Bus 656": [], "Bus 657": [], "Bus 658": [], "Bus 659": [], "Bus 660": [], "Bus 661": [], "Bus 662": [], "Bus 663": [], "Bus 664": [], "Bus 665": [], "Bus 666": [], "Bus 667": [], "Bus 668": [], "Bus 669": [], "Bus 670": [], "Bus 671": [], "Bus 672": [], "Bus 673": [], "Bus 674": [], "Bus 675": [], "Bus 676": [], "Bus 677": [], "Bus 678": [], "Bus 679": [], "Bus 680": [], "Bus 681": [], "Bus 682": [], "Bus 683": [], "Bus 684": [], "Bus 685": [], "Bus 686": [], "Bus 687": [], "Bus 688": [], "Bus 689": [], "Bus 690": [], "Bus 691": [], "Bus 692": [], "Bus 693": [], "Bus 694": [], "Bus 695": [], "Bus 696": [], "Bus 697": [], "Bus 698": [], "Bus 699": [], "Bus 700": [], "Bus 701": [], "Bus 702": [], "Bus 703": [], "Bus 704": [], "Bus 705": [], "Bus 706": [], "Bus 707": [], "Bus 708": [], "Bus 709": [], "Bus 710": [], "Bus 711": [], "Bus 712": [], "Bus 713": [], "Bus 714": [], "Bus 715": [], "Bus 716": [], "Bus 717": [], "Bus 718": [], "Bus 719": [], "Bus 720": [], "Bus 721": [], "Bus 722": [], "Bus 723": [], "Bus 724": [], "Bus 725": [], "Bus 726": [], "Bus 727": [], "Bus 728": [], "Bus 729": [], "Bus 730": [], "Bus 731": [], "Bus 732": [], "Bus 733": [], "Bus 734": [], "Bus 735": [], "Bus 736": [], "Bus 737": [], "Bus 738": [], "Bus 739": [], "Bus 740": [], "Bus 741": [], "Bus 742": [], "Bus 743": [], "Bus 744": [], "Bus 745": [], "Bus 746": [], "Bus 747": [], "Bus 748": [], "Bus 749": [], "Bus 750": [], "Bus 751": [], "Bus 752": [], "Bus 753": [], "Bus 754": [], "Bus 755": [], "Bus 756": [], "Bus 757": [], "Bus 758": [], "Bus 759": [], "Bus 760": [], "Bus 761": [], "Bus 762": [], "Bus 763": [], "Bus 764": [], "Bus 765": [], "Bus 766": [], "Bus 767": [], "Bus 768": [], "Bus 769": [], "Bus 770": [], "Bus 771": [], "Bus 772": [], "Bus 773": [], "Bus 774": [], "Bus 775": [], "Bus 776": [], "Bus 777": [], "Bus 778": [], "Bus 779": [], "Bus 780": [], "Bus 781": [], "Bus 782": [], "Bus 783": [], "Bus 784": [], "Bus 785": [], "Bus 786": [], "Bus 787": [], "Bus 788": [], "Bus 789": [], "Bus 790": [], "Bus 791": [], "Bus 792": [], "Bus 793": [], "Bus 794": [], "Bus 795": [], "Bus 796": [], "Bus 797": [], "Bus 798": [], "Bus 799": [], "Bus 800": [], "Bus 801": [], "Bus 802": [], "Bus 803": [], "Bus 804": [], "Bus 805": [], "Bus 806": [], "Bus 807": [], "Bus 808": [], "Bus 809": [], "Bus 810": [], "Bus 811": [], "Bus 812": [], "Bus 813": [], "Bus 814": [], "Bus 815": [], "Bus 816": [], "Bus 817": [], "Bus 818": [], "Bus 819": [], "Bus 820": [], "Bus 821": [], "Bus 822": [], "Bus 823": [], "Bus 824": [], "Bus 825": [], "Bus 826": [], "Bus 827": [], "Bus 828": [], "Bus 829": [], "Bus 830": [], "Bus 831": [], "Bus 832": [], "Bus 833": [], "Bus 834": [], "Bus 835": [], "Bus 836": [], "Bus 837": [], "Bus 838": [], "Bus 839": [], "Bus 840": [], "Bus 841": [], "Bus 842": [], "Bus 843": [], "Bus 844": [], "Bus 845": [], "Bus 846": [], "Bus 847": [], "Bus 848": [], "Bus 849": [], "Bus 850": [], "Bus 851": [], "Bus 852": [], "Bus 853": [], "Bus 854": [], "Bus 855": [], "Bus 856": [], "Bus 857": [], "Bus 858": [], "Bus 859": [], "Bus 860": [], "Bus 861": [], "Bus 862": [], "Bus 863": [], "Bus 864": [], "Bus 865": [], "Bus 866": [], "Bus 867": [], "Bus 868": [], "Bus 869": [], "Bus 870": [], "Bus 871": [], "Bus 872": [], "Bus 873": [], "Bus 874": [], "Bus 875": [], "Bus 876": [], "Bus 877": [], "Bus 878": [], "Bus 879": [], "Bus 880": [], "Bus 881": [], "Bus 882": [], "Bus 883": [], "Bus 884": [], "Bus 885": [], "Bus 886": [], "Bus 887": [], "Bus 888": [], "Bus 889": [], "Bus 890": [], "Bus 891": [], "Bus 892": [], "Bus 893": [], "Bus 894": [], "Bus 895": [], "Bus 896": [], "Bus 897": [], "Bus 898": [], "Bus 899": [], "Bus 900": [], "Bus 901": [], "Bus 902": [], "Bus 903": [], "Bus 904": [], "Bus 905": [], "Bus 906": [], "Bus 907": [], "Bus 908": [], "Bus 909": [], "Bus 910": [], "Bus 911": [], "Bus 912": [], "Bus 913": [], "Bus 914": [], "Bus 915": [], "Bus 916": [], "Bus 917": [], "Bus 918": [], "Bus 919": [], "Bus 920": [], "Bus 921": [], "Bus 922": [], "Bus 923": [], "Bus 924": [], "Bus 925": [], "Bus 926": [], "Bus 927": [], "Bus 928": [], "Bus 929": [], "Bus 930": [], "Bus 931": [], "Bus 932": [], "Bus 933": [], "Bus 934": [], "Bus 935": [], "Bus 936": [], "Bus 937": [], "Bus 938": [], "Bus 939": [], "Bus 940": [], "Bus 941": [], "Bus 942": [], "Bus 943": [], "Bus 944": [], "Bus 945": [], "Bus 946": [], "Bus 947": [], "Bus 948": [], "Bus 949": [], "Bus 950": [], "Bus 951": [], "Bus 952": [], "Bus 953": [], "Bus 954": [], "Bus 955": [], "Bus 956": [], "Bus 957": [], "Bus 958": [], "Bus 959": [], "Bus 960": [], "Bus 961": [], "Bus 962": [], "Bus 963": [], "Bus 964": [], "Bus 965": [], "Bus 966": [], "Bus 967": [], "Bus 968": [], "Bus 969": [], "Bus 970": [], "Bus 971": [], "Bus 972": [], "Bus 973": [], "Bus 974": [], "Bus 975": [], "Bus 976": [], "Bus 977": [], "Bus 978": [], "Bus 979": [], "Bus 980": [], "Bus 981": [], "Bus 982": [], "Bus 983": [], "Bus 984": [], "Bus 985": [], "Bus 986": [], "Bus 987": [], "Bus 988": [], "Bus 989": [], "Bus 990": [], "Bus 991": [], "Bus 992": [], "Bus 993": [], "Bus 994": [], "Bus 995": [], "Bus 996": [], "Bus 997": [], "Bus 998": [], "Bus 999": []} \ No newline at end of file +{"Line 1": ["Line 1: Mon. November 7 through Thurs. November 10, subway service between Finch and Eglinton stations will end nightly at 11 p.m. for track work. Shuttle buses will run. See other service alerts.", "Line 1: There is no subway service between Sheppard-Yonge and St Clair stations today and tomorrow for work on the Eglinton Crosstown LRT and TTC track work. Shuttle buses are running. See other service alerts."], "Line 2": [], "Line 3": [], "Line 4": [], "Bus 0": [], "Bus 1": [], "Bus 2": [], "Bus 3": [], "Bus 4": [], "Bus 5": [], "Bus 6": [], "Bus 7": [], "Bus 8": [], "Bus 9": [], "Bus 10": [], "Bus 11": [], "Bus 12": [], "Bus 13": [], "Bus 14": [], "Bus 15": [], "Bus 16": [], "Bus 17": [], "Bus 18": [], "Bus 19": [], "Bus 20": [], "Bus 21": [], "Bus 22": [], "Bus 23": [], "Bus 24": [], "Bus 25": [], "Bus 26": [], "Bus 27": [], "Bus 28": [], "Bus 29": [], "Bus 30": [], "Bus 31": [], "Bus 32": [], "Bus 33": [], "Bus 34": [], "Bus 35": [], "Bus 36": [], "Bus 37": [], "Bus 38": [], "Bus 39": [], "Bus 40": [], "Bus 41": [], "Bus 42": [], "Bus 43": [], "Bus 44": [], "Bus 45": [], "Bus 46": [], "Bus 47": [], "Bus 48": [], "Bus 49": [], "Bus 50": [], "Bus 51": [], "Bus 52": [], "Bus 53": [], "Bus 54": [], "Bus 55": [], "Bus 56": [], "Bus 57": [], "Bus 58": [], "Bus 59": [], "Bus 60": [], "Bus 61": [], "Bus 62": [], "Bus 63": [], "Bus 64": [], "Bus 65": [], "Bus 66": [], "Bus 67": [], "Bus 68": [], "Bus 69": [], "Bus 70": [], "Bus 71": [], "Bus 72": [], "Bus 73": [], "Bus 74": [], "Bus 75": [], "Bus 76": [], "Bus 77": [], "Bus 78": [], "Bus 79": [], "Bus 80": [], "Bus 81": [], "Bus 82": [], "Bus 83": [], "Bus 84": [], "Bus 85": [], "Bus 86": [], "Bus 87": [], "Bus 88": [], "Bus 89": [], "Bus 90": [], "Bus 91": [], "Bus 92": [], "Bus 93": [], "Bus 94": [], "Bus 95": [], "Bus 96": [], "Bus 97": [], "Bus 98": [], "Bus 99": [], "Bus 100": [], "Bus 101": [], "Bus 102": [], "Bus 103": [], "Bus 104": [], "Bus 105": [], "Bus 106": [], "Bus 107": [], "Bus 108": [], "Bus 109": [], "Bus 110": [], "Bus 111": [], "Bus 112": [], "Bus 113": [], "Bus 114": [], "Bus 115": [], "Bus 116": [], "Bus 117": [], "Bus 118": [], "Bus 119": [], "Bus 120": [], "Bus 121": [], "Bus 122": [], "Bus 123": [], "Bus 124": [], "Bus 125": [], "Bus 126": [], "Bus 127": [], "Bus 128": [], "Bus 129": [], "Bus 130": [], "Bus 131": [], "Bus 132": [], "Bus 133": [], "Bus 134": [], "Bus 135": [], "Bus 136": [], "Bus 137": [], "Bus 138": [], "Bus 139": [], "Bus 140": [], "Bus 141": [], "Bus 142": [], "Bus 143": [], "Bus 144": [], "Bus 145": [], "Bus 146": [], "Bus 147": [], "Bus 148": [], "Bus 149": [], "Bus 150": [], "Bus 151": [], "Bus 152": [], "Bus 153": [], "Bus 154": [], "Bus 155": [], "Bus 156": [], "Bus 157": [], "Bus 158": [], "Bus 159": [], "Bus 160": [], "Bus 161": [], "Bus 162": [], "Bus 163": [], "Bus 164": [], "Bus 165": [], "Bus 166": [], "Bus 167": [], "Bus 168": [], "Bus 169": [], "Bus 170": [], "Bus 171": [], "Bus 172": [], "Bus 173": [], "Bus 174": [], "Bus 175": [], "Bus 176": [], "Bus 177": [], "Bus 178": [], "Bus 179": [], "Bus 180": [], "Bus 181": [], "Bus 182": [], "Bus 183": [], "Bus 184": [], "Bus 185": [], "Bus 186": [], "Bus 187": [], "Bus 188": [], "Bus 189": [], "Bus 190": [], "Bus 191": [], "Bus 192": [], "Bus 193": [], "Bus 194": [], "Bus 195": [], "Bus 196": [], "Bus 197": [], "Bus 198": [], "Bus 199": [], "Bus 200": [], "Bus 201": [], "Bus 202": [], "Bus 203": [], "Bus 204": [], "Bus 205": [], "Bus 206": [], "Bus 207": [], "Bus 208": [], "Bus 209": [], "Bus 210": [], "Bus 211": [], "Bus 212": [], "Bus 213": [], "Bus 214": [], "Bus 215": [], "Bus 216": [], "Bus 217": [], "Bus 218": [], "Bus 219": [], "Bus 220": [], "Bus 221": [], "Bus 222": [], "Bus 223": [], "Bus 224": [], "Bus 225": [], "Bus 226": [], "Bus 227": [], "Bus 228": [], "Bus 229": [], "Bus 230": [], "Bus 231": [], "Bus 232": [], "Bus 233": [], "Bus 234": [], "Bus 235": [], "Bus 236": [], "Bus 237": [], "Bus 238": [], "Bus 239": [], "Bus 240": [], "Bus 241": [], "Bus 242": [], "Bus 243": [], "Bus 244": [], "Bus 245": [], "Bus 246": [], "Bus 247": [], "Bus 248": [], "Bus 249": [], "Bus 250": [], "Bus 251": [], "Bus 252": [], "Bus 253": [], "Bus 254": [], "Bus 255": [], "Bus 256": [], "Bus 257": [], "Bus 258": [], "Bus 259": [], "Bus 260": [], "Bus 261": [], "Bus 262": [], "Bus 263": [], "Bus 264": [], "Bus 265": [], "Bus 266": [], "Bus 267": [], "Bus 268": [], "Bus 269": [], "Bus 270": [], "Bus 271": [], "Bus 272": [], "Bus 273": [], "Bus 274": [], "Bus 275": [], "Bus 276": [], "Bus 277": [], "Bus 278": [], "Bus 279": [], "Bus 280": [], "Bus 281": [], "Bus 282": [], "Bus 283": [], "Bus 284": [], "Bus 285": [], "Bus 286": [], "Bus 287": [], "Bus 288": [], "Bus 289": [], "Bus 290": [], "Bus 291": [], "Bus 292": [], "Bus 293": [], "Bus 294": [], "Bus 295": [], "Bus 296": [], "Bus 297": [], "Bus 298": [], "Bus 299": [], "Bus 300": [], "Bus 301": [], "Bus 302": [], "Bus 303": [], "Bus 304": [], "Bus 305": [], "Bus 306": [], "Bus 307": [], "Bus 308": [], "Bus 309": [], "Bus 310": [], "Bus 311": [], "Bus 312": [], "Bus 313": [], "Bus 314": [], "Bus 315": [], "Bus 316": [], "Bus 317": [], "Bus 318": [], "Bus 319": [], "Bus 320": [], "Bus 321": [], "Bus 322": [], "Bus 323": [], "Bus 324": [], "Bus 325": [], "Bus 326": [], "Bus 327": [], "Bus 328": [], "Bus 329": [], "Bus 330": [], "Bus 331": [], "Bus 332": [], "Bus 333": [], "Bus 334": [], "Bus 335": [], "Bus 336": [], "Bus 337": [], "Bus 338": [], "Bus 339": [], "Bus 340": [], "Bus 341": [], "Bus 342": [], "Bus 343": [], "Bus 344": [], "Bus 345": [], "Bus 346": [], "Bus 347": [], "Bus 348": [], "Bus 349": [], "Bus 350": [], "Bus 351": [], "Bus 352": [], "Bus 353": [], "Bus 354": [], "Bus 355": [], "Bus 356": [], "Bus 357": [], "Bus 358": [], "Bus 359": [], "Bus 360": [], "Bus 361": [], "Bus 362": [], "Bus 363": [], "Bus 364": [], "Bus 365": [], "Bus 366": [], "Bus 367": [], "Bus 368": [], "Bus 369": [], "Bus 370": [], "Bus 371": [], "Bus 372": [], "Bus 373": [], "Bus 374": [], "Bus 375": [], "Bus 376": [], "Bus 377": [], "Bus 378": [], "Bus 379": [], "Bus 380": [], "Bus 381": [], "Bus 382": [], "Bus 383": [], "Bus 384": [], "Bus 385": [], "Bus 386": [], "Bus 387": [], "Bus 388": [], "Bus 389": [], "Bus 390": [], "Bus 391": [], "Bus 392": [], "Bus 393": [], "Bus 394": [], "Bus 395": [], "Bus 396": [], "Bus 397": [], "Bus 398": [], "Bus 399": [], "Bus 400": [], "Bus 401": [], "Bus 402": [], "Bus 403": [], "Bus 404": [], "Bus 405": [], "Bus 406": [], "Bus 407": [], "Bus 408": [], "Bus 409": [], "Bus 410": [], "Bus 411": [], "Bus 412": [], "Bus 413": [], "Bus 414": [], "Bus 415": [], "Bus 416": [], "Bus 417": [], "Bus 418": [], "Bus 419": [], "Bus 420": [], "Bus 421": [], "Bus 422": [], "Bus 423": [], "Bus 424": [], "Bus 425": [], "Bus 426": [], "Bus 427": [], "Bus 428": [], "Bus 429": [], "Bus 430": [], "Bus 431": [], "Bus 432": [], "Bus 433": [], "Bus 434": [], "Bus 435": [], "Bus 436": [], "Bus 437": [], "Bus 438": [], "Bus 439": [], "Bus 440": [], "Bus 441": [], "Bus 442": [], "Bus 443": [], "Bus 444": [], "Bus 445": [], "Bus 446": [], "Bus 447": [], "Bus 448": [], "Bus 449": [], "Bus 450": [], "Bus 451": [], "Bus 452": [], "Bus 453": [], "Bus 454": [], "Bus 455": [], "Bus 456": [], "Bus 457": [], "Bus 458": [], "Bus 459": [], "Bus 460": [], "Bus 461": [], "Bus 462": [], "Bus 463": [], "Bus 464": [], "Bus 465": [], "Bus 466": [], "Bus 467": [], "Bus 468": [], "Bus 469": [], "Bus 470": [], "Bus 471": [], "Bus 472": [], "Bus 473": [], "Bus 474": [], "Bus 475": [], "Bus 476": [], "Bus 477": [], "Bus 478": [], "Bus 479": [], "Bus 480": [], "Bus 481": [], "Bus 482": [], "Bus 483": [], "Bus 484": [], "Bus 485": [], "Bus 486": [], "Bus 487": [], "Bus 488": [], "Bus 489": [], "Bus 490": [], "Bus 491": [], "Bus 492": [], "Bus 493": [], "Bus 494": [], "Bus 495": [], "Bus 496": [], "Bus 497": [], "Bus 498": [], "Bus 499": [], "Bus 500": [], "Bus 501": [], "Bus 502": [], "Bus 503": [], "Bus 504": [], "Bus 505": [], "Bus 506": [], "Bus 507": [], "Bus 508": [], "Bus 509": [], "Bus 510": [], "Bus 511": [], "Bus 512": [], "Bus 513": [], "Bus 514": [], "Bus 515": [], "Bus 516": [], "Bus 517": [], "Bus 518": [], "Bus 519": [], "Bus 520": [], "Bus 521": [], "Bus 522": [], "Bus 523": [], "Bus 524": [], "Bus 525": [], "Bus 526": [], "Bus 527": [], "Bus 528": [], "Bus 529": [], "Bus 530": [], "Bus 531": [], "Bus 532": [], "Bus 533": [], "Bus 534": [], "Bus 535": [], "Bus 536": [], "Bus 537": [], "Bus 538": [], "Bus 539": [], "Bus 540": [], "Bus 541": [], "Bus 542": [], "Bus 543": [], "Bus 544": [], "Bus 545": [], "Bus 546": [], "Bus 547": [], "Bus 548": [], "Bus 549": [], "Bus 550": [], "Bus 551": [], "Bus 552": [], "Bus 553": [], "Bus 554": [], "Bus 555": [], "Bus 556": [], "Bus 557": [], "Bus 558": [], "Bus 559": [], "Bus 560": [], "Bus 561": [], "Bus 562": [], "Bus 563": [], "Bus 564": [], "Bus 565": [], "Bus 566": [], "Bus 567": [], "Bus 568": [], "Bus 569": [], "Bus 570": [], "Bus 571": [], "Bus 572": [], "Bus 573": [], "Bus 574": [], "Bus 575": [], "Bus 576": [], "Bus 577": [], "Bus 578": [], "Bus 579": [], "Bus 580": [], "Bus 581": [], "Bus 582": [], "Bus 583": [], "Bus 584": [], "Bus 585": [], "Bus 586": [], "Bus 587": [], "Bus 588": [], "Bus 589": [], "Bus 590": [], "Bus 591": [], "Bus 592": [], "Bus 593": [], "Bus 594": [], "Bus 595": [], "Bus 596": [], "Bus 597": [], "Bus 598": [], "Bus 599": [], "Bus 600": [], "Bus 601": [], "Bus 602": [], "Bus 603": [], "Bus 604": [], "Bus 605": [], "Bus 606": [], "Bus 607": [], "Bus 608": [], "Bus 609": [], "Bus 610": [], "Bus 611": [], "Bus 612": [], "Bus 613": [], "Bus 614": [], "Bus 615": [], "Bus 616": [], "Bus 617": [], "Bus 618": [], "Bus 619": [], "Bus 620": [], "Bus 621": [], "Bus 622": [], "Bus 623": [], "Bus 624": [], "Bus 625": [], "Bus 626": [], "Bus 627": [], "Bus 628": [], "Bus 629": [], "Bus 630": [], "Bus 631": [], "Bus 632": [], "Bus 633": [], "Bus 634": [], "Bus 635": [], "Bus 636": [], "Bus 637": [], "Bus 638": [], "Bus 639": [], "Bus 640": [], "Bus 641": [], "Bus 642": [], "Bus 643": [], "Bus 644": [], "Bus 645": [], "Bus 646": [], "Bus 647": [], "Bus 648": [], "Bus 649": [], "Bus 650": [], "Bus 651": [], "Bus 652": [], "Bus 653": [], "Bus 654": [], "Bus 655": [], "Bus 656": [], "Bus 657": [], "Bus 658": [], "Bus 659": [], "Bus 660": [], "Bus 661": [], "Bus 662": [], "Bus 663": [], "Bus 664": [], "Bus 665": [], "Bus 666": [], "Bus 667": [], "Bus 668": [], "Bus 669": [], "Bus 670": [], "Bus 671": [], "Bus 672": [], "Bus 673": [], "Bus 674": [], "Bus 675": [], "Bus 676": [], "Bus 677": [], "Bus 678": [], "Bus 679": [], "Bus 680": [], "Bus 681": [], "Bus 682": [], "Bus 683": [], "Bus 684": [], "Bus 685": [], "Bus 686": [], "Bus 687": [], "Bus 688": [], "Bus 689": [], "Bus 690": [], "Bus 691": [], "Bus 692": [], "Bus 693": [], "Bus 694": [], "Bus 695": [], "Bus 696": [], "Bus 697": [], "Bus 698": [], "Bus 699": [], "Bus 700": [], "Bus 701": [], "Bus 702": [], "Bus 703": [], "Bus 704": [], "Bus 705": [], "Bus 706": [], "Bus 707": [], "Bus 708": [], "Bus 709": [], "Bus 710": [], "Bus 711": [], "Bus 712": [], "Bus 713": [], "Bus 714": [], "Bus 715": [], "Bus 716": [], "Bus 717": [], "Bus 718": [], "Bus 719": [], "Bus 720": [], "Bus 721": [], "Bus 722": [], "Bus 723": [], "Bus 724": [], "Bus 725": [], "Bus 726": [], "Bus 727": [], "Bus 728": [], "Bus 729": [], "Bus 730": [], "Bus 731": [], "Bus 732": [], "Bus 733": [], "Bus 734": [], "Bus 735": [], "Bus 736": [], "Bus 737": [], "Bus 738": [], "Bus 739": [], "Bus 740": [], "Bus 741": [], "Bus 742": [], "Bus 743": [], "Bus 744": [], "Bus 745": [], "Bus 746": [], "Bus 747": [], "Bus 748": [], "Bus 749": [], "Bus 750": [], "Bus 751": [], "Bus 752": [], "Bus 753": [], "Bus 754": [], "Bus 755": [], "Bus 756": [], "Bus 757": [], "Bus 758": [], "Bus 759": [], "Bus 760": [], "Bus 761": [], "Bus 762": [], "Bus 763": [], "Bus 764": [], "Bus 765": [], "Bus 766": [], "Bus 767": [], "Bus 768": [], "Bus 769": [], "Bus 770": [], "Bus 771": [], "Bus 772": [], "Bus 773": [], "Bus 774": [], "Bus 775": [], "Bus 776": [], "Bus 777": [], "Bus 778": [], "Bus 779": [], "Bus 780": [], "Bus 781": [], "Bus 782": [], "Bus 783": [], "Bus 784": [], "Bus 785": [], "Bus 786": [], "Bus 787": [], "Bus 788": [], "Bus 789": [], "Bus 790": [], "Bus 791": [], "Bus 792": [], "Bus 793": [], "Bus 794": [], "Bus 795": [], "Bus 796": [], "Bus 797": [], "Bus 798": [], "Bus 799": [], "Bus 800": [], "Bus 801": [], "Bus 802": [], "Bus 803": [], "Bus 804": [], "Bus 805": [], "Bus 806": [], "Bus 807": [], "Bus 808": [], "Bus 809": [], "Bus 810": [], "Bus 811": [], "Bus 812": [], "Bus 813": [], "Bus 814": [], "Bus 815": [], "Bus 816": [], "Bus 817": [], "Bus 818": [], "Bus 819": [], "Bus 820": [], "Bus 821": [], "Bus 822": [], "Bus 823": [], "Bus 824": [], "Bus 825": [], "Bus 826": [], "Bus 827": [], "Bus 828": [], "Bus 829": [], "Bus 830": [], "Bus 831": [], "Bus 832": [], "Bus 833": [], "Bus 834": [], "Bus 835": [], "Bus 836": [], "Bus 837": [], "Bus 838": [], "Bus 839": [], "Bus 840": [], "Bus 841": [], "Bus 842": [], "Bus 843": [], "Bus 844": [], "Bus 845": [], "Bus 846": [], "Bus 847": [], "Bus 848": [], "Bus 849": [], "Bus 850": [], "Bus 851": [], "Bus 852": [], "Bus 853": [], "Bus 854": [], "Bus 855": [], "Bus 856": [], "Bus 857": [], "Bus 858": [], "Bus 859": [], "Bus 860": [], "Bus 861": [], "Bus 862": [], "Bus 863": [], "Bus 864": [], "Bus 865": [], "Bus 866": [], "Bus 867": [], "Bus 868": [], "Bus 869": [], "Bus 870": [], "Bus 871": [], "Bus 872": [], "Bus 873": [], "Bus 874": [], "Bus 875": [], "Bus 876": [], "Bus 877": [], "Bus 878": [], "Bus 879": [], "Bus 880": [], "Bus 881": [], "Bus 882": [], "Bus 883": [], "Bus 884": [], "Bus 885": [], "Bus 886": [], "Bus 887": [], "Bus 888": [], "Bus 889": [], "Bus 890": [], "Bus 891": [], "Bus 892": [], "Bus 893": [], "Bus 894": [], "Bus 895": [], "Bus 896": [], "Bus 897": [], "Bus 898": [], "Bus 899": [], "Bus 900": [], "Bus 901": [], "Bus 902": [], "Bus 903": [], "Bus 904": [], "Bus 905": [], "Bus 906": [], "Bus 907": [], "Bus 908": [], "Bus 909": [], "Bus 910": [], "Bus 911": [], "Bus 912": [], "Bus 913": [], "Bus 914": [], "Bus 915": [], "Bus 916": [], "Bus 917": [], "Bus 918": [], "Bus 919": [], "Bus 920": [], "Bus 921": [], "Bus 922": [], "Bus 923": [], "Bus 924": [], "Bus 925": [], "Bus 926": [], "Bus 927": [], "Bus 928": [], "Bus 929": [], "Bus 930": [], "Bus 931": [], "Bus 932": [], "Bus 933": [], "Bus 934": [], "Bus 935": [], "Bus 936": [], "Bus 937": [], "Bus 938": [], "Bus 939": [], "Bus 940": [], "Bus 941": [], "Bus 942": [], "Bus 943": [], "Bus 944": [], "Bus 945": [], "Bus 946": [], "Bus 947": [], "Bus 948": [], "Bus 949": [], "Bus 950": [], "Bus 951": [], "Bus 952": [], "Bus 953": [], "Bus 954": [], "Bus 955": [], "Bus 956": [], "Bus 957": [], "Bus 958": [], "Bus 959": [], "Bus 960": [], "Bus 961": [], "Bus 962": [], "Bus 963": [], "Bus 964": [], "Bus 965": [], "Bus 966": [], "Bus 967": [], "Bus 968": [], "Bus 969": [], "Bus 970": [], "Bus 971": [], "Bus 972": [], "Bus 973": [], "Bus 974": [], "Bus 975": [], "Bus 976": [], "Bus 977": [], "Bus 978": [], "Bus 979": [], "Bus 980": [], "Bus 981": [], "Bus 982": [], "Bus 983": [], "Bus 984": [], "Bus 985": [], "Bus 986": [], "Bus 987": [], "Bus 988": [], "Bus 989": [], "Bus 990": [], "Bus 991": [], "Bus 992": [], "Bus 993": [], "Bus 994": [], "Bus 995": [], "Bus 996": [], "Bus 997": [], "Bus 998": [], "Bus 999": [], "Bus 107B": ["107B York University Heights: Detour northbound via Steeprock Dr, Dufferin St and Finch Ave W due to construction."]} \ No newline at end of file diff --git a/map_project/map_project/__pycache__/__init__.cpython-310.pyc b/map_project/map_project/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index d1a66d4ba..000000000 Binary files a/map_project/map_project/__pycache__/__init__.cpython-310.pyc and /dev/null differ diff --git a/map_project/map_project/__pycache__/__init__.cpython-311.pyc b/map_project/map_project/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 14827d98b..000000000 Binary files a/map_project/map_project/__pycache__/__init__.cpython-311.pyc and /dev/null differ diff --git a/map_project/map_project/__pycache__/settings.cpython-310.pyc b/map_project/map_project/__pycache__/settings.cpython-310.pyc deleted file mode 100644 index f2363637c..000000000 Binary files a/map_project/map_project/__pycache__/settings.cpython-310.pyc and /dev/null differ diff --git a/map_project/map_project/__pycache__/urls.cpython-310.pyc b/map_project/map_project/__pycache__/urls.cpython-310.pyc deleted file mode 100644 index 554a05b5a..000000000 Binary files a/map_project/map_project/__pycache__/urls.cpython-310.pyc and /dev/null differ diff --git a/map_project/map_project/__pycache__/wsgi.cpython-310.pyc b/map_project/map_project/__pycache__/wsgi.cpython-310.pyc deleted file mode 100644 index 58befaa07..000000000 Binary files a/map_project/map_project/__pycache__/wsgi.cpython-310.pyc and /dev/null differ diff --git a/map_project/map_project/__pycache__/wsgi.cpython-311.pyc b/map_project/map_project/__pycache__/wsgi.cpython-311.pyc deleted file mode 100644 index 9bfd529eb..000000000 Binary files a/map_project/map_project/__pycache__/wsgi.cpython-311.pyc and /dev/null differ diff --git a/map_project/map_project/settings.py b/map_project/map_project/settings.py index 1a35053f8..fde4c1c86 100644 --- a/map_project/map_project/settings.py +++ b/map_project/map_project/settings.py @@ -103,6 +103,13 @@ }, ] +EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' +EMAIL_HOST = 'smtp.gmail.com' +EMAIL_PORT = '587' #Your server port +EMAIL_HOST_USER = 'ttcdataalert@gmail.com' +EMAIL_HOST_PASSWORD = 'lsmaqqhyjhjabkoo' +EMAIL_USE_TLS = True +EMAIL_USE_SSL = False # Internationalization # https://docs.djangoproject.com/en/4.1/topics/i18n/