lila/conf/routes

438 lines
27 KiB
Plaintext
Raw Normal View History

# Accessibility
POST /toggle-blind-mode controllers.Main.toggleBlindMode
2013-03-18 17:36:22 -06:00
# Lobby
GET / controllers.Lobby.home
2014-07-29 14:40:07 -06:00
GET /lobby/socket/v:apiVersion controllers.Lobby.socket(apiVersion: Int)
2014-12-17 17:02:59 -07:00
GET /lobby/seeks controllers.Lobby.seeks
2013-03-18 17:36:22 -06:00
# Timeline
GET /timeline controllers.Timeline.home
POST /timeline/unsub/:channel controllers.Timeline.unsub(channel: String)
2015-09-21 02:08:48 -06:00
# Search
GET /games/search controllers.Search.index(page: Int ?= 1)
GET /games/export/search controllers.Search.export
# Game
GET /games/export-form/:user controllers.Game.export(user: String)
POST /games/export/:user controllers.Game.exportConfirm(user: String)
2013-07-31 09:21:42 -06:00
# TV
2013-07-31 10:21:45 -06:00
GET /tv controllers.Tv.index
2014-02-23 06:03:48 -07:00
GET /tv/embed controllers.Tv.embed
GET /tv/frame controllers.Tv.frame
GET /tv/stream/config controllers.Tv.streamConfig
POST /tv/stream/config controllers.Tv.streamConfigSave
2016-01-22 23:17:56 -07:00
GET /tv/stream/:id controllers.Tv.streamIn(id: String)
GET /tv/feed controllers.Tv.feed
2015-06-16 10:46:30 -06:00
GET /tv/:chanKey controllers.Tv.onChannel(chanKey: String)
GET /tv/:chanKey/$gameId<\w{8}>/$color<white|black>/sides controllers.Tv.sides(chanKey: String, gameId: String, color: String)
2015-09-20 03:21:32 -06:00
GET /games controllers.Tv.games
GET /games/:chanKey controllers.Tv.gamesChannel(chanKey: String)
2013-07-31 09:21:42 -06:00
# Relation
POST /rel/follow/:userId controllers.Relation.follow(userId: String)
POST /rel/unfollow/:userId controllers.Relation.unfollow(userId: String)
POST /rel/block/:userId controllers.Relation.block(userId: String)
POST /rel/unblock/:userId controllers.Relation.unblock(userId: String)
GET /@/:username/following controllers.Relation.following(username: String, page: Int ?= 1)
GET /@/:username/followers controllers.Relation.followers(username: String, page: Int ?= 1)
GET /rel/blocks controllers.Relation.blocks(page: Int ?= 1)
2015-11-26 21:05:59 -07:00
# Insight
POST /insights/refresh/:username controllers.Insight.refresh(username: String)
POST /insights/data/:username controllers.Insight.json(username: String)
2015-11-28 01:17:49 -07:00
GET /insights/:username controllers.Insight.index(username: String)
GET /insights/:username/:metric/:dimension controllers.Insight.path(username: String, metric: String, dimension: String, filters: String = "")
GET /insights/:username/:metric/:dimension/*filters controllers.Insight.path(username: String, metric: String, dimension: String, filters: String)
2015-07-18 11:59:23 -06:00
2016-05-11 10:21:03 -06:00
# User subpages
2015-12-11 22:49:00 -07:00
GET /@/:username/tournaments/:path controllers.UserTournament.path(username: String, path: String, page: Int ?= 1)
2016-05-27 05:49:17 -06:00
GET /@/:username/study controllers.Study.byOwnerDefault(username: String, page: Int ?= 1)
GET /@/:username/study/:order controllers.Study.byOwner(username: String, order: String, page: Int ?= 1)
GET /@/:username/study/member/:order controllers.Study.byMember(username: String, order: String, page: Int ?= 1)
GET /@/:username/study/public/:order controllers.Study.byOwnerPublic(username: String, order: String, page: Int ?= 1)
GET /@/:username/study/private/:order controllers.Study.byOwnerPrivate(username: String, order: String, page: Int ?= 1)
GET /@/:username/study/likes/:order controllers.Study.byLikes(username: String, order: String, page: Int ?= 1)
2013-03-20 08:23:41 -06:00
# User
GET /@/:username/opponents controllers.User.opponents(username: String)
GET /@/:username/mod controllers.User.mod(username: String)
2014-04-22 17:22:57 -06:00
POST /@/:username/note controllers.User.writeNote(username: String)
GET /@/:username/mini controllers.User.showMini(username: String)
GET /@/:username/tv controllers.User.tv(username: String)
2015-12-23 20:41:28 -07:00
GET /@/:username/perf/:perfKey controllers.User.perfStat(username: String, perfKey: String)
2013-05-08 09:41:12 -06:00
GET /@/:username/:filterName controllers.User.showFilter(username: String, filterName: String, page: Int ?= 1)
2013-03-20 08:23:41 -06:00
GET /@/:username controllers.User.show(username: String)
2014-08-02 11:33:46 -06:00
GET /player controllers.User.list
GET /player/top/200/:perfKey controllers.User.top200(perfKey: String)
GET /player/top/week controllers.User.topWeek
GET /player/online controllers.User.online
GET /player/autocomplete controllers.User.autocomplete
2013-10-20 07:46:29 -06:00
# Account
GET /account/passwd controllers.Account.passwd
POST /account/passwd controllers.Account.passwdApply
2014-12-10 15:07:43 -07:00
GET /account/email controllers.Account.email
POST /account/email controllers.Account.emailApply
2013-10-20 07:46:29 -06:00
GET /account/close controllers.Account.close
POST /account/closeConfirm controllers.Account.closeConfirm
GET /account/profile controllers.Account.profile
POST /account/profile controllers.Account.profileApply
2015-04-12 00:36:27 -06:00
GET /account/kid controllers.Account.kid
POST /account/kidConfirm controllers.Account.kidConfirm
2015-11-10 07:18:03 -07:00
GET /account/security controllers.Account.security
POST /account/signout/:sessionId controllers.Account.signout(sessionId: String)
2014-07-21 14:46:52 -06:00
GET /account/info controllers.Account.info
2014-05-31 11:01:43 -06:00
# Site
2015-09-06 08:28:37 -06:00
GET /socket controllers.Main.websocket
2014-05-31 11:01:43 -06:00
# Blog
2015-09-06 08:28:37 -06:00
GET /blog controllers.Blog.index(ref: Option[String] ?= None)
GET /blog/:id/:slug controllers.Blog.show(id: String, slug: String, ref: Option[String] ?= None)
GET /blog.atom controllers.Blog.atom(ref: Option[String] ?= None)
2014-05-31 11:01:43 -06:00
2014-12-16 05:46:36 -07:00
# Training - Opening
2014-12-16 04:04:19 -07:00
GET /training/opening controllers.Opening.home
2015-01-08 16:08:09 -07:00
GET /training/opening/history controllers.Opening.history
2014-12-16 04:04:19 -07:00
GET /training/opening/:id controllers.Opening.show(id: Int)
POST /training/opening/:id controllers.Opening.attempt(id: Int)
2014-12-16 05:46:36 -07:00
# Training - Coordinate
GET /training/coordinate controllers.Coordinate.home
POST /training/coordinate/score controllers.Coordinate.score
POST /training/coordinate/color controllers.Coordinate.color
2014-05-03 17:45:14 -06:00
# Training - Puzzle
GET /training controllers.Puzzle.home
2014-04-21 10:20:49 -06:00
POST /training/difficulty controllers.Puzzle.difficulty
GET /training/new controllers.Puzzle.newPuzzle
GET /training/history controllers.Puzzle.history
GET /training/daily controllers.Puzzle.daily
GET /training/embed controllers.Puzzle.embed
GET /training/frame controllers.Puzzle.frame
GET /training/export/png/:id.png controllers.Export.puzzlePng(id: Int)
GET /training/:id controllers.Puzzle.show(id: Int)
2014-09-15 11:11:24 -06:00
GET /training/:id/load controllers.Puzzle.load(id: Int)
POST /training/:id/attempt controllers.Puzzle.attempt(id: Int)
POST /training/:id/vote controllers.Puzzle.vote(id: Int)
# User Analysis
2016-02-24 20:58:45 -07:00
GET /analysis/*something controllers.UserAnalysis.parse(something: String)
GET /analysis controllers.UserAnalysis.index
2016-02-24 22:41:27 -07:00
POST /analysis/pgn controllers.UserAnalysis.pgn
2016-05-11 10:21:03 -06:00
# Study
2016-02-27 04:30:38 -07:00
GET /study/$id<\w{8}> controllers.Study.show(id: String)
POST /study controllers.Study.create
2016-04-18 04:51:48 -06:00
GET /study/$id<\w{8}>/socket/v:apiVersion controllers.Study.websocket(id: String, apiVersion: Int)
GET /study/$id<\w{8}>.pgn controllers.Study.pgn(id: String)
2016-05-12 08:21:25 -06:00
POST /study/$id<\w{8}>/delete controllers.Study.delete(id: String)
GET /study/$id<\w{8}>/$chapterId<\w{8}> controllers.Study.chapter(id: String, chapterId: String)
2016-02-27 04:30:38 -07:00
# Round
2014-06-29 05:07:17 -06:00
GET /$gameId<\w{8}> controllers.Round.watcher(gameId: String, color: String = "white")
GET /$gameId<\w{8}>/$color<white|black> controllers.Round.watcher(gameId: String, color: String)
GET /$fullId<\w{12}> controllers.Round.player(fullId: String)
GET /$gameId<\w{8}>/$color<white|black>/socket controllers.Round.websocketWatcher(gameId: String, color: String)
GET /$fullId<\w{12}>/socket/v:apiVersion controllers.Round.websocketPlayer(fullId: String, apiVersion: Int)
GET /$gameId<\w{8}>/$color<white|black>/sides/watcher controllers.Round.sidesWatcher(gameId: String, color: String)
GET /$gameId<\w{8}>/$color<white|black>/sides/player controllers.Round.sidesPlayer(gameId: String, color: String)
2014-12-22 10:12:29 -07:00
GET /$gameId<\w{8}>/others controllers.Round.others(gameId: String)
2014-06-29 05:07:17 -06:00
GET /$gameId<\w{8}>/continue/:mode controllers.Round.continue(gameId: String, mode: String)
2014-12-07 04:32:18 -07:00
POST /$gameId<\w{8}>/note controllers.Round.writeNote(gameId: String)
GET /$gameId<\w{8}>/mini controllers.Round.mini(gameId: String, color: String = "white")
GET /$gameId<\w{8}>/$color<white|black>/mini controllers.Round.mini(gameId: String, color: String)
2016-02-17 09:00:47 -07:00
GET /$fullId<\w{12}>/mini controllers.Round.miniFullId(fullId: String)
2014-06-29 05:07:17 -06:00
GET /$gameId<\w{8}>/edit controllers.Editor.game(gameId: String)
GET /$gameId<\w{8}>/$color<white|black>/analysis controllers.UserAnalysis.game(gameId: String, color: String)
2015-09-16 15:03:56 -06:00
POST /$fullId<\w{12}>/forecasts controllers.UserAnalysis.forecasts(fullId: String)
POST /$fullId<\w{12}>/forecasts/:uci controllers.UserAnalysis.forecastsOnMyTurn(fullId: String, uci: String)
POST /$fullId<\w{12}>/resign controllers.Round.resign(fullId: String)
2013-12-23 11:56:30 -07:00
2015-10-07 11:18:48 -06:00
GET /$gameId<\w{8}>.atom controllers.Round.atom(gameId: String, color: String = "white")
GET /$gameId<\w{8}>/$color<white|black>.atom controllers.Round.atom(gameId: String, color: String)
POST /$gameId<\w{8}>/delete controllers.Game.delete(gameId: String)
GET /round-next/$gameId<\w{8}> controllers.Round.next(gameId: String)
GET /whats-next/$fullId<\w{12}> controllers.Round.whatsNext(fullId: String)
2014-06-05 04:07:41 -06:00
# Round accessibility: text representation
2014-06-29 05:07:17 -06:00
GET /$fullId<\w{12}>/text controllers.Round.playerText(fullId: String)
GET /$gameId<\w{8}>/$color<white|black>/text controllers.Round.watcherText(gameId: String, color: String)
2014-06-05 04:07:41 -06:00
# Tournament
GET /tournament controllers.Tournament.home(page: Int ?= 1)
2013-05-12 09:02:45 -06:00
GET /tournament/new controllers.Tournament.form
POST /tournament/new controllers.Tournament.create
2014-07-23 15:08:59 -06:00
GET /tournament/$id<\w{8}> controllers.Tournament.show(id: String)
GET /tournament/$id<\w{8}>/standing/:page controllers.Tournament.standing(id: String, page: Int)
GET /tournament/$id<\w{8}>/socket/v:apiVersion controllers.Tournament.websocket(id: String, apiVersion: Int)
GET /tournament/$id<\w{8}>/game-standing controllers.Tournament.gameStanding(id: String)
2014-07-23 15:08:59 -06:00
POST /tournament/$id<\w{8}>/join controllers.Tournament.join(id: String)
POST /tournament/$id<\w{8}>/withdraw controllers.Tournament.withdraw(id: String)
GET /tournament/$id<\w{8}>/mini/:user/:nb controllers.Tournament.userGameNbMini(id: String, user: String, nb: Int)
GET /tournament/$id<\w{8}>/show/:user/:nb controllers.Tournament.userGameNbShow(id: String, user: String, nb: Int)
2015-10-02 14:52:00 -06:00
GET /tournament/$id<\w{8}>/player/:user controllers.Tournament.player(id: String, user: String)
POST /tournament/$id<\w{8}>/terminate controllers.Tournament.terminate(id: String)
2014-07-23 15:08:59 -06:00
GET /tournament/help controllers.Tournament.help(system: Option[String] ?= None)
2013-12-23 11:56:30 -07:00
2016-03-28 05:08:48 -06:00
# Tournament CRUD
GET /tournament/manager controllers.TournamentCrud.index
GET /tournament/manager/$id<\w{8}> controllers.TournamentCrud.edit(id: String)
POST /tournament/manager/$id<\w{8}> controllers.TournamentCrud.update(id: String)
GET /tournament/manager/new controllers.TournamentCrud.form
POST /tournament/manager controllers.TournamentCrud.create
2015-03-30 16:40:26 -06:00
# Simul
GET /simul controllers.Simul.home
GET /simul/new controllers.Simul.form
POST /simul/new controllers.Simul.create
2015-04-03 07:33:31 -06:00
GET /simul/reload controllers.Simul.homeReload
GET /simul/$id<\w{8}> controllers.Simul.show(id: String)
GET /simul/$id<\w{8}>/socket/v:apiVersion controllers.Simul.websocket(id: String, apiVersion: Int)
POST /simul/$id<\w{8}>/accept/:user controllers.Simul.accept(id: String, user: String)
POST /simul/$id<\w{8}>/reject/:user controllers.Simul.reject(id: String, user: String)
POST /simul/$id<\w{8}>/start controllers.Simul.start(id: String)
POST /simul/$id<\w{8}>/abort controllers.Simul.abort(id: String)
2015-04-03 15:04:59 -06:00
POST /simul/$id<\w{8}>/join/:variant controllers.Simul.join(id: String, variant: String)
POST /simul/$id<\w{8}>/withdraw controllers.Simul.withdraw(id: String)
2015-03-30 16:40:26 -06:00
# Team
2013-05-06 14:49:12 -06:00
GET /team controllers.Team.home(page: Int ?= 1)
GET /team/new controllers.Team.form
POST /team/new controllers.Team.create
GET /team/me controllers.Team.mine
2015-09-09 09:32:49 -06:00
GET /team/all controllers.Team.all(page: Int ?= 1)
2013-04-09 12:58:34 -06:00
GET /team/requests controllers.Team.requests
2013-05-06 14:49:12 -06:00
GET /team/search controllers.Team.search(text: String ?= "", page: Int ?= 1)
GET /team/:id controllers.Team.show(id: String, page: Int ?= 1)
2013-05-06 14:49:12 -06:00
GET /team/:id/join controllers.Team.joinPage(id: String)
POST /team/:id/join controllers.Team.join(id: String)
POST /team/:id/quit controllers.Team.quit(id: String)
GET /team/:id/request/new controllers.Team.requestForm(id: String)
POST /team/:id/request/new controllers.Team.requestCreate(id: String)
POST /team/:id/request/process controllers.Team.requestProcess(id: String)
GET /team/:id/edit controllers.Team.edit(id: String)
POST /team/:id/edit controllers.Team.update(id: String)
GET /team/:id/kick controllers.Team.kickForm(id: String)
POST /team/:id/kick controllers.Team.kick(id: String)
POST /team/:id/close controllers.Team.close(id: String)
# Analyse
2015-06-27 11:01:49 -06:00
POST /$gameId<\w{8}>/request-analysis controllers.Analyse.requestAnalysis(gameId: String)
2013-12-23 11:56:30 -07:00
GET /game/export/$gameId<\w{8}>.pgn controllers.Export.pgn(gameId: String)
GET /game/export/pdf/$gameId<\w{8}>.pdf controllers.Export.pdf(gameId: String)
GET /game/export/png/$gameId<\w{8}>.png controllers.Export.png(gameId: String)
2016-03-11 10:09:59 -07:00
# Fishnet
POST /fishnet/acquire controllers.Fishnet.acquire
2016-03-13 04:27:27 -06:00
POST /fishnet/move/$workId<\w{8}> controllers.Fishnet.move(workId: String)
POST /fishnet/analysis/$workId<\w{8}> controllers.Fishnet.analysis(workId: String)
2016-03-14 22:53:39 -06:00
POST /fishnet/abort/$workId<\w{8}> controllers.Fishnet.abort(workId: String)
2016-03-22 11:48:54 -06:00
GET /fishnet/key/$key<\w{8}> controllers.Fishnet.keyExists(key: String)
2016-03-11 10:09:59 -07:00
2013-10-19 09:22:32 -06:00
# Pref
POST /pref/:name controllers.Pref.set(name: String)
2015-09-09 10:09:15 -06:00
GET /account/preferences/:categ controllers.Pref.form(categ: String)
2013-10-21 04:33:39 -06:00
POST /account/preferences controllers.Pref.formApply
2015-06-21 07:51:42 -06:00
POST /account/preferences/mini controllers.Pref.miniFormApply
POST /account/preferences/tag/:name/:value controllers.Pref.saveTag(name: String, value: String)
2013-12-23 11:56:30 -07:00
# Setup
2013-05-08 20:00:13 -06:00
GET /setup/ai controllers.Setup.aiForm
POST /setup/ai controllers.Setup.ai
2014-05-24 10:43:09 -06:00
GET /setup/friend controllers.Setup.friendForm(user: Option[String] ?= None)
POST /setup/friend controllers.Setup.friend(user: Option[String] ?= None)
2013-05-08 20:00:13 -06:00
GET /setup/hook controllers.Setup.hookForm
2015-04-22 03:47:55 -06:00
POST /setup/hook/:uid/like/:gameId controllers.Setup.like(uid: String, gameId: String)
2013-05-18 21:31:06 -06:00
POST /setup/hook/:uid controllers.Setup.hook(uid: String)
2013-05-08 20:00:13 -06:00
GET /setup/filter controllers.Setup.filterForm
POST /setup/filter controllers.Setup.filter
GET /setup/validate-fen controllers.Setup.validateFen
2013-12-23 11:56:30 -07:00
2016-01-26 22:56:30 -07:00
# Challenge
GET /challenge controllers.Challenge.all
2016-02-03 01:26:22 -07:00
GET /challenge/$id<\w{8}> controllers.Challenge.show(id: String)
2016-01-31 06:44:12 -07:00
POST /challenge/$id<\w{8}>/accept controllers.Challenge.accept(id: String)
POST /challenge/$id<\w{8}>/decline controllers.Challenge.decline(id: String)
2016-01-30 03:27:41 -07:00
POST /challenge/$id<\w{8}>/cancel controllers.Challenge.cancel(id: String)
2016-02-01 19:28:05 -07:00
GET /challenge/$id<\w{8}>/socket/v:apiVersion controllers.Challenge.websocket(id: String, apiVersion: Int)
POST /challenge/rematch-of/$id<\w{8}> controllers.Challenge.rematchOf(id: String)
2016-01-26 22:56:30 -07:00
# Notify
2016-05-31 17:20:34 -06:00
GET /notify controllers.Notify.recent(page: Int ?= 1)
2015-03-22 06:38:01 -06:00
# Video
GET /video controllers.Video.index
2015-03-24 14:39:45 -06:00
GET /video/tags controllers.Video.tags
2015-03-22 10:52:26 -06:00
GET /video/author/:author controllers.Video.author(author: String)
2015-03-22 08:01:57 -06:00
GET /video/:id controllers.Video.show(id: String)
2015-03-22 06:38:01 -06:00
# I18n
2013-04-09 12:58:34 -06:00
GET /translation/contribute controllers.I18n.contribute
2013-05-08 10:15:55 -06:00
GET /translation/form/:lang controllers.I18n.translationForm(lang: String)
POST /translation/post/:lang controllers.I18n.translationPost(lang: String)
2013-05-08 10:15:55 -06:00
GET /translation/fetch/:from controllers.I18n.fetch(from: Int)
POST /translation/hideCalls controllers.I18n.hideCalls
2014-12-31 09:15:34 -07:00
POST /translation/select controllers.I18n.select
2013-12-23 11:56:30 -07:00
# Authentication
2013-04-09 12:58:34 -06:00
GET /login controllers.Auth.login
POST /login controllers.Auth.authenticate
GET /logout controllers.Auth.logout
GET /signup controllers.Auth.signup
POST /signup controllers.Auth.signupPost
2015-06-25 08:54:26 -06:00
GET /signup/check-your-email/:name controllers.Auth.checkYourEmail(name: String)
GET /signup/confirm/:token controllers.Auth.signupConfirmEmail(token: String)
2014-12-14 17:32:18 -07:00
GET /password/reset controllers.Auth.passwordReset
2015-06-25 09:49:48 -06:00
POST /password/reset/send controllers.Auth.passwordResetApply
2014-12-14 17:32:18 -07:00
GET /password/reset/sent/:email controllers.Auth.passwordResetSent(email: String)
GET /password/reset/confirm/:token controllers.Auth.passwordResetConfirm(token: String)
POST /password/reset/confirm/:token controllers.Auth.passwordResetConfirmApply(token: String)
2015-08-12 03:46:44 -06:00
POST /set-fingerprint/:hash/:ms controllers.Auth.setFingerprint(hash: String, ms: Int)
2013-12-23 11:56:30 -07:00
# Mod
POST /mod/:username/engine controllers.Mod.engine(username: String)
2015-02-13 07:14:39 -07:00
POST /mod/:username/booster controllers.Mod.booster(username: String)
POST /mod/:username/troll controllers.Mod.troll(username: String)
POST /mod/:username/ban controllers.Mod.ban(username: String)
2014-02-01 06:13:22 -07:00
POST /mod/:username/close controllers.Mod.closeAccount(username: String)
2013-09-11 04:38:16 -06:00
POST /mod/:username/reopen controllers.Mod.reopenAccount(username: String)
2014-02-26 17:18:09 -07:00
POST /mod/:username/title controllers.Mod.setTitle(username: String)
GET /mod/:username/communication controllers.Mod.communication(username: String)
POST /mod/:ip/ipban controllers.Mod.ipban(ip: String)
GET /mod/log controllers.Mod.log
POST /mod/:username/refreshUserAssess controllers.Mod.refreshUserAssess(username: String)
2015-08-12 05:17:16 -06:00
POST /mod/:username/email controllers.Mod.setEmail(username: String)
2016-01-04 21:18:39 -07:00
POST /mod/:username/notify-slack controllers.Mod.notifySlack(username: String)
GET /mod/ip-intel controllers.Mod.ipIntel(ip: String)
2016-01-10 21:09:37 -07:00
GET /mod/leaderboard controllers.Mod.gamify
2016-01-10 22:18:26 -07:00
GET /mod/leaderboard/:period controllers.Mod.gamifyPeriod(period: String)
GET /mod/search controllers.Mod.search
2016-06-10 18:13:57 -06:00
GET /mod/chat-user/:username controllers.Mod.chatUser(username: String)
2013-12-23 11:56:30 -07:00
# Bookmark
2014-06-29 05:07:17 -06:00
POST /bookmark/$gameId<\w{8}> controllers.Bookmark.toggle(gameId: String)
2013-12-23 11:56:30 -07:00
# Forum
GET /forum controllers.ForumCateg.index
GET /forum/recent controllers.ForumPost.recent
GET /forum/search controllers.ForumPost.search(text: String ?= "", page: Int ?= 1)
2013-04-09 12:58:34 -06:00
GET /forum/:slug controllers.ForumCateg.show(slug: String, page: Int ?= 1)
GET /forum/:categSlug/form controllers.ForumTopic.form(categSlug: String)
POST /forum/:categSlug/new controllers.ForumTopic.create(categSlug: String)
GET /forum/:categSlug/:slug controllers.ForumTopic.show(categSlug: String, slug: String, page: Int ?= 1)
POST /forum/:categSlug/:slug/close controllers.ForumTopic.close(categSlug: String, slug: String)
POST /forum/:categSlug/:slug/hide controllers.ForumTopic.hide(categSlug: String, slug: String)
POST /forum/:categSlug/:slug/new controllers.ForumPost.create(categSlug: String, slug: String, page: Int ?= 1)
POST /forum/:categSlug/delete/:id controllers.ForumPost.delete(categSlug: String, id: String)
2013-05-27 09:01:19 -06:00
GET /forum/redirect/post/:id controllers.ForumPost.redirect(id: String)
2013-12-23 11:56:30 -07:00
# Message
2013-05-06 15:52:48 -06:00
GET /inbox controllers.Message.inbox(page: Int ?= 1)
GET /inbox/new controllers.Message.form
POST /inbox/new controllers.Message.create
2014-06-29 05:07:17 -06:00
GET /inbox/$id<\w{8}> controllers.Message.thread(id: String)
POST /inbox/$id<\w{8}> controllers.Message.answer(id: String)
POST /inbox/$id<\w{8}>/delete controllers.Message.delete(id: String)
POST /inbox/$id<\w{8}>/read controllers.Message.markAsRead(id: String)
2013-12-23 11:56:30 -07:00
2013-05-31 15:48:04 -06:00
# Paste
GET /paste controllers.Importer.importGame
POST /import controllers.Importer.sendGame
GET /import/master/$id<\w{8}>/:color controllers.Importer.masterGame(id: String, color: String)
2013-07-21 06:27:47 -06:00
# Edit
2016-05-13 16:01:44 -06:00
GET /editor.json controllers.Editor.data
GET /editor/*urlFen controllers.Editor.load(urlFen: String)
GET /editor controllers.Editor.index
2013-12-23 11:56:30 -07:00
# Report
GET /report controllers.Report.form
POST /report controllers.Report.create
GET /report/thanks controllers.Report.thanks(reported: String)
2013-07-27 14:55:29 -06:00
GET /report/list controllers.Report.list
POST /report/:id/process controllers.Report.process(id: String)
# QA
GET /qa controllers.QaQuestion.index(page: Option[Int] ?= None)
GET /qa/search controllers.QaQuestion.search
GET /qa/ask controllers.QaQuestion.ask
POST /qa/ask controllers.QaQuestion.doAsk
GET /qa/tag/:slug controllers.QaQuestion.byTag(slug: String)
GET /qa/:id/:slug controllers.QaQuestion.show(id: Int, slug: String)
2014-07-05 08:50:04 -06:00
GET /qa/:id/:slug/edit controllers.QaQuestion.edit(id: Int, slug: String)
POST /qa/:id/edit controllers.QaQuestion.doEdit(id: Int)
POST /qa/:id/vote controllers.QaQuestion.vote(id: Int)
POST /qa/:id/rm controllers.QaQuestion.remove(id: Int)
POST /qa/:id/answer controllers.QaAnswer.create(id: Int)
POST /qa/:id/:a/vote controllers.QaAnswer.vote(id: Int, a: Int)
POST /qa/:id/:a/accept controllers.QaAnswer.accept(id: Int, a: Int)
POST /qa/:id/:a/edit-answer controllers.QaAnswer.doEdit(id: Int, a: Int)
POST /qa/:id/:a/rm-answer controllers.QaAnswer.remove(id: Int, a: Int)
2014-09-09 13:55:44 -06:00
POST /qa/:id/:a/move controllers.QaAnswer.moveTo(id: Int, a: Int)
2014-07-05 08:50:04 -06:00
POST /qa/:id/comment controllers.QaComment.question(id: Int)
POST /qa/:id/:a/comment controllers.QaComment.answer(id: Int, a: Int)
POST /qa/:id/:c/rm-comment controllers.QaComment.remove(id: Int, c: String)
2015-09-20 14:04:02 -06:00
# Stats
GET /stat/rating/distribution/:perf controllers.Stat.ratingDistribution(perf: String)
2013-12-30 19:00:56 -07:00
# API
2014-01-08 17:06:20 -07:00
GET /api/user controllers.Api.users
2016-01-21 23:45:07 -07:00
GET /api/user/:name controllers.Api.user(name: String)
GET /api/user/:name/games controllers.Api.userGames(name: String)
2014-06-06 03:08:43 -06:00
GET /api/game/:id controllers.Api.game(id: String)
2015-01-17 04:35:54 -07:00
GET /api/status controllers.Api.status
2013-12-30 19:00:56 -07:00
2013-04-09 12:58:34 -06:00
# Misc
POST /cli controllers.Cli.command
2014-08-25 02:09:16 -06:00
GET /captcha/$id<\w{8}> controllers.Main.captchaCheck(id: String)
2013-04-09 12:58:34 -06:00
GET /developers controllers.Main.developers
2013-05-31 06:27:18 -06:00
GET /embed controllers.Main.embed
2014-12-29 14:26:11 -07:00
GET /themepicker controllers.Main.themepicker
2015-02-09 10:02:57 -07:00
GET /mobile controllers.Main.mobile
GET /lag controllers.Main.lag
2014-08-25 02:09:16 -06:00
# Map
GET /network controllers.WorldMap.index
GET /network/stream controllers.WorldMap.stream
# Mobile Push
2015-12-13 01:25:38 -07:00
POST /mobile/register/:platform/:deviceId controllers.Main.mobileRegister(platform: String, deviceId: String)
POST /mobile/unregister controllers.Main.mobileUnregister
2014-06-29 09:42:09 -06:00
# Donate
GET /donate controllers.Donation.index
GET /donate/thanks controllers.Donation.thanks
2015-10-04 05:09:16 -06:00
POST /donate/thanks controllers.Donation.thanksRedirect
2014-06-29 09:42:09 -06:00
POST /donate/ipn controllers.Donation.ipn
2016-01-24 23:40:59 -07:00
# Pages
GET /thanks controllers.Page.thanks
GET /terms-of-service controllers.Page.tos
GET /privacy controllers.Page.privacy
GET /contact controllers.Page.contact
2016-03-04 20:00:41 -07:00
GET /swag controllers.Page.swag
2016-06-08 05:41:08 -06:00
GET /about controllers.Page.about
2016-01-24 23:40:59 -07:00
# Variants
2016-01-26 03:24:59 -07:00
GET /variant controllers.Page.variantHome
GET /variant/:key controllers.Page.variant(key)
2016-01-24 23:40:59 -07:00
# Help
GET /help/contribute controllers.Page.contribute
GET /help/master controllers.Page.master
GET /help/stream-on-lichess controllers.Page.streamHowTo
2016-01-20 23:48:13 -07:00
POST /jslog/$id<\w{12}> controllers.Main.jslog(id)
2015-08-15 15:04:14 -06:00
# Assets
2016-05-10 06:23:38 -06:00
GET /glyphs controllers.Main.glyphs
GET /assets/*file controllers.Assets.at(path="/public", file)