|
|
|
@ -7,6 +7,7 @@ package main
|
|
|
|
|
import (
|
|
|
|
|
"bytes"
|
|
|
|
|
"encoding/xml"
|
|
|
|
|
"fmt"
|
|
|
|
|
"log"
|
|
|
|
|
"net/http"
|
|
|
|
|
"os"
|
|
|
|
@ -14,7 +15,8 @@ import (
|
|
|
|
|
"regexp"
|
|
|
|
|
"strconv"
|
|
|
|
|
|
|
|
|
|
"github.com/gabriel-vasile/mimetype" // MIT License
|
|
|
|
|
"github.com/beevik/etree" // BSD-2-clause
|
|
|
|
|
"github.com/gabriel-vasile/mimetype" // MIT License)
|
|
|
|
|
"github.com/mattn/go-xmpp" // BSD-3-Clause
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
@ -108,18 +110,20 @@ func httpUpload(client *xmpp.Client, jserver string, filePath string) string {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var request IQHttpUploadSlotRequest
|
|
|
|
|
request.Xmlns = nsHttpUpload
|
|
|
|
|
request.FileName = fileNameEscaped
|
|
|
|
|
request.FileSize = fileSize
|
|
|
|
|
request.FileType = mimeType
|
|
|
|
|
r, err := xml.Marshal(request)
|
|
|
|
|
request := etree.NewDocument()
|
|
|
|
|
requestReq := request.CreateElement("request")
|
|
|
|
|
requestReq.CreateAttr("xmlns", nsHttpUpload)
|
|
|
|
|
requestReq.CreateAttr("filename", fileNameEscaped)
|
|
|
|
|
requestReq.CreateAttr("size", fmt.Sprint(fileSize))
|
|
|
|
|
requestReq.CreateAttr("content-type", mimeType)
|
|
|
|
|
r, err := request.WriteToString()
|
|
|
|
|
println(r)
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.Fatal(err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Request http upload slot
|
|
|
|
|
uploadSlot, err := sendIQ(client, uploadComponent, "get", string(r))
|
|
|
|
|
uploadSlot, err := sendIQ(client, uploadComponent, "get", r)
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.Fatal(err)
|
|
|
|
|
}
|
|
|
|
|