Example #1
0
def processRequest(req):
    log = logger.Log()
    sessionID = req.get("responseId")
    user_says = req.get("queryText")
    result = reg.get("queryResult")
    log.writeLog(sessionID, "User Says : " + user_says)
    parameters = req.get("parameters")
    name = parameters.get("name")
    pin = parameters.get("pin")
    mailid = parameters.get("mailid")
    phone = parameters.get("phone")
    option_name = paramerers.get("option_name")
    intent = result.get("intent").get('displayName')
    if intent == "covid_intent":
        email_sender = EmailSender()
        template = template_reader.TemplateReader()
        email_message = template.select_info(option_name)
        email_sender.send_email_to_student(mailid, email_message)
        email_file_support = open("email_templates/preventive_Template.html",
                                  "r")
        email_message_support = email_file_support.read()
        email_sender.send_email_to_support(name=name,
                                           phone=phone,
                                           mailid=mailid,
                                           option_name=option_name,
                                           body=email_message_support)
        fulfillmentText = "We have sent the details to you via email. An email has been sent to the Support Team with your contact information, you'll be contacted soon. Do you have further queries?"
        log.write_log(sessionID, "Bot Says: " + fulfillmentText)
        return {"fulfillmentText": fulfillmentText}
    else:
        log.write_log(sessionID, "Bot Says: " + result.fulfillmentText)
Example #2
0
def processRequest(req):
    log = logger.Log()

    sessionID=req.get('responseId')

    result = req.get("queryResult")
    user_says=result.get("queryText")
    log.write_log(sessionID, "User Says: "+user_says)
    parameters = result.get("parameters")
    cust_name=parameters.get("cust_name")
    #print(cust_name)
    cust_contact = parameters.get("cust_contact")
    cust_email=parameters.get("cust_email")
    course_name= parameters.get("course_name")
    intent = result.get("intent").get('displayName')
    if (intent=='course_selection'):

        email_sender=EmailSender()
        template= template_reader.TemplateReader()
        email_message=template.read_course_template(course_name)

        email_sender.send_email_to_student(cust_email,email_message)

        email_file_support = open("email_templates/support_team_Template.html", "r")
        email_message_support = email_file_support.read()

        email_sender.send_email_to_support(cust_name=cust_name,cust_contact=cust_contact,cust_email=cust_email,course_name=course_name,body=email_message_support)

        fulfillmentText="We have sent the course syllabus and other relevant details to you via email. An email has been sent to the Support Team with your contact information, you'll be contacted soon. Do you have further queries?"
        log.write_log(sessionID, "Bot Says: "+fulfillmentText)
        return {
            "fulfillmentText": fulfillmentText
        }
    else:
        log.write_log(sessionID, "Bot Says: " + result.fulfillmentText)
Example #3
0
def processRequest(req):
    log = logger.Log()

    sessionID = req.get('responseId')
    result = req.get("queryResult")
    user_says = result.get("queryText")
    log.write_log(sessionID, "User Says: " + user_says)
    #  log.write_mongodb(sessionID, "User Says: " + user_says)
    parameters = result.get("parameters")
    cust_name = parameters.get("user_name")
    #print(cust_name)
    cust_contact = parameters.get("user_phone")
    cust_email = parameters.get("user_email")
    cust_pincode = parameters.get("user_pincode")
    cust_pincode = re.sub(' ', '', str(cust_pincode))
    intent = result.get("intent").get('displayName')

    if (intent == 'ZipcodeSelection'):

        #    covid19 = CoronaDataScrap()
        #   data = covid19.scrap_data()
        #data = pd.read_csv('/DataScrap/Corona_reports.csv')
        email_sender = EmailSender()
        template = template_reader.TemplateReader()
        email_message = template.read_course_template('covid_19_template.html')
        email_sender.send_email_to_student(cust_email, email_message)
        # email_file_support = open("email_templates/support_team_Template.html", "r")
        # #email_message_support = email_file_support.read()
        #email_sender.send_email_to_support(cust_name=cust_name,cust_contact=cust_contact,cust_email=cust_email,course_name=course_name,body=email_message_support)
        fulfillmentText = "We have sent the Precautionary Measures and India's covid details to you via email. Stay safe and take care."
        log.write_log(sessionID, "Bot Says: " + fulfillmentText)
        #log.write_mongodb(sessionID, "Bot Says: " + fulfillmentText)
        return {"fulfillmentText": fulfillmentText}
    else:
        log.write_log(sessionID, "Bot Says: " + result.fulfillmentText)
