Thibault Duplessis
7871f3e34b
remove Game.token (store tokens in memory)
2013-12-09 21:11:55 +01:00
Thibault Duplessis
5fd8c4e0ee
move binary PGN back to the game collection
2013-12-06 00:53:18 +01:00
Thibault Duplessis
3ac16d1698
more game storage optimizations
2013-12-05 22:47:10 +01:00
Thibault Duplessis
2447f9dfeb
remove AI private IDs, ensure players can't abuse it
2013-12-04 21:22:54 +01:00
Thibault Duplessis
dff14fb7b8
DB tubes can now be JS or BSON
2013-12-03 21:31:31 +01:00
Thibault Duplessis
2689096bb3
castles, last move and move time binary storage test+code
2013-12-02 01:38:03 +01:00
Thibault Duplessis
2a6a3a37ae
binary PGN database migration
2013-11-27 22:12:05 +01:00
Thibault Duplessis
86e44da547
use game moves as a list of strings
2013-11-26 00:02:44 +01:00
Thibault Duplessis
ad67e8b579
Merge branch 'master' into simulation
...
* master:
only load 5 games per page in user profile
is "Íslenska" translation #5030 . Author: Anonymous.
tr "Türkçe" translation #5029 . Author: Yemliha İpek. correct word is "tabii" not tabi
lv "latviešu valoda" translation #5025 . Author: krauzand.
id "Bahasa Indonesia" translation #5024 . Author: Anonymous.
nn "Norsk nynorsk" translation #5020 . Author: A. If by preferences you mean options, this will work as a translation.
et "eesti, eesti keel" translation #5019 . Author: luuletaja. corrected translations and typos
publish AI server IP in move stream
publish move metadata in stream
Conflicts:
modules/round/src/main/Env.scala
2013-11-03 09:22:27 +01:00
Thibault Duplessis
09d060c522
publish AI server IP in move stream
2013-11-03 07:44:04 +01:00
Thibault Duplessis
3e12498fa6
publish move metadata in stream
2013-11-02 16:40:06 +01:00
Thibault Duplessis
1faae3366c
improve simulator some more
2013-11-02 15:14:01 +01:00
Thibault Duplessis
0f9830d447
many improvements and simplifications
2013-10-30 00:36:46 +01:00
Thibault Duplessis
218f3d0618
make some functions context agnostic
2013-10-29 17:17:12 +01:00
Thibault Duplessis
0a59da4e21
minimize event bus subscriptions to improve broadcasting efficiency
2013-10-29 02:16:28 +01:00
Thibault Duplessis
a322f6b4c0
custom event bus as akka extension
2013-10-28 12:19:06 +01:00
Thibault Duplessis
fcf6f337ff
avoid unhandled ChangeFeaturedGame event
2013-10-27 22:59:32 +01:00
Thibault Duplessis
739659a40a
fix monitor connectivity
2013-10-27 09:47:52 +01:00
Thibault Duplessis
d02b38ed86
prevent multiple subscriptions for same actor
2013-10-27 01:27:52 +02:00
Thibault Duplessis
2d090f8f99
decouple SequentialActor from receive timeout
2013-10-27 00:41:56 +02:00
Thibault Duplessis
bd25b4f3a8
improve sequential actor
2013-10-26 23:06:44 +02:00
Thibault Duplessis
e25da56f04
simplify friend joining
2013-10-26 16:55:03 +02:00
Thibault Duplessis
9b7e06d941
reimplement round actor using SequentialActor, removing all locks
2013-10-26 16:54:44 +02:00
Thibault Duplessis
22ad5eedb3
TV watcher room writer
2013-10-26 13:35:54 +02:00
Thibault Duplessis
188eb9f259
publish featured game using akka event bus, simplify round socket hub
2013-10-26 13:23:29 +02:00
Thibault Duplessis
78c36a5f98
use akka event bus to broadcast played moves
2013-10-26 13:05:35 +02:00
Thibault Duplessis
4e56f79a4f
fix player error messages
2013-10-25 15:13:18 +02:00
Thibault Duplessis
216550a282
more descriptive error messages
2013-10-25 13:38:38 +02:00
Thibault Duplessis
87131a272e
add user preference to disable premoves
2013-10-21 13:04:41 +02:00
Thibault Duplessis
5f65df4620
configure clock tenths of seconds in user preferences
2013-10-21 00:10:19 +02:00
Thibault Duplessis
fa4b11f0a1
complete user preferences w/ automatic queen option
2013-10-20 23:33:55 +02:00
Thibault Duplessis
885c897edc
register players IP addresses and send them in move stream
2013-10-16 21:58:48 +02:00
Thibault Duplessis
662458c341
stream played moves
2013-10-16 18:18:01 +02:00
Thibault Duplessis
c5a5153ad6
only protect rated games against websocket hijacking
2013-10-10 00:03:19 +02:00
Thibault Duplessis
23e630f2cd
force draw on opponent disconnection
2013-10-09 16:51:12 +02:00
Thibault Duplessis
816b91337e
check out of time before move
2013-10-07 16:02:56 +02:00
Thibault Duplessis
ba87f1131c
improve clock lag compensation
2013-10-07 01:36:01 +02:00
Thibault Duplessis
65d64d011f
cosmetic changes
2013-10-06 23:56:58 +02:00
Thibault Duplessis
7ee70c666d
fix AI fen setup
2013-10-05 16:07:29 +02:00
Thibault Duplessis
7d3cd84a3e
improve production logging
2013-10-05 14:07:21 +02:00
Thibault Duplessis
9aa32ba234
simplify round API
2013-10-05 11:45:50 +02:00
Thibault Duplessis
b123b62cae
use an expire set memo instead of a DB field to remember chess960
...
rematches
2013-10-05 10:03:33 +02:00
Thibault Duplessis
08150171e6
only chess960 games can have the rematch flag
2013-10-05 09:42:17 +02:00
Thibault Duplessis
2ec4841c1b
save game and pgn concurrently
2013-10-03 12:25:05 +02:00
Thibault Duplessis
c72a21b249
drop UCI moves on takebacks
2013-10-02 10:27:45 +02:00
Thibault Duplessis
4e6b45dc90
cache UCI data to speed up AI
2013-10-02 10:17:31 +02:00
Thibault Duplessis
3087cd05d4
rewrite Ai interface and implementations
2013-10-02 02:44:16 +02:00
Thibault Duplessis
c17a8f13d7
multiple AI remotes - wip
2013-10-01 13:53:21 +02:00
Thibault Duplessis
c1e2e61f17
implement scheduler throttling
2013-09-26 14:35:05 +02:00
Thibault Duplessis
5340952d32
better finish by clock maintenance query
2013-09-25 22:48:54 +02:00
Thibault Duplessis
51b0f46641
faster maintenance tasks
2013-09-25 18:52:56 +02:00
Thibault Duplessis
49296d9f42
make game DB maintenance tasks more scalable
2013-09-25 18:34:30 +02:00
Thibault Duplessis
f7b9fd2a31
debug maintenance tasks on prod DB
2013-09-25 15:34:54 +02:00
Thibault Duplessis
ecf77a11dc
improve AI failure logging
2013-09-24 23:29:10 +02:00
Thibault Duplessis
7dee12e2c3
improve cheat detection
2013-09-24 22:57:53 +02:00
Thibault Duplessis
b91905251c
automatic cheat detection (when using lichess AI)
2013-09-24 21:49:40 +02:00
Thibault Duplessis
d2a8a145e4
desugarize some functions
2013-09-24 14:28:30 +02:00
Thibault Duplessis
b05a2d038e
improve insufficient material detection during draw
2013-09-23 15:35:53 +02:00
Thibault Duplessis
bce0f77aea
Revert "try non-blocking round actions (risking DB race conditions)"
...
This reverts commit 55bdc66645
.
2013-09-21 09:37:46 +02:00
Thibault Duplessis
b2caa6173f
make round socket history a simple class, rather than an actor
2013-09-20 21:04:25 +02:00
Thibault Duplessis
575c3e2ec4
try non-blocking round actions (risking DB race conditions)
2013-09-20 19:15:28 +02:00
Thibault Duplessis
1cb899e26c
replace actor lazy refs with akka actor selections
2013-09-19 21:29:56 +02:00
Thibault Duplessis
3af5a4e8de
upgrade all modules to scalaz 7
2013-09-19 11:59:01 +02:00
Thibault Duplessis
b19149dce8
different game chat notification style
2013-08-03 16:34:02 +02:00
Thibault Duplessis
53c244a93a
show game names in TV chat
2013-08-02 23:17:49 +02:00
Thibault Duplessis
c10a5f96bf
disable TV chat for anons
2013-08-02 18:55:27 +02:00
Thibault Duplessis
0f09b6c37a
rotate room messages using mongodb $push $slice
2013-08-02 15:34:31 +02:00
Thibault Duplessis
316969a44d
move cancels draw offers and takeback propositions
2013-08-02 15:23:25 +02:00
Thibault Duplessis
7705b8dd95
permanent TV chat
2013-08-02 13:12:50 +02:00
Thibault Duplessis
d44f55e99b
propagate creator color through rematches
2013-08-02 11:19:17 +02:00
Thibault Duplessis
8c6fdcab86
better socket actor abstraction
2013-08-01 15:50:49 +02:00
Thibault Duplessis
af8756012a
complete lichess TV
2013-07-31 18:21:45 +02:00
Thibault Duplessis
23dc89d302
update variant elos on end game
2013-07-21 18:48:29 +02:00
Thibault Duplessis
2bcd857bc5
fix multi elo calculations
2013-07-21 12:29:20 +02:00
Thibault Duplessis
9dcbd11ff3
update multielo
2013-07-21 12:16:21 +02:00
Thibault Duplessis
9a2d82e0d3
refactor AI api and start implementing AI monitoring
2013-06-12 02:00:20 +02:00
Thibault Duplessis
fa0f03eb35
real AI rematch
2013-06-10 13:35:28 +02:00
Thibault Duplessis
7bdff5e676
troll player and spectator messages are hidden to others
2013-06-05 20:03:30 +02:00
Thibault Duplessis
de26fafd71
decline challenges
2013-06-05 14:54:33 +02:00
Thibault Duplessis
080afeee05
complete challenge implementation
2013-06-05 13:55:16 +02:00
Thibault Duplessis
918fcf3322
improve hijack detection
2013-06-04 18:39:24 +02:00
Thibault Duplessis
6266955d45
Revert "disable signed JS and socket hijack protection"
...
This reverts commit 2900eef2c3
.
Conflicts:
app/views/base/layout.scala.html
modules/round/src/main/SocketHandler.scala
2013-06-04 18:23:08 +02:00
Thibault Duplessis
454d3817da
different round player timeout if disconnect or ragequit
2013-06-03 00:55:17 +02:00
Thibault Duplessis
4b1a0677ed
move round helper to round module
2013-06-02 23:35:21 +02:00
Thibault Duplessis
b538928884
fix match exhaustivity
2013-05-30 00:54:11 +02:00
Thibault Duplessis
f8898d7b04
fix move monitoring
2013-05-29 18:25:52 +02:00
Thibault Duplessis
82d1293179
more actor hierarchy refactoring
2013-05-29 18:04:04 +02:00
Thibault Duplessis
bb2e63ac48
refactor hub and socket actors
2013-05-29 17:46:21 +02:00
Thibault Duplessis
72ddcede22
make history actor a child of the round socket actor
2013-05-29 16:19:39 +02:00
Thibault Duplessis
48885664b4
Make ActorMap a trait
2013-05-29 16:19:14 +02:00
Thibault Duplessis
9b0364fd68
lazy AI backend resolution
2013-05-29 12:40:23 +02:00
Thibault Duplessis
5cbba4b997
exhaustive match
2013-05-29 12:01:08 +02:00
Thibault Duplessis
14a53b0a6f
show opponent chat status on game start
2013-05-28 14:35:04 +02:00
Thibault Duplessis
785b483937
give up with chat system message duplication skip
2013-05-28 13:48:45 +02:00
Thibault Duplessis
c4a5f08e9c
notify opponent of chat toggle
2013-05-28 13:45:38 +02:00
Thibault Duplessis
f2ac332e10
reorder imports
2013-05-24 19:04:49 +02:00
Thibault Duplessis
4e45ab2e9e
split timeline in game and user parts
2013-05-24 12:05:01 +02:00
Thibault Duplessis
2836eb9a0f
move from friend to relation, implement future sequence
2013-05-23 12:53:16 +02:00
Thibault Duplessis
0dcea2604e
some friend actors and friend box websocket setup
2013-05-19 16:09:04 -03:00
Thibault Duplessis
750ca4921c
remove GetUserIds socket message, make more use of WithUserIds
2013-05-19 11:22:45 -03:00
Thibault Duplessis
c6ed3b43db
disable signed JS and socket hijack protection
2013-05-19 01:46:27 -03:00
Thibault Duplessis
558b899111
simplify actors API
2013-05-19 01:08:09 -03:00
Thibault Duplessis
4d89b1bdc4
add lobby actor
2013-05-18 17:54:41 -03:00
Thibault Duplessis
c88d7d7ff0
negociate round resign and abort through websockets
2013-05-18 16:46:31 -03:00
Thibault Duplessis
d83ced489f
resync round member when a message is missing
2013-05-18 16:39:02 -03:00
Thibault Duplessis
71bd5d2410
remind the AI to play on page reload
2013-05-18 16:14:57 -03:00
Thibault Duplessis
64bf53e146
get player moves out of the main round actor
2013-05-18 16:06:58 -03:00
Thibault Duplessis
12772ddc7c
Give ai 10 seconds to play
2013-05-18 15:28:37 -03:00
Thibault Duplessis
c1f4fc7d18
make AI play asynchronously
2013-05-18 15:23:11 -03:00
Thibault Duplessis
e95252f70c
improve round websocket enhanced negociations
2013-05-18 14:36:13 -03:00
Thibault Duplessis
9de59615d2
do all takeback negociation in websockets
2013-05-18 12:27:11 -03:00
Thibault Duplessis
407c4b621a
all round messages publish their events
2013-05-18 11:06:14 -03:00
Thibault Duplessis
27e24b7da6
handle rematch negociation through websockets
2013-05-18 10:51:26 -03:00
Thibault Duplessis
10c6109377
tell round actor, don't ask
2013-05-18 09:10:56 -03:00
Thibault Duplessis
88917c54ff
fix player id in socket creation
2013-05-17 23:27:33 -03:00
Thibault Duplessis
3732394b41
hide round meddler and finisher
2013-05-17 23:13:51 -03:00
Thibault Duplessis
b05daadfd8
make all finishes round actor messages, remove finisher lock
2013-05-17 22:03:53 -03:00
Thibault Duplessis
21c948ca7e
more on round actor messages
2013-05-17 21:38:39 -03:00
Thibault Duplessis
53cf280c22
rename Option.zmap to Option.?? (consistent with Boolean.??)
2013-05-17 21:12:41 -03:00
Thibault Duplessis
3c6fe152cb
convert all round actions to actor messages wip
2013-05-17 21:08:08 -03:00
Thibault Duplessis
e9451c74da
simplify round socket actor names
2013-05-17 18:32:59 -03:00
Thibault Duplessis
9bb58f0c0b
round api and dependency injection
2013-05-17 18:32:45 -03:00
Thibault Duplessis
e46d88a256
Add the Round actor, counterpart of the Hand object
2013-05-17 18:32:15 -03:00
Thibault Duplessis
d6e715bf80
start replacing mute with "Mark as troll"
2013-05-16 01:58:53 -03:00
Thibault Duplessis
0579abc6e7
better crowd notification
2013-05-15 00:07:55 -03:00
Thibault Duplessis
c9484b7552
try to unify chat messages / round is OK
2013-05-14 13:32:39 -03:00
Thibault Duplessis
cc99302fa3
tweaks and formatting
2013-05-13 23:03:43 -03:00
Thibault Duplessis
cb1ac52905
fix round watcher room
2013-05-13 19:50:21 -03:00
Thibault Duplessis
7510e727de
implement actor lazy references
2013-05-12 22:28:40 -03:00
Thibault Duplessis
5ae4fc5145
more socket hub actor abstraction
2013-05-12 20:38:40 -03:00
Thibault Duplessis
38e17df5c8
abstract socket hubs, reduce message objects number
2013-05-12 20:32:14 -03:00
Thibault Duplessis
a5315ad635
ensure broadcasted socket actors are loaded beforehand
2013-05-12 13:30:19 -03:00
Thibault Duplessis
7ba1282157
review socket broadcasting
2013-05-12 12:27:28 -03:00
Thibault Duplessis
b085fbf35d
complete tournament api, remove Future.{doIf, doUnless}
2013-05-11 18:45:39 -03:00
Thibault Duplessis
f94e9a8115
work on tournament api
2013-05-11 18:20:24 -03:00
Thibault Duplessis
192c28d489
more on tournament sockets
2013-05-10 18:45:59 -03:00
Thibault Duplessis
c929b02057
improve lobby and tournament socket handlers
2013-05-10 18:27:57 -03:00
Thibault Duplessis
36974b6a3f
tournament room model and repository
2013-05-10 14:50:52 -03:00
Thibault Duplessis
63240447e8
more type simplification
2013-05-09 21:39:06 -03:00
Thibault Duplessis
82231f5de9
game indexing + fixes
2013-05-09 20:00:27 -03:00
Thibault Duplessis
2768fb8457
many fixes
2013-05-09 15:55:33 -03:00
Thibault Duplessis
2bb4aafa26
Future effectFold and flatFold
2013-05-09 14:06:56 -03:00
Thibault Duplessis
637c824c59
more efficient round events versioning
2013-05-09 12:43:58 -03:00
Thibault Duplessis
8683dba6a0
fix round socket batch events
2013-05-09 12:39:17 -03:00
Thibault Duplessis
4890aa30fa
minor tweaks
2013-05-09 12:27:38 -03:00
Thibault Duplessis
46d3370a67
Fu[Valid[A]] == Valid[Fu[A]] == Fu[A]
2013-05-09 11:55:44 -03:00
Thibault Duplessis
5ede64a6c9
more monad combinators
2013-05-09 09:23:12 -03:00
Thibault Duplessis
e2228f26ab
various fixes / improvements
2013-05-09 08:20:43 -03:00
Thibault Duplessis
0b385840dd
rewrite socket handlers
2013-05-08 22:15:34 -03:00
Thibault Duplessis
9655a1b786
reporting app
2013-05-08 15:30:55 -03:00