예제 #1
0
파일: app.py 프로젝트: jrzb/WechatWoojuu
def api_summary():
	userid = request.args.get('userid', '')
	categories = request.args.get('categories', '')
	fromdate = request.args.get('fromdate', '')
	enddate = request.args.get('enddate', '')

	if categories == "":
		category_list = []
	else:
		category_list = categories.split(";")
	if len(category_list) == 0:
		sql = "select 'ALL' as name, sum(amount) as amount from expenses" + \
			" where userid='" + userid +"' and date>='" + fromdate + \
			"' and date<='" + enddate + "'"
	else:
		categories = ",".join(["'%s'" % (k) for k in category_list])
		sql = "select category as name, sum(amount) as amount from expenses" + \
			" where userid='" + userid +"' and date>='" + fromdate + \
			"' and date<='" + enddate + "' and category in ("+ \
			categories +") group by category"

	out = Expense.query_sql(sql)
	if len(out) == 0:
		out = []
	else:
		if len(out) == 1:
			if out[0][1] is None:
				out = []

	content = render_template('summary.json', objs=out)
	content = smarty_remove_extra_comma(content)
	return content
예제 #2
0
파일: server.py 프로젝트: jrzb/WechatWoojuu
def get_index_userprofile():
	# TODO defensive code
	username = request.args.get('username')
	service_name = request.args.get('service_name')
	index_key_list = request.args.get('index_key_list', '')
	if index_key_list != '':
		index_key_list = index_key_list.split(";")

		sql_format = "select index_key, index_value from userprofile " + \
					 "where username='******' and service_name='%s' and index_key in (%s)"
		sql = sql_format % (username, service_name, ",".join(["'%s'" % (k) for k in index_key_list]))
		print sql
		out = util.query_sql(sql)
		out = util.fill_missing_data(out, index_key_list, '0')
	else:
		sql_format = "select index_key, index_value from userprofile " + \
					 "where username='******' and service_name='%s'"
		sql = sql_format % (username, service_name)
		print sql
		out = util.query_sql(sql)
	print out

	content = render_template('get_userprofile.json', objs=out)
	content = util.smarty_remove_extra_comma(content)
	resp = make_response(content, 200)
	resp.headers['Content-type'] = 'application/json; charset=utf-8'
	return resp
예제 #3
0
def api_summary():
    userid = request.args.get('userid', '')
    categories = request.args.get('categories', '')
    fromdate = request.args.get('fromdate', '')
    enddate = request.args.get('enddate', '')

    if categories == "":
        category_list = []
    else:
        category_list = categories.split(";")
    if len(category_list) == 0:
        sql = "select 'ALL' as name, sum(amount) as amount from expenses" + \
         " where userid='" + userid +"' and date>='" + fromdate + \
         "' and date<='" + enddate + "'"
    else:
        categories = ",".join(["'%s'" % (k) for k in category_list])
        sql = "select category as name, sum(amount) as amount from expenses" + \
         " where userid='" + userid +"' and date>='" + fromdate + \
         "' and date<='" + enddate + "' and category in ("+ \
         categories +") group by category"

    out = Expense.query_sql(sql)
    if len(out) == 0:
        out = []
    else:
        if len(out) == 1:
            if out[0][1] is None:
                out = []

    content = render_template('summary.json', objs=out)
    content = smarty_remove_extra_comma(content)
    return content
예제 #4
0
def api_summary_daily():
    userid = request.args.get('userid', '')
    fromdate = request.args.get('fromdate', '')
    enddate = request.args.get('enddate', '')

    sql_format = "select left(date, 10), sum(amount) from expenses" + \
        " where userid='%s' and date >='%s' and date<='%s' group by left(date, 10) order by left(date, 10) asc;"
    sql = sql_format % (userid, fromdate, enddate)

    out = Expense.query_sql(sql)

    date_list = util.get_date_list(fromdate, enddate)
    date_dict = {}
    for date in date_list:
        date_dict[date] = "0"

    for entry in out:
        date_dict[entry[0]] = entry[1]

    key_list = sorted(date_dict.keys())

    content = render_template('summary_daily.json',
                              key_list=key_list,
                              date_dict=date_dict)
    content = smarty_remove_extra_comma(content)
    return content
