حماية الدفعالتفاصيل
- التعديلات ضمن الباقة مجانية.
- إذا لم تردّ خلال 3 أيام من التسليم، يُقبل العمل تلقائيًا.
يُحجز المبلغ عند الدفع ولا يُحوَّل إلا بعد قبولك العمل.

مثال على النتيجة
دمج ملفات المبيعات الشهرية لـ 9 متاجر في تقرير Excel واحد
طريقة التشغيل
python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO المجلد: sales/2026-10، عُثر على 9 ملفات
2026-11-02 09:14:03 INFO shop-01.csv: 1,284 صفًا
2026-11-02 09:14:04 INFO shop-02.xlsx: 967 صفًا
2026-11-02 09:14:04 WARN shop-07.csv: تُخطّيت 3 صفوف بلا سعر (الأسطر 88، 412، 913)
2026-11-02 09:14:05 INFO تم: 10,412 صفًا -> report-2026-10.xlsx (الورقتان «المبيعات» و«الإجماليات»)
إعدادات لا كود
أسماء أعمدة كل متجر موجودة في settings.ini، فالمتجر الجديد أو العمود الذي تغيّر اسمه يعني سطرًا واحدًا هناك:
[columns]
date = التاريخ, تاريخ البيع, اليوم
product = المنتج, الصنف, الاسم
quantity = الكمية, العدد, قطع
price = السعر, سعر الوحدة
جزء من الكود
def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
"""يقرأ ملف متجر واحد ويمنح أعمدته أسماء أعمدة التقرير."""
table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
renamed = {}
for name, variants in columns.items():
found = next((c for c in table.columns if c.strip() in variants), None)
if found is None:
raise ReportError(f"{path.name}: لا يوجد عمود لـ «{name}» (جرى البحث عن: {', '.join(variants)})")
renamed[found] = name
table = table.rename(columns=renamed)[list(columns)]
table["shop"] = path.stem
return table
الملفات: أرشيف ZIP يضم merge_sales.py (310 أسطر)، وsettings.ini، وrequirements.txt، وملف README يشرح تثبيت Python وتشغيل السكربت ومعنى كل رسالة في السجل. يشغّله العميل على كمبيوتره الخاص.
العميل: سلسلة صغيرة من 9 متاجر للأدوات المكتبية؛ يرسل كل متجر مبيعاته الشهرية في ملف CSV أو Excel، بأسماء أعمدة تختلف قليلًا من متجر إلى آخر. المهمة: سكربت واحد يقرأ كل ملف في مجلد، ويوحّد الأعمدة في شكل واحد، ويكتب تقرير Excel واحدًا يضم كل المبيعات وورقة بالإجماليات حسب المتجر.
العميل وجميع التفاصيل افتراضية.
عن هذه الخدمة
صور WebP عادةً أخف بشكل ملحوظ من JPEG أو PNG بمظهر مشابه، فتُحمَّل الصفحات أسرع. يحوّل سكربت Python هذا الصور في مجلد، مثل مجلد التحميلات في موقعك بعد نسخه إلى جهازك، إلى WebP: الصور الفوتوغرافية بالجودة التي تختارها، والشعارات والرسومات مع الحفاظ على الشفافية أو دون أي فقد. يحافظ على ترتيب المجلدات وأسماء الملفات، ويتخطى الصور المحوّلة سابقًا، وبدءًا من الباقة القياسية يسجل المساحة التي وفّرها كل ملف. أرسل إلينا ترتيب المجلدات وبضع صور نموذجية. تشغّل السكربت بنفسك على جهازك أو خادمك. إنه يُنشئ الملفات؛ أما توجيه صفحات موقعك إليها (أو إضافة تفعل ذلك) فخطوة منفصلة يشرحها ملف README.
ما المشمول
- ما الذي تحصل عليهأرشيف ZIP يضم سكربت Python وملف README بتعليمات خطوة بخطوة، ومن الباقة القياسية ملف إعدادات بالمجلدات والجودة؛ ويُعرض الكود أيضًا في صفحة الطلب.
- يقبل JPEG وPNGوكذلك GIF وBMP بلا حركة
- الحفاظ على الشفافيةتبقى الشعارات والأيقونات نظيفة على أي خلفية
- الأسماء والمجلدات نفسهاphoto.jpg يصبح photo.webp في المكان نفسه
- الاحتفاظ بالأصوللا يُحذف أي شيء ولا يُكتب فوقه
- كود مقروءمع تعليقات، ليسهل تغيير الجودة لاحقًا
كيف يعمل
- 1المهمةتصف المجلدات وترسل بضع صور نموذجية
- 2الكودنكتب السكربت ودليل تشغيله
- 3جرّبهتحوّل نسخة من المجلد وتقارن الصور
- 4التعديلاتتطلب التعديلات ضمن باقتك وترسل أي رسالة خطأ
ما نحتاجه منك
مكان الصور (مجلد على جهازك، أو مجلد على خادمك يمكنك الوصول إليه بنفسك)، وعددها التقريبي وأنواعها: صور فوتوغرافية أو شعارات أو لقطات شاشة. هل توضع ملفات WebP بجانب الأصول أم في مجلد منفصل، والجودة التي تريدها أو صورة نموذجية للحكم عليها، والمنصة التي يعمل عليها موقعك إن كان ذلك يهم مسارات الملفات. نظامك: Windows أو macOS أو Linux.
سنسألك:
- أين توجد الصور؟
- ما أنواع الصور؟
- أين يجب أن توضع ملفات WebP؟
- أين سيعمل؟
قارن بين الباقات
| الباقات | الأساسيةمجلد إلى WebP16 US$ | القياسيةWebP مع الإعدادات33 US$ | المميزةأداة WebP67 US$ |
|---|---|---|---|
| مدة التنفيذ | 1 يوم | 2 يوم | 3 أيام |
| التعديلات | 1 | 2 | 3 |
| الكود | حتى 150 سطرًا | حتى 400 سطر | حتى 1,000 سطر |
| ملفات الكود | 1 | حتى 3 | حتى 8 |
| ملف الإعدادات | لا | نعم | نعم |
| رسائل خطأ واضحة وسجل | لا | نعم | نعم |
| خيارات التشغيل ودليل لتشغيله وفق جدول زمني | لا | لا | نعم |
| دليل التثبيت والتشغيل (README) | نعم | نعم | نعم |
| اللغة | Python | Python | Python |
| اطلب الأساسية | اطلب القياسية | اطلب المميزة |
حماية الدفع
تدفع عند الطلب، لكن المبلغ لا يُحوَّل إلا مقابل عمل قبلته.
- سعر ثابتلا يتغير سعر الباقة بعد الدفع.
- المبلغ محجوزعند الدفع، يُحجز المبلغ فقط. ولا يُحوَّل إلى Dleex إلا بعد قبولك العمل.
- فحص قبل التسليمتخضع كل نتيجة لفحص الجودة قبل أن تصل إليك، وتراها في صفحة الطلب قبل قبولها.
- تعديلات مجانيةاطلب تعديلات ضمن متطلبات طلبك بالعدد الذي تسمح به الباقة.
- القبول بعد 3 أيامإذا لم تقبل العمل ولم تطلب تعديلات خلال 3 أيام من التسليم، يُقبل تلقائيًا. وإذا كتبت في محادثة الطلب بعد التسليم، يبقى الطلب قيد الانتظار؛ وبعد ردّنا، قد نعيد بدء مهلة 3 أيام وسنُعلمك بذلك في المحادثة.
- إعادة التنفيذ أو استرداد المبلغ كاملًاإذا لم تطابق النتيجة متطلبات طلبك ولم تُصلحها التعديلات، أو استغرق العمل أكثر من ضعف مدة التنفيذ، فاكتب في محادثة الطلب: سنعيد تنفيذ العمل أو نردّ إليك المبلغ كاملًا.
الأسئلة والأجوبة
هل سيعرض موقعي صور WebP بعد ذلك؟
ليس من تلقاء نفسه. يُنشئ السكربت الملفات؛ ولا تزال الصفحات بحاجة إلى الإشارة إليها، أو يجب أن تقدمها منصة موقعك أو إحدى الإضافات. يشرح ملف README الطرق المعتادة، وتضيف الباقة المميزة قائمة بالمسارات القديمة والجديدة للمساعدة في ذلك.
هل يمكن تشغيله على استضافتي؟
نعم، إن كانت استضافتك تتيح تشغيل Python وتثبيت مكتبة، كما تفعل كثير من الخطط التي توفر وصول SSH. وإلا فنزّل المجلد وشغّله على جهازك وارفع ملفات WebP مجددًا.
هل تعرض جميع المتصفحات صور WebP؟
جميع المتصفحات الرئيسية الحالية تعرضها. والاحتفاظ بملفات JPEG وPNG الأصلية بجانبها يتيح للمتصفحات القديمة جدًا الرجوع إليها.
هل ستسجّلون الدخول إلى موقعي وتنفذون ذلك؟
لا. لا نسجّل الدخول أبدًا إلى موقعك أو استضافتك. تشغّل السكربت بنفسك، ويشرح ملف README كل خطوة.
لم تجد إجابتك؟