Пример #1
0
def group_list(token):
    response = '{"group_list":[]}'
    groups = ""
    openseed = mysql.connector.connect(host="localhost",
                                       user=settings["dbuser"],
                                       password=settings["dbpassword"],
                                       database="openseed")
    mycursor = openseed.cursor()
    owner = json.loads(Account.user_from_id(token))["user"]
    find = "SELECT title,allowed,denied FROM `groups` WHERE `owner` = %s OR `allowed` LIKE % %s %"
    mycursor.execute(find)
    results = mycursor.fetchall()
    for group in results:
        if groups == "":
            groups += '{"group":"title":"' + group[0] + '","allowed":[' + group[
                1] + '],"denied":[' + group[2] + ']}'
        else:
            groups += ',{"group":"title":"' + group[
                0] + '","allowed":[' + group[1] + '],"denied":[' + group[
                    2] + ']}'
    response = '{"group_list":[' + groups + ']}'

    openseed.commit()
    mycursor.close()
    openseed.close()

    return response
Пример #2
0
def like_post(token, author, post, percent=30):
    w.unlock(fix_thy_self, user_passphrase=settings["passphrase"])
    print("voting on ", post)
    poster = token
    if token != who:
        poster = json.loads(Account.user_from_id(token))["hive"]
    print("as ", poster)
    print("at ", percent)
    already_voted = -1
    # Gets votes on the post
    result = h.get_active_votes(author, post)
    if result and poster != None and poster != "":
        # We run through the votes to make sure we haven't already voted on this post
        for vote in result:
            if vote['voter'] == poster:
                already_voted = 1
                break
            else:
                already_voted = 0

        if already_voted == 0:
            identifier = ('@' + author + '/' + post)
            h.commit.vote(identifier, float(percent), poster)
            return ('{"liked_hive_post":{"response":"voted","weight":' +
                    str(percent) + ',"post":"' + post + '"}}')
        else:
            return (
                '{"liked_hive_post":{"response":"already voted","weight":"error","post":"'
                + post + '"}}')

        return (
            '{"liked_hive_post":{"response":"error","weight":"error","post":"error"}}'
        )
Пример #3
0
def send_chat(userid,chatroom,data,appPub):
	response = '{"chat_response":{"speaker":"server","message":"denied"}}'
	roomInfo = find_chatroom(chatroom)
	theRoom = roomInfo[0]
	if len(theRoom) > 3:
		username = json.loads(Account.user_from_id(userid))["user"]
		if username and username != None and username != "none":
			response = '{"chat_response":{"speaker":"server","message":"No data"}}'
			openseed = mysql.connector.connect(
				host = "localhost",
				user = settings["dbuser"],
				password = settings["dbpassword"],
				database = "openseed"
			)
			mysearch = openseed.cursor()
			if len(data) > 0:
				chat = "INSERT INTO chat (room,title,attendees,record,speaker,appPub) VALUES (%s,%s,%s,%s,%s,%s)"
				val1 = (theRoom,roomInfo[1],roomInfo[2],data,username,appPub)
				mysearch.execute(chat,val1)
				openseed.commit()
				mysearch.close()
				openseed.close()
				response = '{"chat_response":{"speaker":"'+username+'","room":"'+theRoom+'","message":"received"}}'
		else:
			response = '{"chat_response":{"speaker":"server","message":"couldn\'t determine speaker"}}'
	else:
		response = '{"chat_response":{"speaker":"server","message":"no room found at '+chatroom+'"}}'

	return response
Пример #4
0
def request_status(token, account):
    status = '{"request":"denied"}'
    jsoned = status
    openseed = mysql.connector.connect(host="localhost",
                                       user="******",
                                       password="******",
                                       database="openseed")
    mysearch = openseed.cursor()
    username = json.loads(Account.user_from_id(token))["user"]
    search = "SELECT * FROM connections WHERE userid1 = %s AND userid2 = %s"
    val1 = (username, account)
    val2 = (account, username)
    mysearch.execute(search, val1)
    result1 = mysearch.fetchall()
    mysearch.execute(search, val2)
    result2 = mysearch.fetchall()
    if len(result1) == 1:
        status = result1[0]
    elif len(result2) == 1:
        status = result2[0]
    thestate = "pending"
    if status[4] == 0:
        thestate = "denied"
    if status[4] == 1:
        thestate = "pending"
    if status[4] == 2:
        thestate = "accepted"

    jsoned = '{"request":"' + thestate + '","account":"' + account + '"}'

    mysearch.close()
    openseed.close()

    return '{"request_status":' + jsoned + '}'
