Skip to content

Commit dd4ef9f

Browse files
committed
fix(Saint): Add support for turbo.cr domain
1 parent 6b5fad8 commit dd4ef9f

File tree

4 files changed

+17
-15
lines changed

4 files changed

+17
-15
lines changed

internal/extractors/saint/api.go

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,34 +2,31 @@ package saint
22

33
import (
44
"fmt"
5-
"strings"
65

7-
"github.com/PuerkitoBio/goquery"
86
"github.com/vegidio/go-sak/fetch"
97
"github.com/vegidio/umd/internal/utils"
108
)
119

12-
const BaseUrl = "https://saint2.su/"
10+
const BaseUrl = "https://turbo.cr/"
1311

1412
var f = fetch.New(nil, 0)
1513

1614
func getVideo(id string) (*Video, error) {
17-
url := fmt.Sprintf("%sembed/%s", BaseUrl, id)
18-
html, err := f.GetText(url)
19-
if err != nil {
20-
return nil, err
21-
}
15+
var response *Response
16+
url := fmt.Sprintf("%sapi/sign?v=%s", BaseUrl, id)
17+
resp, err := f.GetResult(url, map[string]string{
18+
"Referer": url,
19+
}, &response)
2220

23-
doc, err := goquery.NewDocumentFromReader(strings.NewReader(html))
2421
if err != nil {
2522
return nil, err
23+
} else if resp.IsError() {
24+
return nil, resp.Error().(error)
2625
}
2726

28-
videoUrl, _ := doc.Find("video > source").Attr("src")
29-
3027
return &Video{
3128
Id: id,
32-
Url: videoUrl,
29+
Url: response.Url,
3330
Published: utils.FakeTimestamp(id),
3431
}, nil
3532
}

internal/extractors/saint/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ type Saint struct {
2222

2323
func New(url string, metadata types.Metadata, external types.External) (types.Extractor, error) {
2424
switch {
25-
case utils.HasHost(url, "saint.to", "saint2.su", "saint2.cr"):
25+
case utils.HasHost(url, "saint.to", "saint2.su", "saint2.cr", "turbo.cr"):
2626
return &Saint{Metadata: metadata, url: url, external: external}, nil
2727
}
2828

internal/extractors/saint/types.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@ package saint
22

33
import "time"
44

5+
type Response struct {
6+
Filename string `json:"filename"`
7+
Url string `json:"url"`
8+
}
9+
510
type Video struct {
611
Id string
712
Url string

tests/saint_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ func TestSaint_QueryVideo1(t *testing.T) {
1515
err := resp.Error()
1616

1717
assert.NoError(t, err)
18+
assert.Contains(t, resp.Media[0].Url, "https://dl1.turbocdn.st/data/P9kEUyTHgJd.mp4")
1819
assert.Equal(t, NumberOfPosts, len(resp.Media))
19-
assert.Equal(t, "https://data.saint2.cr/data/P9kEUyTHgJd.mp4", resp.Media[0].Url)
2020
assert.Equal(t, "video", resp.Media[0].Metadata["source"])
2121
assert.Equal(t, "P9kEUyTHgJd", resp.Media[0].Metadata["name"])
2222
}
@@ -29,8 +29,8 @@ func TestSaint_QueryVideo2(t *testing.T) {
2929
err := resp.Error()
3030

3131
assert.NoError(t, err)
32+
assert.Contains(t, resp.Media[0].Url, "https://dl2.turbocdn.st/data/wgqk6fjXugA.mp4")
3233
assert.Equal(t, NumberOfPosts, len(resp.Media))
33-
assert.Equal(t, "https://data.saint2.cr/data/wgqk6fjXugA.mp4", resp.Media[0].Url)
3434
assert.Equal(t, "video", resp.Media[0].Metadata["source"])
3535
assert.Equal(t, "wgqk6fjXugA", resp.Media[0].Metadata["name"])
3636
}

0 commit comments

Comments
 (0)