Expose webseed.EscapePath

This commit is contained in:
Matt Joiner 2022-02-23 18:03:38 +11:00
parent 81d6d4ac86
commit 09df09596d
1 changed files with 8 additions and 2 deletions

View File

@ -10,10 +10,12 @@ import (
"github.com/anacrolix/torrent/metainfo"
)
func trailingPath(infoName string, pathComps []string) string {
// Escapes path name components suitable for appending to a webseed URL. This works for converting
// S3 object keys to URLs too.
func EscapePath(pathComps []string) string {
return path.Join(
func() (ret []string) {
for _, comp := range append([]string{infoName}, pathComps...) {
for _, comp := range pathComps {
ret = append(ret, url.QueryEscape(comp))
}
return
@ -21,6 +23,10 @@ func trailingPath(infoName string, pathComps []string) string {
)
}
func trailingPath(infoName string, fileComps []string) string {
return EscapePath(append([]string{infoName}, fileComps...))
}
// Creates a request per BEP 19.
func NewRequest(url_ string, fileIndex int, info *metainfo.Info, offset, length int64) (*http.Request, error) {
fileInfo := info.UpvertedFiles()[fileIndex]