# Path: hypebot/hype_types.py

# 
# Path: hypebot/interfaces/interface_lib.py
# class BaseChatInterface(with_metaclass(abc.ABCMeta)):
#   DEFAULT_PARAMS = params_lib.HypeParams({
#       # Display name used when chatting.
#       'name': 'chatbot',
#   })
#   def __init__(self, params):
#   def RegisterHandlers(self, on_message_fn, user_tracker, user_prefs):
#   def Join(self, channel: hype_types.Channel):
#   def Leave(self, channel: hype_types.Channel):
#   def Loop(self):
#   def FindUser(self, query: Text) -> Optional[user_pb2.User]:
#   def WhoAll(self):
#   def SendMessage(self, channel: hype_types.Channel,
#                   message: Optional[hype_types.Message]):
#   def SendDirectMessage(self, user: user_pb2.User, message: hype_types.Message):
#   def Notice(self, channel: hype_types.Channel, message: hype_types.Message):
#   def Topic(self, channel: hype_types.Channel, new_topic: Text):


from hypebot import hype_types
from hypebot.interfaces import interface_lib
from typing import List, Text
#      http://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.
"""Interface that captures messages sent as output."""

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals



class CaptureInterface(interface_lib.BaseChatInterface):
  """Interface that captures output."""

  def __init__(self, unused_params):
    """This interface ignores everything."""
    self._msgs = []  # type: List[Text]

  def MessageLog(self) -> Text:
    return '\n'.join(self._msgs)

  # =======================
  # BaseInterface overrides
  # =======================


# Path: hypebot/hype_types.py

# 
# Path: hypebot/interfaces/interface_lib.py
# class BaseChatInterface(with_metaclass(abc.ABCMeta)):
#   DEFAULT_PARAMS = params_lib.HypeParams({
#       # Display name used when chatting.
#       'name': 'chatbot',
#   })
#   def __init__(self, params):
#   def RegisterHandlers(self, on_message_fn, user_tracker, user_prefs):
#   def Join(self, channel: hype_types.Channel):
#   def Leave(self, channel: hype_types.Channel):
#   def Loop(self):
#   def FindUser(self, query: Text) -> Optional[user_pb2.User]:
#   def WhoAll(self):
#   def SendMessage(self, channel: hype_types.Channel,
#                   message: Optional[hype_types.Message]):
#   def SendDirectMessage(self, user: user_pb2.User, message: hype_types.Message):
#   def Notice(self, channel: hype_types.Channel, message: hype_types.Message):
#   def Topic(self, channel: hype_types.Channel, new_topic: Text):


# Path: hypebot/interfaces/capture_interface.py
from hypebot import hype_types
from hypebot.interfaces import interface_lib
from typing import List, Text

#      http://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.
"""Interface that captures messages sent as output."""

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals



class CaptureInterface(interface_lib.BaseChatInterface):
  """Interface that captures output."""

  def __init__(self, unused_params):
    """This interface ignores everything."""
    self._msgs = []  # type: List[Text]

  def MessageLog(self) -> Text:
    return '\n'.join(self._msgs)

  # =======================
  # BaseInterface overrides
  # =======================


  def Join(self, channel: hype_types.Channel):