Example #4
0
def processRequest(req):
    log = logger.Log()

    sessionID = req.get('responseId')

    result = req.get("queryResult")
    user_says = result.get("queryText")
    bot_says = result.get("fulfillmentText")
    log.write_log(sessionID, "User Says: " + user_says)
    parameters = result.get("parameters")
    cust_name = parameters.get("cust_name")
    #print(cust_name)
    cust_contact = parameters.get("cust_contact")
    cust_email = parameters.get("cust_email")
    course_name = parameters.get("course_name")
    intent = result.get("intent").get('displayName')
    if (intent == 'course_selection'):

        dbConn = pymongo.MongoClient("mongodb://localhost:27017/")
        db = dbConn['Chatbot']
        collection = db['GD_INeuron_Course_Details']

        if collection['SessionID'] == sessionID:
            collection.update_one(
                {"SessionId": sessionID},
                {"$push": {
                    "Event": {
                        "$each": [user_says, bot_says]
                    }
                }}, True)
        else:
            collection.insert_one({
                "SessionId": sessionID,
                "Name": cust_name,
                "Contact": cust_contact,
                "EmailId": cust_email,
                "Course": course_name,
                "Events": [user_says, bot_says]
            })

        email_sender = EmailSender()
        template = template_reader.TemplateReader()
        email_message = template.read_course_template(course_name)
        email_sender.send_email_to_student(cust_email, email_message)
        email_file_support = open("email_templates/support_team_Template.html",
                                  "r")
        email_message_support = email_file_support.read()
        email_sender.send_email_to_support(cust_name=cust_name,
                                           cust_contact=cust_contact,
                                           cust_email=cust_email,
                                           course_name=course_name,
                                           body=email_message_support)
        fulfillmentText = "We have sent the course syllabus and other relevant details to you via email. An email has been sent to the Support Team with your contact information, you'll be contacted soon. Do you have further queries?"
        log.write_log(sessionID, "Bot Says: " + fulfillmentText)
        return {"fulfillmentText": fulfillmentText}
    else:
        log.write_log(sessionID, "Bot Says: " + result.fulfillmentText)
Example #5
0
def processRequest(req):
    log = logger.Log()

    sessionID=req.get('responseId')


    result = req.get("queryResult")
    user_says=result.get("queryText")
    log.write_log(sessionID, "User Says: "+user_says)
    parameters = result.get("parameters")
    cust_name=parameters.get("Name")
    
    cust_contact = parameters.get("PhoneNumber")
    cust_email=parameters.get("Email")
    course_name= parameters.get("Disease")
    intent = result.get("intent").get('displayName')
    if (intent=='appoint_yes_confirm'):

        email_sender=EmailSender()
        template= template_reader.TemplateReader()
        email_message=template.read_course_template(course_name)
        email_sender.send_email_to_student(cust_email,email_message)
        email_file_support = open("email_templates/support_team_Template.html", "r")
        email_message_support = email_file_support.read()
        email_sender.send_email_to_support(cust_name=cust_name,cust_contact=cust_contact,cust_email=cust_email,course_name=course_name,body=email_message_support)
        fulfillmentText="An email has been sent to the Support Team with your contact information, you'll be contacted soon with appointment details. "
        log.write_log(sessionID, "Bot Says: "+fulfillmentText)
        return {
            "fulfillmentText": fulfillmentText
        }
    if (intent == 'Welcome_Intent'):
        return {
            "fulfillmentMessages": [ {
                "card": {
                    "title": "Hello. Good day. Please choose any of the below.",
                    "buttons": [
                        {
                        "text": "Need advise.",
                        "postback": "Advise"
                        },
                        {
                        "text": "Consultation",
                        "postback": "Consultation"
                        },
                        {
                        "text": "Book Appointment ?",
                        "postback": "Appointment"
                        }
                    ]
                } }
            ]
        }
    
    else:
        log.write_log(sessionID, "Bot Says: " + result.fulfillmentText)
