Repo Health

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

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

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

  1. 26

    Современная игра в стиле тетриса с обновленной графикой на движке Unity для мобильных устройств

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

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

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

    47 дней назад0лайковСравнить
  4. 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

    Python354 дня назад0лайковСравнить
  5. 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()

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

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

    243 дня назад0лайковСравнить
  8. 12981–13478tolpil4/tolpil
    26

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

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

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

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

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

    Template for task: source

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

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

    HTML22 дня назад0лайковСравнить
  14. 12981–13478tuk4evt/dz-03-seti
    26

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

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

    40 дней назад0лайковСравнить
  16. 12981–13478u-maii/tochka-opory
    26

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

    TSX63 дня назад0лайковСравнить
  17. 12981–13478uifr24/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()

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

    Практический набор примеров для автоматизации создания Go-кода. Показывает, как работает go generate, как создавать генераторы и превращать повторяющуюся ручную работу в воспроизводимый процесс. Основа для изучения code generation, protoc и собственных developer tools.

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

    Практическая лаборатория по масштабированию PostgreSQL: streaming и logical replication, автоматический failover с Patroni, HA через etcd и HAProxy, шардирование Citus. Все этапы можно повторить локально в Multipass и использовать как основу для своих экспериментов.

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

    Практический набор SQL-паттернов для PostgreSQL: аналитика продаж, Retention, ABC-анализ, оконные функции, CTE, JSONB и индексы. Используйте проект как учебную базу, шпаргалку и основу для собственных аналитических запросов.

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

    Практическая лаборатория по ускорению PostgreSQL: EXPLAIN ANALYZE, индексы B-Tree/GIN, Partial Index, work_mem, сортировки, JSONB, блокировки и транзакции. Воспроизводимые SQL-эксперименты помогают находить узкие места и измерять эффект оптимизации.

    SQLPL52 дня назад0лайковСравнить
  22. 12981–13478user01/fork-test
    26

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

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

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

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

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

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

13 401–13 425 из 21 931

Выбрано 2 из 3