Мессенджер на python
Появилась мысль создать простой чат\мессенджер на Python(+- 100 участников), в следствии чего возник вопрос. Мне придется искать сервер и платить за него, или можно это сделать как-то без него? А если можно без него, то как это реализовать? Попытки найти ответ на мой вопрос в интернете были, но либо я не понял, либо ответа на него не было. Если вы имеете представление как это сделать, прошу помочь, хотя бы книгой, роликом или статьей где будет про это говориться. (я не в коем случае не прошу готовое решение, я просто решил спросить у людей, которые понимают в программировании лучше меня)
Отслеживать
задан 22 июн 2021 в 22:30
193 1 1 серебряный знак 8 8 бронзовых знаков
Всё зависит от ваших целей, технически вам никто не мешает запустить свой мессенджер хоть на обычном телефоне, лишь бы ваши 100 участников могли подключиться к этому телефону
22 июн 2021 в 22:38
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Я пару раз выкладывал концепт p2p месенжера на стековерфлоу. работать можно без сервера вообще, но нужен ещё один месенжер чтоб обменяться контактами для соединения.
Реализуется это через udp и stun. stun пробивает udp порт во внешнюю сеть, а udp позволяет посылать сообщения без установки соединения = без сервера.
Нужно только опубликовать контакт (ip, port) одного из участников и через него получить остальные. Что-то в стиле DHT. Или использовать другой месенжер (например пуши гугла, публичный сип сервер или даже смски) для обмена контактами.
Если вы новичок в сетевом программировании — то начните с месенжера с сервером. Сервер можно найти бесплатно по акции или на начальных тарифах pythonanywhere, oracle и тп. На домашнем интернете есть шанс что у вас белый адрес — можно пробросить порт.
Saved searches
Use saved searches to filter your results more quickly
Cancel Create saved search
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
This repository has been archived by the owner on Aug 17, 2023. It is now read-only.
werryxgames / Messenger Public archive
Мессенджер на Python
License
werryxgames/Messenger
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Switch branches/tags
Branches Tags
Could not load branches
Nothing to show
Could not load tags
Nothing to show
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Cancel Create
- Local
- Codespaces
HTTPS GitHub CLI
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more about the CLI.
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
cdac2f9 Aug 17, 2023
Git stats
Files
Failed to load latest commit information.
Latest commit message
Commit time
July 2, 2022 18:15
October 16, 2022 20:48
October 18, 2022 20:17
June 29, 2022 15:58
August 17, 2023 18:12
July 13, 2022 09:58
July 12, 2022 22:07
October 18, 2022 20:24
July 12, 2022 22:07
July 12, 2022 22:07
October 16, 2022 20:43
README.md
Этот репозиторий больше не поддерживается из-за неправильно выбранного языка программирования. Сложно запустить приложение с графическим интерфейсом, написанное на Python без всяких фреймворков на мобильных устройствах. Новый репозиторий: MessengerJava.
Что такое Messenger?
Messenger — бесплатный мессенджер с открытым исходным кодом для обмена мгновенными сообщениями
Messenger написан на языке програмирования Python
Работают ли определённые версии Python:
- 3.10 — Все основные тесты происходят на этой версии
- 3.9 — Версия поддерживается Messenger и тестируется в Github
- 3.8 — Версия поддерживается Messenger и тестируется в Github
- 3.7 — Версия не поддерживается, но пока что есть возможность запустить Messenger на ней
- 3.6 — Версия не поддерживается, но пока что есть возможность запустить Messenger на ней
- 2.7 — Версия не поддерживается
Остальные версии не тестировались
Скачивание из терминала
Если у вас установлен git , то выполните команду: git clone https://github.com/werryxgames/Messenger.git
В таком случае Messenger скачается в текущую директорию
Скачивание из Github
Также вы можете скачать Messenger при помощи интерфейса Github
Нажмите на кнопку Code , а затем на Download ZIP
Необходимо распаковать скачанный архив в нужную директорию
Теперь вы можете удалить скачанный архив
Теперь вы можете создать ярлыки со следующими командами на рабочий стол:
python "путь_к_файлу_server.py" python "путь_к_файлу_main.py"
Рекомендуется обновлять версию только из релизов
Прочитайте, написано ли в релизе про изменение формата хранения данных. Если да, то необходимо будет удалить все данные, затем проделайте шаги, как в Скачивание репозитория
Если написано, что формат хранения данных не изменён, или ничего не написано, проделайте шаги, как в Скачивание из Github, но распакуйте только файлы server.py и main.py
Messenger состоит из двух частей: сервера и клиента
Сервер хранит все данные и обрабатывает запросы от клиентов
Клиент показывает информацию от сервера в графическом виде
Чтобы запустить сервер, напишите
python "путь_к_файлу_server.py"
Вы должны увидеть надпись Сервер запущен , иначе создайте проблему на вкладке Issues
Перед надписью Сервер запущен может появиться дополнительная информация ( True , False (несколько раз) и список с сообщениями). Это значит, что база данных сброшена до первоначального состояния. После этого рекомендуется выключить сервер и сделать то, что написано в Отключение сброса базы данных
Отключение сброса базы данных
Чтобы отключить сброс базы данных, необходимо зайти в файл server.py (пролистать в конец) и убрать все строки между этими (оставьте сами строки, удалите все строки, на месте которых «. «):
if __name__ == "__main__": . main()
Вам понадобиться включить сервер
Чтобы зайти в Messenger в первый раз, надо создать аккаунт. Для этого введите логин и пароль в соответствующие поля. Если всё правильно, то вы должны увидеть, как появится основной интерфейс Messenger`а
Если интерфейс не появился, посмотрите в консоли, там должно была появиться ошибка на подобии следующей:
---------------------------- | ОШИБКА: Заголовок ошибки | ---------------------------- | Описание ошибки | ----------------------------
Чтобы отправить сообщения, выберите получателя в списке слева, напишите текст сообщения справа внизу и нажмите ‘Enter’, или кнопку ‘Отправить’
Внизу вашего сообщения написан его статус
- Отправлено — Сообщение отправлено, но ещё не получено сервером
- Доставлено — Сообщение доставлено на сервер, но ещё не получено получателем
- Получено — Сообщение получено получателем, но он ещё не ответил
- Прочитано — Сообщение получено получателем, который написал что-то после вашего сообщения
Код проверяется при помощи flake8 и pytest (тесты в папке tests):
flake8 . --exclude venv,__pycache__,.git,.github python -m pytest tests
Функции и классы
server.py — Модуль сервера.
def absolute(path_: str) -> str: """Возвращает абсолютный путь из относительного.""" def encrypt_password(user_id: int, password: str) -> str: """Шифрует пароль. Аргументы: user_id: ID пользователя. password: Пароль пользователя. Возвращаемое значение: Зашифрованный пароль. """ class Database: """Класс базы данных.""" def __init__(self, filepath: str) -> None: """Инициализация базы данных. Аргументы: filepath: Путь к базе данных. """ def sql( self, sql_text: str, format_=None, noresult: bool = False ): """Выполняет SQL код. Аргументы: sql_text: SQL код. format_: Заменители '?' в SQL коде. noresult: Если включено, то результатом будет булевое значение. Возвращаемое значение: bool: Если включено noresult, возвращает True, если результат выполнения SQL кода пустой, иначе False. list: Массив с результатами. tuple: Единственный результат. """ def reset_database(self) -> bool: """Сбрасывает базу данных к начальному состоянию. Возвращаемое значение: True, если удалось сбросить, иначе False. """ def create_account(self, name: str, password: str): """Создаёт аккаунт. Аргументы: name: Логин аккаунта. password: Пароль от аккаунта. Возвращаемое значение: Статус выполнения, id в случае успеха. """ def login_account(self, name: str, password: str): """Входит в аккаунт. Аргументы: name: Логин аккаунта. password: Пароль от аккаунта. Возвращаемое значение: Статус выполнения, id в случае успеха. """ def get_account_data(self, name: str) -> (tuple, list): """Получает данные аккаунта. Аргументы: name: Логин аккаунта. Возвращаемое значение: [ Отправленные и полученные сообщения, ID пользователей, чей статус сообщений был изменён. ]. """ def send_message(self, login: str, receiver: int, message: str) -> bool: """Создаёт запись в базе данных о сообщении.""" def find_user(self, username: str): """Ищет пользователя по username. Аргументы: username: Имя пользователя. Возвращаемое значение: False: Пользователь не найден. list[int, str]: ID пользователя и его имя. """ def close(self) -> None: """Закрывает базу данных.""" class NetworkedClient: """Класс клиента.""" _instances = [] def __init__(self, sock: socket, addr) -> None: pass @staticmethod def encode_message(message) -> bytes: """Превращает объекты, преобразоваемые в JSON в байты.""" @staticmethod def decode_message(message: bytes): """Превращает байты в объекты, преобразоваемые в JSON.""" def send(self, message: list) -> None: """Отправляет сообщение клиенту. Аргументы: message: Сообщение. """ def send_account_data(self) -> None: """Отправляет данные об аккаунте.""" def receive(self, jdata: bytes) -> bool: """Получает сообщение от клиента. Аргументы: jdata: Данные от клиента. Возвращаемое значаени: Надо ли обновлять таймер сообщений? """ def close(self) -> None: """Закрывает соединение с клиентом.""" def check_idle() -> None: """Отключает неактивных клиентов. Аргументы: clients: Словарь всех клиентов. """ def main() -> None: """Основная функция."""
main.py — Мессенджер на Python (клиент).
class Window: """Класс окна.""" def __init__(self, tk_window: tk.Tk) -> None: """Инициализация окна. Аргументы: tk_window: Окно Tkinter. """ def place(self, id_: str, element, *args, **kwargs) -> None: """Размещает объект element. Аргументы: id_: Уникальный идентификатор элемента. element: Элемент, который необходимо разместить. *args: Аргументы element.place(). **kwargs: Позиционные аргументы element.place(). """ def pack(self, id_: str, element, *args, **kwargs) -> None: """Размещает объект element. Аргументы: id_: Уникальный идентификатор элемента. element: Элемент, который необходимо разместить. *args: Аргументы element.pack(). **kwargs: Позиционные аргументы element.pack(). """ def clear(self) -> None: """Очищает все элементы.""" def __getattribute__(self, id_: str): """Получает элемент по его ID. Аргументы: id_: Уникальный идентификатор элемента. Возвращаемое значение: Элемент. """ class MessengerClient: """Основной класс.""" def __init__(self) -> None: """Инициализация класса.""" @staticmethod def show_error(title: str, message: str) -> None: """Показывает ошибку. Аргументы: title: Заголовок ошибки. message: Описание ошибки. """ @staticmethod def encode_message(message) -> bytes: """Превращает объекты, преобразоваемые в JSON в байты.""" @staticmethod def decode_message(message: bytes): """Превращает байты в объекты, преобразоваемые в JSON.""" def send(self, message) -> None: """Отправляет сообщение message на сервер. Аргументы: message: Сообщение. """ @staticmethod def create_round_rectangle( cnv, px1, py1, px2, py2, radius, ign1=False, ign2=False, **kwargs ) -> int: """Создаёт скруглённый прямоугольник. Аргументы: cnv: Холст Tkinter. px1: Левая точка прямоугольника. py1: Верхняя точка прямоугольника. px2: Правая точка прямоугольника. py2: Нижняя точка прямоугольника. radius: Радиус скругления. kwargs: Дополнительные аргументы cnv.create_polygon(). Возвращаемое значение: ID Скруглённого прямоугольника на холсте. """ def user_selected(self) -> None: """Обработчик события выбора пользователя. Аргументы: wid: Виджет Listbox Tkinter. """ def resize(self, event) -> None: """Обработчик изменения размера окна.""" def send_message(self, message: str) -> None: """Отправляет сообщение на сервер. Аргументы: message: Сообщение. """ def add_user(self, username: str) -> None: """Добавляет пользователя по имени. Аргументы: username: Имя пользователя. """ def receive(self) -> None: """Получает сообщения от сервера.""" def send_idle(self) -> None: """Отправляет сообщение серверу о том, что клиент до сих пор открыт.""" def login_tab(self, clear=True) -> None: """Перемещает на начальную вкладку.""" def on_destroy(self): """Обработчик выхода из приложения.""" def main(self): """Основная функция клиента."""
Мессенджер на Python за 3 дня
Заявка не отправлена! Похоже произошла ошибка. Попробуйте отправить снова или перезагрузите страницу.
Вы пройдёте основы программирования на языке Python и напишете полезную программу для обмена сообщениями.
Python — универсальный язык программирования, на котором пишут сайты, игры, чат-боты, нейросети и проводят научные вычисления.
Примеры работ студентов

Eve Online

SciPy

Blender
Python-разработчики востребованы на рынке. Более
6 000 вакансий для разных уровней открыто на рынке труда.
- от 45 000 ₽ Без опыта
- до 250 000 ₽ 1–3 года опыта
- до 350 000 ₽ 3–6 лет опыта
Кому подойдёт интенсив
Новичкам в коде
Начинающим разработчикам
Вы научитесь
- Разбираться в различных типах данных, структурах, функциях и ООП
- Разрабатывать сервер для прослушивания подключений
- Программировать клиентскую часть для подключения и передачи сообщений
- Работать с библиотеками PyQT, Kivy, wxWidgets, Tkinter
- Понимать основы сетевого ПО
- Создавать форму через Qt Designer
Программа
Знакомимся с Python
- Разбираем основные элементы языка.
- Создаём сервер, который будет отвечать за регистрацию клиентов и передачу сообщений между ними.
Настраиваем протокол TCP для мессенджера
- Разрабатываем вторую программу.
- Делаем форму регистрации клиентов по логину и паролю.
- Настраиваем механику отправки и получения сообщений между пользователями.
Пишем интерфейс мессенджера на Python
- Работаем над интерфейсом для мессенджера.
- Ревью работ.
- Разбираем ошибки.
- Подводим итоги.
- Выбираем победителя.
- Вручаем призы.
Подарки и призы
Сертификат на скидку 10 000 рублей

Участники, которые будут онлайн на интенсиве, получат сертификаты на скидку 10 000 рублей для обучения на образовательной платформе Skillbox.
Статья «Экспекто Питонум»

Всем, кто зарегистрируется, отправим статью с полезными скриптами на Python «Экспекто Питонум».
«Разум под контролем» Роджера Сайпа и Робби Збиерски
Преподаватель

Алексей Коновалов
- Ведёт личный проект по парсингу сайта и анализу данных.
- Выпускник курса от Skillbox «Python-разработчик с нуля».
Отзывы участников интенсива
Вадим Будилин

Большое спасибо за бесплатный мастер-класс по Python! Чувствуется профессионализм лектора и ведущего. Они всегда обращали внимание на вопросы в чате и подробно на них отвечали. Три дня интенсива прошли нескучно, с юмором, но по делу. Каждое домашнее задание было прокомментировано, поэтому все участники смогли обменяться опытом. Подтверждаю честность розыгрыша приза. Я, хоть и не мгновенно, но получил выбранный курс. Ещё раз спасибо!
Виталий Власенко

Интенсивы Skillbox — отличная возможность «потрогать» новые профессии под руководством профессионалов. Можно примерить роль разработчика: увидеть, чем он занимается, какие задачи решает, и понять, интересно ли это тебе. Это почти как заглянуть в будущее и понять, хочешь ли ты в этом будущем оказаться! Skillbox удалось сделать классный интенсив, который полезен и новичкам, и тем, у кого уже есть опыт. Правда, время не очень удобное для тех, кто живёт в четырёх часовых поясах от Москвы. К счастью, можно посмотреть семинары в записи и получить консультацию в Telegram-чате. А учитывая, что интенсивы бесплатны, я рекомендую всем в них поучаствовать!
Алексей Дробяз

Интенсив понравился. Доступно изложено и всё понятно. Ответы на вопросы были полными, а возникающие проблемы решались достаточно оперативно. Чат до сих пор жив, и участники делятся успехами. Видно, что спикер в теме разбирается. Он объяснял нюансы так, что даже новички понимали, что и как делать. В профессиональном плане интенсив расширил горизонты.
Создание своего мессенджера на Python с нуля


Публиковать могут пользователи с любым рейтингом. Однако!
Приветствуется:
• уважение к читателям и авторам
• простота и информативность повествования
• тег python2 или python3, если актуально
• код публиковать в виде цитаты, либо ссылкой на специализированный сайт
Не рекомендуется:
• допускать оскорбления и провокации
• распространять вредоносное ПО
• просить решить вашу полноценную задачу за вас
2 года назад
Без текста минус нахуй.
раскрыть ветку
Лучшие посты за сегодня
8 часов назад

Учитель по физике

Показать полностью 1
Поддержать
12 часов назад
Отношение РЖД к сотрудникам
Решил постом оформить комментарий — обещал проводнику поезда.

Показать полностью 1
8 часов назад

Как я у Wildberries в суде выиграл
Однажды лениво ковырял приложение Wildberries на телефоне и попались мне на глаза SSD диски Patriot, 480Gb и всего-то за 1956 руб. Если что — это дешевле, чем б/у на Авито продают. Да и производитель с именем, не какой-нибудь noname с Китая. В общем решил купить аж 3 штуки, для объединения в RAID0. Получилась бы быстрая файлопомойка на 1,5Tb.
Прошла пара дней, зашёл в ближайший пункт, все упакованы в блистер. Ну ок, чо, проверим дома. Дома после подключения к ПК обнаружился сюрприз — по отдельности диски работали, всё ок, но при переводе мат. платы в режим RAID0 комп просто зависал на загрузке БИОС. Пробовал и поочерёдно втыкать — не идёт. Решил загрузиться без них, а их на горячую подцепить. И если винда шустренько загрузилась, то после подключения дисков ПК просто зависал мётрво.
Технические объяснения на этом завершены. Факт налицо — существенный недостаток, препятствующий эксплуатации. А, самое интересное — на странице этих дисков на маркетплейсе продавец не какой-нибудь ИП Суходрищев, а сами Wildberries. Ну, думаю, проблем точно быть не должно!
Пошёл по месту выдачи с просьбой вернуть деньги или заменить на аналогичный товар.
Девочка на меня глаза поставила — «идите на сайт, все возвраты через сайт».
Ок, иду домой, захожу в раздел оформления возврата, который, вопреки действующему Закону о защите прав потребителей, должен быть одобрен службой поддержки. Долго ли коротко, заполнил форму, вложил фотки дисков, сел ждать.
Утром моё обращение обновилось — отказ в возврате, комментарий «судя по фото товар исправен»! Такой уровень диагностики не снился даже доктору Хаусу. По фотографии диска определить его работоспособность. Снимаю шляпу перед тех поддержкой Wildberries.
Хорошо, спорить с профессионалами не стал, решил пойти старым добрым путём, который пока ни разу не подводил — письменная претензия с требованием провести проверку качества товара. Напомню, если кто ЗоЗПП не особо помнит — покупатель вправе обратиться по месту покупки товара (или к производителю, или дистрибьютеру- на мой выбор) и потребовать провести проверку качества товара, причём как покупатель могу требовать сделать это в моём присутствии. Короче состряпал претензию в двух экземплярах — для себя и самого магазина и понёс на точку выдачи.
Девочка удивилась ещё сильней и сказала, что не имеет права претензии принимать от покупателей, и вообще перед покупкой надо проверять товар на месте. На резонный вопрос: «Простите, а где у вас тут тестовый ПК, на котором я мог бы их проверить?» сделала вид, что не услышала.
Ещё небольшая справка: проверять работоспособность товара на месте приобретения я не обязан, претензию может принять любой сотрудник, поставив на документе свои ФИО, подпись, печать и номер входящего обращения. А отказ в приёме претензии от покупателя — административное правонарушение со штрафом и всё такое. Пришлось вызывать на место наряд полиции, но описывать тут процесс не буду, в двух словах: толку 0 и рекомендация от полиции обратиться в Роспотребнадзор. Пошёл переживать позор домой. Проиграна только битва, но не война!
Следующую неделю провёл в переписке с поддержкой Wildberries — там меня упорно отправляли к кому угодно, лишь бы отделаться от меня.В начале к продавцу, типа «мы только площадка, всё вопросы решайте с продавцом». Не прокатило, отмазка рассыпалась после моего указания, что продавцом является как раз маркетплейс; далее настал черёд направлять меня к производителю потому как они, мол несут обязательства в течение всего гарантийного срока. Так совпало, что как раз незадолго до этого производитель Patriot ушёл с рынка России, на сайте ближайший офис в Роттердаме, во всеми вытекающими. Энивей, я свой выбор сделал и твёрдо решил, что помогать мне будет именно продавец.
А продавец решительно с этим выбором не согласился и продолжал закрывать мои обращения отказом. А раз в чате девочка напрямую так и написала, что, мол, не будем ничего от вас принимать, «где карту открывали, туда и идите». Ну смысл такой, если подытожить многодневную переписку.
Уверенность в своей правоте, обострённое чувство справедливости и желание добиться сатисфакции не оставило мне выбора — нас сможет рассудить только суд. Но так далеко в боданиях с магазинами мне не доводилось заходить. Новый уровень — подача заявления в суд! Даж немного ссыкотно стало, всё по-серьёзному, никаких соплей!
Да, добавлю ещё, что к помощи юристов решил не прибегать, всё сделать самому. Да, пару недель спустя позвонила тётенька из Роспотребнадзора (видать полицейские передали им всю инфу в тот раз), внимательно выслушала мою проблему и порекомендовала изящный, на её взгляд, выход из ситуации: отправляем диски вместе с требованием расторжения ДКП бандеролью с описью вложений на адрес главного офиса Wildberries в Москве. Поблагодарил её за совет и попрощался. Если уж они внаглую мои права нарушают и от своих обязанностей так легко отмахиваются, то потом доказывать, что я вообще кому-то что-то отправил не хотелось вовсе.
После получасового курения интернетов выяснил такие факты: все споры по ЗоЗПП рассматривает мировой суд, а исковые заявления по ЗоЗПП не облагаются никакими гос пошлинами. Воодушевлённый отсутствием пошлин и вообще каких-либо расходов с моей стороны я скачал образец искового заявления с сайта мировых судей, определил какой у меня участок по адресу проживания, и, собственно, всё заполнил, приложив скрины переписки с техподдержкой, чеки о покупке и сами требования.
Ещё небольшая справка: если продавец не выполняет законные требования покупателя и тянет резину (как в моём случае), можно требовать неустойку 3% в день за платную услугу и 1% в день за товар, но не более 100%. То есть поднять через пару лет стотыщ с потраченных 6000 не выйдет. На тот момент прошло более 100 дней от моего первого обращения в саппорт магазина. Несложным математическим вычислением определяем аппетиты: 6000 (округлённо) руб за диски + столько же неустойка. Отдельным пунктом указал моральный вред, обусловленный моральными страданиями после каждого обращения в тех поддержку. Как потом падал моральных дух, пропала вера в человечество, и вообще стал подумывать о самоубийстве. Оценил этот вред я в 60 000 руб (десятикратная стоимость дисков, для ровного счёта).
Наутро отправился в канцелярию суда для регистрации иска. В целом, думал будет хуже. Исковое я составил правильно, всё, что положено приложил, девчонки из канцелярии сказали, что копию искового надо отправить ответчику заказным письмом, что я и сделал сразу после суда. Любопытно вышло, однако: попросил, чтобы мне прислали уведомление о вручении получателю, до сих пор уведомление не пришло. Тут уж либо почта передумала меня уведомлять, либо Татьяна Владимировна Бакальчук так и не получила копию искового.
Энивей, скоро сказка сказывается, да не скоро заседание проводится. Несколько раз переносили, потому как судьи на больняках и вообще некому на участках работать, недобор в судьи и всё такое.
На первое заседание шёл немого в мандраже, уже представлял, как на прениях сторон буду с выкриком «Objection!» требовать не принимать доводы ответчика. Ну, дурачок, американских фильмов насмотрелся, а как на самом деле хз.
Всё оказалось проще, чем там нафантазировал себе. В зале суда (кабинете метров на 30) был настоящий судья в мантии секретарь суда и я. Ответчик решил не представлять своих интересов. Ну или хрен знает, что он решил, т.к. представителя ответчика мы ни разу не увидели. после объяснения всей ситуации судья попросил сделать экспертизу дисков и ходатайствовать о приобщении к материалам дела. Судебную было решено не делать, а обратиться в любую контору с соответствующей лицензией для заключения. Все расходы на экспертизу оплачивает проигравшая сторона. Перенести суд ещё на пару недель, обратился в контору, ребята вошли в положение и, несмотря на занятость, любезно предложили приходить на следующий день за результатом. Свою работу оценили в 12 000 руб. Да, я тоже немного прихерел от расценок, но куда деваться. Да и от заключения я бул весьма обескуражен. Ожидал бумажку с печатью получить, где написано, что я д`Артаньян, а они пидорасы, а получил буклет, страниц на 25, всё в цвете, в переплёте. Любо-дорого посмотреть. Хотя за 12 000.
Принёс всё, что положено на следующее заседание, привёл доводы, сослался на статьи Гражданского кодекса и пункты Закона о защите прав потребителей. Всё по существу. Суд удалился на совещание (!), через полчаса меня позвали для оглашения решения. А итог такой: я прав, договор расторгнуть, вернуть полую стоимость 6000 руб + неустойку ещё 6000, штраф не помню какой, в районе 3000-5000 руб, а также моральный вред 3000. Радость от выигранного дела как-то быстро улетучилась вместе с 60000 морального вреда. Правда, в частной беседе судья сказал, что большинство дел, где идёт речь о компенсации морального вреда суд ограничивается 3000 руб. Типа, оценка не так очевидна, да и не Америка тут, в конце концов, чтоб стотыщмильёнов требовать за горячий кофе. На обжалование решения даётся 2 недели с момента получения этого решения ответчиком, затем ещё месяц ждать вступления в законную силу.
Спустя почти 2 месяца после самого заседания получил на руки красивую бумажку с заключением. Похожа на зелёнку, в смысле документа о праве собственности, каким он был раньше. Тож на специальной бумажке с гербом и прочими атрибутами.
Расчётный счёт у Вайлдберриз открыт в ВТБ, поэтому с бумажкой туда и отправился. Тоже по дороге переживал, что придётся долго объяснять всё девочке в окошке, потом ещё раз всё повторять старшему менеджеру, потом заведующей отделением. Оказалось всё супергладко: девочка в окошке приняла решение суда, всё за 3 минуты оформила и сказала ждать перечисления денег на карточку. И уже через 2 дня утром пришла смска о пополнении, примерно, на 30 000 руб.
Мораль: хоть раз прочитайте закон о защите прав потребителей, наверняка откроете много нового и интересного (ИМХО он в России суперлояльный к покупателям), не бойтесь отстаивать свою правоту, в том числе и в суде. Опыт интересный, мне понравилось, ачивку открыл.
Всем спасибо за внимание!
Показать полностью
20 часов назад
Агент 007

