remove bad upload date from all extensions

This commit is contained in:
jmir1
2022-07-02 17:42:03 +02:00
parent 0dba9eab2a
commit c66924b5ce
75 changed files with 60 additions and 81 deletions

View File

@ -191,8 +191,29 @@ a.k.a. the Latest source entry point in the app (invoked by tapping on the "Late
#### Episode #### Episode
- After an episode list for the anime is fetched and the app is going to cache the data, `prepareNewEpisode` will be called. - After an episode list for the anime is fetched and the app is going to cache the data, `prepareNewEpisode` will be called.
- `SEpisode.date_upload` is the [UNIX Epoch time](https://en.wikipedia.org/wiki/Unix_time) **expressed in miliseconds**. - `SEpisode.date_upload` is the [UNIX Epoch time](https://en.wikipedia.org/wiki/Unix_time) **expressed in milliseconds**.
- If you don't pass `SEpisode.date_upload`, the user won't get notifications for new episodes. refer to [this issue](https://github.com/tachiyomiorg/tachiyomi/issues/2089) for more info. `System.currentTimeMillis()` works as a substitute when real data is not available. - If you don't pass `SEpisode.date_upload` and leave it zero, the app will use the default date instead, but it's recommended to always fill it if it's available.
- To get the time in milliseconds from a date string, you can use a `SimpleDateFormat` like in the example below.
```kotlin
private fun parseDate(dateStr: String): Long {
return runCatching { DATE_FORMATTER.parse(dateStr)?.time }
.getOrNull() ?: 0L
}
companion object {
private val DATE_FORMATTER by lazy {
SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH)
}
}
```
Make sure you make the `SimpleDateFormat` a class constant or variable so it doesn't get recreated for every episode. If you need to parse or format dates in anime description, create another instance since `SimpleDateFormat` is not thread-safe.
- If the parsing have any problem, make sure to return `0L` so the app will use the default date instead.
- The app will overwrite dates of existing old episodes **UNLESS** `0L` is returned.
- The default date has [changed](https://github.com/tachiyomiorg/tachiyomi/pull/7197) in Tachiyomi preview ≥ r4442 or stable > 0.13.4.
- In older versions, the default date is always the fetch date.
- In newer versions, this is the same if every (new) episode has `0L` returned.
- However, if the source only provides the upload date of the latest episode, you can now set it to the latest episode and leave other episodes default. The app will automatically set it (instead of fetch date) to every new episode and leave old episodes' dates untouched.
#### Episode Videos #### Episode Videos

View File

@ -5,7 +5,7 @@ ext {
extName = 'أكوام' extName = 'أكوام'
pkgNameSuffix = 'ar.akwam' pkgNameSuffix = 'ar.akwam'
extClass = '.Akwam' extClass = '.Akwam'
extVersionCode = 5 extVersionCode = 6
libVersion = '12' libVersion = '12'
} }

View File

@ -64,7 +64,6 @@ class Akwam : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val episode = SEpisode.create() val episode = SEpisode.create()
episode.setUrlWithoutDomain(element.attr("value")) episode.setUrlWithoutDomain(element.attr("value"))
episode.name = element.ownerDocument().select("picture > img.img-fluid").attr("alt") episode.name = element.ownerDocument().select("picture > img.img-fluid").attr("alt")
episode.date_upload = System.currentTimeMillis()
return episode return episode
} }

View File

@ -5,7 +5,7 @@ ext {
extName = 'اكوام مسلسلات' extName = 'اكوام مسلسلات'
pkgNameSuffix = 'ar.akwams' pkgNameSuffix = 'ar.akwams'
extClass = '.AkwamS' extClass = '.AkwamS'
extVersionCode = 4 extVersionCode = 5
libVersion = '12' libVersion = '12'
} }

View File

@ -69,7 +69,6 @@ class AkwamS : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
(epNum.isNotEmpty()) -> epNum.toFloat() (epNum.isNotEmpty()) -> epNum.toFloat()
else -> 1F else -> 1F
} }
episode.date_upload = System.currentTimeMillis()
return episode return episode
} }

View File

@ -5,7 +5,7 @@ ext {
extName = 'Anime4up' extName = 'Anime4up'
pkgNameSuffix = 'ar.anime4up' pkgNameSuffix = 'ar.anime4up'
extClass = '.Anime4Up' extClass = '.Anime4Up'
extVersionCode = 27 extVersionCode = 28
libVersion = '12' libVersion = '12'
} }

View File

