Esempio n. 1
0
def make_response(data, marshal_table, cursors=None):
	if util.is_iterable(data):
		response = {
			'status': 'success',
			'count': len(data),
			'now': datetime.utcnow().isoformat(),
			'result': map(lambda l: flask_restful.marshal(l, marshal_table), data),
		}
		if cursors:
			if isinstance(cursors, dict):
				if cursors.get('next'):
					response['next_cursor'] = cursors['next']
					response['next_url'] = util.generate_next_url(cursors['next'])
				if cursors.get('prev'):
					response['prev_cursor'] = cursors['prev']
					response['prev_url'] = util.generate_next_url(cursors['prev'])
			else:
				response['next_cursor'] = cursors
				response['next_url'] = util.generate_next_url(cursors)
		return util.jsonpify(response)
	return util.jsonpify({
		'status': 'success',
		'now': datetime.utcnow().isoformat(),
		'result': flask_restful.marshal(data, marshal_table),
	})
Esempio n. 2
0
def add_blob_content():

    response_object = {
      'status': 'success',
      'now': datetime.utcnow().isoformat(),
      'filelink': None,
    }

    folder = Folder.retrieve_by_id(3001)
    if not folder:
        response_object['status'] = 'failure'
        return util.jsonpify(response_object)
    upload_files = get_uploads(flask.request, 'file')
    if len(upload_files):
        blob_info = upload_files[0]
        if blob_info.size:
            f = File.create(
                blob_info.key(),
                size=blob_info.size,
                filename=os.path.basename(blob_info.filename.replace('\\','/')),
                content_type=blob_info.content_type)
            f.put()
            if f.get_cached_url():
                folder.files.append(f.key)
                folder.put()
                response_object['filelink'] = f.get_cached_url()
        else:
            blob_info.delete()
    return util.jsonpify(response_object)
Esempio n. 3
0
def make_response(data, marshal_table, cursors=None):
    if util.is_iterable(data):
        response = {
            'status': 'success',
            'count': len(data),
            'now': datetime.utcnow().isoformat(),
            'result': [flask_restful.marshal(d, marshal_table) for d in data],
        }
        if cursors:
            if isinstance(cursors, dict):
                if cursors.get('next'):
                    response['next_cursor'] = cursors['next']
                    response['next_url'] = util.generate_next_url(
                        cursors['next'])
                if cursors.get('prev'):
                    response['prev_cursor'] = cursors['prev']
                    response['prev_url'] = util.generate_next_url(
                        cursors['prev'])
            else:
                response['next_cursor'] = cursors
                response['next_url'] = util.generate_next_url(cursors)
        return util.jsonpify(response)
    return util.jsonpify({
        'status': 'success',
        'now': datetime.utcnow().isoformat(),
        'result': flask_restful.marshal(data, marshal_table),
    })
Esempio n. 4
0
def error_handler(e):
    try:
        e.code
    except:

        class e(object):
            code = 500
            name = "Internal Server Error"

    if flask.request.path.startswith("/_s/"):
        return (
            util.jsonpify(
                {
                    "status": "error",
                    "error_code": e.code,
                    "error_name": e.name.lower().replace(" ", "_"),
                    "error_message": e.name,
                }
            ),
            e.code,
        )

    return (
        flask.render_template(
            "error.html", title="Error %d (%s)!!1" % (e.code, e.name), html_class="error-page", error=e
        ),
        e.code,
    )
Esempio n. 5
0
    def get(self, in_query):
        index = search.Index('spots')
        query_dict = parse_query(in_query)
        if query_dict[
                'query'] == '' and 'lat' not in query_dict and 'lon' not in query_dict:
            search_results = index.get_range(start_id="0", limit=10)
        else:
            # search_results = index.search(query_dict['query'])
            search_query = search.Query(
                query_string=query_dict['query'].strip(),
                options=get_query_options(query_dict))
            search_results = index.search(search_query)

        features = []
        for doc in search_results:
            if (doc.field('place').value.longitude != 0.0
                    and doc.field('place').value.latitude != 0.0):
                features.append(build_feature_dict(doc))
        # features = in_query if len(features) == 0 else features
        dict = {"type": "FeatureCollection", "features": features}

        return util.jsonpify(dict)


