#include #include #include //signal handler #include "search.h" static bool run = true; void sig_handler(int sig_num) { Log::info << "signalHandler triggered"; run = false; (void) sig_num; } int main(int argc, const char** argv) { Log::init(); Log::setConsoleLogLevel(Log::Level::TRACE); Log::addLogfile("log.txt", Log::Level::TRACE); #if __unix__ Log::setColoredOutput(true); #endif if(argc < 2) { Log::error << "Usage: " << argv[0] << " [ ....]"; return 1; } Search search; for(int i = 1; i < argc; ++i) { Log::info << "Load File: " << argv[i]; search.addFile(argv[i]); } signal(SIGINT, sig_handler); while(run) { Log::info << "Enter Search String: "; std::string searchterm; std::cin >> searchterm; if(!run) break; Log::info << "Enter Flags: [RI]"; std::string flags; std::cin >> flags; Searchflags parsedflags = Search::fromString(flags); if(!run) break; std::list results = search.search(searchterm, parsedflags); Log::info << results.size() << " results"; if(results.size()) { Log::info << "Print results?"; char c; std::cin >> c; if(!run) break; if(c == 'y' || c == 'Y') { //print results for(const Message* m : results) { Log::info << search.getShortChatname(m->chatid) << ": (" << m->messageid << ") " << m->text; } } } } Log::stop(); return 0; }