@ -81,7 +81,6 @@ class Anime4Up : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
else -> 1F else -> 1F
} }
episode.name = element.select("div.episodes-card-container div.episodes-card div.ehover6 h3 a").text() episode.name = element.select("div.episodes-card-container div.episodes-card div.ehover6 h3 a").text()
episode.date_upload = System.currentTimeMillis()
return episode return episode
} }

View File

@ -5,7 +5,7 @@ ext {
extName = 'أنمي بالكوم' extName = 'أنمي بالكوم'
pkgNameSuffix = 'ar.animeblkom' pkgNameSuffix = 'ar.animeblkom'
extClass = '.AnimeBlkom' extClass = '.AnimeBlkom'
extVersionCode = 5 extVersionCode = 6
libVersion = '12' libVersion = '12'
} }

View File

@ -76,7 +76,6 @@ class AnimeBlkom : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
episode.setUrlWithoutDomain(document.location()) episode.setUrlWithoutDomain(document.location())
episode.episode_number = 1F episode.episode_number = 1F
episode.name = document.selectFirst("div.name.col-xs-12 span h1").text() episode.name = document.selectFirst("div.name.col-xs-12 span h1").text()
episode.date_upload = System.currentTimeMillis()
return listOf(episode) return listOf(episode)
} }
@ -92,7 +91,6 @@ class AnimeBlkom : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
} }
// episode.episode_number = element.select("span:nth-child(3)").text().replace(" - ", "").toFloat() // episode.episode_number = element.select("span:nth-child(3)").text().replace(" - ", "").toFloat()
episode.name = element.select("span:nth-child(3)").text() + " :" + element.select("span:nth-child(1)").text() episode.name = element.select("span:nth-child(3)").text() + " :" + element.select("span:nth-child(1)").text()
episode.date_upload = System.currentTimeMillis()
return episode return episode
} }

View File

@ -5,7 +5,7 @@ ext {
extName = 'asia2tv' extName = 'asia2tv'
pkgNameSuffix = 'ar.asia2tv' pkgNameSuffix = 'ar.asia2tv'
extClass = '.Asia2TV' extClass = '.Asia2TV'
extVersionCode = 3 extVersionCode = 4
libVersion = '12' libVersion = '12'
} }

View File

@ -69,7 +69,6 @@ class Asia2TV : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val episode = SEpisode.create() val episode = SEpisode.create()
episode.setUrlWithoutDomain(element.attr("href")) episode.setUrlWithoutDomain(element.attr("href"))
episode.name = element.attr("href").substringAfterLast("-").substringBeforeLast("/") + " : الحلقة" episode.name = element.attr("href").substringAfterLast("-").substringBeforeLast("/") + " : الحلقة"
episode.date_upload = System.currentTimeMillis()
return episode return episode
} }

View File

@ -5,7 +5,7 @@ ext {
extName = 'CARTOONS4U' extName = 'CARTOONS4U'
pkgNameSuffix = 'ar.cartons4u' pkgNameSuffix = 'ar.cartons4u'
extClass = '.Cartoons4U' extClass = '.Cartoons4U'
extVersionCode = 1 extVersionCode = 2
libVersion = '12' libVersion = '12'
} }

View File

@ -64,7 +64,6 @@ class Cartoons4U : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val episode = SEpisode.create() val episode = SEpisode.create()
episode.setUrlWithoutDomain(element.attr("href")) episode.setUrlWithoutDomain(element.attr("href"))
episode.name = element.ownerDocument().select("header.Top h1").text() episode.name = element.ownerDocument().select("header.Top h1").text()
episode.date_upload = System.currentTimeMillis()
return episode return episode
} }

View File

@ -5,7 +5,7 @@ ext {
extName = 'فاصل اعلاني' extName = 'فاصل اعلاني'
pkgNameSuffix = 'ar.faselhd' pkgNameSuffix = 'ar.faselhd'
extClass = '.FASELHD' extClass = '.FASELHD'
extVersionCode = 6 extVersionCode = 7
libVersion = '12' libVersion = '12'
} }

View File

@ -89,7 +89,6 @@ class FASELHD : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
episode.setUrlWithoutDomain(element.attr("abs:href")) episode.setUrlWithoutDomain(element.attr("abs:href"))
episode.name = element.ownerDocument().select("div.seasonDiv.active > div.title").text() + " : " + element.text() episode.name = element.ownerDocument().select("div.seasonDiv.active > div.title").text() + " : " + element.text()
episode.episode_number = element.text().replace("الحلقة ", "").toFloat() episode.episode_number = element.text().replace("الحلقة ", "").toFloat()
episode.date_upload = System.currentTimeMillis()
return episode return episode
} }