Example #6
0
def processRequest(req):
    #log = logger.Log()

    sessionID = req.get('responseId')
    result = req.get("queryResult")
    user_says = result.get("queryText")
    #log.write_log(sessionID, "User Says: "+user_says)
    parameters = result.get("parameters")

    cust_contact = parameters.get("phn_no")
    course_no = parameters.get("number")
    cust_name = parameters.get("name")
    cust_email = parameters.get("email")

    print(cust_name)
    print(cust_contact)
    print(cust_email)
    print(course_no)

    if (course_no == 1):
        course_name = 'DataScienceMasters'
    elif (course_no == 2):
        course_name = 'MachineLearningMasters'
    elif (course_no == 3):
        course_name = 'DeepLearningMasters'
    else:
        course_name = 'NLPMasters'

    intent = result.get("intent").get('displayName')
    print(course_name)
    if (intent == 'course_selection'):
        email_sender = EmailSender()
        template = template_reader.TemplateReader()
        email_message = template.read_course_template(course_name)
        email_sender.send_email_to_student(cust_email, email_message)

        fulfillmentText = "We have sent course syllabus and other relevant details to your given email address. An email has sent to support team  having your  contact information, you will be contacted soon. Do you have further queries?"

        return {"fulfillmentText": fulfillmentText}
    else:
        return "nothing found"
Example #7
0
def processRequest(req):
    log = logger.Log()

    sessionID = req.get('responseId')

    result = req.get("queryResult")
    user_says = result.get("queryText")
    log.write_log(sessionID, "User Says: " + user_says)

    parameters = result.get("parameters")
    cust_name = parameters.get("cust_name")
    cust_contact = parameters.get("cust_contact")
    cust_email = parameters.get("cust_email")
    pin_code = parameters.get("pin_code")

    intent = result.get("intent").get('displayName')
    if (intent == 'CORONA_BY_PINCODE'):

        results = getFrmPincode(pin_code)
        district_name = results[0]["PostOffice"][0]["District"]
        state_name = results[0]["PostOffice"][0]["State"]
        country_name = results[0]["PostOffice"][0]["Country"]

        print(district_name)  # delete

        fulfillmentText = " "
        state_data = getStateCovidCases(state_name)
        print(state_data)
        print(len(state_data['districtData']))

        try:
            district_data = getDistrictCovidCases(state_data, district_name)
            if district_data['active'] > 0:
                messageTxt = getCovidDist(district_data)
                fulfillmentText = district_name + '(' + pin_code + ')' + ' -- ' + messageTxt

                print(fulfillmentText)  #delete

                # Store the details to database
                dbConn = pymongo.MongoClient("mongodb://localhost:27017/"
                                             )  # opening a connection to Mongo
                db = dbConn[
                    'covidReqDB']  # connect to the database called covidReqDB
                dateTimeObj = datetime.now()

                mydict = {
                    "Name": cust_name,
                    "Email": cust_email,
                    "Pincode": pin_code,
                    "Contact": cust_contact,
                    "Time_Stamp": dateTimeObj
                }  # saving that detail to a dictionary

                collection = db[cust_email]
                collection.insert_one(mydict)  # inserting the dictionary

        except Exception as e:
            messageTxt = getCovidState(state_data)
            fulfillmentText = messageTxt

        template = template_reader.TemplateReader()
        email_message = template.read_covid_template()
        email_sender = EmailSender()
        email_sender.send_email(cust_name, cust_email, email_message,
                                fulfillmentText)

        fulfillmentText += "We have sent the preventive measures of Carona(Covid-19) disease to you via email. Do you have any queries?"

        log.write_log(sessionID, "Bot Says: " + fulfillmentText)
        return {"fulfillmentText": fulfillmentText}
    else:
        log.write_log(sessionID, "Bot Says: " + result.fulfillmentText)

    if (intent == 'CORONA_MAP_INDIA'):
        webbrowser.open('https://www.covid19india.org/')

    if (intent == 'CORONA_BY_WORLD'):
        webbrowser.open(
            'https://news.google.com/covid19/map?hl=en-IN&gl=IN&ceid=IN:en')
