parent
4ae23c4380
commit
6100533c4d
|
@ -26,10 +26,10 @@ import android.content.Intent
|
|||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.MenuItem
|
||||
import com.google.android.material.bottomnavigation.BottomNavigationView
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.commit
|
||||
import com.google.android.material.bottomnavigation.BottomNavigationView
|
||||
import kotlinx.android.synthetic.main.activity_main.*
|
||||
import kotlinx.coroutines.GlobalScope
|
||||
import kotlinx.coroutines.launch
|
||||
|
@ -41,7 +41,10 @@ import org.mosad.teapod.ui.components.LoginDialog
|
|||
import org.mosad.teapod.ui.home.HomeFragment
|
||||
import org.mosad.teapod.ui.library.LibraryFragment
|
||||
import org.mosad.teapod.ui.search.SearchFragment
|
||||
import org.mosad.teapod.util.*
|
||||
import org.mosad.teapod.util.LoadingFragment
|
||||
import org.mosad.teapod.util.Media
|
||||
import org.mosad.teapod.util.TMDBApiController
|
||||
import kotlin.system.measureTimeMillis
|
||||
|
||||
class MainActivity : AppCompatActivity(), BottomNavigationView.OnNavigationItemSelectedListener {
|
||||
|
||||
|
@ -109,7 +112,11 @@ class MainActivity : AppCompatActivity(), BottomNavigationView.OnNavigationItemS
|
|||
}
|
||||
|
||||
// TODO save last loginSuccess, if false show login dialog even if credentials are present
|
||||
AoDParser().listAnimes()
|
||||
// running login and list in parallel does not bring any speed improvements
|
||||
val time = measureTimeMillis {
|
||||
AoDParser().listAnimes()
|
||||
}
|
||||
Log.i(javaClass.name, "login and list in $time ms")
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -22,6 +22,8 @@ class AoDParser {
|
|||
private val loginPath = "/users/sign_in"
|
||||
private val libraryPath = "/animes"
|
||||
|
||||
private val userAgent = "Mozilla/5.0 (X11; Linux x86_64; rv:80.0) Gecko/20100101 Firefox/80.0"
|
||||
|
||||
companion object {
|
||||
private var csrfToken: String = ""
|
||||
private var sessionCookies = mutableMapOf<String, String>()
|
||||
|
@ -32,8 +34,6 @@ class AoDParser {
|
|||
|
||||
fun login(): Boolean = runBlocking {
|
||||
|
||||
val userAgent = "Mozilla/5.0 (X11; Linux x86_64; rv:80.0) Gecko/20100101 Firefox/80.0"
|
||||
|
||||
withContext(Dispatchers.Default) {
|
||||
// get the authenticity token
|
||||
val resAuth = Jsoup.connect(baseUrl + loginPath)
|
||||
|
@ -64,7 +64,6 @@ class AoDParser {
|
|||
//println(resLogin.body())
|
||||
sessionCookies = resLogin.cookies()
|
||||
loginSuccess = resLogin.body().contains("Hallo, du bist jetzt angemeldet.")
|
||||
|
||||
Log.i(javaClass.name, "Status: ${resLogin.statusCode()} (${resLogin.statusMessage()}), login successful: $loginSuccess")
|
||||
|
||||
loginSuccess
|
||||
|
@ -207,9 +206,10 @@ class AoDParser {
|
|||
MediaType.MOVIE -> {
|
||||
val movie = JsonParser.parseString(res.body()).asJsonObject
|
||||
.get("playlist").asJsonArray
|
||||
.first().asJsonObject
|
||||
|
||||
movie.first().asJsonObject.get("sources").asJsonArray.toList().forEach {
|
||||
episodes.first().streamUrl = it.asJsonObject.get("file").asString
|
||||
movie.get("sources").asJsonArray.first().apply {
|
||||
episodes.first().streamUrl = this.asJsonObject.get("file").asString
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -217,7 +217,6 @@ class AoDParser {
|
|||
val episodesJson = JsonParser.parseString(res.body()).asJsonObject
|
||||
.get("playlist").asJsonArray
|
||||
|
||||
|
||||
episodesJson.forEach { jsonElement ->
|
||||
val episodeId = jsonElement.asJsonObject.get("mediaid")
|
||||
val episodeStream = jsonElement.asJsonObject.get("sources").asJsonArray
|
||||
|
|
|
@ -46,7 +46,6 @@ class MediaFragment(private val media: Media, private val tmdb: TMDBResponse) :
|
|||
// generic gui
|
||||
val backdropUrl = if (tmdb.backdropUrl.isNotEmpty()) tmdb.backdropUrl else media.info.posterLink
|
||||
val posterUrl = if (tmdb.posterUrl.isNotEmpty()) tmdb.posterUrl else media.info.posterLink
|
||||
val posterCornerRadius = if (tmdb.posterUrl.isNotEmpty()) 60 else 30
|
||||
|
||||
Glide.with(requireContext()).load(backdropUrl)
|
||||
.apply(RequestOptions.placeholderOf(ColorDrawable(Color.DKGRAY)))
|
||||
|
@ -82,6 +81,9 @@ class MediaFragment(private val media: Media, private val tmdb: TMDBResponse) :
|
|||
|
||||
private fun initActions() {
|
||||
button_play.setOnClickListener {
|
||||
println(media.episodes)
|
||||
|
||||
|
||||
when (media.type) {
|
||||
MediaType.MOVIE -> playStream(media.episodes.first().streamUrl)
|
||||
MediaType.TVSHOW -> playStream(media.episodes.first().streamUrl)
|
||||
|
@ -104,6 +106,9 @@ class MediaFragment(private val media: Media, private val tmdb: TMDBResponse) :
|
|||
|
||||
private fun playStream(url: String) {
|
||||
val mainActivity = activity as MainActivity
|
||||
|
||||
println("url is: $url")
|
||||
|
||||
mainActivity.startPlayer(url)
|
||||
}
|
||||
|
||||
|
|
|
@ -39,6 +39,7 @@ class SearchFragment : Fragment() {
|
|||
layoutManager = GridLayoutManager(context, 2)
|
||||
adapter = MediaItemAdapter(AoDParser.mediaList)
|
||||
adapter!!.onItemClick = { media, _ ->
|
||||
search_text.clearFocus()
|
||||
(activity as MainActivity).showMediaFragment(media)
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue