def predict():
    '''
    For rendering results on HTML GUI
    '''
    #int_features = [22582, 2, 170, 90.0, 120, 80, 1, 1, 1, 1, 1, 31]
    i = 0
    myList = []
    for x in request.form.values():
        if i == 0:
            name = x
        elif i == 1:
            email = x
        else:
            myList.append(x)
        i = i + 1

    int_features = [int(x) for x in myList]
    int_features[0] = int_features[0] * 365
    data = int_features[3] / (int_features[2] / 100)**2
    int_features.append(data)
    final_features = pd.DataFrame([int_features])
    prediction = model.predict(final_features)
    email_sender = EmailSender()

    email_file = open("email-templates/email-template-district.html", "r")
    email_message = email_file.read()
    if prediction[0] == 0:
        email_pred = "Hey! you are healthy. keep going on..Check your email for more information"
    else:
        email_pred = "Hey! you are more likely to have a cardio vascular outbreak. Take care. Check your email or the below link for more information"
    email_sender.sendEmailDistrict(name, email, email_message, email_pred)
    if prediction[0] == 0:
        return render_template(
            'index.html',
            prediction_text=
            'Hey! you seem not to have any cardio issues. you are healthy!. keep going on..'
        )

    return render_template(
        'index.html',
        prediction_text=
        'Hey! you are more likely to have a cardio vascular outbreak. Take care of your health. For more details about the disease check the below link or your email'
    )
Esempio n. 2
0
def getUserDetails(req, db):
    sessionID = req.get("session")
    session = re.compile("sessions/(.*)")
    sessionID = session.findall(sessionID)[0]
    result = req.get("queryResult")
    user_says = result.get("queryText")
    name = result.get("parameters").get("name")
    email = result.get("parameters").get("email")
    mobile = result.get("parameters").get("mobile")
    pincode = result.get("parameters").get("pincode")
    regex_email = "^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$"
    regex_mobile = "[0-9]{10}"
    regex_pincode = "[0-9]{6}"
    if re.search(regex_email, email) is None:
        fulfillmentText = "Not a valid email. Please start again and enter valid email."
        bot_says = fulfillmentText
        if db.conversations.find({"sessionID": sessionID}).count() > 0:
            db.conversations.update_one(
                {"sessionID": sessionID},
                {"$push": {
                    "events": {
                        "$each": [user_says, bot_says]
                    }
                }})
        else:
            db.conversations.insert_one({
                "sessionID": sessionID,
                "events": [user_says, bot_says]
            })
        return {"fulfillmentText": fulfillmentText}
    if re.search(regex_mobile, mobile) is None:
        fulfillmentText = "Not a valid mobile number. Please start again and enter valid mobile number."
        bot_says = fulfillmentText
        if db.conversations.find({"sessionID": sessionID}).count() > 0:
            db.conversations.update_one(
                {"sessionID": sessionID},
                {"$push": {
                    "events": {
                        "$each": [user_says, bot_says]
                    }
                }})
        else:
            db.conversations.insert_one({
                "sessionID": sessionID,
                "events": [user_says, bot_says]
            })
        return {"fulfillmentText": fulfillmentText}
    if re.search(regex_pincode, pincode) is None:
        fulfillmentText = "Not a valid pincode. Please start again and enter valid pincode."
        bot_says = fulfillmentText
        if db.conversations.find({"sessionID": sessionID}).count() > 0:
            db.conversations.update_one(
                {"sessionID": sessionID},
                {"$push": {
                    "events": {
                        "$each": [user_says, bot_says]
                    }
                }})
        else:
            db.conversations.insert_one({
                "sessionID": sessionID,
                "events": [user_says, bot_says]
            })
        return {"fulfillmentText": fulfillmentText}
    try:
        url = "https://api.postalpincode.in/pincode/" + pincode
        res = requests.get(url)
        jsonRes = res.json()
        postOffice = jsonRes[0]["PostOffice"]
        state = str(postOffice[0]["State"])
        if "&" in state:
            state = state.replace("&", "and")
        district = str(postOffice[0]["District"])
        if "&" in district:
            district = district.replace("&", "and")
        if district == "Ahmedabad":
            district = "Ahmadabad"
        elif district == "Bangalore":
            district = "Bengaluru"
        elif district == "Central Delhi":
            district = "New Delhi"
        print(state, end=',')
        print(district)
        try:
            url1 = "https://api.covid19india.org/v2/state_district_wise.json"
            res1 = requests.get(url1)
            jsonRes1 = res1.json()
            stateDistrictData = jsonRes1
            for i in range(len(stateDistrictData)):
                stateDistrictData1 = stateDistrictData[i]
                if stateDistrictData1["state"] == state:
                    districtData = stateDistrictData1["districtData"]
                    for j in range(len(districtData)):
                        email_sender = EmailSender()
                        if districtData[j]["district"] == district:
                            confirmed = str(districtData[j]["confirmed"])
                            print(f"\n Confirmed Cases are: {confirmed}")
                            email_file = open(
                                "email-templates/email-template-district.html",
                                "r")
                            email_message = email_file.read()
                            email_sender.sendEmailDistrict(
                                name, email, district, confirmed,
                                email_message)
                            fulfillmentText = "A mail has been sent to you with current COVID-19 cases in your area."
                            bot_says = fulfillmentText
                            if db.conversations.find({
                                    "sessionID": sessionID
                            }).count() > 0:
                                db.conversations.update_one(
                                    {"sessionID": sessionID}, {
                                        "$push": {
                                            "events": {
                                                "$each": [user_says, bot_says]
                                            }
                                        }
                                    })
                            else:
                                db.conversations.insert_one({
                                    "sessionID":
                                    sessionID,
                                    "events": [user_says, bot_says]
                                })
                            return {"fulfillmentText": fulfillmentText}
                    else:
                        fulfillmentText = "Sorry we did not found any data of COVID-19 in " + district + ". It might be a misspelling or we don't have record of the district."
                        bot_says = fulfillmentText
                        if db.conversations.find({
                                "sessionID": sessionID
                        }).count() > 0:
                            db.conversations.update_one(
                                {"sessionID": sessionID}, {
                                    "$push": {
                                        "events": {
                                            "$each": [user_says, bot_says]
                                        }
                                    }
                                })
                        else:
                            db.conversations.insert_one({
                                "sessionID":
                                sessionID,
                                "events": [user_says, bot_says]
                            })
                        return {"fulfillmentText": fulfillmentText}

        except HTTPError as http_err:
            print(f"HTTP error occurred: {http_err}")
        except Exception as err:
            print(f"Other error occurred: {err}")

    except HTTPError as http_err:
        print(f"HTTP error occurred: {http_err}")
    except Exception as err:
        print(f"Other error occurred: {err}")
