Ejemplo n.º 1
0
def main():
    port = 3500

    print("creating socket feed")
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    print("socket created feed")

    print("binding socket feed")
    s.bind(('',port))
    print("socket binded feed")

    s.listen(4)
    print("server started listening feed")

    while True:
        try:
            c,add = s.accept()
            print("client connected")

            print("receiving user id")
            user_id = c.recv(4096).decode('utf-8')
            print("id received")

            print("processing request")
            image_names = get_image_names(user_id)
            images_time = get_image_time(image_names)
            images = [convert_to_bytes.convert_image(PilImage.open(image)) for image in image_names]
            details = list(get_user_details(user_id,image_names))
            thumbnails = get_feed_thumbnails(details[2])
            thumbnails = [convert_to_bytes.convert_image(PilImage.open(thumbnail)) for thumbnail in thumbnails]
            details.insert(0,thumbnails)
            details.insert(0,image_names)
            details.append(images_time)
            details.append(images)
            print("done processing")

        
            print("sending details")
            with open(f'feed_user{add}.pickle','wb') as f:
                pickle.dump(details,f)
            with open(f"feed_user{add}.pickle",'rb') as f:
                data = f.read(4096)
                while data:
                    c.send(data)
                    data = f.read(4096)
                c.send("no more data".encode())
            os.remove(f'feed_user{add}.pickle')
            print("sent")

        
        except Exception as e:
            print('server_feed raised exception :',end = ' ')
            print(e)
            print('traceback for above feed error')
            traceback.print_exc()
            break
        c.close()
    
    s.close()
Ejemplo n.º 2
0
def get_propic_and_thumbnail(person_id):
    conn_scout = sqlite3.connect('copro.db')
    cursor_scout = conn_scout.cursor()

    with conn_scout:
        cursor_scout.execute("""SELECT propic,feed_thumbnail FROM accounts
                    WHERE id = (:person_id)""",{
                    "person_id":person_id
                    })
        propic,thumbnail = cursor_scout.fetchone()
        propic,thumbnail = PilImage.open(propic),PilImage.open(thumbnail)
    
    return convert_to_bytes.convert_image([propic,thumbnail])
Ejemplo n.º 3
0
def get_images(images_name,user_id):
    os.chdir(f"account_user{user_id}")
    images = [convert_to_bytes.convert_image(PilImage.open(image_name)) for image_name in images_name]
    os.chdir("..")
    return images
Ejemplo n.º 4
0
def main():
    port = 2500

    print("creating scoket")
    with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
        print("socket login created")

        print("binding socket login")
        s.bind(('', port))
        print("socket login binded")

        s.listen(4)
        print("server started listening")

        while True:
            try:
                c, add = s.accept()
                print("client accepted")

                print("receiving login details")
                login_details = pickle.loads(c.recv(4096))
                print("received")

                return_status = login(login_details[0], login_details[1])

                print("sending return status")
                if return_status == 0 or return_status == 1:
                    c.sendall(pickle.dumps(return_status))

                else:
                    user_id = return_status["id"]

                    propic = PilImage.open(
                        f"account_user{user_id}/profile_pic_user{user_id}/propic.jpg"
                    )
                    thumbnail = PilImage.open(
                        f"account_user{user_id}/thumbnail_user{user_id}/thumbnail.jpg"
                    )

                    propic_bytes = convert_to_bytes.convert_image(propic)
                    thumbnail_bytes = convert_to_bytes.convert_image(thumbnail)

                    return_status.update({"propic": propic_bytes})
                    return_status.update({"thumbnail": thumbnail_bytes})

                    with open("data_login.pickle", 'wb') as f:
                        pickle.dump(return_status, f)

                    with open("data_login.pickle", 'rb') as f:
                        data = f.read(4096000)
                        while data:
                            c.sendall(data)
                            data = f.read(4096000)
                    os.remove('data_login.pickle')
                print("sent")

            except Exception as e:
                print('server_login raised exception :', end=' ')
                print(e)
                print('traceback for above login error')
                traceback.print_exc()
                break

            c.close()
Ejemplo n.º 5
0
def main():
    port = 5000

    print('creating socket')
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    print('socket created')

    print('binding socket')
    s.bind(('', port))
    print('socket binded')

    s.listen(4)
    print("listening")

    while True:

        try:
            c, add = s.accept()
            print("client connected")

            print("receiving flag")
            flag = c.recv(4096)
            if flag == 'search'.encode():
                c.sendall("flag received by client".encode())
                print('flag recieved')

                print('receiving details')
                details = pickle.loads(c.recv(4096))
                print('details received')

                print("processing request")
                detail, user_id = details
                search_result, friend_list, sent = search(detail, user_id)
                thumbnails = [
                    PilImage.open(result[3]) for result in search_result
                ]
                thumbnails = convert_to_bytes.convert_image(thumbnails)
                search_result = [list(result) for result in search_result]
                for thumbnail, result in zip(thumbnails, search_result):
                    result[3] = thumbnail
                info = [search_result, friend_list, sent]
                print("done")

                print("sending information")
                with open(f'result_search{add}.pickle', 'wb') as f:
                    pickle.dump(info, f)
                with open(f'result_search{add}.pickle', 'rb') as f:
                    data = f.read(4096)
                    while data:
                        c.sendall(data)
                        data = f.read(4096)
                    c.sendall(b'no more data')
                os.remove(f'result_search{add}.pickle')
                print("sent")

            elif flag == 'send req'.encode():
                c.sendall("flag received by client".encode())
                print('flag recieved')

                print('receiving details')
                sender_id, receiver_id = pickle.loads(c.recv(4096))
                c.send('received by server'.encode())
                print('received')

                send_req(sender_id, receiver_id)
                print('req sent')

        except Exception as e:
            print('server_search raised exception :', end=' ')
            print(e)
            print('traceback for above search error')
            traceback.print_exc()
            break
        c.close()
    s.close()
