Skip to content

Commit f741e6b

Browse files
committed
Refactor code and calculate time.
1 parent a965e0e commit f741e6b

File tree

1 file changed

+41
-14
lines changed

1 file changed

+41
-14
lines changed

cmd/main.go

Lines changed: 41 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"path/filepath"
1313
"runtime"
1414
"strings"
15+
"time"
1516

1617
"github.com/pgaskin/kepubify/v4/kepub"
1718
)
@@ -22,6 +23,11 @@ const UPLOAD_PATH_KOBO = "/mnt/onboard/kobofileserver"
2223
var uploadPath string
2324
var refreshScript string
2425

26+
type RequestData struct {
27+
converted bool
28+
fileName string
29+
}
30+
2531
func responseString(msg string) string {
2632
return fmt.Sprintf("%s", msg)
2733
}
@@ -76,18 +82,16 @@ func notifyKoboRefresh() error {
7682
return nil
7783
}
7884

79-
func uploadFile(w http.ResponseWriter, r *http.Request) {
85+
func saveFile(r *http.Request) (RequestData, error) {
86+
var data RequestData
87+
8088
if r.Method != "POST" {
81-
s := responseString("Error: please use HTTP POST method to upload file")
82-
fmt.Fprintf(w, s)
83-
return
89+
return data, fmt.Errorf("please use HTTP POST method to upload file")
8490
}
8591

8692
err := r.ParseMultipartForm(32 << 20)
8793
if err != nil {
88-
s := responseString(fmt.Sprintf("Error: (%v)", err))
89-
fmt.Fprintf(w, s)
90-
return
94+
return data, err
9195
}
9296

9397
convertedStr := r.FormValue("upload-converted")
@@ -98,40 +102,63 @@ func uploadFile(w http.ResponseWriter, r *http.Request) {
98102

99103
file, handler, err := r.FormFile("upload-file")
100104
if err != nil {
101-
s := responseString(fmt.Sprintf("Error: (%v)", err))
102-
fmt.Fprintf(w, s)
103-
return
105+
return data, err
104106
}
105107
defer file.Close()
106108

107109
fmt.Printf("uploadFile (%s) (%s) \n", handler.Filename, convertedStr)
108110

109111
fileName := path.Join(uploadPath, handler.Filename)
110112
f, err := os.OpenFile(fileName, os.O_WRONLY|os.O_CREATE, 0666)
113+
if err != nil {
114+
return data, err
115+
}
116+
117+
io.Copy(f, file)
118+
f.Close()
119+
120+
data.converted = converted
121+
data.fileName = fileName
122+
123+
return data, nil
124+
}
125+
126+
func uploadFile(w http.ResponseWriter, r *http.Request) {
127+
t1 := time.Now()
128+
129+
requestData, err := saveFile(r)
111130
if err != nil {
112131
s := responseString(fmt.Sprintf("Error: (%v)", err))
113132
fmt.Fprintf(w, s)
114133
return
115134
}
116135

117-
io.Copy(f, file)
118-
f.Close()
136+
t2 := time.Now()
119137

120-
finalFile, err := convertEPUB(converted, fileName)
138+
finalFile, err := convertEPUB(requestData.converted, requestData.fileName)
121139
if err != nil {
122140
s := responseString(fmt.Sprintf("Error: (%v)", err))
123141
fmt.Fprintf(w, s)
124142
return
125143
}
126144

145+
t3 := time.Now()
146+
127147
err = notifyKoboRefresh()
128148
if err != nil {
129149
s := responseString(fmt.Sprintf("Error: (%v)", err))
130150
fmt.Fprintf(w, s)
131151
return
132152
}
133153

134-
s := responseString(fmt.Sprintf("Uploading (%s) is successful.", finalFile))
154+
s := responseString(
155+
fmt.Sprintf(
156+
"Uploading (%s) is successful, saveFile(%v), convertFile(%v)",
157+
finalFile,
158+
t2.Sub(t1),
159+
t3.Sub(t2),
160+
),
161+
)
135162
fmt.Fprintf(w, s)
136163
}
137164

0 commit comments

Comments
 (0)