Показать полностью 1
15 часов назад

Жена

Поддержать
8 часов назад

Ржевский мемориал Советскому Солдату

Показать полностью 1
Поддержать
12 часов назад

Ошибка карманника

Поддержать
22 часа назад

Разница между женскими и мужскими стримами

Показать полностью 1
Поддержать
12 часов назад

«Свекроз»

Показать полностью 1
Поддержать
15 часов назад
Ах, эти воспоминания из Союза.

Показать полностью 1
Поддержать
12 часов назад
-Без нас вы бы всё ещё поклонялись Солнцу! -Чувак, солнце по крайней мере существует.

Вот только давайте без регилиозных и прочих там всяких обид
8 часов назад
Инвалидность
Всем привет, я тут давно, уже 6 лет, но решилась написать первый раз пост. Меня зовут Яна, мне 27 лет. Живу в городе Торопец, Тверской области. Инвалид 2 группы с детства. Очень много всяких болячек.. Училась на дому, нигде далее не была, не работала. Живу с родителями, у них дома. У меня гипотериоз щитовидной железы, 2 порока сердца, врождённый и приобретённый, Дмжп. Опухоль в голове неоперабельная, но доброкачественная. 🙂 Вешу я 150 кг.. Ростом 160.. Так что я некий Колобок. :)) Пью гормоны, высокий инсулин, диабета слава богу нет, низкий сахар в крови. За меня никто не берётся в плане лечения, потому что все боятся. :)) Нормально не хожу из-за веса, одышка. Нет друзей, с кем можно было бы пообщаться в интернете, да даже про реальность ничего не говорю.. Может быть у кого-то тоже такая, похожая история, и вам помогли? Либо знаете, кто может помочь? Есть телеграм @yana25yana, кто хочет, пишите туда, буду всем рада. 🙂

