summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeuin <[email protected]>2023-07-01 22:06:01 +0800
committerKeuin <[email protected]>2023-07-01 22:06:01 +0800
commit8f07f6f4d7e91a9e4b7164a39759907fac5fb8a1 (patch)
tree512d18cd6b2c1b442c6c03945bd1328d2866bcbc
parent5aba05d7237c2250e647a717f8abef658f30a9e9 (diff)
Refactor: encapsulate custom url manipulation function into object method.
-rw-r--r--common/myurl/urlparse.go (renamed from common/urlparse.go)14
-rw-r--r--common/myurl/urlparse_test.go (renamed from common/urlparse_test.go)8
-rw-r--r--recording/runner.go3
3 files changed, 16 insertions, 9 deletions
diff --git a/common/urlparse.go b/common/myurl/urlparse.go
index dc72cee..69695d1 100644
--- a/common/urlparse.go
+++ b/common/myurl/urlparse.go
@@ -1,4 +1,4 @@
-package common
+package myurl
import (
"errors"
@@ -6,10 +6,16 @@ import (
"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
}
diff --git a/common/urlparse_test.go b/common/myurl/urlparse_test.go
index 9ed4449..b7df7bd 100644
--- a/common/urlparse_test.go
+++ b/common/myurl/urlparse_test.go
@@ -1,4 +1,4 @@
-package common
+package myurl
import "testing"
@@ -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)
}
diff --git a/recording/runner.go b/recording/runner.go
index 8f892fa..fe7aa21 100644
--- a/recording/runner.go
+++ b/recording/runner.go
@@ -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"
@@ -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