33 lines
1.7 KiB
Plaintext
33 lines
1.7 KiB
Plaintext
ping nbm
|
|
extract chess
|
|
chat should autoscroll only when at bottom
|
|
back button to game -> old status
|
|
finish flagged game
|
|
It's possible to join your own game and win it, which will then be displayed as a win and I saw players who abuse this to manipulate their stats.
|
|
hide logout button
|
|
forms that validate while constructing the object
|
|
player timeout depending on game duration
|
|
chess captcha is broken sometimes curl localhost:9000/api/captcha/solve/36yabr3t
|
|
do not count games vs engine as win/loss
|
|
prevent cheaters from joining the game
|
|
translate "view rematch"
|
|
translate clock name
|
|
start chess960 after both player move http://fr.lichess.org/forum/lichess-feedback/clock-fairness-in-chess960-games
|
|
elo floor 800
|
|
prevent round watcher/player response client caching
|
|
user info is expensive - cache it
|
|
chess960 confirmation http://fr.lichess.org/forum/lichess-feedback/separate-960-lobby?page=1#7
|
|
use play-navigator router case class MyRegexStr(value: String); implicit val MyRegexStrPathParam: PathParam[MyRegexStr] = new PathParam[MyRegexStr] { def apply(s: MyRegexStr) = s.value}; def unapply(s: String) = val Rx = "(\w+)".r; s match { case Rx(x) => Some(x); case _ => None } }
|
|
http://codetunes.com/2012/05/09/scala-dsl-tutorial-writing-web-framework-router
|
|
use POST instead of GET where it makes sense
|
|
|
|
next deploy:
|
|
upgrade jre (jdk?)
|
|
db.user.update({},{$unset:{lastLogin: true}}, false, true)
|
|
db.user.update({},{$unset:{isOnline: true}}, false, true)
|
|
db.user.update({},{$unset:{gameConfigs: true}}, false, true)
|
|
db.user.update({},{$unset:{email: true}}, false, true)
|
|
db.user.dropIndex("emailCanonical_1")
|
|
db.user.update({},{$unset:{emailCanonical: true}}, false, true)
|
|
db.user.update({},{$unset:{updatedAt: true}}, false, true)
|