commit 3dafa28f3106dd6c974a672057cbb9e985f6d594 parent 33c8e79557d5dd269e61fbd757b9790460aa5267 Author: rhunk <101876869+rhunk@users.noreply.github.com> Date: Sat, 27 May 2023 18:34:01 +0200 fix(mediadownloader): new media sources Diffstat:
3 files changed, 13 insertions(+), 8 deletions(-)
diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/ModContext.kt b/app/src/main/kotlin/me/rhunk/snapenhance/ModContext.kt @@ -60,6 +60,7 @@ class ModContext { runCatching { runnable() }.onFailure { + longToast("Async task failed " + it.message) Logger.xposedLog("Async task failed", it) } } diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/data/wrapper/impl/media/opera/ParamMap.kt b/app/src/main/kotlin/me/rhunk/snapenhance/data/wrapper/impl/media/opera/ParamMap.kt @@ -15,7 +15,7 @@ class ParamMap(obj: Any?) : AbstractWrapper(obj) { )!! } - private val concurrentHashMap: ConcurrentHashMap<Any, Any> + val concurrentHashMap: ConcurrentHashMap<Any, Any> get() = instanceNonNull().getObjectField(paramMapField.name) as ConcurrentHashMap<Any, Any> operator fun get(key: String): Any? { diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/features/impl/downloader/MediaDownloader.kt b/app/src/main/kotlin/me/rhunk/snapenhance/features/impl/downloader/MediaDownloader.kt @@ -143,10 +143,7 @@ class MediaDownloader : Feature("MediaDownloader", loadParams = FeatureLoadParam fun downloadLastOperaMediaAsync() { if (lastSeenMapParams == null || lastSeenMediaInfoMap == null) return context.executeAsync { - handleOperaMedia( - lastSeenMapParams!!, - lastSeenMediaInfoMap!!, true - ) + handleOperaMedia(lastSeenMapParams!!, lastSeenMediaInfoMap!!, true) } } @@ -224,14 +221,15 @@ class MediaDownloader : Feature("MediaDownloader", loadParams = FeatureLoadParam ) { val storyIdStartIndex = playlistV2Group.indexOf("storyUserId=") + 12 val storyUserId = playlistV2Group.substring(storyIdStartIndex, playlistV2Group.indexOf(",", storyIdStartIndex)) - val author = context.database.getFriendInfo(storyUserId) + val author = context.database.getFriendInfo(if (storyUserId == "null") context.database.getMyUserId()!! else storyUserId) downloadOperaMedia(mediaInfoMap, author!!.usernameForSorting!!) return } val snapSource = paramMap["SNAP_SOURCE"].toString() //public stories - if (snapSource == "PUBLIC_USER" && (forceDownload || context.config.bool(ConfigProperty.AUTO_DOWNLOAD_PUBLIC_STORIES))) { + if ((snapSource == "PUBLIC_USER" || snapSource == "SAVED_STORY") && + (forceDownload || context.config.bool(ConfigProperty.AUTO_DOWNLOAD_PUBLIC_STORIES))) { val userDisplayName = (if (paramMap.containsKey("USER_DISPLAY_NAME")) paramMap["USER_DISPLAY_NAME"].toString() else "").replace( "[^\\x00-\\x7F]".toRegex(), "") @@ -247,7 +245,7 @@ class MediaDownloader : Feature("MediaDownloader", loadParams = FeatureLoadParam //stories with mpeg dash media //TODO: option to download multiple chapters - if (paramMap.containsKey("SNAP_PLAYLIST_ITEM") && forceDownload) { + if (paramMap.containsKey("LONGFORM_VIDEO_PLAYLIST_ITEM") && forceDownload) { if (!isFFmpegPresent) { context.shortToast("Can't download media. ffmpeg was not found") return @@ -293,6 +291,12 @@ class MediaDownloader : Feature("MediaDownloader", loadParams = FeatureLoadParam } return } + + context.longToast("Download not implemented. Please report this issue!") + xposedLog("download not implemented issue:") + xposedLog("paramMap: ${paramMap.concurrentHashMap}") + xposedLog("mediaInfoMap: $mediaInfoMap") + xposedLog("forceDownload: $forceDownload") } private fun canAutoDownload(): Boolean {