def browse_view(self): params = request.args.items() params = dict((k, v) for k, v in params if v) def test_and_remove(key): if request.args.get(key): if request.args.get(key).lower() == request.args.get("query").lower(): erase_from_dict(params, 'query') if not request.args.get("location"): try: reader = geoip2.database.Reader(os.path.realpath('.') + '/static/data/GeoLite2-Country.mmdb') ip = get_real_ip() if ip == '127.0.0.1' or ip == '0.0.0.0': ip = urlopen('http://ip.42.pl/raw').read() # On local test environments response = reader.country(ip) country = response.country.name except: country = "United States" else: country = request.args.get("location") test_and_remove("location") test_and_remove("category") erase_from_dict(params, 'location') return redirect(url_for('explore.explore_view', location=slugify(country)) + '?' + urllib.urlencode(params))
def browse_view(self): params = request.args.items() params = dict((k, v) for k, v in params if v) print params def test_and_remove(key): if request.args.get(key): if request.args.get(key).lower() == request.args.get("query").lower(): erase_from_dict(params, 'query') if not request.args.get("location"): try: reader = geoip2.database.Reader(os.path.realpath('.') + '/static/data/GeoLite2-Country.mmdb') ip = get_real_ip() if ip == '127.0.0.1' or ip == '0.0.0.0': ip = urlopen('http://ip.42.pl/raw').read() # On local test environments response = reader.country(ip) country = response.country.name except: country = "United States" else: country = request.args.get("location") test_and_remove("location") test_and_remove("category") erase_from_dict(params, 'location') return redirect(url_for('explore.explore_view', location=slugify(country)) + '?' + urllib.urlencode(params))
def location(): ip = get_real_ip() if ip == '127.0.0.1' or ip == '0.0.0.0': ip = urlopen( 'http://ip.42.pl/raw').read() # On local test environments try: reader = geoip2.database.Reader( os.path.realpath('.') + '/static/data/GeoLite2-Country.mmdb') response = reader.country(ip) return jsonify({ 'status': 'ok', 'name': response.country.name, 'code': response.country.iso_code, 'slug': slugify(response.country.name), 'ip': ip }) except: return jsonify({ 'status': 'ok', 'silent_error': 'look_up_failed', 'name': 'United States', 'slug': slugify('United States'), 'code': 'US', 'ip': ip })
def get_request_stats(): """ Get IP, Browser, Platform, Version etc http://werkzeug.pocoo.org/docs/0.11/utils/#module-werkzeug.useragents Note: request.remote_addr gives the server's address if the server is behind a reverse proxy. -@niranjan94 """ return { 'ip': get_real_ip(), 'platform': request.user_agent.platform, 'browser': request.user_agent.browser, 'version': request.user_agent.version, 'language': request.user_agent.language }
def create_view(self, ): if request.method == 'POST': if not current_user.can_create_event(): flash("You don't have permission to create event.") return redirect(url_for('.index_view')) img_files = [] imd = ImmutableMultiDict(request.files) if 'sponsors[logo]' in imd and request.files[ 'sponsors[logo]'].filename != "": for img_file in imd.getlist('sponsors[logo]'): img_files.append(img_file) event = DataManager.create_event(request.form, img_files) if request.form.get('state', u'Draft') == u'Published' and string_empty( event.location_name): flash( "Your event was saved. To publish your event please review the highlighted fields below.", "warning") return redirect( url_for('.edit_view', event_id=event.id) + "#step=location_name") if event: return redirect(url_for('.details_view', event_id=event.id)) return redirect(url_for('.index_view')) hash = get_random_hash() if CallForPaper.query.filter_by(hash=hash).all(): hash = get_random_hash() match = geolite2.lookup(get_real_ip(True) or '127.0.0.1') if match is not None: current_timezone = match.timezone else: current_timezone = 'UTC' return self.render( '/gentelella/admin/event/new/new.html', current_date=datetime.datetime.now(), start_date=datetime.datetime.now() + datetime.timedelta(days=10), event_types=DataGetter.get_event_types(), event_licences=DataGetter.get_event_licences(), event_topics=DataGetter.get_event_topics(), event_sub_topics=DataGetter.get_event_subtopics(), timezones=DataGetter.get_all_timezones(), cfs_hash=hash, current_timezone=current_timezone, payment_countries=DataGetter.get_payment_countries(), payment_currencies=DataGetter.get_payment_currencies(), included_settings=self.get_module_settings())
def display_debug_info(): return render_template('gentelella/admin/super_admin/debug/debug.html', ip=get_real_ip(), cookies=request.cookies, config=json.dumps(dict(current_app.config), sort_keys=True, indent=4, default=json_serial), environment=json.dumps(dict(os.environ.data), sort_keys=True, indent=4, default=json_serial), navigation_bar=list_navbar(), headers=request.headers)
def location(): ip = get_real_ip(True) try: reader = geoip2.database.Reader(os.path.realpath('.') + '/static/data/GeoLite2-Country.mmdb') response = reader.country(ip) return jsonify({ 'status': 'ok', 'name': response.country.name, 'code': response.country.iso_code, 'slug': slugify(response.country.name), 'ip': ip }) except: return jsonify({ 'status': 'ok', 'silent_error': 'look_up_failed', 'name': 'United States', 'slug': slugify('United States'), 'code': 'US', 'ip': ip })
def location(): ip = get_real_ip(True) try: reader = geoip2.database.Reader( os.path.realpath('.') + '/static/data/GeoLite2-Country.mmdb') response = reader.country(ip) return jsonify({ 'status': 'ok', 'name': response.country.name, 'code': response.country.iso_code, 'slug': slugify(response.country.name), 'ip': ip }) except: return jsonify({ 'status': 'ok', 'silent_error': 'look_up_failed', 'name': 'United States', 'slug': slugify('United States'), 'code': 'US', 'ip': ip })
def location(): ip = get_real_ip() if ip == '127.0.0.1' or ip == '0.0.0.0': ip = urlopen('http://ip.42.pl/raw').read() # On local test environments try: reader = geoip2.database.Reader(os.path.realpath('.') + '/static/data/GeoLite2-Country.mmdb') response = reader.country(ip) return jsonify({ 'status': 'ok', 'name': response.country.name, 'code': response.country.iso_code, 'slug': slugify(response.country.name), 'ip': ip }) except: return jsonify({ 'status': 'ok', 'silent_error': 'look_up_failed', 'name': 'United States', 'slug': slugify('United States'), 'code': 'US', 'ip': ip })
def get_current_timezone(): match = geolite2.lookup(get_real_ip(True) or '127.0.0.1') if match is not None: return match.timezone else: return 'UTC'
def edit_view_stepped(self, event_id, step): event = DataGetter.get_event(event_id) session_types = DataGetter.get_session_types_by_event_id( event_id).all() tracks = DataGetter.get_tracks(event_id).all() social_links = DataGetter.get_social_links_by_event_id(event_id) microlocations = DataGetter.get_microlocations(event_id).all() call_for_speakers = DataGetter.get_call_for_papers(event_id).first() sponsors = DataGetter.get_sponsors(event_id) custom_forms = DataGetter.get_custom_form_elements(event_id) speaker_form = json.loads(custom_forms.speaker_form) session_form = json.loads(custom_forms.session_form) tax = DataGetter.get_tax_options(event_id) ticket_types = DataGetter.get_ticket_types(event_id) preselect = [] required = [] for session_field in session_form: if session_form[session_field]['include'] == 1: preselect.append(session_field) if session_form[session_field]['require'] == 1: required.append(session_field) for speaker_field in speaker_form: if speaker_form[speaker_field]['include'] == 1: preselect.append(speaker_field) if speaker_form[speaker_field]['require'] == 1: required.append(speaker_field) if request.method == 'GET': hash = get_random_hash() if CallForPaper.query.filter_by(hash=hash).all(): hash = get_random_hash() match = geolite2.lookup(get_real_ip(True) or '127.0.0.1') if match is not None: current_timezone = match.timezone else: current_timezone = 'UTC' return self.render( '/gentelella/admin/event/edit/edit.html', event=event, session_types=session_types, tracks=tracks, social_links=social_links, microlocations=microlocations, call_for_speakers=call_for_speakers, sponsors=sponsors, event_types=DataGetter.get_event_types(), event_licences=DataGetter.get_event_licences(), event_topics=DataGetter.get_event_topics(), event_sub_topics=DataGetter.get_event_subtopics(), preselect=preselect, current_timezone=current_timezone, timezones=DataGetter.get_all_timezones(), cfs_hash=hash, step=step, required=required, included_settings=self.get_module_settings(), tax=tax, payment_countries=DataGetter.get_payment_countries(), current_date=datetime.datetime.now(), start_date=datetime.datetime.now() + datetime.timedelta(days=10), payment_currencies=DataGetter.get_payment_currencies(), ticket_types=ticket_types) if request.method == "POST": img_files = [] imd = ImmutableMultiDict(request.files) if 'sponsors[logo]' in imd and request.files[ 'sponsors[logo]'].filename != "": for img_file in imd.getlist('sponsors[logo]'): img_files.append(img_file) old_sponsor_logos = [] old_sponsor_names = [] for sponsor in sponsors: old_sponsor_logos.append(sponsor.logo) old_sponsor_names.append(sponsor.name) try: event = DataManager.edit_event( request, event_id, event, session_types, tracks, social_links, microlocations, call_for_speakers, sponsors, custom_forms, img_files, old_sponsor_logos, old_sponsor_names, tax) except Exception: traceback.print_exc() if (request.form.get('state', u'Draft') == u'Published') and string_empty(event.location_name): flash( "Your event was saved. To publish your event please review the highlighted fields below.", "warning") return redirect( url_for('.edit_view', event_id=event.id) + "#highlight=location_name") return redirect(url_for('.details_view', event_id=event_id))
def display_debug_info(): return render_template('gentelella/admin/super_admin/debug/debug.html', ip=get_real_ip(), cookies=request.cookies, navigation_bar=list_navbar(), headers=request.headers)