Upload 31 files
Browse files- .env +5 -1
- .env_sample +1 -2
- .idea/.gitignore +8 -0
- .idea/jackett_addon_fiber.iml +9 -0
- .idea/modules.xml +8 -0
- .idea/vcs.xml +6 -0
- assets/nyaa.public.db +3 -1
- assets/servers.db +2 -3
- go.mod +15 -9
- go.sum +16 -32
- helpers.go +25 -22
- main.go +53 -134
- rd.go +3 -4
- redis.go +23 -0
- utils.go +27 -4
.env
CHANGED
@@ -1,3 +1,7 @@
|
|
1 |
MAX_RES=100
|
2 |
-
PUBLIC=
|
3 |
PORT=8001
|
|
|
|
|
|
|
|
|
|
1 |
MAX_RES=100
|
2 |
+
PUBLIC=1
|
3 |
PORT=8001
|
4 |
+
OVERRIDE_API_URL="/api/v2.0/indexers/nyaasi/results/torznab/api?cat=2000,5000,8000"
|
5 |
+
REDIS_URL="vast-leopard-52165.upstash.io"
|
6 |
+
REDIS_PASSWORD="AcvFAAIncDFhOTkwMjlkMTNlN2M0NmM1YWJjMDFkMzc5OTIyMTY2NXAxNTIxNjU"
|
7 |
+
REDIS_PORT='6379'
|
.env_sample
CHANGED
@@ -1,4 +1,3 @@
|
|
1 |
MAX_RES=100 # max results to receive from the addon
|
2 |
PUBLIC=0 # 0 means the tracker is public and 1 otherwise
|
3 |
-
OVERRIDE_API_URL="/api/v2.0/indexers/nyaasi/results/torznab/api?cat=2000,5000,8000"
|
4 |
-
PORT=3000
|
|
|
1 |
MAX_RES=100 # max results to receive from the addon
|
2 |
PUBLIC=0 # 0 means the tracker is public and 1 otherwise
|
3 |
+
OVERRIDE_API_URL="/api/v2.0/indexers/nyaasi/results/torznab/api?cat=2000,5000,8000"
|
|
.idea/.gitignore
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Default ignored files
|
2 |
+
/shelf/
|
3 |
+
/workspace.xml
|
4 |
+
# Editor-based HTTP Client requests
|
5 |
+
/httpRequests/
|
6 |
+
# Datasource local storage ignored files
|
7 |
+
/dataSources/
|
8 |
+
/dataSources.local.xml
|
.idea/jackett_addon_fiber.iml
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<module type="WEB_MODULE" version="4">
|
3 |
+
<component name="Go" enabled="true" />
|
4 |
+
<component name="NewModuleRootManager">
|
5 |
+
<content url="file://$MODULE_DIR$" />
|
6 |
+
<orderEntry type="inheritedJdk" />
|
7 |
+
<orderEntry type="sourceFolder" forTests="false" />
|
8 |
+
</component>
|
9 |
+
</module>
|
.idea/modules.xml
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<project version="4">
|
3 |
+
<component name="ProjectModuleManager">
|
4 |
+
<modules>
|
5 |
+
<module fileurl="file://$PROJECT_DIR$/.idea/jackett_addon_fiber.iml" filepath="$PROJECT_DIR$/.idea/jackett_addon_fiber.iml" />
|
6 |
+
</modules>
|
7 |
+
</component>
|
8 |
+
</project>
|
.idea/vcs.xml
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<project version="4">
|
3 |
+
<component name="VcsDirectoryMappings">
|
4 |
+
<mapping directory="" vcs="Git" />
|
5 |
+
</component>
|
6 |
+
</project>
|
assets/nyaa.public.db
CHANGED
@@ -1,2 +1,4 @@
|
|
1 |
http://107.174.205.19:9117|lob0qltgax72dudgufn7onjr7nx2rscw
|
2 |
-
http://172.91.224.183:9117|luuo4utx3hiaigdx2gpdm5pxa9k2kxw2
|
|
|
|
|
|
1 |
http://107.174.205.19:9117|lob0qltgax72dudgufn7onjr7nx2rscw
|
2 |
+
http://172.91.224.183:9117|luuo4utx3hiaigdx2gpdm5pxa9k2kxw2
|
3 |
+
http://209.141.51.175:9117|cmrenk8hgy1u738worvkmfiuif5fa14c
|
4 |
+
http://108.35.189.213:9117|w7i23m3vo1dc9xmco53ysxksd16stzg3
|
assets/servers.db
CHANGED
@@ -1,3 +1,2 @@
|
|
1 |
-
http://
|
2 |
-
http://
|
3 |
-
http://94.23.255.66:9117/jackett|k1uucgr72c7l6a7l2nc45v0nlrsvbuq3
|
|
|
1 |
+
http://209.141.51.175:9117|cmrenk8hgy1u738worvkmfiuif5fa14c
|
2 |
+
http://108.35.189.213:9117|w7i23m3vo1dc9xmco53ysxksd16stzg3
|
|
go.mod
CHANGED
@@ -1,11 +1,15 @@
|
|
1 |
module github.com/daniwalter001/jackett_fiber
|
2 |
|
3 |
-
// +heroku goVersion go1.21
|
4 |
-
go 1.22
|
5 |
|
6 |
-
require github.com/gofiber/fiber/v2 v2.52.
|
7 |
|
8 |
-
require
|
|
|
|
|
|
|
|
|
9 |
|
10 |
require (
|
11 |
github.com/RoaringBitmap/roaring v1.2.3 // indirect
|
@@ -24,7 +28,7 @@ require (
|
|
24 |
github.com/anacrolix/multiless v0.3.0 // indirect
|
25 |
github.com/anacrolix/stm v0.4.0 // indirect
|
26 |
github.com/anacrolix/sync v0.5.1 // indirect
|
27 |
-
github.com/anacrolix/torrent v1.55.0
|
28 |
github.com/anacrolix/upnp v0.1.3-0.20220123035249-922794e51c96 // indirect
|
29 |
github.com/anacrolix/utp v0.1.0 // indirect
|
30 |
github.com/andybalholm/brotli v1.0.5 // indirect
|
@@ -45,7 +49,7 @@ require (
|
|
45 |
github.com/gorilla/websocket v1.5.0 // indirect
|
46 |
github.com/huandu/xstrings v1.3.2 // indirect
|
47 |
github.com/j-muller/go-torrent-parser v0.0.0-20211014072822-db02b4099054
|
48 |
-
github.com/joho/godotenv v1.5.1
|
49 |
github.com/klauspost/compress v1.17.0 // indirect
|
50 |
github.com/mattn/go-colorable v0.1.13 // indirect
|
51 |
github.com/mattn/go-isatty v0.0.20 // indirect
|
@@ -70,6 +74,7 @@ require (
|
|
70 |
github.com/pion/udp v0.1.4 // indirect
|
71 |
github.com/pion/webrtc/v3 v3.1.42 // indirect
|
72 |
github.com/pkg/errors v0.9.1 // indirect
|
|
|
73 |
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
|
74 |
github.com/rivo/uniseg v0.2.0 // indirect
|
75 |
github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417 // indirect
|
@@ -80,11 +85,12 @@ require (
|
|
80 |
go.etcd.io/bbolt v1.3.6 // indirect
|
81 |
go.opentelemetry.io/otel v1.8.0 // indirect
|
82 |
go.opentelemetry.io/otel/trace v1.8.0 // indirect
|
83 |
-
golang.org/x/crypto v0.
|
84 |
golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df // indirect
|
85 |
-
golang.org/x/net v0.
|
86 |
golang.org/x/sync v0.3.0 // indirect
|
87 |
-
golang.org/x/sys v0.
|
|
|
88 |
golang.org/x/time v0.0.0-20220609170525-579cf78fd858 // indirect
|
89 |
modernc.org/libc v1.22.3 // indirect
|
90 |
modernc.org/mathutil v1.5.0 // indirect
|
|
|
1 |
module github.com/daniwalter001/jackett_fiber
|
2 |
|
3 |
+
// +heroku goVersion go1.21.0
|
4 |
+
go 1.22.0
|
5 |
|
6 |
+
require github.com/gofiber/fiber/v2 v2.52.4
|
7 |
|
8 |
+
require (
|
9 |
+
github.com/cespare/xxhash/v2 v2.2.0 // indirect
|
10 |
+
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
|
11 |
+
github.com/zeebo/bencode v1.0.0 // indirect
|
12 |
+
)
|
13 |
|
14 |
require (
|
15 |
github.com/RoaringBitmap/roaring v1.2.3 // indirect
|
|
|
28 |
github.com/anacrolix/multiless v0.3.0 // indirect
|
29 |
github.com/anacrolix/stm v0.4.0 // indirect
|
30 |
github.com/anacrolix/sync v0.5.1 // indirect
|
31 |
+
github.com/anacrolix/torrent v1.55.0 // indirect
|
32 |
github.com/anacrolix/upnp v0.1.3-0.20220123035249-922794e51c96 // indirect
|
33 |
github.com/anacrolix/utp v0.1.0 // indirect
|
34 |
github.com/andybalholm/brotli v1.0.5 // indirect
|
|
|
49 |
github.com/gorilla/websocket v1.5.0 // indirect
|
50 |
github.com/huandu/xstrings v1.3.2 // indirect
|
51 |
github.com/j-muller/go-torrent-parser v0.0.0-20211014072822-db02b4099054
|
52 |
+
github.com/joho/godotenv v1.5.1 // indirect
|
53 |
github.com/klauspost/compress v1.17.0 // indirect
|
54 |
github.com/mattn/go-colorable v0.1.13 // indirect
|
55 |
github.com/mattn/go-isatty v0.0.20 // indirect
|
|
|
74 |
github.com/pion/udp v0.1.4 // indirect
|
75 |
github.com/pion/webrtc/v3 v3.1.42 // indirect
|
76 |
github.com/pkg/errors v0.9.1 // indirect
|
77 |
+
github.com/redis/go-redis/v9 v9.5.1
|
78 |
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
|
79 |
github.com/rivo/uniseg v0.2.0 // indirect
|
80 |
github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417 // indirect
|
|
|
85 |
go.etcd.io/bbolt v1.3.6 // indirect
|
86 |
go.opentelemetry.io/otel v1.8.0 // indirect
|
87 |
go.opentelemetry.io/otel/trace v1.8.0 // indirect
|
88 |
+
golang.org/x/crypto v0.17.0 // indirect
|
89 |
golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df // indirect
|
90 |
+
golang.org/x/net v0.17.0 // indirect
|
91 |
golang.org/x/sync v0.3.0 // indirect
|
92 |
+
golang.org/x/sys v0.15.0 // indirect
|
93 |
+
golang.org/x/text v0.15.0
|
94 |
golang.org/x/time v0.0.0-20220609170525-579cf78fd858 // indirect
|
95 |
modernc.org/libc v1.22.3 // indirect
|
96 |
modernc.org/mathutil v1.5.0 // indirect
|
go.sum
CHANGED
@@ -2,10 +2,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT
|
|
2 |
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
3 |
crawshaw.io/iox v0.0.0-20181124134642-c51c3df30797/go.mod h1:sXBiorCo8c46JlQV3oXPKINnZ8mcqnye1EkVkqsectk=
|
4 |
crawshaw.io/sqlite v0.3.2/go.mod h1:igAO5JulrQ1DbdZdtVq48mnZUBAPOeFzer7VhDWNtW4=
|
5 |
-
filippo.io/edwards25519 v1.0.0-rc.1 h1:m0VOOB23frXZvAOK44usCgLWvtsxIoMCTBGJZlpmGfU=
|
6 |
-
filippo.io/edwards25519 v1.0.0-rc.1/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns=
|
7 |
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
8 |
-
github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE=
|
9 |
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
10 |
github.com/RoaringBitmap/roaring v0.4.7/go.mod h1:8khRDP4HmeXns4xIj9oGrKSz7XTQiJx2zgh7AcNke4w=
|
11 |
github.com/RoaringBitmap/roaring v0.4.17/go.mod h1:D3qVegWTmfCaX4Bl5CrBE9hfrSrrXIr8KVNvRsDi1NI=
|
@@ -16,12 +13,8 @@ github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWX
|
|
16 |
github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
|
17 |
github.com/ajwerner/btree v0.0.0-20211221152037-f427b3e689c0 h1:byYvvbfSo3+9efR4IeReh77gVs4PnNDR3AMOE9NJ7a0=
|
18 |
github.com/ajwerner/btree v0.0.0-20211221152037-f427b3e689c0/go.mod h1:q37NoqncT41qKc048STsifIt69LfUJ8SrWWcz/yam5k=
|
19 |
-
github.com/alecthomas/assert/v2 v2.0.0-alpha3 h1:pcHeMvQ3OMstAWgaeaXIAL8uzB9xMm2zlxt+/4ml8lk=
|
20 |
-
github.com/alecthomas/assert/v2 v2.0.0-alpha3/go.mod h1:+zD0lmDXTeQj7TgDgCt0ePWxb0hMC1G+PGTsTCv1B9o=
|
21 |
github.com/alecthomas/atomic v0.1.0-alpha2 h1:dqwXmax66gXvHhsOS4pGPZKqYOlTkapELkLb3MNdlH8=
|
22 |
github.com/alecthomas/atomic v0.1.0-alpha2/go.mod h1:zD6QGEyw49HIq19caJDc2NMXAy8rNi9ROrxtMXATfyI=
|
23 |
-
github.com/alecthomas/repr v0.0.0-20210801044451-80ca428c5142 h1:8Uy0oSf5co/NZXje7U1z8Mpep++QJOldL2hs/sBQf48=
|
24 |
-
github.com/alecthomas/repr v0.0.0-20210801044451-80ca428c5142/go.mod h1:2kn6fqh/zIyPLmm3ugklbEi5hg5wS435eygvNfaDQL8=
|
25 |
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
|
26 |
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
|
27 |
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
@@ -45,7 +38,6 @@ github.com/anacrolix/log v0.10.1-0.20220123034749-3920702c17f8/go.mod h1:GmnE2c0
|
|
45 |
github.com/anacrolix/log v0.13.1/go.mod h1:D4+CvN8SnruK6zIFS/xPoRJmtvtnxs+CSfDQ+BFxZ68=
|
46 |
github.com/anacrolix/log v0.14.6-0.20231202035202-ed7a02cad0b4 h1:CdVK9IoqoqklXQQ4+L2aew64xsz14KdOD+rnKdTQajg=
|
47 |
github.com/anacrolix/log v0.14.6-0.20231202035202-ed7a02cad0b4/go.mod h1:1OmJESOtxQGNMlUO5rcv96Vpp9mfMqXXbe2RdinFLdY=
|
48 |
-
github.com/anacrolix/lsan v0.0.0-20211126052245-807000409a62 h1:P04VG6Td13FHMgS5ZBcJX23NPC/fiC4cp9bXwYujdYM=
|
49 |
github.com/anacrolix/lsan v0.0.0-20211126052245-807000409a62/go.mod h1:66cFKPCO7Sl4vbFnAaSq7e4OXtdMhRSBagJGWgmpJbM=
|
50 |
github.com/anacrolix/missinggo v0.0.0-20180725070939-60ef2fbf63df/go.mod h1:kwGiTUTZ0+p4vAz3VbAI5a30t2YbvemcmspjKwrAz5s=
|
51 |
github.com/anacrolix/missinggo v1.1.0/go.mod h1:MBJu3Sk/k3ZfGYcS7z18gwfu72Ey/xopPFJJbTi5yIo=
|
@@ -102,11 +94,15 @@ github.com/bradfitz/iter v0.0.0-20191230175014-e8f45d346db8/go.mod h1:spo1JLcs67
|
|
102 |
github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
|
103 |
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
|
104 |
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
|
|
|
|
105 |
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
106 |
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
107 |
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
108 |
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
109 |
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
|
|
|
|
110 |
github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
|
111 |
github.com/dustin/go-humanize v0.0.0-20180421182945-02af3965c54e/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
|
112 |
github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=
|
@@ -117,8 +113,6 @@ github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFP
|
|
117 |
github.com/edsrzf/mmap-go v1.1.0 h1:6EUwBLQ/Mcr1EYLE4Tn1VdW1A4ckqCQWZBw8Hr0kjpQ=
|
118 |
github.com/edsrzf/mmap-go v1.1.0/go.mod h1:19H/e8pUPLicwkyNgOykDXkJ9F0MHE+Z52B8EIth78Q=
|
119 |
github.com/frankban/quicktest v1.9.0/go.mod h1:ui7WezCLWMWxVWr1GETZY3smRy0G4KWq9vcPtJmFl7Y=
|
120 |
-
github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
|
121 |
-
github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
|
122 |
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
123 |
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
|
124 |
github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE=
|
@@ -142,8 +136,8 @@ github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
|
142 |
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
143 |
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
144 |
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
|
145 |
-
github.com/gofiber/fiber/v2 v2.52.
|
146 |
-
github.com/gofiber/fiber/v2 v2.52.
|
147 |
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
148 |
github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
149 |
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
@@ -172,8 +166,6 @@ github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw
|
|
172 |
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
173 |
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
174 |
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
175 |
-
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
|
176 |
-
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
177 |
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
178 |
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
179 |
github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU=
|
@@ -187,8 +179,6 @@ github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2z
|
|
187 |
github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=
|
188 |
github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
189 |
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
190 |
-
github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM=
|
191 |
-
github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg=
|
192 |
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
|
193 |
github.com/huandu/xstrings v1.0.0/go.mod h1:4qWG/gcEcfX4z/mBDHJ++3ReCw9ibxbsNJbcucJdbSo=
|
194 |
github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4=
|
@@ -213,11 +203,8 @@ github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFB
|
|
213 |
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
214 |
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
215 |
github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk=
|
216 |
-
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
217 |
-
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
218 |
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
219 |
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
220 |
-
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
221 |
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
222 |
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
|
223 |
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
|
@@ -297,7 +284,6 @@ github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE
|
|
297 |
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
298 |
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
299 |
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
300 |
-
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
301 |
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
302 |
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
|
303 |
github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs=
|
@@ -316,6 +302,8 @@ github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsT
|
|
316 |
github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
|
317 |
github.com/prometheus/procfs v0.0.11/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
|
318 |
github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
|
|
|
|
|
319 |
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
|
320 |
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=
|
321 |
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
|
@@ -323,11 +311,8 @@ github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
|
|
323 |
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
324 |
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
|
325 |
github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE=
|
326 |
-
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
|
327 |
-
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
|
328 |
github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417 h1:Lt9DzQALzHoDwMBGJ6v8ObDPR0dzr2a6sXTB1Fq7IHs=
|
329 |
github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417/go.mod h1:qe5TWALJ8/a1Lqznoc5BDHpYX/8HU60Hm2AwRmqzxqA=
|
330 |
-
github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46 h1:GHRpF1pTW19a8tTFrMLUcfWwyC0pnifVo2ClaLq+hP8=
|
331 |
github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46/go.mod h1:uAQ5PCi+MFsC7HjREoAz1BU+Mq60+05gifQSsHSDG/8=
|
332 |
github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw=
|
333 |
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
|
@@ -336,7 +321,6 @@ github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1
|
|
336 |
github.com/smartystreets/assertions v0.0.0-20190215210624-980c5ac6f3ac/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
|
337 |
github.com/smartystreets/goconvey v0.0.0-20181108003508-044398e4856c/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s=
|
338 |
github.com/smartystreets/goconvey v0.0.0-20190306220146-200a235640ff/go.mod h1:KSQcGKpxUMHk3nbYzs/tIBAM2iDooCn0BmttHOJEbLs=
|
339 |
-
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72 h1:qLC7fQah7D6K1B0ujays3HV9gkFtllcxhzImRR7ArPQ=
|
340 |
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
341 |
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
342 |
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
@@ -351,7 +335,6 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
|
|
351 |
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
352 |
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
353 |
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
354 |
-
github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
|
355 |
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
356 |
github.com/tidwall/btree v1.6.0 h1:LDZfKfQIBHGHWSwckhXI0RPSXzlo+KYdjK7FWSqOzzg=
|
357 |
github.com/tidwall/btree v1.6.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY=
|
@@ -388,8 +371,8 @@ golang.org/x/crypto v0.0.0-20220131195533-30dcbda58838/go.mod h1:IxCIyHEi3zRg3s0
|
|
388 |
golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
389 |
golang.org/x/crypto v0.0.0-20220516162934-403b01795ae8/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
390 |
golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU=
|
391 |
-
golang.org/x/crypto v0.
|
392 |
-
golang.org/x/crypto v0.
|
393 |
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
394 |
golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df h1:UA2aFVmmsIlefxMk29Dp2juaUSth8Pyn3Tq5Y5mJGME=
|
395 |
golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc=
|
@@ -426,8 +409,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug
|
|
426 |
golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
|
427 |
golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws=
|
428 |
golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
429 |
-
golang.org/x/net v0.
|
430 |
-
golang.org/x/net v0.
|
431 |
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
432 |
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
433 |
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
@@ -472,8 +455,8 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
|
472 |
golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
473 |
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
474 |
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
475 |
-
golang.org/x/sys v0.
|
476 |
-
golang.org/x/sys v0.
|
477 |
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
478 |
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
479 |
golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
@@ -487,6 +470,8 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
|
487 |
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
488 |
golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
489 |
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
|
|
|
|
490 |
golang.org/x/time v0.0.0-20220609170525-579cf78fd858 h1:Dpdu/EMxGMFgq0CeYMh4fazTD2vtlZRYE7wyynxJb9U=
|
491 |
golang.org/x/time v0.0.0-20220609170525-579cf78fd858/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
492 |
golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
@@ -533,7 +518,6 @@ gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|
533 |
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
534 |
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
535 |
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
536 |
-
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
537 |
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
538 |
honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
539 |
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
|
|
2 |
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
3 |
crawshaw.io/iox v0.0.0-20181124134642-c51c3df30797/go.mod h1:sXBiorCo8c46JlQV3oXPKINnZ8mcqnye1EkVkqsectk=
|
4 |
crawshaw.io/sqlite v0.3.2/go.mod h1:igAO5JulrQ1DbdZdtVq48mnZUBAPOeFzer7VhDWNtW4=
|
|
|
|
|
5 |
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
|
|
6 |
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
7 |
github.com/RoaringBitmap/roaring v0.4.7/go.mod h1:8khRDP4HmeXns4xIj9oGrKSz7XTQiJx2zgh7AcNke4w=
|
8 |
github.com/RoaringBitmap/roaring v0.4.17/go.mod h1:D3qVegWTmfCaX4Bl5CrBE9hfrSrrXIr8KVNvRsDi1NI=
|
|
|
13 |
github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
|
14 |
github.com/ajwerner/btree v0.0.0-20211221152037-f427b3e689c0 h1:byYvvbfSo3+9efR4IeReh77gVs4PnNDR3AMOE9NJ7a0=
|
15 |
github.com/ajwerner/btree v0.0.0-20211221152037-f427b3e689c0/go.mod h1:q37NoqncT41qKc048STsifIt69LfUJ8SrWWcz/yam5k=
|
|
|
|
|
16 |
github.com/alecthomas/atomic v0.1.0-alpha2 h1:dqwXmax66gXvHhsOS4pGPZKqYOlTkapELkLb3MNdlH8=
|
17 |
github.com/alecthomas/atomic v0.1.0-alpha2/go.mod h1:zD6QGEyw49HIq19caJDc2NMXAy8rNi9ROrxtMXATfyI=
|
|
|
|
|
18 |
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
|
19 |
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
|
20 |
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
|
|
38 |
github.com/anacrolix/log v0.13.1/go.mod h1:D4+CvN8SnruK6zIFS/xPoRJmtvtnxs+CSfDQ+BFxZ68=
|
39 |
github.com/anacrolix/log v0.14.6-0.20231202035202-ed7a02cad0b4 h1:CdVK9IoqoqklXQQ4+L2aew64xsz14KdOD+rnKdTQajg=
|
40 |
github.com/anacrolix/log v0.14.6-0.20231202035202-ed7a02cad0b4/go.mod h1:1OmJESOtxQGNMlUO5rcv96Vpp9mfMqXXbe2RdinFLdY=
|
|
|
41 |
github.com/anacrolix/lsan v0.0.0-20211126052245-807000409a62/go.mod h1:66cFKPCO7Sl4vbFnAaSq7e4OXtdMhRSBagJGWgmpJbM=
|
42 |
github.com/anacrolix/missinggo v0.0.0-20180725070939-60ef2fbf63df/go.mod h1:kwGiTUTZ0+p4vAz3VbAI5a30t2YbvemcmspjKwrAz5s=
|
43 |
github.com/anacrolix/missinggo v1.1.0/go.mod h1:MBJu3Sk/k3ZfGYcS7z18gwfu72Ey/xopPFJJbTi5yIo=
|
|
|
94 |
github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
|
95 |
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
|
96 |
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
97 |
+
github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
|
98 |
+
github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
99 |
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
100 |
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
101 |
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
102 |
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
103 |
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
104 |
+
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
|
105 |
+
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
|
106 |
github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
|
107 |
github.com/dustin/go-humanize v0.0.0-20180421182945-02af3965c54e/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
|
108 |
github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=
|
|
|
113 |
github.com/edsrzf/mmap-go v1.1.0 h1:6EUwBLQ/Mcr1EYLE4Tn1VdW1A4ckqCQWZBw8Hr0kjpQ=
|
114 |
github.com/edsrzf/mmap-go v1.1.0/go.mod h1:19H/e8pUPLicwkyNgOykDXkJ9F0MHE+Z52B8EIth78Q=
|
115 |
github.com/frankban/quicktest v1.9.0/go.mod h1:ui7WezCLWMWxVWr1GETZY3smRy0G4KWq9vcPtJmFl7Y=
|
|
|
|
|
116 |
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
117 |
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
|
118 |
github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE=
|
|
|
136 |
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
137 |
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
138 |
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
|
139 |
+
github.com/gofiber/fiber/v2 v2.52.4 h1:P+T+4iK7VaqUsq2PALYEfBBo6bJZ4q3FP8cZ84EggTM=
|
140 |
+
github.com/gofiber/fiber/v2 v2.52.4/go.mod h1:KEOE+cXMhXG0zHc9d8+E38hoX+ZN7bhOtgeF2oT6jrQ=
|
141 |
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
142 |
github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
143 |
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
|
|
166 |
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
167 |
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
168 |
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
|
|
|
|
169 |
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
170 |
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
171 |
github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU=
|
|
|
179 |
github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=
|
180 |
github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
|
181 |
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
|
|
|
|
182 |
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
|
183 |
github.com/huandu/xstrings v1.0.0/go.mod h1:4qWG/gcEcfX4z/mBDHJ++3ReCw9ibxbsNJbcucJdbSo=
|
184 |
github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4=
|
|
|
203 |
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
204 |
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
205 |
github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk=
|
|
|
|
|
206 |
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
207 |
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
|
|
208 |
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
209 |
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
|
210 |
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
|
|
|
284 |
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
285 |
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
286 |
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
|
|
287 |
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
288 |
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
|
289 |
github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs=
|
|
|
302 |
github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
|
303 |
github.com/prometheus/procfs v0.0.11/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
|
304 |
github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
|
305 |
+
github.com/redis/go-redis/v9 v9.5.1 h1:H1X4D3yHPaYrkL5X06Wh6xNVM/pX0Ft4RV0vMGvLBh8=
|
306 |
+
github.com/redis/go-redis/v9 v9.5.1/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M=
|
307 |
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
|
308 |
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=
|
309 |
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
|
|
|
311 |
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
312 |
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
|
313 |
github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE=
|
|
|
|
|
314 |
github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417 h1:Lt9DzQALzHoDwMBGJ6v8ObDPR0dzr2a6sXTB1Fq7IHs=
|
315 |
github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417/go.mod h1:qe5TWALJ8/a1Lqznoc5BDHpYX/8HU60Hm2AwRmqzxqA=
|
|
|
316 |
github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46/go.mod h1:uAQ5PCi+MFsC7HjREoAz1BU+Mq60+05gifQSsHSDG/8=
|
317 |
github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw=
|
318 |
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
|
|
|
321 |
github.com/smartystreets/assertions v0.0.0-20190215210624-980c5ac6f3ac/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
|
322 |
github.com/smartystreets/goconvey v0.0.0-20181108003508-044398e4856c/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s=
|
323 |
github.com/smartystreets/goconvey v0.0.0-20190306220146-200a235640ff/go.mod h1:KSQcGKpxUMHk3nbYzs/tIBAM2iDooCn0BmttHOJEbLs=
|
|
|
324 |
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
325 |
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
326 |
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
|
|
335 |
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
336 |
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
337 |
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
|
|
338 |
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
339 |
github.com/tidwall/btree v1.6.0 h1:LDZfKfQIBHGHWSwckhXI0RPSXzlo+KYdjK7FWSqOzzg=
|
340 |
github.com/tidwall/btree v1.6.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY=
|
|
|
371 |
golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
372 |
golang.org/x/crypto v0.0.0-20220516162934-403b01795ae8/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
373 |
golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU=
|
374 |
+
golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k=
|
375 |
+
golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
|
376 |
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
377 |
golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df h1:UA2aFVmmsIlefxMk29Dp2juaUSth8Pyn3Tq5Y5mJGME=
|
378 |
golang.org/x/exp v0.0.0-20230626212559-97b1e661b5df/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc=
|
|
|
409 |
golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
|
410 |
golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws=
|
411 |
golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
412 |
+
golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM=
|
413 |
+
golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
|
414 |
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
415 |
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
416 |
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
|
|
455 |
golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
456 |
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
457 |
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
458 |
+
golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc=
|
459 |
+
golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
460 |
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
461 |
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
462 |
golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
|
|
470 |
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
471 |
golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
472 |
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
473 |
+
golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk=
|
474 |
+
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
|
475 |
golang.org/x/time v0.0.0-20220609170525-579cf78fd858 h1:Dpdu/EMxGMFgq0CeYMh4fazTD2vtlZRYE7wyynxJb9U=
|
476 |
golang.org/x/time v0.0.0-20220609170525-579cf78fd858/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
477 |
golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
|
|
518 |
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
519 |
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
520 |
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
|
|
521 |
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
522 |
honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
523 |
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
helpers.go
CHANGED
@@ -7,8 +7,12 @@ import (
|
|
7 |
"os"
|
8 |
"slices"
|
9 |
"strings"
|
|
|
10 |
|
11 |
"github.com/daniwalter001/jackett_fiber/types"
|
|
|
|
|
|
|
12 |
)
|
13 |
|
14 |
func PrettyPrint(i interface{}) string {
|
@@ -128,18 +132,6 @@ func getQuality(name string) string {
|
|
128 |
return ""
|
129 |
}
|
130 |
|
131 |
-
// function getSize(size) {
|
132 |
-
// var gb = 1024 * 1024 * 1024;
|
133 |
-
// var mb = 1024 * 1024;
|
134 |
-
|
135 |
-
// return (
|
136 |
-
// "💾 " +
|
137 |
-
// (size / gb > 1
|
138 |
-
// ? `${(size / gb).toFixed(2)} GB`
|
139 |
-
// : `${(size / mb).toFixed(2)} MB`)
|
140 |
-
// );
|
141 |
-
// }
|
142 |
-
|
143 |
func getSize(size int) string {
|
144 |
gb := 1024 * 1024 * 1024
|
145 |
mb := 1024 * 1024
|
@@ -147,15 +139,14 @@ func getSize(size int) string {
|
|
147 |
|
148 |
size_ := "💾 "
|
149 |
|
150 |
-
if size/gb
|
151 |
-
size_ = size_ + fmt.Sprintf("%.2f GB",
|
152 |
-
} else if size/mb
|
153 |
-
size_ = size_ + fmt.Sprintf("%.2f MB",
|
154 |
} else {
|
155 |
-
size_ = size_ + fmt.Sprintf("%.2f KB",
|
156 |
}
|
157 |
return size_
|
158 |
-
|
159 |
}
|
160 |
|
161 |
func removeDuplicates(strList []types.ItemsParsed) []types.ItemsParsed {
|
@@ -195,10 +186,13 @@ func getServers() []types.Server {
|
|
195 |
var servers []types.Server
|
196 |
|
197 |
for _, line := range serversArr {
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
|
|
|
|
|
|
202 |
}
|
203 |
|
204 |
return servers
|
@@ -215,3 +209,12 @@ func createIfNotExist(path string) bool {
|
|
215 |
fmt.Printf("%s already exists\n", path)
|
216 |
return true
|
217 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
"os"
|
8 |
"slices"
|
9 |
"strings"
|
10 |
+
"unicode"
|
11 |
|
12 |
"github.com/daniwalter001/jackett_fiber/types"
|
13 |
+
"golang.org/x/text/runes"
|
14 |
+
"golang.org/x/text/transform"
|
15 |
+
"golang.org/x/text/unicode/norm"
|
16 |
)
|
17 |
|
18 |
func PrettyPrint(i interface{}) string {
|
|
|
132 |
return ""
|
133 |
}
|
134 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
135 |
func getSize(size int) string {
|
136 |
gb := 1024 * 1024 * 1024
|
137 |
mb := 1024 * 1024
|
|
|
139 |
|
140 |
size_ := "💾 "
|
141 |
|
142 |
+
if size/gb >= 1 {
|
143 |
+
size_ = size_ + fmt.Sprintf("%.2f GB", float64(size)/float64(gb))
|
144 |
+
} else if size/mb >= 1 {
|
145 |
+
size_ = size_ + fmt.Sprintf("%.2f MB", float64(size)/float64(mb))
|
146 |
} else {
|
147 |
+
size_ = size_ + fmt.Sprintf("%.2f KB", float64(size)/float64(kb))
|
148 |
}
|
149 |
return size_
|
|
|
150 |
}
|
151 |
|
152 |
func removeDuplicates(strList []types.ItemsParsed) []types.ItemsParsed {
|
|
|
186 |
var servers []types.Server
|
187 |
|
188 |
for _, line := range serversArr {
|
189 |
+
//fmt.Println(line)
|
190 |
+
if len(line)!=0 {
|
191 |
+
servers = append(servers, types.Server{
|
192 |
+
Host: strings.Split(line, "|")[0],
|
193 |
+
ApiKey: strings.Split(line, "|")[1],
|
194 |
+
})
|
195 |
+
}
|
196 |
}
|
197 |
|
198 |
return servers
|
|
|
209 |
fmt.Printf("%s already exists\n", path)
|
210 |
return true
|
211 |
}
|
212 |
+
|
213 |
+
func removeAccents(s string) string {
|
214 |
+
t := transform.Chain(norm.NFD, runes.Remove(runes.In(unicode.Mn)), norm.NFC)
|
215 |
+
output, _, e := transform.String(t, s)
|
216 |
+
if e != nil {
|
217 |
+
panic(e)
|
218 |
+
}
|
219 |
+
return output
|
220 |
+
}
|
main.go
CHANGED
@@ -1,18 +1,17 @@
|
|
1 |
package main
|
2 |
|
3 |
import (
|
|
|
4 |
"encoding/json"
|
5 |
"fmt"
|
6 |
-
"log"
|
7 |
"os"
|
8 |
-
"slices"
|
9 |
"sort"
|
10 |
"strconv"
|
11 |
"strings"
|
12 |
"sync"
|
|
|
13 |
|
14 |
"github.com/daniwalter001/jackett_fiber/types"
|
15 |
-
"github.com/daniwalter001/jackett_fiber/types/rd"
|
16 |
"github.com/gofiber/fiber/v2"
|
17 |
"github.com/joho/godotenv"
|
18 |
)
|
@@ -20,38 +19,27 @@ import (
|
|
20 |
func main() {
|
21 |
enc := json.NewEncoder(os.Stdout)
|
22 |
enc.SetEscapeHTML(false)
|
|
|
23 |
|
24 |
errDot := godotenv.Load("./.env")
|
25 |
if errDot != nil {
|
26 |
-
|
27 |
}
|
28 |
|
29 |
fmt.Printf("Creating... %t\n", createIfNotExist("./temp"))
|
30 |
fmt.Printf("Creating... %t\n", createIfNotExist("./persistence"))
|
31 |
|
32 |
-
//
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
cacheFile, _ := os.ReadFile("persistence/cache.json")
|
43 |
-
if len(cacheFile) > 0 {
|
44 |
-
json.Unmarshal(cacheFile, &mapCache)
|
45 |
}
|
46 |
|
47 |
-
// fmt.Println(PrettyPrint(mapCache))
|
48 |
-
|
49 |
-
// listd, _ := os.ReadDir(".")
|
50 |
-
|
51 |
-
// for _, v := range listd {
|
52 |
-
// fmt.Println(v.Name())
|
53 |
-
// }
|
54 |
-
|
55 |
app := fiber.New()
|
56 |
|
57 |
app.Get("/", func(c *fiber.Ctx) error {
|
@@ -59,7 +47,7 @@ func main() {
|
|
59 |
})
|
60 |
|
61 |
app.Get("/manifest.json", func(c *fiber.Ctx) error {
|
62 |
-
a := types.StreamManifest{ID: "strem.go.nyaa", Description: "Random Golang version on stremio Addon", Name: "GoDon Nyaa", Resources: []string{"stream"}, Version: "1.0.1", Types: []string{"movie", "series", "anime"}, Logo: "https://upload.wikimedia.org/wikipedia/commons/2/23/Golang.png", IdPrefixes: []string{"tt", "kitsu"}, Catalogs: []string{}}
|
63 |
|
64 |
u, err := json.Marshal(a)
|
65 |
if err != nil {
|
@@ -89,10 +77,18 @@ func main() {
|
|
89 |
id = strings.ReplaceAll(id, "%3A", ":")
|
90 |
|
91 |
//Reading the cache
|
92 |
-
streams,
|
93 |
-
if
|
94 |
fmt.Printf("Sending that %s shit from cache\n", id)
|
95 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
}
|
97 |
|
98 |
type_ := c.Params("type")
|
@@ -118,15 +114,6 @@ func main() {
|
|
118 |
}
|
119 |
}
|
120 |
|
121 |
-
// fmt.Println("----------------------------")
|
122 |
-
// fmt.Println(tt)
|
123 |
-
// fmt.Println(strconv.Itoa(s))
|
124 |
-
// fmt.Println(strconv.Itoa(e))
|
125 |
-
// fmt.Println(abs)
|
126 |
-
// fmt.Println(strconv.Itoa(abs_season))
|
127 |
-
// fmt.Println(strconv.Itoa(abs_episode))
|
128 |
-
// fmt.Println("----------------------------")
|
129 |
-
|
130 |
name, year := getMeta(tt, type_)
|
131 |
|
132 |
var results []types.ItemsParsed
|
@@ -141,7 +128,7 @@ func main() {
|
|
141 |
l = l + 2
|
142 |
}
|
143 |
} else if type_ == "movie" {
|
144 |
-
l =
|
145 |
}
|
146 |
fmt.Printf("Requests: %d\n", l)
|
147 |
|
@@ -150,6 +137,11 @@ func main() {
|
|
150 |
//=========================================================
|
151 |
|
152 |
if type_ == "movie" {
|
|
|
|
|
|
|
|
|
|
|
153 |
go func() {
|
154 |
defer wg.Done()
|
155 |
results = append(results, fetchTorrent(fmt.Sprintf("%s %s", name, year), type_)...)
|
@@ -158,19 +150,20 @@ func main() {
|
|
158 |
|
159 |
go func() {
|
160 |
defer wg.Done()
|
161 |
-
results = append(results, fetchTorrent(fmt.Sprintf("%s S%02d", name, s), type_)...)
|
162 |
}()
|
163 |
go func() {
|
164 |
defer wg.Done()
|
165 |
-
results = append(results, fetchTorrent(fmt.Sprintf("%s
|
166 |
}()
|
167 |
go func() {
|
168 |
defer wg.Done()
|
169 |
-
results = append(results, fetchTorrent(fmt.Sprintf("%s
|
170 |
}()
|
|
|
171 |
go func() {
|
172 |
defer wg.Done()
|
173 |
-
results = append(results, fetchTorrent(fmt.Sprintf("%s
|
174 |
}()
|
175 |
|
176 |
go func() {
|
@@ -181,23 +174,23 @@ func main() {
|
|
181 |
if s == 1 {
|
182 |
go func() {
|
183 |
defer wg.Done()
|
184 |
-
results = append(results, fetchTorrent(fmt.Sprintf("%s E%02d", name, e), type_)...)
|
185 |
}()
|
186 |
go func() {
|
187 |
defer wg.Done()
|
188 |
-
results = append(results, fetchTorrent(fmt.Sprintf("%s %02d", name, e), type_)...)
|
189 |
}()
|
190 |
}
|
191 |
|
192 |
if abs == "true" {
|
193 |
go func() {
|
194 |
defer wg.Done()
|
195 |
-
results = append(results, fetchTorrent(fmt.Sprintf("%s E%03d", name, abs_episode), type_)...)
|
196 |
}()
|
197 |
|
198 |
go func() {
|
199 |
defer wg.Done()
|
200 |
-
results = append(results, fetchTorrent(fmt.Sprintf("%s %03d", name, abs_episode), type_)...)
|
201 |
}()
|
202 |
}
|
203 |
}
|
@@ -300,8 +293,6 @@ func main() {
|
|
300 |
wg = sync.WaitGroup{}
|
301 |
wg.Add(len(parsedTorrentFiles))
|
302 |
|
303 |
-
nbreAdded := 0
|
304 |
-
|
305 |
for _, el := range parsedTorrentFiles {
|
306 |
go func(item types.ItemsParsed) {
|
307 |
defer wg.Done()
|
@@ -311,88 +302,12 @@ func main() {
|
|
311 |
continue
|
312 |
}
|
313 |
|
314 |
-
// ========================== RD =============================
|
315 |
-
fmt.Printf("
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
var folderId string
|
321 |
-
var details []rd.UnrestrictLinkResponse
|
322 |
-
var data rd.AddTorrentResponse
|
323 |
-
|
324 |
-
available, err := checkTorrentFileinRD(infoHash)
|
325 |
-
|
326 |
-
if err.Error != "" {
|
327 |
-
continue
|
328 |
-
}
|
329 |
-
|
330 |
-
v, availableCheck := available[infoHash]
|
331 |
-
|
332 |
-
if !availableCheck {
|
333 |
-
continue
|
334 |
-
}
|
335 |
-
|
336 |
-
v_ := v["rd"]
|
337 |
-
availableCheck = len(v_) > 0
|
338 |
-
|
339 |
-
if availableCheck || nbreAdded < 3 {
|
340 |
-
data, err = addTorrentFileinRD2(fmt.Sprintf("magnet:?xt=urn:btih:%s", infoHash))
|
341 |
-
if availableCheck {
|
342 |
-
fmt.Println("Cached")
|
343 |
-
} else {
|
344 |
-
fmt.Println("Added")
|
345 |
-
nbreAdded = nbreAdded + 1
|
346 |
-
}
|
347 |
-
}
|
348 |
-
|
349 |
-
folderId = data.ID
|
350 |
-
selected, err := selectFilefromRD(folderId, "all")
|
351 |
-
if folderId != "" && selected {
|
352 |
-
torrentDetails, err_ := getTorrentInfofromRD(folderId)
|
353 |
-
//fmt.Println((PrettyPrint(torrentDetails)))
|
354 |
-
if err.Error != "" {
|
355 |
-
fmt.Println("Error")
|
356 |
-
fmt.Println(err_.Error)
|
357 |
-
}
|
358 |
-
var files []rd.Files
|
359 |
-
if len(torrentDetails.Files) > 0 {
|
360 |
-
files = filter[rd.Files](torrentDetails.Files, func(f rd.Files) bool {
|
361 |
-
return f.Selected == 1
|
362 |
-
})
|
363 |
-
links := torrentDetails.Links
|
364 |
-
selectedIndex := 0
|
365 |
-
|
366 |
-
if len(files) > 1 {
|
367 |
-
selectedIndex = slices.IndexFunc[[]rd.Files](files, func(t rd.Files) bool {
|
368 |
-
return strings.Contains(strings.ToLower(t.Path), strings.ToLower(ell.Name))
|
369 |
-
})
|
370 |
-
}
|
371 |
-
if selectedIndex == -1 || len(links) <= selectedIndex {
|
372 |
-
selectedIndex = 0
|
373 |
-
}
|
374 |
-
if len(links) > 0 {
|
375 |
-
unrestrictLink, errun := unrestrictLinkfromRD(links[selectedIndex])
|
376 |
-
details = append(details, unrestrictLink)
|
377 |
-
// fmt.Println(PrettyPrint(errun.Error))
|
378 |
-
// fmt.Println(PrettyPrint(details[len(details)-1]))
|
379 |
-
if errun.Error != "" {
|
380 |
-
continue
|
381 |
-
}
|
382 |
-
}
|
383 |
-
}
|
384 |
-
|
385 |
-
}
|
386 |
-
|
387 |
-
if len(details) > 0 {
|
388 |
-
ttttt.Streams = append(ttttt.Streams, types.TorrentStreams{Title: fmt.Sprintf("%s\n%s\n%s | %s", ell.TorrentName, ell.Name, getQuality(ell.Name), getSize(ell.Length)), Name: fmt.Sprintf("RD.%s\n S:%s, P:%s", item.Tracker, item.Seeders, item.Peers), Type: type_, BehaviorHints: types.BehaviorHints{BingeGroup: fmt.Sprintf("Jackett|%s", ell.InfoHash), NotWebReady: true}, URL: details[0].Download})
|
389 |
-
|
390 |
-
// ========================== END RD =============================
|
391 |
-
} else if os.Getenv("PUBLIC") == "1" {
|
392 |
-
|
393 |
-
announceList := append(ell.AnnounceList, fmt.Sprintf("dht:%s", ell.InfoHash))
|
394 |
-
ttttt.Streams = append(ttttt.Streams, types.TorrentStreams{Title: fmt.Sprintf("%s\n%s\n%s | %s", ell.TorrentName, ell.Name, getQuality(ell.Name), getSize(int(ell.Length))), Name: fmt.Sprintf("%s\n S:%s, P:%s", item.Tracker, item.Seeders, item.Peers), Type: type_, InfoHash: ell.InfoHash, Sources: announceList, BehaviorHints: types.BehaviorHints{BingeGroup: fmt.Sprintf("Jackett|%s", ell.InfoHash), NotWebReady: true}, FileIdx: parsedSuitableTorrentFilesIndex[ell.Name] - 1})
|
395 |
-
}
|
396 |
|
397 |
}
|
398 |
}(el)
|
@@ -401,9 +316,13 @@ func main() {
|
|
401 |
wg.Wait()
|
402 |
|
403 |
if len(ttttt.Streams) > 0 {
|
404 |
-
|
405 |
-
|
406 |
-
|
|
|
|
|
|
|
|
|
407 |
}
|
408 |
|
409 |
fmt.Println("Sending that shit")
|
|
|
1 |
package main
|
2 |
|
3 |
import (
|
4 |
+
"context"
|
5 |
"encoding/json"
|
6 |
"fmt"
|
|
|
7 |
"os"
|
|
|
8 |
"sort"
|
9 |
"strconv"
|
10 |
"strings"
|
11 |
"sync"
|
12 |
+
"time"
|
13 |
|
14 |
"github.com/daniwalter001/jackett_fiber/types"
|
|
|
15 |
"github.com/gofiber/fiber/v2"
|
16 |
"github.com/joho/godotenv"
|
17 |
)
|
|
|
19 |
func main() {
|
20 |
enc := json.NewEncoder(os.Stdout)
|
21 |
enc.SetEscapeHTML(false)
|
22 |
+
ctx := context.Background()
|
23 |
|
24 |
errDot := godotenv.Load("./.env")
|
25 |
if errDot != nil {
|
26 |
+
fmt.Println("Error loading .env file")
|
27 |
}
|
28 |
|
29 |
fmt.Printf("Creating... %t\n", createIfNotExist("./temp"))
|
30 |
fmt.Printf("Creating... %t\n", createIfNotExist("./persistence"))
|
31 |
|
32 |
+
//create redis client instance
|
33 |
+
rdClient := RedisClient()
|
34 |
+
status, errS := rdClient.Ping(ctx).Result()
|
35 |
+
if errS != nil {
|
36 |
+
fmt.Print("Error: ")
|
37 |
+
fmt.Println(errS.Error())
|
38 |
+
} else {
|
39 |
+
fmt.Print("OK redis: ")
|
40 |
+
fmt.Println(status)
|
|
|
|
|
|
|
|
|
41 |
}
|
42 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
app := fiber.New()
|
44 |
|
45 |
app.Get("/", func(c *fiber.Ctx) error {
|
|
|
47 |
})
|
48 |
|
49 |
app.Get("/manifest.json", func(c *fiber.Ctx) error {
|
50 |
+
a := types.StreamManifest{ID: "strem.go.nyaa", Description: "Random Golang version on stremio Addon", Name: "GoDon Nyaa 2", Resources: []string{"stream"}, Version: "1.0.1", Types: []string{"movie", "series", "anime"}, Logo: "https://upload.wikimedia.org/wikipedia/commons/2/23/Golang.png", IdPrefixes: []string{"tt", "kitsu"}, Catalogs: []string{}}
|
51 |
|
52 |
u, err := json.Marshal(a)
|
53 |
if err != nil {
|
|
|
77 |
id = strings.ReplaceAll(id, "%3A", ":")
|
78 |
|
79 |
//Reading the cache
|
80 |
+
streams, err := rdClient.JSONGet(ctx, id, "$").Result()
|
81 |
+
if err == nil && streams != "" {
|
82 |
fmt.Printf("Sending that %s shit from cache\n", id)
|
83 |
+
var cachedStreams []types.StreamMeta
|
84 |
+
errJson := json.Unmarshal([]byte(streams), &cachedStreams)
|
85 |
+
if errJson != nil {
|
86 |
+
fmt.Println(errJson)
|
87 |
+
return c.Status(fiber.StatusNotFound).SendString("lol")
|
88 |
+
} else if len(cachedStreams) > 0 {
|
89 |
+
fmt.Printf("Sent %s from cache \n", id)
|
90 |
+
return c.Status(fiber.StatusOK).JSON(cachedStreams[len(cachedStreams)-1])
|
91 |
+
}
|
92 |
}
|
93 |
|
94 |
type_ := c.Params("type")
|
|
|
114 |
}
|
115 |
}
|
116 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
117 |
name, year := getMeta(tt, type_)
|
118 |
|
119 |
var results []types.ItemsParsed
|
|
|
128 |
l = l + 2
|
129 |
}
|
130 |
} else if type_ == "movie" {
|
131 |
+
l = 2
|
132 |
}
|
133 |
fmt.Printf("Requests: %d\n", l)
|
134 |
|
|
|
137 |
//=========================================================
|
138 |
|
139 |
if type_ == "movie" {
|
140 |
+
go func() {
|
141 |
+
defer wg.Done()
|
142 |
+
results = append(results, fetchTorrent(fmt.Sprintf("%s %s", simplifiedName(name), year), type_)...)
|
143 |
+
}()
|
144 |
+
|
145 |
go func() {
|
146 |
defer wg.Done()
|
147 |
results = append(results, fetchTorrent(fmt.Sprintf("%s %s", name, year), type_)...)
|
|
|
150 |
|
151 |
go func() {
|
152 |
defer wg.Done()
|
153 |
+
results = append(results, fetchTorrent(fmt.Sprintf("%s S%02d", simplifiedName(name), s), type_)...)
|
154 |
}()
|
155 |
go func() {
|
156 |
defer wg.Done()
|
157 |
+
results = append(results, fetchTorrent(fmt.Sprintf("%s batch", simplifiedName(name)), type_)...)
|
158 |
}()
|
159 |
go func() {
|
160 |
defer wg.Done()
|
161 |
+
results = append(results, fetchTorrent(fmt.Sprintf("%s complet", simplifiedName(name)), type_)...)
|
162 |
}()
|
163 |
+
|
164 |
go func() {
|
165 |
defer wg.Done()
|
166 |
+
results = append(results, fetchTorrent(fmt.Sprintf("%s S%02dE%02d", simplifiedName(name), s, e), type_)...)
|
167 |
}()
|
168 |
|
169 |
go func() {
|
|
|
174 |
if s == 1 {
|
175 |
go func() {
|
176 |
defer wg.Done()
|
177 |
+
results = append(results, fetchTorrent(fmt.Sprintf("%s E%02d", simplifiedName(name), e), type_)...)
|
178 |
}()
|
179 |
go func() {
|
180 |
defer wg.Done()
|
181 |
+
results = append(results, fetchTorrent(fmt.Sprintf("%s %02d", simplifiedName(name), e), type_)...)
|
182 |
}()
|
183 |
}
|
184 |
|
185 |
if abs == "true" {
|
186 |
go func() {
|
187 |
defer wg.Done()
|
188 |
+
results = append(results, fetchTorrent(fmt.Sprintf("%s E%03d", simplifiedName(name), abs_episode), type_)...)
|
189 |
}()
|
190 |
|
191 |
go func() {
|
192 |
defer wg.Done()
|
193 |
+
results = append(results, fetchTorrent(fmt.Sprintf("%s %03d", simplifiedName(name), abs_episode), type_)...)
|
194 |
}()
|
195 |
}
|
196 |
}
|
|
|
293 |
wg = sync.WaitGroup{}
|
294 |
wg.Add(len(parsedTorrentFiles))
|
295 |
|
|
|
|
|
296 |
for _, el := range parsedTorrentFiles {
|
297 |
go func(item types.ItemsParsed) {
|
298 |
defer wg.Done()
|
|
|
302 |
continue
|
303 |
}
|
304 |
|
305 |
+
// ==========================No RD =============================
|
306 |
+
fmt.Printf("Bypassing RD...\n")
|
307 |
+
|
308 |
+
announceList := append(ell.AnnounceList, fmt.Sprintf("dht:%s", ell.InfoHash))
|
309 |
+
ttttt.Streams = append(ttttt.Streams, types.TorrentStreams{Title: fmt.Sprintf("%s\n%s\n%s | %s", ell.TorrentName, ell.Name, getQuality(ell.Name), getSize(int(ell.Length))), Name: fmt.Sprintf("%s\n S:%s, P:%s", item.Tracker, item.Seeders, item.Peers), Type: type_, InfoHash: ell.InfoHash, Sources: announceList, BehaviorHints: types.BehaviorHints{BingeGroup: fmt.Sprintf("Jackett|%s", ell.InfoHash), NotWebReady: true}, FileIdx: parsedSuitableTorrentFilesIndex[ell.Name] - 1})
|
310 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
311 |
|
312 |
}
|
313 |
}(el)
|
|
|
316 |
wg.Wait()
|
317 |
|
318 |
if len(ttttt.Streams) > 0 {
|
319 |
+
jsonBytes, errttt := json.Marshal(ttttt)
|
320 |
+
if errttt == nil {
|
321 |
+
_, errrrr := rdClient.JSONSet(ctx, id, "$", jsonBytes).Result()
|
322 |
+
if errrrr == nil {
|
323 |
+
rdClient.Expire(ctx, id, time.Hour*24*7).Result()
|
324 |
+
}
|
325 |
+
}
|
326 |
}
|
327 |
|
328 |
fmt.Println("Sending that shit")
|
rd.go
CHANGED
@@ -13,10 +13,9 @@ import (
|
|
13 |
"github.com/gofiber/fiber/v2"
|
14 |
)
|
15 |
|
16 |
-
var keys = []string{
|
17 |
-
"
|
18 |
-
"
|
19 |
-
"W665ORDQWJBT7OUT2UARA3SZYFARHVNIBBQ6ZBBEBCBBFHW5GECQ"}
|
20 |
|
21 |
var rdApikey = keys[rand.Intn(len(keys))]
|
22 |
|
|
|
13 |
"github.com/gofiber/fiber/v2"
|
14 |
)
|
15 |
|
16 |
+
var keys = []string{
|
17 |
+
"TUCIGWCX5VJCPB5YPAD64NB25TZFFGAWGDVHELHZDLNUJEGX45BA",
|
18 |
+
"T5Y37CBYWLSOR7DUGM4TWHCEI5FDJ63H2JIBMRGTZHOURSDWI3ZQ"}
|
|
|
19 |
|
20 |
var rdApikey = keys[rand.Intn(len(keys))]
|
21 |
|
redis.go
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
package main
|
2 |
+
|
3 |
+
import (
|
4 |
+
"fmt"
|
5 |
+
"os"
|
6 |
+
|
7 |
+
"github.com/joho/godotenv"
|
8 |
+
"github.com/redis/go-redis/v9"
|
9 |
+
)
|
10 |
+
|
11 |
+
func RedisClient() redis.Client {
|
12 |
+
|
13 |
+
errDot := godotenv.Load("./.env")
|
14 |
+
if errDot != nil {
|
15 |
+
fmt.Println("Error loading .env file")
|
16 |
+
}
|
17 |
+
|
18 |
+
opt, _ := redis.ParseURL(fmt.Sprintf("rediss://default:%s@%s:%s/0?max_retries=2", os.Getenv("REDIS_PASSWORD"), os.Getenv("REDIS_URL"), os.Getenv("REDIS_PORT")))
|
19 |
+
|
20 |
+
rdb := redis.NewClient(opt)
|
21 |
+
|
22 |
+
return *rdb
|
23 |
+
}
|
utils.go
CHANGED
@@ -7,6 +7,7 @@ import (
|
|
7 |
"fmt"
|
8 |
"math/rand"
|
9 |
"os"
|
|
|
10 |
"strings"
|
11 |
"time"
|
12 |
|
@@ -138,7 +139,8 @@ func fetchTorrent(query string, type_ string) []types.ItemsParsed {
|
|
138 |
if type_ == "movie" {
|
139 |
category = "2000"
|
140 |
}
|
141 |
-
|
|
|
142 |
|
143 |
override := os.Getenv("OVERRIDE_API_URL")
|
144 |
api := fmt.Sprintf("%s/api/v2.0/indexers/yggtorrent/results/torznab/api?cache=false&cat=%s&apikey=%s&q=%s", host, category, apiKey, query)
|
@@ -153,8 +155,9 @@ func fetchTorrent(query string, type_ string) []types.ItemsParsed {
|
|
153 |
|
154 |
status, data, err := request.Bytes()
|
155 |
if err != nil {
|
156 |
-
|
157 |
}
|
|
|
158 |
fmt.Printf("Status code: %d\n", status)
|
159 |
if status >= 400 {
|
160 |
return make([]types.ItemsParsed, 0)
|
@@ -220,6 +223,7 @@ func readTorrent(item types.ItemsParsed) types.ItemsParsed {
|
|
220 |
torrentFile, _ := gotorrentparser.Parse(fileReader)
|
221 |
|
222 |
for _, file := range torrentFile.Files {
|
|
|
223 |
|
224 |
files = append(files, types.TorrentFile{
|
225 |
Name: file.Path[len(file.Path)-1],
|
@@ -239,8 +243,6 @@ func readTorrent(item types.ItemsParsed) types.ItemsParsed {
|
|
239 |
|
240 |
func readTorrentFromMagnet(item types.ItemsParsed) types.ItemsParsed {
|
241 |
|
242 |
-
// fmt.Println(item.Link)
|
243 |
-
|
244 |
c := TorrentClient()
|
245 |
|
246 |
t, addErr := c.AddMagnet(item.MagnetURI)
|
@@ -286,3 +288,24 @@ func readTorrentFromMagnet(item types.ItemsParsed) types.ItemsParsed {
|
|
286 |
}
|
287 |
|
288 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
"fmt"
|
8 |
"math/rand"
|
9 |
"os"
|
10 |
+
"regexp"
|
11 |
"strings"
|
12 |
"time"
|
13 |
|
|
|
139 |
if type_ == "movie" {
|
140 |
category = "2000"
|
141 |
}
|
142 |
+
fmt.Printf("Query: %s\n", query)
|
143 |
+
query = removeAccents(strings.ReplaceAll(query, " ", "+"))
|
144 |
|
145 |
override := os.Getenv("OVERRIDE_API_URL")
|
146 |
api := fmt.Sprintf("%s/api/v2.0/indexers/yggtorrent/results/torznab/api?cache=false&cat=%s&apikey=%s&q=%s", host, category, apiKey, query)
|
|
|
155 |
|
156 |
status, data, err := request.Bytes()
|
157 |
if err != nil {
|
158 |
+
return make([]types.ItemsParsed, 0)
|
159 |
}
|
160 |
+
|
161 |
fmt.Printf("Status code: %d\n", status)
|
162 |
if status >= 400 {
|
163 |
return make([]types.ItemsParsed, 0)
|
|
|
223 |
torrentFile, _ := gotorrentparser.Parse(fileReader)
|
224 |
|
225 |
for _, file := range torrentFile.Files {
|
226 |
+
// fmt.Println(file.Path[len(file.Path)-1])
|
227 |
|
228 |
files = append(files, types.TorrentFile{
|
229 |
Name: file.Path[len(file.Path)-1],
|
|
|
243 |
|
244 |
func readTorrentFromMagnet(item types.ItemsParsed) types.ItemsParsed {
|
245 |
|
|
|
|
|
246 |
c := TorrentClient()
|
247 |
|
248 |
t, addErr := c.AddMagnet(item.MagnetURI)
|
|
|
288 |
}
|
289 |
|
290 |
}
|
291 |
+
|
292 |
+
func simplifiedName(name string) string {
|
293 |
+
|
294 |
+
r, _ := regexp.Compile(`\s{2,}`)
|
295 |
+
|
296 |
+
resRegex := r.FindAllString(name, -1)
|
297 |
+
|
298 |
+
for _, word := range resRegex {
|
299 |
+
name = strings.ReplaceAll(name, word, " ")
|
300 |
+
}
|
301 |
+
|
302 |
+
if strings.Contains(name, ":") {
|
303 |
+
name = strings.Split(name, ":")[0]
|
304 |
+
}
|
305 |
+
|
306 |
+
if strings.Contains(name, "-") {
|
307 |
+
name = strings.Split(name, "-")[0]
|
308 |
+
}
|
309 |
+
|
310 |
+
return strings.Trim(name, " ")
|
311 |
+
}
|