def load_events(): """Load the events""" file = open('static/data/events.txt') for line in file: day_id, user_id, title, start_raw, end_raw, location = line.rstrip().split("|") tz_id = geocoder.timezone(location).timeZoneId tz = pytz.timezone(tz_id) location = geocoder.google(location) address = location.address city = location.city latitude = location.lat longitude = location.lng start = datetime.strptime(start_raw, "datetime(%Y, %m, %d, %H, %M)") end = datetime.strptime(end_raw, "datetime(%Y, %m, %d, %H, %M)") event = Event(day_id=day_id, user_id=user_id, title=title, start=start, end=end, address=address, city=city, latitude=latitude, longitude=longitude ) db.session.add(event)
def new_trip(): """Adds a trip to the database""" # Get trip details from form title = request.form.get("title") destination = request.form.get("destination") tz_name = geocoder.timezone(destination).timeZoneId start_raw = request.form.get("start") start_dt = datetime.strptime(start_raw, "%Y-%m-%d") # naive UTC start_local = declare_tz(start_dt, tz_name) start_utc = convert_to_tz(start_local, 'utc') end_raw = request.form.get("end") end_dt = datetime.strptime(end_raw, "%Y-%m-%d") end_dt = find_next_day(end_dt) end_local = declare_tz(end_dt, tz_name) end_utc = convert_to_tz(end_local, 'utc') # Get more details from geocoder destination = geocoder.google(destination) address = destination.address lat = destination.lat lng = destination.lng city = destination.city country_code = destination.country # Add trip to DB trip = Trip(admin_id=session["user_id"], title=title, start=start_utc, end=end_utc, latitude=lat, longitude=lng, address=address, city=city, country_code=country_code, tz_name=tz_name ) db.session.add(trip) db.session.commit() # Commit here so that you can retrieve the trip_id! # Add admin permission to DB perm = Permission(trip_id=trip.trip_id, user_id=session["user_id"], can_edit=True ) db.session.add(perm) # Add days to DB trip.create_days() db.session.commit() flash("Your trip has been created!") url = "/trip%d" % (trip.trip_id) return redirect(url)
def new_trip(): """Adds a trip to the database""" # Get trip details from form title = request.form.get("title") destination = request.form.get("destination") tz_name = geocoder.timezone(destination).timeZoneId start_raw = request.form.get("start") start_dt = datetime.strptime(start_raw, "%Y-%m-%d") # naive UTC start_local = declare_tz(start_dt, tz_name) start_utc = convert_to_tz(start_local, 'utc') end_raw = request.form.get("end") end_dt = datetime.strptime(end_raw, "%Y-%m-%d") end_dt = find_next_day(end_dt) end_local = declare_tz(end_dt, tz_name) end_utc = convert_to_tz(end_local, 'utc') # Get more details from geocoder destination = geocoder.google(destination) address = destination.address lat = destination.lat lng = destination.lng city = destination.city country_code = destination.country # Add trip to DB trip = Trip(admin_id=session["user_id"], title=title, start=start_utc, end=end_utc, latitude=lat, longitude=lng, address=address, city=city, country_code=country_code, tz_name=tz_name) db.session.add(trip) db.session.commit() # Commit here so that you can retrieve the trip_id! # Add admin permission to DB perm = Permission(trip_id=trip.trip_id, user_id=session["user_id"], can_edit=True) db.session.add(perm) # Add days to DB trip.create_days() db.session.commit() flash("Your trip has been created!") url = "/trip%d" % (trip.trip_id) return redirect(url)
def load_trips(): """Load carolyn's vacation into database""" file = open('static/data/trips.txt') for line in file: admin_id, title, start_raw, end_raw, destination = line.rstrip().split("|") admin_id = int(admin_id) tz_name = geocoder.timezone(destination).timeZoneId start_dt = datetime.strptime(start_raw, "%Y, %m, %d") start_local = declare_tz(start_dt, tz_name) # give it tzinfo=tz_name start_utc = convert_to_tz(start_local, 'utc') # convert that time to UTC end_dt = datetime.strptime(end_raw, "%Y, %m, %d") end_local = declare_tz(end_dt, tz_name) end_utc = convert_to_tz(end_local, 'utc') destination = geocoder.google(destination) address = destination.address lat = destination.lat lng = destination.lng city = destination.city country_code = destination.country trip = Trip(admin_id=admin_id, title=title, start=start_utc, end=end_utc, latitude=lat, longitude=lng, address=address, city=city, country_code=country_code, tz_name=tz_name ) db.session.add(trip) db.session.commit() # Create admin permission perm = Permission(trip_id=trip.trip_id, user_id=admin_id, can_edit=True ) db.session.add(perm) trip.create_days()
def page_not_found(error): with requests.Session() as session: requester_ip = request.access_route[0] if requester_ip == '127.0.0.1': place, latlng, elev = 'nc', [35.6921, -80.4357], 218.2 address: str = u'On Library Park: 35\N{DEGREE SIGN} 41\' 31.9\"N 80\N{DEGREE SIGN} 26\' 8.67\"W' else: place, latlng = 'geocode', geocoder.ip(requester_ip, key=GOOGLE_API_KEY).latlng requester_geocode = geocoder.google(latlng, key=GOOGLE_API_KEY, method='reverse', session=session) # Use the defined address, implies we are using a static location, if undefined make it the geocoded one. try: address except NameError: address = str(requester_geocode.address) # Use the defined elevation, implies we are using a static location, if undefined make it the geocoded one. try: requester_geocode.elevation = lambda: None requester_geocode.elevation.meters = lambda: None setattr(requester_geocode.elevation, 'meters', elev) except NameError: requester_geocode.elevation = geocoder.elevation(latlng, key=GOOGLE_API_KEY, session=session) # Get the timezone requester_geocode.timeZoneId = geocoder.timezone(latlng, key=GOOGLE_API_KEY, session=session).timeZoneId return render_template('404.html', place=place, address=address, latlng=latlng, elevation=requester_geocode.elevation.meters, ip=requester_ip), 404
def print_ephemeris(): # set the location to report for with requests.Session() as session: requester_ip = request.access_route[0] if str(request.path) == '/nc' or str(request.path) == '/erikshus': place, latlng, elev = 'nc', [35.6921, -80.4357], 218.2 address: str = u'On Library Park: 35\N{DEGREE SIGN} 41\' 32\"N 80\N{DEGREE SIGN} 26\' 9\"W' elif str(request.path) == '/gammelhus': place, latlng, elev = 'gammelhus', [42.1064, -76.2624], 248.7168 address: str = u'Under the streetlamp: 42\N{DEGREE SIGN} 06\' 23\"N 76\N{DEGREE SIGN} 15\' 45\"W' elif str(request.path) == '/kopernik': place, latlng, elev = 'kopernik', [42.0020, -76.0334], 528 address: str = u'Kopernik Observatory: 42\N{DEGREE SIGN} 0\' 7\"N 76\N{DEGREE SIGN} 2\' 0\"W' elif str(request.path) == '/deetop': place, latlng, elev = 'deetop', [41.9700, -75.6700], 284 address: str = u'Dee-Top Observatory: 41\N{DEGREE SIGN} 58\' 12\"N 75\N{DEGREE SIGN} 40\' 12\"W' elif str(request.path) == '/stjohns': place, latlng, elev = 'stjohns', [47.5675, -52.7072], 83 address: str = u'St. John\'s: 47\N{DEGREE SIGN} 34\' 3\"N 52\N{DEGREE SIGN} 42\' 26\"W' elif str(request.path) == '/greenwich': place, latlng, elev = 'greenwich', [51.4768, -0.0005], 47.1526 address: str = u'Greenwich Observatory: 51\N{DEGREE SIGN} 28\' 38\"N 0\N{DEGREE SIGN} 0\' 0\"' else: if requester_ip == '127.0.0.1': place, latlng, elev = 'nc', [35.6921, -80.4357], 218.2 address: str = u'On Library Park: 35\N{DEGREE SIGN} 41\' 32\"N 80\N{DEGREE SIGN} 26\' 9\"W' else: place, latlng = 'geocode', geocoder.ip(requester_ip, key=GOOGLE_API_KEY, session=session).latlng # Start with a discovered geocode. requester_geocode = geocoder.google(latlng, method='reverse', key=GOOGLE_API_KEY, session=session) # Use the defined address, implies we are using a static location, if undefined make it the geocoded one. try: address except NameError: address = str(requester_geocode.address) # Use the defined elevation, implies we are using a static location, if undefined make it the geocoded one. try: requester_geocode.elevation = lambda: None requester_geocode.elevation.meters = lambda: None setattr(requester_geocode.elevation, 'meters', elev) except NameError: requester_geocode.elevation = geocoder.elevation(latlng, key=GOOGLE_API_KEY, session=session) # Get the timezone requester_geocode.timeZoneId = geocoder.timezone(latlng, key=GOOGLE_API_KEY, session=session).timeZoneId # noinspection PyPep8 return render_template('print_times.html', place=place, sunset_string=twilight('sunset', requester_geocode), sunrise_string=twilight('sunrise', requester_geocode), civil_end_string=twilight('civil_end', requester_geocode), civil_begin_string=twilight('civil_begin', requester_geocode), nautical_end_string=twilight('nautical_end', requester_geocode), nautical_begin_string=twilight('nautical_begin', requester_geocode), amateur_end_string=twilight('amateur_end', requester_geocode), amateur_begin_string=twilight('amateur_begin', requester_geocode), astro_end_string=twilight('astronomical_end', requester_geocode), astro_begin_string=twilight('astronomical_begin', requester_geocode), moonrise_string=twilight('moonrise', requester_geocode), moonset_string=twilight('moonset', requester_geocode), moon_phase_string=twilight('moon_phase', requester_geocode), moonset_ante_astro_noon_p=twilight('moonset_ante_astro_noon_p', requester_geocode), address=address, latlng=latlng, elevation=requester_geocode.elevation.meters, ip=requester_ip)
def test_timezone(): g = geocoder.timezone(location) assert g.ok