Skip to content

Commit 12a67e4

Browse files
committed
Refactoring
1 parent acf4838 commit 12a67e4

17 files changed

+57
-34
lines changed

app/src/main/java/com/gapps/videonoapi/ui/main/MainActivity.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import com.gapps.videonoapi.utils.recycler_view.MarginItemDecoration
1515
import com.gapps.videonoapi.utils.scroll.ScrollListener
1616
import com.gapps.videonoapi.utils.extensions.alphaSmooth
1717
import com.gapps.videonoapi.utils.extensions.convertDpToPx
18+
import com.gapps.videonoapi.video_utils.youtube.MyYoutubeVideoInfoModel
1819
import kotlinx.android.synthetic.main.activity_main.*
1920
import okhttp3.OkHttpClient
2021
import okhttp3.logging.HttpLoggingInterceptor
@@ -64,9 +65,9 @@ class MainActivity : BaseActivity() {
6465
videoService = VideoService.build {
6566
with(this@MainActivity)
6667
httpClient(okHttpClient)
67-
enableCache(true)
68+
enableCache(false)
6869
enableLog(true)
69-
withCustomVideoInfoModels(UltimediaVideoInfoModel())
70+
withCustomVideoInfoModels(UltimediaVideoInfoModel(), MyYoutubeVideoInfoModel())
7071
}
7172
}
7273

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.gapps.videonoapi.video_utils.youtube
2+
3+
import com.gapps.library.api.FORMAT
4+
import com.gapps.library.api.FORMAT_JSON
5+
import com.gapps.library.api.URL
6+
import com.gapps.library.api.models.api.YoutubeVideoInfoModel
7+
import com.gapps.library.api.models.video.youtube.YoutubeResponse
8+
9+
class MyYoutubeVideoInfoModel: YoutubeVideoInfoModel() {
10+
override val baseUrl: String
11+
get() = "https://www.youtube.com"
12+
//https://regex101.com/r/nJzgG0/1
13+
override val pattern: String
14+
get() = "(?:http[s]?:\\/\\/)(?:www.)?(?:m.)?youtu(?:be|.be)?(?:\\.com)?(?:(?:\\w*.?:\\/\\/)?\\w*.?\\w*-?.?\\w*\\/(?:embed|e|v|watch|.*\\/)?\\??(?:feature=\\w*\\.?\\w*)?&?(?:v=)?\\/?)([\\w\\d_-]{11})[^,;\\s]*"
15+
override val idPattern: String
16+
get() = pattern
17+
override val type: Class<YoutubeResponse>
18+
get() = YoutubeResponse::class.java
19+
override val hostingName: String
20+
get() = "YouTube"
21+
22+
override fun getInfoUrl(incomingUrl: String?): String? {
23+
val id = parseVideoId(incomingUrl)
24+
25+
return "$baseUrl/oembed?$FORMAT=$FORMAT_JSON&$URL=https://www.youtube.com/watch?v=$id"
26+
}
27+
28+
override fun getPlayLink(videoId: String): String {
29+
return "https://www.youtube.com/embed/${videoId}?autoplay=0&vq=small&hl=uk"
30+
}
31+
}

library/src/main/java/com/gapps/library/api/VideoService.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,11 @@ class VideoService(
4343
builder.isLogEnabled,
4444
builder.customModels
4545
) {
46+
47+
customModels.forEach { custom ->
48+
videoInfoModelsList.removeAll { it.hostingName == custom.hostingName }
49+
}
50+
4651
videoInfoModelsList.addAll(customModels)
4752
}
4853

library/src/main/java/com/gapps/library/api/models/api/CoubVideoInfoModel.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ import com.gapps.library.api.URL
55
import com.gapps.library.api.models.api.base.VideoInfoModel
66
import com.gapps.library.api.models.video.coub.CoubResponse
77

