fix crash in episode count extraction

This commit is contained in:
Jannik 2020-10-15 16:23:52 +02:00
parent adf8a48251
commit 4ae23c4380
Signed by: Seil0
GPG Key ID: E8459F3723C52C24
6 changed files with 27 additions and 13 deletions

View File

@ -9,6 +9,7 @@ import org.mosad.teapod.preferences.EncryptedPreferences
import org.mosad.teapod.util.DataTypes.MediaType
import org.mosad.teapod.util.Episode
import org.mosad.teapod.util.Media
import java.io.IOException
import java.util.*
import kotlin.collections.ArrayList
@ -128,11 +129,16 @@ class AoDParser {
//println(res)
// parse additional info from the media page
res.select("table.vertical-table").select("tr").forEach {
when (it.select("th").text().toLowerCase(Locale.ROOT)) {
"produktionsjahr" -> media.info.year = it.select("td").text().toInt()
"fsk" -> media.info.age = it.select("td").text().toInt()
"episodenanzahl" -> media.info.episodesCount = it.select("td").text().toInt()
res.select("table.vertical-table").select("tr").forEach { row ->
when (row.select("th").text().toLowerCase(Locale.ROOT)) {
"produktionsjahr" -> media.info.year = row.select("td").text().toInt()
"fsk" -> media.info.age = row.select("td").text().toInt()
"episodenanzahl" -> {
media.info.episodesCount = row.select("td").text()
.substringBefore("/")
.filter{ it.isDigit() }
.toInt()
}
}
}
@ -251,11 +257,16 @@ class AoDParser {
Pair("X-Requested-With", "XMLHttpRequest"),
)
Jsoup.connect(baseUrl + callbackPath)
.ignoreContentType(true)
.cookies(sessionCookies)
.headers(headers)
.execute()
try {
Jsoup.connect(baseUrl + callbackPath)
.ignoreContentType(true)
.cookies(sessionCookies)
.headers(headers)
.execute()
} catch (ex: IOException) {
Log.e(javaClass.name, "Callback for $callbackPath failed.")
}
}
}

View File

@ -11,7 +11,7 @@ import kotlinx.coroutines.*
import org.mosad.teapod.MainActivity
import org.mosad.teapod.R
import org.mosad.teapod.parser.AoDParser
import org.mosad.teapod.util.MediaItemDecoration
import org.mosad.teapod.util.decoration.MediaItemDecoration
import org.mosad.teapod.util.adapter.MediaItemAdapter
class LibraryFragment : Fragment() {

View File

@ -12,7 +12,7 @@ import kotlinx.coroutines.*
import org.mosad.teapod.MainActivity
import org.mosad.teapod.R
import org.mosad.teapod.parser.AoDParser
import org.mosad.teapod.util.MediaItemDecoration
import org.mosad.teapod.util.decoration.MediaItemDecoration
import org.mosad.teapod.util.adapter.MediaItemAdapter
class SearchFragment : Fragment() {

View File

@ -1,4 +1,4 @@
package org.mosad.teapod.util
package org.mosad.teapod.util.decoration
import android.graphics.Rect
import android.view.View

View File

@ -11,6 +11,8 @@
android:id="@+id/search_text"
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="#FFFFFF"
android:elevation="8dp"
android:iconifiedByDefault="false"
android:paddingBottom="5dp"
android:queryHint="@string/search_hint"

View File

@ -5,6 +5,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:backgroundTint="#FFFFFF"
android:visibility="visible"
app:cardCornerRadius="7dp"
app:cardElevation="4dp">