added functionality to email text and ocr scenes
This commit is contained in:
@@ -31,7 +31,7 @@ StoreModule::StoreModule(std::string path) {
|
||||
|
||||
std::vector<std::string> StoreModule::parse_name(std::wstring str) {
|
||||
std::vector<std::string> result;
|
||||
std::wregex r(this->goods_name_regex, std::regex::collate);
|
||||
std::wregex r(this->goods_name_regex, std::regex_constants::multiline);
|
||||
|
||||
for (std::wsregex_iterator it{str.begin(), str.end(), r}, end{}; it != end;
|
||||
it++) {
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "../settings/settings.h"
|
||||
#include "../utils/utils.h"
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
|
||||
#if __GNUC__ < 8 && __clang_major__ < 17
|
||||
# include <experimental/filesystem>
|
||||
@@ -14,6 +15,27 @@
|
||||
using namespace std::filesystem;
|
||||
#endif
|
||||
|
||||
static void dumpVectorsToStdErr(std::vector<std::string> &goods_names, std::vector<std::string> &goods_prices, std::vector<std::string>& goods_quantities) {
|
||||
std::cerr << goods_names.size() << " " << goods_prices.size() << " " << goods_quantities.size() << std::endl;
|
||||
std::cerr << "Found goods names: ";
|
||||
for (auto &goods_name : goods_names) {
|
||||
std::cerr << goods_name << " ";
|
||||
}
|
||||
std::cerr << std::endl;
|
||||
|
||||
std::cerr << "Found goods prices: ";
|
||||
for (auto &goods_price : goods_prices) {
|
||||
std::cerr << goods_price << " ";
|
||||
}
|
||||
std::cerr << std::endl;
|
||||
|
||||
std::cerr << "Found goods names: ";
|
||||
for (auto &goods_quantity : goods_quantities) {
|
||||
std::cerr << goods_quantity << " ";
|
||||
}
|
||||
std::cerr << std::endl;
|
||||
}
|
||||
|
||||
Parser::Parser() {}
|
||||
|
||||
std::vector<std::string> Parser::search_modules() {
|
||||
@@ -31,13 +53,28 @@ std::vector<std::string> Parser::search_modules() {
|
||||
|
||||
std::vector<std::string> modules_files;
|
||||
|
||||
for (auto file : directory_iterator(path)) {
|
||||
for (auto &file : directory_iterator(path)) {
|
||||
modules_files.push_back(file.path());
|
||||
}
|
||||
|
||||
return modules_files;
|
||||
}
|
||||
|
||||
std::vector<std::string> Parser::get_modules_names() {
|
||||
std::vector<std::string> modules = this->search_modules();
|
||||
std::vector<std::string> names = {};
|
||||
|
||||
for (std::string &modulePath : modules) {
|
||||
std::ifstream inputFile(modulePath);
|
||||
|
||||
nlohmann::json module = nlohmann::json::parse(inputFile);
|
||||
std::string name = module["name"];
|
||||
names.push_back(name);
|
||||
}
|
||||
|
||||
return names;
|
||||
}
|
||||
|
||||
void Parser::set_module(std::string path) { module = StoreModule(path); }
|
||||
|
||||
std::vector<Goods> Parser::parse(std::wstring check_plaintext) {
|
||||
@@ -53,6 +90,9 @@ std::vector<Goods> Parser::parse(std::wstring check_plaintext) {
|
||||
if (goods_names.size() != goods_prices.size() ||
|
||||
goods_names.size() != goods_quantities.size() ||
|
||||
goods_prices.size() != goods_quantities.size()) {
|
||||
|
||||
dumpVectorsToStdErr(goods_names, goods_prices, goods_quantities);
|
||||
|
||||
//Error. Amount of names, prices or quantities are not equal. That means, that some regex(es) has mismatched.
|
||||
return {};
|
||||
}
|
||||
|
||||
@@ -15,6 +15,8 @@ public:
|
||||
|
||||
std::vector<std::string> search_modules();
|
||||
|
||||
std::vector<std::string> get_modules_names();
|
||||
|
||||
std::vector<std::string> check_updates();
|
||||
|
||||
void set_module(std::string);
|
||||
|
||||
Reference in New Issue
Block a user