View File

@ -5,7 +5,7 @@ ext {
extName = 'MY CIMA' extName = 'MY CIMA'
pkgNameSuffix = 'ar.mycima' pkgNameSuffix = 'ar.mycima'
extClass = '.MyCima' extClass = '.MyCima'
extVersionCode = 13 extVersionCode = 14
libVersion = '12' libVersion = '12'
} }

View File

@ -90,7 +90,6 @@ class MyCima : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
else -> 1F else -> 1F
} }
episode.name = element.ownerDocument().select("div.List--Seasons--Episodes a.selected").text() + " : " + element.text() episode.name = element.ownerDocument().select("div.List--Seasons--Episodes a.selected").text() + " : " + element.text()
episode.date_upload = System.currentTimeMillis()
return episode return episode
} }

View File

@ -5,7 +5,7 @@ ext {
extName = 'WIT ANIME' extName = 'WIT ANIME'
pkgNameSuffix = 'ar.witanime' pkgNameSuffix = 'ar.witanime'
extClass = '.WitAnime' extClass = '.WitAnime'
extVersionCode = 15 extVersionCode = 16
libVersion = '12' libVersion = '12'
} }

View File

@ -66,7 +66,6 @@ class WitAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
episode.name = element.select("a").text() episode.name = element.select("a").text()
val episodeNumberString = element.select("a").text().removePrefix("الحلقة ").removePrefix("الخاصة ").removePrefix("الأونا ").removePrefix("الفلم ").removePrefix("الأوفا ") val episodeNumberString = element.select("a").text().removePrefix("الحلقة ").removePrefix("الخاصة ").removePrefix("الأونا ").removePrefix("الفلم ").removePrefix("الأوفا ")
episode.episode_number = episodeNumberString.toFloat() episode.episode_number = episodeNumberString.toFloat()
episode.date_upload = System.currentTimeMillis()
return episode return episode
} }

View File

@ -5,7 +5,7 @@ ext {
extName = 'XS Anime' extName = 'XS Anime'
pkgNameSuffix = 'ar.xsanime' pkgNameSuffix = 'ar.xsanime'
extClass = '.XsAnime' extClass = '.XsAnime'
extVersionCode = 7 extVersionCode = 8
libVersion = '12' libVersion = '12'
} }

View File

@ -67,7 +67,6 @@ class XsAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
(epNum.isNotEmpty()) -> epNum.toFloat() (epNum.isNotEmpty()) -> epNum.toFloat()
else -> 1F else -> 1F
} }
episode.date_upload = System.currentTimeMillis()
return episode return episode
} }

View File

@ -6,7 +6,7 @@ ext {
extName = 'Aniflix' extName = 'Aniflix'
pkgNameSuffix = 'de.aniflix' pkgNameSuffix = 'de.aniflix'
extClass = '.Aniflix' extClass = '.Aniflix'
extVersionCode = 8 extVersionCode = 9
libVersion = '12' libVersion = '12'
} }

View File

@ -179,7 +179,6 @@ class Aniflix : ConfigurableAnimeSource, AnimeHttpSource() {
setUrlWithoutDomain("$baseUrl/api/episode/show/$animeUrl/season/${season.number!!}/episode/${episode.number}") setUrlWithoutDomain("$baseUrl/api/episode/show/$animeUrl/season/${season.number!!}/episode/${episode.number}")
episode_number = episode.number!!.toFloat() episode_number = episode.number!!.toFloat()
name = "Staffel ${season.number}: Folge ${episode.number}" name = "Staffel ${season.number}: Folge ${episode.number}"
date_upload = System.currentTimeMillis()
} }
episodeList.add(newEpisode) episodeList.add(newEpisode)
} }

View File

@ -6,7 +6,7 @@ ext {
extName = 'Anime Shitai' extName = 'Anime Shitai'
pkgNameSuffix = 'de.animeshitai' pkgNameSuffix = 'de.animeshitai'
extClass = '.AnimeShitai' extClass = '.AnimeShitai'
extVersionCode = 1 extVersionCode = 2
libVersion = '12' libVersion = '12'
} }

View File

@ -203,7 +203,6 @@ class AnimeShitai : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val ep = element.child(0).text() val ep = element.child(0).text()
episode.episode_number = ep.toFloat() episode.episode_number = ep.toFloat()
episode.name = "Episode $ep" episode.name = "Episode $ep"
episode.date_upload = System.currentTimeMillis()
return episode return episode
} }

