𒀀 𓂀 𐎠 ᚠ 𐤀 𑀅

AncientLinesOfTheWorld

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

📦 نسخه 6.2.0 🐍 Python ≥ 3.8 ⚖️ MIT License 🇮🇷 ساخت ایران
15+خط باستانی
17کلاس و ابزار
4ماژول هوش مصنوعی
3پیام‌رسان
⚡نصب سریع

نصب از PyPI جهانی یا میرور ایران (برای زمانی که دسترسی به PyPI اصلی محدود است).

📦 نصب عادی

PyPI
pip install --upgrade ancientlinesoftheworld

🇮🇷 میرور ایران

pypi-iran.ir
pip install -i https://pypi-iran.ir/simple/ --upgrade ancientlinesoftheworld
💡 بعد از نصب، با دستور ancient version در ترمینال می‌توانی نسخه‌ی نصب‌شده را ببینی.
🗂️خطوط پشتیبانی‌شده۱۵ خط

هر خط با متد هم‌نام خودش روی AncientScripts صدا زده می‌شود. مثلاً converter.runic("سلام").

cuneiformمیخیهخامنشی، بین‌النهرین
pahlaviپهلویایران ساسانی
manichaeanمانویآیین مانی
hieroglyphهیروگلیفمصر باستان
akkadianاکدیبین‌النهرین
oracle_boneاستخوان پیشگوییچین باستان
avestanاوستاییزرتشتی
linear_bخط Bیونان باستان
kharosthiخروشتیشمال هند
runicرونیوایکینگ‌ها
brahmiبراهمیهند باستان
hebrewعبریعبری باستان
sanskritسانسکریتهند باستان
elamiteعیلامی 🆕تمدن عیلام، ایران
phoenicianفنیقی 🆕مادر الفباها
🐍 دیدن همه‌ی خطوط (اصلی + پلاگین)
from ancient import AncientScripts

c = AncientScripts()
for name, desc in c.get_supported_scripts().items():
    print(f"{name:<14} → {desc}")
📖درباره کتابخانه

AncientLinesOfTheWorld 6.2.0 یک فریمورک کامل پایتون برای کار با خطوط باستانی است؛ نه فقط یک مبدل کاراکتر. تبدیل دوطرفه‌ی فارسی و انگلیسی به ۱۵ خط باستانی، ترجمه‌ی معنایی با هوش مصنوعی، تبدیل صوت به خط باستانی، تولید تصویر و ویدیو و PDF کتیبه‌ای، وب‌اپ‌های محلی، ربات پیام‌رسان و سیستم پلاگین برای ساخت خط دلخواه — همه در یک بسته.

✅ پشتیبانی RTL ✅ کار آفلاین (به‌جز ماژول‌های AI) ✅ رایگان و متن‌باز 🆕 عیلامی و فنیقی 🆕 PDFConverter 🆕 AncientVideo 🆕 ربات بله
👤 توسعه‌دهنده: امیرحسین خزاعی — مستندات آنلاین: ancientline.ir
📜AncientScriptsهسته

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

پارامترنوعتوضیح
historyAncientHistoryشیء تاریخچه (اختیاری) برای ثبت خودکار تبدیل‌ها
🐍 تبدیل پایه به چند خط
from ancient import AncientScripts

converter = AncientScripts()

print(converter.cuneiform("سلام"))       # خط میخی
print(converter.hieroglyph("خدا"))       # هیروگلیف مصری
print(converter.avestan("hiسلام"))       # اوستایی
print(converter.runic("hello سلام"))     # رونی
print(converter.brahmi("HI سلام"))       # براهمی
print(converter.kharosthi("hiسلام"))     # خروشتی
🐍 نمایش یک متن در همه‌ی خطوط
from ancient import AncientScripts

c = AncientScripts()
text = "hi"

for script in c.get_supported_scripts():
    print(f"{script:<14} → {getattr(c, script)(text)}")
⚡ خطوطی مثل Linear B و Oracle Bone از دیکشنری‌های بهینه‌شده برای تبدیل سریع‌تر و دقیق‌تر استفاده می‌کنند.
⏳AncientTimeline

نمایش زمان فعلی به خط باستانی — مناسب برای ساعت ترمینالی یا ویجت زنده.

