Skip to content

Commit 37c5581

Browse files
committed
+ log.SetFlags(log.Ltime)
1 parent beb30b9 commit 37c5581

File tree

5 files changed

+95
-125
lines changed

5 files changed

+95
-125
lines changed

internal/paramount/paramount.go

Lines changed: 7 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,18 @@ import (
1212
)
1313

1414
func main() {
15-
var set flag_set
16-
err := set.New()
17-
if err != nil {
18-
panic(err)
19-
}
20-
// http.DefaultTransport = net.Transport(set.proxy)
15+
log.SetFlags(log.Ltime)
2116
http.DefaultTransport = &http.Transport{
2217
Proxy: func(req *http.Request) (*url.URL, error) {
2318
log.Println(req.Method, req.URL)
2419
return http.ProxyFromEnvironment(req)
2520
},
2621
}
22+
var set flag_set
23+
err := set.New()
24+
if err != nil {
25+
panic(err)
26+
}
2727
if set.paramount != "" {
2828
err = set.do_paramount()
2929
if err != nil {
@@ -45,16 +45,6 @@ func (f *flag_set) New() error {
4545
flag.StringVar(&f.cdm.ClientId, "C", f.cdm.ClientId, "client ID")
4646
flag.StringVar(&f.cdm.PrivateKey, "P", f.cdm.PrivateKey, "private key")
4747
flag.StringVar(&f.paramount, "p", "", "paramount ID")
48-
flag.IntVar(&net.Threads, "t", 2, "threads")
49-
flag.Func("x", "proxy", func(data string) error {
50-
var err error
51-
f.proxy, err = url.Parse(data)
52-
return err
53-
})
54-
f.filters = net.Filters{
55-
{BitrateStart: 3_000_000, BitrateEnd: 5_000_000},
56-
{BitrateStart: 100_000, BitrateEnd: 150_000, Role: "main"},
57-
}
5848
flag.Var(&f.filters, "f", net.FilterUsage)
5949
flag.Parse()
6050
return nil
@@ -64,7 +54,6 @@ type flag_set struct {
6454
cdm net.Cdm
6555
filters net.Filters
6656
paramount string
67-
proxy *url.URL
6857
}
6958

7059
func (f *flag_set) do_paramount() error {
@@ -82,9 +71,7 @@ func (f *flag_set) do_paramount() error {
8271
f.cdm.License = func(data []byte) ([]byte, error) {
8372
return session.License(data)
8473
}
85-
if f.proxy != nil {
86-
secret = paramount.ComCbsCa
87-
}
74+
// secret = paramount.ComCbsCa
8875
at, err = secret.At()
8976
if err != nil {
9077
return err
@@ -99,4 +86,3 @@ func (f *flag_set) do_paramount() error {
9986
}
10087
return f.filters.Filter(resp, &f.cdm)
10188
}
102-

internal/rtbf/rtbf.go

Lines changed: 38 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -11,50 +11,65 @@ import (
1111
"path/filepath"
1212
)
1313

14+
type flags struct {
15+
dash string
16+
cdm net.Cdm
17+
email string
18+
media string
19+
password string
20+
address string
21+
}
22+
1423
func (f *flags) New() error {
1524
var err error
1625
f.media, err = os.UserHomeDir()
1726
if err != nil {
1827
return err
1928
}
2029
f.media = filepath.ToSlash(f.media) + "/media"
21-
f.e.ClientId = f.media + "/client_id.bin"
22-
f.e.PrivateKey = f.media + "/private_key.pem"
23-
flag.StringVar(&f.e.ClientId, "c", f.e.ClientId, "client ID")
30+
f.cdm.ClientId = f.media + "/client_id.bin"
31+
f.cdm.PrivateKey = f.media + "/private_key.pem"
32+
flag.StringVar(&f.cdm.ClientId, "c", f.cdm.ClientId, "client ID")
2433
flag.StringVar(&f.email, "e", "", "email")
25-
flag.StringVar(&f.e.PrivateKey, "k", f.e.PrivateKey, "private key")
34+
flag.StringVar(&f.cdm.PrivateKey, "k", f.cdm.PrivateKey, "private key")
2635
flag.StringVar(&f.password, "p", "", "password")
2736
flag.StringVar(&f.dash, "i", "", "DASH ID")
2837
flag.StringVar(&f.address, "a", "", "address")
2938
flag.Parse()
3039
return nil
3140
}
3241

42+
func write_file(name string, data []byte) error {
43+
log.Println("WriteFile", name)
44+
return os.WriteFile(name, data, os.ModePerm)
45+
}
46+
47+
func (f *flags) do_password() error {
48+
data, err := rtbf.NewLogin(f.email, f.password)
49+
if err != nil {
50+
return err
51+
}
52+
return write_file(f.media+"/rtbf/Login", data)
53+
}
54+
3355
func main() {
3456
var set flags
3557
err := set.New()
3658
if err != nil {
3759
panic(err)
3860
}
39-
switch {
40-
case set.password != "":
41-
err := set.do_password()
42-
if err != nil {
43-
panic(err)
44-
}
45-
case set.address != "":
46-
err := set.do_address()
47-
if err != nil {
48-
panic(err)
49-
}
50-
case set.dash != "":
51-
err := set.do_dash()
52-
if err != nil {
53-
panic(err)
61+
if set.email != "" {
62+
if set.password != "" {
63+
err = set.do_password()
5464
}
55-
default:
65+
} else if set.address != "" {
66+
err = set.do_address()
67+
} else {
5668
flag.Usage()
5769
}
70+
if err != nil {
71+
panic(err)
72+
}
5873
}
5974

6075
func (f *flags) do_address() error {
@@ -90,10 +105,6 @@ func (f *flags) do_address() error {
90105
if err != nil {
91106
return err
92107
}
93-
err = write_file(f.media+"/rtbf/Entitlement", data)
94-
if err != nil {
95-
return err
96-
}
97108
format, ok := title.Dash()
98109
if !ok {
99110
return errors.New(".Dash()")
@@ -102,42 +113,8 @@ func (f *flags) do_address() error {
102113
if err != nil {
103114
return err
104115
}
105-
return net.Mpd(f.media+"/Mpd", resp)
106-
}
107-
108-
func (f *flags) do_dash() error {
109-
data, err := os.ReadFile(f.media + "/rtbf/Entitlement")
110-
if err != nil {
111-
return err
112-
}
113-
var title rtbf.Entitlement
114-
err = title.Unmarshal(data)
115-
if err != nil {
116-
return err
116+
f.cdm.License = func(data []byte) ([]byte, error) {
117+
return title.License(data)
117118
}
118-
f.e.Widevine = func(data []byte) ([]byte, error) {
119-
return title.Widevine(data)
120-
}
121-
return f.e.Download(f.media+"/Mpd", f.dash)
122-
}
123-
func write_file(name string, data []byte) error {
124-
log.Println("WriteFile", name)
125-
return os.WriteFile(name, data, os.ModePerm)
126-
}
127-
128-
type flags struct {
129-
dash string
130-
e net.License
131-
email string
132-
media string
133-
password string
134-
address string
135-
}
136-
137-
func (f *flags) do_password() error {
138-
data, err := rtbf.NewLogin(f.email, f.password)
139-
if err != nil {
140-
return err
141-
}
142-
return write_file(f.media+"/rtbf/Login", data)
119+
return f.cdm.Download(f.media+"/Mpd", f.dash)
143120
}

paramount/paramount_test.go

Lines changed: 40 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -6,51 +6,17 @@ import (
66
"testing"
77
)
88

9-
func TestPlayReady(t *testing.T) {
10-
token, err := ComCbsApp.At()
11-
if err != nil {
12-
t.Fatal(err)
13-
}
14-
sess, err := token.playReady("tOeI0WHG3icuPhCk5nkLXNmi5c4Jfx41")
15-
if err != nil {
16-
t.Fatal(err)
17-
}
18-
home, err := os.UserHomeDir()
19-
if err != nil {
20-
t.Fatal(err)
21-
}
22-
err = os.WriteFile(
23-
home + "/media/paramount/PlayReady",
24-
[]byte(sess.LsSession), os.ModePerm,
25-
)
26-
if err != nil {
27-
t.Fatal(err)
28-
}
29-
}
30-
31-
func TestLocation(t *testing.T) {
32-
fmt.Println(location_tests)
33-
}
34-
359
var location_tests = []struct {
3610
content_id string
3711
location []string
3812
url string
13+
period int
3914
}{
40-
{
41-
content_id: "tOeI0WHG3icuPhCk5nkLXNmi5c4Jfx41",
42-
url: "paramountplus.com/movies/video/tOeI0WHG3icuPhCk5nkLXNmi5c4Jfx41",
43-
location: []string{"USA"},
44-
},
45-
{
46-
content_id: "esJvFlqdrcS_kFHnpxSuYp449E7tTexD",
47-
location: []string{"USA"},
48-
url: "paramountplus.com/shows/video/esJvFlqdrcS_kFHnpxSuYp449E7tTexD",
49-
},
5015
{
5116
content_id: "rZ59lcp4i2fU4dAaZJ_iEgKqVg_ogrIf",
5217
location: []string{"USA"},
5318
url: "cbs.com/shows/video/rZ59lcp4i2fU4dAaZJ_iEgKqVg_ogrIf",
19+
period: 2,
5420
},
5521
{
5622
content_id: "3DcGhIoTusoQFB_YLGCtLvefraLxuZMJ",
@@ -69,4 +35,42 @@ var location_tests = []struct {
6935
url: "paramountplus.com/shows/video/WNujiS5PHkY5wN9doNY6MSo_7G8uBUcX",
7036
location: []string{"Australia"},
7137
},
38+
{
39+
content_id: "tOeI0WHG3icuPhCk5nkLXNmi5c4Jfx41",
40+
url: "paramountplus.com/movies/video/tOeI0WHG3icuPhCk5nkLXNmi5c4Jfx41",
41+
location: []string{"USA"},
42+
period: 1,
43+
},
44+
{
45+
content_id: "esJvFlqdrcS_kFHnpxSuYp449E7tTexD",
46+
location: []string{"USA"},
47+
url: "paramountplus.com/shows/video/esJvFlqdrcS_kFHnpxSuYp449E7tTexD",
48+
period: 1,
49+
},
50+
}
51+
52+
func TestPlayReady(t *testing.T) {
53+
token, err := ComCbsApp.At()
54+
if err != nil {
55+
t.Fatal(err)
56+
}
57+
sess, err := token.playReady("tOeI0WHG3icuPhCk5nkLXNmi5c4Jfx41")
58+
if err != nil {
59+
t.Fatal(err)
60+
}
61+
home, err := os.UserHomeDir()
62+
if err != nil {
63+
t.Fatal(err)
64+
}
65+
err = os.WriteFile(
66+
home + "/media/paramount/PlayReady",
67+
[]byte(sess.LsSession), os.ModePerm,
68+
)
69+
if err != nil {
70+
t.Fatal(err)
71+
}
72+
}
73+
74+
func TestLocation(t *testing.T) {
75+
fmt.Println(location_tests)
7276
}

rtbf/rtbf.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ func (g *GigyaLogin) Entitlement(c *Content) (Byte[Entitlement], error) {
180180
return data.String()
181181
}()
182182
req.Header.Set("x-forwarded-for", "91.90.123.17")
183-
req.Header.Set("authorization", "Bearer " + g.SessionToken)
183+
req.Header.Set("authorization", "Bearer "+g.SessionToken)
184184
resp, err := http.DefaultClient.Do(req)
185185
if err != nil {
186186
return nil, err

rtbf/rtbf_test.go

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,19 @@ import (
77
)
88

99
var tests = []struct {
10-
path string
11-
url string
10+
category string
11+
path string
12+
url string
1213
}{
1314
{
14-
path: "/emission/thelma-et-louise-29388",
15-
url: "auvio.rtbf.be/emission/thelma-et-louise-29388",
15+
category: "films",
16+
url: "auvio.rtbf.be/media/sibyl-avec-virginie-efira-et-adele-exarchopoulos-3355182",
17+
path: "/media/sibyl-avec-virginie-efira-et-adele-exarchopoulos-3355182",
1618
},
1719
{
18-
path: "/media/agatha-christie-pourquoi-pas-evans-agatha-christie-pourquoi-pas-evans-3280380",
19-
url: "auvio.rtbf.be/media/agatha-christie-pourquoi-pas-evans-agatha-christie-pourquoi-pas-evans-3280380",
20+
category: "series",
21+
path: "/media/the-durrells-une-famille-anglaise-a-corfou-the-durrells-une-famille-anglaise-a-corfou-s01-3351856",
22+
url: "auvio.rtbf.be/media/the-durrells-une-famille-anglaise-a-corfou-the-durrells-une-famille-anglaise-a-corfou-s01-3351856",
2023
},
2124
}
2225

0 commit comments

Comments
 (0)