def __main__(): os.makedirs(conf['images_dir'], exist_ok=True) os.makedirs('vk_loader/loaded_ids', exist_ok=True) posts = get_new_posts() posts = filter(is_post_meme, posts) for post in posts: photo = post['attachments'][0]['photo'] ptr = len(PHOTO_URL_FIELDS) - 1 while ptr >= 0 and PHOTO_URL_FIELDS[ptr] not in photo: ptr -= 1 if ptr < 0: continue photo_url = photo[PHOTO_URL_FIELDS[ptr]] assert (photo_url.endswith('.jpg')) photo_id = get_random_id() try: print('loading', photo_id, photo_url) download(photo_url, conf['images_dir'] + photo_id + '.jpg') except IOError: print('Downloading/saving an image failed!') continue session.add(Meme(img=photo_id)) session.commit()
def upload_memes(tags, url, all_tags): meme = Meme(image_url=url).put() meme_tag_objects = [] for tag in tags: if not tag in all_tags: all_tags[tag] = Tag(tag_name=tag).put() temp_meme_tag = Meme_and_Tag(meme=meme, tag=all_tags[tag]).put()
def post(self): meme = Meme(line1=self.request.get('user-first-ln'), line2=self.request.get('user-second-ln'), img_choice=self.request.get('meme-type')) meme_key = meme.put() self.response.write("Meme created: " + str(meme_key) + "<br>") self.response.write("<a href='/allmemes'>All memes</a>")
def post(self): ''' Endpoint for registering a meme ''' parser = reqparse.RequestParser() parser.add_argument('url', required=True) parser.add_argument('title') args = parser.parse_args() if Meme.query.filter_by(url=args.url).first(): return send_error("This meme has already been submitted! " "Lay off the stale memes.", 400) try: args.url = validate_imgur_link(args.url) except ValueError as e: logger.info('%s sent an invalid imgur link.' % flask.g.netid) return send_error(str(e)) meme = Meme( url=args.url, title=args.title, netid=flask.g.netid ) db.session.add(meme) db.session.commit() logger.info("%s created new meme with id %s" % (flask.g.netid, meme.id)) return jsonify(meme.to_dict())
def post(self): """Handles POST requests for /memes endpoint Returns: dict -- Status or error message """ try: args = parser.parse_args() auth = args['meme_auth'] temp = args['temp'] is '1' or args['temp'] is None if auth != auth_key: return {'message': 'Bad meme authentication'}, 401 meme_url = args['url'] if not meme_url: return {'message': 'No empty memes'}, 401 existing = Meme.query.filter_by(url=meme_url).first() if not existing: meme = Meme(url=meme_url, temp=temp) db.session.add(meme) db.session.commit() return {'status': 'success'} return {'message': 'Meme already exists!'}, 401 except Exception as e: traceback.print_exc() return generic_400(e)
def seed_data(): fry_key = Image(name="fry_squint", image_file="fry.png").put() jc_key = Image(name="jackie_chan_wtf", image_file="jackie.png").put() tears_key = Image(name="tears_in_the_rain", image_file="tears.png").put() pika_key = Image(name="surprised_pikachu", image_file="surprised_pikachu.png").put() buzz_key = Image(name="buzz_everywhere", image_file="buzz_everywhere.jpg").put() roll_safe_key = Image(name="roll_safe", image_file="roll_safe.jpg").put() Meme(top_text="Not sure if meme app", bottom_text="or black hole", image=fry_key, creator="*****@*****.**", created_at=datetime.datetime(2018, 07, 23, 05, 23, 0, 0)).put() Meme(top_text="Meme app", bottom_text="doesn't save memes?", image=jc_key, creator="*****@*****.**", created_at=datetime.datetime(2018, 06, 23, 05, 23, 0, 0)).put() Meme(top_text="All these memes", bottom_text="lost like tears in the rain.", image=tears_key, creator="*****@*****.**", created_at=datetime.datetime(1984, 07, 23, 05, 23, 0, 0)).put()
def populate_db(): with open('memes.json', 'r') as f: with app.app_context(): memes = json.loads(f.read()) for meme in memes: try: db.session.add(Meme(url=meme['url'], temp=False)) db.session.commit() except: pass
def post(self): user = users.get_current_user() image_name = self.request.get('image') image_key = Image.query(Image.name == image_name).fetch(1)[0].key Meme(top_text=self.request.get('top_text'), middle_text=self.request.get('middle_text'), bottom_text=self.request.get('bottom_text'), image=image_key, creator=user.user_id()).put() self.redirect('/')
def post(self): checkLoggedInAndRegistered(self) user = users.get_current_user() meme = Meme(line1=self.request.get('user-first-ln'), line2=self.request.get('user-second-ln'), owner=user.nickname(), img_choice=self.request.get('meme-type')) meme_key = meme.put() self.response.write("Meme created: " + str(meme_key) + "<br>") self.response.write("<a href='/allmemes'>All memes</a> | ") self.response.write("<a href='/usermemes'>My memes</a>")
def post(self): results_template = the_jinja_env.get_template('templates/results.html') meme_first_line = self.request.get('user-first-ln') meme_second_line = self.request.get('user-second-ln') meme_img_choice = self.request.get('meme-type') user_meme = Meme(first_line = meme_first_line, second_line = meme_second_line, pic_type = meme_img_choice) user_meme.put() the_variable_dict = {"line1": meme_first_line, "line2": meme_second_line, "img_url": user_meme.get_meme_url()} self.response.write(results_template.render(the_variable_dict))
def post(self): top_line = self.request.get("top-line") bottom_line = self.request.get("bottom-line") meme_url = self.request.get("template") newMeme = Meme(url = meme_url, top_text = top_line,bottom_text = bottom_line) newMeme.put() results = { "top" : top_line, "bottom" : bottom_line, "url" : meme_url } result_template = jinja_env.get_template('result.html') self.response.write(result_template.render(results)) print(top_line)
def post(self): top_line = self.request.get("top-line") bottom_line = self.request.get("bottom-line") meme_url = self.request.get("template") data_dict = { "top_line": top_line, "bottom_line": bottom_line, "url": meme_url } meme1 = Meme(first_line=data_dict["top_line"], second_line=data_dict["bottom_line"], pic_type=data_dict["url"]) meme1.put() result_template = the_jinja_env.get_template('templates/result.html') self.response.write(result_template.render(data_dict))
def post(self): user = users.get_current_user() # get current logged in user meme_key_string = self.request.get('meme_key') image_name = self.request.get('image') image_key = Image.query(Image.name == image_name).fetch(1)[0].key # get the key of the correct image by nickname if meme_key_string: meme = get_meme_from_key(meme_key_string) if meme.creator != user.user_id(): self.response.status = "403 Forbidden" return else: meme = Meme() meme.top_text=self.request.get('top_text') meme.middle_text=self.request.get('middle_text') meme.bottom_text=self.request.get('bottom_text') meme.image=image_key meme.creator=user.user_id() # grab the user ID from currently logged in user, store with Meme meme_key = meme.put() self.redirect('/view?meme_key=' + meme_key.urlsafe())
def meme_handler(self, message: telebot.types.Message): telegram_id = message.from_user.id chat_id = str(message.chat.id) msg_id = message.message_id username = '******' + message.from_user.username if message.from_user.username else message.from_user.first_name get_cached_meme_posted_at(chat_id, telegram_id) if (datetime.utcnow() - last_meme_posted_at_cache[chat_id][telegram_id]).seconds > 10: if message.content_type != 'text': last_meme_posted_at_cache[chat_id][ telegram_id] = datetime.utcnow().replace(microsecond=0) user = User(telegram_id, chat_id, username).save_if_not_exists() meme = Meme(user.id, msg_id, chat_id).save() print('new meme', meme.id, flush=True) self.send_message(chat_id, 'Mark this meme', reply_to_message_id=msg_id, reply_markup=vote_keyboard()) else: if message.text.startswith('/'): self.command_handler(message)
def run_query(first_line, second_line, pic_type): meme = Meme(line1=first_line, line2=second_line, img_choice=pic_type) meme_key = meme.put() print("&&&&&&&&&&&&&&&&&&&&&&&&&") print meme_key
def rose_meme_delete(self, a_meme): if not a_meme.from_datastore: raise endpoints.NotFoundException('Meme not Found') a_meme.key.delete() return Meme(image_url='Deleted')
def save_meme(self, user_id, file_type, file_id, msg_id): meme = Meme(user_id, file_type, file_id, msg_id).save() user = User.get(user_id) print(f'{user} have posted {meme}', flush=True)
def post(self): new_message = Meme(image_url=self.request.get('image_url'), caption=self.request.get('caption')) new_message.put() time.sleep(0.5) self.redirect('/')