View File

@ -6,7 +6,7 @@ ext {
extName = 'FireAnime' extName = 'FireAnime'
pkgNameSuffix = 'de.fireanime' pkgNameSuffix = 'de.fireanime'
extClass = '.FireAnime' extClass = '.FireAnime'
extVersionCode = 2 extVersionCode = 3
libVersion = '12' libVersion = '12'
containsNsfw = true containsNsfw = true
} }

View File

@ -168,7 +168,6 @@ class FireAnime : ConfigurableAnimeSource, AnimeHttpSource() {
episode_number = ep.episode.toFloat() episode_number = ep.episode.toFloat()
name = if (ep.title.startsWith("Episode")) ep.title else "Episode ${i + 1}: ${ep.title}" name = if (ep.title.startsWith("Episode")) ep.title else "Episode ${i + 1}: ${ep.title}"
url = animeUrl + (-1..i).joinToString("") { " " } // Add some spaces so that all episodes are shown url = animeUrl + (-1..i).joinToString("") { " " } // Add some spaces so that all episodes are shown
date_upload = System.currentTimeMillis()
} }
}.reversed() }.reversed()
} }

View File

@ -5,7 +5,7 @@ ext {
extName = 'AnimeKisa' extName = 'AnimeKisa'
pkgNameSuffix = 'en.animekisa' pkgNameSuffix = 'en.animekisa'
extClass = '.AnimeKisa' extClass = '.AnimeKisa'
extVersionCode = 3 extVersionCode = 4
libVersion = '12' libVersion = '12'
} }

View File

@ -76,7 +76,6 @@ class AnimeKisa : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
(epNum.isNotEmpty()) -> epNum.toFloat() (epNum.isNotEmpty()) -> epNum.toFloat()
else -> 1F else -> 1F
} }
episode.date_upload = System.currentTimeMillis()
return episode return episode
} }

View File

@ -5,7 +5,7 @@ ext {
extName = 'Animixplay' extName = 'Animixplay'
pkgNameSuffix = 'en.animixplay' pkgNameSuffix = 'en.animixplay'
extClass = '.Animixplay' extClass = '.Animixplay'
extVersionCode = 10 extVersionCode = 11
libVersion = '12' libVersion = '12'
} }

View File

@ -166,7 +166,6 @@ class Animixplay : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
episode.setUrlWithoutDomain("$url/ep$number") episode.setUrlWithoutDomain("$url/ep$number")
episode.episode_number = number.toFloat() + 1F episode.episode_number = number.toFloat() + 1F
episode.name = "Episode ${number + 1}" episode.name = "Episode ${number + 1}"
episode.date_upload = System.currentTimeMillis()
return episode return episode
} }

View File

@ -5,7 +5,7 @@ ext {
extName = 'GenoAnime' extName = 'GenoAnime'
pkgNameSuffix = 'en.genoanime' pkgNameSuffix = 'en.genoanime'
extClass = '.GenoAnime' extClass = '.GenoAnime'
extVersionCode = 11 extVersionCode = 12
libVersion = '12' libVersion = '12'
} }

View File

@ -97,7 +97,6 @@ class GenoAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
episode.setUrlWithoutDomain(element.attr("href")) episode.setUrlWithoutDomain(element.attr("href"))
episode.name = element.select("a").text() episode.name = element.select("a").text()
episode.episode_number = element.text().removePrefix("Ep ").toFloat() episode.episode_number = element.text().removePrefix("Ep ").toFloat()
episode.date_upload = System.currentTimeMillis()
return episode return episode
} }

View File

@ -5,7 +5,7 @@ ext {
extName = 'Gogoanime' extName = 'Gogoanime'
pkgNameSuffix = 'en.gogoanime' pkgNameSuffix = 'en.gogoanime'
extClass = '.GogoAnime' extClass = '.GogoAnime'
extVersionCode = 43 extVersionCode = 44
libVersion = '12' libVersion = '12'
} }

View File

@ -85,7 +85,6 @@ class GogoAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val ep = element.selectFirst("div.name").ownText().substringAfter(" ") val ep = element.selectFirst("div.name").ownText().substringAfter(" ")
episode.episode_number = ep.toFloat() episode.episode_number = ep.toFloat()
episode.name = "Episode $ep" episode.name = "Episode $ep"
episode.date_upload = System.currentTimeMillis()
return episode return episode
} }

View File

