Skip to content

Commit

Permalink
fixed!!!!
Browse files Browse the repository at this point in the history
  • Loading branch information
kl3jvi committed Jan 17, 2022
1 parent 178400d commit f882ab4
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package com.kl3jvi.animity.data.repository
import com.kl3jvi.animity.data.model.EpisodeInfo
import com.kl3jvi.animity.data.network.AnimeApiClient
import com.kl3jvi.animity.domain.repositories.PlayerRepository
import com.kl3jvi.animity.utils.Constants.Companion.REFERER
import com.kl3jvi.animity.utils.parser.HtmlParser
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.withContext
Expand All @@ -29,9 +28,11 @@ class PlayerRepositoryImpl @Inject constructor(
override suspend fun fetchM3u8Url(
header: Map<String, String>,
url: String
): Pair<ArrayList<String>, ArrayList<String>> =
): ArrayList<String> =
withContext(ioDispatcher) {
parser.parseEncryptedUrls(apiClient.fetchM3u8PreProcessor(header = header, url = url).string())
parser.parseEncryptedUrls(
apiClient.fetchM3u8PreProcessor(header = header, url = url).string()
)
}

override suspend fun fetchEncryptedAjaxUrl(header: Map<String, String>, url: String): String =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@ import com.kl3jvi.animity.utils.parser.HtmlParser
interface PlayerRepository {
val parser: HtmlParser
suspend fun fetchEpisodeMediaUrl(header: Map<String, String>, url: String): EpisodeInfo
suspend fun fetchM3u8Url(header: Map<String, String>, url: String):Pair<ArrayList<String>,ArrayList<String>>
suspend fun fetchM3u8Url(header: Map<String, String>, url: String):ArrayList<String>
suspend fun fetchEncryptedAjaxUrl(header: Map<String, String>, url: String):String
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,7 @@ class GetEpisodeInfoUseCase @Inject constructor(
emit(Resource.Loading())
try {
val response = playerRepository.fetchM3u8Url(getNetworkHeader(), url ?: "")
Log.e("respons'ua", response.toString())
emit(Resource.Success(data = response.first.first()))
emit(Resource.Success(data = response.last()))
} catch (e: Exception) {
e.printStackTrace()
emit(Resource.Error("Couldn't find a Stream for this Anime"))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import androidx.core.content.ContextCompat
import com.google.android.exoplayer2.*
import com.google.android.exoplayer2.audio.AudioAttributes
import com.google.android.exoplayer2.source.MediaSource
import com.google.android.exoplayer2.source.ProgressiveMediaSource
import com.google.android.exoplayer2.source.hls.HlsMediaSource
import com.google.android.exoplayer2.trackselection.DefaultTrackSelector
import com.google.android.exoplayer2.trackselection.MappingTrackSelector
Expand Down Expand Up @@ -237,7 +238,7 @@ class PlayerActivity : AppCompatActivity() {
viewBinding.videoView.player = exoPlayer
val mdItem = MediaItem.fromUri(videoM3U8Url)
val videoSource: MediaSource =
buildMediaSource(mdItem)
buildMediaSource(mdItem,videoM3U8Url)

exoPlayer.setMediaSource(videoSource)
exoPlayer.playWhenReady = playWhenReady
Expand Down Expand Up @@ -357,11 +358,19 @@ class PlayerActivity : AppCompatActivity() {
}
}

private fun buildMediaSource(mediaItem: MediaItem): HlsMediaSource {
// private fun buildMediaSource(mediaItem: MediaItem): HlsMediaSource {
// val dataSourceFactory: DataSource.Factory = getDataSourceFactory()
// return HlsMediaSource.Factory(dataSourceFactory).createMediaSource(mediaItem)
// }

private fun buildMediaSource(mediaItem: MediaItem, url: String): MediaSource {
val dataSourceFactory: DataSource.Factory = getDataSourceFactory()
return HlsMediaSource.Factory(dataSourceFactory).createMediaSource(mediaItem)
return if (url.contains("m3u8"))
HlsMediaSource.Factory(dataSourceFactory).createMediaSource(mediaItem)
else ProgressiveMediaSource.Factory(dataSourceFactory).createMediaSource(mediaItem)
}


private fun releasePlayer() {
player?.run {
playbackPosition = this.currentPosition
Expand Down
10 changes: 3 additions & 7 deletions app/src/main/java/com/kl3jvi/animity/utils/parser/HtmlParser.kt
Original file line number Diff line number Diff line change
Expand Up @@ -294,23 +294,19 @@ object HtmlParser {
)
}

fun parseEncryptedUrls(response: String): Pair<ArrayList<String>, ArrayList<String>> {
fun parseEncryptedUrls(response: String): ArrayList<String> {
val urls: ArrayList<String> = ArrayList()
val qualities: ArrayList<String> = ArrayList()
var i = 0
val res = JSONObject(response).getJSONArray("source")
Log.e("resu,", res.toString())
return try {
while (i != res.length() && res.getJSONObject(i).getString("label") != "Auto") {
urls.add(res.getJSONObject(i).getString("file"))
qualities.add(
res.getJSONObject(i).getString("label").lowercase(Locale.getDefault())
.filterNot { it.isWhitespace() })
i++
}
Pair(urls, qualities)
urls
} catch (exp: java.lang.NullPointerException) {
Pair(urls, qualities)
urls
}
}
}
Expand Down

0 comments on commit f882ab4

Please sign in to comment.