Example #8
0
def processRequest(req):
    sessionID = req.get('responseId')
    result = req.get("queryResult")
    user_says = result.get("queryText")
    parameters = result.get("parameters")
    cur = mysql.connection.cursor()
    cur.execute(
        "INSERT INTO user_chat_history(sessionId,message, updated_time) VALUES (%s, %s, %s)",
        (sessionID, "User says: " + user_says + "With parameters:- " +
         str(parameters), datetime.datetime.utcnow()))
    mysql.connection.commit()
    cur.close()
    name = parameters.get("name")
    mobile_number = parameters.get("mobile_number")
    email = parameters.get("email")
    pin_code = parameters.get("pin_code")
    geolocator = Nominatim(user_agent="geoapiExercises")
    location = geolocator.geocode(pin_code)
    address_info = location.raw["display_name"]
    print(address_info)
    data_from_address = geolocator.geocode(address_info, addressdetails=True)
    address = data_from_address.raw["address"]
    print(address)
    country = address["country"]
    country_code = address["country_code"]
    if ("state" in address.keys()):
        state = address["state"]
    elif ("state_district" in address.keys()):
        state = address["state_district"]
    else:
        state = country
    if ("city" in address.keys()):
        city = address["city"]
    elif ("state_district" in address.keys()):
        city = address["state_district"]
    elif ("city_district" in address.keys()):
        city = address["city_district"]
    else:
        city = country
    if city == "Ahmedabad District":
        city = "Ahmadabad"
    if (country == "India"):
        url = "https://api.covid19india.org/v2/state_district_wise.json"
        headers = {}
        response = requests.request("GET", url, headers=headers)
        res = next(
            (sub
             for sub in json.loads(response.text) if sub['state'] == state),
            None)
        state_data = res
        city_data = next(
            (sub
             for sub in state_data['districtData'] if sub['district'] in city),
            None)
        if city_data != None:
            total_confimred_cases_in_district = city_data["confirmed"]
            total_confimred_cases_in_state = sum(
                d['confirmed'] for d in state_data['districtData'] if d)
        else:
            total_confimred_cases_in_district = 0
            total_confimred_cases_in_state = 0
        print(total_confimred_cases_in_district,
              total_confimred_cases_in_state)

        email_sender = EmailSender()
        template = template_reader.TemplateReader()
        email_message = template.read_course_template("India_template")
        email_message = email_message.replace('User', name)
        email_message = email_message.replace('pin_code', pin_code)
        email_message = email_message.replace('state', state)
        email_message = email_message.replace('city', city)
        email_message = email_message.replace(
            'total_No_cases_c', str(total_confimred_cases_in_district))
        email_message = email_message.replace(
            'total_No_cases_s', str(total_confimred_cases_in_state))
        email_sender.send_email_to_student(email, email_message)
        fulfillmentText = "We have sent the number of corona virus cases in your area and other relevant details to you via email.Do you have further queries?"
        cur = mysql.connection.cursor()
        cur.execute(
            "INSERT INTO user_chat_history(sessionId,message, updated_time) VALUES (%s, %s, %s)",
            (sessionID, "Bot says: " + fulfillmentText,
             datetime.datetime.utcnow()))
        mysql.connection.commit()
        cur.close()
        return {"fulfillmentText": fulfillmentText}
    else:
        url = "https://covid-19-data.p.rapidapi.com/country/code"

        querystring = {"format": "json", "code": country_code}

        headers = {
            'x-rapidapi-host': "covid-19-data.p.rapidapi.com",
            'x-rapidapi-key': "API-KEY"
        }

        response = requests.request("GET",
                                    url,
                                    headers=headers,
                                    params=querystring)

        counntry_info = json.loads(response.text)
        confirmed = counntry_info[0]["confirmed"]
        recovered = counntry_info[0]["recovered"]
        critical = counntry_info[0]["critical"]
        deaths = counntry_info[0]["deaths"]
        email_sender = EmailSender()
        template = template_reader.TemplateReader()
        email_message = template.read_course_template("NotIndia_template")
        email_message = email_message.replace('User', name)
        email_message = email_message.replace('pin_code', pin_code)
        email_message = email_message.replace('Country', country)
        email_message = email_message.replace('total_No_cases_c',
                                              str(confirmed))
        email_message = email_message.replace('total_No_cases_r',
                                              str(recovered))
        email_message = email_message.replace('total_No_cases_t',
                                              str(critical))
        email_message = email_message.replace('total_No_cases_d', str(deaths))
        email_sender.send_email_to_student(email, email_message)
        fulfillmentText = "We have sent the number of corona virus cases in your area and other relevant details to you via email.Do you have further queries?"
        cur = mysql.connection.cursor()
        cur.execute(
            "INSERT INTO user_chat_history(sessionId,message, updated_time) VALUES (%s, %s, %s)",
            (sessionID, "Bot says: " + fulfillmentText,
             datetime.datetime.utcnow()))
        mysql.connection.commit()
        cur.close()
        return {"fulfillmentText": fulfillmentText}
