Skip to content

Commit

Permalink
remove rarbg. RIP (#56)
Browse files Browse the repository at this point in the history
  • Loading branch information
dpozinen authored Oct 21, 2023
1 parent 062149b commit 9920896
Show file tree
Hide file tree
Showing 10 changed files with 4 additions and 621 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ plugins {
}

group = 'dpozinen'
version = '2.5'
version = '2.6'

repositories {
mavenCentral()
Expand Down
6 changes: 0 additions & 6 deletions src/main/kotlin/dpozinen/tracker/Tracker.kt
Original file line number Diff line number Diff line change
Expand Up @@ -26,19 +26,13 @@ class Tracker(
fun from(tracker: Trackers) =
when (tracker) {
Trackers.OneThreeThree -> oneThreeThreeSevenXTo()
Trackers.Rarbg -> rarbg()
}

private fun oneThreeThreeSevenXTo() = Tracker(
TrackerParser.OneThreeThree(),
TrackerOps.OneThreeThree()
)

private fun rarbg() = Tracker(
TrackerParser.Rarbg(),
TrackerOps.Rarbg()
)

}

}
33 changes: 0 additions & 33 deletions src/main/kotlin/dpozinen/tracker/TrackerOps.kt
Original file line number Diff line number Diff line change
Expand Up @@ -30,39 +30,6 @@ interface TrackerOps {

}

class Rarbg : TrackerOps {
private val baseUrl: String = "https://rarbg.to"

private val headers = mapOf(
"Referer" to "https://rarbg2021.org",
"User-Agent" to "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36",
"Cookie" to "gaDts48g=q8h5pp9t; tcc; aby=2; ppu_main_9ef78edf998c4df1e1636c9a474d9f47=1; ppu_sub_9ef78edf998c4df1e1636c9a474d9f47=3; skt=izegwjyodt; skt=izegwjyodt; gaDts48g=q8h5pp9t; __cf_bm=YxPZVni6m2kjxfO08ACgWstKkmesN63D8AV0Cwv.W9E-1663500834-0-AZupSp29iD+HxAJ7SUf5ZEHe1YPGh6EV7egcPQmsd+MkCvwP34Vyz8v9413FNKM8fOvaU9b9CCGg6hMEzABBvFqkzDyhDv+VybcQudfDXzUHWqDem5GtVA1x+mVs59Oggg==",
"Accept-Language" to "uk-UA,uk;q=0.9,en-US;q=0.8,en;q=0.7",
"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.9",
"authority" to " rarbg2021.org",
"upgrade-insecure-requests" to "1"
)

override fun open(torrent: Torrent): String =
session.newRequest()
.url("$baseUrl${torrent.link}")
.headers(headers)
.execute()
.body()

override fun search(keywords: List<String>): String =
session.newRequest()
.url("$baseUrl/torrents.php?search=${keywordsSegment(keywords)}&category%5B%5D=17&category%5B%5D=44&category%5B%5D=45&category%5B%5D=47&category%5B%5D=50&category%5B%5D=51&category%5B%5D=52&category%5B%5D=42&category%5B%5D=46&category%5B%5D=54&category%5B%5D=18&category%5B%5D=41&category%5B%5D=49")
.headers(headers)
.execute()
.body()

override fun expandUrl(url: String): String = "$baseUrl/$url"

private fun keywordsSegment(keywords: List<String>) = keywords.joinToString("+")

}

companion object {
val session: Connection = Jsoup.newSession()
}
Expand Down
47 changes: 0 additions & 47 deletions src/main/kotlin/dpozinen/tracker/TrackerParser.kt
Original file line number Diff line number Diff line change
Expand Up @@ -55,51 +55,4 @@ interface TrackerParser {

}

class Rarbg : TrackerParser {

override fun parseSearch(body: String): Torrents {
val document = Jsoup.parse(body)

if (document.select("p").any { e -> e.text().contains("No results were returned") })
return Torrents.empty()

return Torrents(
document.select(".lista2")
.map { toTorrent(it) }
.toList()
)
}

private fun toTorrent(element: Element): Torrent {
element.select(".size .seeds").remove()

val link = element.select("a[title]").attr("href")
val name = element.select("a[title]").text()
val seeds = element.select("td")[4]?.text()?.toInt() ?: 0
val leeches = element.select("td")[5]?.text()?.toInt() ?: 0
val date = element.select("td")[2]?.text() ?: ""
val size = element.select("td")[3]?.text() ?: ""
val contributor = element.select("td")[7]?.text() ?: ""

return Torrent(link, name, size, seeds, leeches, date, contributor)
}

override fun parseTorrentPage(body: String): Torrent {
val document = Jsoup.parse(body)

val link = document
.select(".lista a[href^=magnet]")
.first()!!
.attr("href")

val name = document
.select("h1")
.first()
?.text() ?: ""

return Torrent(link, name)
}

}

}
3 changes: 1 addition & 2 deletions src/main/kotlin/dpozinen/tracker/Trackers.kt
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
package dpozinen.tracker