@ -5,7 +5,7 @@ ext {
extName = '9anime' extName = '9anime'
pkgNameSuffix = 'en.nineanime' pkgNameSuffix = 'en.nineanime'
extClass = '.NineAnime' extClass = '.NineAnime'
extVersionCode = 6 extVersionCode = 7
libVersion = '12' libVersion = '12'
} }

View File

@ -103,7 +103,6 @@ class NineAnime : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
episode.url = "/ajax/anime/servers?id=$animeId&vrf=$vrf&episode=$epNum" episode.url = "/ajax/anime/servers?id=$animeId&vrf=$vrf&episode=$epNum"
episode.episode_number = epNum.toFloat() episode.episode_number = epNum.toFloat()
episode.name = "Episode $epNum" episode.name = "Episode $epNum"
episode.date_upload = System.currentTimeMillis()
return episode return episode
} }

View File

@ -5,7 +5,7 @@ ext {
extName = 'Vidembed' extName = 'Vidembed'
pkgNameSuffix = 'en.vidembed' pkgNameSuffix = 'en.vidembed'
extClass = '.Vidembed' extClass = '.Vidembed'
extVersionCode = 11 extVersionCode = 12
libVersion = '12' libVersion = '12'
} }

View File

@ -75,7 +75,6 @@ class Vidembed : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
} }
episode.episode_number = epNo episode.episode_number = epNo
episode.name = if (ep == epName) epName else "Episode $ep" episode.name = if (ep == epName) epName else "Episode $ep"
episode.date_upload = System.currentTimeMillis()
return episode return episode
} }

View File

@ -5,7 +5,7 @@ ext {
extName = 'Wcofun' extName = 'Wcofun'
pkgNameSuffix = 'en.wcofun' pkgNameSuffix = 'en.wcofun'
extClass = '.Wcofun' extClass = '.Wcofun'
extVersionCode = 3 extVersionCode = 4
libVersion = '12' libVersion = '12'
} }

View File

@ -90,7 +90,6 @@ class Wcofun : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
episodeName = if (season == epName) episodeName else "Season $season" episodeName = if (season == epName) episodeName else "Season $season"
episode.episode_number = epNo + (seasonNo * 100) episode.episode_number = epNo + (seasonNo * 100)
episode.name = episodeName episode.name = episodeName
episode.date_upload = System.currentTimeMillis()
return episode return episode
} }

View File

@ -5,7 +5,7 @@ ext {
extName = 'WCOStream' extName = 'WCOStream'
pkgNameSuffix = 'en.wcostream' pkgNameSuffix = 'en.wcostream'
extClass = '.WCOStream' extClass = '.WCOStream'
extVersionCode = 1 extVersionCode = 2
libVersion = '12' libVersion = '12'
} }

View File

@ -76,7 +76,6 @@ class WCOStream : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
(epNum.isNotEmpty()) -> epNum.toFloat() (epNum.isNotEmpty()) -> epNum.toFloat()
else -> 1F else -> 1F
} }
episode.date_upload = System.currentTimeMillis()
return episode return episode
} }

View File

@ -5,7 +5,7 @@ ext {
extName = 'zoro.to (experimental)' extName = 'zoro.to (experimental)'
pkgNameSuffix = 'en.zoro' pkgNameSuffix = 'en.zoro'
extClass = '.Zoro' extClass = '.Zoro'
extVersionCode = 3 extVersionCode = 4
libVersion = '12' libVersion = '12'
} }

View File

@ -72,7 +72,6 @@ class Zoro : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
episode.episode_number = a.attr("data-number").toFloat() episode.episode_number = a.attr("data-number").toFloat()
episode.name = "Episode ${a.attr("data-number")}: ${a.attr("title")}" episode.name = "Episode ${a.attr("data-number")}: ${a.attr("title")}"
episode.url = a.attr("href") episode.url = a.attr("href")
episode.date_upload = System.currentTimeMillis()
episodeList.add(episode) episodeList.add(episode)
} }
return episodeList.reversed() return episodeList.reversed()

View File

@ -5,7 +5,7 @@ ext {
extName = 'Animefenix' extName = 'Animefenix'
pkgNameSuffix = 'es.animefenix' pkgNameSuffix = 'es.animefenix'
extClass = '.Animefenix' extClass = '.Animefenix'
extVersionCode = 1 extVersionCode = 2
libVersion = '12' libVersion = '12'
} }

View File

