forked from lichess-org/lila
-
Notifications
You must be signed in to change notification settings - Fork 0
/
actorApi.scala
114 lines (89 loc) · 2.92 KB
/
actorApi.scala
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
package lila.hub
package actorApi
import play.api.libs.json._
case class SendTo(userId: String, message: JsObject)
object SendTo {
def apply[A: Writes](userId: String, typ: String, data: A): SendTo =
SendTo(userId, Json.obj("t" -> typ, "d" -> data))
}
case class SendTos(userIds: Set[String], message: JsObject)
object SendTos {
def apply[A: Writes](userIds: Set[String], typ: String, data: A): SendTos =
SendTos(userIds, Json.obj("t" -> typ, "d" -> data))
}
case class Ask(msg: Any)
case class Tell(id: String, msg: Any)
case class WithUserIds(f: Iterable[String] ⇒ Unit)
case class WithSocketUserIds(id: String, f: Iterable[String] ⇒ Unit)
case object GetNbMembers
case class NbMembers(nb: Int)
case object GetUids
package captcha {
case object AnyCaptcha
case class GetCaptcha(id: String)
case class ValidCaptcha(id: String, solution: String)
}
package lobby {
case class SysTalk(txt: String)
case class UnTalk(r: scala.util.matching.Regex)
case class ReloadTournaments(html: String)
}
package timeline {
case class ReloadTimeline(user: String)
case class GameEntryView(rendered: String)
sealed trait Atom
case class Follow(u1: String, u2: String) extends Atom
case class FollowYou(userId: String) extends Atom
case class TeamJoin(userId: String, teamId: String) extends Atom
case class TeamCreate(userId: String, teamId: String) extends Atom
case class ForumPost(userId: String, categ: String, topicSlug: String, topicName: String, page: Int, post: Int) extends Atom
object atomFormat {
implicit val followFormat = Json.format[Follow]
implicit val followYouFormat = Json.format[FollowYou]
implicit val teamJoinFormat = Json.format[TeamJoin]
implicit val teamCreateFormat = Json.format[TeamCreate]
implicit val forumPostFormat = Json.format[ForumPost]
}
case class ShareEntry(user: String, data: Atom)
case class MakeEntry(users: List[String], data: Atom)
}
package game {
case object Count
}
package message {
case class LichessThread(to: String, subject: String, message: String)
}
package router {
case class Abs(route: Any)
case class Nolang(route: Any)
case object Homepage
case class TeamShow(id: String)
case class Player(fullId: String)
case class Watcher(gameId: String, color: String)
case class Replay(gameId: String, color: String)
case class Pgn(gameId: String)
case class Tourney(tourId: String)
}
package forum {
case class MakeTeam(id: String, name: String)
}
package ai {
case object Ping
case class Analyse(id: String, pgn: String, initialFen: Option[String])
}
package monitor {
case object AddMove
case object AddRequest
case object Update
}
package round {
case class FinishGame(gameId: String)
}
package bookmark {
case class Toggle(gameId: String, userId: String)
case class Remove(gameIds: List[String])
}
package relation {
case class GetFriends(userId: String)
case class FriendsOf(userId: String, friends: List[String])
}