From 61ae56d030e7a31eee42e54cc62e4631f129a996 Mon Sep 17 00:00:00 2001 From: "Vladimir N. Korotenko" Date: Thu, 27 Nov 2025 13:31:48 +0300 Subject: [PATCH] Move help from file to main programm --- dm-cli/AccountStatus.cpp | 28 ++++- dm-cli/AccountUpdate.cpp | 75 +++++++++++-- dm-cli/Deals.cpp | 192 ++++++++++++++++++++++++++++++-- dm-cli/Makefile | 2 +- dm-cli/ReadFile.cpp | 26 ----- dm-cli/account_status_en.txt | 9 -- dm-cli/account_status_ru.txt | 9 -- dm-cli/account_update_en.txt | 15 --- dm-cli/account_update_ru.txt | 16 --- dm-cli/common.hpp | 32 ------ dm-cli/deal_cancel_en.txt | 12 -- dm-cli/deal_cancel_ru.txt | 12 -- dm-cli/deal_complete_en.txt | 6 - dm-cli/deal_complete_ru.txt | 6 - dm-cli/deal_negative_en.txt | 12 -- dm-cli/deal_negative_ru.txt | 12 -- dm-cli/deal_status_en.txt | 7 -- dm-cli/deal_status_ru.txt | 7 -- dm-cli/deals_en.txt | 17 --- dm-cli/deals_ru.txt | 18 --- dm-cli/help.cpp | 56 +++++++++- dm-cli/main_help_en.txt | 23 ---- dm-cli/main_help_ru.txt | 23 ---- dm-cli/test.json | 9 -- dm-cli/tpl/accountupdatebtm.txt | 1 - dm-cli/tpl/accountupdatepgp.txt | 1 - dm-cli/tpl/accountupdateurl.txt | 1 - dm-cli/tpl/deal_create.txt | 3 - 28 files changed, 328 insertions(+), 302 deletions(-) delete mode 100644 dm-cli/ReadFile.cpp delete mode 100644 dm-cli/account_status_en.txt delete mode 100644 dm-cli/account_status_ru.txt delete mode 100644 dm-cli/account_update_en.txt delete mode 100644 dm-cli/account_update_ru.txt delete mode 100644 dm-cli/deal_cancel_en.txt delete mode 100644 dm-cli/deal_cancel_ru.txt delete mode 100644 dm-cli/deal_complete_en.txt delete mode 100644 dm-cli/deal_complete_ru.txt delete mode 100644 dm-cli/deal_negative_en.txt delete mode 100644 dm-cli/deal_negative_ru.txt delete mode 100644 dm-cli/deal_status_en.txt delete mode 100644 dm-cli/deal_status_ru.txt delete mode 100644 dm-cli/deals_en.txt delete mode 100644 dm-cli/deals_ru.txt delete mode 100644 dm-cli/main_help_en.txt delete mode 100644 dm-cli/main_help_ru.txt delete mode 100644 dm-cli/test.json delete mode 100644 dm-cli/tpl/accountupdatebtm.txt delete mode 100644 dm-cli/tpl/accountupdatepgp.txt delete mode 100644 dm-cli/tpl/accountupdateurl.txt delete mode 100644 dm-cli/tpl/deal_create.txt diff --git a/dm-cli/AccountStatus.cpp b/dm-cli/AccountStatus.cpp index f308896..ed20277 100644 --- a/dm-cli/AccountStatus.cpp +++ b/dm-cli/AccountStatus.cpp @@ -15,11 +15,35 @@ void AccountHelp(bool isRussian) { if (isRussian) { - PrintFile(ACCOUNT_STATUS_RU); + std::cout << + R"( +Использование: dm-cli account status [параметры] <биткоин адрес> + + Показать информацию о пользователе bitdeals. + + -f|--feedbacks [p|n] Показать последнюю 1 тыс. полученных отзывов. + Используй p или n для фильтрации только позитивных или негативных отзывов. + -i|--info Показать данные учётной записи. + -r|--rating Показать данные рейтинга. + -s|--status Показать статус пользователя (действие по умолчанию). +)" + << std::endl; } else { - PrintFile(ACCOUNT_STATUS_EN); + std::cout << + R"( +Usage: dm-cli account status [options] + + Show info about a bitdeals user. + + -f|--feedbacks [p|n] Show last 1K received feedbacks. + Use p or n to filter only positive or negative feedbacks. + -i|--info Show user account details. + -r|--rating Show user rating information. + -s|--status Show user account status (default action). +)" + << std::endl; } } diff --git a/dm-cli/AccountUpdate.cpp b/dm-cli/AccountUpdate.cpp index a28acf2..387db9f 100644 --- a/dm-cli/AccountUpdate.cpp +++ b/dm-cli/AccountUpdate.cpp @@ -15,9 +15,53 @@ using namespace std; int AccountUpdate::Help() { if (this->isRussian) - PrintFile(ACCOUNT_UPDATE_RU); + + { + std::cout << + R"( +Использование: dm-cli account update [параметры] <биткоин адрес> + + Изменить учётные данные пользователя. + + Для изменения учётных данных вы должны подписать текущую дату и новые данные пользователя + вашим приватным биткоин ключом. Например, текущая дата, новый битмессадж, подпись: + 2020-01-01 + BM-2cUuxYUFWLCrtpKRMdHCpU1QKEuFtHh7vu + IEF1ysyhu8ps0m5xSJaZZg/5hBylmcWQQggkGO7yNN8iMf/EA2O287kxi58xCDDtxvdsC0TWqylVE5MT5CouamU= + + -d|--date Текущая дата. + -s|--signature Биткоин подпись. + -p|--pgp Установить armored RSA pgp ключ. + -u|--url [+/-] Добавить/удалить url в trusted список. Разделенные запятыми + -b|--bitmessage Изменить битмессадж адрес. + + +)" + << std::endl; + } + else - PrintFile(ACCOUNT_UPDATE_EN); + { + std::cout << + R"( +Usage: dm-cli account update [options] + + Update user account data. + + To change the account data you should sign the current date and new user data + with your bitcoin private key. For example, current date, new bitmessage, signature: + 2020-01-01 + BM-2cUuxYUFWLCrtpKRMdHCpU1QKEuFtHh7vu + IEF1ysyhu8ps0m5xSJaZZg/5hBylmcWQQggkGO7yNN8iMf/EA2O287kxi58xCDDtxvdsC0TWqylVE5MT5CouamU= + + -d|--date Current date. + -s|--signature Bitcoin signature. + -p|--pgp Set up an armored RSA pgp key. + -u|--url [+/-] Add/remove an url to trusted list. + -b|--bitmessage Change bitmessage address. +)" + << std::endl; + } return 0; } @@ -44,6 +88,13 @@ int AccountUpdate::Process() return this->Help(); return Update(); } +string AccountUpdateUrl() +{ + return + R"( + -X POST "{{ADDRESS}}/api/v1/client/update" -H "Content-Type: application/json" -d "{\"address\":\"{{BT}}\",\"date\":\"{{DATE}}\",\"url\":[{{URLS}}], \"sign\":\"{{SIGN}}\"}" +)"; +} int AccountUpdate::ProcessUrl(std::string date, std::string signature, std::string urls) { /* @@ -68,7 +119,7 @@ int AccountUpdate::ProcessUrl(std::string date, std::string signature, std::stri } urlout = urlout.substr(0, urlout.length() - 1); string data("curl -s "); - data += ReadFile(ACCOUNT_UPDATE_URL); + data += AccountUpdateUrl(); string bt(""); bt = parser.getLast(); data = Replace(data, string("{{ADDRESS}}"), address); @@ -93,12 +144,17 @@ int AccountUpdate::ProcessUrl(std::string date, std::string signature, std::stri return 0; } - +string AccountUpdatePgp() +{ + return R"( + -X POST "{{ADDRESS}}/api/v1/client/update" -H "Content-Type: application/json" -d "{\"address\":\"{{BT}}\",\"date\":\"{{DATE}}\",\"pgp\":\"{{PGP}}\",\"sign\":\"{{SIGN}}\"}" +)"; +} int AccountUpdate::ProcessPgp(std::string date, std::string signature, std::string pgp) { string data("curl -s "); - data += ReadFile(ACCOUNT_UPDATE_PGP); + data += AccountUpdatePgp(); string bt(""); bt = parser.getLast(); string pgpencoded = ReplaceAll(pgp, "\n", "\\n"); @@ -123,12 +179,17 @@ int AccountUpdate::ProcessPgp(std::string date, std::string signature, std::stri return 0; } - +string AccountUpdateBtm() +{ + return R"( + -X POST "{{ADDRESS}}/api/v1/client/update" -H "Content-Type: application/json" -d "{\"address\":\"{{BT}}\",\"date\":\"{{DATE}}\",\"bitmessage\":[\"{{BTM}}\"],\"sign\":\"{{SIGN}}\"}" +)"; +} int AccountUpdate::ProcessBitmessage(std::string date, std::string signature, std::string btmsg) { string data("curl -s "); - data += ReadFile(ACCOUNT_UPDATE_BTM); + data += AccountUpdateBtm(); string bt(""); bt = parser.getLast(); data = Replace(data, string("{{ADDRESS}}"), address); diff --git a/dm-cli/Deals.cpp b/dm-cli/Deals.cpp index 7edd132..19ccfca 100644 --- a/dm-cli/Deals.cpp +++ b/dm-cli/Deals.cpp @@ -44,41 +44,202 @@ string url_encode(const string &value) int Deals::HelpCreate() const { if (isRussian) - PrintFile(DEALS_RU); + { + std::cout << + R"( +Использование: dm-cli deal create [параметры] + + Создать новую сделку + + [smhd] означает секунды, минуты, часы, дни. + Например: --leave-before 2020-01-01, или --leave-before 10d. + + -a|--at Сайт проведения сделки + -s|--seller Продавец в сделке + -c|--customer Покупатель в сделке + -t|--type [prepayment|postpayment] + Тип сделки + -g|--sum Сумма сделки в BTC + -l|--leave-before { <гггг-мм-дд> [чч:мм:сс UTC] | <время>[smhd] } + Время окончания сделки (длительность сделки), по умолчанию: 14d + -p|--pay { <гггг-мм-дд> [чч:мм:сс UTC] | <время>[smhd] } + Время для оплаты сделки; по умолчанию: 1d + +)" + << std::endl; + } else - PrintFile(DEALS_EN); + { + std::cout << + R"( +Usage: dm-cli deal create [options] + + Create a new deal + + [smhd] means seconds, minutes, hours, days. + For example: --leave-before 2020-01-01, or --leave-before 10d. + + -a|--at Deal site + -s|--seller Seller user in deal + -c|--customer Customer user in deal + -t|--type [prepayment|postpayment] + Deal type + -g|--sum Deal sum in BTC + -l|--leave-before { [hh:mm:ss UTC] |