Metadata-Version: 2.1
Name: ancientlinesoftheworld
Version: 6.2.2
Summary: Convert Persian and English text to 15+ ancient scripts including:
Home-page: https://github.com/amirhossinpython/ancientlinesoftheworld
Author: Amir Hossein Khazaei
Author-email: amirhossinpython03@gmail.com
License: MIT
Project-URL: Source, https://github.com/amirhossinpython/ancientlinesoftheworld
Project-URL: PyPI, https://pypi.org/project/ancientlinesoftheworld
Project-URL: Documentation, https://ancientline.ir/docpage
Project-URL: Website, https://ancientline.ir
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Text Processing :: Linguistic
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
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: Operating System :: OS Independent
Classifier: Natural Language :: Persian
Classifier: Natural Language :: English
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: deep-translator
Requires-Dist: Pillow
Requires-Dist: openai
Requires-Dist: feedparser
Requires-Dist: Flask
Requires-Dist: flask-cors
Requires-Dist: pyaudio
Requires-Dist: speechrecognition
Requires-Dist: pyTelegramBotAPI
Requires-Dist: rubpy
Requires-Dist: python-bale-bot
Requires-Dist: click
Requires-Dist: reportlab
Requires-Dist: opencv-python

# 🏛️ AncientLinesOfTheWorld

**تبدیل فارسی و انگلیسی به ۱۵ خط باستانی — به‌همراه تصویر، ویدیو، PDF، هوش مصنوعی، ربات و سیستم پلاگین**

*Convert Persian & English text into 15 ancient writing systems — with image, video, PDF, AI, bots and a plugin system.*

