سكربت لتحميل القرآن من الأنترنت

Date June 18, 2007

مزود الانترنت هذه الأيام يحبني :) من فتره إلى أخرى ترتفع السرعه لدي من 128 إلى 512 :)
إستيقضت اليوم ووجدتها 512 فجلست أفكر كيف سأستفيد من هذه السرعه بشكل سريع قبل أن ترجع إلى 128
بعد تفكير، قررت تنزيل القرآن من موقع islamway.com حيث كنت أجد بعض من الصعوبه في سماع السوره وذلك يعود إلى السرعه التعيسه!
الأمر الذي إستخدمته لتنزيل القرآن كاملا هو التالي:
for i in $(seq 1 9); do wget -c http://download.quran.islamway.com/quran3/213/$(printf “%02d$i”).mp3; done; && for i in $(seq 10 99); do wget -c http://download.quran.islamway.com/quran3/213/$(printf “%01d$i”).mp3; done; && for i in $(seq 100 114); do wget -c http://download.quran.islamway.com/quran3/213/$i.mp3; done;

وهو عباره عن ثلاث جمل تكرار كتبتها بشكل سريع قبل ان أفقد الخط السريع :)
لاحظ ان السور في موقع islamway.com تخزن من ثلاث خانات ثم نوع الملف مثلا

001.mp3
055.mp3

وهكذا… أثناء تحميل السور قمت بتطوير الكود ليصبح أكثر فاعليه وبالطبع لكي أستفيد منه في المستقبل عند عودة الخط السريع، حيث عن طريق السكريبت الجديد تستطيع تحديد أول سوره تريد أن تبدأ بتحميلها وكذلك أيضاً تستطيع تحديد آخر سوره..
مثلا أريد السور من رقم 12 إلى رقم 66
وأيضاً تستطيع تغير القارء وذلك بتغير عنوان السوره على الموقع …
أيضا الأمر المهم والأخير وهو ان السكريبت يقوم بتحويل ارقام السور إلى إسم السوره مثلا يقوم بتحويل 001 إلى الفاتحة.. وهكذا…
إذا أحببت إستخدامه أو تجريبه قم بتحميل الملفين التاليين (الأول هو السكريبت والثاني يحتوي على أسامي السور)
http://shakerqawasmi.googlepages.com/get_quran
http://shakerqawasmi.googlepages.com/Swar_Name
قم بوضع الملفين في المجلد الذي تريد أن تنزل القرآن فيه ونفذ التالي:

chmod +x get_quran
./get_quran

سيسألك عدة أسأله عن موقع السور وأيضا أول سوره وأخر سوره.. ثم سيبدأ بالتحميل

تحديث:
تم تحديث السكربت ليحتوي على الخيارات -t 0 -T 10
أشكر أبوفيصل على هذه المعلومه الطيبه

تحياتي

Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • StumbleUpon
  • Technorati
  • Reddit
  • Webnews
  • MisterWong
  • Y!GG

8 Responses to “سكربت لتحميل القرآن من الأنترنت”

  1. qaz10 said:

    السلام عليكم ورحمة الله وبركاته
    كيف حالك أخ شاكر ….ان شاء الله انك بصحه وعافيه يارب.
    ومشكور على السكربت الرائع .. بما اني احاول اني اتعلم برمجة الشل وجدت الفائدة في مقالك الأكثر من رائع .بارك الله فيك
    وتقبل تحيتي

  2. Shaker said:

    وعليكم السلام ورحمة الله وبركاته
    حياك الله أخي عبدالله، الحمد لله الصحه تمام أسأل الله أن تكون بصحه وعافيه أنت أيضاً
    من دواعي سروري أن السكربت أعجبك وأفادك
    وأسأل الله التوفيق لك في تعلم الشل
    تقبل تحياتي

  3. Mohammed said:

    السلام عليكم ورحمة الله وبركاته

    أحب أن أظيف أمر بسيط وهو من خيارات wget

    wget -t 0 -T 10 -c http://www…….

    طبعاً t هي عدد مرات المحاولة للطلب من السيرفر وعلى الوضع الإفتراضي تكون 20 مرة أما هنا فهي بعدد غير محدود
    T هي الوقت الذي يحسبه البرنامج قبل أن يعاود المحاولة في حال صار الاتصار خاملاً

    وهي هنا 10 ثواني

    هذا ما أحببت أن اظيفة

    أخوك أبو فيصل ،،،

  4. Shaker said:

    وعليكم السلام ورحمة الله وبركاته
    أشكرك جزيل الشكر أخي أبو فيصل على هذه المعلومه الطيبه
    تم تحديث السكربت ليحتويها
    تقبل تحياتي

  5. qasem said:

    طبعا بمفهوم المصادر المفتوحة أكيد مسمحولي أضيف على هذا السكريبت المفيد جدا
    يمكنك بدل تقسيم المدي بين اﻷحاد والعشرات والآلاف
    يمكننا أضافة الخيار w مع اﻷمر س seq

    seq -w 1 114

    وبالنسبة ﻷمر printf
    ممكن نستغني عنه عشان نسرع السكريبت
    ونعوض بداله بالمتغير i
    quran-site/”$i”.wav

    أتمنى أكون أضفت شئ مفيد
    وسلامي

  6. Shaker said:

    حياك الله أخي قاسم، نعم تستطيع التعديل على السكربت كما تريد وذلك من دواعي سروري
    بالنسبه لـ seq
    في الأصل واجهتني مشكله معها عندما مثلا أختار أرقام بين 10 و 20 بالتالي أمر
    seq سيكون بالشكل التالي:
    $ seq -w 10 20
    10
    11
    12
    ..
    ..
    19
    20
    مثلا الملف 11
    هو ملف غير موجود بالنسبه للموقع
    يجب أن يظهر 011 وكذلك بالنسبه للأرقام ما بين 1 إلى 9 فيجب زيادة خانتين لها، وبالتالي لم أستفد إلا في حالة كان الرقم الأخير ينتهي بـ 100 أو أعلى لتظهر باقي الأرقام بالشكل المطلوب

    بالنسبه لـ printf
    عند إستخدام
    seq -w 1 114
    لن يوجد مشكله في الإستغناء عن
    printf
    مثلا:
    wget -t 0 -T 10 -c $def_url/$i.$fileformat
    ولكن عندما لم أستطع إضافة الخانات المطلوبه إضطررت إلى إستخدام
    printf
    بصراحه لم أستطع أن أجد حل لذلك، فأرجو إن كان لديك حل ألا تبخل علينا
    تحياتي لك
    أخوك..

  7. qasem said:

    بالنسبة للأمر
    seq
    لن يعوض باﻷصفار إلا إذا كان المدى المعطى له من خانتين مختلفين مثلا أحاد وعشرات
    فعند تنفيذ اﻷمر
    seq -w 1 114
    نجد أنه يعطينا ما نريد
    001
    002

    011
    012
    ..
    091
    092
    ..
    100
    101
    ..
    114

    وبذلك فمن خلال هذا الخيار نكون تخلصنا من قضية تقسيم المدي … ونصل إلى مدى واحد فقط شامل للسور أجمعين … وحينها لن نححتاج للأمر printf
    ولعى ما أعتقد أن الملفا على خادم طريق اﻷسلام مرتبة هكذا ..أليس كذلك؟

  8. Shaker said:

    نعم كلامك صحيح، ولكن أيضا كان الهدف من السكريبت أن أختار مدى معين من السور، مثلا من 55 إلى 77 وبالتالي كان علي تقسيم المدى

    سأقوم في أقرب فرصه بإعادة كتابة السكربت إن شاء الله
    ليكون بدون بدون تقسيم مدى كما تحدثت أنت
    تقبل تحياتي

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>