diff options
Diffstat (limited to 'lib/urlfilter/formats')
-rw-r--r-- | lib/urlfilter/formats/hostlistrule.cpp | 21 | ||||
-rw-r--r-- | lib/urlfilter/formats/hostlistrule.h | 16 |
2 files changed, 37 insertions, 0 deletions
diff --git a/lib/urlfilter/formats/hostlistrule.cpp b/lib/urlfilter/formats/hostlistrule.cpp new file mode 100644 index 0000000..1df6b3e --- /dev/null +++ b/lib/urlfilter/formats/hostlistrule.cpp @@ -0,0 +1,21 @@ +#include "hostlistrule.h" + +HostlistRule::HostlistRule(const QString &domain, const QString& redirect) +{ + this->m_isBlocking = (redirect == QLatin1Literal("0.0.0.0")); + this->m_request = domain.toStdString(); + this->m_redirect = redirect.toStdString(); +} + +bool HostlistRule::match(const QString& requestUrl) const +{ + return (m_request == requestUrl.toStdString()); +} + +FilterLeaf::Action HostlistRule::action() const +{ + if(m_isBlocking) + return FilterLeaf::Block; + return FilterLeaf::Redirect; +} + diff --git a/lib/urlfilter/formats/hostlistrule.h b/lib/urlfilter/formats/hostlistrule.h new file mode 100644 index 0000000..764a2e2 --- /dev/null +++ b/lib/urlfilter/formats/hostlistrule.h @@ -0,0 +1,16 @@ +#ifndef SMOLBOTE_HOSTLIST_RULE_H +#define SMOLBOTE_HOSTLIST_RULE_H + +#include "../filterleaf.h" +#include <QString> + +class HostlistRule : public FilterLeaf +{ +public: + explicit HostlistRule(const QString &domain, const QString &redirect); + + bool match(const QString &requestUrl) const override; + FilterLeaf::Action action() const override; +}; + +#endif // SMOLBOTE_HOSTLIST_RULE_H |