From ac0c09dbc8775e0090d2d98a99b67b5c9b703d4f Mon Sep 17 00:00:00 2001 From: Christian Wieninger Date: Thu, 26 Apr 2007 18:35:20 +0000 Subject: - extended searchresults with md5 methods --- epgsearch.cpp | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) (limited to 'epgsearch.cpp') diff --git a/epgsearch.cpp b/epgsearch.cpp index 9ff5760..4d7d3fe 100644 --- a/epgsearch.cpp +++ b/epgsearch.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include "epgsearch/services.h" #include "epgsearch.h" #include "exception.h" @@ -485,7 +486,9 @@ SearchResult::SearchResult( string const& data ) } } -SearchResults::SearchResults(int id) +std::set SearchResults::querySet; + +void SearchResults::GetByID(int id) { Epgsearch_services_v1_0 service; if ( cPluginManager::CallFirstService("Epgsearch-services-v1.0", &service) == 0 ) @@ -496,4 +499,53 @@ SearchResults::SearchResults(int id) m_list.sort(); } +void SearchResults::GetByQuery(std::string const& query) +{ + Epgsearch_services_v1_0 service; + if ( cPluginManager::CallFirstService("Epgsearch-services-v1.0", &service) == 0 ) + throw HtmlError( tr("No searchtimers available") ); + + list< string > list = service.handler->QuerySearch(query); + m_list.assign( list.begin(), list.end() ); + m_list.sort(); +} + +std::string SearchResults::MD5Hash(std::string const& query) +{ + unsigned char md5[MD5_DIGEST_LENGTH]; + MD5(reinterpret_cast(query.c_str()), query.size(), md5); + + ostringstream hashStr; + hashStr << hex; + for (size_t i = 0; i < MD5_DIGEST_LENGTH; i++) + hashStr << (0 + md5[i]); + + return hashStr.str(); +} + +std::string SearchResults::AddQuery(std::string const& query) +{ + querySet.insert(query); + return MD5Hash(query); +} + +std::string SearchResults::PopQuery(std::string const& md5) +{ + std::string query; + if (!md5.empty()) + { + std::set::iterator it; + for (it = querySet.begin(); it != querySet.end(); it++) + { + if (md5 == MD5Hash(*it)) + { + query = *it; + querySet.erase(it); + break; + } + } + } + return query; +} + } // namespace vdrlive -- cgit v1.2.3