def filter_guild_channel(guild_id, channel_id, force_everyone=False): forced_role = get_forced_role(guild_id) channels = get_guild_channels(guild_id, force_everyone, forced_role) for chan in channels: if chan["channel"]["id"] == channel_id: return chan return None
def process_query_guild(guild_id, visitor=False): widget = discord_api.get_widget(guild_id) forced_role = get_forced_role(guild_id) channels = get_guild_channels(guild_id, visitor, forced_role=forced_role) if widget.get("success", True): discordmembers = get_online_discord_users(guild_id, widget) else: discordmembers = [{ "id": 0, "color": "FFD6D6", "status": "dnd", "username": "******" }] embedmembers = get_online_embed_users(guild_id) emojis = get_guild_emojis(guild_id) roles = get_guild_roles(guild_id) guest_icon = get_guild_guest_icon(guild_id) if visitor: for channel in channels: channel["write"] = False return jsonify(channels=channels, discordmembers=discordmembers, embedmembers=embedmembers, emojis=emojis, roles=roles, guest_icon=guest_icon, instant_invite=widget.get("instant_invite", None))
def on_identify(self, data): authorization = data.get("session", None) if authorization: try: data = serializer.loads(authorization) session.update(data) except: pass guild_id = data["guild_id"] if not guild_accepts_visitors(guild_id) and not check_user_in_guild( guild_id): disconnect() self.teardown_db_session() return session["socket_guild_id"] = guild_id channels = [] forced_role = get_forced_role(guild_id) if guild_accepts_visitors( guild_id) and not check_user_in_guild(guild_id): channels = get_guild_channels(guild_id, force_everyone=True, forced_role=forced_role) else: channels = get_guild_channels(guild_id, forced_role=forced_role) join_room("GUILD_" + guild_id) for chan in channels: if chan["read"]: join_room("CHANNEL_" + chan["channel"]["id"]) if session.get("unauthenticated", True) and guild_id in session.get( "user_keys", {}): join_room("IP_" + get_client_ipaddr()) elif not session.get("unauthenticated", True): join_room("USER_" + str(session["user_id"])) visitor_mode = data["visitor_mode"] if not visitor_mode: if session["unauthenticated"]: emit("embed_user_connect", { "unauthenticated": True, "username": session["username"], "discriminator": session["user_id"] }, room="GUILD_" + guild_id) else: nickname = redisqueue.get_guild_member( guild_id, session["user_id"]).get("nickname") emit("embed_user_connect", { "unauthenticated": False, "id": str(session["user_id"]), "nickname": nickname, "username": session["username"], "discriminator": session["discriminator"], "avatar_url": session["avatar"] }, room="GUILD_" + guild_id) emit("identified") self.teardown_db_session()
def on_channel_list(self, data): guild_id = data["guild_id"] visitor_mode = data["visitor_mode"] channels = None forced_role = get_forced_role(guild_id) if visitor_mode or session.get("unauthenticated", True): channels = get_guild_channels(guild_id, True, forced_role=forced_role) else: channels = get_guild_channels(guild_id, forced_role=forced_role) for chan in channels: if chan["read"]: join_room("CHANNEL_" + chan["channel"]["id"]) else: leave_room("CHANNEL_" + chan["channel"]["id"]) emit("channel_list", channels) self.teardown_db_session()
def process_query_guild(guild_id, visitor=False): forced_role = get_forced_role(guild_id) channels = get_guild_channels(guild_id, visitor, forced_role=forced_role) discordmembers = [ ] # Discord members & embed members listed here is moved to its own api endpoint embedmembers = {"authenticated": [], "unauthenticated": []} emojis = get_guild_emojis(guild_id) roles = get_guild_roles(guild_id) guest_icon = get_guild_guest_icon(guild_id) if visitor: for channel in channels: channel["write"] = False return jsonify(channels=channels, discordmembers=discordmembers, embedmembers=embedmembers, emojis=emojis, roles=roles, guest_icon=guest_icon, instant_invite=None)