Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
chr233 committed May 30, 2023
1 parent 1584a40 commit 8f00718
Show file tree
Hide file tree
Showing 9 changed files with 79 additions and 14 deletions.
63 changes: 59 additions & 4 deletions XinjingdailyBot.Command/SuperCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -387,7 +387,6 @@ public async Task ResponseMergePost(Message message)
int effectCount = 0;

int totalPosts = await _oldPostService.Queryable().CountAsync(x => !x.Merged);

var msg = await _botClient.SendCommandReply($"开始迁移稿件表, 共计 {totalPosts} 条记录", message, autoDelete: false);

while (startId <= totalPosts)
Expand All @@ -398,8 +397,6 @@ public async Task ResponseMergePost(Message message)
break;
}



var tasks = oldPosts.Select(async oldPost => {

long channelId = -1, channelMsgId = -1;
Expand Down Expand Up @@ -503,10 +500,11 @@ public async Task ResponseMergePost(Message message)
catch (Exception)
{
_logger.LogWarning("稿件Id {id} 已存在", oldPost.Id);
await _postService.Updateable(post).ExecuteCommandAsync();
}

oldPost.Merged = true;
await _oldPostService.Updateable(oldPost).UpdateColumns(x => x.Merged).ExecuteCommandAsync();
await _oldPostService.Updateable(oldPost).UpdateColumns(x => new { x.Merged }).ExecuteCommandAsync();

}).ToList();

Expand All @@ -527,6 +525,63 @@ public async Task ResponseMergePost(Message message)
}
}

/// <summary>
/// 修补稿件数据
/// </summary>
/// <param name="message"></param>
/// <returns></returns>
[TextCmd("FIXPOST", EUserRights.SuperCmd, Description = "修补稿件数据")]
public async Task ResponseFixPost(Message message)
{
const int threads = 30;

int startId = 1;
int effectCount = 0;

int totalPosts = await _postService.Queryable().CountAsync(x => x.ReviewActionChatID == x.ReviewActionMsgID);
var msg = await _botClient.SendCommandReply($"开始修补稿件表, 共计 {totalPosts} 条记录", message, autoDelete: false);

while (startId <= totalPosts)
{
var posts = await _postService.Queryable().Where(x => x.Id >= startId &&
x.ReviewActionChatID == x.ReviewActionMsgID
).Take(threads).ToListAsync();

if (!posts.Any())
{
break;
}

var tasks = posts.Select(async post => {
effectCount++;

post.ReviewActionChatID = post.ReviewChatID;
post.ModifyAt = DateTime.Now;

await _postService.Updateable(post).UpdateColumns(x => new {
x.ReviewActionChatID,
x.ModifyAt,
}).ExecuteCommandAsync();

}).ToList();

await Task.WhenAll(tasks);

startId = posts.Last().Id + 1;

_logger.LogInformation("迁移进度 {startId} / {totalUsers}, 更新数量 {effectCount}", startId, posts, effectCount);
}

try
{
await _botClient.EditMessageTextAsync(msg, $"修补稿件表完成, 更新了 {effectCount} 条记录");
}
catch
{
await _botClient.SendCommandReply($"修补稿件表完成, 更新了 {effectCount} 条记录", message, autoDelete: false);
}
}

/// <summary>
/// 自动升级机器人
/// </summary>
Expand Down
2 changes: 1 addition & 1 deletion XinjingdailyBot.Interface/Data/IChannelOptionService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public interface IChannelOptionService : IBaseService<ChannelOptions>
/// </summary>
/// <param name="channelName"></param>
/// <returns></returns>
Task<ChannelOptions?> FetchChannelByNameOrTitle(string channelName,string channelTitle);
Task<ChannelOptions?> FetchChannelByNameOrTitle(string channelName, string channelTitle);

/// <summary>
/// 通过频道名称获取频道ID
Expand Down
2 changes: 1 addition & 1 deletion XinjingdailyBot.Model/Models/NewPosts.cs
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ public sealed record NewPosts : BaseModel, IModifyAt, ICreateAt
/// 审核人用户ID
/// </summary>
public long ReviewerUID { get; set; } = -1;