پارامترنوعتوضیح
scriptstrcuneiform، pahlavi، manichaean، hieroglyph، akkadian، oracle_bone، avestan
ancient_formatboolاگر True باشد، تاریخ به سبک باستانی نمایش داده می‌شود
متدتوضیح
as_text()زمان فعلی را به‌صورت رشته برمی‌گرداند
show()زمان را مستقیم روی کنسول چاپ می‌کند
🐍 ساعت باستانی با خط پهلوی
from ancient import AncientTimeline

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

print(timeline.as_text())   # دریافت زمان به‌صورت متن
timeline.show()             # نمایش روی کنسول
🖼️AncientImageGenerator

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

پارامترهای سازنده

پارامترنوعپیش‌فرضتوضیح
scriptstr"cuneiform"خط باستانی هدف
log_levelintlogging.INFOسطح لاگ‌گیری برای دیباگ

پارامترهای generate_image()

پارامترنوعالزامیتوضیح
textstr✅متنی که تبدیل می‌شود
output_filenamestr—نام فایل خروجی؛ خالی بماند خودکار ساخته می‌شود
rtlbool—نوشتن راست‌به‌چپ
enhance_contrastbool—تنظیم خودکار رنگ متن نسبت به پس‌زمینه
text_colortuple—رنگ RGB، مثلاً (255,215,0) برای طلایی
🐍 ساده‌ترین حالت
from ancient import AncientImageGenerator

gen = AncientImageGenerator(script="cuneiform")
path = gen.generate_image("تمدن از اینجا آغاز شد")

print(f"📜 تصویر ذخیره شد: {path}")
🐍 با رنگ طلایی، RTL و کنتراست خودکار
gen.generate_image(
    "شاهکار تاریخ",
    output_filename="my_ancient_text.png",
    text_color=(255, 215, 0),   # طلایی
    rtl=True,
    enhance_contrast=True
)

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

رنگ‌های پرکاربرد

رنگRGBرنگRGB
🏆 طلایی(255,215,0)🔴 قرمز(255,0,0)
⚪ نقره‌ای(192,192,192)🟢 سبز(0,255,0)
🟣 ارغوانی(128,0,128)🔵 آبی(0,0,255)
🟠 نارنجی(255,165,0)🔷 فیروزه‌ای(0,255,255)
⚫ مشکی(0,0,0)⚪ سفید(255,255,255)
🎬AncientAnimator

نمایش انیمیشنی نوشته‌شدن تدریجی خط باستانی، حرف‌به‌حرف. قابل استفاده در ترمینال، رابط گرافیکی (Tkinter) و وب (SSE).

پارامترنوعتوضیح
textstrمتن ورودی برای تبدیل
scriptstrخط باستانی مقصد
delayfloatتأخیر بین هر کاراکتر (ثانیه)
output_funccallableتابع callback اختیاری برای دریافت خروجی مرحله‌به‌مرحله
🐍 ترمینال
from ancient import AncientAnimator

animator = AncientAnimator(delay=0.1)
animator.run(text="Hello World", script="pahlavi")
🐍 با Callback
from ancient import AncientAnimator

def output_callback(chunk: str):
    print(chunk)

animator = AncientAnimator(delay=0.05)
animator.run(text="HI", script="cuneiform", output_func=output_callback)
🌐 پخش زنده تحت وب با Flask + SSE
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
import tkinter as tk
from ancient import AncientAnimator

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

root = tk.Tk()
root.title("انیمیشن")
root.geometry("500x300")

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

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

tk.Button(root, text="شروع", command=start, font=("Arial", 14)).pack()
root.mainloop()
📄PDFConverterجدید

تبدیل متن به خط باستانی و ذخیره‌ی آن به‌صورت تصویر کتیبه‌ای داخل یک فایل PDF. مناسب چاپ، ارائه و بایگانی.

پارامتر / متدنوعتوضیح
scriptstrخط باستانی هدف (پیش‌فرض: cuneiform)
pdf_image(text, output_file, text_color, rtl)methodتبدیل یک متن به تصویر کتیبه‌ای و ذخیره در PDF
pdf_batch(texts, output_dir, mode)methodتبدیل دسته‌جمعی چند متن به فایل‌های PDF
🐍 ساخت PDF تکی و دسته‌جمعی
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جدید

