├── NETWORK.http ├── app ├── .gitignore ├── src │ ├── main │ │ ├── res │ │ │ ├── values │ │ │ │ ├── strings.xml │ │ │ │ ├── colors.xml │ │ │ │ └── themes.xml │ │ │ ├── mipmap-hdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-mdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xhdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxxhdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ ├── ic_launcher.xml │ │ │ │ └── ic_launcher_round.xml │ │ │ ├── xml │ │ │ │ ├── backup_rules.xml │ │ │ │ └── data_extraction_rules.xml │ │ │ ├── layout │ │ │ │ └── activity_main.xml │ │ │ ├── values-night │ │ │ │ └── themes.xml │ │ │ └── drawable-v24 │ │ │ │ └── ic_launcher_foreground.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── azamovhudstc │ │ │ │ └── scarpingtutorial │ │ │ │ ├── itv │ │ │ │ ├── Files.kt │ │ │ │ ├── PaymentParams.kt │ │ │ │ ├── PaymentParamsX.kt │ │ │ │ ├── FilesX.kt │ │ │ │ ├── Params.kt │ │ │ │ ├── Meta.kt │ │ │ │ ├── ParamsX.kt │ │ │ │ ├── TvResponse.kt │ │ │ │ ├── Data.kt │ │ │ │ ├── ChannelResponse.kt │ │ │ │ ├── DataX.kt │ │ │ │ └── Main.kt │ │ │ │ ├── anime_pahe │ │ │ │ ├── KiwikModel.kt │ │ │ │ ├── KiwikModelItem.kt │ │ │ │ └── AnimePaheExtractor.kt │ │ │ │ ├── anibla │ │ │ │ ├── Name.kt │ │ │ │ ├── detail │ │ │ │ │ ├── Name.kt │ │ │ │ │ ├── Description.kt │ │ │ │ │ ├── Screens.kt │ │ │ │ │ ├── DetailData.kt │ │ │ │ │ ├── Janr.kt │ │ │ │ │ ├── Tarjimon.kt │ │ │ │ │ ├── Translator.kt │ │ │ │ │ ├── Category.kt │ │ │ │ │ ├── Seria.kt │ │ │ │ │ └── Data.kt │ │ │ │ ├── AmediaSearchData.kt │ │ │ │ ├── Data.kt │ │ │ │ ├── Category.kt │ │ │ │ └── Main.kt │ │ │ │ ├── aniworld │ │ │ │ ├── EpisodeData.kt │ │ │ │ ├── AniworldSearchData.kt │ │ │ │ ├── EpisodeFullData.kt │ │ │ │ ├── AniworldSearchDataItem.kt │ │ │ │ └── Main.kt │ │ │ │ ├── channels_ontv │ │ │ │ ├── Origin.kt │ │ │ │ ├── Icon.kt │ │ │ │ ├── Low.kt │ │ │ │ ├── Normal.kt │ │ │ │ ├── Small.kt │ │ │ │ ├── Link.kt │ │ │ │ ├── Thumbnails.kt │ │ │ │ ├── File.kt │ │ │ │ ├── ChannelList.kt │ │ │ │ ├── Data.kt │ │ │ │ └── Main.kt │ │ │ │ ├── uzmovi │ │ │ │ ├── movie │ │ │ │ │ └── ParsedMovie.kt │ │ │ │ ├── JsHunter.kt │ │ │ │ └── CustomXMLHttpRequest.kt │ │ │ │ ├── theflixer │ │ │ │ ├── RatingInfo.kt │ │ │ │ ├── Episode.kt │ │ │ │ ├── EpisodeData.kt │ │ │ │ ├── Film.kt │ │ │ │ ├── TVShow.kt │ │ │ │ └── Functions.kt │ │ │ │ ├── tv_online │ │ │ │ ├── parsed │ │ │ │ │ └── Movie.kt │ │ │ │ └── Main.kt │ │ │ │ ├── asilmedia │ │ │ │ ├── model │ │ │ │ │ ├── MainData.kt │ │ │ │ │ ├── MovieInfo.kt │ │ │ │ │ └── FullMovieData.kt │ │ │ │ └── Main.kt │ │ │ │ ├── aniwave │ │ │ │ ├── SimpleAnime.kt │ │ │ │ ├── AnimeDetails.kt │ │ │ │ ├── AnimePlayingDetails.kt │ │ │ │ └── Main.kt │ │ │ │ ├── playimdb │ │ │ │ ├── Network.kt │ │ │ │ ├── Episode.kt │ │ │ │ ├── Crew.kt │ │ │ │ ├── GuestStar.kt │ │ │ │ ├── FreeDomEpisode.kt │ │ │ │ ├── WebViewResolver.kt │ │ │ │ ├── getDynamicM3U8.kt │ │ │ │ └── CorrectVersion.kt │ │ │ │ ├── vidrock │ │ │ │ ├── Main.kt │ │ │ │ └── VidRockSource.kt │ │ │ │ ├── AnimeParseddata.kt │ │ │ │ ├── shared │ │ │ │ ├── gsonConverters.kt │ │ │ │ └── SharedPreference.kt │ │ │ │ ├── model │ │ │ │ ├── Data.kt │ │ │ │ └── EpisodeData.kt │ │ │ │ ├── ParsedData.kt │ │ │ │ ├── utils │ │ │ │ ├── removeEmTagsWithRegex.kt │ │ │ │ ├── parser.kt │ │ │ │ ├── banner.kt │ │ │ │ ├── SharedPreference.kt │ │ │ │ ├── displayLoadingAnimation.kt │ │ │ │ └── Utils.kt │ │ │ │ ├── click │ │ │ │ └── Topshiriq1.kt │ │ │ │ ├── vidsrc │ │ │ │ ├── Vidsrcccservers.kt │ │ │ │ └── Main.kt │ │ │ │ ├── hianime │ │ │ │ ├── main.kt │ │ │ │ ├── ServerResponse.kt │ │ │ │ ├── MegacloudExtractor.kt │ │ │ │ ├── HiAnime.kt │ │ │ │ └── getUrl.kt │ │ │ │ ├── kitsue_snapshot │ │ │ │ ├── kitsuGetEpisodes.kt │ │ │ │ ├── KitsuEpisode.kt │ │ │ │ └── KitsuApi.kt │ │ │ │ ├── med_home │ │ │ │ └── MedHome.kt │ │ │ │ ├── findingJson │ │ │ │ └── main.kt │ │ │ │ ├── idub │ │ │ │ ├── VideoInfo.kt │ │ │ │ ├── TVShow.kt │ │ │ │ └── Main.kt │ │ │ │ ├── cloudstream │ │ │ │ └── main.kt │ │ │ │ ├── dos │ │ │ │ ├── dos4.kt │ │ │ │ ├── ddos10.kt │ │ │ │ ├── ddos11.kt │ │ │ │ ├── ddos12.kt │ │ │ │ ├── ddos13.kt │ │ │ │ ├── ddos14.kt │ │ │ │ ├── ddos15.kt │ │ │ │ ├── ddos16.kt │ │ │ │ ├── ddos18.kt │ │ │ │ ├── ddos5.kt │ │ │ │ ├── ddos6.kt │ │ │ │ ├── ddos7.kt │ │ │ │ ├── ddos8.kt │ │ │ │ ├── ddos9.kt │ │ │ │ ├── ddos17.kt │ │ │ │ ├── ddos19.kt │ │ │ │ └── ddos20.kt │ │ │ │ ├── ktor_http │ │ │ │ └── Main.kt │ │ │ │ ├── fck.kt │ │ │ │ ├── animekai │ │ │ │ ├── Main.kt │ │ │ │ └── NetworkUtils.kt │ │ │ │ ├── runOnMainThreadNative.kt │ │ │ │ ├── socket │ │ │ │ └── Main.kt │ │ │ │ ├── themoviedb │ │ │ │ └── TheMovieDB.kt │ │ │ │ ├── MainActivity.kt │ │ │ │ └── moviefone │ │ │ │ └── MovieFone.kt │ │ └── AndroidManifest.xml │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── azamovhudstc │ │ │ └── scarpingtutorial │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── com │ │ └── azamovhudstc │ │ └── scarpingtutorial │ │ └── ExampleInstrumentedTest.kt ├── proguard-rules.pro └── build.gradle ├── .idea ├── .name ├── .gitignore ├── codeStyles │ ├── codeStyleConfig.xml │ └── Project.xml ├── compiler.xml ├── kotlinc.xml ├── vcs.xml ├── deploymentTargetDropDown.xml ├── migrations.xml ├── deploymentTargetSelector.xml ├── gradle.xml ├── misc.xml └── appInsightsSettings.xml ├── tonconsole ├── .gitignore ├── consumer-rules.pro ├── src │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── azamovhudstc │ │ │ │ └── tonconsole │ │ │ │ └── Main.kt │ │ └── AndroidManifest.xml │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── azamovhudstc │ │ │ └── tonconsole │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── com │ │ └── azamovhudstc │ │ └── tonconsole │ │ └── ExampleInstrumentedTest.kt ├── proguard-rules.pro └── build.gradle ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── cacheDir └── http_cache │ ├── 5e4087c3189675fda2f4a1d7f58e56dd.1 │ ├── 9cb50cb1271552bead409a9b12e28ccc.1 │ ├── eb3f92a87779a0e3bb56097846dd3a13.1 │ ├── journal │ ├── 5e4087c3189675fda2f4a1d7f58e56dd.0 │ └── 2b1224a03a7535f0c5970fad62e68a04.1 ├── .gitignore ├── settings.gradle ├── README.md ├── gradle.properties └── gradlew.bat /NETWORK.http: -------------------------------------------------------------------------------- 1 | GET 2 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /.idea/.name: -------------------------------------------------------------------------------- 1 | ScarpingTutorial -------------------------------------------------------------------------------- /tonconsole/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /tonconsole/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | ScarpingTutorial 3 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorDeveloper/Scraping-Tutorial/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /tonconsole/src/main/java/com/azamovhudstc/tonconsole/Main.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.tonconsole 2 | 3 | class Main { 4 | 5 | //Hellooo 6 | } -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorDeveloper/Scraping-Tutorial/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorDeveloper/Scraping-Tutorial/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorDeveloper/Scraping-Tutorial/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorDeveloper/Scraping-Tutorial/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorDeveloper/Scraping-Tutorial/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/itv/Files.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.itv 2 | 3 | data class Files( 4 | val posterUrl: String 5 | ) -------------------------------------------------------------------------------- /tonconsole/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorDeveloper/Scraping-Tutorial/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorDeveloper/Scraping-Tutorial/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorDeveloper/Scraping-Tutorial/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorDeveloper/Scraping-Tutorial/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorDeveloper/Scraping-Tutorial/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /cacheDir/http_cache/5e4087c3189675fda2f4a1d7f58e56dd.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorDeveloper/Scraping-Tutorial/HEAD/cacheDir/http_cache/5e4087c3189675fda2f4a1d7f58e56dd.1 -------------------------------------------------------------------------------- /cacheDir/http_cache/9cb50cb1271552bead409a9b12e28ccc.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/professorDeveloper/Scraping-Tutorial/HEAD/cacheDir/http_cache/9cb50cb1271552bead409a9b12e28ccc.1 -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/anime_pahe/KiwikModel.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.anime_pahe 2 | 3 | class KiwikModel : ArrayList() -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/anibla/Name.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.anibla 2 | 3 | data class Name( 4 | val ru: String, 5 | val uz: String 6 | ) -------------------------------------------------------------------------------- /.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/aniworld/EpisodeData.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.aniworld 2 | 3 | data class EpisodeData(private val number: String, val link: String) -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/anibla/detail/Name.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.anibla.detail 2 | 3 | data class Name( 4 | val ru: String, 5 | val uz: String 6 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/aniworld/AniworldSearchData.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.aniworld 2 | 3 | class AniworldSearchData : ArrayList() -------------------------------------------------------------------------------- /.idea/kotlinc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/anibla/detail/Description.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.anibla.detail 2 | 3 | data class Description( 4 | val ru: String, 5 | val uz: String 6 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/channels_ontv/Origin.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.channels_ontv 2 | 3 | data class Origin( 4 | val src: String, 5 | val src_origin: String 6 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/uzmovi/movie/ParsedMovie.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.uzmovi.movie 2 | 3 | data class ParsedMovie(val title: String, val href: String, val image: String) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/anime_pahe/KiwikModelItem.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.anime_pahe 2 | 3 | data class KiwikModelItem( 4 | val link: String, 5 | val name: String 6 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/aniworld/EpisodeFullData.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.aniworld 2 | 3 | data class EpisodeFullData( val hostName: String, val hostUrl: String, val host: String) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/itv/PaymentParams.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.itv 2 | 3 | data class PaymentParams( 4 | val paymentModuleId: Int, 5 | val paymentType: String 6 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/itv/PaymentParamsX.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.itv 2 | 3 | data class PaymentParamsX( 4 | val paymentModuleId: Int, 5 | val paymentType: String 6 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/anibla/AmediaSearchData.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.anibla 2 | 3 | data class AmediaSearchData( 4 | val `data`: List, 5 | val success: Boolean 6 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/theflixer/RatingInfo.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.theflixer 2 | 3 | data class RatingInfo(val title: String, val totalVotes: Int, val ratingPercentage: Double) 4 | -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/anibla/detail/Screens.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.anibla.detail 2 | 3 | data class Screens( 4 | val original: List, 5 | val thumb: List 6 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/theflixer/Episode.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.theflixer 2 | 3 | data class Episode(val id: String, val dataId: String, val episodeNumber: String, val title: String) 4 | -------------------------------------------------------------------------------- /cacheDir/http_cache/eb3f92a87779a0e3bb56097846dd3a13.1: -------------------------------------------------------------------------------- 1 | 2 | 301 Moved Permanently 3 | 4 |

301 Moved Permanently

5 |
nginx
6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/channels_ontv/Icon.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.channels_ontv 2 | 3 | data class Icon( 4 | val slug: String, 5 | val src: String, 6 | val src_origin: String 7 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/channels_ontv/Low.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.channels_ontv 2 | 3 | data class Low( 4 | val slug: String, 5 | val src: String, 6 | val src_origin: String 7 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/itv/FilesX.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.itv 2 | 3 | data class FilesX( 4 | val posterUrl: String, 5 | val streamUrl: String, 6 | val timeshiftUrl: String 7 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/itv/Params.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.itv 2 | 3 | data class Params( 4 | val ageLimit: Int, 5 | val isFree: Boolean, 6 | val qualityLabel: String?=null 7 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/tv_online/parsed/Movie.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.tv_online.parsed 2 | 3 | data class Movie(val href: String, val title: String, val image: String, val rating: Int) 4 | -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/channels_ontv/Normal.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.channels_ontv 2 | 3 | data class Normal( 4 | val slug: String, 5 | val src: String, 6 | val src_origin: String 7 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/channels_ontv/Small.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.channels_ontv 2 | 3 | data class Small( 4 | val slug: String, 5 | val src: String, 6 | val src_origin: String 7 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/theflixer/EpisodeData.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.theflixer 2 | data class EpisodeData( 3 | val dataId: String, 4 | val serverName: String, 5 | val link: String 6 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/asilmedia/model/MainData.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.asilmedia.model 2 | 3 | data class Media( 4 | val name: String, 5 | val url: String, 6 | val cover: String 7 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/aniwave/SimpleAnime.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.aniwave 2 | 3 | data class SimpleAnime( 4 | val animeName: String, 5 | val animeImageURL: String, 6 | val animeLink: String 7 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/itv/Meta.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.itv 2 | 3 | data class Meta( 4 | val currentPage: Int, 5 | val itemsPerPage: Int, 6 | val totalItems: Int, 7 | val totalPages: Int 8 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/playimdb/Network.kt: -------------------------------------------------------------------------------- 1 | package com.saikou.sozo_tv.data.model 2 | 3 | data class Network( 4 | val id: Int, 5 | val logo_path: String, 6 | val name: String, 7 | val origin_country: String 8 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/anibla/Data.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.anibla 2 | 3 | data class Data( 4 | val _id: String, 5 | val category: List, 6 | val image: String, 7 | val name: Name 8 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/channels_ontv/Link.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.channels_ontv 2 | 3 | data class Link( 4 | val active: Boolean?=false, 5 | val label: String?=null, 6 | val url: String?=null 7 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/aniworld/AniworldSearchDataItem.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.aniworld 2 | 3 | data class AniworldSearchDataItem( 4 | val description: String, 5 | val link: String, 6 | val title: String 7 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/itv/ParamsX.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.itv 2 | 3 | data class ParamsX( 4 | val ageLimit: Int, 5 | val isFree: Boolean, 6 | val isPurchased: Boolean, 7 | val qualityLabel: String 8 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/theflixer/Film.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.theflixer 2 | 3 | data class Film( 4 | val title: String, 5 | val year: String, 6 | val type: String, 7 | val posterUrl: String, 8 | val watchUrl: String 9 | ) -------------------------------------------------------------------------------- /.idea/deploymentTargetDropDown.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Jan 13 00:15:26 UZT 2024 2 | distributionBase=GRADLE_USER_HOME 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/channels_ontv/Thumbnails.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.channels_ontv 2 | 3 | data class Thumbnails( 4 | val icon: Icon, 5 | val low: Low, 6 | val normal: Normal, 7 | val origin: Origin, 8 | val small: Small 9 | ) -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/caches 5 | /.idea/libraries 6 | /.idea/modules.xml 7 | /.idea/workspace.xml 8 | /.idea/navEditor.xml 9 | /.idea/assetWizardSettings.xml 10 | .DS_Store 11 | /build 12 | /captures 13 | .externalNativeBuild 14 | .cxx 15 | local.properties 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/aniwave/AnimeDetails.kt: -------------------------------------------------------------------------------- 1 | package com.talent.animescrap_common.model 2 | 3 | data class AnimeDetails( 4 | val animeName: String, 5 | val animeDesc: String, 6 | val animeCover: String, 7 | val animeEpisodes: Map> 8 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/anibla/detail/DetailData.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.anibla.detail 2 | 3 | data class DetailData( 4 | val comment: List, 5 | val `data`: Data, 6 | val seria: List, 7 | val status: Int, 8 | val success: Boolean 9 | ) -------------------------------------------------------------------------------- /.idea/migrations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/anibla/Category.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.anibla 2 | 3 | data class Category( 4 | val __v: Int, 5 | val _id: String, 6 | val createdAt: String, 7 | val isRestricted: Boolean, 8 | val nameru: String, 9 | val nameuz: String 10 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/anibla/detail/Janr.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.anibla.detail 2 | 3 | data class Janr( 4 | val __v: Int, 5 | val _id: String, 6 | val createdAt: String, 7 | val nameru: String, 8 | val nameuz: String, 9 | val status: Boolean 10 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/itv/TvResponse.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.itv 2 | 3 | data class TvResponse( 4 | val code: Int, 5 | val `data`: List, 6 | val groupIds: List, 7 | val language: String, 8 | val message: String, 9 | val meta: Meta 10 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/vidrock/Main.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.vidrock 2 | 3 | import kotlinx.coroutines.runBlocking 4 | 5 | fun main(args: Array) { 6 | val source = VidRockSource() 7 | runBlocking { 8 | source.invokevidrock(550) 9 | 10 | } 11 | } -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/anibla/detail/Tarjimon.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.anibla.detail 2 | 3 | data class Tarjimon( 4 | val __v: Int, 5 | val _id: String, 6 | val createdAt: String, 7 | val image: String, 8 | val name: String, 9 | val status: Boolean 10 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/itv/Data.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.itv 2 | 3 | data class Data( 4 | val channelId: Int, 5 | val channelTitle: String, 6 | val files: Files, 7 | val moduleId: Int, 8 | val params: Params, 9 | val paymentParams: PaymentParams 10 | ) -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/anibla/detail/Translator.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.anibla.detail 2 | 3 | data class Translator( 4 | val __v: Int, 5 | val _id: String, 6 | val createdAt: String, 7 | val image: String, 8 | val name: String, 9 | val status: Boolean 10 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/itv/ChannelResponse.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.itv 2 | 3 | data class ChannelResponse( 4 | val code: Int, 5 | val `data`: DataX, 6 | val groupIds: List, 7 | val language: String, 8 | val message: String?=null, 9 | val meta: Any 10 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/playimdb/Episode.kt: -------------------------------------------------------------------------------- 1 | package com.saikou.sozo_tv.data.model 2 | 3 | data class Episode( 4 | val air_date: String, 5 | val crew: List, 6 | val episode_number: Int, 7 | val still_path: String?, 8 | val vote_average: Double, 9 | val vote_count: Int 10 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/anibla/detail/Category.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.anibla.detail 2 | 3 | data class Category( 4 | val __v: Int, 5 | val _id: String, 6 | val createdAt: String, 7 | val isRestricted: Boolean, 8 | val nameru: String, 9 | val nameuz: String 10 | ) -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/AnimeParseddata.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial 2 | 3 | data class AnimeParseData( 4 | val title: String, 5 | val href: String, 6 | val image: String 7 | ) { 8 | override fun toString(): String { 9 | return "Title=$title\nHref=$href,\nImage=$image" 10 | } 11 | } -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/asilmedia/model/MovieInfo.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.asilmedia.model 2 | data class MovieInfo( 3 | val genre: String, 4 | val rating: String, 5 | val title: String, 6 | val image: String, 7 | val href: String, 8 | val quality: List, 9 | val year: String 10 | ) -------------------------------------------------------------------------------- /.idea/deploymentTargetSelector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/codeStyles/Project.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFBB86FC 4 | #FF6200EE 5 | #FF3700B3 6 | #FF03DAC5 7 | #FF018786 8 | #FF000000 9 | #FFFFFFFF 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/itv/DataX.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.itv 2 | 3 | data class DataX( 4 | val channelDescription: String, 5 | val channelId: Int, 6 | val channelTitle: String, 7 | val files: FilesX, 8 | val moduleId: Int, 9 | val params: ParamsX, 10 | val paymentParams: PaymentParamsX, 11 | val recommendedSubscriptions: List, 12 | val shareUrl: String 13 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/anibla/detail/Seria.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.anibla.detail 2 | 3 | data class Seria( 4 | val __v: Int, 5 | val _id: String, 6 | val createdAt: String, 7 | val date: String, 8 | val length: String, 9 | val name: Name, 10 | val season: String, 11 | val slug: String, 12 | val updatedAt: String, 13 | val url: String, 14 | val video: String 15 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/playimdb/Crew.kt: -------------------------------------------------------------------------------- 1 | package com.saikou.sozo_tv.data.model 2 | 3 | data class Crew( 4 | val adult: Boolean, 5 | val credit_id: String, 6 | val department: String, 7 | val gender: Int, 8 | val id: Int, 9 | val job: String, 10 | val known_for_department: String, 11 | val name: String, 12 | val original_name: String, 13 | val popularity: Double, 14 | val profile_path: String 15 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/channels_ontv/File.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.channels_ontv 2 | 3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties 4 | 5 | @JsonIgnoreProperties(ignoreUnknown = true) 6 | data class File( 7 | val id: Int, 8 | val url: String, 9 | val size: Long, 10 | // now Jackson can pass `null` (or default) if the JSON omits origin_ext 11 | val origin_ext: String? = null 12 | ) 13 | -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/playimdb/GuestStar.kt: -------------------------------------------------------------------------------- 1 | package com.saikou.sozo_tv.data.model 2 | 3 | data class GuestStar( 4 | val adult: Boolean, 5 | val character: String, 6 | val credit_id: String, 7 | val gender: Int, 8 | val id: Int, 9 | val known_for_department: String, 10 | val name: String, 11 | val order: Int, 12 | val original_name: String, 13 | val popularity: Double, 14 | val profile_path: String 15 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/aniwave/AnimePlayingDetails.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.aniwave 2 | 3 | import android.os.Parcelable 4 | import androidx.annotation.Keep 5 | 6 | @Keep 7 | data class AnimePlayingDetails( 8 | val animeName: String, 9 | val animeUrl: String, 10 | var animeEpisodeIndex: String, 11 | val animeEpisodeMap: HashMap, 12 | val animeTotalEpisode: String, 13 | val epType: String 14 | ) -------------------------------------------------------------------------------- /tonconsole/src/test/java/com/azamovhudstc/tonconsole/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.tonconsole 2 | 3 | import org.junit.Test 4 | 5 | import org.junit.Assert.* 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * See [testing documentation](http://d.android.com/tools/testing). 11 | */ 12 | class ExampleUnitTest { 13 | @Test 14 | fun addition_isCorrect() { 15 | assertEquals(4, 2 + 2) 16 | } 17 | } -------------------------------------------------------------------------------- /app/src/test/java/com/azamovhudstc/scarpingtutorial/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial 2 | 3 | import org.junit.Test 4 | 5 | import org.junit.Assert.* 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * See [testing documentation](http://d.android.com/tools/testing). 11 | */ 12 | class ExampleUnitTest { 13 | @Test 14 | fun addition_isCorrect() { 15 | assertEquals(4, 2 + 2) 16 | } 17 | } -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/shared/gsonConverters.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.shared 2 | 3 | import com.google.gson.Gson 4 | 5 | fun String.parseJson(): ArrayList { 6 | val gson = Gson() 7 | var list = ArrayList() 8 | list = gson.fromJson(this, ArrayList::class.java) as ArrayList 9 | 10 | return list 11 | } 12 | 13 | fun ArrayList.saveGson(): String { 14 | val gson = Gson() 15 | return gson.toJson(this) 16 | } -------------------------------------------------------------------------------- /cacheDir/http_cache/journal: -------------------------------------------------------------------------------- 1 | libcore.io.DiskLruCache 2 | 1 3 | 201105 4 | 2 5 | 6 | DIRTY 9cb50cb1271552bead409a9b12e28ccc 7 | CLEAN 9cb50cb1271552bead409a9b12e28ccc 8413 38444 8 | DIRTY 008ec4453ff31513f43893cba7aa31c8 9 | DIRTY 2b1224a03a7535f0c5970fad62e68a04 10 | CLEAN 2b1224a03a7535f0c5970fad62e68a04 5754 837 11 | DIRTY eb3f92a87779a0e3bb56097846dd3a13 12 | CLEAN eb3f92a87779a0e3bb56097846dd3a13 5646 162 13 | DIRTY 5e4087c3189675fda2f4a1d7f58e56dd 14 | CLEAN 5e4087c3189675fda2f4a1d7f58e56dd 482 23841 15 | -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/model/Data.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.model 2 | 3 | 4 | data class Data( 5 | val anime_id: Int?, 6 | val audio: String?, 7 | val created_at: String?, 8 | val disc: String?, 9 | val duration: String?, 10 | val edition: String?, 11 | val episode: Int?, 12 | val episode2: Int?, 13 | val filler: Int?, 14 | val id: Int?, 15 | val session: String?, 16 | val snapshot: String?, 17 | val title: String? 18 | ) -------------------------------------------------------------------------------- /app/src/main/res/xml/backup_rules.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 13 | -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/ParsedData.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial 2 | 3 | data class ParsedData( 4 | val climate: String, 5 | val created: String, 6 | val diameter: String, 7 | val edited: String, 8 | val films: List, 9 | val gravity: String, 10 | val name: String, 11 | val orbital_period: String, 12 | val population: String, 13 | val residents: List, 14 | val rotation_period: String, 15 | val surface_water: String, 16 | val terrain: String, 17 | val url: String 18 | ) -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | repositories { 3 | gradlePluginPortal() 4 | google() 5 | mavenCentral() 6 | jcenter() 7 | maven { url 'https://jitpack.io' } 8 | } 9 | } 10 | dependencyResolutionManagement { 11 | repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) 12 | repositories { 13 | google() 14 | mavenCentral() 15 | jcenter() 16 | maven { url 'https://jitpack.io' } 17 | } 18 | } 19 | rootProject.name = "ScarpingTutorial" 20 | include ':app' 21 | include ':tonconsole' 22 | -------------------------------------------------------------------------------- /cacheDir/http_cache/5e4087c3189675fda2f4a1d7f58e56dd.0: -------------------------------------------------------------------------------- 1 | http://uzmovi.com/ 2 | GET 3 | 0 4 | HTTP/1.1 200 OK 5 | 10 6 | Date: Fri, 12 Jan 2024 19:38:54 GMT 7 | Content-Type: text/html; charset=UTF-8 8 | Transfer-Encoding: chunked 9 | Connection: keep-alive 10 | Set-Cookie: ci_session=623bnsni5nur33hthd4d3ue3ec6kj1dm; expires=Fri, 12-Jan-2024 20:38:54 GMT; Max-Age=3600; path=/; HttpOnly 11 | Expires: Thu, 19 Nov 1981 08:52:00 GMT 12 | Content-Encoding: gzip 13 | Cache-Control: max-stale=2147483647, only-if-cached 14 | OkHttp-Sent-Millis: 1705088336650 15 | OkHttp-Received-Millis: 1705088336791 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/channels_ontv/ChannelList.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.channels_ontv 2 | 3 | data class ChannelList( 4 | val current_page: Int?=null, 5 | val `data`: List, 6 | val first_page_url: String?=null, 7 | val from: Int?=null, 8 | val last_page: Int?=null, 9 | val last_page_url: String?=null, 10 | val links: List?=null, 11 | val next_page_url: String?=null, 12 | val path: String?=null, 13 | val per_page: Int?=null, 14 | val prev_page_url: Any?=null, 15 | val to: Int?=null, 16 | val total: Int?=null 17 | 18 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/utils/removeEmTagsWithRegex.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.utils 2 | 3 | import com.azamovhudstc.scarpingtutorial.anibla.AmediaSearchData 4 | 5 | fun String.removeEmTagsWithRegex(): String { 6 | val regex = Regex("(.*?)") 7 | return regex.replace(this, "$1") 8 | } 9 | fun showData(data: AmediaSearchData) { 10 | printlnColored("=================================", Color.GREEN) 11 | data.data.forEach { 12 | printlnColored(it.name.uz, Color.YELLOW) 13 | } 14 | printlnColored("=================================", Color.GREEN) 15 | 16 | } -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/click/Topshiriq1.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.click 2 | 3 | fun main(args: Array) { 4 | val list1 = listOf(1, 2, 3, 4, 5) 5 | val list2 = listOf(2, 4, 6) 6 | val list3 = emptyList() 7 | println("Natija 1: ${sumOfToqNumbers(list1)}") 8 | println("Natija 2: ${sumOfToqNumbers(list2)}") 9 | println("Natija 3: ${sumOfToqNumbers(list3)}") 10 | } 11 | 12 | fun sumOfToqNumbers(numbers: List): Int { 13 | var sum = 0 14 | numbers.forEach { 15 | if (it % 2 != 0) { 16 | sum += it 17 | } 18 | } 19 | return sum 20 | } -------------------------------------------------------------------------------- /app/src/main/res/xml/data_extraction_rules.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 12 | 13 | 19 | -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/playimdb/FreeDomEpisode.kt: -------------------------------------------------------------------------------- 1 | package com.saikou.sozo_tv.data.model 2 | 3 | import com.google.gson.annotations.SerializedName 4 | data class EpiDsode( 5 | @SerializedName("still_path") val stillPath: String? 6 | ) 7 | 8 | data class SeasonResponse( 9 | @SerializedName("episodes") val episodes: List 10 | ) 11 | 12 | data class Subtitles( 13 | val list: List 14 | ) 15 | 16 | data class SubtitleItem( 17 | @SerializedName("url") val url: String, 18 | @SerializedName("media") val name: String, 19 | @SerializedName("display") val lang: String, 20 | @SerializedName("format") val format: String, 21 | @SerializedName("flagUrl") val flagUrl: String 22 | ) 23 | 24 | -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/channels_ontv/Data.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.channels_ontv 2 | 3 | data class Data( 4 | val analytic: Int?=null, 5 | val company_id: Any?=null, 6 | val created_at: String?=null, 7 | val deleted_at: Any?=null, 8 | val description: String?=null, 9 | val `file`: File?=null, 10 | val file_id: Int?=null, 11 | val id: Int=-1, 12 | val kaz: Int?=null, 13 | val name: String?=null, 14 | val paid: Int?=null, 15 | val promotion: Boolean?=null, 16 | val sort: Int? =null, 17 | val status: Int?=null, 18 | val updated_at: String?=null, 19 | val url_1080: String?=null, 20 | val url_480: String?=null, 21 | val url_720: String?=null, 22 | val viewed: Int?=null 23 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/vidsrc/Vidsrcccservers.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.vidsrc 2 | 3 | data class Vidsrcccservers( 4 | val data: List, 5 | val success: Boolean, 6 | ) 7 | 8 | data class VidsrcccDaum( 9 | val name: String, 10 | val hash: String, 11 | ) 12 | 13 | data class Vidsrcccm3u8( 14 | val data: VidsrcccData, 15 | val success: Boolean, 16 | ) 17 | 18 | data class VidsrcccData( 19 | val type: String, 20 | val source: String, 21 | ) 22 | 23 | data class VidsrcServersResponse( 24 | val data: List 25 | ) 26 | 27 | data class VidsrcServer( 28 | val name: String, 29 | val hash: String 30 | ) 31 | 32 | 33 | data class VidsrcSourceResponse( 34 | val data: VidsrcccData 35 | ) 36 | -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 19 | 20 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/vidsrc/Main.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.vidsrc 2 | 3 | import android.os.Build 4 | import androidx.annotation.RequiresApi 5 | import kotlinx.coroutines.runBlocking 6 | 7 | @RequiresApi(Build.VERSION_CODES.O) 8 | fun main() { 9 | val vidsrc = VidsrcSource() 10 | runBlocking { 11 | 12 | vidsrc.invokeVidsrccc( 13 | id = 550 14 | ) { 15 | println(it.name) 16 | println(it.source) 17 | println(it.url) 18 | } 19 | // vidsrc.invokeVidsrccc( 20 | // id = 1399, 21 | // season = 1, 22 | // episode = 1 23 | // ) { 24 | // println(it.name) 25 | // println(it.source) 26 | // println(it.url) 27 | // } 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /tonconsole/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /tonconsole/src/androidTest/java/com/azamovhudstc/tonconsole/ExampleInstrumentedTest.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.tonconsole 2 | 3 | import androidx.test.platform.app.InstrumentationRegistry 4 | import androidx.test.ext.junit.runners.AndroidJUnit4 5 | 6 | import org.junit.Test 7 | import org.junit.runner.RunWith 8 | 9 | import org.junit.Assert.* 10 | 11 | /** 12 | * Instrumented test, which will execute on an Android device. 13 | * 14 | * See [testing documentation](http://d.android.com/tools/testing). 15 | */ 16 | @RunWith(AndroidJUnit4::class) 17 | class ExampleInstrumentedTest { 18 | @Test 19 | fun useAppContext() { 20 | // Context of the app under test. 21 | val appContext = InstrumentationRegistry.getInstrumentation().targetContext 22 | assertEquals("com.azamovhudstc.tonconsole.test", appContext.packageName) 23 | } 24 | } -------------------------------------------------------------------------------- /cacheDir/http_cache/2b1224a03a7535f0c5970fad62e68a04.1: -------------------------------------------------------------------------------- 1 | {"name":"Tatooine","rotation_period":"23","orbital_period":"304","diameter":"10465","climate":"arid","gravity":"1 standard","terrain":"desert","surface_water":"1","population":"200000","residents":["https://swapi.dev/api/people/1/","https://swapi.dev/api/people/2/","https://swapi.dev/api/people/4/","https://swapi.dev/api/people/6/","https://swapi.dev/api/people/7/","https://swapi.dev/api/people/8/","https://swapi.dev/api/people/9/","https://swapi.dev/api/people/11/","https://swapi.dev/api/people/43/","https://swapi.dev/api/people/62/"],"films":["https://swapi.dev/api/films/1/","https://swapi.dev/api/films/3/","https://swapi.dev/api/films/4/","https://swapi.dev/api/films/5/","https://swapi.dev/api/films/6/"],"created":"2014-12-09T13:50:49.641000Z","edited":"2014-12-20T20:58:18.411000Z","url":"https://swapi.dev/api/planets/1/"} -------------------------------------------------------------------------------- /app/src/androidTest/java/com/azamovhudstc/scarpingtutorial/ExampleInstrumentedTest.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial 2 | 3 | import androidx.test.platform.app.InstrumentationRegistry 4 | import androidx.test.ext.junit.runners.AndroidJUnit4 5 | 6 | import org.junit.Test 7 | import org.junit.runner.RunWith 8 | 9 | import org.junit.Assert.* 10 | 11 | /** 12 | * Instrumented test, which will execute on an Android device. 13 | * 14 | * See [testing documentation](http://d.android.com/tools/testing). 15 | */ 16 | @RunWith(AndroidJUnit4::class) 17 | class ExampleInstrumentedTest { 18 | @Test 19 | fun useAppContext() { 20 | // Context of the app under test. 21 | val appContext = InstrumentationRegistry.getInstrumentation().targetContext 22 | assertEquals("com.azamovhudstc.scarpingtutorial", appContext.packageName) 23 | } 24 | } -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/hianime/main.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.hianime 2 | 3 | import kotlinx.coroutines.runBlocking 4 | 5 | fun main() { 6 | val hi = HiAnimeSource() 7 | 8 | println("Searching...") 9 | val list = hi.searchAnime("One Piece") 10 | list.forEach { println(it) } 11 | 12 | val first = list.get(1).id 13 | val episodes = runBlocking { hi.getEpisodeListById(first) } 14 | println(episodes) 15 | 16 | val videoExtractor = HiAnimeVideoExtractor() 17 | // /* 18 | val servers = videoExtractor.extractServers(episodes.first().id) 19 | println("Servers: $servers") 20 | 21 | val sourceUrl = videoExtractor.extractVideoFromServer(servers.first().id) 22 | println("Source: $sourceUrl") 23 | 24 | val finalM3u8 = videoExtractor.extractMegacloudVideo(sourceUrl) 25 | println("FINAL M3U8 → $finalM3u8") 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/kitsue_snapshot/kitsuGetEpisodes.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.kitsue_snapshot 2 | 3 | import com.azamovhudstc.scarpingtutorial.utils.Utils 4 | import com.google.gson.Gson 5 | import kotlinx.coroutines.CompletableJob 6 | import kotlinx.coroutines.cancel 7 | import kotlinx.coroutines.runBlocking 8 | 9 | fun main(args: Array) { 10 | val kitsuApi = KitsuApi() 11 | runBlocking { 12 | val animeId = kitsuApi.searchId("one piece") 13 | println("Anime ID = $animeId") 14 | 15 | val episodes = kitsuApi.getEpisodes(animeId!!, 0) 16 | episodes.forEach { 17 | println("EP ${it.number}: ${it.title}") 18 | println("Thumbnail: ${it.thumbnail}") 19 | println("Desc: ${it.description}") 20 | println("--------------------------") 21 | } 22 | 23 | 24 | } 25 | 26 | } -------------------------------------------------------------------------------- /app/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/med_home/MedHome.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.med_home 2 | import com.azamovhudstc.scarpingtutorial.utils.Utils 3 | import com.azamovhudstc.scarpingtutorial.utils.parser 4 | import com.lagradost.nicehttp.Requests 5 | 6 | import kotlinx.coroutines.runBlocking 7 | 8 | private val baseUrl ="https://test.jadidlar.uz/api" 9 | 10 | fun main(args: Array) { 11 | val medHome =MedHome() 12 | medHome.postRequest() 13 | } 14 | class MedHome { 15 | fun postRequest(){ 16 | runBlocking { 17 | val niceHttp= Requests(baseClient = Utils.httpClient, responseParser = parser) 18 | val request =niceHttp.post("$baseUrl/accounts/token", data = mapOf("phone" to "+998992803809", "password" to "Azamov2456??") ) 19 | 20 | println(request.body.string()) 21 | println(request.code) 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /app/src/main/res/values-night/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/findingJson/main.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.findingJson 2 | 3 | import com.azamovhudstc.scarpingtutorial.ParsedData 4 | import com.azamovhudstc.scarpingtutorial.utils.Utils 5 | import com.azamovhudstc.scarpingtutorial.utils.parser 6 | import com.lagradost.nicehttp.Requests 7 | import kotlinx.coroutines.coroutineScope 8 | 9 | suspend fun main() { 10 | coroutineScope { 11 | //So this sample Json is from https://swapi.dev/api/planets/1/ 12 | //I am using this sample Json for testing 13 | // You can use Kotlin json converter and parse it to ParsedData 14 | val requests = Requests(baseClient = Utils.httpClient, responseParser = parser) 15 | val jsonString = requests.get("https://swapi.dev/api/planets/1/").parsed() //Like this 16 | //so okay i will run 17 | println(jsonString.films) 18 | 19 | } 20 | } -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/model/EpisodeData.kt: -------------------------------------------------------------------------------- 1 | 2 | package com.azamovhudstc.scarpingtutorial.model 3 | 4 | 5 | 6 | data class EpisodeData( 7 | val current_page: Int?, 8 | val `data`: List?, 9 | val from: Int?, 10 | val last_page: Int?, 11 | val next_page_url: String?, 12 | val per_page: Int, 13 | val prev_page_url: String?, 14 | val to: Int, 15 | val total: Int 16 | ) 17 | data class AnimePaheData( 18 | val current_page: Int, 19 | val `data`: List, 20 | val from: Int, 21 | val last_page: Int, 22 | val per_page: Int, 23 | val to: Int, 24 | val total: Int 25 | ) 26 | data class DataD( 27 | val episodes: Int, 28 | val id: Int ?, 29 | val poster: String?, 30 | val score: Double?, 31 | val season: String?, 32 | val session: String?, 33 | val status: String?, 34 | val title: String?, 35 | val type: String?, 36 | val year: Int? 37 | ) -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 22 | -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/anibla/detail/Data.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.anibla.detail 2 | 3 | data class Data( 4 | val __v: Int, 5 | val _id: String, 6 | val category: List, 7 | val country: String, 8 | val createdAt: String, 9 | val date: String, 10 | val description: Description, 11 | val image: String, 12 | val janr: List, 13 | val length: String, 14 | val name: Name, 15 | val num: String, 16 | val price: String, 17 | val rating: Int, 18 | val rejissor: String, 19 | val screens: Screens, 20 | val slug: String, 21 | val status: Boolean, 22 | val studia: String, 23 | val tags: List, 24 | val tarjimon: List, 25 | val tayming: List, 26 | val tip: String, 27 | val translator: List, 28 | val type: Int, 29 | val updatedAt: String, 30 | val url: String, 31 | val video: String, 32 | val view: Int, 33 | val year: String 34 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/idub/VideoInfo.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.idub 2 | 3 | data class VideoInfo(val title: String, val playerUrl: String, val trailerUrl: String) { 4 | override fun toString(): String { 5 | return """ 6 | Video Title: $title 7 | Player URL: ${convertMoverEmbedToMp4(playerUrl)} 8 | Trailer URL: $trailerUrl 9 | """.trimIndent() 10 | } 11 | } 12 | 13 | 14 | fun convertMoverEmbedToMp4(embedUrl: String): String { 15 | val regex = Regex("https://mover\\.uz/video/embed/(\\w+)") 16 | val matchResult = regex.find(embedUrl) 17 | 18 | return if (matchResult != null) { 19 | val videoEndpoint = matchResult.groupValues[1] 20 | "https://mover.uz/${videoEndpoint}_m.mp4".replace( 21 | "https://mover.uz", "https://v.mover.uz" 22 | ) 23 | } else { 24 | // Return the original URL if it doesn't match the expected pattern 25 | embedUrl 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /.idea/appInsightsSettings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 25 | 26 | -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/idub/TVShow.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.idub 2 | 3 | data class TVShow( 4 | val title: String, 5 | val date: String, 6 | val year: String, 7 | val country: String, 8 | val age: String, 9 | val description: String, 10 | val ratingKP: String, 11 | val ratingIMDb: String, 12 | val episodeCount: String, 13 | val seasonCount: String, 14 | val href: String, 15 | val imageLink: String 16 | 17 | ) { 18 | override fun toString(): String { 19 | return """ 20 | Title: $title 21 | Date: $date 22 | Year: $year 23 | Country: $country 24 | Age: $age 25 | Description: $description 26 | KP Rating: $ratingKP 27 | IMDb Rating: $ratingIMDb 28 | Episode Count: $episodeCount 29 | Season Count: $seasonCount 30 | Href: $href 31 | Image Link: $imageLink 32 | --------------------- 33 | """.trimIndent() 34 | } 35 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ### Setup 2 | 3 | In build.gradle repositories: 4 | 5 | ```groovy 6 | maven { url 'https://jitpack.io' } 7 | ``` 8 | 9 | In app/build.gradle dependencies: 10 | 11 | 12 | ```groovy 13 | implementation 'com.github.Blatzar:NiceHttp:0.4.4' 14 | ``` 15 | 16 | ## Video tutorial 17 | https://t.me/azamovme/124 18 | 19 | ### Scraping a document with Nice Http 20 | 21 | ```kotlin 22 | suspend fun main() { 23 | val scannerForNext = Scanner(System.`in`) 24 | coroutineScope { 25 | val uzmoviBase = UzmoviBase() 26 | print("Enter Movie Name :") 27 | val movieName = scanner.nextLine() 28 | displayLoadingAnimation("Searching for movies", Color.GREEN) 29 | val list = uzmoviBase.searchMovie(movieName) 30 | printlnColored(" Selected Movie: ${list[0].title}", Color.GREEN) 31 | displayLoadingAnimation("Loading Episodes", Color.GREEN) 32 | uzmoviBase.movieDetails(list[0]) // Get Movie Details Scraping by href 33 | 34 | } 35 | } 36 | 37 | ``` 38 | 39 | ## _Thanks For_ [Blatzar](https://github.com/Blatzar) 40 | -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/kitsue_snapshot/KitsuEpisode.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.kitsue_snapshot 2 | 3 | 4 | data class KitsuEpisode( 5 | val id: String, 6 | val number: Int, 7 | val title: String, 8 | val description: String, 9 | val thumbnail: String 10 | ) 11 | 12 | data class KitsuEpisodeResponse( 13 | val data: List? 14 | ) 15 | 16 | data class KitsuEpisodeData( 17 | val id: String?, 18 | val attributes: KitsuEpisodeAttributes? 19 | ) 20 | 21 | data class KitsuEpisodeAttributes( 22 | val number: Int?, 23 | val canonicalTitle: String?, 24 | val description: String?, 25 | val titles: KitsuTitles?, 26 | val thumbnail: KitsuThumbnail? 27 | ) 28 | data class KitsuSearchResponse( 29 | val data: List? 30 | ) 31 | 32 | data class KitsuSearchItem( 33 | val id: String? 34 | ) 35 | 36 | data class KitsuTitles( 37 | val en_jp: String?, 38 | val en_us: String?, 39 | val ja_jp: String? 40 | ) 41 | 42 | data class KitsuThumbnail( 43 | val original: String? 44 | ) 45 | -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 16 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/utils/parser.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.utils 2 | 3 | import com.fasterxml.jackson.databind.DeserializationFeature 4 | import com.fasterxml.jackson.databind.ObjectMapper 5 | import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper 6 | import com.lagradost.nicehttp.ResponseParser 7 | import kotlin.reflect.KClass 8 | 9 | val parser = object : ResponseParser { 10 | val mapper: ObjectMapper = jacksonObjectMapper().configure( 11 | DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, 12 | false 13 | ) 14 | 15 | override fun parse(text: String, kClass: KClass): T { 16 | return mapper.readValue(text, kClass.java) 17 | } 18 | 19 | override fun parseSafe(text: String, kClass: KClass): T? { 20 | return try { 21 | mapper.readValue(text, kClass.java) 22 | } catch (e: Exception) { 23 | null 24 | } 25 | } 26 | 27 | override fun writeValueAsString(obj: Any): String { 28 | return mapper.writeValueAsString(obj) 29 | } 30 | } 31 | 32 | -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/cloudstream/main.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.cloudstream 2 | 3 | import android.content.Context 4 | import com.lagradost.cloudstream3.LoadResponse.Companion.getImdbId 5 | import com.lagradost.cloudstream3.MainPageRequest 6 | import com.lagradost.cloudstream3.TvType 7 | import com.lagradost.cloudstream3.newEpisode 8 | import com.lagradost.cloudstream3.newMovieSearchResponse 9 | import com.lagradost.cloudstream3.plugins.CloudstreamPlugin 10 | import com.lagradost.cloudstream3.plugins.Plugin 11 | import kotlinx.coroutines.runBlocking 12 | 13 | fun main(args: Array) { 14 | runBlocking { 15 | val allMovieLandProvider = AllMovieLandProvider() 16 | // allMovieLandProvider.getMainPage(1, MainPageRequest("Info","https://allmovieland.ac/",true)).let { 17 | // println(it) 18 | // } 19 | allMovieLandProvider.load("https://allmovieland.ac/6806-hitpig.html").let { 20 | allMovieLandProvider.newMovieSearchResponse(it?.name?:"",it?.url?:"",it?.type?: TvType.Movie){ 21 | 22 | } 23 | } 24 | } 25 | 26 | } -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/theflixer/TVShow.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.theflixer 2 | 3 | data class TVShow( 4 | val dataId: String, 5 | val title: String, 6 | val year: String, 7 | val type: String, 8 | val bannerUrl: String, 9 | val ratingInfo: RatingInfo, 10 | val posterUrl: String, 11 | val overview: String, 12 | val released: String, 13 | val genres: List, 14 | val casts: List, 15 | val duration: String, 16 | val country: String, 17 | val production: String 18 | ) { 19 | override fun toString(): String { 20 | return """ 21 | |TV Show: 22 | | Data ID: $dataId 23 | | Title: $title 24 | | Year: $year 25 | | Type: $type 26 | | Banner URL: $bannerUrl 27 | | Rating Info: $ratingInfo 28 | | Poster URL: $posterUrl 29 | | Overview: $overview 30 | | Released: $released 31 | | Genres: $genres 32 | | Casts: $casts 33 | | Duration: $duration 34 | | Country: $country 35 | | Production: $production 36 | """.trimMargin() 37 | } 38 | } -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/shared/SharedPreference.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.shared 2 | 3 | import android.content.Context 4 | import com.azamovhudstc.scarpingtutorial.utils.SharedPreference 5 | 6 | 7 | class LocalStorage(context: Context) : SharedPreference(context) { 8 | companion object { 9 | @Volatile 10 | lateinit var instance: LocalStorage 11 | fun getInstance(context: Context): LocalStorage { 12 | if (!::instance.isInitialized) { 13 | instance = LocalStorage(context) 14 | } 15 | return instance 16 | } 17 | } 18 | 19 | var token: String by Strings() 20 | var json by Strings() 21 | } 22 | 23 | fun String.saveToken(context: Context) { 24 | val sharedPreference = context.getSharedPreferences("shared", Context.MODE_PRIVATE) 25 | val editor = sharedPreference.edit() 26 | 27 | editor.putString("token", this.toString()) 28 | editor.apply() 29 | println("Token Saqlandi: $this") 30 | } 31 | 32 | fun getToken(context: Context): String { 33 | val sharedPreference = context.getSharedPreferences("shared", Context.MODE_PRIVATE) 34 | return sharedPreference.getString("token", "") ?: "Token Not Found" 35 | } -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/utils/banner.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.utils 2 | 3 | val banner = 4 | """"+---------------------------------------------------------------------------------+ 5 | | | 6 | | _ _ _ _ ______ _ | 7 | | (_)(_)(_) | | / _____) (_) | 8 | | _ _ _ _____ | |__ ( (____ ____ ____ _____ ____ _ ____ ____ | 9 | | | || || || ___ || _ \ \____ \ / ___) / ___)(____ || _ \ | || _ \ / _ | | 10 | | | || || || ____|| |_) ) _____) )( (___ | | / ___ || |_| || || | | |( (_| | | 11 | | \_____/ |_____)|____/ (______/ \____)|_| \_____|| __/ |_||_| |_| \___ | | 12 | | |_| (_____| | 13 | | Telegram : https://t.me/native_applications | 14 | | Github : https://github.com/professorDeveloper | 15 | +---------------------------------------------------------------------------------+""".trimMargin() -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/playimdb/WebViewResolver.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.playimdb 2 | 3 | import com.azamovhudstc.scarpingtutorial.helper.M3u8Helper 4 | import com.lagradost.cloudstream3.USER_AGENT 5 | import okhttp3.Interceptor 6 | 7 | import com.lagradost.cloudstream3.SubtitleFile 8 | import com.lagradost.cloudstream3.app 9 | import com.lagradost.cloudstream3.utils.ExtractorApi 10 | import com.lagradost.cloudstream3.utils.ExtractorLink 11 | 12 | class MoviehabNet : Moviehab() { 13 | override var mainUrl = "https://play.moviehab.asia" 14 | } 15 | 16 | open class Moviehab : ExtractorApi() { 17 | override var name = "Moviehab" 18 | override var mainUrl = "https://play.moviehab.com" 19 | override val requiresReferer = false 20 | 21 | override suspend fun getUrl( 22 | url: String, 23 | referer: String?, 24 | subtitleCallback: (SubtitleFile) -> Unit, 25 | callback: (ExtractorLink) -> Unit 26 | ) { 27 | val res = app.get(url) 28 | res.document.select("video#player").let { 29 | //should redirect first for making it works 30 | val link = app.get("$mainUrl/${it.select("source").attr("src")}", referer = url).url 31 | println(link) 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | # IDE (e.g. Android Studio) users: 3 | # Gradle settings configured through the IDE *will override* 4 | # any settings specified in this file. 5 | # For more details on how to configure your build environment visit 6 | # http://www.gradle.org/docs/current/userguide/build_environment.html 7 | # Specifies the JVM arguments used for the daemon process. 8 | # The setting is particularly useful for tweaking memory settings. 9 | org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 10 | # When configured, Gradle will run in incubating parallel mode. 11 | # This option should only be used with decoupled projects. More details, visit 12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 13 | # org.gradle.parallel=true 14 | # AndroidX package structure to make it clearer which packages are bundled with the 15 | # Android operating system, and which are packaged with your app"s APK 16 | # https://developer.android.com/topic/libraries/support-library/androidx-rn 17 | android.useAndroidX=true 18 | # Kotlin code style for this project: "official" or "obsolete": 19 | kotlin.code.style=official 20 | # Enables namespacing of each library's R class so that its R class includes only the 21 | # resources declared in the library itself and none from the library's dependencies, 22 | # thereby reducing the size of the R class for that library 23 | android.nonTransitiveRClass=true -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/playimdb/getDynamicM3U8.kt: -------------------------------------------------------------------------------- 1 | import org.jsoup.Jsoup 2 | import java.net.URLEncoder 3 | 4 | fun getDynamicM3U8(cx: Int = 0, cy: Int = 0): String? { 5 | val baseUrl = "https://z6bha.com" // real site base URL 6 | val deviceType = "Desktop/Windows" 7 | val browserName = "Chrome" 8 | 9 | val url = "$baseUrl/dl?b=view&file_code=mldhaxh6aeq5" + 10 | "&hash=49004318-54-86-1761160466-f8ee2c5662fbf958d8a2df58e3597227" + 11 | "&embed=1&referer=noxx.to" + 12 | "&cx=$cx&cy=$cy" + 13 | "&device=${URLEncoder.encode(deviceType, "UTF-8")}" + 14 | "&browser=${URLEncoder.encode(browserName, "UTF-8")}" + 15 | "&ww=1920&wh=1080" 16 | 17 | println(url) 18 | return try { 19 | val doc = Jsoup.connect(url) 20 | .ignoreContentType(true) 21 | .header("Content-Cache", "no-cache") 22 | .get() 23 | println(doc) 24 | val m3u8Url = doc.select("body").text() // the returned URL from server 25 | m3u8Url 26 | } catch (e: Exception) { 27 | e.printStackTrace() 28 | null 29 | } 30 | } 31 | 32 | /** 33 | * Example usage of the `getDynamicM3U8` function. 34 | * 35 | * Fetches a dynamic M3U8 URL using the provided coordinates (100, 200) and prints the result. 36 | */ 37 | fun main() { 38 | val m3u8 = getDynamicM3U8(100, 200) 39 | println("Dynamic M3U8 URL: $m3u8") 40 | } 41 | -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/hianime/ServerResponse.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.hianime 2 | 3 | import com.azamovhudstc.scarpingtutorial.utils.Utils 4 | import com.google.gson.Gson 5 | import org.jsoup.Jsoup 6 | 7 | data class ServerResponse(val link: String) 8 | data class EpisodeServers(val html: String) 9 | data class HiServer(val id: String, val label: String) 10 | 11 | class HiAnimeVideoExtractor { 12 | 13 | private val gson = Gson() 14 | private val base = "https://hianime.bz" 15 | 16 | fun extractServers(episodeId: Int): List { 17 | val json = Utils.get("$base/ajax/v2/episode/servers?episodeId=$episodeId") 18 | val resp = gson.fromJson(json, EpisodeServers::class.java) 19 | 20 | val doc = Jsoup.parse(resp.html) 21 | 22 | return doc.select(".server-item[data-id]").map { 23 | HiServer( 24 | id = it.attr("data-id"), 25 | label = it.select("a.btn").text() 26 | ) 27 | } 28 | } 29 | 30 | fun extractVideoFromServer(serverId: String): String { 31 | val json = Utils.get("$base/ajax/v2/episode/sources?id=$serverId") 32 | val source = gson.fromJson(json, ServerResponse::class.java).link 33 | return source 34 | } 35 | 36 | fun extractMegacloudVideo(url: String): String { 37 | val extractor = MegacloudExtractor() 38 | val (m3u8, tracks) = extractor.extractVideoUrl(url) 39 | println("Subtitles: $tracks") 40 | return m3u8 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/asilmedia/model/FullMovieData.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.asilmedia.model 2 | 3 | import com.azamovhudstc.scarpingtutorial.utils.Utils 4 | 5 | data class FullMovieData( 6 | val year: String, 7 | val country: String, 8 | val duration: String, 9 | val posterImageSrc: String, 10 | val genres: List>, 11 | val directors: List>, 12 | val actors: List>, 13 | val options: List>, 14 | val imageUrls: List, 15 | val description: String, 16 | val videoUrl: String, 17 | val IMDB_rating:String, 18 | ) 19 | 20 | { 21 | override fun toString(): String { 22 | return """ 23 | Year: $year 24 | Country: $country 25 | Duration: $duration 26 | Poster Image Src: $posterImageSrc 27 | 28 | Genres: 29 | ${genres.joinToString("\n") { "${it.first} - ${it.second}" }} 30 | 31 | Directors: 32 | ${directors.joinToString("\n") { "${it.first} - ${it.second}" }} 33 | 34 | Actors: 35 | ${actors.joinToString("\n") { "${it.first} - ${it.second}" }} 36 | 37 | Options: 38 | ${options.joinToString("\n") { "${it.first} - ${it.second}" }} 39 | 40 | Image URLs: 41 | ${imageUrls.joinToString("\n")} 42 | 43 | Description: $description 44 | 45 | Video URL: $videoUrl 46 | 47 | IMDB_rating: $IMDB_rating 48 | """.trimIndent() 49 | } 50 | 51 | } -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/theflixer/Functions.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.theflixer 2 | 3 | import com.azamovhudstc.scarpingtutorial.utils.Utils 4 | 5 | fun updateEndpoint(url: String): String { 6 | val baseUrl = "https://theflixertv.to" 7 | val path = url.removePrefix(baseUrl) 8 | 9 | return when { 10 | path.startsWith("/movie/") -> baseUrl + path.replace("/movie/", "/watch-movie/") 11 | path.startsWith("/tv/") -> baseUrl + path.replace("/tv/", "/watch-tv/") 12 | else -> url 13 | } 14 | } 15 | 16 | fun mapToFilm(map: Map): Film { 17 | return Film( 18 | title = map["title"] ?: "", 19 | year = map["year"] ?: "", 20 | type = map["type"] ?: "", 21 | posterUrl = map["posterUrl"] ?: "", 22 | watchUrl = map["watchUrl"] ?: "" 23 | ) 24 | } 25 | 26 | 27 | fun addLineBetweenWords(text: String, line: String): String { 28 | val words = text.split(" ") 29 | val newText = words.joinToString(line) 30 | return newText 31 | } 32 | 33 | fun parseRatingInfo(id: String,mainUrl:String): RatingInfo? { 34 | val document = Utils.getJsoup("$mainUrl/ajax/vote_info/$id") 35 | 36 | return try { 37 | val title = document.select(".rs-title").text() 38 | val totalVotes = document.select(".rr-mark").text().split(" ")[0].toInt() 39 | val ratingPercentage = document.select(".progress-bar").attr("style") 40 | .split("width: ")[1] 41 | .split("%;")[0] 42 | .toDouble() 43 | 44 | RatingInfo(title, totalVotes, ratingPercentage) 45 | } catch (e: Exception) { 46 | e.printStackTrace() 47 | null 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /tonconsole/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | id 'org.jetbrains.kotlin.android' 4 | } 5 | 6 | android { 7 | namespace 'com.azamovhudstc.tonconsole' 8 | compileSdk 34 9 | 10 | defaultConfig { 11 | minSdk 24 12 | 13 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 14 | consumerProguardFiles "consumer-rules.pro" 15 | } 16 | 17 | buildTypes { 18 | release { 19 | minifyEnabled false 20 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 21 | } 22 | } 23 | compileOptions { 24 | sourceCompatibility JavaVersion.VERSION_1_8 25 | targetCompatibility JavaVersion.VERSION_1_8 26 | } 27 | kotlinOptions { 28 | jvmTarget = '1.8' 29 | } 30 | } 31 | 32 | dependencies { 33 | 34 | implementation 'androidx.core:core-ktx:1.13.1' 35 | implementation platform('org.jetbrains.kotlin:kotlin-bom:1.8.0') 36 | implementation 'androidx.appcompat:appcompat:1.7.0' 37 | implementation 'com.google.android.material:material:1.12.0' 38 | testImplementation 'junit:junit:4.13.2' 39 | androidTestImplementation 'androidx.test.ext:junit:1.1.5' 40 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' 41 | implementation 'com.github.Blatzar:NiceHttp:0.4.4'// So wee Need this Libraries 42 | api "com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1" 43 | implementation 'com.google.code.gson:gson:2.10.1' 44 | implementation 'com.squareup.okhttp3:okhttp:3.5.0' 45 | implementation 'org.java-websocket:Java-WebSocket:1.4.0' 46 | 47 | implementation "dev.datlag.jsunpacker:jsunpacker:1.0.1" 48 | implementation 'io.apisense:rhino-android:1.0' 49 | 50 | } -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/itv/Main.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.itv 2 | 3 | import com.azamovhudstc.scarpingtutorial.utils.Utils 4 | import com.azamovhudstc.scarpingtutorial.utils.parser 5 | import com.lagradost.nicehttp.Requests 6 | import kotlinx.coroutines.runBlocking 7 | 8 | val mainUrl = "https://api.itv.uz" 9 | fun main(args: Array) { 10 | 11 | runBlocking { 12 | val responseList = getFreeTvChannels() 13 | val list = responseList.data.filter { it.params.isFree } 14 | val freeChannel = list.get(2) 15 | getChannelDataByID(freeChannel) 16 | } 17 | 18 | } 19 | 20 | 21 | 22 | suspend fun getFreeTvChannels(): TvResponse { 23 | val niceHttp = Requests(baseClient = Utils.httpClient, responseParser = parser) 24 | val response = 25 | niceHttp.get("$mainUrl/v2/cards/channels/list?categoryId=8&itemsPerPage=0&moduleId=1") 26 | .parsed() 27 | 28 | return response 29 | } 30 | 31 | 32 | suspend fun getChannelDataByID(tvResponse: Data) { 33 | val niceHttp = Requests(baseClient = Utils.httpClient, responseParser = parser) 34 | val currentTimeMillis = System.currentTimeMillis() 35 | 36 | val request = niceHttp.get( 37 | "$mainUrl/v2/cards/channels/show?channelId=${tvResponse.channelId}", 38 | headers = 39 | mapOf( 40 | "Itoken" to "6d7e4735846e243ab46a794e332f9519", 41 | "Referer" to "https://itv.uz/", 42 | "Ilogin" to "itv65869f5e66f28", 43 | "Idevice" to "K60-NEu4XqqucXbyV6aIb", 44 | "lauth" to "true", 45 | "lplatform" to "WebSite", 46 | "Itime" to currentTimeMillis.toString() 47 | ), 48 | ) 49 | println(request.body!!.string()) 50 | /// 51 | 52 | } -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/dos/dos4.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.dos 2 | 3 | import com.azamovhudstc.scarpingtutorial.utils.Utils 4 | import com.lagradost.nicehttp.Requests 5 | import kotlinx.coroutines.runBlocking 6 | 7 | fun main() { 8 | runBlocking { 9 | 10 | val requests = Requests(baseClient = Utils.httpClient) 11 | for (i in 1..10000) { 12 | val url = "https://count.getloli.com/@professorDeveloper?name=Sozo-tv&theme=rule34&padding=8&offset=0&align=top&scale=1&pixelated=1&darkmode=auto" 13 | 14 | val headers = mapOf( 15 | "Accept" to "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", 16 | "Accept-Language" to "en-US,en;q=0.9,uz-UZ;q=0.8,uz;q=0.7", 17 | "Cache-Control" to "max-age=0", 18 | "DNT" to "1", 19 | "Priority" to "u=0, i", 20 | "Sec-Ch-Ua" to "\"Chromium\";v=\"142\", \"Google Chrome\";v=\"142\", \"Not_A Brand\";v=\"99\"", 21 | "Sec-Ch-Ua-Mobile" to "?0", 22 | "Sec-Ch-Ua-Platform" to "\"Windows\"", 23 | "Sec-Fetch-Dest" to "document", 24 | "Sec-Fetch-Mode" to "navigate", 25 | "Sec-Fetch-Site" to "none", 26 | "Sec-Fetch-User" to "?1", 27 | "Upgrade-Insecure-Requests" to "1", 28 | "User-Agent" to "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 29 | ) 30 | 31 | val response = requests.get( 32 | url = url, 33 | headers = headers 34 | ) 35 | println("$i ${response.code}") 36 | } 37 | } 38 | } -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/dos/ddos10.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.dos 2 | 3 | import com.azamovhudstc.scarpingtutorial.utils.Utils 4 | import com.lagradost.nicehttp.Requests 5 | import kotlinx.coroutines.runBlocking 6 | 7 | fun main() { 8 | runBlocking { 9 | 10 | val requests = Requests(baseClient = Utils.httpClient) 11 | for (i in 1..10000) { 12 | val url = "https://count.getloli.com/@professorDeveloper?name=Sozo-tv&theme=rule34&padding=8&offset=0&align=top&scale=1&pixelated=1&darkmode=auto" 13 | 14 | val headers = mapOf( 15 | "Accept" to "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", 16 | "Accept-Language" to "en-US,en;q=0.9,uz-UZ;q=0.8,uz;q=0.7", 17 | "Cache-Control" to "max-age=0", 18 | "DNT" to "1", 19 | "Priority" to "u=0, i", 20 | "Sec-Ch-Ua" to "\"Chromium\";v=\"142\", \"Google Chrome\";v=\"142\", \"Not_A Brand\";v=\"99\"", 21 | "Sec-Ch-Ua-Mobile" to "?0", 22 | "Sec-Ch-Ua-Platform" to "\"Windows\"", 23 | "Sec-Fetch-Dest" to "document", 24 | "Sec-Fetch-Mode" to "navigate", 25 | "Sec-Fetch-Site" to "none", 26 | "Sec-Fetch-User" to "?1", 27 | "Upgrade-Insecure-Requests" to "1", 28 | "User-Agent" to "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 29 | ) 30 | 31 | val response = requests.get( 32 | url = url, 33 | headers = headers 34 | ) 35 | println("$i ${response.code}") 36 | } 37 | } 38 | } -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/dos/ddos11.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.dos 2 | 3 | import com.azamovhudstc.scarpingtutorial.utils.Utils 4 | import com.lagradost.nicehttp.Requests 5 | import kotlinx.coroutines.runBlocking 6 | 7 | fun main() { 8 | runBlocking { 9 | 10 | val requests = Requests(baseClient = Utils.httpClient) 11 | for (i in 1..10000) { 12 | val url = "https://count.getloli.com/@professorDeveloper?name=Sozo-tv&theme=rule34&padding=8&offset=0&align=top&scale=1&pixelated=1&darkmode=auto" 13 | 14 | val headers = mapOf( 15 | "Accept" to "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", 16 | "Accept-Language" to "en-US,en;q=0.9,uz-UZ;q=0.8,uz;q=0.7", 17 | "Cache-Control" to "max-age=0", 18 | "DNT" to "1", 19 | "Priority" to "u=0, i", 20 | "Sec-Ch-Ua" to "\"Chromium\";v=\"142\", \"Google Chrome\";v=\"142\", \"Not_A Brand\";v=\"99\"", 21 | "Sec-Ch-Ua-Mobile" to "?0", 22 | "Sec-Ch-Ua-Platform" to "\"Windows\"", 23 | "Sec-Fetch-Dest" to "document", 24 | "Sec-Fetch-Mode" to "navigate", 25 | "Sec-Fetch-Site" to "none", 26 | "Sec-Fetch-User" to "?1", 27 | "Upgrade-Insecure-Requests" to "1", 28 | "User-Agent" to "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 29 | ) 30 | 31 | val response = requests.get( 32 | url = url, 33 | headers = headers 34 | ) 35 | println("$i ${response.code}") 36 | } 37 | } 38 | } -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/dos/ddos12.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.dos 2 | 3 | import com.azamovhudstc.scarpingtutorial.utils.Utils 4 | import com.lagradost.nicehttp.Requests 5 | import kotlinx.coroutines.runBlocking 6 | 7 | fun main() { 8 | runBlocking { 9 | 10 | val requests = Requests(baseClient = Utils.httpClient) 11 | for (i in 1..10000) { 12 | val url = "https://count.getloli.com/@professorDeveloper?name=Sozo-tv&theme=rule34&padding=8&offset=0&align=top&scale=1&pixelated=1&darkmode=auto" 13 | 14 | val headers = mapOf( 15 | "Accept" to "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", 16 | "Accept-Language" to "en-US,en;q=0.9,uz-UZ;q=0.8,uz;q=0.7", 17 | "Cache-Control" to "max-age=0", 18 | "DNT" to "1", 19 | "Priority" to "u=0, i", 20 | "Sec-Ch-Ua" to "\"Chromium\";v=\"142\", \"Google Chrome\";v=\"142\", \"Not_A Brand\";v=\"99\"", 21 | "Sec-Ch-Ua-Mobile" to "?0", 22 | "Sec-Ch-Ua-Platform" to "\"Windows\"", 23 | "Sec-Fetch-Dest" to "document", 24 | "Sec-Fetch-Mode" to "navigate", 25 | "Sec-Fetch-Site" to "none", 26 | "Sec-Fetch-User" to "?1", 27 | "Upgrade-Insecure-Requests" to "1", 28 | "User-Agent" to "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 29 | ) 30 | 31 | val response = requests.get( 32 | url = url, 33 | headers = headers 34 | ) 35 | println("$i ${response.code}") 36 | } 37 | } 38 | } -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/dos/ddos13.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.dos 2 | 3 | import com.azamovhudstc.scarpingtutorial.utils.Utils 4 | import com.lagradost.nicehttp.Requests 5 | import kotlinx.coroutines.runBlocking 6 | 7 | fun main() { 8 | runBlocking { 9 | 10 | val requests = Requests(baseClient = Utils.httpClient) 11 | for (i in 1..10000) { 12 | val url = "https://count.getloli.com/@professorDeveloper?name=Sozo-tv&theme=rule34&padding=8&offset=0&align=top&scale=1&pixelated=1&darkmode=auto" 13 | 14 | val headers = mapOf( 15 | "Accept" to "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", 16 | "Accept-Language" to "en-US,en;q=0.9,uz-UZ;q=0.8,uz;q=0.7", 17 | "Cache-Control" to "max-age=0", 18 | "DNT" to "1", 19 | "Priority" to "u=0, i", 20 | "Sec-Ch-Ua" to "\"Chromium\";v=\"142\", \"Google Chrome\";v=\"142\", \"Not_A Brand\";v=\"99\"", 21 | "Sec-Ch-Ua-Mobile" to "?0", 22 | "Sec-Ch-Ua-Platform" to "\"Windows\"", 23 | "Sec-Fetch-Dest" to "document", 24 | "Sec-Fetch-Mode" to "navigate", 25 | "Sec-Fetch-Site" to "none", 26 | "Sec-Fetch-User" to "?1", 27 | "Upgrade-Insecure-Requests" to "1", 28 | "User-Agent" to "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 29 | ) 30 | 31 | val response = requests.get( 32 | url = url, 33 | headers = headers 34 | ) 35 | println("$i ${response.code}") 36 | } 37 | } 38 | } -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/dos/ddos14.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.dos 2 | 3 | import com.azamovhudstc.scarpingtutorial.utils.Utils 4 | import com.lagradost.nicehttp.Requests 5 | import kotlinx.coroutines.runBlocking 6 | 7 | fun main() { 8 | runBlocking { 9 | 10 | val requests = Requests(baseClient = Utils.httpClient) 11 | for (i in 1..10000) { 12 | val url = "https://count.getloli.com/@professorDeveloper?name=Sozo-tv&theme=rule34&padding=8&offset=0&align=top&scale=1&pixelated=1&darkmode=auto" 13 | 14 | val headers = mapOf( 15 | "Accept" to "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", 16 | "Accept-Language" to "en-US,en;q=0.9,uz-UZ;q=0.8,uz;q=0.7", 17 | "Cache-Control" to "max-age=0", 18 | "DNT" to "1", 19 | "Priority" to "u=0, i", 20 | "Sec-Ch-Ua" to "\"Chromium\";v=\"142\", \"Google Chrome\";v=\"142\", \"Not_A Brand\";v=\"99\"", 21 | "Sec-Ch-Ua-Mobile" to "?0", 22 | "Sec-Ch-Ua-Platform" to "\"Windows\"", 23 | "Sec-Fetch-Dest" to "document", 24 | "Sec-Fetch-Mode" to "navigate", 25 | "Sec-Fetch-Site" to "none", 26 | "Sec-Fetch-User" to "?1", 27 | "Upgrade-Insecure-Requests" to "1", 28 | "User-Agent" to "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 29 | ) 30 | 31 | val response = requests.get( 32 | url = url, 33 | headers = headers 34 | ) 35 | println("$i ${response.code}") 36 | } 37 | } 38 | } -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/dos/ddos15.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.dos 2 | 3 | import com.azamovhudstc.scarpingtutorial.utils.Utils 4 | import com.lagradost.nicehttp.Requests 5 | import kotlinx.coroutines.runBlocking 6 | 7 | fun main() { 8 | runBlocking { 9 | 10 | val requests = Requests(baseClient = Utils.httpClient) 11 | for (i in 1..10000) { 12 | val url = "https://count.getloli.com/@professorDeveloper?name=Sozo-tv&theme=rule34&padding=8&offset=0&align=top&scale=1&pixelated=1&darkmode=auto" 13 | 14 | val headers = mapOf( 15 | "Accept" to "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", 16 | "Accept-Language" to "en-US,en;q=0.9,uz-UZ;q=0.8,uz;q=0.7", 17 | "Cache-Control" to "max-age=0", 18 | "DNT" to "1", 19 | "Priority" to "u=0, i", 20 | "Sec-Ch-Ua" to "\"Chromium\";v=\"142\", \"Google Chrome\";v=\"142\", \"Not_A Brand\";v=\"99\"", 21 | "Sec-Ch-Ua-Mobile" to "?0", 22 | "Sec-Ch-Ua-Platform" to "\"Windows\"", 23 | "Sec-Fetch-Dest" to "document", 24 | "Sec-Fetch-Mode" to "navigate", 25 | "Sec-Fetch-Site" to "none", 26 | "Sec-Fetch-User" to "?1", 27 | "Upgrade-Insecure-Requests" to "1", 28 | "User-Agent" to "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 29 | ) 30 | 31 | val response = requests.get( 32 | url = url, 33 | headers = headers 34 | ) 35 | println("$i ${response.code}") 36 | } 37 | } 38 | } -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/dos/ddos16.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.dos 2 | 3 | import com.azamovhudstc.scarpingtutorial.utils.Utils 4 | import com.lagradost.nicehttp.Requests 5 | import kotlinx.coroutines.runBlocking 6 | 7 | fun main() { 8 | runBlocking { 9 | 10 | val requests = Requests(baseClient = Utils.httpClient) 11 | for (i in 1..10000) { 12 | val url = "https://count.getloli.com/@professorDeveloper?name=Sozo-tv&theme=rule34&padding=8&offset=0&align=top&scale=1&pixelated=1&darkmode=auto" 13 | 14 | val headers = mapOf( 15 | "Accept" to "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", 16 | "Accept-Language" to "en-US,en;q=0.9,uz-UZ;q=0.8,uz;q=0.7", 17 | "Cache-Control" to "max-age=0", 18 | "DNT" to "1", 19 | "Priority" to "u=0, i", 20 | "Sec-Ch-Ua" to "\"Chromium\";v=\"142\", \"Google Chrome\";v=\"142\", \"Not_A Brand\";v=\"99\"", 21 | "Sec-Ch-Ua-Mobile" to "?0", 22 | "Sec-Ch-Ua-Platform" to "\"Windows\"", 23 | "Sec-Fetch-Dest" to "document", 24 | "Sec-Fetch-Mode" to "navigate", 25 | "Sec-Fetch-Site" to "none", 26 | "Sec-Fetch-User" to "?1", 27 | "Upgrade-Insecure-Requests" to "1", 28 | "User-Agent" to "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 29 | ) 30 | 31 | val response = requests.get( 32 | url = url, 33 | headers = headers 34 | ) 35 | println("$i ${response.code}") 36 | } 37 | } 38 | } -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/dos/ddos18.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.dos 2 | 3 | import com.azamovhudstc.scarpingtutorial.utils.Utils 4 | import com.lagradost.nicehttp.Requests 5 | import kotlinx.coroutines.runBlocking 6 | 7 | fun main() { 8 | runBlocking { 9 | 10 | val requests = Requests(baseClient = Utils.httpClient) 11 | for (i in 1..10000) { 12 | val url = "https://count.getloli.com/@professorDeveloper?name=Sozo-tv&theme=rule34&padding=8&offset=0&align=top&scale=1&pixelated=1&darkmode=auto" 13 | 14 | val headers = mapOf( 15 | "Accept" to "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", 16 | "Accept-Language" to "en-US,en;q=0.9,uz-UZ;q=0.8,uz;q=0.7", 17 | "Cache-Control" to "max-age=0", 18 | "DNT" to "1", 19 | "Priority" to "u=0, i", 20 | "Sec-Ch-Ua" to "\"Chromium\";v=\"142\", \"Google Chrome\";v=\"142\", \"Not_A Brand\";v=\"99\"", 21 | "Sec-Ch-Ua-Mobile" to "?0", 22 | "Sec-Ch-Ua-Platform" to "\"Windows\"", 23 | "Sec-Fetch-Dest" to "document", 24 | "Sec-Fetch-Mode" to "navigate", 25 | "Sec-Fetch-Site" to "none", 26 | "Sec-Fetch-User" to "?1", 27 | "Upgrade-Insecure-Requests" to "1", 28 | "User-Agent" to "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 29 | ) 30 | 31 | val response = requests.get( 32 | url = url, 33 | headers = headers 34 | ) 35 | println("$i ${response.code}") 36 | } 37 | } 38 | } -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/dos/ddos5.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.dos 2 | 3 | import com.azamovhudstc.scarpingtutorial.utils.Utils 4 | import com.lagradost.nicehttp.Requests 5 | import kotlinx.coroutines.runBlocking 6 | 7 | fun main() { 8 | runBlocking { 9 | 10 | val requests = Requests(baseClient = Utils.httpClient) 11 | for (i in 1..10000) { 12 | val url = "https://count.getloli.com/@professorDeveloper?name=Sozo-tv&theme=rule34&padding=8&offset=0&align=top&scale=1&pixelated=1&darkmode=auto" 13 | 14 | val headers = mapOf( 15 | "Accept" to "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", 16 | "Accept-Language" to "en-US,en;q=0.9,uz-UZ;q=0.8,uz;q=0.7", 17 | "Cache-Control" to "max-age=0", 18 | "DNT" to "1", 19 | "Priority" to "u=0, i", 20 | "Sec-Ch-Ua" to "\"Chromium\";v=\"142\", \"Google Chrome\";v=\"142\", \"Not_A Brand\";v=\"99\"", 21 | "Sec-Ch-Ua-Mobile" to "?0", 22 | "Sec-Ch-Ua-Platform" to "\"Windows\"", 23 | "Sec-Fetch-Dest" to "document", 24 | "Sec-Fetch-Mode" to "navigate", 25 | "Sec-Fetch-Site" to "none", 26 | "Sec-Fetch-User" to "?1", 27 | "Upgrade-Insecure-Requests" to "1", 28 | "User-Agent" to "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 29 | ) 30 | 31 | val response = requests.get( 32 | url = url, 33 | headers = headers 34 | ) 35 | println("$i ${response.code}") 36 | } 37 | } 38 | } -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/dos/ddos6.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.dos 2 | 3 | import com.azamovhudstc.scarpingtutorial.utils.Utils 4 | import com.lagradost.nicehttp.Requests 5 | import kotlinx.coroutines.runBlocking 6 | 7 | fun main() { 8 | runBlocking { 9 | 10 | val requests = Requests(baseClient = Utils.httpClient) 11 | for (i in 1..10000) { 12 | val url = "https://count.getloli.com/@professorDeveloper?name=Sozo-tv&theme=rule34&padding=8&offset=0&align=top&scale=1&pixelated=1&darkmode=auto" 13 | 14 | val headers = mapOf( 15 | "Accept" to "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", 16 | "Accept-Language" to "en-US,en;q=0.9,uz-UZ;q=0.8,uz;q=0.7", 17 | "Cache-Control" to "max-age=0", 18 | "DNT" to "1", 19 | "Priority" to "u=0, i", 20 | "Sec-Ch-Ua" to "\"Chromium\";v=\"142\", \"Google Chrome\";v=\"142\", \"Not_A Brand\";v=\"99\"", 21 | "Sec-Ch-Ua-Mobile" to "?0", 22 | "Sec-Ch-Ua-Platform" to "\"Windows\"", 23 | "Sec-Fetch-Dest" to "document", 24 | "Sec-Fetch-Mode" to "navigate", 25 | "Sec-Fetch-Site" to "none", 26 | "Sec-Fetch-User" to "?1", 27 | "Upgrade-Insecure-Requests" to "1", 28 | "User-Agent" to "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 29 | ) 30 | 31 | val response = requests.get( 32 | url = url, 33 | headers = headers 34 | ) 35 | println("$i ${response.code}") 36 | } 37 | } 38 | } -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/dos/ddos7.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.dos 2 | 3 | import com.azamovhudstc.scarpingtutorial.utils.Utils 4 | import com.lagradost.nicehttp.Requests 5 | import kotlinx.coroutines.runBlocking 6 | 7 | fun main() { 8 | runBlocking { 9 | 10 | val requests = Requests(baseClient = Utils.httpClient) 11 | for (i in 1..10000) { 12 | val url = "https://count.getloli.com/@professorDeveloper?name=Sozo-tv&theme=rule34&padding=8&offset=0&align=top&scale=1&pixelated=1&darkmode=auto" 13 | 14 | val headers = mapOf( 15 | "Accept" to "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", 16 | "Accept-Language" to "en-US,en;q=0.9,uz-UZ;q=0.8,uz;q=0.7", 17 | "Cache-Control" to "max-age=0", 18 | "DNT" to "1", 19 | "Priority" to "u=0, i", 20 | "Sec-Ch-Ua" to "\"Chromium\";v=\"142\", \"Google Chrome\";v=\"142\", \"Not_A Brand\";v=\"99\"", 21 | "Sec-Ch-Ua-Mobile" to "?0", 22 | "Sec-Ch-Ua-Platform" to "\"Windows\"", 23 | "Sec-Fetch-Dest" to "document", 24 | "Sec-Fetch-Mode" to "navigate", 25 | "Sec-Fetch-Site" to "none", 26 | "Sec-Fetch-User" to "?1", 27 | "Upgrade-Insecure-Requests" to "1", 28 | "User-Agent" to "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 29 | ) 30 | 31 | val response = requests.get( 32 | url = url, 33 | headers = headers 34 | ) 35 | println("$i ${response.code}") 36 | } 37 | } 38 | } -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/dos/ddos8.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.dos 2 | 3 | import com.azamovhudstc.scarpingtutorial.utils.Utils 4 | import com.lagradost.nicehttp.Requests 5 | import kotlinx.coroutines.runBlocking 6 | 7 | fun main() { 8 | runBlocking { 9 | 10 | val requests = Requests(baseClient = Utils.httpClient) 11 | for (i in 1..10000) { 12 | val url = "https://count.getloli.com/@professorDeveloper?name=Sozo-tv&theme=rule34&padding=8&offset=0&align=top&scale=1&pixelated=1&darkmode=auto" 13 | 14 | val headers = mapOf( 15 | "Accept" to "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", 16 | "Accept-Language" to "en-US,en;q=0.9,uz-UZ;q=0.8,uz;q=0.7", 17 | "Cache-Control" to "max-age=0", 18 | "DNT" to "1", 19 | "Priority" to "u=0, i", 20 | "Sec-Ch-Ua" to "\"Chromium\";v=\"142\", \"Google Chrome\";v=\"142\", \"Not_A Brand\";v=\"99\"", 21 | "Sec-Ch-Ua-Mobile" to "?0", 22 | "Sec-Ch-Ua-Platform" to "\"Windows\"", 23 | "Sec-Fetch-Dest" to "document", 24 | "Sec-Fetch-Mode" to "navigate", 25 | "Sec-Fetch-Site" to "none", 26 | "Sec-Fetch-User" to "?1", 27 | "Upgrade-Insecure-Requests" to "1", 28 | "User-Agent" to "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 29 | ) 30 | 31 | val response = requests.get( 32 | url = url, 33 | headers = headers 34 | ) 35 | println("$i ${response.code}") 36 | } 37 | } 38 | } -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/dos/ddos9.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.dos 2 | 3 | import com.azamovhudstc.scarpingtutorial.utils.Utils 4 | import com.lagradost.nicehttp.Requests 5 | import kotlinx.coroutines.runBlocking 6 | 7 | fun main() { 8 | runBlocking { 9 | 10 | val requests = Requests(baseClient = Utils.httpClient) 11 | for (i in 1..10000) { 12 | val url = "https://count.getloli.com/@professorDeveloper?name=Sozo-tv&theme=rule34&padding=8&offset=0&align=top&scale=1&pixelated=1&darkmode=auto" 13 | 14 | val headers = mapOf( 15 | "Accept" to "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", 16 | "Accept-Language" to "en-US,en;q=0.9,uz-UZ;q=0.8,uz;q=0.7", 17 | "Cache-Control" to "max-age=0", 18 | "DNT" to "1", 19 | "Priority" to "u=0, i", 20 | "Sec-Ch-Ua" to "\"Chromium\";v=\"142\", \"Google Chrome\";v=\"142\", \"Not_A Brand\";v=\"99\"", 21 | "Sec-Ch-Ua-Mobile" to "?0", 22 | "Sec-Ch-Ua-Platform" to "\"Windows\"", 23 | "Sec-Fetch-Dest" to "document", 24 | "Sec-Fetch-Mode" to "navigate", 25 | "Sec-Fetch-Site" to "none", 26 | "Sec-Fetch-User" to "?1", 27 | "Upgrade-Insecure-Requests" to "1", 28 | "User-Agent" to "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 29 | ) 30 | 31 | val response = requests.get( 32 | url = url, 33 | headers = headers 34 | ) 35 | println("$i ${response.code}") 36 | } 37 | } 38 | } -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/dos/ddos17.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.dos 2 | 3 | 4 | import com.azamovhudstc.scarpingtutorial.utils.Utils 5 | import com.lagradost.nicehttp.Requests 6 | import kotlinx.coroutines.runBlocking 7 | 8 | fun main() { 9 | runBlocking { 10 | 11 | val requests = Requests(baseClient = Utils.httpClient) 12 | for (i in 1..10000) { 13 | val url = "https://count.getloli.com/@professorDeveloper?name=Sozo-tv&theme=rule34&padding=8&offset=0&align=top&scale=1&pixelated=1&darkmode=auto" 14 | 15 | val headers = mapOf( 16 | "Accept" to "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", 17 | "Accept-Language" to "en-US,en;q=0.9,uz-UZ;q=0.8,uz;q=0.7", 18 | "Cache-Control" to "max-age=0", 19 | "DNT" to "1", 20 | "Priority" to "u=0, i", 21 | "Sec-Ch-Ua" to "\"Chromium\";v=\"142\", \"Google Chrome\";v=\"142\", \"Not_A Brand\";v=\"99\"", 22 | "Sec-Ch-Ua-Mobile" to "?0", 23 | "Sec-Ch-Ua-Platform" to "\"Windows\"", 24 | "Sec-Fetch-Dest" to "document", 25 | "Sec-Fetch-Mode" to "navigate", 26 | "Sec-Fetch-Site" to "none", 27 | "Sec-Fetch-User" to "?1", 28 | "Upgrade-Insecure-Requests" to "1", 29 | "User-Agent" to "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 30 | ) 31 | 32 | val response = requests.get( 33 | url = url, 34 | headers = headers 35 | ) 36 | println("$i ${response.code}") 37 | } 38 | } 39 | } -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/dos/ddos19.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.dos 2 | 3 | 4 | import com.azamovhudstc.scarpingtutorial.utils.Utils 5 | import com.lagradost.nicehttp.Requests 6 | import kotlinx.coroutines.runBlocking 7 | 8 | fun main() { 9 | runBlocking { 10 | 11 | val requests = Requests(baseClient = Utils.httpClient) 12 | for (i in 1..10000) { 13 | val url = "https://count.getloli.com/@professorDeveloper?name=Sozo-tv&theme=rule34&padding=8&offset=0&align=top&scale=1&pixelated=1&darkmode=auto" 14 | 15 | val headers = mapOf( 16 | "Accept" to "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", 17 | "Accept-Language" to "en-US,en;q=0.9,uz-UZ;q=0.8,uz;q=0.7", 18 | "Cache-Control" to "max-age=0", 19 | "DNT" to "1", 20 | "Priority" to "u=0, i", 21 | "Sec-Ch-Ua" to "\"Chromium\";v=\"142\", \"Google Chrome\";v=\"142\", \"Not_A Brand\";v=\"99\"", 22 | "Sec-Ch-Ua-Mobile" to "?0", 23 | "Sec-Ch-Ua-Platform" to "\"Windows\"", 24 | "Sec-Fetch-Dest" to "document", 25 | "Sec-Fetch-Mode" to "navigate", 26 | "Sec-Fetch-Site" to "none", 27 | "Sec-Fetch-User" to "?1", 28 | "Upgrade-Insecure-Requests" to "1", 29 | "User-Agent" to "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 30 | ) 31 | 32 | val response = requests.get( 33 | url = url, 34 | headers = headers 35 | ) 36 | println("$i ${response.code}") 37 | } 38 | } 39 | } -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/dos/ddos20.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.dos 2 | 3 | 4 | import com.azamovhudstc.scarpingtutorial.utils.Utils 5 | import com.lagradost.nicehttp.Requests 6 | import kotlinx.coroutines.runBlocking 7 | 8 | fun main() { 9 | runBlocking { 10 | 11 | val requests = Requests(baseClient = Utils.httpClient) 12 | for (i in 1..10000) { 13 | val url = "https://count.getloli.com/@professorDeveloper?name=Sozo-tv&theme=rule34&padding=8&offset=0&align=top&scale=1&pixelated=1&darkmode=auto" 14 | 15 | val headers = mapOf( 16 | "Accept" to "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", 17 | "Accept-Language" to "en-US,en;q=0.9,uz-UZ;q=0.8,uz;q=0.7", 18 | "Cache-Control" to "max-age=0", 19 | "DNT" to "1", 20 | "Priority" to "u=0, i", 21 | "Sec-Ch-Ua" to "\"Chromium\";v=\"142\", \"Google Chrome\";v=\"142\", \"Not_A Brand\";v=\"99\"", 22 | "Sec-Ch-Ua-Mobile" to "?0", 23 | "Sec-Ch-Ua-Platform" to "\"Windows\"", 24 | "Sec-Fetch-Dest" to "document", 25 | "Sec-Fetch-Mode" to "navigate", 26 | "Sec-Fetch-Site" to "none", 27 | "Sec-Fetch-User" to "?1", 28 | "Upgrade-Insecure-Requests" to "1", 29 | "User-Agent" to "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 30 | ) 31 | 32 | val response = requests.get( 33 | url = url, 34 | headers = headers 35 | ) 36 | println("$i ${response.code}") 37 | } 38 | } 39 | } -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/ktor_http/Main.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.ktor_http 2 | 3 | import com.azamovhudstc.scarpingtutorial.utils.Utils 4 | import com.lagradost.nicehttp.Requests 5 | import kotlinx.coroutines.runBlocking 6 | 7 | fun main() { 8 | runBlocking { 9 | 10 | val requests = Requests(baseClient = Utils.httpClient) 11 | for (i in 1..10000) { 12 | val url = "https://count.getloli.com/@professorDeveloper?name=Sozo-tv&theme=rule34&padding=8&offset=0&align=top&scale=1&pixelated=1&darkmode=auto" 13 | 14 | val headers = mapOf( 15 | "Accept" to "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", 16 | "Accept-Language" to "en-US,en;q=0.9,uz-UZ;q=0.8,uz;q=0.7", 17 | "Cache-Control" to "max-age=0", 18 | "DNT" to "1", 19 | "Priority" to "u=0, i", 20 | "Sec-Ch-Ua" to "\"Chromium\";v=\"142\", \"Google Chrome\";v=\"142\", \"Not_A Brand\";v=\"99\"", 21 | "Sec-Ch-Ua-Mobile" to "?0", 22 | "Sec-Ch-Ua-Platform" to "\"Windows\"", 23 | "Sec-Fetch-Dest" to "document", 24 | "Sec-Fetch-Mode" to "navigate", 25 | "Sec-Fetch-Site" to "none", 26 | "Sec-Fetch-User" to "?1", 27 | "Upgrade-Insecure-Requests" to "1", 28 | "User-Agent" to "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 29 | ) 30 | 31 | val response = requests.get( 32 | url = url, 33 | headers = headers 34 | ) 35 | println("$i ${response.code}") 36 | } 37 | } 38 | } -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/fck.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial 2 | 3 | import com.azamovhudstc.scarpingtutorial.utils.Utils 4 | import com.lagradost.nicehttp.Requests 5 | import kotlinx.coroutines.runBlocking 6 | 7 | fun main(args: Array) { 8 | runBlocking { 9 | 10 | val requests = Requests(baseClient = Utils.httpClient) 11 | for (i in 1..10000) { 12 | val url = "https://count.getloli.com/@professorDeveloper?name=Sozo-tv&theme=rule34&padding=8&offset=0&align=top&scale=1&pixelated=1&darkmode=auto" 13 | 14 | val headers = mapOf( 15 | "Accept" to "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", 16 | "Accept-Language" to "en-US,en;q=0.9,uz-UZ;q=0.8,uz;q=0.7", 17 | "Cache-Control" to "max-age=0", 18 | "DNT" to "1", 19 | "Priority" to "u=0, i", 20 | "Sec-Ch-Ua" to "\"Chromium\";v=\"142\", \"Google Chrome\";v=\"142\", \"Not_A Brand\";v=\"99\"", 21 | "Sec-Ch-Ua-Mobile" to "?0", 22 | "Sec-Ch-Ua-Platform" to "\"Windows\"", 23 | "Sec-Fetch-Dest" to "document", 24 | "Sec-Fetch-Mode" to "navigate", 25 | "Sec-Fetch-Site" to "none", 26 | "Sec-Fetch-User" to "?1", 27 | "Upgrade-Insecure-Requests" to "1", 28 | "User-Agent" to "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" 29 | ) 30 | 31 | val response = requests.get( 32 | url = url, 33 | headers = headers 34 | ) 35 | println("$i ${response.code}") 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 15 | 18 | 21 | 22 | 23 | 24 | 30 | -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/kitsue_snapshot/KitsuApi.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.kitsue_snapshot 2 | 3 | import com.azamovhudstc.scarpingtutorial.utils.Utils 4 | import com.google.gson.Gson 5 | import kotlinx.coroutines.Dispatchers 6 | import kotlinx.coroutines.withContext 7 | 8 | class KitsuApi { 9 | private val gson = Gson() 10 | private val base = "https://kitsu.io/api/edge" 11 | 12 | suspend fun searchId(query: String): String? = withContext(Dispatchers.IO) { 13 | val encoded = query.replace(" ", "%20") 14 | val url = "$base/anime?filter[text]=$encoded" 15 | 16 | val json = Utils.get(url) // blocking → moves to IO thread 17 | val result = gson.fromJson(json, KitsuSearchResponse::class.java) 18 | 19 | result.data?.firstOrNull()?.id 20 | } 21 | 22 | 23 | suspend fun getEpisodes(animeId: String, page: Int): List = 24 | withContext(Dispatchers.IO) { 25 | 26 | val limit = 20 27 | val offset = page * limit 28 | 29 | val url = "$base/anime/$animeId/episodes?page[limit]=$limit&page[offset]=$offset" 30 | 31 | val json = Utils.get(url) 32 | val result = gson.fromJson(json, KitsuEpisodeResponse::class.java) 33 | val list = result.data ?: return@withContext emptyList() 34 | 35 | list.mapNotNull { ep -> 36 | val attr = ep.attributes ?: return@mapNotNull null 37 | 38 | KitsuEpisode( 39 | id = ep.id ?: "", 40 | number = attr.number ?: 0, 41 | title = attr.canonicalTitle ?: attr.titles?.en_us ?: attr.titles?.en_jp 42 | ?: attr.titles?.ja_jp ?: "Episode ${attr.number}", 43 | description = attr.description ?: "", 44 | thumbnail = attr.thumbnail?.original ?: "" 45 | ) 46 | } 47 | } 48 | } -------------------------------------------------------------------------------- /app/src/main/java/com/azamovhudstc/scarpingtutorial/anime_pahe/AnimePaheExtractor.kt: -------------------------------------------------------------------------------- 1 | package com.azamovhudstc.scarpingtutorial.anime_pahe 2 | 3 | import org.jsoup.select.Elements 4 | // 5 | //class AnimePaheExtractor(override val server: VideoServer) : VideoExtractor() { 6 | // override suspend fun extract(): VideoContainer { 7 | // val scrapVideos = mutableListOf