تم تحديث هذا للعمل مع موقع recreation.gov الجديد وواجهة برمجة التطبيقات (API)!!!
يقوم هذا البرنامج النصي بإلغاء موقع https://recreation.gov لمعرفة مدى توفر موقع المخيم.
ملحوظة: يرجى عدم إساءة استخدام هذا البرنامج النصي. معظم الأشخاص لا يعرفون كيفية تشغيل أدوات الكشط ضد مواقع الويب، لذا فأنت تتمتع بميزة غير عادلة باستخدام هذا.
$ python camping.py --start-date 2018-07-20 --end-date 2018-07-23 --parks 232448 232450 232447 232770
TUOLUMNE MEADOWS: 0 site(s) available out of 148 site(s)
? LOWER PINES: 11 site(s) available out of 73 site(s)
UPPER PINES: 0 site(s) available out of 235 site(s)
BASIN MONTANA CAMPGROUND: 0 site(s) available out of 30 site(s)
يمكنك أيضًا القراءة من stdin. قم بتعريف ملف (على سبيل المثال، parks.txt
) بمعرفات الحديقة مثل هذا:
232447
232449
232450
232448
ثم استخدمه مثل هذا:
$ python camping.py --start-date 2018-07-20 --end-date 2018-07-23 --stdin < parks.txt
بالنسبة لبوويرشيل، جرب هذا:
PS > Get-Content parks.txt | python camping.py --start-date 2021-09-24 --end-date 2022-09-24 --stdin
إذا كنت تريد الاطلاع على مزيد من المعلومات حول مواقع المعسكرات المتوفرة، فقم بتمرير --show-campsite-info
مع --nights <int>
:
$ python camping.py --start-date 2018-07-20 --end-date 2018-07-23 --parks 232448 232450 232447 232770 --show-campsite-info --nights 1
There are campsites available from 2018-07-20 to 2018-07-23!!!
? ELK CREEK CAMPGROUND (SAWTOOTH NF) (232042): 1 site(s) available out of 1 site(s)
* Site 69800 is available on the following dates:
* 2018-07-20 -> 2018-07-21
* 2018-07-21 -> 2018-07-22
إذا كنت تريد فقط الحصول على نتائج لمعرفات معينة لموقع المخيم، فقم بتمرير --campsite-ids <int>
:
$ python camping.py --start-date 2018-07-20 --end-date 2018-07-23 --parks 232431 --show-campsite-info --nights 1 --campsite-ids 18621
ستحتاج إلى وضع هذا البرنامج النصي في ملف crontab مدته 5 دقائق. يمكنك أيضًا الحصول على مخرجات الرموز التعبيرية الناجحة (؟) ثم القيام بشيء ردًا على ذلك، مثل إعلامك بوجود موقع تخييم متاح. راجع قسم "إشعارات تويتر" أدناه.
إذا كنت مرنًا بشأن تواريخ السفر، فيمكنك البحث عن عدد محدد من الليالي المتجاورة ضمن نطاق واسع من التواريخ. يعد هذا مفيدًا للمخيمات في المناطق ذات الطلب المرتفع (مثل وادي يوسمايت) أو خلال موسم الذروة عندما تكون الفتحات نادرة. ما عليك سوى تحديد الوسيطة --nights
. على سبيل المثال للبحث عن حجز لمدة 5 أيام في شهر يونيو 2020 في حوض شيسوس:
$ python camping.py --start-date 2020-06-01 --end-date 2020-06-30 --nights 5 234038
There are campsites available from 2020-06-01 to 2020-06-30!!!
? CHISOS BASIN (BIG BEND) (234038): 13 site(s) available out of 62 site(s)
ما عليك فعله هو الانتقال إلى https://recreation.gov والبحث عن المخيم الذي تريده. انقر عليها في الشريط الجانبي للبحث. من المفترض أن ينقلك هذا إلى صفحة خاصة بهذا المخيم، وسيبدو عنوان URL بالشكل https://www.recreation.gov/camping/campgrounds/<number>
. هذا الرقم هو معرف الحديقة.
انتقل إلى https://recreation.gov وابحث أولاً عن المخيم الذي تريده، ثم حدد موقع المخيم المحدد داخل هذا المخيم. يجب أن يبدو عنوان URL لموقع المخيم بالشكل https://www.recreation.gov/camping/campsites/<number>
. هذا الرقم هو معرف موقع المخيم.
يمكنك البحث عن مدى التوفر في موقع تخييم محدد واحد فقط باستخدام الوسيطة "--campsite-ids". يمكن أن يكون هذا مفيدًا إذا كان لديك موقع تخييم مفضل ترغب في استخدامه أو إذا كان لديك حجز في موقع تخييم محدد تريد إضافة أيام إليه قبل أو بعد حجزك الحالي. يعمل هذا البحث فقط مع مجموعة مخيم/موقع تخييم واحدة في كل مرة.
$ python camping.py --start-date 2020-06-01 --end-date 2020-06-30 --nights 5 --parks 234038 --campsite-ids 6943
There are campsites available from 2020-06-01 to 2020-06-30!!!
? CHISOS BASIN (BIG BEND) (234038): 1 site(s) available out of 62 site(s)
يمكنك أيضًا أن تأخذ هذا الموقع في جولة. بفضل باستودان!
يمكنك استبعاد مواقع معسكرات محددة، على سبيل المثال مواقع المجموعات، عن طريق تحديد ملف (على سبيل المثال excluded.txt
) بمعرف موقع مخيم واحد لكل سطر واستخدام الوسيطة --exclusion-file
مثل هذا:
$ python camping.py --start-date 2018-07-20 --end-date 2018-07-23 --parks 232448 232450 232447 232770 --exclusion-file excluded.txt
لقد كتبت هذا في Python 3.7 ولكني اختبرته على أنه يعمل مع الإصدار 3.5 و3.6 أيضًا. من الأفضل استخدام 3.9+
python3 -m venv myvenv
source myvenv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
# You're good to go!
تم تنسيق هذا الرمز باستخدام الأسود وisort:
black -l 80 --py36 camping.py
isort camping.py
ملحوظة: black
يدعم الإصدار 3.6+ فقط، لذا انتبه!
لا تتردد في إرسال طلبات السحب، أو إلقاء نظرة على النسخة الأصلية: https://github.com/bri-bri/yosemite-camping
يجب أن تمر كافة الاختبارات قبل أن يتم دمج طلب السحب. لتشغيل جميع الاختبارات، أدخل القرص المضغوط في دليل المشروع وقم بتشغيل:
python -m unittest
إذا كنت تريد أن يتم إعلامك بشأن توفر موقع المخيم عبر Twitter (فهي واجهة برمجة التطبيقات الوحيدة الموجودة والتي تتميز بسهولة الاستخدام)، فيمكنك القيام بذلك:
twitter_credentials.json
لتتناسب مع القيم الأساسية الخاصة بك.notifier.py
. انظر أدناه للحصول على مثال. python camping.py --start-date 2018-07-20 --end-date 2018-07-23 --parks 70926 70928 | python notifier.py @banool1
ستحتاج إلى إنشاء التطبيق على حساب آخر (مثل حساب روبوت)، وليس حسابك، حتى يتم إعلامك عند نشر التغريدة.
لقد تركت مفاتيح API الخاصة بي هنا ولكن لا تستغلها، شكرًا.
شكرًا لـ https://github.com/bri-bri/yosemite-camping لإيصالي معظم الطريق إلى الإصدار القديم.