Skip to content

Latest commit

 

History

History
58 lines (43 loc) · 2.11 KB

README.md

File metadata and controls

58 lines (43 loc) · 2.11 KB

import requests import schedule import time from datetime import datetime base_cowin_url = "https://cdn-api.co-vin.in/api/v2/appointment/sessions/public/calendarByDistrict" now = datetime.now() today_date = now.strftime("%d-%m-%Y") api_url_telegram = "https://api.telegram.org/bot(This will be telegram bot api)/sendMessage?chat_id=@groupid&text=" group_id = "Cowin_Bot_UEM"

WestBengal_district_ids = [710,711,712,713,714,716,718,719,720,721,722,723,724,725,726,727,7283,729,730,731,732,733,734,735,736,737] def do_nothing(): def fetch_data_from_cowin(district_id): query_params = "?district_id={}&date={}".format(district_id, today_date) headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0"}

    final_url = base_cowin_url+query_params
    response = requests.get(final_url,headers=headers)
    extract_availability_data(response)
    #print(response.text)

def fetch_data_for_state(district_ids):
    for district_id in district_ids:
        fetch_data_from_cowin(district_id)

def extract_availability_data(response):
    response_json = response.json()
    for center in response_json["centers"]:
        for sessions in center["sessions"]:
            if sessions["available_capacity_dose1"]>1 :
                message = "Pincode: {}, Name: {}, Available_Does: {}, Minimum Age: {}".format(
                      center["pincode"], 
                      center["name"], 
                      sessions["available_capacity_dose1"], 
                      sessions["min_age_limit"])
                send_message_telegram(message)



def send_message_telegram(message):
    final_telegram_url = api_url_telegram.replace("__groupid__",group_id)
    final_telegram_url = final_telegram_url + message
    response= requests.get(final_telegram_url)
    print(response)






if __name__ == "__main__":
        fetch_data_for_state(WestBengal_district_ids)

schedule.every(300).seconds.do(do_nothing) while 1: schedule.run_pending() time.sleep(1)