Metadata-Version: 2.4
Name: xtempo
Version: 1.0.0
Summary: A fast, minimal LAN file-sharing CLI and web server.
Author: 9boom
License: MIT
Requires-Python: >=3.8
Description-Content-Type: text/markdown

# Tempo

Tempo เป็น CLI สำหรับแชร์ไฟล์ในวง LAN ที่เร็วและมีฟีเจอร์มากกว่า
`python -m http.server` ธรรมดา:

- **Threaded server** (`ThreadingHTTPServer`) รองรับหลาย client พร้อมกัน
- **HTTP Range requests** — เล่นวิดีโอ/เสียงแบบ stream/scrub ได้ ไม่ต้องโหลดทั้งไฟล์
- **โหมดสิทธิ์ (permission)**: `download` / `upload` / `full`
- **Upload ผ่านเว็บ** ด้วย multipart/form-data (ไม่พึ่ง dependency ภายนอก)
- **Direct download/upload** จาก command line โดยไม่ต้องเปิดเบราว์เซอร์
- **LAN scanner** หา Tempo server อื่นในวงแลน ด้วย thread pool
- **หน้าเว็บมินิมอล** สไตล์ file manager ยุค Windows แรกๆ

เขียนด้วย Python standard library ล้วน ไม่มี dependency ภายนอก

## ติดตั้ง

```bash
pip install .
# หรือระหว่างพัฒนา:
pip install -e .
```

หลังติดตั้งจะได้คำสั่ง `tempo` ในเครื่อง หรือจะรันตรงโดยไม่ติดตั้งก็ได้:

```bash
python3 -m tempo_cli [options] [host]
```

## Syntax

```
tempo [OPTION]... [HOST]
```

| ตัวเลือก | รูปแบบ | ความหมาย |
|---|---|---|
| `-h`, `--help` | | แสดงข้อความช่วยเหลือแล้วออก |
| `-v`, `--version` | | แสดงเวอร์ชันแล้วออก |
| `-p`, `--port` | `PORT` | พอร์ต 0-65535 (default: 8000) |
| `-pm`, `--permission` | `download\|upload\|full` | โหมดสิทธิ์ (default: full) |
| `-d`, `--download` | `[HOST]:[PORT]/[FILEPATH]` | โหลดไฟล์จาก Tempo server ทันที |
| `-u`, `--upload` | `FILEPATH:[HOST]:[PORT]` | อัปโหลดไฟล์ไปยัง Tempo server ทันที |
| `-s`, `--scan` | `[TIMEOUT] [PORT] [IP]` | สแกนหา Tempo server ในวงแลน (`IP=auto` เพื่อสแกนทั้ง subnet) |

รองรับทั้งรูปแบบ `--option value` และ `--option=value` ตาม GNU Coding Standards

## ตัวอย่างการใช้งาน

```bash
# แชร์โฟลเดอร์ปัจจุบัน พอร์ต 8000 ทุก interface
tempo

# ระบุพอร์ตและ host ที่จะ bind
tempo -p 9000 0.0.0.0

# โหมดอ่านอย่างเดียว (ไม่มีปุ่ม upload)
tempo --permission=download

# โหมด upload อย่างเดียว (มีแค่หน้า upload)
tempo -pm upload

# โหลดไฟล์ทันทีจาก server ที่รู้จักอยู่แล้ว
tempo -d 192.168.1.5:8000/movie.mp4

# อัปโหลดไฟล์ทันที ไปยัง server ที่อนุญาต upload
tempo -u ./photo.png:192.168.1.5:8000

# สแกนทั้ง subnet หา Tempo server อื่น (timeout เริ่มต้น 1s, port 8000)
tempo -s

# สแกนแบบระบุ timeout/port/target เอง
tempo -s 0.5 8000 auto
tempo -s 1.0 8000 192.168.1.20
```

## หมายเหตุด้านความปลอดภัย

Tempo ไม่มีระบบ authentication ใดๆ — ใครก็ตามที่เข้าถึงวงแลนเดียวกัน
และรู้ IP:PORT จะสามารถเข้าถึง (หรืออัปโหลด/ดาวน์โหลด ตามโหมดสิทธิ์) ได้ทันที
เหมาะสำหรับใช้งานในเครือข่ายที่เชื่อถือได้เท่านั้น (บ้าน/ออฟฟิศ/ทีมเดียวกัน)
ไม่แนะนำให้เปิดออก public internet
