AncientLinesOfTheWorld
تبدیل فارسی و انگلیسی به ۱۵ خط باستانی — میخی، هیروگلیف، پهلوی، اوستایی، رونی، عیلامی، فنیقی و بیشتر.
همراه با تصویر، ویدیو، PDF، هوش مصنوعی، ربات و سیستم پلاگین.
نصب از PyPI جهانی یا میرور ایران (برای زمانی که دسترسی به PyPI اصلی محدود است).
📦 نصب عادی
pip install --upgrade ancientlinesoftheworld
🇮🇷 میرور ایران
pip install -i https://pypi-iran.ir/simple/ --upgrade ancientlinesoftheworld
ancient version در ترمینال میتوانی نسخهی نصبشده را ببینی.هر خط با متد همنام خودش روی AncientScripts صدا زده میشود. مثلاً converter.runic("سلام").
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 کتیبهای، وباپهای محلی، ربات پیامرسان و سیستم پلاگین برای ساخت خط دلخواه — همه در یک بسته.
کلاس اصلی تبدیل. متن را حرفبهحرف با دیکشنریهای نگاشت جداگانه (فارسی، انگلیسی، عدد، نماد) به خط باستانی تبدیل میکند. کاراکتری که در دیکشنری نباشد بدون تغییر میماند.
| پارامتر | نوع | توضیح |
|---|---|---|
| history | AncientHistory | شیء تاریخچه (اختیاری) برای ثبت خودکار تبدیلها |
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)}")
نمایش زمان فعلی به خط باستانی — مناسب برای ساعت ترمینالی یا ویجت زنده.
| پارامتر | نوع | توضیح |
|---|---|---|
| script | str | cuneiform، pahlavi، manichaean، hieroglyph، akkadian، oracle_bone، avestan |
| ancient_format | bool | اگر True باشد، تاریخ به سبک باستانی نمایش داده میشود |
| متد | توضیح |
|---|---|
| as_text() | زمان فعلی را بهصورت رشته برمیگرداند |
| show() | زمان را مستقیم روی کنسول چاپ میکند |
from ancient import AncientTimeline
timeline = AncientTimeline(script="pahlavi", ancient_format=True)
print(timeline.as_text()) # دریافت زمان بهصورت متن
timeline.show() # نمایش روی کنسول
متن را به خط باستانی تبدیل کرده و روی یک تصویر پسزمینهی کتیبهای مینویسد. خروجی یک فایل تصویری در پوشهی پروژه است.
پارامترهای سازنده
| پارامتر | نوع | پیشفرض | توضیح |
|---|---|---|---|
| script | str | "cuneiform" | خط باستانی هدف |
| log_level | int | logging.INFO | سطح لاگگیری برای دیباگ |
پارامترهای generate_image()
| پارامتر | نوع | الزامی | توضیح |
|---|---|---|---|
| text | str | ✅ | متنی که تبدیل میشود |
| output_filename | str | — | نام فایل خروجی؛ خالی بماند خودکار ساخته میشود |
| rtl | bool | — | نوشتن راستبهچپ |
| enhance_contrast | bool | — | تنظیم خودکار رنگ متن نسبت به پسزمینه |
| text_color | tuple | — | رنگ RGB، مثلاً (255,215,0) برای طلایی |
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() # پاک کردن کش فونتها
رنگهای پرکاربرد
| رنگ | 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) |
نمایش انیمیشنی نوشتهشدن تدریجی خط باستانی، حرفبهحرف. قابل استفاده در ترمینال، رابط گرافیکی (Tkinter) و وب (SSE).
| پارامتر | نوع | توضیح |
|---|---|---|
| text | str | متن ورودی برای تبدیل |
| script | str | خط باستانی مقصد |
| delay | float | تأخیر بین هر کاراکتر (ثانیه) |
| output_func | callable | تابع callback اختیاری برای دریافت خروجی مرحلهبهمرحله |
from ancient import AncientAnimator
animator = AncientAnimator(delay=0.1)
animator.run(text="Hello World", script="pahlavi")
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)
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()
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()
تبدیل متن به خط باستانی و ذخیرهی آن بهصورت تصویر کتیبهای داخل یک فایل PDF. مناسب چاپ، ارائه و بایگانی.
| پارامتر / متد | نوع | توضیح |
|---|---|---|
| script | str | خط باستانی هدف (پیشفرض: cuneiform) |
| pdf_image(text, output_file, text_color, rtl) | method | تبدیل یک متن به تصویر کتیبهای و ذخیره در PDF |
| pdf_batch(texts, output_dir, mode) | method | تبدیل دستهجمعی چند متن به فایلهای 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")
ساخت ویدیوی کتیبهای با کیفیت بالا — متن حرفبهحرف روی صفحه حکاکی میشود. مناسب محتوای شبکههای اجتماعی و ارائه.
| پارامتر | نوع | پیشفرض | توضیح |
|---|---|---|---|
| script | str | "cuneiform" | خط باستانی هدف |
| font_path | str | None | مسیر فونت؛ خالی بماند خودکار پیدا میشود |
| متد | توضیح |
|---|---|
| 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
)
تبدیل خودکار فایلهای متنی به خط باستانی — یک فایل تکی یا همهی فایلهای یک پوشه.
| پارامتر | نوع | توضیح |
|---|---|---|
| script | str | خط باستانی هدف (پیشفرض: cuneiform) |
| input_dir | str | پوشهی ورودی فایلهای متنی |
| output_dir | str | پوشهی خروجی برای ذخیرهی نتایج |
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") # تبدیل یک فایل تکی
ذخیرهی خودکار تاریخچهی تبدیلها با پشتیبانی از JSON و SQLite. قابلیت جستوجو، مشاهدهی آخرین رکوردها، خاموش/روشن کردن موقت و پاکسازی.
| پارامتر | نوع | پیشفرض | توضیح |
|---|---|---|---|
| enabled | bool | True | فعال یا غیرفعال کردن ذخیرهسازی |
| db_type | str | "json" | نوع ذخیرهسازی: json یا sqlite |
| db_path | str | "ancient_history" | مسیر فایل ذخیرهسازی |
| max_entries | int | 1000 | حداکثر تعداد رکوردهای نگهداشتهشده |
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()
بدون دستزدن به کد اصلی کتابخانه، خط باستانی دلخواه خودت را بساز. فقط یک دیکشنری نگاشت بنویس؛ بقیه خودکار انجام میشود و خط جدید مثل خطوط داخلی صدا زده میشود.
| پارامتر | نوع | الزامی | توضیح |
|---|---|---|---|
| mapping | Dict[str,str] | ✅ | دیکشنری نگاشت حروف به نمادها |
| script_name | str | ✅ | نام خط — با همین نام صدا زده میشود |
| description | str | — | توضیح خط |
| author | str | — | نام سازنده |
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() فقط برای طول عمر همان پردازه اثر دارد. اگر خط سفارشی را در یک سرویس دائمی میخواهی، نگاشت را جایی ذخیره کن و در هر بالا آمدن برنامه دوباره ثبتش کن.چت هوشمند که پاسخ را به خط باستانی تولید میکند. برای گرفتن کلید میتوانی از لیارا یا هر سرویس سازگار استفاده کنی.
| پارامتر | نوع | توضیح |
|---|---|---|
| api_key | str | کلید API سرویس هوش مصنوعی |
| base_url | str | آدرس پایهی سرور هوش مصنوعی |
| user_input | str | متن ورودی کاربر |
| script | str | خط باستانی هدف |
| include_translation | bool | اگر True باشد، ترجمهی فارسی و انگلیسی هم برمیگردد |
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)
ترجمهی معنایی متن باستانی به فارسی و انگلیسی — نه بازگردانی حرفبهحرف. مدل جمله را میفهمد و تفسیر میکند.
from ancient import AncientReverseAI
ai = AncientReverseAI(api_key="YOUR_API_KEY", base_url="YOUR_BASE_URL")
result = ai.translate(text="𒀀𒁀𒂊", script="cuneiform")
print(result)
یک تصویر از خط باستانی میگیرد و نوع خط، تحلیل ظاهری نمادها، تفسیر متن و ترجمهی فارسی و انگلیسی را برمیگرداند.
from ancient import AnalyzePhoto
analyzer = AnalyzePhoto(api_key="YOUR_API_KEY", base_url="YOUR_BASE_URL")
print(analyzer.analyze_image("test.png"))
صدا را از میکروفون ضبط میکند یا فایل صوتی میگیرد، با هوش مصنوعی به متن تبدیل میکند و سپس متن را به خط باستانی مینویسد.
| پارامتر | نوع | توضیح |
|---|---|---|
| api_key | str | کلید API سرویس تبدیل صوت (اجباری) |
| base_url | str | آدرس پایهی سرور هوش مصنوعی |
| script | str | خط باستانی مقصد |
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)
یک وباپ Flask محلی و کاملاً آفلاین برای تبدیل متن به خطوط باستانی — بدون نیاز به هاست، سرور خارجی یا API Key. مناسب دمو، آموزش و استفادهی شخصی.
from ancient import AncientWeb
app = AncientWeb(version="6.2.0")
app.run_app() # اجرا روی http://localhost:5000
وباپ هوشمند ترکیبی از 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)
اجرای همین سایت مستندات بهصورت محلی. با هر نسخهی جدیدی که منتشر شود، محتوای این سایت هم بهروز میشود.
from ancient import AncientDocs
doc = AncientDocs()
doc.run()
ربات آماده برای تلگرام، روبیکا و بله. کاربر دستور باستانی <متن> را میفرستد، ربات متن را تبدیل میکند، یک تصویر طلایی باکیفیت میسازد و متن و تصویر را پس میفرستد.
| متد | پیامرسان | توضیح |
|---|---|---|
| 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")
باستانی سلام ایران
فریمورک یک 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
============================================================
🔗 ارتباط با ما
ساخته شده با ❤️ توسط امیرحسین خزاعی