Example #1
0
 def post(self):
     parser = RequestParser()
     parser.add_argument('X-VERIFY-CREDENTIALS-AUTHORIZATION',
                         type=str,
                         location='headers',
                         dest='authorization')
     parser.add_argument('X-AUTH-SERVICE-PROVIDER',
                         type=str,
                         location='headers',
                         dest='authorization_url')
     parser.add_argument('media', type=FileStorage, location='files')
     parser.add_argument('message', type=unicode, location='form')
     parser.add_argument('source', type=unicode, location='form')
     args = parser.parse_args()
     if args['source'] != 'Tweetbot for iOS':
         return error('nottweetbot'), 403
     f = args['media']
     if not f:
         return error('imagenotattached'), 400
     headers = {'Authorization': args['authorization']}
     r = requests.get(args['authorization_url'], headers=headers)
     json = r.json()
     user = User.query.filter_by(oauth_uid=json['id']).first()
     message = '' if json['protected'] else args.get('message')
     desc = "%svia Tweetbot for iOS" % (
         ('%s\r\n\r\n' % message) if message else '')
     upload = do_upload_image(user, f, desc)
     if isinstance(upload, str):
         return error(upload), 403
     else:
         return {'url': BASE_URL % upload.url}, 201
Example #2
0
 def post(self):
     parser = RequestParser()
     parser.add_argument(arg_token)
     parser.add_argument('file', type=FileStorage, location='files')
     parser.add_argument('desc', type=unicode, location='form')
     args = parser.parse_args()
     f = args['file']
     user = args['token']
     if user:
         user = User.query.filter_by(token=user).first()
         if not user:
             return error('wrongtoken'), 403
     if not f:
         return error('imagenotattached'), 400
     upload = do_upload_image(user, f, args['desc'])
     if isinstance(upload, str):
         return error(upload), 403
     else:
         return success({
             'url': {
                 'part': upload.url,
                 'page': BASE_URL % upload.url,
                 'direct': upload.direct_url
             }
         }), 201
Example #3
0
File: web.py Project: imgtl/imgtl
def upload():
    if current_user.is_authenticated():
        user = current_user
    else:
        user = None
    expire = None
    try:
        exp = int(request.form['expire'])
        if exp != -1:
            if exp != 0:
                expire = int(exp)
            else:
                expire = int(request.form['expire-custom']) * int(request.form['expire-custom-unit'])
            if expire > 525600:
                flash(i18n('invalidexpiretime-toolong'), 'error')
                return redirect(url_for('index'))
            expire = imgtl.lib.calc_expire_time(expire)
    except ValueError:
        flash(i18n('invalidexpiretime'), 'error')
        return redirect(url_for('index'))
    upload = do_upload_image(user, request.files['image'], request.form.get('desc'),
                             request.form.get('nsfw') == 'on', request.form.get('anonymous') == 'on', request.form.get('private') == 'on',
                             request.form.get('keep-exif') == 'on', expire, request.form.get('expire-behavior'))
    if isinstance(upload, str):
        flash(i18n(upload), 'error')
        return redirect(url_for('index'))
    else:
        if current_user.is_anonymous():
            if 'anon_uploads' not in session:
                session['anon_uploads'] = []
            session['anon_uploads'].append(upload.id)
        flash(i18n('uploadsuccess'), 'success')
        return redirect(url_for('show', url=upload.url))
Example #4
0
File: api.py Project: imgtl/imgtl
 def post(self):
     parser = RequestParser()
     parser.add_argument(arg_token)
     parser.add_argument('file', type=FileStorage, location='files')
     parser.add_argument('desc', type=unicode, location='form')
     args = parser.parse_args()
     f = args['file']
     user = args['token']
     if user:
         user = User.query.filter_by(token=user).first()
         if not user:
             return error('wrongtoken'), 403
     if not f:
         return error('imagenotattached'), 400
     upload = do_upload_image(user, f, args['desc'])
     if isinstance(upload, str):
         return error(upload), 403
     else:
         return success({'url': {'part': upload.url, 'page': BASE_URL % upload.url, 'direct': upload.direct_url}}), 201
Example #5
0
def upload():
    if current_user.is_authenticated():
        user = current_user
    else:
        user = None
    expire = None
    try:
        exp = int(request.form['expire'])
        if exp != -1:
            if exp != 0:
                expire = int(exp)
            else:
                expire = int(request.form['expire-custom']) * int(
                    request.form['expire-custom-unit'])
            if expire > 525600:
                flash(i18n('invalidexpiretime-toolong'), 'error')
                return redirect(url_for('index'))
            expire = imgtl.lib.calc_expire_time(expire)
    except ValueError:
        flash(i18n('invalidexpiretime'), 'error')
        return redirect(url_for('index'))
    upload = do_upload_image(user, request.files['image'],
                             request.form.get('desc'),
                             request.form.get('nsfw') == 'on',
                             request.form.get('anonymous') == 'on',
                             request.form.get('private') == 'on',
                             request.form.get('keep-exif') == 'on', expire,
                             request.form.get('expire-behavior'))
    if isinstance(upload, str):
        flash(i18n(upload), 'error')
        return redirect(url_for('index'))
    else:
        if current_user.is_anonymous():
            if 'anon_uploads' not in session:
                session['anon_uploads'] = []
            session['anon_uploads'].append(upload.id)
        flash(i18n('uploadsuccess'), 'success')
        return redirect(url_for('show', url=upload.url))
Example #6
0
File: api.py Project: imgtl/imgtl
 def post(self):
     parser = RequestParser()
     parser.add_argument('X-VERIFY-CREDENTIALS-AUTHORIZATION', type=str, location='headers', dest='authorization')
     parser.add_argument('X-AUTH-SERVICE-PROVIDER', type=str, location='headers', dest='authorization_url')
     parser.add_argument('media', type=FileStorage, location='files')
     parser.add_argument('message', type=unicode, location='form')
     parser.add_argument('source', type=unicode, location='form')
     args = parser.parse_args()
     if args['source'] != 'Tweetbot for iOS':
         return error('nottweetbot'), 403
     f = args['media']
     if not f:
         return error('imagenotattached'), 400
     headers = {'Authorization': args['authorization']}
     r = requests.get(args['authorization_url'], headers=headers)
     json = r.json()
     user = User.query.filter_by(oauth_uid=json['id']).first()
     message = '' if json['protected'] else args.get('message')
     desc = "%svia Tweetbot for iOS" % (('%s\r\n\r\n' % message) if message else '')
     upload = do_upload_image(user, f, desc)
     if isinstance(upload, str):
         return error(upload), 403
     else:
         return {'url': BASE_URL % upload.url}, 201