예제 #5
0
def get_index_userprofile():
    # TODO defensive code
    username = request.args.get('username')
    service_name = request.args.get('service_name')
    index_key_list = request.args.get('index_key_list', '')
    if index_key_list != '':
        index_key_list = index_key_list.split(";")

        sql_format = "select index_key, index_value from userprofile " + \
            "where username='******' and service_name='%s' and index_key in (%s)"
        sql = sql_format % (username, service_name, ",".join(
            ["'%s'" % (k) for k in index_key_list]))
        print sql
        out = util.query_sql(sql)
        out = util.fill_missing_data(out, index_key_list, '0')
    else:
        sql_format = "select index_key, index_value from userprofile " + \
            "where username='******' and service_name='%s'"
        sql = sql_format % (username, service_name)
        print sql
        out = util.query_sql(sql)
    print out

    content = render_template('get_userprofile.json', objs=out)
    content = util.smarty_remove_extra_comma(content)
    resp = make_response(content, 200)
    resp.headers['Content-type'] = 'application/json; charset=utf-8'
    return resp
예제 #6
0
파일: app.py 프로젝트: jrzb/WechatWoojuu
def api_expense_detail():
	userid = request.args.get('userid', '')
	fromdate = request.args.get('fromdate', '')
	enddate = request.args.get('enddate', '')

	out = Expense.query_obj_by_date(userid, fromdate, enddate)
	content = render_template('list_expense.json', objs=out)
	content = smarty_remove_extra_comma(content)
	return content
예제 #7
0
def api_expense_detail():
    userid = request.args.get('userid', '')
    fromdate = request.args.get('fromdate', '')
    enddate = request.args.get('enddate', '')

    out = Expense.query_obj_by_date(userid, fromdate, enddate)
    content = render_template('list_expense.json', objs=out)
    content = smarty_remove_extra_comma(content)
    return content
예제 #8
0
def get_post():
	# TODO defensive code
	id = request.args.get('id', '')
	post = data.get_post(id)
	content = render_template('get_post.json', post=post)
	content = smarty_remove_extra_comma(content)
	resp = make_response(content, 200)
	resp.headers['Content-type'] = 'application/json; charset=utf-8'
	return resp
예제 #9
0
def _list_index(industry, storeID):
    table_name = get_mongo_tablename(industry, "index")
    table = mongo_conn.dataplatform[doc_name]

    index_list = table.find( {"storeID":storeID}).distinct("name")
    index_str = ', '.join(map(lambda x: "\"%s\"" % x, index_list))
    content = render_template('list_index.json', index_str=index_str)
    content = smarty_remove_extra_comma(content)
    return content
예제 #10
0
def list_user_post():
	# TODO defensive code
	userid = request.args.get('userid', '')
	date = request.args.get('date', '')
	posts = data.list_user_post(userid, date)
	content = render_template('list_user_post.json', posts=posts)
	content = smarty_remove_extra_comma(content)
	resp = make_response(content, 200)
	resp.headers['Content-type'] = 'application/json; charset=utf-8'
	return resp
예제 #11
0
파일: app.py 프로젝트: jrzb/WechatWoojuu
def api_topn_category():
	userid = request.args.get('userid', '')
	limit = request.args.get('limit', '')
	fromdate = request.args.get('fromdate', '')
	enddate = request.args.get('enddate', '')

	sql_format = "select category, sum(amount) as amount from expenses" + \
				 " where userid='%s' and date >='%s' and date<='%s'" + \
				 " group by category order by sum(amount) desc limit %s;"
	sql = sql_format % (userid, fromdate, enddate, limit)
	out = Expense.query_sql(sql)
	content = render_template('topn_category.json', objs=out)
	content = smarty_remove_extra_comma(content)
	return content