Ejemplo n.º 6
0
def main():

    port = 5500

    print('creating socket friend')
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    print('socket friend created')

    print("binding socket friend")
    s.bind(('', port))
    print('socket friend binded')

    s.listen(4)
    print('socket started listening')

    while True:
        try:
            c, add = s.accept()
            print('connected to client')

            print("receiving flag")
            flag = c.recv(4096).decode('utf-8')

            if flag == "fetch":
                c.send(b'flag received by server')
                print('received')

                print('receiving user id')
                user_id = c.recv(4096).decode('utf-8')
                c.send('id received by server'.encode())
                print('received')

                print('processing request')
                req_list = fetch_req(user_id)
                thumbnails = [
                    PilImage.open(requests.split(' ')[3])
                    for requests in req_list if requests != ''
                ]
                thumbnails = convert_to_bytes.convert_image(thumbnails)
                print("processed")

                print("sending requests")
                requests_info = [req_list, thumbnails]
                with open(f'requests_friend{add}.pickle', 'wb') as f:
                    pickle.dump(requests_info, f)
                with open(f'requests_friend{add}.pickle', 'rb') as f:
                    data = f.read(4096)
                    while data:
                        c.sendall(data)
                        data = f.read(4096)
                    c.sendall(b'no more data')
                os.remove(f'requests_friend{add}.pickle')
                print("sent")

            elif flag == 'reject':
                c.send(b'flag received by server')
                print('received')

                print('receiving details')
                user_id, new_req_list, requester_id = pickle.loads(
                    c.recv(4096))
                reject(user_id, new_req_list, requester_id)

            elif flag == 'accept':
                c.send(b'flag received by server')
                print('received')

                print('receiving details')
                requester_id, new_req_list, user_id = pickle.loads(
                    c.recv(4096))
                accept(requester_id, new_req_list, user_id)

        except Exception as e:
            print('server_friend raised exception :', end=' ')
            print(e)
            print('traceback for above server_friend error')
            traceback.print_exc()
            break
        c.close()

    s.close()
Ejemplo n.º 7
0
def main():
    port = 3000

    print("creating socket")
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    print("socket created")

    print("binding socket")
    s.bind(('', port))
    print("binding complete")

    s.listen(4)
    print("started listening")

    while True:
        try:
            c, add = s.accept()

            print("receiving flag")
            flag = c.recv(4096).decode('utf-8')
            print("received")

            if flag == 'settings':
                c.sendall('received by server'.encode())

                print("receiving details")
                details = pickle.loads(c.recv(409600))
                print("received")

                print("making changs")
                return_value = account_settings(details[0], details[1],
                                                details[2])
                print("done")

                print("sending return values")
                c.sendall(pickle.dumps(return_value))

            elif flag == 'propic':
                print('receiving propic')
                with open(f'image_propic.pickle_user{add}', 'wb') as f:
                    data = c.recv(4096)
                    while True:
                        if data.endswith(b'no more data'):
                            data = data.split(b'no more data')[0]
                            f.write(data)
                            break
                        f.write(data)
                        data = c.recv(4096)
                with open(f'image_propic.pickle_user{add}', 'rb') as f:
                    propic, user_id = pickle.load(f)
                os.remove(f'image_propic.pickle_user{add}')
                print('propic received')

                print("processing image")
                propic.thumbnail((150, 150))
                propic_bytes = convert_to_bytes.convert_image(propic)
                save_profile_pic(user_id, propic)
                print("done")

                print("sending new propic to user")
                with open(f'image_propic_user{add}.pickle', 'wb') as f:
                    pickle.dump(propic_bytes, f)
                with open(f'image_propic_user{add}.pickle', 'rb') as f:
                    data = f.read(4096)
                    while data:
                        c.sendall(data)
                        data = f.read(4096)
                    c.sendall(b'no more data')
                os.remove(f'image_propic_user{add}.pickle')
                print('sent')

        except Exception as e:
            print('server_change_settings raised exception :', end=' ')
            print(e)
            print('traceback for above change_settings error')
            traceback.print_exc()
            break

        c.close()
    s.close()