Пример #5
0
def get_chat(token,chatroom,last):
	chat = '{"chat":{"speaker":"server","room":"'+chatroom+'","message":"none","index":"-1"}}'
	jsoned = chat
	room = ""
	index1 = 0
	status1 = ""
	username = json.loads(Account.user_from_id(token))["user"]
	openseed = mysql.connector.connect(
		host = "localhost",
		user = settings["dbuser"],
		password = settings["dbpassword"],
		database = "openseed"
		)
	mysearch = openseed.cursor()
	search = "SELECT Id,record,attendees,date,speaker,appPub FROM chat WHERE room = %s AND Id > %s ORDER BY Id ASC"
	val1 = (chatroom,str(last))
	mysearch.execute(search,val1)
	result1 = mysearch.fetchall()
	if len(result1) != 0:
		status1 = result1[0][1]
		index1 = result1[0][0]
		jsoned = '{"chat":{"speaker":"'+str(result1[0][4])+'","room":"'+chatroom+'","message":"'+status1.decode()+'","index":"'+str(index1)+'","appPub":"'+str(result1[0][5])+'","date":"'+str(result1[0][3])+'"}}'
	mysearch.close()
	openseed.close() 

	if status1 != None:
		chat = jsoned 
	else:
		chat = '{chat:{"speaker":"server","room":"'+chatroom+'","message":"none","index":"-1"}}'
	return chat	
Пример #6
0
def get_chat_history(userid,room,count,last):
	history = []
	response = '{"chat_history":[]}'
	username = json.loads(Account.user_from_id(userid))["user"]

	if room:
		jsoned = ""
		openseed = mysql.connector.connect(
			host = "localhost",
			user = settings["dbuser"],
			password = settings["dbpassword"],
			database = "openseed"
		)
		mysearch = openseed.cursor()
		search = "SELECT Id,record,attendees,date,speaker FROM chat WHERE room = %s AND Id > %s ORDER BY Id DESC LIMIT "+count
		val1 = (room,str(last))
		mysearch.execute(search,val1)
		result1 = mysearch.fetchall()
		for message in result1:
			status1 = message[1]
			index1 = message[0]
			if jsoned == "":
				jsoned = '{"speaker":"'+str(message[4])+'","room":"'+room+'","message":"'+status1.decode()+'","index":"'+str(index1)+'","date":"'+str(message[3])+'"}'
			else:
				jsoned = '{"speaker":"'+str(message[4])+'","room":"'+room+'","message":"'+status1.decode()+'","index":"'+str(index1)+'","date":"'+str(message[3])+'"},'+jsoned

		response = '{"chat_history":['+jsoned+"]}"
		
	return response
