Metadata-Version: 2.4
Name: tease-typo
Version: 1.0.0
Summary: A terminal tool that roasts you for every typo, because 'command not found' is too polite
Author-email: imscow11253 <seaweed3855@naver.com>
License-Expression: MIT
Keywords: terminal,cli,typo,shell,fun
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Utilities
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: rich>=13.0
Requires-Dist: pyfiglet>=1.0
Requires-Dist: click>=8.0
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == "dev"
Requires-Dist: pytest-cov>=5.0; extra == "dev"
Requires-Dist: ruff>=0.4; extra == "dev"
Requires-Dist: mypy>=1.10; extra == "dev"

# Tease-Typo

터미널에서 오타를 치면 "command not found" 대신 **웃긴 효과**로 당신을 놀려주는 CLI 도구.

```
$ gti
╭─────────────────────────────────────────╮
│  🤣 또 틀렸어? 'gti'가 뭔데 ㅋㅋㅋㅋ  │
╰─────────────────────────────────────────╯
```

- 이 프로젝트는 gti를 하루에 세 번 이상 치는 사람을 위해 만들었습니다.
- `command not found`는 너무 딱딱하고 자존감을 떨어뜨립니다. 

---

## 설치

```bash
pipx install tease-typo
```

> `pipx`가 없으면: `brew install pipx` 또는 `pip install pipx`

---

## 쉘 통합

설치 후 한 번만 실행:

```bash
tease-typo install
source ~/.zshrc   # 또는 source ~/.bashrc
```

이제 오타를 칠 때마다 자동으로 당신을 놀려줍니다.

---

## 사용법

```bash
# 쉘 통합 설치
tease-typo install

# 쉘 통합 제거
tease-typo uninstall

# 효과 목록 확인
tease-typo --list

# 특정 쉘 지정 (기본: 현재 쉘 자동 감지)
tease-typo install --shell zsh
tease-typo install --shell bash
```

---

## 효과 목록 (10종)

| 효과 | 설명 |
|------|------|
| `mocking_text` | 조롱 메시지 패널 |
| `ascii_art` | ASCII 아트로 오타 강조 |
| `emoji` | 이모지 폭탄 |
| `fake_progress` | 가짜 "오타 분석 중..." 진행 바 |
| `rage_meter` | 분노 게이지 FULL 애니메이션 |
| `wall_of_shame` | 빨간 대형 패널로 오타 강조 |
| `fake_dictionary` | 오타의 가짜 사전 검색 결과 |
| `scoreboard` | 오타 횟수 가짜 스코어보드 |
| `countdown` | 긴장감 조성 카운트다운 + 반전 |
| `typing_shame` | 감지 → 분석 → 등록 → 창피함 단계별 표시 |

---

## 새 효과 추가 (OCP)

기존 코드를 건드리지 않고 효과를 추가할 수 있습니다.

**1. 새 파일 생성** `tease_typo/effects/my_effect.py`:

```python
from tease_typo.domain.effect import Effect
from tease_typo.domain.typo_event import TypoEvent

class MyEffect(Effect):
    @property
    def name(self) -> str:
        return "my_effect"

    @property
    def description(self) -> str:
        return "내가 만든 효과"

    def render(self, typo_event: TypoEvent) -> None:
        print(f"'{typo_event.typed_command}'? 진짜로?")
```

**2. 라이브러리에 등록** `tease_typo/cli/command_handler.py`:

```python
from tease_typo.effects.my_effect import MyEffect

def _build_default_library() -> EffectLibrary:
    library = EffectLibrary()
    ...
    library.register(MyEffect())  # 이 줄만 추가
    return library
```

---

## 개발 환경

```bash
git clone https://github.com/yourname/tease-typo
cd tease-typo

python3 -m venv .venv
source .venv/bin/activate

pip install -e ".[dev]"

pytest                                          # 테스트
pytest --cov=tease_typo --cov-report=term-missing  # 커버리지
ruff check .                                    # 린트
mypy tease_typo/                               # 타입 검사
```

---

## 요구 사항

- Python 3.9+
- bash 또는 zsh (macOS / Linux)

---

## P.S.

- 이 프로젝트는 spec-kit 도구를 활용해서 제작되었습니다. [spec-kit](https://github.com/github/spec-kit)

---

## 라이선스

MIT
