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/