From 90dc11b7496864077cc81b4710673896147e2bfa Mon Sep 17 00:00:00 2001 From: Ctuh Date: Tue, 24 Jan 2023 16:11:53 +0300 Subject: add file sample --- samples/file/CMakeLists.txt | 21 ++++++++++++++++++ samples/file/Dockerfile | 8 +++++++ samples/file/src/main.cpp | 52 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 81 insertions(+) create mode 100644 samples/file/CMakeLists.txt create mode 100644 samples/file/Dockerfile create mode 100644 samples/file/src/main.cpp diff --git a/samples/file/CMakeLists.txt b/samples/file/CMakeLists.txt new file mode 100644 index 0000000..67b9b26 --- /dev/null +++ b/samples/file/CMakeLists.txt @@ -0,0 +1,21 @@ +cmake_minimum_required(VERSION 3.10.2) +project(file) + +set(CMAKE_CXX_STANDARD 14) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") +set(Boost_USE_MULTITHREADED ON) + +find_package(Threads REQUIRED) +find_package(OpenSSL REQUIRED) +find_package(Boost COMPONENTS system REQUIRED) +find_package(CURL) +include_directories(/usr/local/include ${OPENSSL_INCLUDE_DIR} ${Boost_INCLUDE_DIR}) +if (CURL_FOUND) + include_directories(${CURL_INCLUDE_DIRS}) + add_definitions(-DHAVE_CURL) +endif() + +add_executable(file src/main.cpp) + +target_link_libraries(file /usr/local/lib/libTgBot.a ${CMAKE_THREAD_LIBS_INIT} ${OPENSSL_LIBRARIES} ${Boost_LIBRARIES} ${CURL_LIBRARIES}) diff --git a/samples/file/Dockerfile b/samples/file/Dockerfile new file mode 100644 index 0000000..b87c2ca --- /dev/null +++ b/samples/file/Dockerfile @@ -0,0 +1,8 @@ +FROM reo7sp/tgbot-cpp +MAINTAINER Oleg Morozenkov + +WORKDIR /usr/src/photo +COPY . . +RUN cmake . +RUN make -j4 +CMD ./photo diff --git a/samples/file/src/main.cpp b/samples/file/src/main.cpp new file mode 100644 index 0000000..f46b288 --- /dev/null +++ b/samples/file/src/main.cpp @@ -0,0 +1,52 @@ +#include +#include +#include +#include +#include + +#include + + +using namespace std; +using namespace TgBot; + +int main() { + string token(getenv("TOKEN")); + printf("Token: %s\n", token.c_str()); + + Bot bot(token); + bot.getEvents().onCommand("start", [&bot](Message::Ptr message) { + bot.getApi().sendMessage(message->chat->id, "Hi!"); + }); + bot.getEvents().onAnyMessage([&bot](Message::Ptr message) { + printf("User wrote %s\n", message->text.c_str()); + + File::Ptr file = bot.getApi().getFile(message->document->fileId); + std::string fileContent = bot.getApi().downloadFile(file->filePath); + + if (StringTools::startsWith(message->text, "/start")) { + return; + } + bot.getApi().sendMessage(message->chat->id, "Your file content: " + fileContent); + }); + + signal(SIGINT, [](int s) { + printf("SIGINT got\n"); + exit(0); + }); + + try { + printf("Bot username: %s\n", bot.getApi().getMe()->username.c_str()); + bot.getApi().deleteWebhook(); + + TgLongPoll longPoll(bot); + while (true) { + printf("Long poll started\n"); + longPoll.start(); + } + } catch (exception& e) { + printf("error: %s\n", e.what()); + } + + return 0; +} -- cgit v1.2.3 From 1aa81588384359f1f96b0dff453374570439af72 Mon Sep 17 00:00:00 2001 From: Oleg Morozenkov Date: Thu, 26 Jan 2023 10:34:29 +0300 Subject: fix #254 --- Dockerfile_test | 4 +++ samples/file/CMakeLists.txt | 21 --------------- samples/file/Dockerfile | 8 ------ samples/file/src/main.cpp | 52 ------------------------------------- samples/receive-file/CMakeLists.txt | 21 +++++++++++++++ samples/receive-file/Dockerfile | 8 ++++++ samples/receive-file/src/main.cpp | 51 ++++++++++++++++++++++++++++++++++++ 7 files changed, 84 insertions(+), 81 deletions(-) delete mode 100644 samples/file/CMakeLists.txt delete mode 100644 samples/file/Dockerfile delete mode 100644 samples/file/src/main.cpp create mode 100644 samples/receive-file/CMakeLists.txt create mode 100644 samples/receive-file/Dockerfile create mode 100644 samples/receive-file/src/main.cpp diff --git a/Dockerfile_test b/Dockerfile_test index 6306115..9e37736 100644 --- a/Dockerfile_test +++ b/Dockerfile_test @@ -74,6 +74,10 @@ WORKDIR /usr/src/tgbot-cpp/samples/reply-keyboard RUN rm -rf CMakeCache.txt CMakeFiles/ && \ cmake . && make -j$(nproc) +WORKDIR /usr/src/tgbot-cpp/samples/receive-file +RUN rm -rf CMakeCache.txt CMakeFiles/ && \ + cmake . && make -j$(nproc) + WORKDIR /usr/src/tgbot-cpp ENV CTEST_OUTPUT_ON_FAILURE=1 CMD make test diff --git a/samples/file/CMakeLists.txt b/samples/file/CMakeLists.txt deleted file mode 100644 index 67b9b26..0000000 --- a/samples/file/CMakeLists.txt +++ /dev/null @@ -1,21 +0,0 @@ -cmake_minimum_required(VERSION 3.10.2) -project(file) - -set(CMAKE_CXX_STANDARD 14) -set(CMAKE_CXX_STANDARD_REQUIRED ON) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") -set(Boost_USE_MULTITHREADED ON) - -find_package(Threads REQUIRED) -find_package(OpenSSL REQUIRED) -find_package(Boost COMPONENTS system REQUIRED) -find_package(CURL) -include_directories(/usr/local/include ${OPENSSL_INCLUDE_DIR} ${Boost_INCLUDE_DIR}) -if (CURL_FOUND) - include_directories(${CURL_INCLUDE_DIRS}) - add_definitions(-DHAVE_CURL) -endif() - -add_executable(file src/main.cpp) - -target_link_libraries(file /usr/local/lib/libTgBot.a ${CMAKE_THREAD_LIBS_INIT} ${OPENSSL_LIBRARIES} ${Boost_LIBRARIES} ${CURL_LIBRARIES}) diff --git a/samples/file/Dockerfile b/samples/file/Dockerfile deleted file mode 100644 index b87c2ca..0000000 --- a/samples/file/Dockerfile +++ /dev/null @@ -1,8 +0,0 @@ -FROM reo7sp/tgbot-cpp -MAINTAINER Oleg Morozenkov - -WORKDIR /usr/src/photo -COPY . . -RUN cmake . -RUN make -j4 -CMD ./photo diff --git a/samples/file/src/main.cpp b/samples/file/src/main.cpp deleted file mode 100644 index f46b288..0000000 --- a/samples/file/src/main.cpp +++ /dev/null @@ -1,52 +0,0 @@ -#include -#include -#include -#include -#include - -#include - - -using namespace std; -using namespace TgBot; - -int main() { - string token(getenv("TOKEN")); - printf("Token: %s\n", token.c_str()); - - Bot bot(token); - bot.getEvents().onCommand("start", [&bot](Message::Ptr message) { - bot.getApi().sendMessage(message->chat->id, "Hi!"); - }); - bot.getEvents().onAnyMessage([&bot](Message::Ptr message) { - printf("User wrote %s\n", message->text.c_str()); - - File::Ptr file = bot.getApi().getFile(message->document->fileId); - std::string fileContent = bot.getApi().downloadFile(file->filePath); - - if (StringTools::startsWith(message->text, "/start")) { - return; - } - bot.getApi().sendMessage(message->chat->id, "Your file content: " + fileContent); - }); - - signal(SIGINT, [](int s) { - printf("SIGINT got\n"); - exit(0); - }); - - try { - printf("Bot username: %s\n", bot.getApi().getMe()->username.c_str()); - bot.getApi().deleteWebhook(); - - TgLongPoll longPoll(bot); - while (true) { - printf("Long poll started\n"); - longPoll.start(); - } - } catch (exception& e) { - printf("error: %s\n", e.what()); - } - - return 0; -} diff --git a/samples/receive-file/CMakeLists.txt b/samples/receive-file/CMakeLists.txt new file mode 100644 index 0000000..0031c89 --- /dev/null +++ b/samples/receive-file/CMakeLists.txt @@ -0,0 +1,21 @@ +cmake_minimum_required(VERSION 3.10.2) +project(receive-file) + +set(CMAKE_CXX_STANDARD 14) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") +set(Boost_USE_MULTITHREADED ON) + +find_package(Threads REQUIRED) +find_package(OpenSSL REQUIRED) +find_package(Boost COMPONENTS system REQUIRED) +find_package(CURL) +include_directories(/usr/local/include ${OPENSSL_INCLUDE_DIR} ${Boost_INCLUDE_DIR}) +if (CURL_FOUND) + include_directories(${CURL_INCLUDE_DIRS}) + add_definitions(-DHAVE_CURL) +endif() + +add_executable(file src/main.cpp) + +target_link_libraries(file /usr/local/lib/libTgBot.a ${CMAKE_THREAD_LIBS_INIT} ${OPENSSL_LIBRARIES} ${Boost_LIBRARIES} ${CURL_LIBRARIES}) diff --git a/samples/receive-file/Dockerfile b/samples/receive-file/Dockerfile new file mode 100644 index 0000000..ce91c8c --- /dev/null +++ b/samples/receive-file/Dockerfile @@ -0,0 +1,8 @@ +FROM reo7sp/tgbot-cpp +MAINTAINER Oleg Morozenkov + +WORKDIR /usr/src/receive-file +COPY . . +RUN cmake . +RUN make -j4 +CMD ./receive-file diff --git a/samples/receive-file/src/main.cpp b/samples/receive-file/src/main.cpp new file mode 100644 index 0000000..bbfaadf --- /dev/null +++ b/samples/receive-file/src/main.cpp @@ -0,0 +1,51 @@ +#include +#include +#include +#include +#include + +#include + +using namespace std; +using namespace TgBot; + +int main() { + string token(getenv("TOKEN")); + printf("Token: %s\n", token.c_str()); + + Bot bot(token); + bot.getEvents().onCommand("start", [&bot](Message::Ptr message) { + bot.getApi().sendMessage(message->chat->id, "Hi!"); + }); + bot.getEvents().onAnyMessage([&bot](Message::Ptr message) { + printf("User wrote %s\n", message->text.c_str()); + + File::Ptr file = bot.getApi().getFile(message->document->fileId); + std::string fileContent = bot.getApi().downloadFile(file->filePath); + + if (StringTools::startsWith(message->text, "/start")) { + return; + } + bot.getApi().sendMessage(message->chat->id, "Your file content: " + fileContent); + }); + + signal(SIGINT, [](int s) { + printf("SIGINT got\n"); + exit(0); + }); + + try { + printf("Bot username: %s\n", bot.getApi().getMe()->username.c_str()); + bot.getApi().deleteWebhook(); + + TgLongPoll longPoll(bot); + while (true) { + printf("Long poll started\n"); + longPoll.start(); + } + } catch (exception& e) { + printf("error: %s\n", e.what()); + } + + return 0; +} -- cgit v1.2.3