def processRequest(req): # dbConn = pymongo.MongoClient("mongodb://localhost:27017/") # opening a connection to Mongo log = Conversations.Log() sessionID = req.get('responseId') result = req.get("queryResult") intent = result.get("intent").get('displayName') query_text = result.get("queryText") parameters = result.get("parameters") cust_name = parameters.get("cust_name") cust_contact = parameters.get("cust_contact") cust_email = parameters.get("cust_email") #just edit here the db varible db = firebase.FirebaseApplication( "https://covid19chatbot-840f8.firebaseio.com/", None) if intent == 'covid_searchcountry': cust_country = parameters.get("geo-country") if (cust_country == "United States"): cust_country = "USA" fulfillmentText, deaths_data, testsdone_data = makeAPIRequest( cust_country) webhookresponse = "***Covid Report*** \n\n" + " New cases :" + str(fulfillmentText.get('new')) + \ "\n" + " Active cases : " + str( fulfillmentText.get('active')) + "\n" + " Critical cases : " + str(fulfillmentText.get('critical')) + \ "\n" + " Recovered cases : " + str( fulfillmentText.get('recovered')) + "\n" + " Total cases : " + str(fulfillmentText.get('total')) + \ "\n" + " Total Deaths : " + str(deaths_data.get('total')) + "\n" + " New Deaths : " + str( deaths_data.get('new')) + \ "\n" + " Total Test Done : " + str(deaths_data.get('total')) + "\n\n*******END********* \n " print(webhookresponse) log.saveConversations(sessionID, cust_country, webhookresponse, intent, db) log.saveCases("country", fulfillmentText, db) return { "fulfillmentMessages": [ { "text": { "text": [webhookresponse] } }, { "text": { "text": [ "Do you want me to send the detailed report to your e-mail address? Type.. \n 1. Sure \n 2. Not now " # "We have sent the detailed report of {} Covid-19 to your given mail address.Do you have any other Query?".format(cust_country) ] } } ] } elif intent == "Welcome" or intent == "continue_conversation" or intent == "not_send_email" or intent == "endConversation" or intent == "Fallback" or intent == "covid_faq" or intent == "select_country_option": fulfillmentText = result.get("fulfillmentText") log.saveConversations(sessionID, query_text, fulfillmentText, intent, db) elif result.get("action") == "screening": fulfillmentText = result.get("fulfillmentText") parameters = result.get("parameters") p1 = parameters.get("contactRisk") p2 = parameters.get("contractingRisk") p3 = parameters.get("temperature") p4 = parameters.get("symptoms") allSymptoms = [ 'cough', 'sore throat', 'fever', 'sneezing', 'chest pains', 'shortness of breath', 'loss of appetite', 'loss of taste' ] extremeThreat = [ 'cough', 'sore throat', 'fever', 'sneezing', 'chest pains', 'shortness of breath' ] moderateThreat = [ 'loss of appetite', 'loss of taste', 'cough', 'sneezing' ] noThreat = ['neither of the above'] if p1.lower() == 'yes' and p2.lower() == 'yes' and p3 >= 37 and ( p4.lower() in extremeThreat): fulfillmentMessages = "You have extremely greater chances of having the virus. Please contact the authorities " \ "for further screening and please exercise self isolation. *Hotline numbers* " + hotline_no log.saveConversations(sessionID, query_text, fulfillmentMessages, intent, db) return { "fulfillmentMessages": [{ "text": { "text": [fulfillmentMessages] } }] } elif p1.lower() == 'maybe' and p2.lower( ) == 'maybe' and 36 < p3 < 37 and (p4.lower() in moderateThreat): fulfillmentMessages2 = "It is advisable to contact a health specialist for further diagonistics but you are " \ "not showing severe signs of the virus. *Hotline numbers* " + hotline_no log.saveConversations(sessionID, query_text, fulfillmentMessages2, intent, db) return { "fulfillmentMessages": [{ "text": { "text": [fulfillmentMessages2] } }] } elif p1.lower() == 'no' and p2.lower() == 'no' and 36 < p3 < 37 and ( p4.lower() in noThreat): fulfillmentMessages3 = "You are clear just type *precaution* for precautionary measures. " log.saveConversations(sessionID, query_text, fulfillmentMessages3, intent, db) return { "fulfillmentMessages": [{ "text": { "text": [fulfillmentMessages3] } }] } elif p1.lower() == 'yes' and p2.lower() == 'yes' and 36 < p3 < 37 and ( p4.lower() in moderateThreat or p4.lower() in noThreat): fulfillmentMessages4 = "It is advisable to contact a health specialist for further diagonistics but you are not " \ "showing severe signs of the virus. *Hotline numbers* " + hotline_no log.saveConversations(sessionID, query_text, fulfillmentMessages4, intent, db) return { "fulfillmentMessages": [{ "text": { "text": [fulfillmentMessages4] } }] } elif p1.lower() == 'no' and p2.lower() == 'no' and 36 < p3 < 37 and ( p4.lower() in extremeThreat): fulfillmentMessages5 = "It is advisable to contact a health specialist for further diagonistics but you are not " \ "showing severe signs of the virus. *Hotline numbers* " + hotline_no log.saveConversations(sessionID, query_text, fulfillmentMessages5, intent, db) return { "fulfillmentMessages": [{ "text": { "text": [fulfillmentMessages5] } }] } elif p1.lower() == 'yes' and 36 < p3 < 37 and (p4.lower() in allSymptoms): fulfillmentMessages6 = "You have extremely greater chances of having the virus. Please contact the authorities " \ "for further screening and please exercise self isolation. *Hotline numbers* " + hotline_no log.saveConversations(sessionID, query_text, fulfillmentMessages6, intent, db) return { "fulfillmentMessages": [{ "text": { "text": [fulfillmentMessages6] } }] } elif p2.lower() == 'yes' and 36 < p3 < 37 and (p4.lower() in allSymptoms): fulfillmentMessages7 = "You have extremely greater chances of having the virus. Please contact the authorities " \ "for further screening and please exercise self isolation. *Hotline numbers* " + hotline_no log.saveConversations(sessionID, query_text, fulfillmentMessages7, intent, db) return { "fulfillmentMessages": [{ "text": { "text": [fulfillmentMessages7] } }] } else: fulfillmentMessages8 = "i cannot exactly give you advice based on your answers please visit your nearest hospital for further" \ "screening It is advisable to contact a health specialist for further diagonistics " \ "but you are not showing severe signs of the virus. *Hotline numbers*" + hotline_no log.saveConversations(sessionID, query_text, fulfillmentMessages8, intent, db) return { "fulfillmentMessages": [{ "text": { "text": [fulfillmentMessages8] } }] } elif intent == "send_report_to_email": fulfillmentText = result.get("fulfillmentText") log.saveConversations(sessionID, "Sure send email", fulfillmentText, intent, db) # val = log.getcasesForEmail("country", "", db) # print("===>",val) # prepareEmail([cust_name, cust_contact, cust_email,val]) elif intent == "totalnumber_cases": fulfillmentText = makeAPIRequest("world") webhookresponse = "***World wide Report*** \n\n" + " Confirmed cases :" + str( fulfillmentText.get('confirmed')) + \ "\n" + " Deaths cases : " + str( fulfillmentText.get('deaths')) + "\n" + " Recovered cases : " + str(fulfillmentText.get('recovered')) + \ "\n" + " Active cases : " + str( fulfillmentText.get('active')) + "\n" + " Fatality Rate : " + str( fulfillmentText.get('fatality_rate') * 100) + "%" + \ "\n" + " Last updated : " + str( fulfillmentText.get('last_update')) + "\n\n*******END********* \n " print(webhookresponse) log.saveConversations(sessionID, "Cases worldwide", webhookresponse, intent, db) log.saveCases("world", fulfillmentText, db) return { "fulfillmentMessages": [ { "text": { "text": [webhookresponse] } }, { "text": { "text": [ "Do you want me to send the detailed report to your e-mail address? Type.. \n 1. Sure \n 2. Not now " # "We have sent the detailed report of {} Covid-19 to your given mail address.Do you have any other Query?".format(cust_country) ] } } ] } elif intent == "covid_searchstate": fulfillmentText = makeAPIRequest("state") print(len(fulfillmentText)) webhookresponse1 = '' webhookresponse2 = '' webhookresponse3 = '' for i in range(0, 11): webhookresponse = fulfillmentText[i] # print(webhookresponse['state']) # js = json.loads(webhookresponse.text) # print(str(js.state)) webhookresponse1 += "*********\n" + " State :" + str(webhookresponse['state']) + \ "\n" + " Confirmed cases : " + str( webhookresponse['confirmed']) + "\n" + " Death cases : " + str(webhookresponse['deaths']) + \ "\n" + " Active cases : " + str( webhookresponse['active']) + "\n" + " Recovered cases : " + str( webhookresponse['recovered']) + "\n*********" for i in range(11, 21): webhookresponse = fulfillmentText[i] # print(webhookresponse['state']) # js = json.loads(webhookresponse.text) # print(str(js.state)) webhookresponse2 += "*********\n" + " State :" + str(webhookresponse['state']) + \ "\n" + " Confirmed cases : " + str( webhookresponse['confirmed']) + "\n" + " Death cases : " + str(webhookresponse['deaths']) + \ "\n" + " Active cases : " + str( webhookresponse['active']) + "\n" + " Recovered cases : " + str( webhookresponse['recovered']) + "\n*********" for i in range(21, 38): webhookresponse = fulfillmentText[i] # print(webhookresponse['state']) # js = json.loads(webhookresponse.text) # print(str(js.state)) webhookresponse3 += "*********\n" + " State :" + str(webhookresponse['state']) + \ "\n" + " Confirmed cases : " + str( webhookresponse['confirmed']) + "\n" + " Death cases : " + str(webhookresponse['deaths']) + \ "\n" + " Active cases : " + str( webhookresponse['active']) + "\n" + " Recovered cases : " + str( webhookresponse['recovered']) + "\n*********" print("***World wide Report*** \n\n" + webhookresponse1 + "\n\n*******END********* \n") print("***World wide Report*** \n\n" + webhookresponse2 + "\n\n*******END********* \n") print("***World wide Report*** \n\n" + webhookresponse3 + "\n\n*******END********* \n") log.saveConversations(sessionID, "Indian State Cases", webhookresponse1, intent, db) return { "fulfillmentMessages": [ { "text": { "text": [webhookresponse1] } }, { "text": { "text": [webhookresponse2] } }, { "text": { "text": [webhookresponse3] } }, { "text": { "text": [ "Do you want me to send the detailed report to your e-mail address? Type.. \n 1. Sure \n 2. Not now " # "We have sent the detailed report of {} Covid-19 to your given mail address.Do you have any other Query?".format(cust_country) ] } } ] }
def processRequest(req): # dbConn = pymongo.MongoClient("mongodb://localhost:27017/") # opening a connection to Mongo log = Conversations.Log() sessionID = req.get('responseId') result = req.get("queryResult") intent = result.get("intent").get('displayName') query_text = result.get("queryText") parameters = result.get("parameters") cust_name = parameters.get("cust_name") cust_contact = parameters.get("cust_contact") cust_email = parameters.get("cust_email") db = configureDataBase() if intent == 'covid_searchcountry': cust_country = parameters.get("geo-country") if (cust_country == "United States"): cust_country = "USA" fulfillmentText, deaths_data, testsdone_data = makeAPIRequest( cust_country) webhookresponse = "***Covid Report*** \n\n" + " New cases :" + str(fulfillmentText.get('new')) + \ "\n" + " Active cases : " + str( fulfillmentText.get('active')) + "\n" + " Critical cases : " + str(fulfillmentText.get('critical')) + \ "\n" + " Recovered cases : " + str( fulfillmentText.get('recovered')) + "\n" + " Total cases : " + str(fulfillmentText.get('total')) + \ "\n" + " Total Deaths : " + str(deaths_data.get('total')) + "\n" + " New Deaths : " + str( deaths_data.get('new')) + \ "\n" + " Total Test Done : " + str(deaths_data.get('total')) + "\n\n*******END********* \n " print(webhookresponse) log.saveConversations(sessionID, cust_country, webhookresponse, intent, db) log.saveCases("country", fulfillmentText, db) return { "fulfillmentMessages": [ { "text": { "text": [webhookresponse] } }, { "text": { "text": [ "Do you want me to send the detailed report to your e-mail address? Type.. \n 1. Sure \n 2. Not now " # "We have sent the detailed report of {} Covid-19 to your given mail address.Do you have any other Query?".format(cust_country) ] } } ] } elif intent == "Welcome" or intent == "continue_conversation" or intent == "not_send_email" or intent == "endConversation" or intent == "Fallback" or intent == "covid_faq" or intent == "select_country_option": fulfillmentText = result.get("fulfillmentText") log.saveConversations(sessionID, query_text, fulfillmentText, intent, db) elif intent == "send_report_to_email": fulfillmentText = result.get("fulfillmentText") log.saveConversations(sessionID, "Sure send email", fulfillmentText, intent, db) val = log.getcasesForEmail("country", "", db) print("===>", val) prepareEmail([cust_name, cust_contact, cust_email, val]) elif intent == "totalnumber_cases": fulfillmentText = makeAPIRequest("world") webhookresponse = "***World wide Report*** \n\n" + " Confirmed cases :" + str( fulfillmentText.get('confirmed')) + \ "\n" + " Deaths cases : " + str( fulfillmentText.get('deaths')) + "\n" + " Recovered cases : " + str(fulfillmentText.get('recovered')) + \ "\n" + " Active cases : " + str( fulfillmentText.get('active')) + "\n" + " Fatality Rate : " + str( fulfillmentText.get('fatality_rate') * 100) + "%" + \ "\n" + " Last updated : " + str( fulfillmentText.get('last_update')) + "\n\n*******END********* \n " print(webhookresponse) log.saveConversations(sessionID, "Cases worldwide", webhookresponse, intent, db) #log.saveCases("world", fulfillmentText, db) return { "fulfillmentMessages": [ { "text": { "text": [webhookresponse] } }, { "text": { "text": [ "Do you want me to send the detailed report to your e-mail address? Type.. \n 1. Sure \n 2. Not now " # "We have sent the detailed report of {} Covid-19 to your given mail address.Do you have any other Query?".format(cust_country) ] } } ] } elif intent == "covid_searchstate": fulfillmentText = makeAPIRequest("state") print(len(fulfillmentText)) webhookresponse1 = '' webhookresponse2 = '' webhookresponse3 = '' for i in range(0, 11): webhookresponse = fulfillmentText[i] # print(webhookresponse['state']) # js = json.loads(webhookresponse.text) # print(str(js.state)) webhookresponse1 += "*********\n" + " State :" + str(webhookresponse['state']) + \ "\n" + " Confirmed cases : " + str( webhookresponse['confirmed']) + "\n" + " Death cases : " + str(webhookresponse['deaths']) + \ "\n" + " Active cases : " + str( webhookresponse['active']) + "\n" + " Recovered cases : " + str( webhookresponse['recovered']) + "\n*********" for i in range(11, 21): webhookresponse = fulfillmentText[i] # print(webhookresponse['state']) # js = json.loads(webhookresponse.text) # print(str(js.state)) webhookresponse2 += "*********\n" + " State :" + str(webhookresponse['state']) + \ "\n" + " Confirmed cases : " + str( webhookresponse['confirmed']) + "\n" + " Death cases : " + str(webhookresponse['deaths']) + \ "\n" + " Active cases : " + str( webhookresponse['active']) + "\n" + " Recovered cases : " + str( webhookresponse['recovered']) + "\n*********" for i in range(21, 38): webhookresponse = fulfillmentText[i] # print(webhookresponse['state']) # js = json.loads(webhookresponse.text) # print(str(js.state)) webhookresponse3 += "*********\n" + " State :" + str(webhookresponse['state']) + \ "\n" + " Confirmed cases : " + str( webhookresponse['confirmed']) + "\n" + " Death cases : " + str(webhookresponse['deaths']) + \ "\n" + " Active cases : " + str( webhookresponse['active']) + "\n" + " Recovered cases : " + str( webhookresponse['recovered']) + "\n*********" print("***World wide Report*** \n\n" + webhookresponse1 + "\n\n*******END********* \n") print("***World wide Report*** \n\n" + webhookresponse2 + "\n\n*******END********* \n") print("***World wide Report*** \n\n" + webhookresponse3 + "\n\n*******END********* \n") log.saveConversations(sessionID, "Indian State Cases", webhookresponse1, intent, db) return { "fulfillmentMessages": [ { "text": { "text": [webhookresponse1] } }, { "text": { "text": [webhookresponse2] } }, { "text": { "text": [webhookresponse3] } }, { "text": { "text": [ "Do you want me to send the detailed report to your e-mail address? Type.. \n 1. Sure \n 2. Not now " # "We have sent the detailed report of {} Covid-19 to your given mail address.Do you have any other Query?".format(cust_country) ] } } ] } else: return { "fulfillmentText": "something went wrong,Lets start from the begning, Say Hi", }
def processRequest(req): dbConn = pymongo.MongoClient( "mongodb://localhost:27017/") # opening a connection to Mongo log = Conversations.Log() sessionID = req.get('responseId') result = req.get("queryResult") intent = result.get("intent").get('displayName') parameters = result.get("parameters") cust_name = parameters.get("cust_name") cust_phone = parameters.get("cust_phone") cust_email = parameters.get("cust_email") cust_reason = parameters.get('cust_reason') db = configureDataBase() if intent == 'Quotes': message = makeAPIRequest() print(message) return { "fulfillmentMessages": [ { "text": { "text": [message] } }, ] } elif intent == 'Need_Help': log.saveConversations(sessionID, cust_reason, intent, db, cust_email, cust_name, cust_phone) prepareEmail(cust_email) elif intent == 'Depression_workplace': val = Depression_test(result) if val == 1: print("visit") return { "fulfillmentMessages": [ { "text": { "text": ["It is advisable to visit a psychiatrist"] } }, ] } else: print("don't visit") return { "fulfillmentMessages": [ { "text": { "text": ["You are alright! Take care !!"] } }, ] } else: return { "fulfillmentText": "something went wrong,Lets start from the begning, Say Hi", }