Discord-History-Tracker icon indicating copy to clipboard operation
Discord-History-Tracker copied to clipboard

Feature Request: Display the list of failed downloads as links and their location

Open Acters opened this issue 1 year ago • 6 comments

I tried searching and I don't see this mentioned anywhere.

Please include the option to export the list of failed downloads, and the location it is found at.

Another thought, include in advanced options or tracking, to allow these failed downloads to appear in the viewer/added to database. May want to include special formatting that denotes it is a failed download.

Thank you, Acters

Acters avatar Feb 28 '24 00:02 Acters

It's a good idea, but any major UI additions like this are going to be low priority for a long time.

Listing the failed downloads and manually adding/editing downloaded files can be done with any decent database tool that supports SQLite, such as https://sqlitebrowser.org.

chylex avatar Feb 28 '24 14:02 chylex

It's a good idea, but any major UI additions like this are going to be low priority for a long time.

Listing the failed downloads and manually adding/editing downloaded files can be done with any decent database tool that supports SQLite, such as https://sqlitebrowser.org.

Thank you for all your efforts, the viewer is a nice and you did a wonderful job.

From investigation on why there was a failed download. The image in question is only accessible when this is applied at the end of the url: ?size=96

I know this because this is a user's profile picture has been changed but my client still had cached the old profile picture in the chat. I will need to reload discord or cause discord to free up this cache in some way.(Desktop Client, likely differentl, or smaller cache, in the browser)

My guess is Discord seems to allow these kinds of cache shenanigans for less strain on their servers. So the image is only accessible as a cached small chat profile picture and the full resolution is removed. Hence the requirement to include ?size=96 at the end. However, while appending ?size=96 works for the browser, updating the database to change the url with this appended at the end will cause the Discord History Tracker server to be perpetually listing the download as "pending" after clicking retry failed download.

Should I create a separate issue for this strange behavior?

Acters avatar Feb 28 '24 20:02 Acters

DHT performs URL normalization to avoid downloading duplicate files and try to use highest quality variants, I'm guessing you edited the normalized URL instead of the download URL? If you do that, DHT won't be able to find it anymore because it will remove the ?size parameter when looking up the downloaded file in the database. The download_metadata table maps normalized URLs to download URLs, you'll have to change the download URL there.

chylex avatar Feb 28 '24 23:02 chylex

DHT performs URL normalization to avoid downloading duplicate files and try to use highest quality variants, I'm guessing you edited the normalized URL instead of the download URL? If you do that, DHT won't be able to find it anymore because it will remove the ?size parameter when looking up the downloaded file in the database. The download_metadata table maps normalized URLs to download URLs, you'll have to change the download URL there.

Thank you for the succinctly written answer. I have edited only the download URL, not the Normalized URL in the download_metadata table. However, Discord History Tracker will automatically remove ?size=96 once it loads the modified database. The download will sit in pending for eternity. I don't want to clog up this feature request with this issue, I will create another issue for this.

Acters avatar Feb 29 '24 22:02 Acters

It's a good idea, but any major UI additions like this are going to be low priority for a long time.

Listing the failed downloads and manually adding/editing downloaded files can be done with any decent database tool that supports SQLite, such as https://sqlitebrowser.org.

I was looking for a way to find urls that didn't download, too. Is there a better way than just

SELECT * FROM attachments 
LEFT JOIN download_blobs USING(normalized_url)
WHERE blob IS NULL

?

espressoelf avatar Apr 07 '24 19:04 espressoelf

It's a good idea, but any major UI additions like this are going to be low priority for a long time. Listing the failed downloads and manually adding/editing downloaded files can be done with any decent database tool that supports SQLite, such as https://sqlitebrowser.org.

I was looking for a way to find urls that didn't download, too. Is there a better way than just

SELECT * FROM attachments 
LEFT JOIN download_blobs USING(normalized_url)
WHERE blob IS NULL

?

Try:

SELECT * FROM download_metadata WHERE status != 200

Status codes: https://github.com/chylex/Discord-History-Tracker/blob/master/app/Server/Data/DownloadStatus.cs

chylex avatar Apr 07 '24 22:04 chylex