ساخت ویدیوی کتیبه‌ای با کیفیت بالا — متن حرف‌به‌حرف روی صفحه حکاکی می‌شود. مناسب محتوای شبکه‌های اجتماعی و ارائه.

پارامترنوعپیش‌فرضتوضیح
scriptstr"cuneiform"خط باستانی هدف
font_pathstrNoneمسیر فونت؛ خالی بماند خودکار پیدا می‌شود
متدتوضیح
create(text, output, duration, fps, font_size)ساخت یک ویدیوی کتیبه‌ای از متن
create_batch(texts, output_dir, duration, fps, font_size)ساخت دسته‌جمعی چند ویدیو
🐍 ساخت ویدیو تکی و دسته‌جمعی
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

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

پارامترنوعتوضیح
scriptstrخط باستانی هدف (پیش‌فرض: cuneiform)
input_dirstrپوشه‌ی ورودی فایل‌های متنی
output_dirstrپوشه‌ی خروجی برای ذخیره‌ی نتایج
🐍 توابع سریع
from ancient import convert_file, batch_convert

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

# کل یک پوشه
batch_convert(script="cuneiform", input_dir="texts/", output_dir="ancient/")
🐍 استفاده از کلاس
from ancient import BatchConverter

batch = BatchConverter(
    script="cuneiform",
    input_dir="my_texts",
    output_dir="my_ancient"
)

batch.run()                       # تبدیل همه‌ی فایل‌های پوشه
batch.convert_file("test.txt")    # تبدیل یک فایل تکی
🗃️AncientHistory

ذخیره‌ی خودکار تاریخچه‌ی تبدیل‌ها با پشتیبانی از JSON و SQLite. قابلیت جست‌وجو، مشاهده‌ی آخرین رکوردها، خاموش/روشن کردن موقت و پاک‌سازی.

پارامترنوعپیش‌فرضتوضیح
enabledboolTrueفعال یا غیرفعال کردن ذخیره‌سازی
db_typestr"json"نوع ذخیره‌سازی: json یا sqlite
db_pathstr"ancient_history"مسیر فایل ذخیره‌سازی
max_entriesint1000حداکثر تعداد رکوردهای نگه‌داشته‌شده
🐍 راه‌اندازی و اتصال به مبدل
from ancient import AncientScripts, AncientHistory

history = AncientHistory(
    enabled=True,
    db_type="json",
    db_path="my_history.json",
    max_entries=100
)

converter = AncientScripts(history=history)
print(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)
converter.cuneiform("test")   # ذخیره نمی‌شود
history.set_enabled(True)

# پاک کردن کل تاریخچه
history.clear()
🧩Pluginتوسعه‌پذیر

بدون دست‌زدن به کد اصلی کتابخانه، خط باستانی دلخواه خودت را بساز. فقط یک دیکشنری نگاشت بنویس؛ بقیه خودکار انجام می‌شود و خط جدید مثل خطوط داخلی صدا زده می‌شود.

پارامترنوعالزامیتوضیح
mappingDict[str,str]✅دیکشنری نگاشت حروف به نمادها
script_namestr✅نام خط — با همین نام صدا زده می‌شود
descriptionstr—توضیح خط
authorstr—نام سازنده
🐍 ساخت و استفاده از خط جدید
from ancient import Plugin, AncientScripts

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

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

converter = AncientScripts()
print(converter.my_script("سلام"))
🐍 مثال خلاقانه: خط اوریگامی
from ancient import Plugin, AncientScripts

origami_mapping = {
    "ا": "📄", "ب": "📃", "س": "📁",
    "ل": "📍", "م": "📎", "ن": "🖇️", "ی": "✂️"
}

Plugin(
    mapping=origami_mapping,
    script_name="origami",
    description="خط اوریگامی"
).created_script()

print(AncientScripts().origami("سلام"))
⚠️ created_script() فقط برای طول عمر همان پردازه اثر دارد. اگر خط سفارشی را در یک سرویس دائمی می‌خواهی، نگاشت را جایی ذخیره کن و در هر بالا آمدن برنامه دوباره ثبتش کن.
🤖AncientScriptAIنیاز به API Key

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