@ -68,7 +68,6 @@ class Animefenix : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val episode = SEpisode.create().apply { val episode = SEpisode.create().apply {
episode_number = epNum.toFloat() episode_number = epNum.toFloat()
name = "Episodio $epNum" name = "Episodio $epNum"
date_upload = System.currentTimeMillis()
} }
episode.setUrlWithoutDomain(it.select("a").attr("href")) episode.setUrlWithoutDomain(it.select("a").attr("href"))
episodes.add(episode) episodes.add(episode)

View File

@ -5,7 +5,7 @@ ext {
extName = 'AnimeFLV' extName = 'AnimeFLV'
pkgNameSuffix = 'es.animeflv' pkgNameSuffix = 'es.animeflv'
extClass = '.AnimeFlv' extClass = '.AnimeFlv'
extVersionCode = 19 extVersionCode = 20
libVersion = '12' libVersion = '12'
} }

View File

@ -84,7 +84,6 @@ class AnimeFlv : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
else -> 1F else -> 1F
} }
episode.name = element.select("p").text() episode.name = element.select("p").text()
episode.date_upload = System.currentTimeMillis()
return episode return episode
} }

View File

@ -5,7 +5,7 @@ ext {
extName = 'Hentaila' extName = 'Hentaila'
pkgNameSuffix = 'es.hentaila' pkgNameSuffix = 'es.hentaila'
extClass = '.Hentaila' extClass = '.Hentaila'
extVersionCode = 2 extVersionCode = 3
libVersion = '12' libVersion = '12'
containsNsfw = true containsNsfw = true
} }

View File

@ -77,7 +77,6 @@ class Hentaila : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
episode_number = epNum.toFloat() episode_number = epNum.toFloat()
name = "Episodio $epNum" name = "Episodio $epNum"
url = "/ver/$animeId-$epNum" url = "/ver/$animeId-$epNum"
date_upload = System.currentTimeMillis()
} }
episodes.add(episode) episodes.add(episode)
} }

View File

@ -5,7 +5,7 @@ ext {
extName = 'Jkanime' extName = 'Jkanime'
pkgNameSuffix = 'es.jkanime' pkgNameSuffix = 'es.jkanime'
extClass = '.Jkanime' extClass = '.Jkanime'
extVersionCode = 1 extVersionCode = 2
libVersion = '12' libVersion = '12'
} }

View File

@ -84,7 +84,6 @@ class Jkanime : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val episode = SEpisode.create().apply { val episode = SEpisode.create().apply {
episode_number = (j + checkLast).toFloat() episode_number = (j + checkLast).toFloat()
name = "Episodio ${j + checkLast}" name = "Episodio ${j + checkLast}"
date_upload = System.currentTimeMillis()
} }
episode.setUrlWithoutDomain("$episodeLink/${j + checkLast}") episode.setUrlWithoutDomain("$episodeLink/${j + checkLast}")
episodes.add(episode) episodes.add(episode)
@ -98,7 +97,6 @@ class Jkanime : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val episode = SEpisode.create().apply { val episode = SEpisode.create().apply {
episode_number = number.toFloat() episode_number = number.toFloat()
name = "Episodio $number" name = "Episodio $number"
date_upload = System.currentTimeMillis()
} }
episode.setUrlWithoutDomain("$episodeLink/$number") episode.setUrlWithoutDomain("$episodeLink/$number")
episodes.add(episode) episodes.add(episode)
@ -113,7 +111,6 @@ class Jkanime : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val episode = SEpisode.create().apply { val episode = SEpisode.create().apply {
episode_number = number.toFloat() episode_number = number.toFloat()
name = "Episodio $number" name = "Episodio $number"
date_upload = System.currentTimeMillis()
} }
episode.setUrlWithoutDomain("$episodeLink/$number") episode.setUrlWithoutDomain("$episodeLink/$number")
episodes.add(episode) episodes.add(episode)

View File

@ -5,7 +5,7 @@ ext {
extName = 'Jkhentai' extName = 'Jkhentai'
pkgNameSuffix = 'es.jkhentai' pkgNameSuffix = 'es.jkhentai'
extClass = '.Jkhentai' extClass = '.Jkhentai'
extVersionCode = 2 extVersionCode = 3
libVersion = '12' libVersion = '12'
} }

View File

@ -67,7 +67,6 @@ class Jkhentai : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
episode_number = epNum.toFloat() episode_number = epNum.toFloat()
name = "Episodio $epNum" name = "Episodio $epNum"
url = "/ver/$animeId-$epNum" url = "/ver/$animeId-$epNum"
date_upload = System.currentTimeMillis()
} }
episodes.add(episode) episodes.add(episode)
} }

