Ejemplo n.º 1
0
 def decorated(*args, **kwargs):
     if args or kwargs:
         logger.info(
             f'Функция  {func.__name__} вызвана из функции {inspect.stack()[1][3]} с аргументами {args or kwargs}'
         )
         return func(*args, **kwargs)
     if not args and kwargs:
         logger.info(
             f'Функция  {func.__name__} вызвана из функции {inspect.stack()[1][3]} без аргументов'
         )
         return func
Ejemplo n.º 2
0
def main(continuer):
    if continuer == '1':
        logger.info('Пользователь выбрал : get_user_list')
        get_list_msg = {
            'action': 'get_user_list',
            'time': f'{time.time()}',
        }
        send(s, get_list_msg)
        load_print(s)
    elif continuer == '2':
        logger.info('Пользователь выбрал : send_message')
        # get_list_msg = {
        #     'action': 'get_user_list',
        #     'time': f'{time.time()}',
        # }
        # s.send(pickle.dumps(json.dumps(get_list_msg)))
        # data = json.loads(pickle.loads(s.recv(2048)))
        # print('Сообщение от сервера: ', data)
        # hash_to_usr = input('hash: ')
        # text_message = input('Введите сообщение пользователю: ')
        send_message_msg = {
            'action': 'send_message',
            'time': f'{time.time()}',
            'user': {
                f'{hash_usr_data}': f'{name_in_chat}',
                # f'{hash_to_usr}': f'{text_message}'
            }
        }
        send(s, send_message_msg)
        load_print(s)
    elif continuer == 'q' or continuer == 'Q':
        logger.info('Пользователь выбрал : leave')
        leave_msg = {
            'action': 'leave',
            'time': f'{time.time()}',
            'user': {
                f'{hash_usr_data}': f'{name_in_chat}'
            }
        }
        send(s, leave_msg)
    elif continuer not in ['q', 'Q', '1', '2']:
        logger.error(
            'Пользователь выбрал неверное значение в списке доступных')
        print('Вы ввели значение не из списка')
Ejemplo n.º 3
0
def load_print(socket):
    data = json.loads(pickle.loads(socket.recv(10000)))
    logger.info(f'Сообщение получено:  {data}')
Ejemplo n.º 4
0
def send(socket, msg):
    socket.send(pickle.dumps(json.dumps(msg)))
    logger.info(f'Сообщение отправленно:  {msg}')
Ejemplo n.º 5
0
def create_socket(port):
    sock = socket(AF_INET, SOCK_STREAM)  # Создать сокет TCP
    sock.connect(('localhost', port))  # Соединиться с сервером
    logger.info(f'Соединение с сервером прошло удачно:  {name_in_chat}')
    return sock
Ejemplo n.º 6
0
# name_in_chat = input('Введите ваше имя для входа в  чат:  ')
name_in_chat = 'Виктор'

# создание псевдоуникального токена
sys_info = platform.uname()
usr_data = {'system': f'{sys_info[0]}',
            'node': f'{sys_info[1]}',
            'release': f'{sys_info[2]}',
            'version': f'{sys_info[3]}',
            'machine': f'{sys_info[4]}',
            'processor': f'{sys_info[5]}',
            'name_in_chat': f'{name_in_chat}'
            }

hash_usr_data = hashlib.sha256(pickle.dumps(usr_data)).hexdigest()
logger.info(f'Сформирован уникальный идентификатор {hash_usr_data}')

# Регистрация на сервере


def create_socket(port):
    sock = socket(AF_INET, SOCK_STREAM)  # Создать сокет TCP
    sock.connect(('localhost', port))  # Соединиться с сервером
    logger.info(f'Соединение с сервером прошло удачно:  {name_in_chat}')
    return sock

reg_msg = {
    'action': 'authenticate',
    'time': f'{time.time()}',
    'user': {
        f'{hash_usr_data}': f'{name_in_chat}'