def on_receive(self): log.info("Twilio.on_receive: %s" % web.input()) log.info("self.request('To'): %s" % self.request('To')) if not sms.validate(self.request): return self.text('') message = self.request('Body') to = int(self.request('To')) # this is evidently the most elegant way to do a reverse look-up in a dictionary to_city = [k for k, v in self.phone_numbers.iteritems() if v == to][0] #log.info('to_city: %s' % to_city) if util.check_bad_words(message): log.info('Twilio: Bad word(s) in text message') return self.error('Bad word(s) in message') user = Users.get_or_create(self.db, phone=self.request('From'), location=self.request('FromZip'), city_id=to_city) if user.blocked: log.info("--> user is blocked!") return self.text('') try: mId = self.db.insert("messages", user_id=user.id, message=message, sms=1, outgoing=0) except Exception, e: log.error(e) return self.text('')
def test_check_bad_words(self): self.assertTrue(util.check_bad_words("get some soccer balls")) self.assertTrue(util.check_bad_words("balls get some soccer")) self.assertTrue(util.check_bad_words("get some balls soccer")) self.assertFalse(util.check_bad_words("get some soccer balls!")) #questionable self.assertFalse(util.check_bad_words("!balls get some soccer")) #questionable self.assertFalse(util.check_bad_words("get some soccerballs")) self.assertFalse(util.check_bad_words("hello world"))
def on_receive(self): log.info("Twilio.on_receive: %s" % web.input()) log.info("self.request('To'): %s" % self.request('To')) if not sms.validate(self.request): return self.text('') message = self.request('Body') to = int(self.request('To')) # this is evidently the most elegant way to do a reverse look-up in a dictionary to_city = [k for k, v in self.phone_numbers.iteritems() if v==to][0] #log.info('to_city: %s' % to_city) if util.check_bad_words(message): log.info('Twilio: Bad word(s) in text message') return self.error('Bad word(s) in message') user = Users.get_or_create(self.db, phone=self.request('From'), location=self.request('FromZip'), city_id=to_city) if user.blocked: log.info("--> user is blocked!") return self.text('') try: mId = self.db.insert("messages", user_id=user.id, message=message, sms=1, outgoing=0) except Exception, e: log.error(e) return self.text('')