View File

@ -5,7 +5,7 @@ ext {
extName = 'MonosChinos' extName = 'MonosChinos'
pkgNameSuffix = 'es.monoschinos' pkgNameSuffix = 'es.monoschinos'
extClass = '.MonosChinos' extClass = '.MonosChinos'
extVersionCode = 4 extVersionCode = 5
libVersion = '12' libVersion = '12'
} }

View File

@ -70,7 +70,6 @@ class MonosChinos : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
episode_number = epNum.toFloat() episode_number = epNum.toFloat()
name = "Episodio $epNum" name = "Episodio $epNum"
url = "/ver/$animeId-episodio-$epNum" url = "/ver/$animeId-episodio-$epNum"
date_upload = System.currentTimeMillis()
} }
episodes.add(episode) episodes.add(episode)
} }

View File

@ -5,7 +5,7 @@ ext {
extName = 'Vostfree' extName = 'Vostfree'
pkgNameSuffix = 'fr.vostfree' pkgNameSuffix = 'fr.vostfree'
extClass = '.Vostfree' extClass = '.Vostfree'
extVersionCode = 4 extVersionCode = 5
libVersion = '12' libVersion = '12'
} }

View File

@ -77,7 +77,6 @@ class Vostfree : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val episode = SEpisode.create().apply { val episode = SEpisode.create().apply {
episode_number = "1".toFloat() episode_number = "1".toFloat()
name = "Film" name = "Film"
date_upload = System.currentTimeMillis()
} }
episode.url = ("?episode:${0}/${response.request.url}") episode.url = ("?episode:${0}/${response.request.url}")
episodes.add(episode) episodes.add(episode)
@ -85,7 +84,6 @@ class Vostfree : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val episode = SEpisode.create().apply { val episode = SEpisode.create().apply {
episode_number = epNum.toFloat() episode_number = epNum.toFloat()
name = "Épisode $epNum" name = "Épisode $epNum"
date_upload = System.currentTimeMillis()
} }
episode.setUrlWithoutDomain("?episode:${epNum.toInt() - 1}/${response.request.url}") episode.setUrlWithoutDomain("?episode:${epNum.toInt() - 1}/${response.request.url}")
episodes.add(episode) episodes.add(episode)

View File

@ -5,7 +5,7 @@ ext {
extName = 'AnimeWorld (experimental)' extName = 'AnimeWorld (experimental)'
pkgNameSuffix = 'hi.animeWorld' pkgNameSuffix = 'hi.animeWorld'
extClass = '.AnimeWorld' extClass = '.AnimeWorld'
extVersionCode = 6 extVersionCode = 7
libVersion = '12' libVersion = '12'
} }

View File

@ -106,7 +106,6 @@ class AnimeWorld : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
val epNo = it.select("span.num-epi").text() val epNo = it.select("span.num-epi").text()
episode.name = "$epNo : ${it.select("h2.entry-title").text()}" episode.name = "$epNo : ${it.select("h2.entry-title").text()}"
episode.episode_number = epNo.substringAfter("x").toFloat() episode.episode_number = epNo.substringAfter("x").toFloat()
episode.date_upload = System.currentTimeMillis()
episodeList.add(episode) episodeList.add(episode)
} }
return episodeList return episodeList
@ -124,7 +123,6 @@ class AnimeWorld : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
} }
episode.episode_number = epNo episode.episode_number = epNo
episode.name = if (ep == epName) epName else "Episode $ep" episode.name = if (ep == epName) epName else "Episode $ep"
episode.date_upload = System.currentTimeMillis()
return episode return episode
} }

View File

@ -5,7 +5,7 @@ ext {
extName = 'Kuramanime' extName = 'Kuramanime'
pkgNameSuffix = 'id.kuramanime' pkgNameSuffix = 'id.kuramanime'
extClass = '.Kuramanime' extClass = '.Kuramanime'
extVersionCode = 1 extVersionCode = 2
libVersion = '12' libVersion = '12'
} }

View File

@ -65,7 +65,6 @@ class Kuramanime : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
else -> 1F else -> 1F
} }
episode.name = element.text() episode.name = element.text()
episode.date_upload = System.currentTimeMillis()
return episode return episode
} }

View File