Пример #7
0
def get_conversations(token):
	chatlist = ""
	convolist = []
	openseed = mysql.connector.connect(
		host = "localhost",
		user = settings["dbuser"],
		password = settings["dbpassword"],
		database = "openseed"
		)
	username = json.loads(Account.user_from_id(token))["user"]
	mysearch = openseed.cursor()
	chat = "SELECT room,attendees,title,id FROM chat WHERE attendees LIKE %s ORDER BY Id DESC"
	val1 = ("%"+username+"%",)
	mysearch.execute(chat,val1)
	chat_result = mysearch.fetchall()
	rooms = "SELECT room,attendees,title,count FROM chatrooms WHERE attendees LIKE %s ORDER BY count DESC"
	val2 = ("%"+username+"%",)
	mysearch.execute(rooms,val2)
	room_result = mysearch.fetchall()
	
	for c in chat_result:
		if convolist.count != 0:
			if str(c[0]) not in convolist:
				convolist.append(str(c[0]))
				if chatlist != "":
					chatlist = chatlist+',{"room":"'+str(c[0])+'","attendees":"'+str(c[1])+'","title":"'+str(c[2])+'","index":'+str(c[3])+'}'
				else:
					chatlist = '{"room":"'+str(c[0])+'","attendees":"'+str(c[1])+'","title":"'+str(c[2])+'","index":'+str(c[3])+'}'
		else:
			convolist.append(str(c[0]))
			if chatlist != "":
				chatlist = chatlist+',{"room":"'+str(c[0])+'","attendees":"'+str(c[1])+'","title":"'+str(c[2])+'","index":'+str(c[3])+'}'
			else:
				chatlist = '{"room":"'+str(c[0])+'","attendees":"'+str(c[1])+'","title":"'+str(c[2])+'","index":'+str(c[3])+'}'
	
	for r in room_result:
		if convolist.count != 0:
			if str(r[0]) not in convolist:
				convolist.append(str(r[0]))
				if chatlist != "":
					chatlist = chatlist+',{"room":"'+str(r[0])+'","attendees":"'+str(r[1])+'","title":"'+str(r[2])+'","index":'+str(r[3])+'}'
				else:
					chatlist = '{"room":"'+str(r[0])+'","attendees":"'+str(r[1])+'","title":"'+str(r[2])+'","index":'+str(r[3])+'}'
		else:
			convolist.append(str(r[0]))
			if chatlist != "":
				chatlist = chatlist+',{"room":"'+str(r[0])+'","attendees":"'+str(r[1])+'","title":"'+str(r[2])+'","index":'+str(r[3])+'}'
			else:
				chatlist = '{"room":"'+str(r[0])+'","attendees":"'+str(r[1])+'","title":"'+str(r[2])+'","index":'+str(r[3])+'}'

	mysearch.close()
	openseed.close()

	return '{"conversations":['+chatlist+']}'
Пример #8
0
def post_comment(token, author, post, body):
    w.unlock(fix_thy_self, user_passphrase=settings["passphrase"])
    response = '{"hive_comment":{"response":"error","post":"error"}}'
    print("commenting on ", post)
    poster = token
    if token != who:
        poster = json.loads(Account.user_from_id(token))["hive"]
    if poster == None or poster == "":
        poster = who
        body += "\n " + json.loads(
            Account.user_from_id(token))["user"] + " on ODESI"
    reply_identifier = '/'.join([author, post])
    print(reply_identifier)
    h.commit.post(title='',
                  body=body,
                  author=poster,
                  permlink='',
                  reply_identifier=reply_identifier)
    response = '{"hive_comment":{"response":"added","post":"' + post + '"}}'
    return response
Пример #9
0
def get_requests(token, count):
    requests = ""
    openseed = mysql.connector.connect(host="localhost",
                                       user=settings["dbuser"],
                                       password=settings["dbpassword"],
                                       database="openseed")
    username = json.loads(Account.user_from_id(token))["user"]
    mysearch = openseed.cursor()
    search = "SELECT * FROM connections WHERE userid2 = %s AND response = 1 LIMIT " + str(
        count)
    val = (username, )
    mysearch.execute(search, val)
    result = mysearch.fetchall()
    if len(result) > 0:
        for a in result:
            theresponse = "pending"
            thetype = "chat"
            if a[4] == 0:
                theresponse = "denied"
            if a[4] == 1:
                theresponse = "pending"
            if a[4] == 2:
                theresponse = "accepted"

            if a[3] == 1:
                thetype = "chat"
            if a[3] == 2:
                thetype = "group"

            if requests == "":
                requests = '{"request":"' + str(a[0]) + '","from":"' + str(
                    a[1]
                ) + '","type":"' + thetype + '","response":"' + theresponse + '"}'
            else:
                requests = requests + ',{"request":"' + str(
                    a[0]
                ) + '","from":"' + str(
                    a[1]
                ) + '","type":"' + thetype + '","response":"' + theresponse + '"}'
    else:
        requests = '{"request":"none"}'

    mysearch.close()
    openseed.close()

    return '{"requests":[' + str(requests) + ']}'
