Esempio n. 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)
Esempio n. 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)
Esempio n. 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)
    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")
    person_name= parameters.get("person_name")
    intent = result.get("intent").get('displayName')
    if (intent=='Person_info'):

        email_sender=EmailSender()
        #template= template_reader.TemplateReader()
        #email_message=template.read_person_name(person_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,person_name=person_name,body=email_message_support)
        fulfillmentText="Happy botting"
        log.write_log(sessionID, "Bot Says: "+fulfillmentText)
        return {
            "fulfillmentText": fulfillmentText
        }
    else:
        log.write_log(sessionID, "Bot Says: " + result.fulfillmentText)
def processRequest(req):
    log = logger.Log()

    sessionID = req.get('responseId')

    result = req.get("queryResult")
    user_says = result.get("queryText")
    log.write_log(sessionID, "User is: " + user_says)
    parameters = result.get("parameters")
    cust_name = parameters.get("usr_name")
    #print(cust_name)
    cust_email = parameters.get("usr_email")
    intent = result.get("intent").get('displayName')
    if (intent == 'Send_Resume'):

        email_sender = EmailSender()
        #template= template_reader.TemplateReader()
        email_message = "Hello. PFA Shivam Chauhan Resume"
        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 Resume and other details to your email. Thanks you. Do you have further queries?"
        log.write_log(sessionID, "Bot Says: " + fulfillmentText)
        return {"fulfillmentText": fulfillmentText}
    else:
        log.write_log(sessionID, "Bot Says: " + result.fulfillmentText)
Esempio n. 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)
    #  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)
Esempio n. 6
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)
Esempio n. 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("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)
Esempio n. 8
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"
Esempio n. 9
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("mobile")
   cust_email = parameters.get("mail")
   cust_city = parameters.get("state")
   custdistrict = parameters.get('district')
   intent = result.get("intent").get('displayName')
   message = 'No Data Found'
   api_data = get_api_data(custdistrict,cust_city)
   if api_data.get('status',False):
        message = api_data['message']
   log.write_log('cust', "Cust Details%r"%[cust_city, cust_email, custdistrict])

   if (intent== 'zip'):

       email_sender = EmailSender()
       
       email_file = open("email_templates/bot.html", "r")
       email_message = email_file.read()

       email_sender.send_email_to_student(cust_email, email_message, message)


       fulfillmentText = "We have sent the course syllabus "
       log.write_log('fulfillmentText', "Bot Says: " + fulfillmentText)

       return {
           "fulfillmentText": fulfillmentText
        }
   else:

        pass
Esempio n. 10
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}
Esempio n. 11
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}