Skip to content

Commit

Permalink
Refactor: encapsulate custom url manipulation function into object me…
Browse files Browse the repository at this point in the history
…thod.
  • Loading branch information
keuin committed Jul 1, 2023
1 parent 5aba05d commit 8f07f6f
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 9 deletions.
14 changes: 10 additions & 4 deletions common/urlparse.go → common/myurl/urlparse.go
Original file line number Diff line number Diff line change
@@ -1,15 +1,21 @@
package common
package myurl

import (
"errors"
"net/url"
"strings"
)

// GetFileExtensionFromUrl
type Url string

func (o Url) Url() string {
return string(o)
}

// FileExtension returns file extension of file name from this url.
// copied from https://elisegev.medium.com/get-a-file-extension-from-a-url-in-golang-5061d4a298a
func GetFileExtensionFromUrl(rawUrl string) (string, error) {
u, err := url.Parse(rawUrl)
func (o Url) FileExtension() (string, error) {
u, err := url.Parse(o.Url())
if err != nil {
return "", err
}
Expand Down
8 changes: 4 additions & 4 deletions common/urlparse_test.go → common/myurl/urlparse_test.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package common
package myurl

import "testing"

Expand All @@ -12,15 +12,15 @@ func TestGetFileExtensionFromUrl(t *testing.T) {
{Expected: "flv"},
}
var err error
tests[0].Actual, err = GetFileExtensionFromUrl("http://www.example.com/index.html")
tests[0].Actual, err = Url("http://www.example.com/index.html").FileExtension()
if err != nil {
t.Fatalf("GetFileExtensionFromUrl: %v", err)
}
tests[1].Actual, err = GetFileExtensionFromUrl("https://www.example.com/index.htm")
tests[1].Actual, err = Url("https://www.example.com/index.htm").FileExtension()
if err != nil {
t.Fatalf("GetFileExtensionFromUrl: %v", err)
}
tests[2].Actual, err = GetFileExtensionFromUrl("https://www.example.com/video.flv?a=1&b=2flv")
tests[2].Actual, err = Url("https://www.example.com/video.flv?a=1&b=2flv").FileExtension()
if err != nil {
t.Fatalf("GetFileExtensionFromUrl: %v", err)
}
Expand Down
3 changes: 2 additions & 1 deletion recording/runner.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import (
"fmt"
"github.com/keuin/slbr/bilibili"
"github.com/keuin/slbr/common"
"github.com/keuin/slbr/common/myurl"
"github.com/keuin/slbr/logging"
"github.com/samber/mo"
"io"
Expand Down Expand Up @@ -277,7 +278,7 @@ func record(
var extName string

// the real extension name (without renaming)
originalExtName := mo.TupleToResult(common.GetFileExtensionFromUrl(streamSource.URL)).OrElse("flv")
originalExtName := mo.TupleToResult(myurl.Url(streamSource.URL).FileExtension()).OrElse("flv")

if task.Download.UseSpecialExtNameBeforeFinishing {
extName = kSpecialExtName
Expand Down

0 comments on commit 8f07f6f

Please sign in to comment.