Skip to content

7rotadedi-source/otets-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎭 Отец CLI

Быстрый и стильный CLI клиент для чтения постов прямо из терминала

Отец CLI — это минималистичный терминальный клиент для социальной сети ИТД. Читай посты избранного пользователя прямо из твоего любимого терминала без груза тяжелого браузера.

Python 3.8+ License: MIT Platform

✨ Особенности

  • 🚀 Быстро и минималистично — без лишних слоев абстракции
  • 🎨 Красивый вывод — цветное форматирование с Rich
  • 📄 Пагинация — удобная навигация между постами
  • 🔍 Поиск — ищи посты по ключевым словам
  • 🛡️ Надежность — правильная обработка сетевых ошибок
  • ⌨️ Простое управление — интуитивные команды в терминале

🎮 Управление

Команда Действие
n Следующая страница
p Предыдущая страница
s Поиск по ключевому слову
r Перезагрузить посты
q Выход

📦 Требования

  • Python 3.8+
  • pip (обычно идет с Python)
  • Доступ в интернет

🚀 Установка и запуск

За одну минуту

# 1. Клонируем репозиторий
git clone https://github.com/7rotadedi-source/otets-cli.git
cd otets-cli

# 2. Создаем .env с конфигурацией
cp .env.example .env
# Отредактируй .env и укажи нужный username

# 3. Ставим зависимости и запускаем
pip install -r requirements.txt
python src/main.py

Готово! Клиент загрузится и ты сразу сможешь читать посты.

Подробнее

Шаг 1: Клонирование

git clone https://github.com/7rotadedi-source/otets-cli.git
cd otets-cli

Шаг 2: Конфигурация

Скопируй пример конфигурации и заполни данные:

cp .env.example .env

Открой .env в текстовом редакторе и заполни поля:

OTETS_BASE_URL=https://xn--d1ah4a.com
OTETS_USERNAME=имя_пользователя

Шаг 3: Установка зависимостей

pip install -r requirements.txt

Или если у тебя установлен Python 3:

pip3 install -r requirements.txt

Шаг 4: Запуск

python src/main.py

Или:

python3 src/main.py

📋 Зависимости

  • requests — HTTP клиент для работы с API
  • rich — красивый вывод в терминал
  • python-dotenv — загрузка переменных окружения из .env

Все указаны в requirements.txt.

🏗️ Структура проекта

otets-cli/
├── .env.example          # Пример конфигурации
├── .env                  # Реальная конфигурация (в .gitignore!)
├── .gitignore            # Игнорируем мусор и секреты
├── LICENSE               # MIT лицензия
├── README.md             # Этот файл
├── requirements.txt      # Зависимости проекта
└── src/                  # Исходный код
    ├── main.py          # Точка входа
    ├── api/             # API клиент
    │   ├── __init__.py
    │   └── client.py    # Код для работы с API
    ├── ui/              # Интерфейс терминала
    │   ├── __init__.py
    │   └── display.py   # Отображение постов
    └── utils/           # Вспомогательные функции
        ├── __init__.py
        ├── errors.py    # Пользовательские исключения
        └── parsers.py   # Парсеры текста

🐛 Обработка ошибок

Клиент правильно обрабатывает различные ошибки:

  • Timeout — если сервер не ответил за 10 секунд
  • Connection Error — проблемы с интернетом
  • HTTP ошибки — неверный статус от сервера
  • Некорректные данные — если API вернул странные данные

Вместо уродливого стектрейса ты увидишь понятное сообщение об ошибке и сможешь повторить попытку.

💡 Примеры использования

Базовый запуск

python src/main.py

Загрузит посты пользователя из конфига и покажет их по 5 постов на странице.

Поиск в приложении

  1. Запусти приложение
  2. Нажми s
  3. Введи поисковый запрос
  4. Клиент найдет и отобразит релевантные посты

Навигация

  • Нажимай n чтобы перейти на следующую страницу
  • Нажимай p чтобы вернуться на предыдущую
  • Нажимай r чтобы перезагрузить посты
  • Нажимай q чтобы выйти

🎨 Дизайн

Клиент использует Rich для красивого вывода:

  • Цветной текст — разные цвета для разных элементов
  • Панели — каждый пост в отдельной панели с рамкой
  • Таблицы — красиво отформатированный вывод
  • Спиннеры — показываем статус загрузки
  • Эмодзи — добавляем стиль к сообщениям

🚀 Расширение

Хочешь добавить свою фичу? Структура проекта позволяет это:

  • Новые команды — добавь в ui/display.py в метод _handle_command()
  • Новые фичи API — расширяй api/client.py
  • Новые утилиты — добавляй функции в utils/

⚙️ Переменные окружения

Переменная Описание Пример
OTETS_BASE_URL URL базы ИТД https://xn--d1ah4a.com
OTETS_USERNAME Имя пользователя fau1t

Все перем��нные должны быть в файле .env (не commit'ься в git благодаря .gitignore).

📄 Лицензия

MIT — используй как хочешь. Подробнее в файле LICENSE.

🤝 Contributing

Фиксы ошибок и улучшения приветствуются! Но помни что это проект для конкурса с дедлайном.

🎯 Рекомендации

  • Не забудь настроить .env перед запуском
  • Убедись что у тебя установлены все зависимости
  • Используй Python 3.8 или выше
  • Если что-то не работает — проверь интернет соединение

🚁 Атмосфера

"Постоянное присутствие философии в твоем терминале"

Этот клиент создан с любовью и минимализмом. Каждая строка кода имеет смысл, каждая переменная названа осмысленно.


Сделано с ❤️ для конкурса на лучший CLI клиент

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages