السلام عليكم
هذه هي الخطوات التي قمت بها حتى أنهيت الـ WebShots ripper وضعتها لأني وجدت موضوع الأخ سردال يطلب فيه أن نشرح عن طريقة برمجة البرنامج.
أكيد كلكم بيعرف موقع الـ www.webshots.com و أكيد كلكم بيعرف أن تصدير الصور المحمية إلى JPG غير مسموح .
و كلكم يعرف أنه لا يوجد أي برنامج آخر للتعامل مع ملفات الـ WBC.
طلب مني صديق أن أعمل برنامج استخراج و فرز الصور من الويب شوت ففكرت و بدأت بالبحث عن طريقة لعمل ذلك .
صدفة وجدت برنامج يسمى wbc2jpg و كان يقوم باستخراج الـ jpg من الـ wbc و لكنه كان سيء جداً إذ أنه بطيء جداً لأنه يعمل loop Byte by byte و لا يستطيع معرفة أي معلومة عن الصورة كعنوانها و أسم المصور و تصنيفها و غيرها إذ أن استخراج الصور يكون أعمى و كان البرنامج هذا محط إهتمام الكل.
و تعرفت على طريقة فك تشفير الصورة المحمية لكن بلغة البرمجة الـ C فحولتها للـ VB و بدأت بعمل البرنامج فاستخدمت الـ HexEditor للتعرف على ملفات الـ wbc و بدأت بتسجيل الملاحظات على ورق و البحث داخل الملف و التنقل و التجريب و مقارنة النتائج فتوصلت بالنهاية إلى كيف تتم عملية قراءة ملف الـ Wbc من قبل برنامجه الأصلي، و تعلمت نظام هذا الملف فبدأت بكتابة الكود و نجح و لكنه كان يستخرج و لا يفرز الصورفساعدني صديقي لدرجة كبيرة في تحديد طرق فرز الصور بأنواعها كونه من رواد هذا الموقع و من جامعي الصور فيه و كان يعرف كيف يتم فرز الصور القديمة و الحديثة ففكرت بالطريقة و عملتها و عانيت الكثير من الأخطاء بالفرز كما واجهت مشكلة حيرتني جداً لا تظهر إلى على الـ XP فبعد تجارب كثيرة و ملل و تعصيب توصلت إلى أن الـ XP لا يقبل أن ينهي أسم الملف أو المجلد بفراغ فيعمل trim للأسم و أنا لم أضع له أن يحذف الفراغات من بداية و نهاية الأسم في حين لا يوجد أي مشكلة على الميلينيوم هذا بالأضافة إلى مشاكل ضمنية أخرى لكن بعد كل هذه الأخطاء انتهى العمل تقريباً .
و كان الناتج برنامج يقوم باستخراج و فرز الصور و تصدير معلومات عن الصور الموجودة داخل ملف الـ wbc و هو متوافق مع الأصدارات القديمة جداً من الـ Collections فيقوم بمحاولة فرزها بعدة طرق .
ووجدت من فترة معلومة تفيد بكيفية الحصول على الرابط المباشر لتحميل الصور من الويب شوت فأضفت له أداة لتقوم بهذه العملية أوتوماتيكياً .
فما عليك إلا الدخول إلى موقع الويب شوت و البرنامج سيقوم بتعديل الأرتباطات أوتوماتيكياً و كان طريقي في هذا الموضوع أن حملت العديد من البرامج الجاهزة التي تتعامل أو تتحكم بالأنترنت أكسبلورير قرأتها و تعلمتها و أخذت منها و لكن الشيء اللي كنت أطلبه مختلف فبحثت في موقع الـ MSDN لمايكروسوفت حول عنصر الـ Internet Control و تصفحت كل أحداثه و توابعه أو دواله أي الـ Functions و الـ Methods بالإضافة إلى الـ Events فكونت فكرة متكاملة عن الأداة و كيفية عملها فبدأت ببرمجتها وواجهتني بعض المشاكل لكن بالنهاية أنهيتها و بذلك اكتمل البرنامج.
تبقى المرحلة الأخيرة و هي مرحلة ملاحقة و التصرف مع الأخطاء غير المتوقعة و عن إصدار رسائل الخطأ أو التصرف دون أزعاج المستخدم و بالأضافة للتفصيلات البرمجية الصغيرة الواجب إضافتها كالتعامل مع السحب و الأفلات و قبول الـ Command parameters و الـ popup menus و هي مسألة ضرورية و حيوية جداً و لا ننسى المساعدة و الـ tooltips لأهم العناصر و المهم هو أن تعطي المستخدم واجهة مريحة و سهلة و ذكية و لا نزعج المستخدم بالرسائل الكثيرة و الأهم في ذلك هو أن نهتم بالتفصيلات و التي نتعلمها بمراقبة سلوك البرامج الأحترافية مثل برامج مايكروسوفت و أدوب فوتوشوب و غيرها .
لكن و للأسف فقد تم رفض وضعه في موقع الـ TuCows لأنه ينتهك اتفاقية الترخيص في الـ WebShots ، ثم تم حذفه بعد فترة من وضعه بالـ download.com أو الـ Cnet ...
لتحميل نسخة قديمة يمكنك تحميلها من هنا:
http://www.geocities.com/whisperitvo...hotsripper.zip
انقر بالزر اليمين و اختر حفظ الهدف باسم .
و كل فترة يتخطى الـ bandwidth المسموح لذلك إن واجهتك مشكلة جرب ثاني يوم! .
حتى شوف موقع استضافة مجاني و غير محدود بالترافيك و غير محدود بأقصى حجم للملف .
بصراحة هذه هي المرة الأولى التي أضعه بها في موقع عربي!.
لأني وجدت موقع سوالف أرقى بكثير من المواقع الأخرى.
و يسرني جداً لو أجد مبرمجين جادين كي أتشارك معهم مستقبلاً في أي برنامج.
أتمنى لو تضعو ملاحظاتكم أو اقتراحاتكم .
المشروع الذي أعمل عليه هو الـ Whisperit Instant Messenger و هو شبه مكتمل لكني أعاني من مشكلة فيه هي أن الـ PHP محدودة جداً كي تكون server و أفضل طريقة لعمل ذلك هي عبر الـ PERL فإن كان أي مبرمج لديه خبرة جيدة بالـ PERL فأتمنى أن يراسلني .
aalkader@ny.com
مع جزيل الشكر