summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorByteHamster <info@bytehamster.com>2023-01-08 21:52:41 +0100
committerByteHamster <info@bytehamster.com>2023-01-08 21:52:41 +0100
commit941ebbdc2bc4edc60f3f036dcc71f2ade40d7cb0 (patch)
treee147fccc277685b1b86bbdb9cf9c866553dc3a1d /core
parent88289d02ae2a402ec77723dd53da33e9cf4c7311 (diff)
downloadAntennaPod-941ebbdc2bc4edc60f3f036dcc71f2ade40d7cb0.zip
Fix downloads when feeds with same name have items with the same name
Diffstat (limited to 'core')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadRequestCreator.java24
1 files changed, 11 insertions, 13 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadRequestCreator.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadRequestCreator.java
index 6fcb471bd..d6a4b8378 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadRequestCreator.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadRequestCreator.java
@@ -39,7 +39,7 @@ public class DownloadRequestCreator {
final boolean partiallyDownloadedFileExists =
media.getFile_url() != null && new File(media.getFile_url()).exists();
File dest;
- if (media.getFile_url() != null && new File(media.getFile_url()).exists()) {
+ if (partiallyDownloadedFileExists) {
dest = new File(media.getFile_url());
} else {
dest = new File(getMediafilePath(media), getMediafilename(media));
@@ -102,7 +102,7 @@ public class DownloadRequestCreator {
if (feed.getTitle() != null && !feed.getTitle().isEmpty()) {
filename = feed.getTitle();
}
- return "feed-" + FileNameGenerator.generateFileName(filename);
+ return "feed-" + FileNameGenerator.generateFileName(filename) + feed.getId();
}
private static String getMediafilePath(FeedMedia media) {
@@ -112,7 +112,6 @@ public class DownloadRequestCreator {
}
private static String getMediafilename(FeedMedia media) {
- String filename;
String titleBaseFilename = "";
// Try to generate the filename by the item title
@@ -123,18 +122,17 @@ public class DownloadRequestCreator {
String urlBaseFilename = URLUtil.guessFileName(media.getDownload_url(), null, media.getMime_type());
+ String baseFilename;
if (!titleBaseFilename.equals("")) {
- // Append extension
- final int filenameMaxLength = 220;
- if (titleBaseFilename.length() > filenameMaxLength) {
- titleBaseFilename = titleBaseFilename.substring(0, filenameMaxLength);
- }
- filename = titleBaseFilename + FilenameUtils.EXTENSION_SEPARATOR
- + FilenameUtils.getExtension(urlBaseFilename);
+ baseFilename = titleBaseFilename;
} else {
- // Fall back on URL file name
- filename = urlBaseFilename;
+ baseFilename = urlBaseFilename;
+ }
+ final int filenameMaxLength = 220;
+ if (baseFilename.length() > filenameMaxLength) {
+ baseFilename = baseFilename.substring(0, filenameMaxLength);
}
- return filename;
+ return baseFilename + FilenameUtils.EXTENSION_SEPARATOR + media.getId()
+ + FilenameUtils.EXTENSION_SEPARATOR + FilenameUtils.getExtension(urlBaseFilename);
}
}