Пример #10
0
def delete_group(token, title, appPub):
    response = '{deleted_group:{"error":"not the owner"}}'
    openseed = mysql.connector.connect(host="localhost",
                                       user=settings["dbuser"],
                                       password=settings["dbpassword"],
                                       database="openseed")
    username = json.loads(Account.user_from_id(token))["user"]
    if Account.check_db(title, "groups") != 1:
        mycursor = openseed.cursor()
        sql = "DELETE FROM `groups` WHERE title = %s AND owner = %s"
        val = (title, username)

    openseed.commit()
    mycursor.close()
    openseed.close()

    return response
Пример #11
0
def get_key(thetype, register, room):
    result = ""
    #cleanroom = room.split("[")[1].split("]")[0]
    #wharoom = cleanroom.split(",")[0]+', '+cleanroom.split(",")[1]
    #reverseroom = cleanroom.split(",")[1]+', '+cleanroom.split(",")[0]
    reg = ""
    code = ""
    openseed = mysql.connector.connect(host="localhost",
                                       user=settings["dbuser"],
                                       password=settings["dbpassword"],
                                       database="openseed")
    mysearch = openseed.cursor()
    check = "SELECT registered,code,validusers FROM onetime WHERE room = %s AND type = %s"
    val1 = (room, thetype)
    #val2 = (reverseroom,thetype)
    mysearch.execute(check, val1)
    result1 = mysearch.fetchall()
    #mysearch.execute(check,val2)
    #result2 = mysearch.fetchall()
    if len(result1) == 1:
        result = result1
    #elif len(result2) == 1:
    #	result = result2
    else:
        result = 0

    if result != 0:
        validusers = result[0][2]
        vuser = json.loads(Account.user_from_id(register))["user"]

        if validusers.find(vuser) != -1:
            if len(result1) == 1:
                reg = result[0][0]
            if reg != register:
                code = '{"room":"' + room + '","key":"' + result[0][1] + '"}'
            else:
                code = '{"room":"' + room + '","key":"' + result[0][1] + '"}'
        else:
            code = '{"room":"denied","key":"denied"}'
    else:
        code = '{"room":"denied","key":"denied"}'

    openseed.commit()
    mysearch.close()
    openseed.close()
    return '{"lock":' + str(code) + '}'
Пример #12
0
def import_profile(token, hiveaccount):

    openseed = json.loads(
        "{" +
        Account.get_profile(json.loads(Account.user_from_id(token))["user"]) +
        '}')

    od1 = openseed["profile"]["openseed"]
    od2 = openseed["profile"]["extended"]
    banner = ""
    profile_image = ""
    name = od1["name"]
    if "banner" in od2:
        banner = od2["banner"]
    if "profile_img" in od2:
        profile_image = od2["profile_img"]
    about = od2["about"]
    email = od1["email"]
    phone = od1["phone"]
    profession = od1["profession"]
    company = od1["company"]

    hive = json.loads(get_account(hiveaccount))
    pfile = ""
    if "profile" in hive:
        pfile = hive["profile"]
    if "app" in hive:
        pfile = hive["app"]["profile"]

    if "name" in pfile:
        name = pfile["name"]
    if "about" in pfile:
        about = pfile["about"]
    if "profile_image" in pfile:
        profile_image = pfile["profile_image"]
    if "cover_image" in pfile:
        banner = pfile["cover_image"]

    data1 = '{"name":"' + name + '","email":"' + email + '","phone":"' + phone + '","profession":"' + profession + '","company":"' + company + '"}'
    data2 = '{"about":"' + about + '","profile_img":"' + profile_image + '","banner":"' + banner + '"}'

    Account.set_profile(token, data1, data2, "", "", "", 1)

    return
