def security_check_message(self, bot, update): """ Test message for security violations """ # Remove accents from letters (é->e, ñ->n, etc...) message = unidecode.unidecode(update.message.text) # TODO: Replace lookalike unicode characters: # https://github.com/wanderingstan/Confusables if self.message_ban_re and self.message_ban_re.search(message): print('message_ban') # Logging log_message = "Ban message match: {}".format( update.message.text.encode('utf-8')) if self.debug: update.message.reply_text(log_message) print(log_message) for notify_user_id in self.notify_user_ids: bot.send_message(chat_id=notify_user_id, text=log_message) # Any message that causes a ban gets deleted update.message.delete() # Ban the user self.ban_user(update) # Log in database s = session() userBan = UserBan(user_id=update.message.from_user.id, reason=update.message.text) s.add(userBan) s.commit() s.close() elif self.message_hide_re and self.message_hide_re.search(message): print('message_hide') # Logging log_message = "Hide match: {}".format( update.message.text.encode('utf-8')) if self.debug != False: update.message.reply_text(log_message) for notify_user_id in self.notify_user_ids: bot.send_message(chat_id=notify_user_id, text=log_message) # Delete the message update.message.delete() # Log in database s = session() messageHide = MessageHide(user_id=update.message.from_user.id, message=update.message.text) s.add(messageHide) s.commit() s.close()
def attachment_check(self, bot, update): """ Hide messages with attachments (except photo or video) """ if (update.message.audio or update.message.document or update.message.game or update.message.voice): # Logging if update.message.document: # GIFs are documents and allowed mime_type = update.message.document.mime_type if mime_type and mime_type in self.allowed_mime_types: return log_message = "❌ HIDE DOCUMENT: {}".format( update.message.document.__dict__) else: log_message = "❌ HIDE NON-DOCUMENT ATTACHMENT" if self.debug: update.message.reply_text(log_message) print(log_message) # Delete the message update.message.delete() # Log in database s = session() messageHide = MessageHide(user_id=update.message.from_user.id, message=update.message.text) s.add(messageHide) s.commit() s.close() # Notify channel if self.notify_chat: bot.send_message(chat_id=self.notify_chat, text=log_message)
def log_message(self, user_id, user_message, chat_id): if user_message is None: user_message = "[NO MESSAGE]" try: s = session() language_code = english_message = "" polarity = subjectivity = 0.0 try: # translate to English & log the original language translator = Translator() translated = translator.translate(user_message) language_code = translated.src english_message = translated.text # run basic sentiment analysis on the translated English string analysis = TextBlob(english_message) polarity = analysis.sentiment.polarity subjectivity = analysis.sentiment.subjectivity except Exception as e: print("Error translating message: {}".format(e)) msg1 = Message(user_id=user_id, message=user_message, chat_id=chat_id, language_code=language_code, english_message=english_message, polarity=polarity, subjectivity=subjectivity) s.add(msg1) s.commit() s.close() except Exception as e: print("Error logging message: {}".format(e)) print(traceback.format_exc())
def security_check_username(self, bot, update): """ Test username for security violations """ full_name = "{} {}".format(update.message.from_user.first_name, update.message.from_user.last_name) if self.name_ban_re and self.name_ban_re.search(full_name): # Logging log_message = "❌ 🙅♂️ BAN MATCH FULL NAME: {}".format( full_name.encode('utf-8')) if self.debug: update.message.reply_text(log_message) print(log_message) # Ban the user self.ban_user(update) # Log in database s = session() userBan = UserBan(user_id=update.message.from_user.id, reason=log_message) s.add(userBan) s.commit() s.close() # Notify channel if self.notify_chat: bot.send_message(chat_id=self.notify_chat, text=log_message) if self.name_ban_re and self.name_ban_re.search( update.message.from_user.username or ''): # Logging log_message = "❌ 🙅♂️ BAN MATCH USERNAME: {}".format( update.message.from_user.username.encode('utf-8')) if self.debug: update.message.reply_text(log_message) print(log_message) # Ban the user self.ban_user(update) # Log in database s = session() userBan = UserBan(user_id=update.message.from_user.id, reason=log_message) s.add(userBan) s.commit() s.close() # Notify channel if self.notify_chat: bot.send_message(chat_id=self.notify_chat, text=log_message)
def log_message(self, user_id, user_message): try: s = session() msg1 = Message(user_id=user_id, message=user_message) s.add(msg1) s.commit() s.close() except Exception as e: print("Error: {}".format(e))
def security_check_username(self, bot, update): """ Test username for security violations """ full_name = (update.message.from_user.first_name + " " + update.message.from_user.last_name) if self.name_ban_re and self.name_ban_re.search(full_name): # Logging log_message = "Ban match full name: {}".format( full_name.encode('utf-8')) if self.debug: update.message.reply_text(log_message) for notify_user_id in self.notify_user_ids: print(notify_user_id, "gets notified") bot.send_message(chat_id=notify_user_id, text=log_message) # Ban the user self.ban_user(update) # Log in database s = session() userBan = UserBan(user_id=update.message.from_user.id, reason=log_message) s.add(userBan) s.commit() s.close() if self.name_ban_re and self.name_ban_re.search( update.message.from_user.username or ''): # Logging log_message = "Ban match username: {}".format( update.message.from_user.username.encode('utf-8')) if self.debug: update.message.reply_text(log_message) print(log_message) for notify_user_id in self.notify_user_ids: bot.send_message(chat_id=notify_user_id, text=log_message) # Ban the user self.ban_user(update) # Log in database s = session() userBan = UserBan(user_id=update.message.from_user.id, reason=log_message) s.add(userBan) s.commit() s.close()
def id_exists(self, id_value): s = session() bool_set = False for id1 in s.query(User.id).filter_by(id=id_value): if id1: bool_set = True s.close() return bool_set
def security_check_message(self, bot, update): """ Test message for security violations """ # Remove accents from letters (é->e, ñ->n, etc...) message = unidecode.unidecode(update.message.text) print("teste: " + self.message_hide_re.pattern) print("teste 2" + self.message_hide_patterns) # TODO: Replace lookalike unicode characters: # https://github.com/wanderingstan/Confusables if self.message_ban_re and self.message_ban_re.search(message): # Ban the user if self.debug: update.message.reply_text("DEBUG: Ban message match: {}".format(update.message.text.encode('utf-8'))) print("Ban message match: {}".format(update.message.text.encode('utf-8'))) # Any message that causes a ban gets deleted update.message.delete() # Ban the user self.ban_user(update) # Log in database s = session() userBan = UserBan( user_id=update.message.from_user.id, reason=update.message.text) s.add(userBan) s.commit() s.close() elif self.message_hide_re and self.message_hide_re.search(message): # Delete the message if self.debug: update.message.reply_text("DEBUG: Hide match: {}".format(update.message.text.encode('utf-8'))) print("Hide match: {}".format(update.message.text.encode('utf-8'))) update.message.delete() # Log in database s = session() messageHide = MessageHide( user_id=update.message.from_user.id, message=update.message.text) s.add(messageHide) s.commit() s.close()
def add_user(self, user_id, first_name, last_name, username): try: s = session() user = User(id=user_id, first_name=first_name, last_name=last_name, username=username) s.add(user) s.commit() s.close() return self.id_exists(user_id) except Exception as e: print("Error: {}".format(e))
def select_city(msg): rospy.loginfo('Measurement selection task: {}'.format(msg.data)) s = session() for city_name in msg.data.split(', '): try: city = s.query(City).filter(City.name == city_name).one() for m in s.query(Measurement).filter(Measurement.city_id == city.id): res = String() res.data = '{0} => {1} : {2} {3}'.format(city_name, m.stamp, m.value, m.unit) pub.publish(res) except: pass rospy.wait_for_service('liability/finish') try: finish() except rospy.ServiceException as e: print("Service call failed: {}".format(e))
def security_check_message(self, bot, update): """ Test message for security violations """ if not update.message.text: return # Remove accents from letters (é->e, ñ->n, etc...) message = unidecode.unidecode(update.message.text) # TODO: Replace lookalike unicode characters: # https://github.com/wanderingstan/Confusables # Hide forwarded messages if update.message.forward_date is not None: # Logging log_message = "❌ HIDE FORWARDED: {}".format( update.message.text.encode('utf-8')) if self.debug: update.message.reply_text(log_message) print(log_message) # Delete the message update.message.delete() # Log in database s = session() messageHide = MessageHide(user_id=update.message.from_user.id, message=update.message.text) s.add(messageHide) s.commit() s.close() # Notify channel bot.sendMessage(chat_id=self.notify_chat, text=log_message) if self.message_ban_re and self.message_ban_re.search(message): # Logging log_message = "❌ 🙅♂️ BAN MATCH: {}".format( update.message.text.encode('utf-8')) if self.debug: update.message.reply_text(log_message) print(log_message) # Any message that causes a ban gets deleted update.message.delete() # Ban the user self.ban_user(update) # Log in database s = session() userBan = UserBan(user_id=update.message.from_user.id, reason=update.message.text) s.add(userBan) s.commit() s.close() # Notify channel bot.sendMessage(chat_id=self.notify_chat, text=log_message) elif self.message_hide_re and self.message_hide_re.search(message): # Logging log_message = "❌ 🙈 HIDE MATCH: {}".format( update.message.text.encode('utf-8')) if self.debug: update.message.reply_text(log_message) print(log_message) # Delete the message update.message.delete() # Log in database s = session() messageHide = MessageHide(user_id=update.message.from_user.id, message=update.message.text) s.add(messageHide) s.commit() s.close() # Notify channel bot.sendMessage(chat_id=self.notify_chat, text=log_message)
def load_beers(session): with open('seed_data/u.beers') as data: reader = csv.reader(data, delimiter='|') for row in reader: beer = model.Beer(id=row[0], name=row[1], brewer=row[2],\ origin=row[3], style=row[4], abv=row[5], link=row[6],\ image=row[7]) session.add(beer) def load_ratings(session): with open('seed_data/u.ratings') as data: reader = csv.reader(data, delimiter='|') for row in reader: rating = model.Rating(user_id=row[0], beer_id=row[1],\ rating=row[2]) session.add(rating) def main(session): load_users(session) load_beers(session) load_ratings(session) session.commit() if __name__ == "__main__": s = model.session() main(s)
id=row[0], name=row[1], brewer=row[2], origin=row[3], style=row[4], abv=row[5], link=row[6], image=row[7], ) session.add(beer) def load_ratings(session): with open("seed_data/u.ratings") as data: reader = csv.reader(data, delimiter="|") for row in reader: rating = model.Rating(user_id=row[0], beer_id=row[1], rating=row[2]) session.add(rating) def main(session): load_users(session) load_beers(session) load_ratings(session) session.commit() if __name__ == "__main__": s = model.session() main(s)