コード例 #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 query_guild_visitor():
    guild_id = request.args.get('guild_id')
    if check_guild_existance(guild_id):
        if not guild_accepts_visitors(guild_id):
            abort(403)
        return process_query_guild(guild_id, True)
    abort(404)
コード例 #4
0
 def on_heartbeat(self, data):
     time.sleep(0)
     if "socket_guild_id" not in session:
         disconnect()
         return
     guild_id = data["guild_id"]
     visitor_mode = data["visitor_mode"]
     if not visitor_mode:
         key = None
         if "unauthenticated" not in session:
             self.teardown_db_session()
             disconnect()
             return
         if session["unauthenticated"]:
             key = session["user_keys"][guild_id]
         time.sleep(0)
         status = update_user_status(guild_id, session["username"], key)
         if status["revoked"] or status["banned"]:
             emit("revoke")
             self.teardown_db_session()
             time.sleep(1)
             disconnect()
             return
         else:
             emit("ack")
     else:
         if not guild_accepts_visitors(guild_id):
             self.teardown_db_session()
             disconnect()
             return
     self.teardown_db_session()
コード例 #5
0
def guild_embed(guild_id):
    if check_guild_existance(guild_id):
        guild = redisqueue.get_guild(guild_id)
        dbguild = db.session.query(Guilds).filter(Guilds.guild_id == guild_id).first()
        if not dbguild:
            abort(404)
        guild_dict = {
            "id": guild["id"],
            "name": guild["name"],
            "unauth_users": dbguild.unauth_users,
            "icon": guild["icon"],
            "invite_link": dbguild.invite_link,
            "invite_domain": parse_url_domain(dbguild.invite_link),
            "post_timeout": dbguild.post_timeout,
        }
        customcss = get_custom_css()
        return render_template("embed.html.j2",
            disabled=guild_id in list_disabled_guilds(),
            login_greeting=get_logingreeting(),
            guild_id=guild_id,
            guild=guild_dict,
            generate_guild_icon=generate_guild_icon_url,
            unauth_enabled=guild_query_unauth_users_bool(guild_id),
            visitors_enabled=guild_accepts_visitors(guild_id),
            unauth_captcha_enabled=guild_unauthcaptcha_enabled(guild_id),
            client_id=config['client-id'],
            recaptcha_site_key=config["recaptcha-site-key"],
            css=customcss,
            cssvariables=parse_css_variable(customcss),
            same_target=request.args.get("sametarget", False) == "true",
            userscalable=request.args.get("userscalable", "True").lower().startswith("t"),
            fixed_sidenav=request.args.get("fixedsidenav", "False").lower().startswith("t"),
            is_peak=is_peak(guild_id)
        )
    abort(404)
コード例 #6
0
def guild_embed(guild_id):
    if check_guild_existance(guild_id):
        guild = db.session.query(Guilds).filter(Guilds.guild_id == guild_id).first()
        guild_dict = {
            "id": guild.guild_id,
            "name": guild.name,
            "unauth_users": guild.unauth_users,
            "icon": guild.icon,
            "discordio": guild.discordio,
        }
        customcss = get_custom_css()
        return render_template("embed.html.j2",
            login_greeting=get_logingreeting(),
            guild_id=guild_id,
            guild=guild_dict,
            generate_guild_icon=generate_guild_icon_url,
            unauth_enabled=guild_query_unauth_users_bool(guild_id),
            visitors_enabled=guild_accepts_visitors(guild_id),
            unauth_captcha_enabled=guild_unauthcaptcha_enabled(guild_id),
            client_id=config['client-id'],
            recaptcha_site_key=config["recaptcha-site-key"],
            css=customcss,
            cssvariables=parse_css_variable(customcss),
            same_target=request.args.get("sametarget", False) == "true"
        )
    abort(404)
コード例 #7
0
ファイル: api.py プロジェクト: jay121-git/Titan
def server_members_visitor():
    guild_id = request.args.get("guild_id", None)
    if not check_guild_existance(guild_id):
        abort(404)
    if not guild_accepts_visitors(guild_id):
        abort(403)
    members = query_server_members(guild_id)
    return jsonify(members)
コード例 #8
0
ファイル: gateway.py プロジェクト: timewizard-zz/Titan
 def on_heartbeat(self, data):
     guild_id = data["guild_id"]
     visitor_mode = data["visitor_mode"]
     if not visitor_mode:
         key = None
         if session["unauthenticated"]:
             key = session["user_keys"][guild_id]
         status = update_user_status(guild_id, session["username"], key)
         if status["revoked"] or status["banned"]:
             emit("revoke")
             time.sleep(1000)
             disconnect()
     else:
         if not guild_accepts_visitors(guild_id):
             disconnect()
コード例 #9
0
def fetch_visitor():
    guild_id = request.args.get("guild_id")
    channel_id = request.args.get('channel_id')
    after_snowflake = request.args.get('after', None, type=int)
    if not guild_accepts_visitors(guild_id):
        abort(403)
    messages = {}
    chan = filter_guild_channel(guild_id, channel_id, True)
    if not chan:
        abort(404)
    if not chan.get("read") or chan["channel"]["type"] != "text":
        status_code = 401
    else:
        messages = get_channel_messages(guild_id, channel_id, after_snowflake)
        status_code = 200
    response = jsonify(messages=messages)
    response.status_code = status_code
    return response
コード例 #10
0
def guild_embed(guild_id):
    if check_guild_existance(guild_id):
        guild = db.session.query(Guilds).filter(
            Guilds.guild_id == guild_id).first()
        guild_dict = {
            "id": guild.guild_id,
            "name": guild.name,
            "unauth_users": guild.unauth_users,
            "icon": guild.icon,
            "discordio": guild.discordio,
        }
        return render_template(
            "embed.html.j2",
            login_greeting=get_logingreeting(),
            guild_id=guild_id,
            guild=guild_dict,
            generate_guild_icon=generate_guild_icon_url,
            unauth_enabled=guild_query_unauth_users_bool(guild_id),
            visitors_enabled=guild_accepts_visitors(guild_id),
            client_id=config['client-id'],
            css=get_custom_css())
    abort(404)