Пример #13
0
def create_group(token, title, allowed, denied, appPub):
    openseed = mysql.connector.connect(host="localhost",
                                       user=settings["dbuser"],
                                       password=settings["dbpassword"],
                                       database="openseed")
    username = json.loads(Account.user_from_id(token))["user"]
    if Account.check_db(title, "groups") != 1:
        mycursor = openseed.cursor()

        findlast = "SELECT token FROM `user_tokens` WHERE 1 LIMIT 1"
        mycursor.execute(findlast)
        lasttoken = mycursor.fetchall()
        newid = ""
        if len(lasttoken) <= 0:
            newid = Seed.crypt_key()
        else:
            newid = lasttoken[0][0]

        uid = Seed.generate_usertoken(newid)
        sql = "INSERT INTO `groups` (`id`,`title`,`owner`,`allowed`,`denied`,`permissions`) VALUES (%s,%s,%s,%s,%s,%s)"
        val = (str(uid), str(title), str(username), str(allowed), str(denied),
               str('{"admin":"' + str(username) + '"}'))
        mycursor.execute(sql, val)

        utokens = "INSERT INTO `user_tokens` (`token`,`username`) VALUES (%s,%s)"
        utoken_vals = (str(uid), str(title))
        mycursor.execute(utokens, utoken_vals)

        openseed.commit()
        mycursor.close()
        openseed.close()

        email = "*****@*****.**"
        pfile = create_default_profile(uid, name, email)
        for a in allowed:
            Connections.connection_request(uid, a, 2, "request", appPub)
        for d in denied:
            Connections.connection_request(uid, d, 2, "denied", appPub)

        return '{"group":{"token":"' + uid + '","title":"' + name + '","allowed":[' + allowed + '],"denied":[' + denied + ']}}'
    else:
        return '{"group":{"title":"exists"}}'
Пример #14
0
def find_attendees(token,userlist,create,appPub):
	room = ""
	title = ""
	found = ""
	username = json.loads(Account.user_from_id(token))["user"]
	openseed = mysql.connector.connect(
		host = "localhost",
		user = settings["dbuser"],
		password = settings["dbpassword"],
		database = "openseed"
		)
	mysearch = openseed.cursor()
	search = "SELECT room,title,attendees FROM chatrooms WHERE attendees LIKE %s"
	vals = ("%"+username+"%",)
	mysearch.execute(search,vals)
	result = mysearch.fetchall()
	mysearch.close()
	openseed.close() 
	
	for room in result:
		members = room[2].split(",")
		checkfor = userlist.split(",")
		
		for m in checkfor:
			if m in members:
				members.remove(m)

		if len(members) == 0:
			found = room
			break
	if found == "":
		if int(create) == 1 and len(userlist.split(",")) == 2:
			return create_chatroom(token,"chat",userlist,appPub)
	else:
		key = Seed.get_room_key(token,found[0])
		if key != "":
			output = '{"type":"server","room":"'+found[0]+'","title":"'+found[1]+'","key":"'+key+'"}'
		else:
			output = '{"type":"server","room":"'+found[0]+'","title":"'+found[1]+'","key":"error"}'

		return output
Пример #15
0
def get_room_key(token, room):
    reg = ""
    code = ""
    openseed = mysql.connector.connect(host="localhost",
                                       user=settings["dbuser"],
                                       password=settings["dbpassword"],
                                       database="openseed")
    mysearch = openseed.cursor()
    username = json.loads(Account.user_from_id(token))["user"]
    check = "SELECT code FROM onetime WHERE validusers LIKE %s AND room = %s"
    val1 = ("%" + username + "%", room)
    mysearch.execute(check, val1)
    result = mysearch.fetchall()
    if len(result) == 1:
        code = result[0][0]

    openseed.commit()
    mysearch.close()
    openseed.close()

    return str(code)
