def user_agent(self): from gluon.contrib import user_agent_parser session = current.session user_agent = session._user_agent = session._user_agent or \ user_agent_parser.detect(self.env.http_user_agent) user_agent = Storage(user_agent) for key, value in user_agent.items(): if isinstance(value, dict): user_agent[key] = Storage(value) return user_agent
def user_agent(self): from gluon.contrib import user_agent_parser session = current.session user_agent = session._user_agent = session._user_agent or \ user_agent_parser.detect(self.env.http_user_agent) user_agent = Storage(user_agent) for key,value in user_agent.items(): if isinstance(value,dict): user_agent[key] = Storage(value) return user_agent
def reader(): """Read a book. request.args(0): id of book response.view should be assigned previous to calling this controller. """ if not request.args(0): redirect(URL(c='default', f='index')) book_record = db(db.book.id == request.args(0)).select( db.book.ALL).first() if not book_record: redirect(URL(c='default', f='index')) creator_record = db(db.creator.id == book_record.creator_id).select( db.creator.ALL).first() auth_user = db(db.auth_user.id == creator_record.auth_user_id).select( db.auth_user.ALL).first() views = [ 'books/carousel.html', 'books/gallery.html', 'books/scroller.html', 'books/slider.html', ] if response.view not in views: response.view = 'books/slider.html' page_images = db(db.book_page.book_id == request.args(0)).select( db.book_page.image ) try: current_page = int(request.vars.page) except (TypeError, ValueError): current_page = 0 next_page = current_page + 1 if current_page + 1 < len(page_images) else 0 prev_page = current_page - 1 if current_page - 1 >= 0 else len(page_images) - 1 ua = user_agent_parser.detect(request.env.http_user_agent) size = 'medium' if ua['is_mobile'] else 'original' return dict( auth_user=auth_user, book=book_record, creator=creator_record, pages=page_images, current_page=current_page, next_page=next_page, prev_page=prev_page, size=size, )
def reader(): """Read a book. request.args(0): id of book response.view should be assigned previous to calling this controller. """ if not request.args(0): redirect(URL(c='default', f='index')) book_record = db(db.book.id == request.args(0)).select(db.book.ALL).first() if not book_record: redirect(URL(c='default', f='index')) creator_record = db(db.creator.id == book_record.creator_id).select( db.creator.ALL).first() auth_user = db(db.auth_user.id == creator_record.auth_user_id).select( db.auth_user.ALL).first() views = [ 'books/carousel.html', 'books/gallery.html', 'books/scroller.html', 'books/slider.html', ] if response.view not in views: response.view = 'books/slider.html' page_images = db(db.book_page.book_id == request.args(0)).select( db.book_page.image) try: current_page = int(request.vars.page) except (TypeError, ValueError): current_page = 0 next_page = current_page + 1 if current_page + 1 < len(page_images) else 0 prev_page = current_page - 1 if current_page - 1 >= 0 else len( page_images) - 1 ua = user_agent_parser.detect(request.env.http_user_agent) size = 'medium' if ua['is_mobile'] else 'original' return dict( auth_user=auth_user, book=book_record, creator=creator_record, pages=page_images, current_page=current_page, next_page=next_page, prev_page=prev_page, size=size, )
def user_agent(self): from gluon.contrib import user_agent_parser session = current.session user_agent = session._user_agent if user_agent: return user_agent http_user_agent = self.env.http_user_agent or '' user_agent = user_agent_parser.detect(http_user_agent) for key, value in user_agent.items(): if isinstance(value, dict): user_agent[key] = Storage(value) user_agent = Storage(user_agent) user_agent.is_mobile = 'Mobile' in http_user_agent user_agent.is_tablet = 'Tablet' in http_user_agent session._user_agent = user_agent return user_agent
def user_agent(self): from gluon.contrib import user_agent_parser session = current.session session._user_agent = session._user_agent or \ user_agent_parser.detect(self.env.http_user_agent) return session._user_agent
# And T. current.T = T # Let's log the user. logger.info("User: %r Email: %r Id: %r" % (current.user_email, current.user_system_email, current.user_id)) request_scheme = 'http' if request.is_https: request_scheme = 'https' request_host = request_scheme + '://' + request.env.http_host request_ssl_host = 'https://' + request.env.http_host logger.info("Request host: %r" % request_host) current.request_host = request_host ## Logout if not logged in via Google. if auth.user and not current.user_email: auth.user = session.auth = None # Dynamic detection of device type. Disable for production. if not IS_GAE: from gluon.contrib import user_agent_parser from gluon.storage import Storage user_agent = user_agent_parser.detect(request.env.http_user_agent) for key, value in user_agent.items(): if isinstance(value, dict): user_agent[key] = Storage(value) user_agent = response.user_agent = session._user_agent = Storage(user_agent)