# curl http://127.0.0.1:8080/api/v1/post/a

# AIzaSyAbcMGMULgp5l0Trav2G3OseIrNGIxHDZk

# curl "http://127.0.0.1:8080/api/v1/post/a&-73.9858118&40.7701926"

# curl "http://localhost:3000/api/v1/post/*&40.770696199999996&-73.9858118"
Esempio n. 6
0
def error_handler(e):
    logging.exception(e)
    try:
        e.code
    except AttributeError:
        e.code = 500
        e.name = "Internal Server Error"

    if flask.request.path.startswith("/_s/"):
        return (
            util.jsonpify(
                {
                    "status": "error",
                    "error_code": e.code,
                    "error_name": util.slugify(e.name),
                    "error_message": e.name,
                    "error_class": e.__class__.__name__,
                }
            ),
            e.code,
        )

    return (
        flask.render_template(
            "error.html", title="Error %d (%s)!!1" % (e.code, e.name), html_class="error-page", error=e
        ),
        e.code,
    )
Esempio n. 7
0
def handle_error(e):
    if not e:
        e = {}
    else:
        logging.exception(e)

    try:
        e.code
    except AttributeError:
        e.code = 500
        e.name = e.description = 'Internal Server Error'
    result = {
        'status': 'error',
        'error_code': e.code,
        'error_name': util.slugify(e.name),
        'error_message': e.name,
        'error_class': e.__class__.__name__,
        'description': e.description,
        'data': None,
        'validations': None
    }
    if hasattr(e, 'data'):
        result['data'] = e.data
    if hasattr(e, 'validations'):
        result['validations'] = e.validations
    return util.jsonpify(result), e.code
Esempio n. 8
0
def make_response(data, marshal_table, next_cursor=None):
  if util.is_iterable(data):
    response = {
        'status': 'success',
        'count': len(data),
        'now': datetime.utcnow().isoformat(),
        'result': map(lambda l: restful.marshal(l, marshal_table), data),
      }
    if next_cursor:
      response['next_cursor'] = next_cursor
      response['next_url'] = util.generate_next_url(next_cursor)
    return util.jsonpify(response)
  return util.jsonpify({
      'status': 'success',
      'now': datetime.utcnow().isoformat(),
      'result': restful.marshal(data, marshal_table),
    })
Esempio n. 9
0
def make_response(data, marshal_table, next_cursor=None):
    if util.is_iterable(data):
        response = {
            'status': 'success',
            'count': len(data),
            'now': datetime.utcnow().isoformat(),
            'result': map(lambda l: restful.marshal(l, marshal_table), data),
        }
        if next_cursor:
            response['next_cursor'] = next_cursor
            response['next_url'] = util.generate_next_url(next_cursor)
        return util.jsonpify(response)
    return util.jsonpify({
        'status': 'success',
        'now': datetime.utcnow().isoformat(),
        'result': restful.marshal(data, marshal_table),
    })
Esempio n. 10
0
    def put(self, post_key):
        post_db = model.Post.get_by_id(post_key)
        user_db = auth.current_user_key().get()

        star = model.Star(user_key=user_db.key, post_key=post_db.key)
        star_id = star.put()

        return util.jsonpify({
            'post_key': str(post_db.key.id),
            'user_key': str(user_db.key.id),
            'star': str(star_id)
        })
Esempio n. 11
0
    def put(self, recommender_key):
        recommender_db = model.Recommender.get_by_id(recommender_key)
        user_db = auth.current_user_key().get()

        following = model.Following(user_key=user_db.key,
                                    recommender_key=recommender_db.key)
        following_id = following.put()

        return util.jsonpify({
            'post_key': str(recommender_db.key.id),
            'user_key': str(user_db.key.id),
            'following_id': str(following_id)
        })
