datefilter
This commit is contained in:
parent
aae84eb047
commit
038dde8d8f
|
@ -0,0 +1,19 @@
|
|||
#include "datefilter.h"
|
||||
|
||||
void DateFilter::setup(std::ostream& o, std::istream& str) {
|
||||
o << "Enter Date: (yyyy-mm-dd HH:MM)";
|
||||
std::string d;
|
||||
std::getline(str, d);
|
||||
tm parsedTime;
|
||||
::strptime(d.c_str(), "%Y-%m-%d %H:%M", &parsedTime);
|
||||
date = timegm(&parsedTime);
|
||||
o << "search messages bevore or after? (b/a)";
|
||||
char c;
|
||||
str >> c;
|
||||
bevore = isLetter(c, 'b');
|
||||
resetStream(str);
|
||||
}
|
||||
|
||||
bool DateFilter::filter(const Message& m) const {
|
||||
return (m.date < date) == bevore;
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
#pragma once
|
||||
|
||||
#include "filter.h"
|
||||
|
||||
struct DateFilter : public Filter {
|
||||
virtual void setup(std::ostream& o, std::istream& str) override;
|
||||
virtual bool filter(const Message& m) const override;
|
||||
protected:
|
||||
time_t date;
|
||||
bool bevore; // true = bevore, false = after
|
||||
};
|
|
@ -10,6 +10,7 @@
|
|||
#include "search.h"
|
||||
#include "textfilter.h"
|
||||
#include "mediafilter.h"
|
||||
#include "datefilter.h"
|
||||
|
||||
static bool run = true;
|
||||
|
||||
|
@ -28,6 +29,7 @@ void loadFilter() {
|
|||
filterlist.insert({"HasMedia", new HasMediaFilter()});
|
||||
filterlist.insert({"Filename", new FilenameFilter()});
|
||||
filterlist.insert({"RegexFilename", new RegexFilenameFilter()});
|
||||
filterlist.insert({"Date", new DateFilter()});
|
||||
}
|
||||
|
||||
void removeFilter() {
|
||||
|
|
Loading…
Reference in New Issue