def create_venue_submission(): try: form = VenueForm() venue = Venue( name=form.name.data, city=form.city.data, state=form.state.data, address=form.address.data, phone=form.phone.data, genres=form.genres.data, facebook_link=form.facebook_link.data, website=form.website.data, image_link=form.image_link.data, seeking_talent=form.seeking_talent.data, seeking_description=form.seeking_description.data, ) venue.insert() flash('Venue ' + request.form['name'] + ' was successfully listed!', 'success') except: db.session.rollback() flash('An error occurred. Venue ' + request.form['name'] + ' could not be listed.', 'error') finally: db.session.close() return render_template('pages/home.html')
def create_venue_submission(): # TODO: insert form data as a new Venue record in the db, instead # TODO: modify data to be the data object returned from db insertion form = VenueForm(request.form, meta={'csrf': False}) if form.validate(): try: venue = Venue() form.populate_obj(venue) if (request.form['seeking_talent'] == 'True'): venue.seeking_talent = True else: venue.seeking_talent = False db.session.add(venue) db.session.commit() flash('Venue ' + venue.name + ' was successfully listed!') except: db.session.rollback() flash('An error occurred. Venue ' + venue.name + ' could not be listed.') finally: db.session.close() else: message = [] for field, err in form.errors.items(): message.append(field + ' ' + '|'.join(err)) flash('Errors ' + str(message)) # TODO: on unsuccessful db insert, flash an error instead. # e.g., flash('An error occurred. Venue ' + data.name + ' could not be listed.') # see: http://flask.pocoo.org/docs/1.0/patterns/flashing/ return render_template('pages/home.html')
def create_venue_submission(): # TODO: insert form data as a new Venue record in the db, instead # TODO: modify data to be the data object returned from db insertion # on successful db insert, flash success # TODO: on unsuccessful db insert, flash an error instead. # e.g., flash('An error occurred. Venue ' + data.name + ' could not be listed.') # see: http://flask.pocoo.org/docs/1.0/patterns/flashin data = request.form try: new_venue = Venue(genres=data.getlist("genres[]"), name=data.get("name"), address=data.get("address"), city=data.get("city"), state=data.get("state"), facebook_link=data.get("facebook_link"), phone=data.get("phone"), website=data.get("website_link"), image_link=data.get("image_link")) Venue.insert(new_venue) flash('Venue ' + request.form['name'] + ' was successfully listed!') except SQLAlchemyError as e: flash('An error occurred. Venue ' + request.form['name'] + ' could not be listed.') return render_template('pages/home.html')
def create_venue_submission(): # DONE: insert form data as a new Venue record in the db, instead # DONE: modify data to be the data object returned from db insertion try: new_data = VenueForm(request.form) venue = Venue(name=new_data.name.data, address=new_data.address.data, city=new_data.city.data, state=new_data.state.data, phone=new_data.phone.data, facebook_link=new_data.facebook_link.data, image_link=new_data.image_link.data, genres=','.join(new_data.genres.data)) if not venue.isDuplicate(): db.session.add(venue) db.session.commit() # on successful db insert, flash success flash('Venue ' + new_data.name.data + ' was successfully listed!') else: flash('Venue ' + new_data.name.data + ' was not inserted since it is already listed!') except: db.session.rollback() # DONE: on unsuccessful db insert, flash an error instead. flash('An error occurred. Venue ' + new_data.name.data + ' could not be listed.') finally: db.session.close() return render_template('pages/home.html')
def create_venue_submission(): form = VenueForm() error = False # if the form passed validation, populate the venue object from form data if form.validate_on_submit(): try: venue = Venue() form.populate_obj(venue) # genres is a list, so convert it to string genresList = request.form.getlist('genres') venue.genres = ', '.join(genresList) db.session.add(venue) # to return users to the new venue's page, flush the session, and store the id in another variable db.session.flush() venue_id = venue.id db.session.commit() except: # if failed, roll back and display a message to the user error = True db.session.rollback() print(sys.exc_info()) finally: db.session.close() # if error, return to home and display a message, or go to the new venue's page if error: flash( 'Oops! Something wrong happened, venue ' + str(form.name.data) + ' could not be listed!', 'error') return render_template('pages/home.html') else: flash('Venue ' + str(form.name.data) + ' was listed successfully!') return redirect(url_for('show_venue', venue_id=venue_id)) return render_template('forms/new_venue.html', form=form)
def create_venue_submission(): # TODO: insert form data as a new Venue record in the db, instead # TODO: modify data to be the data object returned from db insertion form = VenueForm(request.form) if form.validate(): try: seeking_talent = False seeking_description = '' if 'seeking_talent' in request.form: seeking_talent = request.form['seeking_talent'] == 'y' if 'seeking_description' in request.form: seeking_description = request.form['seeking_description'] venue_details = Venue(name=request.form['name'], genres=request.form.getlist('genres'), address=request.form['address'], city=request.form['city'], state=request.form['state'], phone=request.form['phone'], website=request.form['website_link'], facebook_link=request.form['facebook_link'], image_link=request.form['image_link'], seeking_talent=seeking_talent, seeking_description=seeking_description) Venue.insert(venue_details) # on successful db insert, flash success flash('Venue ' + request.form['name'] + ' was successfully listed!') except: flash('An error occurred. Venue ' + request.form['name'] + ' could not be listed.') return render_template('pages/home.html')
def post_venue(jwt): try: venue_data = request.get_json() name = venue_data.get('name') address = venue_data.get('address') city = venue_data.get('city') zipcode = venue_data.get('zipcode') venue_image = venue_data.get('image') description = venue_data.get('description') is_available = venue_data.get('is_available') venue = Venue( name=name, address=address, city=city, zipcode=zipcode, is_available=is_available, image=venue_image, description=description ) venue.insert() return jsonify({ 'success': True, 'venue': venue.format() }), 200 except Exception: print(sys.exc_info()) abort(404)
def create_venue_submission(): # TODO: insert form data as a new Venue record in the db, instead # TODO: modify data to be the data object returned from db insertion error = False try: form = VenueForm(request.form, meta={'csrf': False}) new_venue = Venue() form.populate_obj(new_venue) new_venue.image_link = "https://images.unsplash.com/photo-1543900694-133f37abaaa5?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=400&q=60" db.session.add(new_venue) db.session.commit() except: db.session.rollback() error = True print(sys.exc_info()) finally: db.session.close() if error: flash('Venue ' + request.form['name'] + ' was an error!') return render_template('pages/home.html') else: # on successful db insert, flash success flash('Venue ' + request.form['name'] + ' was successfully listed!') return render_template('pages/home.html')
def create_venue_submission(): # TODO: insert form data as a new Venue record in the db, instead # TODO: modify data to be the data object returned from db insertion error = False try: name = request.form.get('name') city = request.form.get('city') state = request.form.get('state') address = request.form.get('address') phone = request.form.get('phone') genres = request.form.get('genres') image_link = request.form.get('image_link') facebook_link = request.form.get('facebook_link') new_record = Venue(name=name, city=city, state=state, address=address, phone=phone, genres=genres, image_link=image_link, facebook_link=facebook_link) Venue.create(new_record) except: db.session.rollback() print(sys.exc_info()) error = True finally: if error: flash('An error occurred.It could not be listed.') return render_template('pages/home.html') else: flash('Venue ' + request.form['name'] + ' was successfully listed!') return render_template('pages/home.html') db.session.close()
def create_venue_form(): form = VenueForm(request.form) if form.validate_on_submit(): error = False try: venue = Venue() form.populate_obj(venue) talent = request.form.get('seeking_talent') if talent == 'y': venue.seeking_talent = True else: venue.seeking_talent = False db.session.add(venue) db.session.commit() except: error = True db.session.rollback() print(sys.exc_info()) finally: db.session.close() if error: flash('An error occurred. Venue could not be listed.') else: flash('Venue was successfully listed!') return render_template('pages/home.html') else: for field, err in form.errors.items(): flash('Error: ' + field + ' ' + '|'.join(err)) return render_template('forms/new_venue.html', form=form)
def create_venue_submission(): # TODO: insert form data as a new Venue record in the db, instead # TODO: modify data to be the data object returned from db insertion name = request.form.get('name') city = request.form.get('city') state = request.form.get('state') phone = request.form.get('phone') genres = request.form.get('genres') facebook_link = request.form.get('facebook_link') venue = Venue(name=name, city=city, state=state, phone=phone, genres=genres, facebook_link=facebook_link) ##venue.id =1 ##Kaustav try: venue.add() flash("Venue" + request.form['name'] + "was successfully listed!") except: flash('An error occurred. Venue ' + request.form['name'] + ' could not be listed.') db.session.rollback() #abort(422) finally: db.session.close() ##flash('Venue ' + request.form['name'] + ' was successfully listed!') # TODO: on unsuccessful db insert, flash an error instead. # e.g., flash('An error occurred. Venue ' + data.name + ' could not be listed.') # see: http://flask.pocoo.org/docs/1.0/patterns/flashing/ return render_template('pages/home.html')
def create_venue_submission(): # insert form data as a new Venue record in the db, instead # modify data to be the data object returned from db insertion try: new_venue = Venue( name=request.form['name'], genres=request.form.getlist('genres'), address=request.form['address'], city=request.form['city'], state=request.form['state'], phone=request.form['phone'], website=request.form['website'], facebook_link=request.form['facebook_link'], image_link=request.form['image_link'], seeking_talent=request.form['seeking_talent'], description=request.form['seeking_description'], ) #insert new venue records into the db Venue.insert(new_venue) # on successful db insert, flash success flash('Venue ' + request.form['name'] + ' was successfully listed!') except SQLAlchemyError as e: # on unsuccessful db insert, flash an error instead. flash('An error occurred. Venue ' + request.form['name'] + ' could not be listed.') return render_template('pages/home.html')
def create_venue_submission(): form = VenueForm(request.form) if form.validate_phone(form.phone): try: new_venue = Venue( name=form.name.data, city=form.city.data, state=form.state.data, address=form.address.data, phone=form.phone.data, genres=form.genres.data, facebook_link=form.facebook_link.data, image_link=form.image_link.data, website=form.website.data, seeking_talent=form.seeking_talent.data, seeking_description=form.seeking_description.data) Venue.create(new_venue) flash( 'Venue ' + request.form['name'] + ' was successfully listed!', "success") except: flash( 'Error occurred. Venue ' + form.name + ' could not be listed.', "danger") else: flash("Phone number is not valid", 'warning') return render_template('pages/home.html')
def create_venue_submission(): # DONE: TODO: insert form data as a new Venue record in the db, instead # DONE: TODO: modify data to be the data object returned from db insertion # on successful db insert, flash success venue_form = VenueForm(request.form) try: newVenue = Venue( name=venue_form.name.data, address=venue_form.address.data, city=venue_form.city.data, state=venue_form.state.data, phone=venue_form.phone.data, facebook_link=venue_form.facebook_link.data, image_link=venue_form.image_link.data, genres=",".join(venue_form.genres.data), seeking_talent=venue_form.seeking_talent.data == 'True') newVenue.add() flash('Venue ' + newVenue.name + ' was successfully listed!') return redirect(url_for('index')) except: # DONE: TODO: on unsuccessful db insert, flash an error instead. # e.g., flash('An error occurred. Venue ' + data.name + ' could not be listed.') flash('An error occurred. Venue ' + venue_form.name.data + ' could not be listed.') print(sys.exc_info()) return render_template('forms/new_venue.html', form=venue_form)
def create_venue_submission(): form = VenueForm(request.form, meta={'csrf': False}) if form.validate(): try: venue = Venue() form.populate_obj(venue) venue.seeking_talent = (form.seeking_talent.data == 'y') db.session.add(venue) db.session.commit() flash('Venue ' + request.form['name'] + ' was successfully listed!') except ValueError as e: print(e) db.session.rollback() flash('An error occurred. Artist could not be listed.') finally: db.session.close() else: message = [] for field, err in form.errors.items(): message.append(field + ' ' + '|'.join(err)) flash('Errors ' + str(message)) return render_template('pages/home.html')
def create_venue_submission(): form = VenueForm(request.form) try: new_venue = Venue(name=form.name.data, city=form.city.data, state=form.state.data, address=form.address.data, phone=form.phone.data, genres=form.genres.data, facebook_link=form.facebook_link.data, image_link=form.image_link.data, website=form.website.data, seeking_talent=form.seeking_talent.data, seeking_description=form.seeking_description.data) Venue.create(new_venue) flash('Venue ' + request.form['name'] + ' was successfully listed!') except ValueError: # FIXME melhorar essa exception flash('Error occurred. Venue ' + form.name + ' could not be listed.') return render_template('pages/home.html')
def delete_venue(venue_id): try: Venue.delete(venue_id) except (DBAPIError, SQLAlchemyError): abort(404) return Response(status=200)
def edit_venue_submission(venue_id): # TODO: take values from the form submitted, and update existing # venue record with ID <venue_id> using the new attributes form = VenueForm(request.form) venue_data = Venue.query.get(venue_id) if venue_data: if form.validate(): seeking_talent = False seeking_description = '' if 'seeking_talent' in request.form: seeking_talent = request.form['seeking_talent'] == 'y' if 'seeking_description' in request.form: seeking_description = request.form['seeking_description'] setattr(venue_data, 'name', request.form['name']) setattr(venue_data, 'genres', request.form.getlist('genres')) setattr(venue_data, 'address', request.form['address']) setattr(venue_data, 'city', request.form['city']) setattr(venue_data, 'state', request.form['state']) setattr(venue_data, 'phone', request.form['phone']) setattr(venue_data, 'website', request.form['website']) setattr(venue_data, 'facebook_link', request.form['facebook_link']) setattr(venue_data, 'image_link', request.form['image_link']) setattr(venue_data, 'seeking_description', seeking_description) setattr(venue_data, 'seeking_talent', seeking_talent) Venue.update(venue_data) return redirect(url_for('show_venue', venue_id=venue_id)) else: print(form.errors) return render_template('errors/404.html'), 404
def push(request): if request.method == 'POST': try: # capture JSON data, convert to dictionary jsonData = json.loads(request.POST['checkin']) # check to see if the venue exists try: send_reply(jsonData['id']) venue = Venue.objects.get(venueId = jsonData['venue']['id']) # if not, then create it! except Exception: # make the venue model venue = Venue( venueId = jsonData['venue']['id'], name = jsonData['venue']['name'], address = jsonData['venue']['location']['address'], lat = jsonData['venue']['location']['lat'], lng = jsonData['venue']['location']['lng'], postalCode = jsonData['venue']['location']['postalCode'], city = jsonData['venue']['location']['postalCode'], state = jsonData['venue']['location']['state'], country = jsonData['venue']['location']['country'], ) # save dat ish venue.save() return HttpResponse("OK\r\n") except Exception as steve: return HttpResponseServerError("ERROR" + " " + steve.message + "\r\n")
def create_venue_submission(): error = False form = VenueForm() try: venue = Venue( name=form.name.data, genres=form.genres.data, city=form.city.data, state=form.state.data, phone=form.phone.data, facebook_link=form.facebook_link.data, address=form.address.data, seeking_talent=True, seeking_description='', upcoming_shows_count=0, past_shows_count=0 ) venue.insert() except: error = True print(sys.exc_info()) db.session.rollback() if error: abort(400) flash('An error occured') else: # on successful db insert, flash success flash('Venue ' + form.name.data + ' was successfully listed!') return render_template('pages/home.html')
def create_venue_submission(): # seeking = request.form['seeking_venue'] # if seeking == 'y': # seeking_venue = True # else: # seeking_venue = False seeking = False newVenue = Venue(name=request.form['name'], city=request.form['city'], address=request.form['address'], state=request.form['state'], genres=request.form['genres'], facebook_link=request.form['facebook_link'], phone=request.form['phone'], seeking_talent=seeking) if Venue.insert(newVenue): flash('Venue ' + request.form['name'] + ' was successfully listed!') else: abort(404) flash('An error occurred. Venue ' + request.form['name'] + ' could not be listed.') return redirect(url_for('show_venue', venue_id=newVenue.id))
def create_venue_submission(): try: form = VenueForm(request.form) venue = Venue( name=form.name.data, city=form.city.data, state=form.state.data, phone=form.phone.data, address=form.address.data, website=form.website.data, image_link=form.image_link.data, genres=', '.join(form.genres.data), facebook_link=form.facebook_link.data, seeking_talent=bool(form.seeking_talent.data), seeking_description=form.seeking_description.data, ) venue.insert() flash(f'Venue {request.form["name"]} was successfully listed!') except Exception as e: flash( f'An error occurred. Venue {request.form["name"]} could not be listed.') print('Error', e) finally: return render_template('pages/home.html')
def edit_venue_submission(venue_id): form = VenueForm(request.form) venue = Venue.query.get(venue_id) try: if venue: setattr(venue, 'name', request.form['name']) setattr(venue, 'city', request.form['city']) setattr(venue, 'state', request.form['state']) setattr(venue, 'address', request.form['address']) setattr(venue, 'phone', request.form['phone']) setattr(venue, 'genres', request.form.getlist('genres')) setattr(venue, 'facebook_link', request.form['facebook_link']) setattr(venue, 'image_link', request.form['image_link']) Venue.update(venue) flash('Venue ' + request.form['name'] + 'was successfully updated!') except: error = True db.session.rollback() print(sys.exc_info()) flash(f'An error occurred. Venue could not be changed.') finally: db.session.close() return redirect(url_for('show_venue', venue_id=venue_id))
def create_venue_submission(): form = VenueForm(csrf_enabled=True) if form.validate_on_submit(): venue_data = dict(name=form.name.data, genres=list(form.genres.data), address=form.address.data, city=form.city.data, state=form.state.data, phone=form.phone.data, website=form.website.data, facebook_link=form.facebook_link.data, seeking_talent=form.seeking_talent.data, seek_description=form.seek_description.data, image_link=form.image_link.data) check_venue = Venue.query.filter_by(name=form.name.data).first() if check_venue: flash('A venue with that name already exists') return render_template('pages/home.html') new_venue = Venue(**venue_data) new_venue.save() flash('Venue ' + request.form['name'] + ' was successfully listed!') else: errors = form.errors for key, error in errors.items(): flash(f"{key} Error " + " => " + f"{error[0]} :(") return render_template('pages/home.html') return render_template('pages/home.html')
def create_venue_submission(): # TODO: insert form data as a new Venue record in the db, instead try: # creating new Venue object, and in pending state until commit happen venue = Venue(name=request.form['name'], city=request.form['city'], state=request.form['state'], address=request.form['address'], phone=request.form['phone'], facebook_link=request.form['facebook_link']) genres = request.form['genres'] venue.add_genres(genres) db.session.add(venue) db.session.commit() flash('Venue ' + request.form['name'] + ' was successfully listed!') except Exception as error: print(error) db.session.rollback() # TODO: on unsuccessful db insert, flash an error instead. flash('An error occurred. Venue ' + request.form['name'] + ' could not be listed.') finally: db.session.close() # on successful db insert, flash success # e.g., flash('An error occurred. Venue ' + data.name + ' could not be listed.') # see: http://flask.pocoo.org/docs/1.0/patterns/flashing/ return render_template('pages/home.html')
def create_venue_submission(): # TODO: insert form data as a new Venue record in the db, instead # TODO: modify data to be the data object returned from db insertion try: seeking_talent = False seeking_description = '' if 'seeking_talent' in request.form: seeking_talent = request.form['seeking_talent'] == 'y' if 'seeking_description' in request.form: seeking_description = request.form['seeking_description'] new_venue = Venue( name=request.form['name'], genres=request.form.getlist('genres'), address=request.form['address'], city=request.form['city'], state=request.form['state'], phone=request.form['phone'], website=request.form['website'], facebook_link=request.form['facebook_link'], image_link=request.form['image_link'], seeking_talent=seeking_talent, description=seeking_description, ) #db.session.add(new_venue) #db.session.commit() Venue.insert(new_venue) flash('Venue ' + request.form['name'] + ' was successfully listed!') except SQLAlchemyError as e: print(e) # logging flash('An error occurred. Venue ' + request.form['name'] + ' could not be listed.') return render_template('pages/home.html')
def delete_venue(venue_id): venue = Venue(id=venue_id) try: isVenueExistsInShows, shows = venue.isVenueExistsInShows() if not isVenueExistsInShows: venue.delete() response = jsonify(type="success") response.status_code = 200 return response else: raise CannotRemoveObject( 'Cannot remove this venue because it is used in {} Shows'. format(len(shows))) except CannotRemoveObject as ex: _message = 'Venue could not be deleted. ' + ex.message response = jsonify(type="error", message=_message) response.status_code = ex.status_code return response except Exception as ex: _message = 'An error occurred. ' + ex.args[0] response = jsonify(type="error", message=_message) response.status_code = 522 #custom server error code return response
def create_venue_submission(): # TODO: insert form data as a new Venue record in the db, instead # TODO: modify data to be the data object returned from db insertion # on successful db insert, flash success # flash('Venue ' + request.form['name'] + ' was successfully listed!') form = VenueForm(request.form) if form.validate(): try: seeking_talent = False seeking_description = '' if 'seeking_talent' in request.form: seeking_talent = request.form['seeking_talent'] == 'y' if 'seeking_description' in request.form: seeking_description = request.form['seeking_description'] new_venue = Venue( name=request.form['name'], genres=request.form.getlist('genres'), address=request.form['address'], city=request.form['city'], state=request.form['state'], phone=request.form['phone'], website=request.form['website'], facebook_link=request.form['facebook_link'], image_link=request.form['image_link'], seeking_talent=seeking_talent, seeking_description=seeking_description, ) Venue.insert(new_venue) flash('Venue ' + request.form['name'] + ' was successfully listed!') except SQLAlchemyError as e: # TODO: on unsuccessful db insert, flash an error instead. # e.g., flash('An error occurred. Venue ' + data.name + ' could not be listed.') # see: http://flask.pocoo.org/docs/1.0/patterns/flashing/ flash('An error occurred. Venue ' + request.form['name'] + ' could not be listed.') return render_template('pages/home.html')
def create_venue_submit(): form = VenueForm(csrf_enabled=True) if form.validate_on_submit(): venue_data = dict(name=form.name.data, genres=list(form.genres.data), address=form.address.data, city=form.city.data, state=form.state.data, phone=form.phone.data, website=form.website.data, facebook_link=form.facebook_link.data, seeking_talent=form.seeking_talent.data, seek_description=form.seek_description.data, image_link=form.image_link.data) venue_already_exists = Venue.query.filter_by( name=form.name.data).first() if venue_already_exists: flash( 'Error. There already exists a venue with that name. Please search for it or create another' ) return render_template('pages/home.html') brand_new_venue = Venue(**venue_data) brand_new_venue.save() flash('Venue ' + request.form['name'] + ' was successfully listed!') return render_template('pages/home.html') else: flash('An errror ocurred. Venue ' + request.form['name'] + ' could not be listed') return render_template('pages/home.html') return render_template('pages/home.html')
def create_venue_submission(): venue_form = VenueForm(request.form) try: new_venue = Venue(name=venue_form.name.data, genres=','.join(venue_form.genres.data), address=venue_form.address.data, city=venue_form.city.data, state=venue_form.state.data, phone=venue_form.phone.data, facebook_link=venue_form.facebook_link.data, image_link=venue_form.image_link.data) if not new_venue.isExists(): new_venue.add() # on successful db insert, flash success flash('Venue ' + request.form['name'] + ' was successfully listed!') else: flash( 'Venue with a Name: {} , City: {} , and State: {} already exists! New record not inserted'.\ format(request.form['name'], request.form['city'], request.form['state'])) except Exception as ex: flash('An error occurred. Venue ' + request.form['name'] + ' could not be listed.') traceback.print_exc() return render_template('pages/home.html')
def create_venue_submission(): form = VenueForm(request.form) if form.validate(): try: seeking_talent = False seeking_description = '' if 'seeking_talent' in request.form: seeking_talent = request.form['seeking_talent'] == 'y' if 'seeking_description' in request.form: seeking_description = request.form['seeking_description'] new_venue = Venue( name=request.form['name'], genres=request.form.getlist('genres'), address=request.form['address'], city=request.form['city'], state=request.form['state'], phone=request.form['phone'], website=request.form['website'], facebook_link=request.form['facebook_link'], image_link=request.form['image_link'], seeking_talent=seeking_talent, seeking_description=seeking_description, ) Venue.insert(new_venue) flash('Venue ' + request.form['name'] + ' was successfully listed!') except SQLAlchemyError: flash('An error occurred. Venue ' + request.form['name'] + ' could not be listed.') return render_template('pages/home.html')
def load_venue(d): try: v = Venue.objects.get(locu_id=d["id"]) except Venue.DoesNotExist: v = Venue(locu_id=d["id"], name=d["name"], address=d["address"], locality=d["locality"], region=d["region"], lat=d["geo"][0], lon=d["geo"][1], website=d["website"] ) v.save() return v
def update_events(venue_ids): for identifier in venue_ids: payload = {'apikey': SONGKICK, 'per_page': 50, 'page': 1} url = 'http://api.songkick.com/api/3.0/venues/'+str(identifier)+'/calendar.json?' r = requests.get(url, params=payload) r.raise_for_status() data = r.json() venue = Venue.get(venue_id=identifier) #venue.save() try: results = data['resultsPage']['results']['event'] except KeyError, error: print 'An error occured: %s: There are no upcoming events for this venue: %s' % (error, venue.name) continue for item in results: try: event_id = item['id'] name = item['displayName'] type = item['type'] status = item['status'] datetime = item['start']['datetime'] url = item['uri'] popularity = item['popularity'] except KeyError, error: print 'An error occured: %s: There is limited data for event: %s' % (error, event_id) pass event, _created = Event.get_or_create(event_id=event_id, venue=venue) event.name = name event.type = type event.status = status event.datetime = datetime event.url = url event.popularity = popularity print event.name event.save() for artist in item['performance']: try: artist_id = artist['artist']['id'] name = artist['artist']['displayName'] performer, _created = Artist.get_or_create(artist_id=artist_id, name=name) billing = artist['billing'] billing_index = artist['billingIndex'] p, _created = Performance.get_or_create(artist=performer, event=event) p.billing = billing p.billing_index = billing_index p.save() except KeyError, error: print 'An error occured %s' % error pass
def get_queryset(self): lat = self.kwargs['lat'] lng = self.kwargs['lng'] result = [] r = requests.get( 'https://api.foursquare.com/v2/venues/explore?section=food&ll={0},{1}&client_id={2}&client_secret={3}&v={4}' .format( lat, lng, keyring.get_password('WebApp', 'client_id'), keyring.get_password('WebApp', 'client_secret'), '20150608')) if r.status_code == 200: # Loop through results for item in r.json()['response']['groups'][0]['items']: json_venue = item['venue'] if 'location' in json_venue and 'address' in json_venue['location']: venue = Venue( id=json_venue['id'], name=json_venue['name'], address=json_venue['location']['address'], rating=json_venue['rating'], price=json_venue['price']['tier'] if 'price' in json_venue else 0, lat=json_venue['location']['lat'], lng=json_venue['location']['lng']) result.append(venue) if Venue.objects.filter(id = json_venue['id']).count() == 0: venue.save() return result
def build_venues(): for v in venues: venue = Venue(name=v[0], address=v[1]) venue.save()
def home(request): if request.method == 'POST': try: # capture JSON data, convert to dictionary jsonData = simplejson.loads(request.POST['checkin']) # check to see if the user already exists try: user = FoursquareUser.objects.get(userId = jsonData['user']['id']) # if not, then create him! except Exception: # we have to check since since the twitter field isn't always there try: twttr = jsonData['user']['contact']['twitter'], except: twttr = None, # make the user model user = FoursquareUser( userId = jsonData['user']['id'], firstName = jsonData['user']['firstName'], lastName = jsonData['user']['lastName'], photo = jsonData['user']['photo'], gender = jsonData['user']['gender'], homeCity = jsonData['user']['homeCity'], bio = jsonData['user']['bio'], twitter = twttr ) # save dat ish user.save() # check to see if the venue exists try: venue = Venue.objects.get(venueId = jsonData['venue']['id']) # if not, then create it! except Exception: # see if the contact stuff exists try: phn = jsonData['venue']['contact']['phone'] except: phn = None try: twttr = jsonData['venue']['contact']['twitter'] except: twttr = None # make the venue model venue = Venue( venueId = jsonData['venue']['id'], name = jsonData['venue']['name'], phone = phn, twitter = twttr, address = jsonData['venue']['location']['address'], lat = jsonData['venue']['location']['lat'], lng = jsonData['venue']['location']['lng'], postalCode = jsonData['venue']['location']['postalCode'], city = jsonData['venue']['location']['postalCode'], state = jsonData['venue']['location']['state'], country = jsonData['venue']['location']['country'], categoryId = jsonData['venue']['categories'][0]['id'], categoryName = jsonData['venue']['categories'][0]['name'], categoryPluralName = jsonData['venue']['categories'][0]['pluralName'], categoryShortName = jsonData['venue']['categories'][0]['shortName'], categoryIcon = jsonData['venue']['categories'][0]['icon'], categoryPrimary = jsonData['venue']['categories'][0]['primary'], statsCheckinsCount = jsonData['venue']['stats']['checkinsCount'], statsUsersCount = jsonData['venue']['stats']['usersCount'], statsTipsCount = jsonData['venue']['stats']['tipCount'], statsLikesCount = jsonData['venue']['likes']['count'], url = jsonData['venue']['url'] ) # save dat ish venue.save() checkin = Checkin( checkinId = jsonData['id'], createdAt = datetime.datetime.fromtimestamp(jsonData['createdAt']), timezone = jsonData['timeZone'], user = user, venue = venue ) checkin.save() # ping the netduino! c = pycurl.Curl() c.setopt(c.URL, "http://69.193.126.141:8080") c.perform() return HttpResponse("OK\r\n") except Exception as steve: return HttpResponseServerError("ERROR" + " " + steve.message + "\r\n") else: print "NOT POST!" return HttpResponseServerError("ERROR NOT POST")
def push(request): if request.method == 'POST': try: # capture JSON data, convert to dictionary jsonData = simplejson.loads(request.POST['checkin']) # ping the netduino right away r = ping.delay() # check to see if the user already exists try: user = FoursquareUser.objects.get(userId = jsonData['user']['id']) # if not, then create him! except Exception: # we have to check since since the twitter field isn't always there try: twttr = jsonData['user']['contact']['twitter'], except: twttr = None, # make the user model user = FoursquareUser( userId = jsonData['user']['id'], firstName = jsonData['user']['firstName'], lastName = jsonData['user']['lastName'], photo = jsonData['user']['photo'], gender = jsonData['user']['gender'], homeCity = jsonData['user']['homeCity'], bio = jsonData['user']['bio'], twitter = twttr ) # save dat ish user.save() # check to see if the venue exists try: venue = Venue.objects.get(venueId = jsonData['venue']['id']) # if not, then create it! except Exception: # see if the contact stuff exists try: phn = jsonData['venue']['contact']['phone'] except: phn = None try: twttr = jsonData['venue']['contact']['twitter'] except: twttr = None # make the venue model venue = Venue( venueId = jsonData['venue']['id'], name = jsonData['venue']['name'], phone = phn, twitter = twttr, address = jsonData['venue']['location']['address'], lat = jsonData['venue']['location']['lat'], lng = jsonData['venue']['location']['lng'], postalCode = jsonData['venue']['location']['postalCode'], city = jsonData['venue']['location']['postalCode'], state = jsonData['venue']['location']['state'], country = jsonData['venue']['location']['country'], categoryId = jsonData['venue']['categories'][0]['id'], categoryName = jsonData['venue']['categories'][0]['name'], categoryPluralName = jsonData['venue']['categories'][0]['pluralName'], categoryShortName = jsonData['venue']['categories'][0]['shortName'], categoryIcon = jsonData['venue']['categories'][0]['icon'], categoryPrimary = jsonData['venue']['categories'][0]['primary'], statsCheckinsCount = jsonData['venue']['stats']['checkinsCount'], statsUsersCount = jsonData['venue']['stats']['usersCount'], statsTipsCount = jsonData['venue']['stats']['tipCount'], statsLikesCount = jsonData['venue']['likes']['count'], url = jsonData['venue']['url'] ) # save dat ish venue.save() checkin = Checkin( checkinId = jsonData['id'], createdAt = datetime.datetime.fromtimestamp(jsonData['createdAt']), timezone = jsonData['timeZone'], user = user, venue = venue ) checkin.save() # grab the mayor mayorJson = simplejson.loads(urllib2.urlopen( "https://api.foursquare.com/v2/venues/" + jsonData['venue']['id'] + "?oauth_token=Y10QHO1ZKLBPAXKUZPKSHBFW5WVRKURG0S2CKBX2LA04ERZS&v=20120608").read() ) mayorId = mayorJson['response']['venue']['mayor']['user']['id'] # check to see if mayor is in DB, if not then add it try: mayor = FoursquareUser.objects.get(userId = mayorId) venue.mayor = mayor except: # we have to check since since the twitter field isn't always there try: twttr = mayorJson['response']['venue']['mayor']['user']['contact']['twitter'], except: twttr = None, user = FoursquareUser( userId = mayorJson['response']['venue']['mayor']['user']['id'], firstName = mayorJson['response']['venue']['mayor']['user']['firstName'], lastName = mayorJson['response']['venue']['mayor']['user']['lastName'], photo = mayorJson['response']['venue']['mayor']['user']['photo'], gender = mayorJson['response']['venue']['mayor']['user']['gender'], homeCity = mayorJson['response']['venue']['mayor']['user']['homeCity'], bio = mayorJson['response']['venue']['mayor']['user']['bio'], twitter = twttr ) # save dat ish user.save() venue.mayor = user return HttpResponse("OK\r\n") except Exception as steve: return HttpResponseServerError("ERROR" + " " + steve.message + "\r\n") finally: print r.status else: return HttpResponseServerError("Push some ish and get back to me\r\n")
country = results['city']['country']['displayName'] lat = results['lat'] lng = results['lng'] street = results['street'] zip_code = results['zip'] phone = results['phone'] url = results['website'] capacity = results['capacity'] except IntegrityError, error: print 'An error occured: %s' % error pass except KeyError, error: print 'An error occured: %s' % error pass venue, _created = Venue.get_or_create(venue_id=venue_id, name=name) venue.city = city venue.state = state venue.country = country venue.lat = lat venue.lng = lng venue.street = street venue.zip_code = zip_code venue.phone = phone venue.url = url venue.capacity = capacity print venue.name venue.save() time.sleep(1)