Esempio n. 12
0
    def get(self):
        parser = reqparse.RequestParser()
        parser.add_argument('hub.mode')
        parser.add_argument('hub.challenge')
        parser.add_argument('hub.verify_token')

        args = parser.parse_args()
        logging.debug(args)

        if args['hub.mode'] == 'subscribe':
            if args['hub.verify_token'] == config.FACEBOOK_WEBHOOK_VERIFY_TOKEN:
                return int(args['hub.challenge'])
        result = {}
        return util.jsonpify(result)
Esempio n. 13
0
    def get(self):
        parser = reqparse.RequestParser()
        parser.add_argument('hub.mode')
        parser.add_argument('hub.challenge')
        parser.add_argument('hub.verify_token')

        args = parser.parse_args()
        logging.debug(args)

        if args['hub.mode'] == 'subscribe':
            if args['hub.verify_token'] == config.FACEBOOK_WEBHOOK_VERIFY_TOKEN:
                return int(args['hub.challenge'])
        result = {}
        return util.jsonpify(result)
Esempio n. 14
0
def handle_error(e):
	logging.exception(e)
	try:
		e.code
	except AttributeError:
		e.code = 500
		e.name = e.description = 'Internal Server Error'
	return util.jsonpify({
		'status': 'error',
		'error_code': e.code,
		'error_name': util.slugify(e.name),
		'error_message': e.name,
		'error_class': e.__class__.__name__,
		'description': e.description,
	}), e.code
Esempio n. 15
0
def handle_error(e):
  logging.exception(e)
  try:
    e.code
  except AttributeError:
    e.code = 500
    e.name = e.description = 'Internal Server Error'
  return util.jsonpify({
    'status': 'error',
    'error_code': e.code,
    'error_name': util.slugify(e.name),
    'error_message': e.name,
    'error_class': e.__class__.__name__,
    'description': e.description,
  }), e.code
Esempio n. 16
0
def handle_error(e):
    logging.exception(e)
    return util.jsonpify({
        'status':
        'error',
        'error_code':
        getattr(e, 'code', 500),
        'error_name':
        util.slugify(getattr(e, 'name', 'Internal Server Error')),
        'error_message':
        getattr(e, 'name', 'Internal Server Error'),
        'error_class':
        e.__class__.__name__,
        'description':
        getattr(e, 'description', 'Internal Server Error'),
    }), getattr(e, 'code', 500)
Esempio n. 17
0
 def get(self):
     args = parser.parse({
         'fsym': wf.Str(),
         'tsym': wf.Str(),
         'ts': wf.Str(),
     })
     result = urlfetch.fetch(
         'https://min-api.cryptocompare.com/data/pricehistorical?fsym=%s&tsyms=%s&ts=%s&extraParams=%s'
         %
         (args['fsym'], args['tsym'], args['ts'], config.APPLICATION_NAME))
     if result.status_code == 200:
         content = json.loads(result.content)
         try:
             rate = content[args['fsym']][args['tsym']]
             return util.jsonpify(
                 {'%s%s' % (args['fsym'], args['tsym']): rate})
         except:
             flask.abort(404)
     else:
         flask.abort(result.status_code)
Esempio n. 18
0
def error_handler(e):
  try:
    e.code
  except AttributeError as e:
    e.code = 500
    e.name = 'Internal Server Error'

  if flask.request.path.startswith('/_s/'):
    return util.jsonpify({
        'status': 'error',
        'error_code': e.code,
        'error_name': e.name.lower().replace(' ', '_'),
        'error_message': e.name,
      }), e.code

  return flask.render_template(
      'error.html',
      title='Error %d (%s)!!1' % (e.code, e.name),
      html_class='error-page',
      error=e,
    ), e.code
Esempio n. 19
0
def error_handler(e):
  try:
    e.code
  except:
    class e(object):
      code = 500
      name = 'Internal Server Error'

  if flask.request.path.startswith('/_s/'):
    return util.jsonpify({
        'status': 'error',
        'error_code': e.code,
        'error_name': e.name.lower().replace(' ', '_'),
        'error_message': e.name,
      }), e.code

  return flask.render_template(
      'error.html',
      title='Error %d (%s)!!1' % (e.code, e.name),
      html_class='error-page',
      error=e,
    ), e.code