[![PyPI](https://img.shields.io/pypi/v/ancientlinesoftheworld?color=C9A03D&label=PyPI)](https://pypi.org/project/ancientlinesoftheworld/)
[![Python](https://img.shields.io/pypi/pyversions/ancientlinesoftheworld?color=306998)](https://pypi.org/project/ancientlinesoftheworld/)
[![License](https://img.shields.io/pypi/l/ancientlinesoftheworld?color=green)](https://opensource.org/licenses/MIT)
[![Downloads](https://static.pepy.tech/personalized-badge/ancientlinesoftheworld?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=downloads)](https://pepy.tech/projects/ancientlinesoftheworld)

📚 **مستندات کامل:** [ancientline.ir](https://ancientline.ir) · 🐙 **سورس:** [GitHub](https://github.com/amirhossinpython)

---

## ⚡ نصب | Installation

```bash
pip install --upgrade ancientlinesoftheworld
```


بررسی نصب:

```bash
ancient version
```

---

## 🚀 شروع سریع | Quick Start

```python
from ancient import AncientScripts

converter = AncientScripts()

print(converter.cuneiform("سلام"))       # میخی    | Cuneiform
print(converter.hieroglyph("خدا"))       # هیروگلیف | Hieroglyph
print(converter.runic("hello"))          # رونی     | Runic
print(converter.avestan("hiسلام"))       # اوستایی  | Avestan

# لیست همه‌ی خطوط موجود (اصلی + پلاگین‌ها)
print(converter.get_supported_scripts())
```

---

## 🗂️ خطوط پشتیبانی‌شده | Supported Scripts

| # | متد | خط | Script | تمدن |
|:--|:--|:--|:--|:--|
| 1 | `cuneiform()` | میخی | Cuneiform | هخامنشی، بین‌النهرین |
| 2 | `pahlavi()` | پهلوی | Pahlavi | ایران ساسانی |
| 3 | `manichaean()` | مانوی | Manichaean | آیین مانی |
| 4 | `hieroglyph()` | هیروگلیف | Hieroglyph | مصر باستان |
| 5 | `akkadian()` | اکدی | Akkadian | بین‌النهرین |
| 6 | `oracle_bone()` | استخوان پیشگویی | Oracle Bone | چین باستان |
| 7 | `avestan()` | اوستایی | Avestan | زرتشتی |
| 8 | `linear_b()` | خط B | Linear B | یونان باستان |
| 9 | `kharosthi()` | خروشتی | Kharosthi | شمال هند |
| 10 | `runic()` | رونی | Runic | وایکینگ‌ها |
| 11 | `brahmi()` | براهمی | Brahmi | هند باستان |
| 12 | `hebrew()` | عبری | Hebrew | عبری باستان |
| 13 | `sanskrit()` | سانسکریت | Sanskrit | هند باستان |
| 14 | `elamite()` 🆕 | عیلامی | Elamite | تمدن عیلام، ایران |
| 15 | `phoenician()` 🆕 | فنیقی | Phoenician | مادر الفباها |

> ⚡ خطوطی مثل **Linear B** و **Oracle Bone** از دیکشنری‌های بهینه‌شده برای تبدیل سریع‌تر و دقیق‌تر استفاده می‌کنند.

---

## 📚 فهرست کلاس‌ها | All Classes

| کلاس | قابلیت | API Key |
|:--|:--|:--:|
| `AncientScripts` | تبدیل متن به ۱۵ خط باستانی | ❌ |
| `AncientTimeline` | نمایش زمان فعلی به خط باستانی | ❌ |
| `AncientImageGenerator` | تولید تصویر کتیبه‌ای از متن | ❌ |
| `AncientAnimator` | انیمیشن نوشتن حرف‌به‌حرف | ❌ |
| `PDFConverter` 🆕 | خروجی PDF از متن باستانی | ❌ |
| `AncientVideo` 🆕 | ساخت ویدیوی کتیبه‌ای | ❌ |
| `BatchConverter` | تبدیل دسته‌جمعی فایل‌ها | ❌ |
| `AncientHistory` | ذخیره و جست‌وجوی تاریخچه | ❌ |
| `Plugin` | ساخت خط باستانی سفارشی | ❌ |
| `AncientWeb` | وب‌اپ محلی آفلاین | ❌ |
| `AncientDocs` 🆕 | سایت مستندات محلی | ❌ |
| `AncientBot` | ربات تلگرام / روبیکا / بله | 🔑 توکن ربات |
| `AncientScriptAI` | چت هوشمند به خط باستانی | ✅ |
| `AncientReverseAI` | ترجمه‌ی معنایی خط باستانی → فارسی/انگلیسی | ✅ |
| `AnalyzePhoto` | تشخیص و ترجمه‌ی خط از روی عکس | ✅ |
| `SpeechToAncient` | تبدیل گفتار به خط باستانی | ✅ |
| `AncientAIWeb` | وب‌اپ هوشمند (تصویر + تحلیل عکس) | ✅ |

🔑 کلید API را می‌توانی از [لیارا](https://console.liara.ir/ai) یا هر سرویس سازگار بگیری.

---

## 📜 AncientScripts

کلاس هسته. متن را حرف‌به‌حرف با دیکشنری‌های نگاشت جداگانه (فارسی، انگلیسی، عدد، نماد) تبدیل می‌کند. کاراکتری که در دیکشنری نباشد بدون تغییر می‌ماند.

```python
from ancient import AncientScripts

c = AncientScripts()
text = "hi"

for script in c.get_supported_scripts():
    print(f"{script:<14} → {getattr(c, script)(text)}")
```

**نحوه کارکرد:**

```
Input Text → [بررسی نوع هر کاراکتر] → [دیکشنری متناظر] → Output
                ├─ حرف فارسی   → Persian Mapping
                ├─ حرف انگلیسی → English Mapping
                ├─ عدد         → Number Mapping
                └─ نماد        → Symbol Mapping
```

---

## ⏳ AncientTimeline

نمایش زمان فعلی به خط باستانی.

| پارامتر | نوع | توضیح |
|:--|:--|:--|
| `script` | `str` | `cuneiform`, `pahlavi`, `manichaean`, `hieroglyph`, `akkadian`, `oracle_bone`, `avestan` |
| `ancient_format` | `bool` | نمایش تاریخ به سبک باستانی |

```python
from ancient import AncientTimeline

timeline = AncientTimeline(script="pahlavi", ancient_format=True)

print(timeline.as_text())   # دریافت به‌صورت رشته
timeline.show()             # چاپ روی کنسول
```

---

## 🖼️ AncientImageGenerator

متن را به خط باستانی تبدیل کرده و روی تصویر پس‌زمینه‌ی کتیبه‌ای می‌نویسد.

| پارامتر `generate_image()` | نوع | الزامی | توضیح |
|:--|:--|:--:|:--|
| `text` | `str` | ✅ | متن ورودی |
| `output_filename` | `str` | — | نام فایل خروجی (خودکار اگر خالی) |
| `rtl` | `bool` | — | نوشتن راست‌به‌چپ |
| `enhance_contrast` | `bool` | — | تنظیم خودکار رنگ نسبت به پس‌زمینه |
| `text_color` | `tuple` | — | رنگ RGB، مثلاً `(255,215,0)` |

```python
from ancient import AncientImageGenerator

gen = AncientImageGenerator(script="cuneiform")

path = gen.generate_image("تمدن از اینجا آغاز شد")
print(f"📜 ذخیره شد: {path}")

gen.generate_image(
    "شاهکار تاریخ",
    output_filename="my_ancient_text.png",
    text_color=(255, 215, 0),   # طلایی
    rtl=True,
    enhance_contrast=True
)

gen.clear_font_cache()   # پاک کردن کش فونت
```

**رنگ‌های پرکاربرد:** طلایی `(255,215,0)` · نقره‌ای `(192,192,192)` · ارغوانی `(128,0,128)` · نارنجی `(255,165,0)` · قرمز `(255,0,0)` · سفید `(255,255,255)`

---

## 🎬 AncientAnimator

نمایش انیمیشنی نوشته‌شدن تدریجی متن. قابل استفاده در ترمینال، GUI و وب.

| پارامتر | نوع | توضیح |
|:--|:--|:--|
| `text` | `str` | متن ورودی |
| `script` | `str` | خط باستانی مقصد |
| `delay` | `float` | تأخیر بین هر کاراکتر (ثانیه) |
| `output_func` | `callable` | callback اختیاری برای خروجی مرحله‌ای |

**ترمینال:**

```python
from ancient import AncientAnimator

animator = AncientAnimator(delay=0.1)
animator.run(text="Hello World", script="pahlavi")
```

**تحت وب با Flask + SSE:**

```python
from flask import Flask, Response
from ancient import AncientAnimator
import time

app = Flask(__name__)
anim = AncientAnimator(delay=0.1)

def generate():
    converted = anim.convert("سلام به وب", "cuneiform")
    full = ""
    for ch in converted:
        full += ch
        yield f"data: {full}\n\n"
        time.sleep(0.1)

@app.route("/stream")
def stream():
    return Response(generate(), mimetype="text/event-stream")

app.run()
```

**رابط گرافیکی با Tkinter:**

```python
import tkinter as tk
from ancient import AncientAnimator

def update_label(text):
    label.config(text=text)
    root.update()

root = tk.Tk()
root.geometry("500x300")
label = tk.Label(root, text="", font=("Courier", 20), wraplength=450)
label.pack(pady=50)

def start():
    AncientAnimator(delay=0.1).run("hello", "cuneiform", output_func=update_label)

tk.Button(root, text="شروع", command=start).pack()
root.mainloop()
```

---

## 📄 PDFConverter 🆕

تبدیل متن به تصویر کتیبه‌ای و ذخیره در PDF.

| متد | توضیح |
|:--|:--|
| `pdf_image(text, output_file, text_color, rtl)` | تبدیل یک متن به PDF |
| `pdf_batch(texts, output_dir, mode)` | تبدیل دسته‌جمعی چند متن |

```python
from ancient import PDFConverter

pdf = PDFConverter(script="cuneiform")

pdf.pdf_image("سلام ایران", output_file="salam.pdf")

pdf.pdf_image(
    text="تمدن ایران باستان",
    output_file="iran.pdf",
    text_color=(255, 215, 0),
    rtl=True
)

pdf.pdf_batch(["سلام", "ایران", "داریوش"], output_dir="pdfs")
```

---

## 🎞️ AncientVideo 🆕

ساخت ویدیوی کتیبه‌ای با نوشته‌شدن حرف‌به‌حرف متن.

| پارامتر | نوع | پیش‌فرض | توضیح |
|:--|:--|:--|:--|
| `script` | `str` | `"cuneiform"` | خط باستانی هدف |
| `font_path` | `str` | `None` | مسیر فونت (خودکار پیدا می‌شود) |

```python
from ancient import AncientVideo

video = AncientVideo(script="cuneiform")

video.create(
    text="داریوش بزرگ هخامنشی",
    output="darius.mp4",
    duration=8,
    fps=15,
    font_size=80
)

video.create_batch(
    texts=["سلام", "ایران", "داریوش بزرگ", "پارس"],
    output_dir="my_videos",
    duration=5,
    fps=10,
    font_size=70
)
```

> ⏱️ ساخت ویدیو عملیات سنگینی است. در سرویس‌های وب آن را پشت یک صف کار (Job Queue) قرار بده تا درخواست HTTP قفل نشود.

---

## 📂 BatchConverter

تبدیل خودکار فایل‌های متنی — یک فایل یا کل یک پوشه.

```python
from ancient import convert_file, batch_convert, BatchConverter

# یک فایل
print(convert_file("my_text.txt", script="cuneiform"))

# کل پوشه
batch_convert(script="cuneiform", input_dir="texts/", output_dir="ancient/")

# با کلاس
batch = BatchConverter(script="cuneiform", input_dir="my_texts", output_dir="my_ancient")
batch.run()
batch.convert_file("test.txt")
```

---

## 🗃️ AncientHistory

ذخیره‌ی خودکار تاریخچه‌ی تبدیل‌ها با پشتیبانی JSON و SQLite.

| پارامتر | نوع | پیش‌فرض | توضیح |
|:--|:--|:--|:--|
| `enabled` | `bool` | `True` | فعال/غیرفعال کردن ذخیره‌سازی |
| `db_type` | `str` | `"json"` | `"json"` یا `"sqlite"` |
| `db_path` | `str` | `"ancient_history"` | مسیر فایل ذخیره‌سازی |
| `max_entries` | `int` | `1000` | حداکثر تعداد رکورد |

```python
from ancient import AncientScripts, AncientHistory

history = AncientHistory(enabled=True, db_type="json", db_path="my_history.json")
converter = AncientScripts(history=history)

converter.pahlavi("ایران")

# آخرین تبدیل‌ها
for item in history.get_last(5):
    print(f"{item['timestamp']['fa']}: {item['input']} → {item['output']}")

# جست‌وجو
for item in history.search("ایران"):
    print(f"{item['script']}: {item['input']} → {item['output']}")

history.set_enabled(False)   # خاموش کردن موقت
history.clear()              # پاک کردن کل تاریخچه
```

---

## 🧩 Plugin

بدون تغییر در کد اصلی، خط باستانی دلخواه خودت را بساز.

| پارامتر | نوع | الزامی | توضیح |
|:--|:--|:--:|:--|
| `mapping` | `Dict[str, str]` | ✅ | دیکشنری نگاشت حروف |
| `script_name` | `str` | ✅ | نام خط (با همین نام صدا زده می‌شود) |
| `description` | `str` | — | توضیح خط |
| `author` | `str` | — | نام سازنده |

```python
from ancient import Plugin, AncientScripts

mapping = {
    "ا": "𒀀", "ب": "𒁀", "س": "𒊓",
    "ل": "𒇷", "م": "𒈠", "ن": "𒈾", "ی": "𒅀"
}

Plugin(
    mapping=mapping,
    script_name="my_script",
    description="خط شخصی من",
    author="نام سازنده"
).created_script()

print(AncientScripts().my_script("سلام"))
```

> ⚠️ `created_script()` فقط برای طول عمر همان پردازه اثر دارد. برای سرویس‌های دائمی، نگاشت را ذخیره کن و در هر بالا آمدن برنامه دوباره ثبتش کن.

---

## 🤖 AncientScriptAI

چت هوشمند که پاسخ را به خط باستانی تولید می‌کند.

| پارامتر | نوع | توضیح |
|:--|:--|:--|
| `api_key` | `str` | کلید API |
| `base_url` | `str` | آدرس پایه‌ی سرویس |
| `script` | `str` | خط باستانی هدف |
| `include_translation` | `bool` | افزودن ترجمه‌ی فارسی و انگلیسی |

```python
from ancient import AncientScriptAI

ai_bot = AncientScriptAI(api_key="YOUR_API_KEY", base_url="YOUR_BASE_URL")

print(ai_bot.get_ancient_response("سلام باستانی", "cuneiform"))
```

---

## 🔄 AncientReverseAI

ترجمه‌ی **معنایی** متن باستانی به فارسی و انگلیسی — نه بازگردانی حرف‌به‌حرف.

```python
from ancient import AncientReverseAI

ai = AncientReverseAI(api_key="YOUR_API_KEY", base_url="YOUR_BASE_URL")

print(ai.translate(text="𒀀𒁀𒂊", script="cuneiform"))
```

> ⚠️ این ترجمه **مفهومی و تاریخی** است، نه رمزگشایی گلیف. یک متن باستانی ممکن است چند تفسیر معتبر داشته باشد و بهترین نتیجه با جملات کامل به دست می‌آید.

---

## 📸 AnalyzePhoto

تحلیل تصویر خط باستانی: تشخیص نوع خط، تحلیل نمادها، تفسیر متن و ترجمه‌ی دوزبانه.

```python
from ancient import AnalyzePhoto

analyzer = AnalyzePhoto(api_key="YOUR_API_KEY", base_url="YOUR_BASE_URL")

print(analyzer.analyze_image("test.png"))
```

> ⚠️ خروجی توسط هوش مصنوعی تولید می‌شود و احتمال خطا وجود دارد. این کلاس در مرحله‌ی آزمایشی است.

---

## 🎤 SpeechToAncient

ضبط صدا از میکروفون یا خواندن فایل صوتی → تبدیل به متن با AI → تبدیل به خط باستانی.

```python
from ancient import SpeechToAncient

stt = SpeechToAncient(
    api_key="YOUR_API_KEY",
    base_url="YOUR_BASE_URL",
    script="pahlavi"
)

result = stt.to_ancient(duration=5)        # ضبط ۵ ثانیه از میکروفون
print(result)

result2 = stt.from_file("my_voice.mp3")    # از فایل صوتی
print(result2)
```

---

## 🌐 AncientWeb

وب‌اپ Flask محلی و کاملاً آفلاین — بدون نیاز به هاست یا API Key.

```python
from ancient import AncientWeb

app = AncientWeb(version="6.2.0")
app.run_app()   # http://localhost:5000
```

---

## 🤖🖼️ AncientAIWeb

وب‌اپ هوشمند ترکیبی از `AncientImageGenerator` + `AnalyzePhoto` — ساخت تصویر، تحلیل عکس با AI و دانلود خروجی.

```python
from ancient import AncientAIWeb

web = AncientAIWeb(api_key="YOUR_API_KEY", base_url="https://api.gapgpt.app/v1")

web.set_config(
    enhance_contrast=True,
    text_color=(255, 215, 2),
    rtl=True
)

web.run_app(port=8000)
```

---

## 📚 AncientDocs 🆕

اجرای سایت مستندات به‌صورت محلی. با هر نسخه‌ی جدید، محتوای آن هم به‌روز می‌شود.

```python
from ancient import AncientDocs

AncientDocs().run()
```

---

## 📱 AncientBot

ربات آماده برای سه پیام‌رسان. کاربر دستور `باستانی <متن>` را می‌فرستد؛ ربات متن تبدیل‌شده و یک تصویر طلایی باکیفیت را پس می‌فرستد.

| متد | پیام‌رسان |
|:--|:--|
| `run_telegram(token)` | تلگرام |
| `run_rubika(token)` | روبیکا |
| `run_bale(token)` 🆕 | بله |

```python
from ancient import AncientBot

bot = AncientBot(script="cuneiform")

bot.run_telegram("YOUR_TELEGRAM_TOKEN")
# bot.run_rubika("YOUR_RUBIKA_TOKEN")
# bot.run_bale("YOUR_BALE_TOKEN")
```

🔑 برای گرفتن توکن، در پیام‌رسان مربوطه به **@BotFather** پیام بده.

---

## ⚡ CLI

بدون نوشتن حتی یک خط پایتون، همه‌چیز را از ترمینال اجرا کن.

| دستور | توضیح |
|:--|:--|
| `ancient list` | لیست تمام وب‌اپ‌های آماده |
| `ancient version` | نمایش نسخه‌ی فریمورک |
| `ancient start webapp` | اجرای وب‌اپ اصلی |
| `ancient start aiwebapp` | وب‌اپ هوشمند (کلید را می‌پرسد) |
| `ancient start aiwebapp --api-key KEY` | وب‌اپ هوشمند با ورود مستقیم کلید |
| `ancient start aiwebapp --api-key KEY --base-url URL` | با base-url دلخواه |
| `ancient start docs` | اجرای سایت مستندات |
| `ancient start bot --telegram TOKEN` | اجرای ربات تلگرام |
| `ancient start bot --rubika TOKEN` | اجرای ربات روبیکا |

```bash
$ ancient list

AncientLines Framework - Available Web Apps
============================================================
ancient start webapp                       -> Main Web App
ancient start aiwebapp --api-key KEY       -> AI Web App
ancient start docs                         -> Documentation Site
ancient start bot --telegram TOKEN         -> Telegram Bot
ancient start bot --rubika TOKEN           -> Rubika Bot
ancient version                            -> Show version
============================================================
```

---

## 📋 مشخصات | Specifications

| مورد | مقدار |
|:--|:--|
| نسخه | 6.2.0 |
| پایتون | ≥ 3.8 |
| لایسنس | MIT |
| خطوط باستانی | 15+ |
| کلاس‌ها | 17 |
| پشتیبانی RTL | ✅ |
| کار آفلاین | ✅ (به‌جز ماژول‌های AI) |

---

## 🔗 لینک‌ها | Links

- 🌐 **وب‌سایت رسمی:** [ancientline.ir](https://ancientline.ir)
- 📦 **PyPI:** [ancientlinesoftheworld](https://pypi.org/project/ancientlinesoftheworld/)
- 🐙 **GitHub:** [amirhossinpython](https://github.com/amirhossinpython)
- 📱 **روبیکا:** [Python_Source_1403](https://rubika.ir/Python_Source_1403)
- 📄 **یادداشت علمی (سیویلیکا):** [civilica.com/note/17282](https://civilica.com/note/17282/)

---

## 📄 لایسنس | License

MIT License — رایگان و متن‌باز.

**ساخته شده با ❤️ توسط امیرحسین خزاعی | Created by AmirHossein Khazaei**
