def edit_post(hash_id): paste = get_paste(hash_id) if not paste.is_user_owned(request.user): abort(404) form = PasteForm(request.POST) if form.validate(): user = login.get_user() paste.title = form.title.data paste.is_private = form.is_private.data tags = [] codes = [code for code in paste.codes] paste.codes = [] for code in codes: code.delete() for i, c in enumerate(form.codes): tag_name = c.tag.data.lower() if not c.title.data: c.title.data = '代码片段%s' % (i + 1) code = Code(title=c.title.data, content=c.content.data, tag=tag_name, user=user) code.save() tags.append(tag_name) tag = Tag.objects(name=tag_name).first() if tag: tag.popularity += 1 else: tag = Tag(name=tag_name) tag.save() paste.codes.append(code) paste.tags = list(set(tags)) paste.save() return redirect('/paste/%s' % paste.hash_id) return {'form': form, 'paste': paste, 'token': request.csrf_token}
def create_post(): form = PasteForm(request.POST) if form.validate(): user = login.get_user() paste = Paste(title=form.title.data, user=user, is_private=form.is_private.data) tags = [] for i, c in enumerate(form.codes): tag_name = c.tag.data.lower() if not c.title.data: c.title.data = '代码片段%s' % (i + 1) code = Code(title=c.title.data, content=c.content.data, tag=tag_name, user=user) code.save() tags.append(tag_name) tag = Tag.objects(name=tag_name).first() if tag: tag.popularity += 1 else: tag = Tag(name=tag_name) tag.save() paste.codes.append(code) paste.tags = list(set(tags)) paste.save() return redirect('/paste/%s' % paste.hash_id) return {'form': form, 'token': request.csrf_token}
def view(hash_id): paste = get_paste(hash_id) paste.increase_views() sig = message = timestamp = None user = login.get_user() if user: # create a JSON packet of our data attributes data = json.dumps({ 'id': str(user.id), 'username': user.username, 'email': user.email }) # encode the data to base64 message = base64.b64encode(data) # generate a timestamp for signing the message timestamp = int(time.time()) # generate our hmac signature sig = hmac.HMAC(app.config['site.disqus_secret_key'], '%s %s' % (message, timestamp), hashlib.sha1).hexdigest() return { 'paste': paste, 'message': message, 'timestamp': timestamp, 'sig': sig }
def view(hash_id): paste = get_paste(hash_id) paste.increase_views() sig = message = timestamp = None user = login.get_user() if user: # create a JSON packet of our data attributes data = json.dumps({'id': str(user.id), 'username': user.username, 'email': user.email}) # encode the data to base64 message = base64.b64encode(data) # generate a timestamp for signing the message timestamp = int(time.time()) # generate our hmac signature sig = hmac.HMAC(app.config['site.disqus_secret_key'], '%s %s' % (message, timestamp), hashlib.sha1).hexdigest() return {'paste': paste, 'message': message, 'timestamp': timestamp, 'sig': sig}
def before_request(): request.user = login.get_user()