پارامترنوعتوضیح
api_keystrکلید API سرویس هوش مصنوعی
base_urlstrآدرس پایه‌ی سرور هوش مصنوعی
user_inputstrمتن ورودی کاربر
scriptstrخط باستانی هدف
include_translationboolاگر True باشد، ترجمه‌ی فارسی و انگلیسی هم برمی‌گردد
🐍 گرفتن پاسخ AI به خط میخی
from ancient import AncientScriptAI

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

response = ai_bot.get_ancient_response("سلام باستانی", "cuneiform")
print(response)
🔄AncientReverseAIنیاز به API Key

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

🧠 ترجمه‌ی مفهومی 🌍 خروجی دوزبانه 🧩 درک بافت جمله 🔌 نیازمند اینترنت
🐍 ترجمه‌ی متن میخی
from ancient import AncientReverseAI

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

result = ai.translate(text="𒀀𒁀𒂊", script="cuneiform")
print(result)
⚠️ این ترجمه مفهومی و تاریخی است، نه رمزگشایی گلیف. یک متن باستانی ممکن است چند تفسیر معتبر داشته باشد و بهترین نتیجه با جملات کامل و پیوسته به دست می‌آید.
📸AnalyzePhotoنیاز به API Key

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

🐍 تحلیل تصویر کتیبه
from ancient import AnalyzePhoto

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

print(analyzer.analyze_image("test.png"))
⚠️ خروجی توسط هوش مصنوعی تولید می‌شود و احتمال خطا وجود دارد. این کلاس در مرحله‌ی اولیه و آزمایشی است.
🎤SpeechToAncientنیاز به API Key

صدا را از میکروفون ضبط می‌کند یا فایل صوتی می‌گیرد، با هوش مصنوعی به متن تبدیل می‌کند و سپس متن را به خط باستانی می‌نویسد.

پارامترنوعتوضیح
api_keystrکلید API سرویس تبدیل صوت (اجباری)
base_urlstrآدرس پایه‌ی سرور هوش مصنوعی
scriptstrخط باستانی مقصد
🎙️ ضبط زنده از میکروفون و تبدیل از فایل
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(f"🏛️ خروجی: {result}")

# یا از یک فایل صوتی موجود
result2 = stt.from_file("my_voice.mp3")
print(result2)
🌐AncientWeb

یک وب‌اپ Flask محلی و کاملاً آفلاین برای تبدیل متن به خطوط باستانی — بدون نیاز به هاست، سرور خارجی یا API Key. مناسب دمو، آموزش و استفاده‌ی شخصی.

🐍 اجرای وب‌اپ محلی
from ancient import AncientWeb

app = AncientWeb(version="6.2.0")
app.run_app()   # اجرا روی http://localhost:5000
🤖🖼️AncientAIWebنیاز به API Key

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

متدتوضیح
set_config(...)شخصی‌سازی رنگ متن، RTL و کنتراست تصاویر تولیدی
run_app(port)اجرای وب‌اپ روی پورت دلخواه
🐍 راه‌اندازی وب‌اپ هوشمند
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جدید

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

🐍 اجرای سایت داکیومنت
from ancient import AncientDocs

doc = AncientDocs()
doc.run()
📱AncientBot۳ پیام‌رسان

ربات آماده برای تلگرام، روبیکا و بله. کاربر دستور باستانی <متن> را می‌فرستد، ربات متن را تبدیل می‌کند، یک تصویر طلایی باکیفیت می‌سازد و متن و تصویر را پس می‌فرستد.

متدپیام‌رسانتوضیح
run_telegram(token)تلگراماجرای ربات با توکن BotFather
run_rubika(token)روبیکااجرای ربات روبیکا
run_bale(token)بله 🆕اجرای ربات در پیام‌رسان بله
🐍 راه‌اندازی روی هر سه پیام‌رسان
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 پیام بده.
⚡Command Line Interface

فریمورک یک 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اجرای ربات روبیکا
💻 نمونه خروجی ancient list
$ 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
============================================================

🔗 ارتباط با ما

ساخته شده با ❤️ توسط امیرحسین خزاعی