def formResponse(sender_id, text): msg_type = MessageParser.parse(text) responseList = [] if msg_type == MessageParser.GREETING_MSG: message1 = '''Hello, Welcome to IPO Notifier.''' message2 = '''You can use following Keywords to get IPO details. - Upcoming IPO - Today's IPO, Current IPO - Recent IPO - Help.''' jsonFormat = generateJSONResposneForText(message1) responseList.append(jsonFormat) jsonFormat = generateJSONResposneForText(message2) responseList.append(jsonFormat) if not DBHelper.isSubscribed(sender_id): jsonFormat = generateJSONResposneForPostbackButtons( '''Do you want to Get Notified when new IPO is going to be listed on BSE or NSE?''', 'Yes, Subscribe Me', 'Subscribe', "No, Don't Notify Me", 'Unsubscribe') responseList.append(jsonFormat) elif msg_type == MessageParser.UNKNOWN_MSG: message1 = "I didn't understand that. Try typing Help :P ." jsonFormat = generateJSONResposneForText(message1) responseList.append(jsonFormat) elif msg_type == MessageParser.HELP: message1 = '''Use Following Keywords for your task. - Upcoming IPO - Current IPO - Recent IPO - ipo 'Company name'.''' message2 = "To get latest IPO update notifications type 'Subscribe'." if DBHelper.isSubscribed(sender_id): message2 = "To unsubscribe from getting IPO update notifications type 'Unsubscribe'." jsonFormat = generateJSONResposneForText(message1) responseList.append(jsonFormat) jsonFormat = generateJSONResposneForText(message2) responseList.append(jsonFormat) elif msg_type == MessageParser.UPCOMING_IPO: ipolist = IPOHelper.getUpcomingIPO() for ipoData in ipolist: jsonFormat = generateJSONResposneForIPO(ipoData) responseList.append(jsonFormat) elif msg_type == MessageParser.ALL_IPO: ipolist = IPOHelper.getLast6IPO() for ipoData in ipolist: jsonFormat = generateJSONResposneForIPO(ipoData) responseList.append(jsonFormat) elif msg_type == MessageParser.IPO_NAME: ipoName = MessageParser.parseIPOName(text) ipolist = IPOHelper.getIPObyName(ipoName) if not ipoName: ipolist = IPOHelper.getRunningIPO(False) msg1 = "Try ipo 'company name'." msg2 = "By the way here is the running IPO List" jsonFormat = generateJSONResposneForText(msg1) responseList.append(jsonFormat) if ipolist: jsonFormat = generateJSONResposneForText(msg2) responseList.append(jsonFormat) for ipoData in ipolist: jsonFormat = generateJSONResposneForIPO(ipoData) responseList.append(jsonFormat) #gives list of running ipo elif msg_type == MessageParser.TODAYS_IPO: ipolist = IPOHelper.getRunningIPO(False) for ipoData in ipolist: jsonFormat = generateJSONResposneForIPO(ipoData) responseList.append(jsonFormat) elif msg_type == MessageParser.UNSUBSCRIBE: DBHelper.updateuser(sender_id, '0') message1 = "We're sad to see you go. You can type 'Subscribe' any time if you want to get updates again." jsonFormat = generateJSONResposneForText(message1) responseList.append(jsonFormat) elif msg_type == MessageParser.SUBSCRIBE: DBHelper.updateuser(sender_id, '1') message1 = "You are successfully subscribed. We will notify you for latest IPO news and updates." jsonFormat = generateJSONResposneForText(message1) responseList.append(jsonFormat) elif msg_type == MessageParser.THANKS: DBHelper.updateuser(sender_id, '1') message1 = "Always happy to serve." jsonFormat = generateJSONResposneForText(message1) responseList.append(jsonFormat) if not responseList: message1 = "Sorry, No Results Found." jsonFormat = generateJSONResposneForText(message1) responseList.append(jsonFormat) return responseList