""" MemeGenerator index (main) view. """ from collections import defaultdict import arrow import flask import MemeGenerator import flickrapi api_key = u'0863dcba2e84fea28ec7a7fd4b19ee33' api_secret = u'd4adaa95d76272e7' flickr = flickrapi.FlickrAPI(api_key, api_secret, format='parsed-json') @MemeGenerator.app.route('/') def show_index(): """Show index page""" return flask.render_template('index.html') @MemeGenerator.app.route('/search/<page>') def show_search(page=1): """Show result search page.""" query = flask.request.args.get('q') page = int(page) if page < 1: page = 1 search_resutlts = flickr.photos.search(text=query, page=page, per_page=20, safe_search=1, sort='relevance')['photos'] context = defaultdict(list) pages = search_resutlts['pages'] search_resutlts = search_resutlts['photo'] # flip the searches, check for boundary conditions context['next'] = page context['prev'] = page if page+1 < pages: context['next'] = page+1 if page-1 > 0: context['prev'] = page-1 context['query'] = query context['current'] = page for one in search_resutlts: url = 'https://live.staticflickr.com/{}/{}_{}_q.jpg'.format( one['server'], one['id'], one['secret'] ) tmp = { 'id': one['id'], 'url': url } context['items'].append(tmp) return flask.render_template('search_res.html', **context) @MemeGenerator.app.route('/setup') def show_setup(): """Show meme setup page.""" url = flask.request.args.get('url') context = dict() context['url'] = url return flask.render_template('setup.html', **context) @MemeGenerator.app.route('/generate') def generate(): """Show generated Meme page""" top = flask.request.args.get('top', default='_') bot = flask.request.args.get('bot', default='_') url = flask.request.args.get('url') meme_url = 'https://api.memegen.link/images/custom/{}/{}.png?background={}'.format(top, bot, url) context = {'url': meme_url} return flask.render_template('generate.html', **context)