Repo Health

Рейтинг здоровья открытых репозиториев

Оценка от 0 до 100 по данным SourceCraft.

4 категории из 6, пересчёт раз в сутки. Как считается

  1. 26

    ридмик моего профиля

    40 дней назад0лайковСравнить
  2. 26

    ###We're no strangers to love You know the rules and so do I A full commitment's what I'm thinking of You wouldn't get this from any other guy I just wanna tell you how I'm feeling Gotta make you understand Never gonna give you up Never gonna let you down Never gonna run around and desert you Never gonna make you cry Never gonna say goodbye Never gonna tell a lie and hurt you We've know each other for so long Your heart's been aching But you're too shy to say it Inside we both know what's been going on We know the game and we're gonna play it And if you ask me how I'm feeling Don't tell me you're too blind to see Never gonna give you up Never gonna let you down Never gonna run around and desert you Never gonna make you cry Never gonna say goodbye Never gonna tell a lie and hurt you

    Python347 дней назад0лайковСравнить
  3. 26

    import socket import threading import json import os import sys import time from datetime import datetime class SimpleMessenger: def init(self): self.my_port = 5000 self.target_ip = "127.0.0.1" self.target_port = 5000 self.socket = None self.connected = False self.listening = False self.running = True self.messages = [] def clear(self): """Очистка экрана""" os.system('cls' if os.name == 'nt' else 'clear') def print_header(self): """Печать заголовка""" print("\n" + "█"*50) print(" ОФФЛАЙН МЕССЕНДЖЕР v1.0") print("█"*50) def print_status(self): """Печать статуса""" status = "ПОДКЛЮЧЕН" if self.connected else "НЕ ПОДКЛЮЧЕН" color = "\033[92m" if self.connected else "\033[91m" print(f"\nСтатус: {color}{status}\033[0m") if self.connected: print(f"Соединение: {self.target_ip}:{self.target_port}") print("-"*50) def show_menu(self): """Показать главное меню""" self.clear() self.print_header() self.print_status() print("\n1. 📡 Запустить сервер (режим ожидания)") print("2. 🔌 Подключиться к серверу") print("3. 💬 Отправить сообщение") print("4. 📁 Отправить файл") print("5. ❌ Отключиться") print("6. ⚙️ Настройки") print("7. 🚪 Выход") print("\n" + "-"*50) def start_server(self): """Запуск сервера""" if self.listening: print("⚠️ Сервер уже запущен!") return try: server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) server.bind(('0.0.0.0', self.my_port)) server.listen(1) print(f"\n✅ Сервер запущен на порту {self.my_port}") print("⏳ Ожидание подключения...") # Принимаем подключение в отдельном потоке def accept(): try: self.socket, addr = server.accept() self.connected = True self.target_ip, self.target_port = addr print(f"\n🎉 Подключено к {self.target_ip}:{self.target_port}") # Запускаем прием сообщений receive_thread = threading.Thread(target=self.receive_messages, daemon=True) receive_thread.start() server.close() except Exception as e: print(f"\n❌ Ошибка: {e}") threading.Thread(target=accept, daemon=True).start() self.listening = True except Exception as e: print(f"\n❌ Ошибка запуска сервера: {e}") def connect(self): """Подключение к серверу""" if self.connected: print("⚠️ Уже подключены!") return try: print(f"\n🔄 Подключение к {self.target_ip}:{self.target_port}...") self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.socket.connect((self.target_ip, self.target_port)) self.connected = True print(f"✅ Подключено успешно!") # Запускаем прием сообщений receive_thread = threading.Thread(target=self.receive_messages, daemon=True) receive_thread.start() except Exception as e: print(f"\n❌ Ошибка подключения: {e}") def send_message(self): """Отправка сообщения""" if not self.connected: print("\n❌ Нет подключения!") return print("\n📝 Введите сообщение (пустая строка для отмены):") message = input("➤ ").strip() if not message: return data = {"type": "msg", "content": message, "time": datetime.now().strftime("%H:%M:%S") } try: self.socket.send((json.dumps(data) + "\n").encode()) print(f"\n💬 [{datetime.now().strftime('%H:%M:%S')}] Вы: {message}") self.messages.append(("Вы", message, datetime.now().strftime("%H:%M:%S"))) except Exception as e: print(f"\n❌ Ошибка отправки: {e}") self.disconnect() def send_file(self): """Отправка файла""" if not self.connected: print("\n❌ Нет подключения!") return path = input("\n📂 Введите путь к файлу: ").strip() if not os.path.exists(path): print("❌ Файл не найден!") return try: name = os.path.basename(path) size = os.path.getsize(path) print(f"📤 Отправка файла {name} ({size} байт)...") # Отправляем информацию о файле info = { "type": "file", "name": name, "size": size } self.socket.send((json.dumps(info) + "\n").encode()) # Отправляем содержимое файла with open(path, "rb") as f: sent = 0 while sent < size: chunk = f.read(4096) if not chunk: break self.socket.send(chunk) sent += len(chunk) print(f"✅ Файл {name} отправлен!") self.messages.append(("Вы", f"[Файл] {name}", datetime.now().strftime("%H:%M:%S"))) except Exception as e: print(f"❌ Ошибка: {e}") def receive_messages(self): """Прием сообщений""" buffer = "" while self.connected: try: data = self.socket.recv(4096).decode() if not data: break buffer += data while "\n" in buffer: line, buffer = buffer.split("\n", 1) if line.strip(): self.process_message(line) except Exception as e: if self.connected: print(f"\n⚠️ Потеряно соединение: {e}") break self.disconnect() def process_message(self, data_str): """Обработка полученного сообщения""" try: data = json.loads(data_str) if data["type"] == "msg": text = f"[{data['time']}] Собеседник: {data['content']}" print(f"\n💬 {text}") self.messages.append(("Собеседник", data['content'], data['time'])) print("\n➤ ", end="", flush=True) elif data["type"] == "file": self.receive_file(data["name"], data["size"]) except Exception as e: print(f"❌ Ошибка обработки: {e}") def receive_file(self, name, size): """Получение файла""" save_path = input(f"\n📥 Сохранить файл '{name}' как (Enter для '{name}'): ").strip() if not save_path: save_path = name try: print(f"📥 Получение файла {name} ({size} байт)...") received = 0 with open(save_path, "wb") as f: while received < size: chunk = self.socket.recv(min(4096, size - received)) if not chunk: break f.write(chunk) received += len(chunk) print(f"✅ Файл сохранен как {save_path}") self.messages.append(("Собеседник", f"[Файл] {name}", datetime.now().strftime("%H:%M:%S"))) print("\n➤ ", end="", flush=True)except Exception as e: print(f"❌ Ошибка сохранения: {e}") def disconnect(self): """Отключение""" if self.socket: try: self.socket.close() except: pass self.socket = None self.connected = False self.listening = False print("\n🔌 Отключено") def settings(self): """Настройки""" self.clear() self.print_header() print("\n⚙️ НАСТРОЙКИ") print("-"*50) print(f"1. Мой порт: {self.my_port}") print(f"2. IP собеседника: {self.target_ip}") print(f"3. Порт собеседника: {self.target_port}") print("4. Показать историю сообщений") print("5. Очистить историю") print("6. Назад") print("-"*50) choice = input("\nВыберите параметр: ") if choice == "1": try: port = int(input("Введите новый порт: ")) self.my_port = port print(f"✅ Порт изменен на {port}") except: print("❌ Неверный порт!") elif choice == "2": ip = input("Введите IP адрес: ") self.target_ip = ip print(f"✅ IP изменен на {ip}") elif choice == "3": try: port = int(input("Введите порт: ")) self.target_port = port print(f"✅ Порт изменен на {port}") except: print("❌ Неверный порт!") elif choice == "4": self.show_history() elif choice == "5": self.messages = [] print("✅ История очищена") input("\nНажмите Enter для продолжения...") def show_history(self): """Показать историю сообщений""" self.clear() self.print_header() print("\n📜 ИСТОРИЯ СООБЩЕНИЙ") print("-"*50) if not self.messages: print("История пуста") else: for sender, text, time in self.messages: print(f"[{time}] {sender}: {text}") print("-"*50) input("\nНажмите Enter для продолжения...") def run(self): """Основной цикл""" while self.running: self.show_menu() choice = input("Выберите действие (1-7): ").strip() if choice == "1": self.start_server() elif choice == "2": self.connect() elif choice == "3": self.send_message() elif choice == "4": self.send_file() elif choice == "5": self.disconnect() elif choice == "6": self.settings() elif choice == "7": print("\n👋 До свидания!") self.running = False else: print("\n❌ Неверный выбор!") if self.running and not self.connected and choice not in ["1", "6", "7"]: input("\nНажмите Enter для продолжения...") self.disconnect()

    230 дней назад0лайковСравнить
  4. 26

    Python171 день назад0лайковСравнить
  5. 26

    236 дней назад0лайковСравнить
  6. 12953–13447tolpil4/tolpil
    26

    Профиль Fullstack-разработчика

    139 дней назад0лайковСравнить
  7. 26

    76 дней назад0лайковСравнить
  8. 26

    Складская программа для учёта товаров, наценок, скидок, продаж, перефасовки и отчётов

    HTML302 дня назад0лайковСравнить
  9. 26

    Template for task: source

    217 дней назад0лайковСравнить
  10. 26

    HTML15 дней назад0лайковСравнить
  11. 26

    HTML15 дней назад0лайковСравнить
  12. 12953–13447tuk4evt/dz-03-seti
    26

    27 дней назад0лайковСравнить
  13. 26

    Адаптивный лендинг кофейни «Кофейный котик»: тёплая цветовая гамма, sticky-навигация, меню, акции, бонусная программа и контакты.

    33 дня назад0лайковСравнить
  14. 12953–13447u-maii/tochka-opory
    26

    Спокойный и бережный одностраничный сайт-концепт группы взаимопомощи для взрослых из дисфункциональных семей, работающей по 12-шаговой программе. Сайт объясняет формат встреч, представляет программу и приглашает на первую ознакомительную встречу без давления.

    TSX56 дней назад0лайковСравнить
  15. 12953–13447uifr24/grafik
    26

    import matplotlib.pyplot as plt import numpy as np # Функции прямых def line1(x): return (151 - 5*x) / 9 def line2(x): return (103 - x) / 7 def line3(x): return 37 - 2*x x = np.linspace(0, 20, 200) # Построение прямых plt.plot(x, line1(x), label='5x1+9x2=151') plt.plot(x, line2(x), label='x1+7x2=103') plt.plot(x, line3(x), label='2x1+x2=37') # Вершины области vertices = [(0,0), (18.5,0), (14,9), (5,14), (0,14.714)] vx, vy = zip(*vertices) plt.fill(vx, vy, alpha=0.3, label='Допустимая область') plt.scatter(vx, vy, color='red') for (x_, y_) in vertices: plt.text(x_, y_, f'({x_:.1f}, {y_:.3f})', fontsize=8) # Линии уровня levels = [500, 1000, 1325] for L in levels: y_level = (L - 27*x) / 85 plt.plot(x, y_level, '--', label=f'L={L}') plt.xlim(0, 20) plt.ylim(0, 20) plt.xlabel('x1') plt.ylabel('x2') plt.title('Геометрическое решение двойственной задачи') plt.legend() plt.grid(True) plt.show()

    240 дней назад0лайковСравнить
  16. 12953–13447user01/fork-test
    26

    Python358 дней назад0лайковСравнить
  17. 26

    Наша веб-студия реализует проекты любой сложности: от высококонверсионных лендингов и корпоративных порталов до высоконагруженных систем и сложных веб-приложений. Мы используем современный стек технологий, включая Laravel и WordPress, чтобы создавать не просто сайты, а технологичные решения, решающие ваши бизнес-задачи. Предлагаем оптимизированные и честные цены за наши услуги благодаря эффективной организации процессов и отсутствию лишних накладных расходов. Мы не просто пишем код, мы создаем надежные, масштабируемые и безопасные решения. Благодаря гибкой методологии, четко структурированному рабочему процессу и глубокой экспертизе, мы способны сократить сроки разработки без ущерба для качества. Экспертиза в Laravel и WordPress. Laravel: создаем высоконагруженные, кастомизированные веб-приложения и сложные API, используя самый популярный PHP-фреймворк для обеспечения стабильности и масштабируемости вашего бизнеса. WordPress: мастерски работаем с WordPress, создавая корпоративные сайты, e-commerce проекты и уникальные темы с нуля. Мы предлагаем комплексную техническую поддержку и сопровождение после запуска проекта.

    325 дней назад0лайковСравнить
  18. 26

    Python43 дня назад0лайковСравнить
  19. 26

    Учебный проект для изучения SourceCraft и AI-инструментов

    HTML35 дней назад0лайковСравнить
  20. 26

    HTML15 дней назад0лайковСравнить
  21. 12953–13447vasilisa7520/kt2
    26

    C++152 дня назад0лайковСравнить
  22. 26

    1

    34 дня назад0лайковСравнить
  23. 26

    C16 дней назад0лайковСравнить
  24. 12953–13447veles/veles
    26

    140 дней назад0лайковСравнить
  25. 26

    C++33 дня назад0лайковСравнить
Показать ещё 0

13 376–13 400 из 21 903