Example #1
0
 def get(self):
     '''Write out the JSON for the user's saved stops.'''
     current_user = users.get_current_user()
     if current_user:
         user = models.User.all().filter('user ='******'position')
         else:
             return
     else:
         stops = default_user.stops()
     stopList = []
     for index, stop in enumerate(stops):
         try:
             stop_data = functions.apiwrapperfor(stop.agency_tag).get_stop_data(stop)
             stopList.append({"id": stop.key().id() if stop.is_saved() else index,
                              "title": stop.title,
                              
                              "lat" : float(stop_data['lat']) if stop_data['lat'] else None,
                              "lon" : float(stop_data['lon']) if stop_data['lon'] else None,
                              
                              "agencyTag": stop.agency_tag,
                              "lineTag": stop.line_tag,
                              "directionTag": stop.direction_tag,
                              "stopTag": stop.stop_tag,
                              "destinationTag": stop.destination_tag,
                             
                              "timeToStop": stop.time_to_stop,
                              "position": stop.position,
                              "isEditable": True if stop.is_saved() else False,
             })
         except:
             stopList.append({"error" : True})
     self.response.out.write(json.dumps(stopList))
Example #2
0
 def post(self):
     '''Add or edit a stop.'''
     current_user = users.get_current_user()
     id = self.request.get('id')
     if id:
         stop = models.Stop.get_by_id(int(id))
     else:
         user = models.User.all().filter('user ='******'title')
         stop.agency_tag = self.request.get('agencyTag')
         if stop.agency_tag == "bart":
             stop.direction_tag = self.request.get('bart-direction-select')
             stop.stop_tag = self.request.get('bart-station-select')
         else:
             stop.line_tag = self.request.get('lineTag')
             stop.direction_tag = self.request.get('directionTag')
             stop.stop_tag = self.request.get('stopTag')
         stop.time_to_stop = int(self.request.get('timeToStop'))
         max_position = stop.user.stops.order('-position').get()
         if max_position:
             stop.position = max_position.position + 1
         else:
             stop.position = 1
         key = stop.put()
         stop_data = functions.apiwrapperfor(stop.agency_tag).get_stop_data(stop)
         self.response.out.write('{"id": ' + str(key.id()) + ', "lat": ' + str(stop_data['lat']) + ', "lon": ' + str(stop_data['lon']) + '}')
     else:
         self.response.out.write('{"id": 0, "lat": 0, "lon": 0}')
Example #3
0
 def get(self, lat, lon):
     '''Write out the JSON predictions for the user's nearest stops. Eventually we will loop through each data provider to give the user the closest stops.'''
     current_user = users.get_current_user()
     if current_user:
         user = models.User.all().filter('user =', current_user).get()
     else:
         user = default_user.user()
     self.response.out.write(json.dumps(functions.apiwrapperfor("actransit").get_nearest_predictions(lat, lon, user.max_arrivals, user.show_missed)))
Example #4
0
 def get(self, t):
     '''Write out vehicles.'''
     current_user = users.get_current_user()
     if current_user:
         stops = models.User.all().filter('user ='******'position')
     else:
         stops = default_user.stops()
     lineDict = {}
     for stop in stops:
         if (stop.agency_tag + " " + stop.line_tag) in lineDict.keys():
             continue
         else:
             lineDict[(stop.agency_tag + " " + stop.line_tag)] = functions.apiwrapperfor(stop.agency_tag).get_vehicle_data(stop, t)
     self.response.out.write(json.dumps(lineDict.values()))
Example #5
0
 def get(self, agency, line, direction):
     '''Return the stops.'''
     self.response.out.write(json.dumps(functions.apiwrapperfor(agency).stops(agency, line, direction)))
Example #6
0
 def get(self, agency):
     '''Return the lines.'''
     self.response.out.write(json.dumps(functions.apiwrapperfor(agency).lines(agency)))
Example #7
0
 def get(self):
     '''Write out the JSON predictions for the user's stops.'''
     current_user = users.get_current_user()
     if current_user:
         user = models.User.all().filter('user ='******'position')
         else:
             return
     else:
         user = default_user.user()
         stops = default_user.stops()
     predictionList = []
     for index, stop in enumerate(stops):
         predictionList.append({ "id": stop.key().id() if stop.is_saved() else index, "directions": functions.apiwrapperfor(stop.agency_tag).get_directions(stop, user.max_arrivals, user.show_missed) })
     self.response.out.write(json.dumps(predictionList))