Example #9
0
def worldData(req):
    sessionID = req.get('responseId')
    result = req.get("queryResult")
    user_says = result.get("queryText")
    parameters = result.get("parameters")
    cur = mysql.connection.cursor()
    cur.execute(
        "INSERT INTO user_chat_history(sessionId,message, updated_time) VALUES (%s, %s, %s)",
        (sessionID, "User says: " + user_says + "With parameters:- " +
         str(parameters), datetime.datetime.utcnow()))
    mysql.connection.commit()
    cur.close()
    name = parameters.get("name")
    email = parameters.get("email")
    url = " https://corona-api.com/countries"
    headers = {}
    response = requests.request("GET", url, headers=headers)

    data = json.loads(response.text)
    country = []
    country_code = []
    latitude = []
    longitude = []
    population = []
    confirmed = []
    recoverd = []
    deaths = []
    for items in data["data"]:
        latitude.append(items["coordinates"]["latitude"])
        longitude.append(items["coordinates"]["longitude"])
        population.append(items["population"])
        country.append(items["name"])
        country_code.append(items["code"])
        confirmed.append(items["latest_data"]["confirmed"])
        recoverd.append(items["latest_data"]["recovered"])
        deaths.append(items["latest_data"]["deaths"])

    dict1 = {
        'country': country,
        'county_code': country_code,
        'latitude': latitude,
        'longitude': longitude,
        'population': population,
        'confirmed': confirmed,
        'recoverd': recoverd,
        'deaths': deaths
    }
    df = pd.DataFrame(dict1)

    # saving the dataframe
    df.to_csv('world_stats.csv')
    a = createMap()
    email_sender = EmailSender()
    template = template_reader.TemplateReader()
    email_message = template.read_course_template("Worldwide_Template")
    email_message = email_message.replace('User', name)
    email_message = email_message.replace(
        'corona-url',
        os.path.join(BASE_DIR, 'covid-19\email_templates\world_map.html'))
    email_sender.send_email_to_student(email, email_message)
    fulfillmentText = "We have sent the visulization of corona effects world wide and other relevant details to you via email.Do you have further queries?"
    cur = mysql.connection.cursor()
    cur.execute(
        "INSERT INTO user_chat_history(sessionId,message, updated_time) VALUES (%s, %s, %s)",
        (sessionID, "Bot says: " + fulfillmentText,
         datetime.datetime.utcnow()))
    mysql.connection.commit()
    cur.close()
    return {"fulfillmentText": fulfillmentText}