예제 #12
0
파일: app.py 프로젝트: jrzb/WechatWoojuu
def api_category_daily():
	userid = request.args.get('userid', '')
	fromdate = request.args.get('fromdate', '')
	enddate = request.args.get('enddate', '')

	sql_format = "select category, left(date, 10), sum(amount) from expenses" + \
				 " where userid='%s' and date >='%s' and date<='%s' group by category, " + \
				 "left(date, 10) order by left(date, 10) asc;"
	sql = sql_format % (userid, fromdate, enddate)

	out = Expense.query_sql(sql)
	content = render_template('category_daily.json', objs=out)
	content = smarty_remove_extra_comma(content)
	return content
예제 #13
0
def api_topn_category():
    userid = request.args.get('userid', '')
    limit = request.args.get('limit', '')
    fromdate = request.args.get('fromdate', '')
    enddate = request.args.get('enddate', '')

    sql_format = "select category, sum(amount) as amount from expenses" + \
        " where userid='%s' and date >='%s' and date<='%s'" + \
        " group by category order by sum(amount) desc limit %s;"
    sql = sql_format % (userid, fromdate, enddate, limit)
    out = Expense.query_sql(sql)
    content = render_template('topn_category.json', objs=out)
    content = smarty_remove_extra_comma(content)
    return content
예제 #14
0
def api_category_daily():
    userid = request.args.get('userid', '')
    fromdate = request.args.get('fromdate', '')
    enddate = request.args.get('enddate', '')

    sql_format = "select category, left(date, 10), sum(amount) from expenses" + \
        " where userid='%s' and date >='%s' and date<='%s' group by category, " + \
        "left(date, 10) order by left(date, 10) asc;"
    sql = sql_format % (userid, fromdate, enddate)

    out = Expense.query_sql(sql)
    content = render_template('category_daily.json', objs=out)
    content = smarty_remove_extra_comma(content)
    return content
예제 #15
0
파일: server.py 프로젝트: jrzb/WechatWoojuu
def get_usertext():
	# TODO defensive code
	username = request.args.get('username')
	service_name = request.args.get('service_name')
	limit = 50 # TODO: remove hard code here
	sql_format = "select createtime, content from usertext " + \
				 "where from_username in ('%s', '%s')  and to_username in ('%s', '%s') order by id desc limit %d;"
	sql = sql_format % (username, service_name, username, service_name, limit)
	print sql
	out = util.query_sql(sql)

	content = render_template('get_usertext.json', objs=out)
	content = util.smarty_remove_extra_comma(content)
	resp = make_response(content, 200)
	resp.headers['Content-type'] = 'application/json; charset=utf-8'
	return resp
예제 #16
0
def get_user_latest_inputtext():
    # TODO defensive code
    service_name = request.args.get('service_name')
    limit = 35  # TODO: remove hard code here
    # "where from_username not in ('obF30jr0VD4HUjUq1kYusd5gSCBo', 'obF30jvBV656EFFzbzFoqMGxPivM') and " + \
    sql_format = "select createtime, from_username, content from usertext " + \
        "where msgid!='' and to_username='******' order by createtime desc limit %d;"
    sql = sql_format % (service_name, limit)
    print sql
    out = util.query_sql(sql)

    content = render_template('get_user_latest_inputtext.json', objs=out)
    content = util.smarty_remove_extra_comma(content)
    resp = make_response(content, 200)
    resp.headers['Content-type'] = 'application/json; charset=utf-8'
    return resp
예제 #17
0
def list_posts_in_topic():
    session.permanent = True # TODO
    # TODO defensive code
    topic = request.args.get('topic', '')
    start_num = request.args.get('start_num', 0)
    count = request.args.get('count', 10)
    sort_method = request.args.get('sort_method', "hotest")
    voteup = request.args.get('voteup', -1)
    votedown = request.args.get('votedown', -1)

    posts = data.list_topic(topic, int(start_num), int(count), int(voteup), int(votedown), sort_method)
    content = render_template('list_posts_in_topic.json', posts=posts)
    content = smarty_remove_extra_comma(content)
    resp = make_response(content, 200)
    resp.headers['Content-type'] = 'application/json; charset=utf-8'
    return resp
