Commit graph

262 commits

Author SHA1 Message Date
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