Skip to content

Commit

Permalink
main: Escape the file name in the extractor
Browse files Browse the repository at this point in the history
  • Loading branch information
iawia002 committed Mar 1, 2018
1 parent 90c5981 commit 97f8af9
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 10 deletions.
12 changes: 6 additions & 6 deletions downloader/downloader.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ func (data VideoData) printInfo() {
func (data VideoData) urlSave(
urlData URLData, refer, fileName string, bar *pb.ProgressBar,
) {
filePath := utils.FilePath(fileName, data.Ext)
filePath := utils.FilePath(fileName, data.Ext, false)
fileSize := utils.FileSize(filePath)
if fileSize == urlData.Size {
fmt.Printf("%s: file already exists, skipping\n", filePath)
Expand Down Expand Up @@ -95,16 +95,16 @@ func (data VideoData) Download(refer string) {
bar.Start()
if len(data.URLs) == 1 {
// only one fragment
data.urlSave(data.URLs[0], refer, utils.FileName(data.Title), bar)
data.urlSave(data.URLs[0], refer, data.Title, bar)
bar.Finish()
} else {
var wg sync.WaitGroup
// multiple fragments
parts := []string{}
for index, url := range data.URLs {
wg.Add(1)
partFileName := fmt.Sprintf("%s[%d]", utils.FileName(data.Title), index)
partFilePath := utils.FilePath(partFileName, data.Ext)
partFileName := fmt.Sprintf("%s[%d]", data.Title, index)
partFilePath := utils.FilePath(partFileName, data.Ext, false)
parts = append(parts, partFilePath)
go func(url URLData, refer, fileName string, bar *pb.ProgressBar) {
defer wg.Done()
Expand All @@ -116,13 +116,13 @@ func (data VideoData) Download(refer string) {

// merge
// write ffmpeg input file list
mergeFile := utils.FileName(data.Title) + "-merge.txt"
mergeFile := data.Title + "-merge.txt"
file, _ := os.Create(mergeFile)
for _, part := range parts {
file.Write([]byte(fmt.Sprintf("file '%s'\n", part)))
}

filePath := utils.FilePath(data.Title, data.Ext)
filePath := utils.FilePath(data.Title, data.Ext, false)
fmt.Printf("Merging video parts into %s\n", filePath)
cmd := exec.Command(
"ffmpeg", "-y", "-f", "concat", "-safe", "-1",
Expand Down
2 changes: 1 addition & 1 deletion extractors/bilibili.go
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ func Bilibili(url string) downloader.VideoData {
}
data := downloader.VideoData{
Site: "鍝斿摡鍝斿摡 bilibili.com",
Title: title,
Title: utils.FileName(title),
URLs: urls,
Ext: format,
Size: size,
Expand Down
2 changes: 1 addition & 1 deletion extractors/douyin.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ func Douyin(url string) downloader.VideoData {
}
data := downloader.VideoData{
Site: "鎶栭煶 douyin.com",
Title: dataDict.Desc,
Title: utils.FileName(dataDict.Desc),
Ext: "mp4",
URLs: []downloader.URLData{urlData},
Size: size,
Expand Down
7 changes: 5 additions & 2 deletions utils/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,10 @@ func FileName(name string) string {
}

// FilePath gen valid filename
func FilePath(name, ext string) string {
func FilePath(name, ext string, escape bool) string {
fileName := fmt.Sprintf("%s.%s", name, ext)
return FileName(fileName)
if escape {
fileName = FileName(fileName)
}
return fileName
}

0 comments on commit 97f8af9

Please sign in to comment.