# -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
"""linebot.models.filter module."""
from abc import ABCMeta
from future.utils import with_metaclass
from .base import Base
[docs]class Operator(with_metaclass(ABCMeta, Base)):
"""Operator.
https://developers.line.biz/en/reference/messaging-api/#narrowcast-demographic-filter
Use logical AND, OR, and NOT operators to combine multiple recipient objects or
demographic filter objects together.
You can specify up to 10 recipient objects or demographic filter objects per request.
"""
[docs] def __init__(self, **kwargs):
"""__init__ method.
:param kwargs:
"""
super(Operator, self).__init__(**kwargs)
self.type = "operator"
[docs]class And(Operator):
"""And.
Create a new recipient object or demographic filter object by taking the
logical conjunction (AND) of the specified array of objects.
"""
[docs] def __init__(self, *args, **kwargs):
"""__init__ method.
:param args:
:param kwargs:
"""
super(And, self).__init__(**kwargs)
setattr(self, 'and', args)
[docs]class Or(Operator):
"""Or.
Create a new recipient object or demographic filter object by taking the
logical disjunction (OR) of the specified array of objects.
"""
[docs] def __init__(self, *args, **kwargs):
"""__init__ method.
:param args:
:param kwargs:
"""
super(Or, self).__init__(**kwargs)
setattr(self, 'or', args)
[docs]class Not(Operator):
"""Not.
Create a new recipient object or demographic filter object that excludes
in the specified object.
"""
[docs] def __init__(self, arg, **kwargs):
"""__init__ method.
:param arg:
:param kwargs:
"""
super(Not, self).__init__(**kwargs)
setattr(self, 'not', arg)