def article(config, slug): args = config['blog'][slug].copy() args.update(config['controller']) args['blurb'] = render_article(config, slug, args)['blurb'] args['PAGE_TITLE'] = args['title'] args['CONTENT'] = render_file( Path(config['env']['var'], 'templates', 'blog', 'one.html'), args) return render_file(Path(config['env']['var'], 'templates', 'base.html'), args)
def signup_handler(response): username = response.get_field('username') password = response.get_field('password') bio = response.get_field('bio') if username: if response.get_field('resized_image'): base64blob = response.get_field('resized_image') print("Got resized profile photo, of %d bytes in base64" % len(base64blob)) else: filename, content_type, photo_blob = response.get_file('image') base64blob = "data:{};base64,".format( content_type) + base64.b64encode(photo_blob).decode('ascii') print("Got non-resized profile photo, of %d bytes in base64" % len(base64blob)) database_signup_handler(response, username, password, bio, base64blob) if database_login_handler(username, password, response): cookie = 'True,' + username response.set_secure_cookie('loggedin', cookie) response.redirect('/') else: rendered = render_file('pages/signup.html', {}) response.write(rendered)
def upload_handler(response): """Handles displaying the upload form, as well as recieving the data and entering it into the database.""" if response.get_field("caption"): # The "username" field is not empty, so we are recieving data username = get_user_from_cookie(response) caption = response.get_field('caption') latitude = response.get_field('lat') longitude = response.get_field('long') if response.get_field('resized_image'): base64blob = response.get_field('resized_image') print("Got resized meme photo, of %d bytes in base64" % len(base64blob)) else: filename, content_type, photo_blob = response.get_file('photo') base64blob = "data:{};base64,".format( content_type) + base64.b64encode(photo_blob).decode('ascii') print("Got non-resized meme photo, of %d bytes in base64" % len(base64blob)) # Save to the database. photo_save(username, caption, latitude, longitude, base64blob) # Redirect to the feed, where they should see their new photo! response.redirect('/feed') else: # We need to display an upload form. variables = {'meme_of_week_img': '/static/memeOTW.jpg'} rendered = render_file('pages/upload.html', variables) response.write(rendered)
def render_article(config, slug, args): dir = Path(config['env']['var'], 'blog', slug) try: blurb = render_file(dir.joinpath('blurb.html'), args) except IOError: blurb = render_file(dir.joinpath('blurb.md'), args) m = re.match('^(.*?)<hr( /)?>(.*)$', blurb, flags=re.DOTALL) if m is None: return { 'blurb': blurb, } else: return { 'blurb': m.group(1) + m.group(3), 'summary': m.group(1), }
def post_handler(response, i): dp = 'http://i0.kym-cdn.com/profiles/icons/big/000/132/880/awesome%20face%20shrug.jpg' rendered = render_file("pages/post.html", { "dp": dp, "meme": Meme.get_meme_from_id(i) }) response.write(rendered)
def main(env): config = {'env': env} config.update(read_ini(config['env']['config.ini'])) config['controller'][ 'VAR_URL_PREFIX'] = config['controller']['URL_PREFIX'] + '/var' config['controller']['FULL_VAR_URL_PREFIX'] = config['controller'][ 'FULL_URL_PREFIX'] + '/var' config['static'] = read_ini(Path(config['env']['var'], 'staticpages.ini')) config['blog'] = read_ini(Path(config['env']['var'], 'blog', 'index.ini')) blog.augment_config(config) # Clear out build directory and copy var into it. print('Initializing', config['env']['output']) shutil.rmtree(config['env']['output'], ignore_errors=True) os.makedirs(config['env']['output']) shutil.copytree(config['env']['var'], Path(config['env']['output'], 'var'), ignore=shutil.ignore_patterns('.*')) # Write static pages for slug, values in config['static'].items(): args = { 'PAGE_TITLE': values['title'], } args.update(config['controller']) args['CONTENT'] = render_file( Path(config['env']['var'], 'blurbs', slug, 'blurb.html'), args) write( Path(config['env']['output'], *values['url'].split('/'), 'index.html'), render_file(Path(config['env']['var'], 'templates', 'base.html'), args)) # Write blog pages write(Path(config['env']['output'], 'blog', 'index.html'), blog.index(config)) write(Path(config['env']['output'], 'blog', 'rss.xml'), blog.rss(config)) all_tags = { tag for article in config['blog'].values() for tag in article['tags'] } for tag in all_tags: write(Path(config['env']['output'], 'blog', '+' + tag, 'index.html'), blog.index(config, tag=tag)) for slug, values in config['blog'].items(): write(Path(config['env']['output'], 'blog', slug, 'index.html'), blog.article(config, slug))
def template_example(response): """An unused endpoint giving a demo of the template engine.""" variables = { 'title': 'A template example', 'friends': ['Bella', 'Joel', 'Jaxon', 'Owen'] } rendered = render_file('pages/example_body.html', variables) response.write(rendered)
def credits(response): context = {'current_user': None} context['error'] = (response.get_secure_cookie('error_msg') or b'').decode() response.clear_cookie('error_msg') html = template.render_file('templates/credits.html', context) response.write(html)
def nearby_handler(response): dp = 'https://www.transparenthands.org/wp-content/themes/transparenthands/images/donor-icon.png' photo_list = Meme.get_memes_for_category(3) rendered = render_file("pages/nearby.html", { "dp": dp, "photo_list": photo_list }) response.write(rendered)
def nearby_handler(response): dp = 'fixme' photo_list = Meme.get_memes_for_category(3) rendered = render_file("pages/nearby.html", { "dp": dp, "photo_list": photo_list, }) response.write(rendered)
def new_story(response): user = response.get_secure_cookie('username') if user is not None: context = {'current_user':User.find('username', str(user, 'utf-8'))[0]} else: context = {'current_user':None} html = template.render_file('templates/newstory.html', context) response.write(html)
def profile_handler(response, user): profile_picture = '/static/test.png' person = Person.get_user_by_username(user) if not person: response.write('No user found with that name') return var_dict = {'person': person} rendered = render_file(os.path.join('pages', 'profile.html'), var_dict) response.write(rendered)
def index(config, *, tag=None): articles = [] for slug in config['blog']: article = config['blog'][slug].copy() if tag is not None and tag not in article['tags']: continue article_args = article.copy() article_args.update(config['controller']) article.update(render_article(config, slug, article_args)) articles.append(article) args = config['controller'].copy() if tag is None: args['PAGE_TITLE'] = 'Blog Index' else: args['PAGE_TITLE'] = f'Blog: {tag} Tag' args['articles'] = articles args['CONTENT'] = render_file( Path(config['env']['var'], 'templates', 'blog', 'index.html'), args) return render_file(Path(config['env']['var'], 'templates', 'base.html'), args)
def register(response): if response.get_secure_cookie('username') is not None: current_user = User.find('username', str(response.get_secure_cookie('username'), 'utf-8'))[0] else: current_user = None context = { 'current_user':current_user } html = template.render_file('templates/registration.html', context) response.write(html)
def view_story_list(response): user = response.get_secure_cookie('username') stories = Story.find('all', '') if user is not None: context = {'current_user':User.find('username', str(user, 'utf-8'))[0], 'stories':stories} else: context = {'current_user':None, 'stories':stories} html = template.render_file('templates/storylist.html', context) response.write(html)
def display_story_tree(resp, story_id): user = resp.get_secure_cookie('username') story = Story.find('id', story_id)[0] author = User.find('id', story.author_id)[0] if user is not None: user = User.find('username', str(user, 'utf-8'))[0] else: user = None try: resp.write(template.render_file('view_story_tree.html', {'node': create_tree(story), 'story': story, 'author': author, 'user': user})) except Exception as e: story.delete()
def view_story(response, id): user = response.get_secure_cookie('username') story = Story.find('id', id) author = User.find('id', story[0].author_id) if user is not None: context = {'current_user':User.find('username', str(user, 'utf-8'))[0], 'story':story[0], 'author':author[0]} else: context = {'current_user':None, 'story':story[0], 'author':author[0]} html = template.render_file('templates/viewingstory.html', context) response.write(html)
def login_handler(response): global username, password username = response.get_field('username') password = response.get_field('password') if username: if database_login_handler(username, password, response): cookie = 'True,' + username response.set_secure_cookie('loggedin', cookie) response.redirect('/') else: rendered = render_file(os.path.join('pages', 'login.html'), {}) response.write(rendered)
def index(response): username = response.get_secure_cookie('username') if username is not None: context = {'current_user': User.find('username', str(username, 'utf-8'))[0]} else: context = {'current_user': None} context['error'] = (response.get_secure_cookie('error_msg') or b'').decode() response.clear_cookie('error_msg') html = template.render_file('templates/index.html', context) response.write(html)
def search_results(response): context = defaultdict() user = response.get_secure_cookie('username') stories = Story.find('all', '') try: context.update({ 'current_user': User.find('username', str(user, 'utf-8'))[0]}) except TypeError: context.update({ 'current_user': None}) cursor = conn.cursor() if response.get_arguments('storyquery') != []: query = response.get_argument('storyquery') results = search(cursor, conn, query) stories = [] for result in results: stories.append(Story.find('id', int(result[0]))[0]) context['stories'] = stories context['query'] = query context['story'] = '' assert 'query' in context print("QUERY", repr(query)) html = template.render_file('templates/storylist.html', context) # html = template.render_file('templates/minimal.html', context) response.write(html) elif response.get_arguments('sort') != []: # filter logic here pass else: context['stories'] = stories context['story'] = None html = template.render_file('templates/storylist.html', context) response.write(html)
def feed_handler(response): dp = 'http://i0.kym-cdn.com/profiles/icons/big/000/132/880/awesome%20face%20shrug.jpg' photo_list = Meme.get_memes_for_category(3) check_upvotes_l = lambda x: check_upvote_l(x) imglink = "/post" time_func = lambda x: format_time(x) rendered = render_file( "pages/feed.html", { "dp": dp, "photo_list": photo_list, "imglink": imglink, "time_format": time_func, 'check_upvotes': check_upvotes_l }) response.write(rendered)
def profiles(response): users = User.find('all') if response.get_secure_cookie('username') is not None: current_user = User.find('username', str(response.get_secure_cookie('username'), 'utf-8'))[0] else: current_user = None context = { 'users':users, 'current_user':current_user } html = template.render_file('templates/profilelist.html', context) response.write(html)
def user(response, username): user = User.get('username', username) if response.get_secure_cookie('username') is not None: current_user = User.get('username', str(response.get_secure_cookie('username'), 'utf-8')) else: current_user = None context = { 'user':user, 'current_user': current_user, 'requested_user': username } html = template.render_file('templates/profile.html', context) response.write(html)
def serve_chat(resp): resp.write(template.render_file('chat_test.html', {'channels': [('Global', 'global'), ('Story', 'story')], 'name': 'James'} ))
def actual_get(response, context, *args, **kwargs): context['users'] = User.find('all', '') html = template.render_file('templates/admin_index.html', context) response.write(html)
# This is a short example of how to use the templating engine. # It uses the template "template_example.html" # First we import the module: import template # These are the variables the template can use: context = { 'user': '******', 'friends': ['James', 'Dom', 'Who', 'The Doctor'], 'age': 17 } # We call render_file to render the template to a string: html = template.render_file('templates/template_example.html', context) print(html)
def index_example(response): response.write(render_file('pages/index.html', {}))