Exemple #1
0
 public static void OnFriendRequest(IApplyResponseArgs args)
 {
     if (BotReg.GetBool("CORE/ALLOW_FRIEND_REQUEST", false))
     {
         BotAPI.HandleNewFriendApplyAsync(args, FriendApplyAction.Allow).Wait();
         if (BotAuth.HasOwner && BotReg.GetBool("LOG/FRIEND_REQUEST", true))
         {
             _ = BotAPI.SendPrivateMessageAsync(BotAuth.Owner, new PlainMessage($"Accept friend request: {args.FromQQ}"));
         }
         _ = BotInfo.ReloadFriends();
     }
 }
Exemple #2
0
 /// <summary>
 /// 异步处理加群请求
 /// </summary>
 /// <param name="args">收到用户入群申请事件中的参数</param>
 /// <param name="action">处理方式</param>
 /// <param name="message">附加信息</param>
 public Task HandleGroupApplyAsync(IApplyResponseArgs args, GroupApplyActions action, string message = "")
 {
     CheckConnected();
     byte[] payload = JsonSerializer.SerializeToUtf8Bytes(new
     {
         sessionKey = SessionInfo.SessionKey,
         eventId    = args.EventId,
         fromId     = args.FromQQ,
         groupId    = args.FromGroup,
         operate    = (int)action,
         message
     });
     return(InternalHttpPostAsync($"{SessionInfo.Options.BaseUrl}/resp/memberJoinRequestEvent", payload));
 }
Exemple #3
0
        /// <summary>
        /// 内部使用
        /// </summary>
        /// <exception cref="InvalidOperationException"/>
        /// <param name="action">处理方式</param>
        /// <param name="message">附加信息</param>
        private Task CommonHandleApplyAsync(string actpath, IApplyResponseArgs args, int action, string message)
        {
            InternalSessionInfo session = SafeGetSession();
            var payload = new
            {
                sessionKey = session.SessionKey,
                eventId    = args.EventId,
                fromId     = args.FromQQ,
                groupId    = args.FromGroup,
                operate    = action,
                message
            };

            return(session.Client.PostAsJsonAsync($"{session.Options.BaseUrl}/resp/{actpath}", payload, session.Token).AsApiRespAsync());
        }
Exemple #4
0
        /// <summary>
        /// 内部使用
        /// </summary>
        /// <exception cref="InvalidOperationException"/>
        /// <param name="action">处理方式</param>
        /// <param name="message">附加信息</param>
        private Task CommonHandleApplyAsync(string actpath, IApplyResponseArgs args, int action, string message)
        {
            InternalSessionInfo session = SafeGetSession();

            byte[] payload = JsonSerializer.SerializeToUtf8Bytes(new
            {
                sessionKey = session.SessionKey,
                eventId    = args.EventId,
                fromId     = args.FromQQ,
                groupId    = args.FromGroup,
                operate    = action,
                message
            });
            return(InternalHttpPostAsync(session.Client, $"{session.Options.BaseUrl}/resp/{actpath}", payload, session.Token));
        }
        /// <summary>
        /// 内部使用
        /// </summary>
        private Task CommonHandleApplyAsync(string actPath, IApplyResponseArgs args, int action, string?message, CancellationToken token)
        {
            InternalSessionInfo session = SafeGetSession();
            var payload = new
            {
                sessionKey = session.SessionKey,
                eventId    = args.EventId,
                fromId     = args.FromQQ,
                groupId    = args.FromGroup,
                operate    = action,
                message    = message ?? "",
            };

            CreateLinkedUserSessionToken(session.Token, token, out CancellationTokenSource? cts, out token);
            return(_client.PostAsJsonAsync($"{_options.BaseUrl}/resp/{actPath}", payload, token).AsApiRespAsync(token).DisposeWhenCompleted(cts));
        }
 /// <inheritdoc/>
 public abstract Task HandleNewFriendApplyAsync(IApplyResponseArgs args, FriendApplyAction action, string?message = null, CancellationToken token = default);
 /// <inheritdoc/>
 public abstract Task HandleGroupApplyAsync(IApplyResponseArgs args, GroupApplyActions action, string?message = null, CancellationToken token = default);
Exemple #8
0
 /// <summary>
 /// 异步处理Bot受邀加群请求
 /// </summary>
 /// <param name="args">Bot受邀入群事件中的参数, 即 <see cref="IBotInvitedJoinGroupEventArgs"/></param>
 /// <inheritdoc cref="CommonHandleApplyAsync"/>
 public Task HandleBotInvitedJoinGroupAsync(IApplyResponseArgs args, GroupApplyActions action, string message = "")
 {
     return(CommonHandleApplyAsync("botInvitedJoinGroupRequestEvent", args, (int)action, message));
 }
Exemple #9
0
 /// <summary>
 /// 异步处理加群请求
 /// </summary>
 /// <param name="args">收到用户入群申请事件中的参数, 即 <see cref="IGroupApplyEventArgs"/></param>
 /// <inheritdoc cref="CommonHandleApplyAsync"/>
 public Task HandleGroupApplyAsync(IApplyResponseArgs args, GroupApplyActions action, string message = "")
 {
     return(CommonHandleApplyAsync("memberJoinRequestEvent", args, (int)action, message));
 }
Exemple #10
0
 /// <summary>
 /// 异步处理添加好友请求
 /// </summary>
 /// <param name="args">收到添加好友申请事件中的参数, 即<see cref="INewFriendApplyEventArgs"/></param>
 /// <inheritdoc cref="CommonHandleApplyAsync"/>
 public Task HandleNewFriendApplyAsync(IApplyResponseArgs args, FriendApplyAction action, string message = "")
 {
     return(CommonHandleApplyAsync("newFriendRequestEvent", args, (int)action, message));
 }
Exemple #11
0
 public static Task HandleNewFriendApplyAsync(IApplyResponseArgs args, FriendApplyAction action)
 => session.HandleNewFriendApplyAsync(args, action);
 /// <inheritdoc/>
 public override Task HandleBotInvitedJoinGroupAsync(IApplyResponseArgs args, GroupApplyActions action, string?message = null, CancellationToken token = default)
 {
     return(CommonHandleApplyAsync("botInvitedJoinGroupRequestEvent", args, (int)action, message, token));
 }
 /// <inheritdoc/>
 public override Task HandleNewFriendApplyAsync(IApplyResponseArgs args, FriendApplyAction action, string?message = null, CancellationToken token = default)
 {
     return(CommonHandleApplyAsync("newFriendRequestEvent", args, (int)action, message, token));
 }