Skip to content

Commit

Permalink
misc
Browse files Browse the repository at this point in the history
  • Loading branch information
chr233 committed Apr 14, 2023
1 parent 5fc6d1a commit 608b862
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 10 deletions.
2 changes: 1 addition & 1 deletion Directory.Build.props
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project>
<PropertyGroup>
<Version>2.0.24.1</Version>
<Version>2.0.25.0</Version>
</PropertyGroup>

<PropertyGroup>
Expand Down
2 changes: 1 addition & 1 deletion XinjingdailyBot.Command/SuperCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ public async Task ResponseChannalOption(Users dbUser, Message message)
return ("请回复审核消息并输入拒绝理由", null);
}

var post = await _postService.FetchPostFromReplyToMessage(dbUser,message);
var post = await _postService.FetchPostFromReplyToMessage(message);

if (post == null)
{
Expand Down
28 changes: 20 additions & 8 deletions XinjingdailyBot.Service/Data/PostService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -61,12 +61,29 @@ public PostService(

public async Task<bool> CheckPostLimit(Users dbUser, Message? message = null, CallbackQuery? query = null)
{
// 未开启限制或者用户为管理员时不受限制
if (!_postOption.EnablePostLimit || dbUser.Right.HasFlag(UserRights.Admin))
//未开启限制或者用户为管理员时不受限制
if ((dbUser.AcceptCount > 0 && !_postOption.EnablePostLimit) || dbUser.Right.HasFlag(UserRights.Admin))
{
return true;
}

//待定确认稿件上限
int paddingLimit = _postOption.DailyPaddingLimit;
//上限基数
int baseRatio = Math.Min(dbUser.AcceptCount / _postOption.RatioDivisor + 1, _postOption.MaxRatio);
//审核中稿件上限
int reviewLimit = baseRatio * _postOption.DailyReviewLimit;
//每日投稿上限
int dailyLimit = baseRatio * _postOption.DailyPostLimit;

//没有通过稿件的用户收到更严格的限制
if (dbUser.AcceptCount == 0)
{
paddingLimit = 2;
reviewLimit = 1;
dailyLimit = 1;
}

DateTime now = DateTime.Now;
DateTime today = now.AddHours(-now.Hour).AddMinutes(-now.Minute).AddSeconds(-now.Second);

Expand All @@ -75,7 +92,6 @@ public async Task<bool> CheckPostLimit(Users dbUser, Message? message = null, Ca
.Where(x => x.PosterUID == dbUser.UserID && x.CreateAt >= today && x.Status == PostStatus.Padding)
.CountAsync();

int paddingLimit = _postOption.DailyPaddingLimit;
if (paddingCount >= paddingLimit)
{
if (message != null)
Expand All @@ -89,14 +105,11 @@ public async Task<bool> CheckPostLimit(Users dbUser, Message? message = null, Ca
return false;
}

int baseRatio = Math.Min(dbUser.AcceptCount / _postOption.RatioDivisor + 1, _postOption.MaxRatio);

//审核中
var reviewCount = await Queryable()
.Where(x => x.PosterUID == dbUser.UserID && x.CreateAt >= today && x.Status == PostStatus.Reviewing)
.CountAsync();

int reviewLimit = baseRatio * _postOption.DailyReviewLimit;
if (reviewCount >= reviewLimit)
{
if (message != null)
Expand All @@ -117,7 +130,6 @@ public async Task<bool> CheckPostLimit(Users dbUser, Message? message = null, Ca
(x.Status == PostStatus.Accepted || (x.Status == PostStatus.Rejected && x.Reason != RejectReason.Duplicate && x.Reason != RejectReason.Fuzzy)))
.CountAsync();

int dailyLimit = baseRatio * _postOption.DailyPostLimit;
if (postCount >= dailyLimit)
{
if (message != null)
Expand All @@ -135,7 +147,7 @@ public async Task<bool> CheckPostLimit(Users dbUser, Message? message = null, Ca
return true;
}


public async Task HandleTextPosts(Users dbUser, Message message)
{
if (!dbUser.Right.HasFlag(UserRights.SendPost))
Expand Down

0 comments on commit 608b862

Please sign in to comment.