8-
class CoubVideoInfoModel : VideoInfoModel<CoubResponse>() {
8+
open class CoubVideoInfoModel : VideoInfoModel<CoubResponse>() {
99
override val baseUrl: String
10-
get() = "http://coub.com/"
10+
get() = "http://coub.com"
1111

1212
//https://regex101.com/r/ZoQVLa/1
1313
override val pattern: String

library/src/main/java/com/gapps/library/api/models/api/DailymotionVideoInfoModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import com.gapps.library.api.URL
44
import com.gapps.library.api.models.api.base.VideoInfoModel
55
import com.gapps.library.api.models.video.dailymotion.DailymotionResponse
66

7-
class DailymotionVideoInfoModel : VideoInfoModel<DailymotionResponse>() {
7+
open class DailymotionVideoInfoModel : VideoInfoModel<DailymotionResponse>() {
88
override val baseUrl: String
99
get() = "https://www.dailymotion.com"
1010

library/src/main/java/com/gapps/library/api/models/api/FacebookVideoInfoModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import com.gapps.library.api.URL
55
import com.gapps.library.api.models.api.base.VideoInfoModel
66
import com.gapps.library.api.models.video.facebook.FacebookResponse
77

8-
class FacebookVideoInfoModel : VideoInfoModel<FacebookResponse>() {
8+
open class FacebookVideoInfoModel : VideoInfoModel<FacebookResponse>() {
99
override val baseUrl: String
1010
get() = "https://apps.facebook.com"
1111
//Pattern: https://regex101.com/r/98Nfkr/5

library/src/main/java/com/gapps/library/api/models/api/HuluVideoInfoModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import com.gapps.library.api.URL
66
import com.gapps.library.api.models.api.base.VideoInfoModel
77
import com.gapps.library.api.models.video.hulu.HuluResponse
88

9-
class HuluVideoInfoModel : VideoInfoModel<HuluResponse>() {
9+
open class HuluVideoInfoModel : VideoInfoModel<HuluResponse>() {
1010
override val baseUrl: String
1111
get() = "https://www.hulu.com"
1212
//https://regex101.com/r/LORZgZ/2

library/src/main/java/com/gapps/library/api/models/api/RutubeVideoInfoModel.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import com.gapps.library.api.URL
66
import com.gapps.library.api.models.api.base.VideoInfoModel
77
import com.gapps.library.api.models.video.rutube.RutubeResponse
88

9-
class RutubeVideoInfoModel : VideoInfoModel<RutubeResponse>() {
9+
open class RutubeVideoInfoModel : VideoInfoModel<RutubeResponse>() {
1010
override val baseUrl: String
11-
get() = "http://rutube.ru/api"
11+
get() = "http://rutube.ru"
1212
override val pattern: String
1313
get() = "(?:http[s]?://)(?:w{3})?(?:player\\.)?rutube\\.ru/video/(?:embed/)?([A-Za-z0-9]+)[^,\\s]*"
1414
override val idPattern: String
@@ -22,9 +22,9 @@ class RutubeVideoInfoModel : VideoInfoModel<RutubeResponse>() {
2222
val id = parseVideoId(incomingUrl) ?: return null
2323

2424
return if (id.length < 32) {
25-
"$baseUrl/oembed?$FORMAT=$FORMAT_JSON&$URL=$id"
25+
"$baseUrl/api/oembed?$FORMAT=$FORMAT_JSON&$URL=$id"
2626
} else {
27-
"$baseUrl/video/$id/"
27+
"$baseUrl/api/video/$id/"
2828
}
2929
}
3030

library/src/main/java/com/gapps/library/api/models/api/TedTalksVideoInfoModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import com.gapps.library.api.URL
55
import com.gapps.library.api.models.api.base.VideoInfoModel
66
import com.gapps.library.api.models.video.ted.TedTalksResponse
77

8-
class TedTalksVideoInfoModel : VideoInfoModel<TedTalksResponse>() {
8+
open class TedTalksVideoInfoModel : VideoInfoModel<TedTalksResponse>() {
99
override val baseUrl: String
1010
get() = "https://www.ted.com"
1111
override val pattern: String

library/src/main/java/com/gapps/library/api/models/api/UstreamVideoInfoModel.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ import com.gapps.library.api.models.api.base.VideoInfoModel
55
import com.gapps.library.api.models.video.ustream.UstreamResponse
66
import com.gapps.library.utils.getGroupValue
77

8-
class UstreamVideoInfoModel : VideoInfoModel<UstreamResponse>() {
8+
open class UstreamVideoInfoModel : VideoInfoModel<UstreamResponse>() {
99
override val baseUrl: String
10-
get() = "https://video.ibm.com/"
10+
get() = "https://video.ibm.com"
1111
//https://regex101.com/r/E0PMAV/2
1212
override val pattern: String
1313
get() = "(?:http[s]?:\\/\\/)?(?:www\\.)?ustream.(?:com|tv)\\/(?:recorded|embed|channel)\\/?(?:([0-9]+)|(\\S+))[^,;\\s]*"

0 commit comments

Comments
 (0)