예제 #18
0
파일: server.py 프로젝트: jrzb/WechatWoojuu
def get_user_latest_inputtext():
	# TODO defensive code
	service_name = request.args.get('service_name')
	limit = 35 # TODO: remove hard code here
	# "where from_username not in ('obF30jr0VD4HUjUq1kYusd5gSCBo', 'obF30jvBV656EFFzbzFoqMGxPivM') and " + \
	sql_format = "select createtime, from_username, content from usertext " + \
				 "where msgid!='' and to_username='******' order by createtime desc limit %d;"
	sql = sql_format % (service_name, limit)
	print sql
	out = util.query_sql(sql)

	content = render_template('get_user_latest_inputtext.json', objs=out)
	content = util.smarty_remove_extra_comma(content)
	resp = make_response(content, 200)
	resp.headers['Content-type'] = 'application/json; charset=utf-8'
	return resp
예제 #19
0
def get_usertext():
    # TODO defensive code
    username = request.args.get('username')
    service_name = request.args.get('service_name')
    limit = 50  # TODO: remove hard code here
    sql_format = "select createtime, content from usertext " + \
        "where from_username in ('%s', '%s')  and to_username in ('%s', '%s') order by id desc limit %d;"
    sql = sql_format % (username, service_name, username, service_name, limit)
    print sql
    out = util.query_sql(sql)

    content = render_template('get_usertext.json', objs=out)
    content = util.smarty_remove_extra_comma(content)
    resp = make_response(content, 200)
    resp.headers['Content-type'] = 'application/json; charset=utf-8'
    return resp
예제 #20
0
def feedback_post():
    session.permanent = True # TODO
    # TODO defensive code
    data = request.form
    uid = data["uid"]
    postid = data["postid"]
    category = data["category"]
    comment = data["comment"]
    clientip = request.remote_addr
    handle_feedback(uid, category, postid, comment, clientip)

    status="ok"
    errmsg=""
    content = render_template('feedback_post.json', status=status, errmsg=errmsg)
    content = smarty_remove_extra_comma(content)
    resp = make_response(content, 200)
    resp.headers['Content-type'] = 'application/json; charset=utf-8'
    return resp
예제 #21
0
def _query_index(industry, storeID, key, para1):
    collection = mongo_conn.dataplatform
    table_name = get_mongo_table(industry, "index")
    table = collection[table_name]
    key_name = 'pageID' # TODO
        
    # TODO
    pipeline = [{'$match':{'storeID':storeID, key_name:para1, 'name':key}},
                {'$group':{'_id':'$'+key_name,'value':{'$sum':'$value'}}}]

    json_data = collection.command('aggregate', table_name, pipeline=pipeline)
    result = json_data['result']

    if len(result) != 1:
        status = "error"
        value = "-1"
    else:
        status = "ok"
        value = result[0]['value']

    content = render_template('query_index.json', status=status, value=value)
    content = smarty_remove_extra_comma(content)
    return content
예제 #22
0
파일: app.py 프로젝트: jrzb/WechatWoojuu
def api_summary_daily():
	userid = request.args.get('userid', '')
	fromdate = request.args.get('fromdate', '')
	enddate = request.args.get('enddate', '')

	sql_format = "select left(date, 10), sum(amount) from expenses" + \
				 " where userid='%s' and date >='%s' and date<='%s' group by left(date, 10) order by left(date, 10) asc;"
	sql = sql_format % (userid, fromdate, enddate)

	out = Expense.query_sql(sql)

	date_list = util.get_date_list(fromdate, enddate)
	date_dict = {}
	for date in date_list:
		date_dict[date] = "0"

	for entry in out:
		date_dict[entry[0]] = entry[1]

	key_list = sorted(date_dict.keys())

	content = render_template('summary_daily.json', key_list=key_list, date_dict=date_dict)
	content = smarty_remove_extra_comma(content)
	return content