Esempio n. 20
0
def error_handler(e):
  logging.exception(e)
  try:
    e.code
  except AttributeError:
    e.code = 500
    e.name = 'Internal Server Error'

  if flask.request.path.startswith('/_s/'):
    return util.jsonpify({
        'status': 'error',
        'error_code': e.code,
        'error_name': util.slugify(e.name),
        'error_message': e.name,
        'error_class': e.__class__.__name__,
      }), e.code

  return flask.render_template(
      'error.html',
      title='Error %d (%s)!!1' % (e.code, e.name),
      html_class='error-page',
      error=e,
    ), e.code
Esempio n. 21
0
    def post(self):
        obj = request.get_json()
        if obj:
            for entry in obj['entry']:
                fb_messaging = entry['messaging']
                fb_page_id = entry['id']
                for fb_obj in fb_messaging:
                    fb_sender = fb_obj['sender']
                    fb_recipient = fb_obj['recipient']

                    if 'message' in fb_obj:
                        fb_content = fb_obj['message']
                        fb_timestamp = fb_obj['timestamp']
                        fb_mid = fb_content['mid']
                        fb_seq = fb_content['seq']
                        if'attachments' in fb_content:
                            for attachment in fb_content['attachments']:
                                atype = attachment['type']
                                if atype is 'image' or atype is 'video' or atype is 'audio':
                                    logging.debug(
                                        '"%s" "%s" "%s" "%s" "%s" "%s" "%s" "%s" "%s"' % (
                                            'incoming',
                                            fb_timestamp,
                                            fb_page_id,
                                            fb_sender['id'],
                                            fb_recipient['id'],
                                            attachment['type'],
                                            attachment['payload']['url'],
                                            fb_seq,
                                            fb_mid
                                        )
                                    )
                                elif atype is 'location':
                                    logging.debug(
                                        '"%s" "%s" "%s" "%s" "%s" "%s" "%s" "%s" "%s"' % (
                                            'incoming',
                                            fb_timestamp,
                                            fb_page_id,
                                            fb_sender['id'],
                                            fb_recipient['id'],
                                            attachment['type'],
                                            attachment['payload'],
                                            fb_seq,
                                            fb_mid
                                        )
                                    )
                                else:
                                    logging.debug(
                                        '"%s" "%s" "%s" "%s" "%s" "%s" "%s" "%s" "%s"' % (
                                            'incoming',
                                            fb_timestamp,
                                            fb_page_id,
                                            fb_sender['id'],
                                            fb_recipient['id'],
                                            attachment['type'],
                                            attachment['payload'],
                                            fb_seq,
                                            fb_mid
                                        )
                                    )
                        else:
                            logging.debug(
                                '"%s" "%s" "%s" "%s" "%s" "%s" "%s" "%s" "%s"' % (
                                    'incoming',
                                    fb_timestamp,
                                    fb_page_id,
                                    fb_sender['id'],
                                    fb_recipient['id'],
                                    'text',
                                    fb_content['text'],
                                    fb_seq,
                                    fb_mid
                                )
                            )
                            if 'show example text' in fb_content['text']:
                                example_message_text(
                                    fb_sender,
                                    'This is an example of a message with text only.'
                                )
                                example_message_text(
                                    fb_sender,
                                    'The last thing you said was: "%s"' % fb_content['text']
                                )
                            if 'show example image' in fb_content['text']:
                                example_message_text(
                                    fb_sender,
                                    'This is an example of a message with an image only.'
                                )
                                example_message_image(
                                    fb_sender,
                                    'http://petersapparel.parseapp.com/img/item100-thumb.png'
                                )

                    elif 'delivery' in fb_obj:
                        fb_delivery = fb_obj['delivery']
                        fb_watermark = fb_delivery['watermark']
                        fb_seq = fb_delivery['seq']
                        if 'mids' in fb_delivery and len(fb_delivery['mids']) > 0:
                            for fb_mid in fb_delivery['mids']:
                                logging.debug(
                                    '"%s" "%s" "%s" "%s" "%s" "%s" "%s"' % (
                                        'delivery',
                                        fb_page_id,
                                        fb_sender['id'],
                                        fb_recipient['id'],
                                        fb_watermark,
                                        fb_seq,
                                        fb_mid
                                    )
                                )
                        else:
                            logging.debug(
                                '"%s" "%s" "%s" "%s" "%s" "%s"' % (
                                    'delivery',
                                    fb_page_id,
                                    fb_sender['id'],
                                    fb_recipient['id'],
                                    fb_watermark,
                                    fb_seq
                                )
                            )
                    else:
                        logging.debug(
                            '"%s" "%s" "%s" "%s" "%s"' % (
                                'incoming',
                                fb_page_id,
                                fb_sender['id'],
                                fb_recipient['id'],
                                fb_obj,
                            )
                        )
        result = {}
        return util.jsonpify(result)