/// <inheritdoc cref="ICreateAt.CreateAt"/>
public DateTime CreateAt { get; set; } = DateTime.Now;
/// <inheritdoc cref="IModifyAt.ModifyAt"/>
Expand Down
9 changes: 8 additions & 1 deletion XinjingdailyBot.Service/Data/PostService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -733,7 +733,14 @@ public async Task AcceptPost(NewPosts post, Users dbUser, CallbackQuery callback
post.ReviewMsgID = msg.MessageId;
}

await Updateable(post).UpdateColumns(x => new { x.ReviewMsgID, x.PublicMsgID, x.PublishMediaGroupID, x.ReviewerUID, x.Status, x.ModifyAt }).ExecuteCommandAsync();
await Updateable(post).UpdateColumns(x => new {
x.ReviewMsgID,
x.PublicMsgID,
x.PublishMediaGroupID,
x.ReviewerUID,
x.Status,
x.ModifyAt
}).ExecuteCommandAsync();

//通知投稿人
string posterMsg = _textHelperService.MakeNotification(post.IsDirectPost, post.PublicMsgID);
Expand Down
3 changes: 1 addition & 2 deletions XinjingdailyBot.Service/Data/UserTokenService.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using Microsoft.Extensions.Logging;
using Telegram.Bot.Types;
using XinjingdailyBot.Infrastructure.Attribute;
using XinjingdailyBot.Interface.Data;
using XinjingdailyBot.Model.Models;
Expand Down Expand Up @@ -54,7 +53,7 @@ public UserTokenService(
return token;
}

public async Task<Users?> VerifyToken (Guid token)
public async Task<Users?> VerifyToken(Guid token)
{
var userToken = await Queryable().Where(x => x.APIToken == token).FirstAsync();
if (userToken == null || userToken.ExpiredAt < DateTime.Now)
Expand Down
2 changes: 1 addition & 1 deletion XinjingdailyBot.Service/Helper/MarkupHelperService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -325,7 +325,7 @@ public InlineKeyboardMarkup RandomPostMenuKeyboard(Users dbUser)
InlineKeyboardButton.WithCallbackData("不限制稿件标签", $"cmd {dbUser.UserID} setrandompost")
}
};

var line = new List<InlineKeyboardButton>();

int lineChars = 0;
Expand Down
6 changes: 5 additions & 1 deletion XinjingdailyBot.Tasks/ExpiredPostsTask.cs
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,11 @@ public async Task Execute(IJobExecutionContext context)
user.ModifyAt = DateTime.Now;

//更新用户表
await _userService.Updateable(user).UpdateColumns(x => new { x.PrivateChatID, x.ExpiredPostCount, x.ModifyAt }).ExecuteCommandAsync();
await _userService.Updateable(user).UpdateColumns(x => new {
x.PrivateChatID,
x.ExpiredPostCount,
x.ModifyAt
}).ExecuteCommandAsync();
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions XinjingdailyBot.WebAPI/Controllers/IndexController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public IndexController(
/// Root
/// </summary>
/// <returns></returns>
[HttpGet]
[HttpGet("[action]")]
public IActionResult Get()
{
return Ok("启动完成");
Expand All @@ -42,7 +42,7 @@ public IActionResult Get()
/// </summary>
/// <param name="token"></param>
/// <returns></returns>
[HttpPost]
[HttpPost("[action]")]
public async Task<ActionResult<Users>> TestToken([FromBody] Guid token)
{
var user = await _userTokenService.VerifyToken(token);
Expand Down
2 changes: 1 addition & 1 deletion XinjingdailyBot.WebAPI/Extensions/DatabaseExtension.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ public static void AddSqlSugar(this IServiceCollection services, IConfiguration
Environment.Exit(1);
}

_logger.Info("数据库驱动: {0}",dbConfig.UseMySQL?"MySQL":"SQLite");
_logger.Info("数据库驱动: {0}", dbConfig.UseMySQL ? "MySQL" : "SQLite");

string connStr = dbConfig.UseMySQL ?
$"Host={dbConfig.DbHost};Port={dbConfig.DbPort};Database={dbConfig.DbName};UserID={dbConfig.DbUser};Password={dbConfig.DbPassword};CharSet=utf8mb4;AllowZeroDateTime=true" :
Expand Down

0 comments on commit 8f00718

Please sign in to comment.