def generate_counters(): logger.info("Generating user counters.") redis_chat = NewparpRedis(connection_pool=redis_chat_pool) user_ids_online = list(UserListStore.multi_user_ids_online( redis_chat, UserListStore.scan_active_chats(redis_chat), )) generate_counters.redis.set( "connected_users", len(set.union(*user_ids_online)) if user_ids_online else 0, )
def generate_counters(): logger.info("Generating user counters.") redis_chat = NewparpRedis(connection_pool=redis_chat_pool) user_ids_online = list( UserListStore.multi_user_ids_online( redis_chat, UserListStore.scan_active_chats(redis_chat), )) generate_counters.redis.set( "connected_users", len(set.union(*user_ids_online)) if user_ids_online else 0, )
def broadcast_post(): title = request.form.get("title", "Global Announcement").strip() text = request.form["text"].strip() if not text: abort(400) if request.form["color"][0] == "#": color = request.form["color"][1:] else: color = request.form["color"] if not color_validator.match(color): abort(400) if request.form["headercolor"][0] == "#": headercolor = request.form["headercolor"][1:] else: headercolor = request.form["headercolor"] if not color_validator.match(headercolor): abort(400) g.db.add( AdminLogEntry( action_user=g.user, type="broadcast", description=text, )) message_json = json.dumps({ "messages": [{ "id": None, "user_number": None, "posted": time.time(), "type": "global", "color": color, "headercolor": headercolor, "acronym": "", "name": "", "text": text, "title": title, "important": "important" in request.form }] }) for chat_id in UserListStore.scan_active_chats( NewparpRedis(connection_pool=redis_chat_pool)): g.redis.publish("channel:%s" % chat_id, message_json) return redirect(url_for("admin_broadcast"))
def broadcast_post(): title = request.form.get("title", "Global Announcement").strip() text = request.form["text"].strip() if not text: abort(400) if request.form["color"][0] == "#": color = request.form["color"][1:] else: color = request.form["color"] if not color_validator.match(color): abort(400) if request.form["headercolor"][0] == "#": headercolor = request.form["headercolor"][1:] else: headercolor = request.form["headercolor"] if not color_validator.match(headercolor): abort(400) g.db.add(AdminLogEntry( action_user=g.user, type="broadcast", description=text, )) message_json = json.dumps({ "messages": [{ "id": None, "user_number": None, "posted": time.time(), "type": "global", "color": color, "headercolor": headercolor, "acronym": "", "name": "", "text": text, "title": title, "important": "important" in request.form }] }) for chat_id in UserListStore.scan_active_chats(NewparpRedis(connection_pool=redis_chat_pool)): g.redis.publish("channel:%s" % chat_id, message_json) return redirect(url_for("admin_broadcast"))
def reap(): redis_chat = NewparpRedis(connection_pool=redis_chat_pool) for chat_id in UserListStore.scan_active_chats(redis_chat): reap_chat.delay(chat_id)