Пример #16
0
def update_key(thetype, register, validusers):
    reg = ""
    code = ""
    openseed = mysql.connector.connect(host="localhost",
                                       user=settings["dbuser"],
                                       password=settings["dbpassword"],
                                       database="openseed")
    mysearch = openseed.cursor()
    check = "SELECT registered,code FROM onetime WHERE validusers = %s AND type = %s"
    val1 = (validusers, thetype)
    val2 = (validusers.split(",")[1] + "," + validusers.split(",")[0], thetype)
    mysearch.execute(check, val1)
    result1 = mysearch.fetchall()
    mysearch.execute(check, val2)
    result2 = mysearch.fetchall()

    if validusers.find(Account.user_from_id(register)) != -1:
        if len(result1) == 1:
            reg = result1[0][0].decode()

            if reg != register:
                code = result1[0][1].decode()
            else:
                code = result1[0][1].decode()

        if len(result2) == 1:
            reg = result2[0][0].decode()

            if reg != register:
                code = result2[0][1].decode()
            else:
                code = result2[0][1].decode()
    else:
        code = "denied"

    openseed.commit()
    mysearch.close()
    openseed.close()

    return str(code)
Пример #17
0
def del_user_from_group(token, title, user):
    response = '{"group_del":{"user":"******"}}'
    openseed = mysql.connector.connect(host="localhost",
                                       user=settings["dbuser"],
                                       password=settings["dbpassword"],
                                       database="openseed")
    if Account.check_db(title, "groups") == 1:
        mycursor = openseed.cursor()
        owner = json.loads(Account.user_from_id(token))["user"]
        find = "SELECT allowed,denied FROM `groups` WHERE `title` = %s AND `owner` = %s"
        vals = (
            title,
            owner,
        )
        mycursor.execute(find, vals)
        results = mycursor.fetchall()[0]
        allowed = results[0]
        denied = results[1]
        newallowed = []

        for a in denied.split(","):
            if user == a:
                response = '{"group_del":{"user":"******"}}'
                break

        for d in allowed.split(","):
            if user != d:
                newallowed.append(d)

        adding = "UPDATE groups SET allowed = %s, denied = %s WHERE owner = %s AND title = %s"
        vals = (newallowed.join(","), denied + "," + user, owner, title)
        mycursour.execute(adding, vals)
        response = '{"group_del":{"user":"******"}}'

    openseed.commit()
    mycursor.close()
    openseed.close()

    return response
Пример #18
0
def create_chatroom(creator,title,userlist,appPub):
		openseed = mysql.connector.connect(
			host = "localhost",
			user = settings["dbuser"],
			password = settings["dbpassword"],
			database = "openseed"
			)
		room = Seed.generate_publicid(userlist+creator+title)
		chatcreator = openseed.cursor()
		newchat = "INSERT INTO chat (room,title,attendees,record,speaker,appPub) VALUES (%s,%s,%s,%s,'server',%s)"
		vals = (room,title,userlist,'new',appPub)
		chatcreator.execute(newchat,vals)
		newroom = "INSERT INTO chatrooms (creator,title,attendees,room) VALUES (%s,%s,%s,%s)"
		room_vals = (creator,title,userlist,room)
		chatcreator.execute(newroom,room_vals)
		openseed.commit()
		chatcreator.close()	
		openseed.close()
		username= json.loads(Account.user_from_id(creator))["user"]
		newkey = Seed.store_onetime(1,username,userlist,room)
	
		return '{"type":"server","room":"'+room+'","title":"'+title+'","key":"'+newkey+'"}'
Пример #19
0
def check_chat(userid,room):
	openseed = mysql.connector.connect(
		host = "localhost",
		user = settings["dbuser"],
		password = settings["dbpassword"],
		database = "openseed"
		)
	username = json.loads(Account.user_from_id(userid))["user"]
	mysearch = openseed.cursor()
	check = "SELECT Id FROM chat WHERE room = %s"
	val1 = (room.split("[")[1].split("]")[0],)
	val2 = (room.split("[")[1].split("]")[0],)
	mysearch.execute(check,val1)
	result1 = len(mysearch.fetchall())
	mysearch.execute(check,val2)
	result2 = len(mysearch.fetchall())
	mysearch.close()
	openseed.close()
	# Below are the 3 states that any chat can be in. 
	# 0 = No key No chat 
	# 1 = Key exists but not chat has started and registration is open
	# 2 = Key exists and Chat has started but registration is open
	# 3 = Chat exists and has started but registration is closed
	if result1 > 0:
		if check_onetime(username,room) == 1:
			return 2
		else:
			return 3
	elif result2 > 0:
		if check_onetime(username,room) == 1:
			return 2
		else:
			return 3
	else:
		if check_onetime(username,room) == 1:
			return 1
		else:
   			return 0
