Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 23 additions & 2 deletions client/src/api/rssMirror.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,21 @@ class RssMirrorApi {
async getList(
input: GetRssMirrorItemsRequestDto
): Promise<PagedResultDto<RssMirrorItemDto>> {
return http.get(this.baseUrl, { params: input });
const pageIndex = input?.pageIndex ?? 1;
const pageSize = input?.pageSize ?? 10;
return http.get(this.baseUrl, {
params: {
skipCount: (pageIndex - 1) * pageSize,
maxResultCount: pageSize,
sorting: input?.sorting,
rssSourceId: input?.rssSourceId,
filter: input?.filter,
startTime: input?.startTime,
endTime: input?.endTime,
isDownloaded: input?.isDownloaded,
wordToken: input?.wordToken
}
});
}

/**
Expand Down Expand Up @@ -59,8 +73,15 @@ class RssMirrorApi {
wordToken: string,
params?: PagedRequestDto
): Promise<PagedResultDto<RssMirrorItemDto>> {
const pageIndex = params?.pageIndex ?? 1;
const pageSize = params?.pageSize ?? 10;
return http.get(`${this.baseUrl}/by-word-token`, {
params: { wordToken, ...params }
params: {
wordToken,
skipCount: (pageIndex - 1) * pageSize,
maxResultCount: pageSize,
sorting: params?.sorting
}
});
}

Expand Down
38 changes: 22 additions & 16 deletions src/DFApp.Web/Services/Rss/RssMirrorItemAppService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using System.Linq;
using System.Threading.Tasks;
using DFApp.Rss;
using DFApp.Aria2;
using DFApp.Web.Data;
using DFApp.Web.DTOs;
using DFApp.Web.DTOs.Rss;
Expand All @@ -22,9 +23,7 @@ public class RssMirrorItemAppService : AppServiceBase
private readonly ISqlSugarRepository<RssWordSegment, long> _rssWordSegmentRepository;
private readonly ISqlSugarRepository<RssSource, long> _rssSourceRepository;
private readonly ILogger<RssMirrorItemAppService> _logger;

// TODO: IAria2Service 未迁移,暂时使用 object? 替代
private readonly object? _aria2Service;
private readonly Services.Aria2.Aria2Service _aria2Service;

/// <summary>
/// 构造函数
Expand All @@ -34,19 +33,22 @@ public class RssMirrorItemAppService : AppServiceBase
/// <param name="rssMirrorItemRepository">RSS镜像条目仓储</param>
/// <param name="rssWordSegmentRepository">RSS分词仓储</param>
/// <param name="rssSourceRepository">RSS源仓储</param>
/// <param name="aria2Service">Aria2下载服务</param>
/// <param name="logger">日志记录器</param>
public RssMirrorItemAppService(
ICurrentUser currentUser,
IPermissionChecker permissionChecker,
ISqlSugarRepository<RssMirrorItem, long> rssMirrorItemRepository,
ISqlSugarRepository<RssWordSegment, long> rssWordSegmentRepository,
ISqlSugarRepository<RssSource, long> rssSourceRepository,
Services.Aria2.Aria2Service aria2Service,
ILogger<RssMirrorItemAppService> logger)
: base(currentUser, permissionChecker)
{
_rssMirrorItemRepository = rssMirrorItemRepository;
_rssWordSegmentRepository = rssWordSegmentRepository;
_rssSourceRepository = rssSourceRepository;
_aria2Service = aria2Service;
_logger = logger;
}

Expand Down Expand Up @@ -301,25 +303,29 @@ public async Task<string> DownloadToAria2Async(long id, bool videoOnly = false,
throw new BusinessException("该条目已经下载过");
}

// TODO: IAria2Service 未迁移,以下为伪代码
// var request = new AddDownloadRequestDto
// {
// Urls = new List<string> { item.Link },
// VideoOnly = videoOnly,
// EnableKeywordFilter = enableKeywordFilter
// };
// var result = await _aria2Service.AddDownloadAsync(request);
if (string.IsNullOrWhiteSpace(item.Link))
{
throw new BusinessException("该条目没有下载链接");
}

// 构造下载请求,先调用 Aria2 添加下载任务
var request = new AddDownloadRequestDto
{
Urls = new List<string> { item.Link },
VideoOnly = videoOnly,
EnableKeywordFilter = enableKeywordFilter
};

var result = await _aria2Service.AddDownloadAsync(request);

// 更新下载状态
// 下载任务创建成功后才更新下载状态
item.IsDownloaded = true;
item.DownloadTime = DateTime.Now;
await _rssMirrorItemRepository.UpdateAsync(item);

_logger.LogInformation("RSS镜像条目 {Id} 已添加到Aria2下载队列", id);
_logger.LogInformation("RSS镜像条目 {Id} 已添加到Aria2下载队列,GID: {Gid}", id, result.Id);

// TODO: IAria2Service 未迁移,返回占位值
throw new BusinessException("IAria2Service 尚未迁移,下载功能暂不可用");
// return result.Id;
return result.Id;
}

/// <summary>
Expand Down
Loading