summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/tools/FileTools.cpp25
-rw-r--r--src/types/InputFile.cpp24
2 files changed, 49 insertions, 0 deletions
diff --git a/src/tools/FileTools.cpp b/src/tools/FileTools.cpp
new file mode 100644
index 0000000..1522a9d
--- /dev/null
+++ b/src/tools/FileTools.cpp
@@ -0,0 +1,25 @@
+//
+// Created by Oleg on 25.01.17.
+//
+
+#include "tgbot/tools/FileTools.h"
+
+#include <fstream>
+#include <sstream>
+
+using namespace std;
+
+namespace FileTools {
+
+std::string read(const std::string& filePath) {
+ ifstream in(filePath, ios::in | ios::binary);
+ if (in) {
+ ostringstream contents;
+ contents << in.rdbuf();
+ in.close();
+ return contents.str();
+ }
+ throw errno;
+}
+
+};
diff --git a/src/types/InputFile.cpp b/src/types/InputFile.cpp
new file mode 100644
index 0000000..0f6cb86
--- /dev/null
+++ b/src/types/InputFile.cpp
@@ -0,0 +1,24 @@
+//
+// Created by Oleg Morozenkov on 25.01.17.
+//
+
+#include "tgbot/types/InputFile.h"
+
+#include <fstream>
+
+#include "tgbot/tools/StringTools.h"
+#include "tgbot/tools/FileTools.h"
+
+using namespace std;
+
+namespace TgBot {
+
+InputFile::Ptr InputFile::fromFile(const string& filePath, const string& mimeType) {
+ InputFile::Ptr result(new InputFile);
+ result->data = FileTools::read(filePath);
+ result->mimeType = mimeType;
+ result->fileName = StringTools::split(filePath, '/').back();
+ return result;
+}
+
+};