示例#1
0
 def on_identify(self, data):
     guild_id = data["guild_id"]
     if not guild_accepts_visitors(guild_id) and not check_user_in_guild(guild_id):
         disconnect()
         return
     session["socket_guild_id"] = guild_id
     channels = []
     if guild_accepts_visitors(guild_id) and not check_user_in_guild(guild_id):
         channels = get_guild_channels(guild_id, force_everyone=True)
     else:
         channels = get_guild_channels(guild_id)
     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 = db.session.query(GuildMembers).filter(GuildMembers.guild_id == guild_id, GuildMembers.user_id == session["user_id"]).first().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()
示例#2
0
 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()
示例#3
0
 def on_channel_list(self, data):
     guild_id = data["guild_id"]
     visitor_mode = data["visitor_mode"]
     channels = None
     if visitor_mode or session.get("unauthenticated", True):
         channels = get_guild_channels(guild_id, True)
     else:
         channels = get_guild_channels(guild_id)
     for chan in channels:
         if chan["read"]:
             join_room("CHANNEL_" + chan["channel"]["id"])
         else:
             leave_room("CHANNEL_" + chan["channel"]["id"])
     emit("channel_list", channels)
示例#4
0
def process_query_guild(guild_id, visitor=False):
    widget = discord_api.get_widget(guild_id)
    channels = get_guild_channels(guild_id, visitor)
    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)
    all_users = get_all_users(guild_id)
    if visitor:
        for channel in channels:
            channel["write"] = False
    return jsonify(channels=channels,
                   discordmembers=discordmembers,
                   embedmembers=embedmembers,
                   allusers=all_users,
                   emojis=emojis,
                   roles=roles,
                   guest_icon=guest_icon,
                   instant_invite=widget.get("instant_invite", None))
示例#5
0
文件: api.py 项目: jay121-git/Titan
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
示例#6
0
 def on_channel_list(self, data):
     if "socket_guild_id" not in session:
         disconnect()
         return
     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()
示例#7
0
文件: api.py 项目: jay121-git/Titan
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)