Пример #20
0
def connection_request(token, requestee, thetype, response, appPub):
    output = '{"request":"error"}'
    theresponse = 1
    openseed = mysql.connector.connect(host="localhost",
                                       user=settings["dbuser"],
                                       password=settings["dbpassword"],
                                       database="openseed")
    if response == "request":
        theresponse = 1
    if response == "accept":
        theresponse = 2
    if response == "denied":
        theresponse = 0

    username = json.loads(Account.user_from_id(token))["user"]
    if username != "none":
        request_search = openseed.cursor()
        search = "SELECT * FROM `connections` WHERE userid1 LIKE %s AND userid2 LIKE %s"
        vals_1 = (username, requestee)
        vals_2 = (requestee, username)
        request_search.execute(search, vals_1)
        exists_1 = request_search.fetchall()
        request_search.execute(search, vals_2)
        exists_2 = request_search.fetchall()

        # Checks to see if the request is already accepted
        if len(exists_1) == 1 and exists_1[0][4] == 2 and theresponse != 0:
            output = '{"request":"accepted","to":"' + requestee + '","from":"' + username + '"}'
        elif len(exists_2) == 1 and exists_2[0][4] == 2 and theresponse != 0:
            output = '{"request":"accepted","to":"' + requestee + '","from":"' + username + '"}'

        # Checks to see if the request is already denied
        elif len(exists_1) == 1 and exists_1[0][4] == 0:
            output = '{"request":"denied","to":"' + requestee + '","from":"' + username + '"}'
        elif len(exists_2) == 1 and exists_2[0][4] == 0:
            output = '{"request":"denied","to":"' + requestee + '","from":"' + username + '"}'

        # Checks to see if there is no request either direction
        elif len(exists_1) != 1 and len(exists_2) != 1 and theresponse != 0:
            insert = "INSERT INTO `connections` (`userid1`,`userid2`,`response`) VALUES  (%s,%s,%s)"
            values = (username, requestee, theresponse)
            request_search.execute(insert, values)
            openseed.commit()
            output = '{"request":"sent","to":"' + requestee + '","from":"' + username + '"}'

        # checks to see if the second user has sent a request to the first and auto connects users.
        elif len(exists_2) == 1 and int(theresponse) == 1 and theresponse != 0:
            update = "UPDATE `connections` SET `response` = %s WHERE userid1 LIKE %s AND userid2 LIKE %s"
            values = ("2", requestee, username)
            request_search.execute(update, values)
            openseed.commit()
            chatroom = Chat.find_attendees(token, requestee + "," + username,
                                           1, appPub)
            output = '{"request":"accepted","room":' + chatroom + '}'

        # disallows user from create a second request or updating their own request to others.
        elif len(exists_1) == 1 and int(theresponse) != 0:
            output = '{"request":"exists","to":"' + requestee + '","from":"' + username + '"}'

        # Allow users to disconnect from others or cancel request.
        elif len(exists_1) == 1 and int(theresponse) == 0:
            update = "UPDATE `connections` SET `response` = %s WHERE userid1 LIKE %s AND userid2 LIKE %s"
            values = ("0", username, requestee)
            request_search.execute(update, values)
            openseed.commit()
            output = '{"request":"denied","to":"' + requestee + '","from":"' + username + '"}'

        elif len(exists_2) == 1 and int(theresponse) == 0:
            update = "UPDATE `connections` SET `response` = %s WHERE userid1 LIKE %s AND userid2 LIKE %s"
            values = ("0", requestee, username)
            request_search.execute(update, values)
            openseed.commit()
            output = '{"request":"denied","to":"' + requestee + '","from":"' + username + '"}'

        request_search.close()
        openseed.close()
    else:
        output = '{"request":"error","log":"bad token"}'

    return output