Показать полностью 1
7 часов назад

Уходя из дома

Показать полностью 1
Поддержать
11 часов назад
«В Британии на дорогу, которую перегородили шизики-активисты, вышел базированный мужик и навалил нереальной базы»
Вы реально думаете, что это сработает? Что вы имеете в виду своим «stop oil»? Да ваши плакаты сделаны из нефти. Вся ваша одежда из нефти.
Какого чёрта вы делаете, какую пользу приносите обществу? Это разве работа? Убирайтесь с дороги, вы просто тратите своё время и время всех этих людей. И топливо. Все эти машины сейчас заведены и жгут чёртово топливо.
Если вы хотите «остановить нефть», вам нужно сидеть дома или уйти жить в лес.
ϟ «Лига анонимности»
5 часов назад

Такие дела




Показать полностью 4
Поддержать
15 часов назад

Ответ на пост «Про детей, семью и мужиков, которые помирают в 50»
Ооо, у меня муж такой. «Нам хлеба не надо, работу давай!» И друзья у него (да и у меня) такие.
Не знаю, поколенческая травма у наших ровесников, или у меня ошибка выборки, или дурак дурака трудоголик трудоголика видит издалека, вот и сбиваемся в стаи по интересам.
В нищем студенчестве не подрабатывать было без вариантов, тут понятно. В начале трудовой деятельности на три ставки работали оба (ну иначе жрать было бы нечего, 14 разряд по единой тарифной сетке — без подработок никак).
А дальше началось какое-то трудоголическое безумие.
Взяли ипотеку, родили ребенка — он ушел в работу с графиком 36 часов через 12, ну то есть реально домой приползал в полубессознательном состоянии, там ребенок, который по папе соскучился, и жена, которая тоже едва не падает от усталости (ну тут я тоже идиот, надо же все идеально делать, чистоту навести, с ребенком позаниматься и т.д., здоровый пофигизм только 10 лет спустя появился). На все мои просьбы работать поменьше, чтобы не оставить ребенка сиротой, ответ один — «мне надо зарабатывать деньги, у нас ипотека». Закончилось все предсказуемо, экстренной госпитализацией. Ок, выводы сделал. Работу поменял на попроще, я на работу вышла с деньгами стало нормально, последний хрен без соли не доедали.
Пару лет прожили спокойно. И тут мой мужик затосковал, опять набрал подработок, выплатили ипотеку за 8 лет, а не за 15, машины обновили. Всёёё, мужик, тормози, начинай ходить на работу только для того, чтобы она тебя облагораживала, как Новосельцева! Нифига.
Увольняется со спокойной работы, приходит туда, где надо поднимать целину, разгребать авгиевы конюшни. Поднял, разгреб. Опять чуть не помер от перенапряжения. Я, признаюсь, закатывала истерики, поскольку мне не казалась привлекательной мысль овдоветь, даже при наличии финансовой подушки безопасности. Ок, уволился. Ушел на спокойную работу, в деньгах, кстати, не потерял. И на сколько его хватило? На полгода! Через полгода опять две работы (с оправданием, что пора бы нам начать дом строить, а значит надо зарабатывать). Ппц.
И никак не объяснишь, что так не надо. Что если мы дом построим не через 3 года, а через 10, ничего трагического не случится, что я хочу видеть своего мужа живым и здоровым, весёлым и отдохнувшим, что дети растут, и им сейчас живой и здоровый, участвующий в их жизни отец нужнее, чем будущие отдельные 14-метровые комнаты.
А ещё, честно говоря, считайте меня психом и параноиком, но я на примере знакомых предыдущего поколения видела несколько таких случаев, когда мужик достроил дом и умер через пару месяцев (то ли от истощения, то ли от завершения жизненных планов — зачем жить, если выполнил, что намечено).
Сначала хотела анонимно написать (муж на меня подписан), а потом подумала, чо уж тут, пусть тоже почитает))


