diff --git a/src/cocoatweet/api/media/upload.cc b/src/cocoatweet/api/media/upload.cc index 5a8694c..1410419 100644 --- a/src/cocoatweet/api/media/upload.cc +++ b/src/cocoatweet/api/media/upload.cc @@ -4,6 +4,11 @@ #include namespace CocoaTweet::API::Medias { +const std::map Upload::mimeType = {{".jpg", "image/jpeg"}, + {".jpeg", "image/jpeg"}, + {".png", "image/png"}, + {".gif", "image/gif"}, + {".mp4", "video/mp4"}}; Upload::Upload() { url_ = "https://upload.twitter.com/1.1/media/upload.json"; } @@ -29,7 +34,8 @@ CocoaTweet::API::Model::MediaStore Upload::process( { contentType_ = "application/x-www-form-urlencoded"; bodyParam_.insert_or_assign("command", "INIT"); - bodyParam_.insert_or_assign("media_type", "image/jpeg"); + bodyParam_.insert_or_assign( + "media_type", mimeType.at(std::filesystem::path(media_).extension().string())); HttpPost::process(_oauth, [&media](const unsigned int _responseCode, const std::string& _rsv) { diff --git a/src/cocoatweet/api/media/upload.h b/src/cocoatweet/api/media/upload.h index 770b1b2..1d28f9c 100644 --- a/src/cocoatweet/api/media/upload.h +++ b/src/cocoatweet/api/media/upload.h @@ -4,11 +4,14 @@ #include #include #include +#include namespace CocoaTweet::API::Medias { class Upload : public CocoaTweet::API::Interface::HttpPost { private: std::string media_; + static const std::map mimeType; + ; public: Upload();