enum class Trackers {
OneThreeThree, Rarbg;
OneThreeThree;

companion object {
fun from(name: String) : Trackers {
return when (name) {
"133" -> OneThreeThree
"rarbg" -> Rarbg
else -> throw IllegalArgumentException()
}
}
Expand Down
4 changes: 0 additions & 4 deletions src/main/resources/static/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,6 @@
<input type="radio" class="form-check-input btn-check" name="tracker" id="1337x" value="133" autocomplete="off" checked>
<label class="form-check-label btn btn-outline-secondary" for="1337x">1337x.to</label>
</div>
<div class="form-check form-check-inline">
<input type="radio" class="form-check-input btn-check" name="tracker" id="rarbg" value="rarbg" autocomplete="off">
<label class="form-check-label btn btn-outline-secondary" for="rarbg">rarbg.to</label>
</div>
<div class="mb-5"></div>
<div class="divider-custom divider-light">
<div class="divider-custom-line"></div>
Expand Down
21 changes: 0 additions & 21 deletions src/test/kotlin/Data.kt
Original file line number Diff line number Diff line change
Expand Up @@ -40,27 +40,6 @@ class Data {
}
}

class Rarbg {
companion object {
const val SEARCH_PAGE_PATH = "src/test/resources/rarbg/search.html"
const val TORRENT_PAGE_PATH = "src/test/resources/rarbg/torrent-page.html"

val PAGE_EXPECTED_TORRENT = Torrent(
"magnet:?xt=urn:btih:4d92937e338d550e09a18a6863caed3ea67e5638&dn=Diners.Drive-Ins.and.Dives.S43E11.Stuffed.Smoked.and.Wrapped.720p.WEB.h264-CAFFEiNE%5Brartv%5D&tr=http%3A%2F%2Ftracker.trackerfix.com%3A80%2Fannounce&tr=udp%3A%2F%2F9.rarbg.me%3A2720&tr=udp%3A%2F%2F9.rarbg.to%3A2950&tr=udp%3A%2F%2Ftracker.slowcheetah.org%3A14750&tr=udp%3A%2F%2Ftracker.tallpenguin.org%3A15790",
"Diners.Drive-Ins.and.Dives.S43E11.Stuffed.Smoked.and.Wrapped.720p.WEB.h264-CAFFEiNE[rartv]"
)

val SEARCH_EXPECTED_TORRENT = Torrent(
"/torrent/b4crw2z",
"Diners.Drive-Ins.and.Dives.S43E11.Stuffed.Smoked.and.Wrapped.720p.WEB.h264-CAFFEiNE[rartv]",
"290.03 MB",
63,
6,
"2022-09-18 04:42:40",
"rartv"
)
}
}

companion object {
val info: DelugeTorrents.Info = DelugeTorrents.Info(
Expand Down
22 changes: 2 additions & 20 deletions src/test/kotlin/tracker/ParsingTest.kt
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
package tracker

import Data.*
import Data.OneThreeThree
import dpozinen.tracker.TrackerParser
import org.assertj.core.api.Assertions.assertThat
import org.assertj.core.data.Index
import org.assertj.core.data.Index.atIndex
import kotlin.test.Test
import java.nio.file.Files
import java.nio.file.Path
import kotlin.test.Test

class ParsingTest {

Expand All @@ -27,20 +25,4 @@ class ParsingTest {
assertThat(torrent).isEqualTo(OneThreeThree.PAGE_EXPECTED_TORRENT)
}

@Test
fun `should parse search page rarbg`() {
val body = Files.readString(Path.of(Rarbg.SEARCH_PAGE_PATH))
val torrents = TrackerParser.Rarbg().parseSearch(body)

assertThat(torrents.torrents).contains(Rarbg.SEARCH_EXPECTED_TORRENT, atIndex(0))
}

@Test
fun `should parse torrent page rarbg`() {
val body = Files.readString(Path.of(Rarbg.TORRENT_PAGE_PATH))
val torrent = TrackerParser.Rarbg().parseTorrentPage(body)

assertThat(torrent).isEqualTo(Rarbg.PAGE_EXPECTED_TORRENT)
}

}
Loading

0 comments on commit 9920896

Please sign in to comment.