@ -5,7 +5,7 @@ ext {
extName = 'Kuronime' extName = 'Kuronime'
pkgNameSuffix = 'id.kuronime' pkgNameSuffix = 'id.kuronime'
extClass = '.Kuronime' extClass = '.Kuronime'
extVersionCode = 1 extVersionCode = 2
libVersion = '12' libVersion = '12'
} }

View File

@ -61,7 +61,6 @@ class Kuronime : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
else -> 1F else -> 1F
} }
episode.name = element.select("span.lchx").text() episode.name = element.select("span.lchx").text()
episode.date_upload = System.currentTimeMillis()
return episode return episode
} }

View File

@ -5,7 +5,7 @@ ext {
extName = 'MiniOppai' extName = 'MiniOppai'
pkgNameSuffix = 'id.minioppai' pkgNameSuffix = 'id.minioppai'
extClass = '.MiniOppai' extClass = '.MiniOppai'
extVersionCode = 1 extVersionCode = 2
libVersion = '12' libVersion = '12'
containsNsfw = true containsNsfw = true
} }

View File

@ -62,7 +62,6 @@ class MiniOppai : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
else -> 1F else -> 1F
} }
episode.name = element.select("span.lchx").text() episode.name = element.select("span.lchx").text()
episode.date_upload = System.currentTimeMillis()
return episode return episode
} }

View File

@ -5,7 +5,7 @@ ext {
extName = 'Anime Saturn' extName = 'Anime Saturn'
pkgNameSuffix = 'it.animesaturn' pkgNameSuffix = 'it.animesaturn'
extClass = '.AnimeSaturn' extClass = '.AnimeSaturn'
extVersionCode = 3 extVersionCode = 4
libVersion = '12' libVersion = '12'
} }

View File

@ -73,7 +73,6 @@ class AnimeSaturn : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
episode.episode_number = epNumber.toFloat() episode.episode_number = epNumber.toFloat()
} }
episode.name = epText episode.name = epText
episode.date_upload = System.currentTimeMillis()
return episode return episode
} }

View File

@ -5,7 +5,7 @@ ext {
extName = 'Hentai Saturn' extName = 'Hentai Saturn'
pkgNameSuffix = 'it.hentaisaturn' pkgNameSuffix = 'it.hentaisaturn'
extClass = '.HentaiSaturn' extClass = '.HentaiSaturn'
extVersionCode = 2 extVersionCode = 3
libVersion = '12' libVersion = '12'
containsNsfw = true containsNsfw = true
} }

View File

@ -73,7 +73,6 @@ class HentaiSaturn : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
episode.episode_number = epNumber.toFloat() episode.episode_number = epNumber.toFloat()
} }
episode.name = epText episode.name = epText
episode.date_upload = System.currentTimeMillis()
return episode return episode
} }

View File

@ -6,7 +6,7 @@ ext {
extName = 'Animevost' extName = 'Animevost'
pkgNameSuffix = 'ru.animevost' pkgNameSuffix = 'ru.animevost'
extClass = '.Animevost' extClass = '.Animevost'
extVersionCode = 4 extVersionCode = 5
libVersion = '12' libVersion = '12'
} }

View File

@ -187,7 +187,6 @@ class AnimevostSource(override val name: String, override val baseUrl: String, p
val id = entry.value.toString().replace("\"", "") val id = entry.value.toString().replace("\"", "")
name = entry.key name = entry.key
episode_number = index.toFloat() episode_number = index.toFloat()
date_upload = System.currentTimeMillis()
url = "/frame5.php?play=$id&old=1" url = "/frame5.php?play=$id&old=1"
} }
) )

View File

@ -5,7 +5,7 @@ ext {
extName = 'Anime Srbija' extName = 'Anime Srbija'
pkgNameSuffix = 'sr.animesrbija' pkgNameSuffix = 'sr.animesrbija'
extClass = '.AnimeSrbija' extClass = '.AnimeSrbija'
extVersionCode = 1 extVersionCode = 2
isNsfw = false isNsfw = false
libVersion = '12' libVersion = '12'
} }

View File

@ -106,7 +106,6 @@ class AnimeSrbija : ParsedAnimeHttpSource() {
episode.name = element.text() episode.name = element.text()
val episodeNumberString = element.text().removePrefix("Episode ") val episodeNumberString = element.text().removePrefix("Episode ")
episode.episode_number = if (episodeNumberString.toFloatOrNull() != null) episodeNumberString.toFloat() else 0.0f episode.episode_number = if (episodeNumberString.toFloatOrNull() != null) episodeNumberString.toFloat() else 0.0f
episode.date_upload = System.currentTimeMillis()
return episode return episode
} }