/* */ #include "ContentTypeRequestGroupCriteria.h" #include "RequestGroup.h" #include "util.h" #include "FileEntry.h" #include "DownloadContext.h" namespace aria2 { ContentTypeRequestGroupCriteria::ContentTypeRequestGroupCriteria( const char* const* contentTypes, const char* const* extensions) : contentTypes_(contentTypes), extensions_(extensions) { } ContentTypeRequestGroupCriteria::~ContentTypeRequestGroupCriteria() = default; bool ContentTypeRequestGroupCriteria::match( const RequestGroup* requestGroup) const { if (requestGroup->getDownloadContext()->getFileEntries().size() != 1) { return false; } for (size_t i = 0; extensions_[i]; ++i) { if (util::iendsWith(requestGroup->getFirstFilePath(), extensions_[i])) { return true; } } for (size_t i = 0; contentTypes_[i]; ++i) { if (util::strieq(requestGroup->getDownloadContext() ->getFirstFileEntry() ->getContentType(), contentTypes_[i])) { return true; } } return false; } } // namespace aria2