Packages

case class MiniBot[P, Q, W, V, ID](responses: (V) => (P) => Future[Vector[Q]], predicate: (V) => Boolean = (_: V) => true, name: Option[String] = None)(implicit pw: Postable[P, W, ID], qw: Postable[Q, W, ID], lv: LocalQueryable[V, W, ID], dg: DataGetter[Q, W, ID]) extends TypedPostResponse[P, W, ID] with Product with Serializable

Bot responding to a post returning a vector of posts for each value of the auxiliary queryable - so even if the auxiliary has a single response, many posts are made

responses

the responses of the bot

predicate

the condition the post must satisfy to trigger the bot

pw

postability of the post type

qw

postability of the response post type

lv

queryability of the other arguments

Linear Supertypes
Serializable, Product, Equals, TypedPostResponse[P, W, ID], PostResponse[W, ID], AnyRef, Any
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. MiniBot
  2. Serializable
  3. Product
  4. Equals
  5. TypedPostResponse
  6. PostResponse
  7. AnyRef
  8. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new MiniBot(responses: (V) => (P) => Future[Vector[Q]], predicate: (V) => Boolean = (_: V) => true, name: Option[String] = None)(implicit pw: Postable[P, W, ID], qw: Postable[Q, W, ID], lv: LocalQueryable[V, W, ID], dg: DataGetter[Q, W, ID])

    responses

    the responses of the bot

    predicate

    the condition the post must satisfy to trigger the bot

    pw

    postability of the post type

    qw

    postability of the response post type

    lv

    queryability of the other arguments

Type Members

  1. type PostType = P
    Definition Classes
    TypedPostResponsePostResponse

Value Members

  1. def &&(that: TypedPostResponse[P, W, ID]): ConcurrentResponse[P, W, ID]
    Definition Classes
    TypedPostResponse
  2. def >>[Q](that: TypedPostResponse[Q, W, ID])(implicit qw: Postable[Q, W, ID], dg: DataGetter[Q, W, ID]): ComposedResponse[P, Q, W, ID]
    Definition Classes
    TypedPostResponse
  3. def andThen[Q, V](second: Callback[Q, W, V, ID])(implicit pw: Postable[P, W, ID], qw: Postable[Q, W, ID]): AndThen[P, Q, V, W, ID]
    Definition Classes
    TypedPostResponse
  4. val message: String
  5. val name: Option[String]
  6. def post(web: W, content: P, id: ID): Future[Vector[PostData[_, W, ID]]]
    Definition Classes
    MiniBotTypedPostResponsePostResponse
  7. val predicate: (V) => Boolean
  8. def productElementNames: Iterator[String]
    Definition Classes
    Product
  9. implicit val pw: Postable[P, W, ID]
    Definition Classes
    TypedPostResponse
  10. def reduce[Q, R](reduction: (Vector[Q]) => R)(implicit qw: Postable[Q, W, ID], rw: Postable[R, W, ID], dgr: DataGetter[R, W, ID]): ReducedResponse[P, Q, R, W, ID]
    Definition Classes
    TypedPostResponse
  11. def respond(web: W)(pds: Vector[PostData[PostType, W, ID]]): Future[Vector[PostData[_, W, ID]]]
    Definition Classes
    PostResponse
  12. val responses: (V) => (P) => Future[Vector[Q]]
  13. def triggerMap[R](transform: (R) => P)(implicit rw: Postable[R, W, ID]): MiniBot[R, Q, W, ::[V, HNil], ID]
  14. def triggerWith[R](implicit rw: Postable[R, W, ID], pq: LocalQueryable[P, W, ID]): MiniBot[R, Q, W, ::[P, ::[V, HNil]], ID]