Esempio n. 22
0
def make_object_response(obj):
    return util.jsonpify({
        'status': 'success',
        'now': datetime.utcnow().isoformat(),
        'result': obj
    })
Esempio n. 23
0
    def post(self):
        cu = nlpfunc.Checkup()

        obj = request.get_json()
        if obj:
            for entry in obj['entry']:
                fb_messaging = entry['messaging']
                fb_page_id = entry['id']
                for fb_obj in fb_messaging:
                    fb_sender = fb_obj['sender']
                    fb_recipient = fb_obj['recipient']

                    if 'message' in fb_obj:
                        fb_content = fb_obj['message']
                        logging.debug(fb_content['text'])
                        #logging.debug(fb_sender['id'])
                        fb_timestamp = fb_obj['timestamp']
                        fb_mid = fb_content['mid']
                        fb_seq = fb_content['seq']
                        if 'attachments' in fb_content:
                            for attachment in fb_content['attachments']:
                                atype = attachment['type']
                                if atype is 'image' or atype is 'video' or atype is 'audio':
                                    logging.debug(
                                        '"%s" "%s" "%s" "%s" "%s" "%s" "%s" "%s" "%s"'
                                        %
                                        ('incoming', fb_timestamp, fb_page_id,
                                         fb_sender['id'], fb_recipient['id'],
                                         attachment['type'],
                                         attachment['payload']['url'], fb_seq,
                                         fb_mid))
                                elif atype is 'location':
                                    logging.debug(
                                        '"%s" "%s" "%s" "%s" "%s" "%s" "%s" "%s" "%s"'
                                        %
                                        ('incoming', fb_timestamp, fb_page_id,
                                         fb_sender['id'], fb_recipient['id'],
                                         attachment['type'],
                                         attachment['payload'], fb_seq,
                                         fb_mid))
                                else:
                                    logging.debug(
                                        '"%s" "%s" "%s" "%s" "%s" "%s" "%s" "%s" "%s"'
                                        %
                                        ('incoming', fb_timestamp, fb_page_id,
                                         fb_sender['id'], fb_recipient['id'],
                                         attachment['type'],
                                         attachment['payload'], fb_seq,
                                         fb_mid))
                        elif 'text' in fb_content:
                            logging.debug(
                                '"%s" "%s" "%s" "%s" "%s" "%s" "%s" "%s" "%s"'
                                % ('Facebook incoming message', fb_timestamp,
                                   fb_page_id, fb_sender['id'],
                                   fb_recipient['id'], 'text',
                                   fb_content['text'], fb_seq, fb_mid))
                            # connect to fb graph api to get details of message sender
                            url = "https://graph.facebook.com/v2.6/" + str(
                                fb_sender['id']
                            ) + "?fields=first_name,last_name,profile_pic,locale,timezone,gender&access_token=" + config.FACEBOOK_PAGE_ACCESS_TOKEN
                            response = urllib.urlopen(url)
                            fb_data = json.loads(response.read())
                            fn = '<fn>'
                            ln = '<ln>'
                            if 'first_name' in fb_data:
                                fn = fb_data["first_name"]
                                ln = fb_data["last_name"]

                            processed = 0  #to check if a sample text code triggered

                            if 'show example text' in fb_content['text']:
                                processed = 1  # yes sample text code triggered
                                example_message_text(
                                    fb_sender,
                                    'This is an example of a message with text only.'
                                )
                                example_message_text(
                                    fb_sender,
                                    'The last thing you said was: "%s"' %
                                    fb_content['text'])
                            if 'button' in fb_content['text']:
                                processed = 1
                                example_message_button(
                                    fb_sender,
                                    "It looks like you said: I have a tooth ache",
                                    "Is that correct?", "I have tooth ache")
                            if 'show example image' in fb_content['text']:
                                processed = 1
                                example_message_text(
                                    fb_sender,
                                    'This is an example of a message with an image only.'
                                )
                                example_message_image(
                                    fb_sender,
                                    'https://jjmdev-a.appspot.com/client/small_utw.png'
                                )
                            if 'show video' in fb_content['text']:
                                processed = 1
                                example_message_text(
                                    fb_sender,
                                    'This is an example of a message with a HSE video.'
                                )
                                example_message_video(
                                    fb_sender,
                                    '<div style="position:relative;height:0;padding-bottom:56.25%"><iframe src="https://www.youtube.com/embed/Kn7I-Vp-TJI?ecver=2" style="position:absolute;width:100%;height:100%;left:0" width="640" height="360" frameborder="0" allowfullscreen></iframe></div>'
                                )

                            logging.debug(fb_content['text'])
                            utw_reply = cu.classify(fb_content['text'])
                            if processed == 0:  # no sample text code triggered, ok proceed to use nlp functions
                                if not utw_reply:
                                    example_message_image(
                                        fb_sender,
                                        'https://jjmdev-a.appspot.com/client/small_icon_sad.png'
                                    )
                                    example_message_text(
                                        fb_sender,
                                        'I am sorry, "%s" there is no response for that statement in my lexicon! This is a proof of concept bot. Try asking general medical questions as per HSE website www.undertheweather.ie thankyou'
                                        % fn)
                                else:
                                    example_message_image(
                                        fb_sender,
                                        'https://jjmdev-a.appspot.com/client/small_utw.png'
                                    )
                                    example_message_text(
                                        fb_sender,
                                        'Hi "%s", so you said: "%s"' %
                                        (fn, utw_reply[0]))
                                    example_message_image(
                                        fb_sender,
                                        'https://jjmdev-a.appspot.com/client/small_icon_scope.png'
                                    )
                                    example_message_text(
                                        fb_sender, utw_reply[1])
                                    example_message_image(
                                        fb_sender,
                                        'https://jjmdev-a.appspot.com/client/small_icon_pill.png'
                                    )
                                    example_message_text(
                                        fb_sender, utw_reply[2])

                    elif 'delivery' in fb_obj:
                        fb_delivery = fb_obj['delivery']
                        fb_watermark = fb_delivery['watermark']
                        fb_seq = fb_delivery['seq']
                        if 'mids' in fb_delivery and len(
                                fb_delivery['mids']) > 0:
                            for fb_mid in fb_delivery['mids']:
                                logging.debug(
                                    '"%s" "%s" "%s" "%s" "%s" "%s" "%s"' %
                                    ('delivery', fb_page_id, fb_sender['id'],
                                     fb_recipient['id'], fb_watermark, fb_seq,
                                     fb_mid))
                        else:
                            logging.debug(
                                '"%s" "%s" "%s" "%s" "%s" "%s"' %
                                ('delivery', fb_page_id, fb_sender['id'],
                                 fb_recipient['id'], fb_watermark, fb_seq))
                    else:
                        logging.debug('"%s" "%s" "%s" "%s" "%s"' % (
                            'incoming',
                            fb_page_id,
                            fb_sender['id'],
                            fb_recipient['id'],
                            fb_obj,
                        ))
        result = {}
        return util.jsonpify(result)