Esempio n. 3
0
def getUserDetails(req):

    result = req.get("queryResult")
    user_says = result.get("queryText")
    name = result.get("parameters").get("user_name")
    email = result.get("parameters").get("user_mail")
    mobile = result.get("parameters").get("user_phone")
    pincode = result.get("parameters").get("user_pin")

    try:
        url = "https://api.postalpincode.in/pincode/" + pincode

        res = requests.get(url)
        jsonRes = res.json()
        postOffice = jsonRes[0]["PostOffice"]
        state = str(postOffice[0]["State"])
        if "&" in state:
            state = state.replace("&", "and")
        district = str(postOffice[0]["District"])
        if "&" in district:
            district = district.replace("&", "and")
        if district == "Ahmedabad":
            district = "Ahmadabad"
        elif district == "Bangalore":
            district = "Bengaluru"
        elif district == "Central Delhi":
            district = "New Delhi"
        print(state, end=',')
        print(district)
        try:
            url1 = "https://api.covid19india.org/v2/state_district_wise.json"
            res1 = requests.get(url1)
            jsonRes1 = res1.json()
            stateDistrictData = jsonRes1

            for i in range(len(stateDistrictData)):

                stateDistrictData1 = stateDistrictData[i]
                if stateDistrictData1["state"] == state:

                    districtData = stateDistrictData1["districtData"]
                    for j in range(len(districtData)):
                        email_sender = EmailSender()
                        if districtData[j]["district"] == district:
                            confirmed = str(districtData[j]["confirmed"])
                            print(f"\n Confirmed Cases are: {confirmed}")
                            email_file = open(
                                "email-templates/email-template-district.html",
                                "r")
                            email_message = email_file.read()
                            email_sender.sendEmailDistrict(
                                name, email, district, confirmed,
                                email_message)
                            fulfillmentText = "A mail has been sent to you with current COVID-19 cases in your area."
                            bot_says = fulfillmentText

                            return {"fulfillmentText": fulfillmentText}
                    else:
                        fulfillmentText = "Sorry we did not found any data of COVID-19 in " + district + ". It might be a misspelling or we don't have record of the district."
                        bot_says = fulfillmentText

                        return {"fulfillmentText": fulfillmentText}

        except HTTPError as http_err:
            print(f"HTTP error occurred: {http_err}")
        except Exception as err:
            print(f"Other error occurred: {err}")

    except HTTPError as http_err:
        print(f"HTTP error occurred: {http_err}")
    except Exception as err:
        print(f"Other error occurred: {err}")