def save_from_character(): try: character = g.db.query(Character).filter(and_( Character.id == request.form["character_id"], Character.user_id == g.user.id, )).order_by(Character.title).one() except NoResultFound: abort(404) old_color = g.chat_user.color # Send a message if name, acronym or color has changed. changed = ( g.chat_user.name != character.name or g.chat_user.acronym != character.acronym or g.chat_user.color != character.color ) g.chat_user.name = character.name g.chat_user.acronym = character.acronym g.chat_user.color = character.color g.chat_user.quirk_prefix = character.quirk_prefix g.chat_user.quirk_suffix = character.quirk_suffix g.chat_user.case = character.case g.chat_user.replacements = character.replacements g.chat_user.regexes = character.regexes if changed: if g.chat_user.computed_group == "silent": send_userlist(g.db, g.redis, g.chat) else: send_message(g.db, g.redis, Message( chat_id=g.chat.id, user_id=g.user.id, type="user_info", name=g.chat_user.name, text=("%s [%s] is now %s [%s].") % ( old_name, old_acronym, g.chat_user.name, g.chat_user.acronym, ), )) return jsonify(g.chat_user.to_dict(include_options=True))
def save(): # Remember old values so we can check if they've changed later. old_name = g.chat_user.name old_acronym = g.chat_user.acronym old_color = g.chat_user.color new_details = validate_character_form(request.form) g.chat_user.search_character_id = new_details["search_character_id"] g.chat_user.name = new_details["name"] g.chat_user.acronym = new_details["acronym"] g.chat_user.color = new_details["color"] g.chat_user.quirk_prefix = new_details["quirk_prefix"] g.chat_user.quirk_suffix = new_details["quirk_suffix"] g.chat_user.case = new_details["case"] g.chat_user.replacements = new_details["replacements"] g.chat_user.regexes = new_details["regexes"] # Send a message if name or acronym has changed. if g.chat_user.name != old_name or g.chat_user.acronym != old_acronym: if g.chat_user.computed_group == "silent": send_userlist(g.db, g.redis, g.chat) else: send_message(g.db, g.redis, Message( chat_id=g.chat.id, user_id=g.user.id, type="user_info", name=g.chat_user.name, text=("%s [%s] is now %s [%s].") % ( old_name, old_acronym, g.chat_user.name, g.chat_user.acronym, ), )) # Just refresh the user list if the color has changed. elif g.chat_user.color != old_color: send_userlist(g.db, g.redis, g.chat) return jsonify(g.chat_user.to_dict(include_options=True))
# Only send a timeout message if they were already online. if not disconnected: print "Not sending timeout message." continue try: dead_chat_user = ( db.query(ChatUser) .filter(and_(ChatUser.user_id == user_id, ChatUser.chat_id == chat_id)) .options(joinedload(ChatUser.chat), joinedload(ChatUser.user)) .one() ) except NoResultFound: print "Unable to find ChatUser (chat %s, user %s)." % (chat_id, user_id) continue if dead_chat_user.computed_group == "silent" or dead_chat_user.chat.type in ("pm", "roulette"): send_userlist(db, redis, dead_chat_user.chat) else: send_message( db, redis, Message( chat_id=chat_id, user_id=dead_chat_user.user_id, type="timeout", name=dead_chat_user.name, text="%s's connection timed out." % dead_chat_user.name, ), ) print "Sent timeout message." db.commit()