parent
a4b11142b2
commit
e7a73e0859
2 changed files with 15 additions and 3 deletions
|
@ -93,9 +93,21 @@ func stringsJoin(strs []string) string {
|
|||
return strings.Join(strs, ", ")
|
||||
}
|
||||
|
||||
func bookFileName(book database.Book) string {
|
||||
var authorsStr string
|
||||
switch len(book.Authors) {
|
||||
case 0:
|
||||
authorsStr = ""
|
||||
case 1:
|
||||
authorsStr = book.Authors[0] + " - "
|
||||
default:
|
||||
authorsStr = book.Authors[0] + ", ... - "
|
||||
}
|
||||
return url.PathEscape(fmt.Sprintf("%s%s.epub", authorsStr, book.Title))
|
||||
}
|
||||
|
||||
func downloadUrl(book database.Book) string {
|
||||
fileName := url.PathEscape(fmt.Sprintf("%s - %s.epub", strings.Join(book.Authors, ", "), book.Title))
|
||||
return fmt.Sprintf("/download/%s/%s", book.ID, fileName)
|
||||
return fmt.Sprintf("/download/%s/%s", book.ID, bookFileName(book))
|
||||
}
|
||||
|
||||
func size2mb(size int) float32 {
|
||||
|
|
|
@ -113,7 +113,7 @@ func downloadHandler(h handler) {
|
|||
defer f.Close()
|
||||
|
||||
addCacheControlHeader(h.w, false)
|
||||
http.ServeContent(h.w, h.r, fmt.Sprintf("%s - %s.epub", strings.Join(book.Authors, ", "), book.Title), book.UploadDate, f)
|
||||
http.ServeContent(h.w, h.r, bookFileName(book), book.UploadDate, f)
|
||||
}
|
||||
|
||||
type indexData struct {
|
||||
|
|
Reference in a new issue