Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] After resuming downloads with '--skip-same', there are still duplicate downloads #185

Closed
7peanuts opened this issue May 23, 2023 · 9 comments
Assignees
Labels
bug Something isn't working

Comments

@7peanuts
Copy link

7peanuts commented May 23, 2023

Describe the bug
我通过导出消息 .json 文件来下载,并使用 --skip-same 来跳过已下载文件。
当下载中断后,使用 --continue 恢复下载时,有些文件会重复下载,目前遇到重复下载的都是视频文件,图片暂时没有遇到重复下载。
经过测试,多次从同一个消息 .json 文件下载,也会有部分视频重复下载。

这些重复下载的文件,我看了下文件名的末尾,会带有一个下载时间戳,但是我的命名模版末尾并没有这个时间戳,如下图:

1
2

这是我的命名模版:
{{ .MessageDate }}#{{ .DialogID }}#{{ .MessageID }}_{{ replace .FileName / _ _ : _ * _ ? _ < _ > _ | _ _ }}

Version:
v0.8.6

@7peanuts 7peanuts added the bug Something isn't working label May 23, 2023
iyear added a commit that referenced this issue May 24, 2023
@iyear iyear changed the title [BUG] 使用 '--skip-same' 恢复下载后,仍然有重复下载 [BUG] After resuming downloads with '--skip-same', there are still duplicate downloads May 24, 2023
@iyear
Copy link
Owner

iyear commented May 24, 2023

Please upgrade to v0.9.0 and feel free to reopen the issue if you have any questions.

@iyear iyear closed this as completed May 24, 2023
@7peanuts
Copy link
Author

Please upgrade to v0.9.0 and feel free to reopen the issue if you have any questions.

非常感谢,v0.9.0 不会重复下载视频文件了。
不过,新版本的图片命名方式和之前的不一样,源文件名变成了一串数字,如下图:
20230524115153

另外再问一下,读取 .json 文件下载时,是否会有遗漏?
因为我发现,有时候中断后重新恢复下载,会下载之前没有下载到的文件,是不是因为这些文件比较大,所以没有及时下载到?
20230524115815

@7peanuts
Copy link
Author

7peanuts commented May 24, 2023

非常感谢,v0.9.0 不会重复下载视频文件了。

好像仍然有重复下载,会覆盖之前的下载文件。
如图,重启 cmd 或重新输入下载命令后,少数视频文件被重复下载
20230524132406

@iyear
Copy link
Owner

iyear commented May 24, 2023

两次的命令是相同的吗?

@7peanuts
Copy link
Author

两次的命令是相同的吗?

加不加 --continue 结果都是一样的,都会从相同的文件开始下载,并覆盖之前下载过的。
但如果有下载完成度不到 100% 的文件,则会先从这个未完成的任务开始。
tdl dl -f E:\***.json -d "E:\DLVideos" --rewrite-ext --skip-same --continue

@iyear
Copy link
Owner

iyear commented May 25, 2023

本地复现不了。下载一遍后再次使用相同命令则跳过所有已下载的文件,--skip-name 基于去除扩展名的文件名、文件大小对比。

@7peanuts
Copy link
Author

本地复现不了。下载一遍后再次使用相同命令则跳过所有已下载的文件,--skip-name 基于去除扩展名的文件名、文件大小对比。

是不是与网络质量有关?我这只有视频和 .gz 压缩文件(可能是贴纸?)才会重复下载。
并且如果有下载完成度不到 100% 的文件,则不会重复下载,而是会先从这个未完成的任务开始继续下载。

我找了个频道测试:https://t.me/joinchat/AAAAAD-tO7GPvfOU131_vg
导出了最后 100 条消息,下面附件是导出的 KidProject.json 文件
KidProject last 100 messages.zip

然后进行下载,从下面测试图中可以看到,在下载完全部 100 个文件之后,再次启动下载还会重新下载 5 个文件。
这是导出的 cmd 文本 cmd text.txt

这是我的环境变量配置:
env

@iyear
Copy link
Owner

iyear commented May 25, 2023

网络问题导致后面几个下载断了,设置 --reconnect-timeout 0 解决网络较差情况下 EOF 问题。看来这个参数默认值还是要改大点:P

@7peanuts
Copy link
Author

网络问题导致后面几个下载断了,设置 --reconnect-timeout 0 解决网络较差情况下 EOF 问题。看来这个参数默认值还是要改大点:P

啊,好像没问题了,这次不会重复下载了 🥳
20230525152253

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants