Merge branch 'master' into persistentChallenge

* master: (21 commits)
  update test fixtures
  regexify the disposable email domain database
  support disposable email regex
  test disposable domain detection
  upgrade playframework plugin
  tweak error message
  make the daily Racing Kings tournament a SuperBlitz event
  message case
  update donation goal
  ru "русский язык" translation #15726. Author: alexfox.
  pl "polski" translation #15725. Author: Suchar.
  unfuck romanian translation
  ro "Română" translation #15724. Author: Daccad.
  turns out the round/simul/tournament socket version was never used
  close #1559
  expose tournament socket version in the API, on demand - closes #1563
  tweak import form style
  fix import resign color
  Add Faroe Islands to list of countries
  Added email to login form text
  ...
This commit is contained in:
Thibault Duplessis 2016-02-03 08:40:26 +07:00
commit 5e108ea541
88 changed files with 1408 additions and 152 deletions

View file

@ -53,18 +53,21 @@ object Tournament extends LilaController {
negotiate(
html = repo byId id flatMap {
_.fold(tournamentNotFound.fuccess) { tour =>
env.version(tour.id) zip env.jsonView(tour, page, ctx.userId, none) zip chatOf(tour) map {
case ((version, data), chat) => html.tournament.show(tour, version, data, chat)
env.version(tour.id) zip chatOf(tour) flatMap {
case (version, chat) => env.jsonView(tour, page, ctx.userId, none, version.some) map {
html.tournament.show(tour, _, chat)
}
}
}
},
api = _ => repo byId id flatMap {
case None => NotFound(Json.obj("error" -> "No such tournament")).fuccess
case Some(tour) => get("playerInfo") ?? {
env.api.playerInfo(tour.id, _)
} flatMap { playerInfoExt =>
env.jsonView(tour, page, ctx.userId, playerInfoExt)
} map { Ok(_) }
case Some(tour) =>
get("playerInfo").?? { env.api.playerInfo(tour.id, _) } zip
getBool("socketVersion").??(env version tour.id map some) flatMap {
case (playerInfoExt, socketVersion) =>
env.jsonView(tour, page, ctx.userId, playerInfoExt, socketVersion)
} map { Ok(_) }
} map (_ as JSON)
) map NoCache
}

View file

@ -1,7 +1,7 @@
@(username: Field, password: Field, emailOption: Option[Field])(implicit ctx: Context)
<li class="username">
<label for="@username.id">@trans.username()</label>
<label for="@username.id">@trans.usernameOrEmail()</label>
<input
type="text"
required="required"

View file

@ -26,7 +26,7 @@
<section class="login">
<h2>@trans.signIn()</h2>
<form action="@routes.Auth.authenticate" method="POST">
<input placeholder="@trans.username()" type="text" class="username" required="required" name="username" />
<input placeholder="@trans.usernameOrEmail()" type="text" class="username" required="required" name="username" />
<input placeholder="@trans.password()" type="password" class="password" required="required" name="password" />
<input type="submit" class="submit" value="@trans.signIn()" />
</form>

View file

@ -1,4 +1,4 @@
@(tour: Tournament, socketVersion: Int, data: play.api.libs.json.JsObject, chat: Option[lila.chat.UserChat])(implicit ctx: Context)
@(tour: Tournament, data: play.api.libs.json.JsObject, chat: Option[lila.chat.UserChat])(implicit ctx: Context)
@underchat = {
<div class="watchers" data-icon="v">
@ -13,7 +13,6 @@ lichess = lichess || {};
lichess.tournament = {
data: @Html(play.api.libs.json.Json.stringify(data)),
i18n: @jsI18n(),
socketVersion: @socketVersion,
userId: @Html(ctx.userId.fold("null")(id => s""""$id""""))
};
}

View file

@ -14,22 +14,11 @@
</p>
<p>
In order to verify your title, you can take a picture of an ID document,
and send it to the email
<a href="mailto:@email" title="About title verification">@email</a>.
This can include birth certificates, drivers licences, passports, visas, and more.
It's easy; <a href="@routes.Page.master">click here to see how it's done</a>.
</p>
<p>
Alternatively you can write a statement about lichess on a website where you are recognised
as who you claim to be. It could be twitter, facebook, chess.com, ICC, or anything serious enough.
Then, send us a link to your post.
</p>
<p>
Go ahead now and verify your title!
If you need help or have any question,
feel free to contact us by email at
If you need help or have any question, feel free to contact us by email at
<a href="mailto:@email" title="About title verification">@email</a>.
</p>

View file

@ -9,7 +9,7 @@ net {
ip = "5.196.91.160"
asset {
domain = ${net.domain}
version = 830
version = 831
}
}
play {
@ -106,7 +106,7 @@ qa {
}
donation {
collection.donation = donation
monthly_goal = 61700
monthly_goal = 65700
server_donors = [ drazak, jaldus, intenex, thibault ]
}
chat {

View file

@ -92,7 +92,7 @@ nbHours=%s hours
time=Time
rating=Rating
ratingStats=Rating stats
username=User name
usernameOrEmail=User name or email
password=Password
haveAnAccount=Have an account?
changePassword=Change password

View file

@ -87,7 +87,7 @@ nbDays=%s dae
nbHours=%s ure
time=Tyd
rating=Gradering
username=Gebruiker
usernameOrEmail=Gebruiker
password=Wagwoord
haveAnAccount=Klaar geregistreer?
changePassword=Verander wagwoord

View file

@ -91,7 +91,7 @@ nbHours=%s ساعة
time=الوقت
rating=التصنيف
ratingStats=احصائيات التصنيف
username=إسم المستخدم
usernameOrEmail=إسم المستخدم
password=كلمة السر
haveAnAccount=هل لديك حساب؟
changePassword=تغيير كلمة السر

View file

@ -86,7 +86,7 @@ nbDays=%s gün
nbHours=%s saat
time=Vaxt
rating=Təsnifat
username=İstifadəçi adı
usernameOrEmail=İstifadəçi adı
password=Şifrə
haveAnAccount=Üzvlüyünüz varmı?
changePassword=Parolu dəyiş

View file

@ -90,7 +90,7 @@ nbDays=%s дзён
nbHours=%s гадзін
time=Час
rating=Рэйтынг
username=Імя карыстальніка
usernameOrEmail=Імя карыстальніка
password=Пароль
haveAnAccount=Ёсць ужо рахунак?
changePassword=Зьмяніць пароль

View file

@ -91,7 +91,7 @@ nbHours=%s часа
time=Време
rating=Оценка
ratingStats=Измервания
username=Потребител
usernameOrEmail=Потребител
password=Ключ
haveAnAccount=Имате сметка?
changePassword=Смяна на ключа

View file

@ -90,7 +90,7 @@ nbDays=%s দিন
nbHours=%s ঘন্টা
time=সময়
rating=রেটিং
username=ব্যবহারকারী নাম
usernameOrEmail=ব্যবহারকারী নাম
password=পাসওয়ার্ড
haveAnAccount=আপনার কি account রয়েছে
changePassword=পাসওয়ার্ড পরিবর্তন

View file

@ -91,7 +91,7 @@ nbHours=%s sati
time=Vrijeme
rating=Rejting
ratingStats=Rejting pozicija
username=Korisničko ime
usernameOrEmail=Korisničko ime
password=Lozinka
haveAnAccount=Već imate račun?
changePassword=Promijeni lozinku

View file

@ -91,7 +91,7 @@ nbHours=%s hores
time=Temps
rating=Puntuació
ratingStats=Estadístiques de puntuació
username=Nom d'usuari
usernameOrEmail=Nom d'usuari
password=Contrassenya
haveAnAccount=Ja tens un compte?
changePassword=Canvia la contrasenya

View file

@ -91,7 +91,7 @@ nbHours=%s hodin
time=Tempo
rating=Rating
ratingStats=Statistiky hodnocení
username=Uživatelské jméno
usernameOrEmail=Uživatelské jméno
password=Heslo
haveAnAccount=Máte již účet?
changePassword=Změnit heslo

View file

@ -91,7 +91,7 @@ nbHours=%s o oriau
time=Amser chwarae
rating=Graddfa
ratingStats=Ystadegau graddfa
username=Enw defnyddiwr
usernameOrEmail=Enw defnyddiwr
password=Cyfrinair
haveAnAccount=Ydych wedi cofrestru?
changePassword=Newid y cyfrinair

View file

@ -91,7 +91,7 @@ nbHours=%s timer
time=Tid
rating=Rating
ratingStats=Rating statistik
username=Brugernavn
usernameOrEmail=Brugernavn
password=Password
haveAnAccount=Har du en konto?
changePassword=Skift kodeord

View file

@ -91,7 +91,7 @@ nbHours=%s Stunden
time=Zeit
rating=Wertung
ratingStats=Wertungsstatistiken
username=Benutzername
usernameOrEmail=Benutzername
password=Passwort
haveAnAccount=Haben Sie ein Benutzerkonto?
changePassword=Passwort ändern

View file

@ -91,7 +91,7 @@ nbHours=%s ώρες
time=Χρόνος
rating=Βαθμολογία
ratingStats=Στατιστικές βαθμολογίας
username=Όνομα χρήστη
usernameOrEmail=Όνομα χρήστη
password=Κωδικός
haveAnAccount=Έχετε λογαριασμό;
changePassword=Αλλάξτε κωδικό

View file

@ -91,7 +91,7 @@ nbHours=%s horoj
time=Tempo
rating=Taksado
ratingStats=Taksaj statistikoj
username=Uzantnomo
usernameOrEmail=Uzantnomo
password=Pasvorto
haveAnAccount=Ĉu vi havas konton?
changePassword=Ŝanĝi pasvorton

View file

@ -91,7 +91,7 @@ nbHours=%s horas
time=Tiempo
rating=Puntos
ratingStats=Estadísticas de puntuación
username=Nombre de usuario
usernameOrEmail=Nombre de usuario
password=Contraseña
haveAnAccount=¿Tienes una cuenta?
changePassword=Cambiar contraseña

View file

@ -91,7 +91,7 @@ nbHours=%s tundi
time=Aeg
rating=Reiting
ratingStats=Reitingu statistika
username=Kasutajanimi
usernameOrEmail=Kasutajanimi
password=Salasõna
haveAnAccount=Kas sul on kasutaja?
changePassword=Muuda salasõna

View file

@ -90,7 +90,7 @@ nbDays=%s egun
nbHours=%s ordu
time=Denbora
rating=Puntuazioa
username=Erabiltzaile-izena
usernameOrEmail=Erabiltzaile-izena
password=Pasahitza
haveAnAccount=Erabiltzaile-kontua duzu?
changePassword=Pasahitza aldatu

View file

@ -91,7 +91,7 @@ nbHours=%s ساعت
time=زمان
rating=ریتینگ
ratingStats=آمار ریتنگ
username=نام کاربری
usernameOrEmail=نام کاربری
password=رمزعبور
haveAnAccount=شما صاحب حساب کاربری می باشید؟
changePassword=تغییر کلمه عبور

View file

@ -91,7 +91,7 @@ nbHours=%s tuntia
time=Aika
rating=Vahvuusluku
ratingStats=Vahvuuslukutilastot
username=Käyttäjätunnus
usernameOrEmail=Käyttäjätunnus
password=Salasana
haveAnAccount=Onko sinulla jo tili?
changePassword=Vaihda salasana

View file

@ -58,7 +58,7 @@ players=Joyor d'echec
minutesPerSide=Minites per làt
variant=Variacion
timeControl=Controlo do tèmps
username=Nom d'usor
usernameOrEmail=Nom d'usor
password=Contrasinyi
haveAnAccount=T'as jà un aconto?
rank=Rang

View file

@ -91,7 +91,7 @@ nbHours=%s heures
time=Temps
rating=Classement
ratingStats=Statistiques de classement
username=Pseudonyme
usernameOrEmail=Pseudonyme
password=Mot de passe
haveAnAccount=Déjà inscrit?
changePassword=Changer le mot de passe

View file

@ -42,7 +42,7 @@ forum=Fóram
players=Imreoirí
oneDay=Lá amháin
time=Am
username=Ainm úsáideora
usernameOrEmail=Ainm úsáideora
password=Focal faire
haveAnAccount=Cuntas agat?
rank=Céimíocht

View file

@ -86,7 +86,7 @@ nbDays=%s là(ithean)
nbHours=%s uair(ean)
time=Ùine
rating=Rangachadh
username=Far-ainm
usernameOrEmail=Far-ainm
password=Facal-faire
haveAnAccount=A bheil cunntas agad?
changePassword=Atharraich am facal-faire

View file

@ -90,7 +90,7 @@ nbDays=%s días
nbHours=%s horas
time=Tempo
rating=Puntuación
username=Nome de usuario
usernameOrEmail=Nome de usuario
password=Contrasinal
haveAnAccount=Tén unha conta?
changePassword=Trocar contrasinal

View file

@ -91,7 +91,7 @@ nbHours=%s שעות
time=זמן
rating=דירוג
ratingStats=סטטיסטיקת דירוג
username=שם משתמש
usernameOrEmail=שם משתמש
password=סיסמה
haveAnAccount=יש לך חשבון?
changePassword=שינוי הסיסמה

View file

@ -90,7 +90,7 @@ nbDays=%s दिन
nbHours=%s घंटे
time=समय
rating=रेटिंग
username=उपयोगकर्ता का नाम.
usernameOrEmail=उपयोगकर्ता का नाम.
password=पासवर्ड
haveAnAccount=क्या आपके पास अकाऊंट है?
changePassword=पासवर्ड बदलना

View file

@ -91,7 +91,7 @@ nbHours=%s sati
time=Vrijeme
rating=Rejting
ratingStats=Rang
username=Korisničko ime
usernameOrEmail=Korisničko ime
password=Lozinka
haveAnAccount=Imate li korisnički račun?
changePassword=Promijeni lozinku

View file

@ -90,7 +90,7 @@ nbDays=%s nap
nbHours=%s óra
time=Idő
rating=Pontszám
username=Felhasználónév
usernameOrEmail=Felhasználónév
password=Jelszó
haveAnAccount=Van már fiókod?
changePassword=Jelszó megváltoztatása

View file

@ -87,7 +87,7 @@ nbDays=%s օր
nbHours=%s ժամ
time=Ժամանակ
rating=Վարկանիշ
username=Անուն
usernameOrEmail=Անուն
password=Գաղտնաբառ
haveAnAccount=Արդեն գրանցվե՞լ եք
changePassword=Փոխել գաղտնաբառը

View file

@ -91,7 +91,7 @@ nbHours=%s jam
time=Waktu
rating=Rating
ratingStats=Statistik rating
username=Nama pengguna
usernameOrEmail=Nama pengguna
password=Kata kunci
haveAnAccount=Punya akun?
changePassword=Ganti kata kunci

View file

@ -62,7 +62,7 @@ players=Shakoluderi
minutesPerSide=Minuti per partiso
variant=Varianto
timeControl=Tempodirekto
username=Uzeronomo
usernameOrEmail=Uzeronomo
password=Pasovorto
haveAnAccount=Ka vu havas konto?
rank=Rango

View file

@ -89,7 +89,7 @@ nbDays=%s dagar
nbHours=%s tímar
time=Tími
rating=Einkunn
username=Notandanafn
usernameOrEmail=Notandanafn
password=Lykilorð
haveAnAccount=Hafa reikning
changePassword=Skipta um lykilorð

View file

@ -91,7 +91,7 @@ nbHours=%s ore
time=Tempo
rating=Punteggio
ratingStats=Statistiche Rating
username=Username
usernameOrEmail=Username
password=Password
haveAnAccount=Hai un account?
changePassword=Cambia password

View file

@ -91,7 +91,7 @@ nbHours=%s時間
time=時間
rating=レーティング
ratingStats=レーティングの統計
username=ユーザー名
usernameOrEmail=ユーザー名
password=パスワード
haveAnAccount=アカウントをお持ちですか?
changePassword=パスワードの変更

View file

@ -91,7 +91,7 @@ nbHours=%s საათი
time=დრო
rating=რეიტინგი
ratingStats=რაიტინგული შედეგები
username=მომხმარებლის სახელი
usernameOrEmail=მომხმარებლის სახელი
password=პაროლი
haveAnAccount=უკვე გაქვთ ანგარიში?
changePassword=პაროლის შეცვლა

View file

@ -77,7 +77,7 @@ minutesPerSide=Tisdidin deg umarir
variant=Tamzarayt
timeControl=Asenqed n akud
time=Ukkud
username=Isem useqdac
usernameOrEmail=Isem useqdac
password=Awal ukeččum
haveAnAccount=Ssaggzed iman ikk?
changePassword=Ḥwaǧeḍ kan isem n useqdac d awal ukeččum

View file

@ -57,7 +57,7 @@ players=Ойыншылар
variant=Нусқа
timeControl=Шектелген уақыт
time=уақыт
username=Есіміңіз
usernameOrEmail=Есіміңіз
password=Пароль
haveAnAccount=Тіркелдің бе?
rank=Деңгей

View file

@ -90,7 +90,7 @@ nbDays=턴당 %s일
nbHours=%s시간
time=시간
rating=레이팅
username=사용자 이름
usernameOrEmail=사용자 이름
password=비밀번호
haveAnAccount=계정이 있습니까?
changePassword=비밀번호 변경

View file

@ -90,7 +90,7 @@ nbDays=%s dies
nbHours=%s horae
time=Tempus
rating=Status
username=Usoris nomen
usernameOrEmail=Usoris nomen
password=Tessera
haveAnAccount=Nonne habes conventum?
changePassword=Cambire tessera

View file

@ -89,7 +89,7 @@ nbDays=%s D4YS
nbHours=%s |-|0u|?$
time=7im3
rating=R4t1ng
username=us3r N@M3
usernameOrEmail=us3r N@M3
password=P@5$w0Rd
haveAnAccount=h@V3 @n @Cc0unt?
changePassword=CH@nG3 pa55W0Rd

View file

@ -90,7 +90,7 @@ nbDays=%s dienos
nbHours=%s valandos
time=Laikas
rating=Reitingas
username=Vartotojo vardas
usernameOrEmail=Vartotojo vardas
password=Slaptažodis
haveAnAccount=Turite paskyrą?
changePassword=Pasikeisti slaptažodį

View file

@ -90,7 +90,7 @@ nbDays=%s dienas
nbHours=%s stundas
time=Laiks
rating=Reitings
username=Lietotājvārds
usernameOrEmail=Lietotājvārds
password=Parole
haveAnAccount=Vai tev ir konts?
changePassword=Mainīt paroli

View file

@ -79,7 +79,7 @@ oneDay=Iray andro
nbDays=%s andro
nbHours=%s ora
time=Fotoana
username=Solon'anarana
usernameOrEmail=Solon'anarana
password=Teny miafina
haveAnAccount=Efa manana kaonty?
changePassword=Ovay ny teny miafina

View file

@ -89,7 +89,7 @@ nbDays=%s денови
nbHours=%s часови
time=Време
rating=рејтинг
username=Корисник
usernameOrEmail=Корисник
password=Лозинка
haveAnAccount=Имате ли профил?
changePassword=Променете ја шифрата

View file

@ -60,7 +60,7 @@ players=Шатрын тоглогчид
minutesPerSide=Минут талдаа
variant=Хувьсах
timeControl=Хугацааны хязгаарлалт
username=Хэрэглэгчийн нэр
usernameOrEmail=Хэрэглэгчийн нэр
password=Нууц үг
haveAnAccount=Танд бүртгэл байгаа юу?
rank=Зэрэг

View file

@ -82,7 +82,7 @@ nbDays=%s दिवस
nbHours=%s तास
time=vel
rating=गुणांकन
username=सदस्याचे नाव
usernameOrEmail=सदस्याचे नाव
password=परवलीचा शब्द
haveAnAccount=खाते आहे का?
changePassword=परवलीचा शब्द(Password) बदला

View file

@ -91,7 +91,7 @@ nbHours=%s timer
time=Tid
rating=Rating
ratingStats=Ratingstatistikk
username=Brukernavn
usernameOrEmail=Brukernavn
password=Passord
haveAnAccount=Har du en konto?
changePassword=Bytt passord

View file

@ -91,7 +91,7 @@ nbHours=%s uren
time=Tijd
rating=Sterkte
ratingStats=rating statistieken
username=Gebruikersnaam
usernameOrEmail=Gebruikersnaam
password=Wachtwoord
haveAnAccount=Heeft u al een account?
changePassword=Wijzig wachtwoord

View file

@ -91,7 +91,7 @@ nbHours=%s timar
time=Tid
rating=Rating
ratingStats=Ratingstatistikk
username=Brukarnamn
usernameOrEmail=Brukarnamn
password=Passord
haveAnAccount=Har du ein konto her?
changePassword=Byt passord

View file

@ -5,7 +5,7 @@ mistakes=Рæдыдтæ
games=Хъазтæ
forum=Форум
players=Хъазæгтæ
username=Ном
usernameOrEmail=Ном
cancel=Аивын
accept=Райсын
decline=Радæуын

View file

@ -6,5 +6,5 @@ createAGame=Kīḷam ārabhāhi
viewAllNbGames=%ssa kīḷā
games=Kīḷā
players=Caturangaṃ jūtakā
username=Nāmaṃ
usernameOrEmail=Nāmaṃ
gamesPlayed=Kīḷā kīḷitā

View file

@ -39,8 +39,8 @@ whiteCreatesTheGame=Białe utworzyły grę
blackCreatesTheGame=Czarne utworzyły grę
whiteJoinsTheGame=Białe dołączyły do gry
blackJoinsTheGame=Czarne dołączyły do gry
whiteResigned=Białe poddały
blackResigned=Czarne poddały
whiteResigned=Białe rezygnują
blackResigned=Czarne rezygnują
whiteLeftTheGame=Białe porzuciły grę
blackLeftTheGame=Czarne porzuciły grę
shareThisUrlToLetSpectatorsSeeTheGame=Podziel się tym linkiem, aby zaprosić widzów do obserwowania tej gry
@ -91,7 +91,7 @@ nbHours=%s godzin
time=Tempo gry
rating=Ranking
ratingStats=Statystyki rankingowe
username=Nazwa użytkownika
usernameOrEmail=Nazwa użytkownika
password=Hasło
haveAnAccount=Masz już konto?
changePassword=Zmień hasło

View file

@ -51,7 +51,7 @@ games=لوبې
forum=جرګه ځای
players=د شطرنچ لوبغاړي
timeControl=وختمهار
usernameکارن نوم
usernameOrEmailکارن نوم
password=پټ نوم
haveAnAccount=ګڼون لري؟
rank=پوړ

View file

@ -91,7 +91,7 @@ nbHours=%s horas
time=Tempo
rating=Rating
ratingStats=Estatísticas de rating
username=Nome
usernameOrEmail=Nome
password=Palavra-chave
haveAnAccount=Tem uma conta?
changePassword=Mudar palavra-chave

View file

@ -90,7 +90,7 @@ nbDays=%s zile
nbHours=%s ore
time=Timp
rating=Rating
username=Utilizator
usernameOrEmail=Utilizator
password=Parolă
haveAnAccount=Aveți un cont?
changePassword=Schimbați parola
@ -500,3 +500,7 @@ tournamentNotFound=Turneul nu a fost găsit
tournamentDoesNotExist=Acest turneu nu există.
tournamentMayHaveBeenCanceled=Posibil să fi fost anulat, daca toți jucătorii au plecat înainte de inceperea turneului.
returnToTournamentsHomepage=Înapoi la pagina turneului.
nbPerfTypePlayersThisMonth=%s %s jucători în această lună.
yourPerfTypeRatingisRating=Palmaresul dumneavoastră %s este %s.
youAreBetterThanPercentOfPerfTypePlayers=Sunteți mai bun decât %s din %s jucători.
youDoNotHaveAnEstablishedPerfTypeRating=Nu aveți încă un palmares %s definit.

View file

@ -18,7 +18,7 @@ black=Чёрные
randomColor=Случайный цвет
createAGame=Создать игру
whiteIsVictorious=Белые победили
blackIsVictorious=Черные победили
blackIsVictorious=Чёрные победили
kingInTheCenter=Король в центре
threeChecks=Три шаха
variantEnding=Игра окончена
@ -28,22 +28,22 @@ playWithAnotherOpponent=Сыграть с другим соперником
yourOpponentWantsToPlayANewGameWithYou=Ваш соперник предлагает вам сыграть ещё раз
joinTheGame=Присоединиться
whitePlays=Ход белых
blackPlays=Ход черных
theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Ваш соперник покинул игру. Вы можете завершить партию от его имени или дождаться его возвращения.
blackPlays=Ход чёрных
theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim=Ваш соперник покинул игру. Вы можете объявить свою победу или дождаться его возвращения.
makeYourOpponentResign=Объявить победу
forceResignation=Объявить проигравшим
forceDraw=Объявить ничью
talkInChat=Общайтесь в чате
theFirstPersonToComeOnThisUrlWillPlayWithYou=Первый, кто перейдёт по этой ссылке, будет играть с вами.
theFirstPersonToComeOnThisUrlWillPlayWithYou=Первый, кто перейдёт по этой ссылке, будет играть с Вами.
whiteCreatesTheGame=Белые создали новую игру
blackCreatesTheGame=Черные создали новую игру
blackCreatesTheGame=Чёрные создали новую игру
whiteJoinsTheGame=Белые присоединились к игре
blackJoinsTheGame=Черные присоединились к игре
blackJoinsTheGame=Чёрные присоединились к игре
whiteResigned=Белые сдались
blackResigned=Черные сдались
blackResigned=Чёрные сдались
whiteLeftTheGame=Белые вышли из игры
blackLeftTheGame=Черные вышли из игры
shareThisUrlToLetSpectatorsSeeTheGame=Поделитесь этой ссылкой с другими для просмотра игры
blackLeftTheGame=Чёрные вышли из игры
shareThisUrlToLetSpectatorsSeeTheGame=Пригласите зрителей, отправив им эту ссылку
theComputerAnalysisHasFailed=Произошёл сбой.
viewTheComputerAnalysis=Просмотреть компьютерный анализ
requestAComputerAnalysis=Запросить компьютерный анализ
@ -72,7 +72,7 @@ signIn=Войти
newToLichess=Впервые на Lichess?
youNeedAnAccountToDoThat=Вам нужно зарегистрироваться, чтобы сделать это
signUp=Регистрация
computersAreNotAllowedToPlay=Создание учетных записей для компьютерных программ запрещено. Пожалуйста, во время игры не используйте шахматные программы, базы данных или подсказки от других игроков.
computersAreNotAllowedToPlay=Создание учётных записей для компьютерных программ запрещено. Пожалуйста, во время игры не используйте шахматных ботов, базы данных или подсказки от других игроков.
games=Игры
forum=Форум
xPostedInForumY=%s опубликовал на форуме %s
@ -91,13 +91,13 @@ nbHours=%s часов
time=Время
rating=Рейтинг
ratingStats=Статистика рейтинга
username=Имя пользователя
usernameOrEmail=Логин или Email
password=Пароль
haveAnAccount=Есть учетная запись?
haveAnAccount=Есть учётная запись?
changePassword=Сменить пароль
changeEmail=Изменить электронную почту
email=Электронная почта
emailIsOptional=Указывать электронную почту не обязательно. Lichess будет использовать её для сброса пароля, если вы его забудете.
emailIsOptional=Указывать электронную почту не обязательно. Lichess будет использовать её для сброса пароля, если Вы его забудете.
passwordReset=Сброс пароля
forgotPassword=Забыли пароль?
rank=Уровень
@ -111,9 +111,9 @@ drawOfferDeclined=Предложение ничьей отклонено
drawOfferAccepted=Предложение ничьей принято
drawOfferCanceled=Предложение ничьей отменено
whiteOffersDraw=Белые предлагают ничью
blackOffersDraw=Черные предлагают ничью
blackOffersDraw=Чёрные предлагают ничью
whiteDeclinesDraw=Белые отказываются от ничьей
blackDeclinesDraw=Черные откладываются от ничьей
blackDeclinesDraw=Чёрные откладываются от ничьей
yourOpponentOffersADraw=Ваш оппонент предлагает ничью
accept=Принять
decline=Отклонить
@ -133,7 +133,7 @@ rematchOfferAccepted=Предложение реванша принято
rematchOfferCanceled=Предложение реванша отменено
rematchOfferDeclined=Предложение реванша отклонено
cancelRematchOffer=Отказаться от реванша
viewRematch=Посмотреть ответную игру
viewRematch=Посмотреть реванш
play=Играть
inbox=Входящие
chatRoom=Окно чата
@ -259,7 +259,7 @@ profile=Профиль
editProfile=Редактировать профиль
firstName=Имя
lastName=Фамилия
biography=Биография
biography=О себе
country=Страна
preferences=Предпочтения
watchLichessTV=Смотреть Lichess TV
@ -283,7 +283,7 @@ trainingSignupExplanation=Lichess подберет задачи для ваше
recentlyPlayedPuzzles=Недавно решенные задачи
puzzleId=Задача %s
puzzleOfTheDay=Шахматная задача дня
clickToSolve=Нажмите чтобы решить
clickToSolve=Нажмите, чтобы решить
goodMove=Хороший ход
butYouCanDoBetter=Но вы можете найти лучше.
bestMove=Лучший ход!
@ -338,7 +338,7 @@ createTheTopic=Создать тему
reportAUser=Пожаловаться на пользователя
user=Пользователь
reason=Причина
whatIsIheMatter=В чем дело?
whatIsIheMatter=В чём дело?
cheat=Читинг
insult=Оскорбление
troll=Троллинг
@ -359,12 +359,12 @@ closeAccount=Удалить аккаунт
closeYourAccount=Удаление аккаунта
changedMindDoNotCloseAccount=Я передумал, не удаляйте мой аккаунт
closeAccountExplanation=Вы действительно желаете удалить свой аккаунт? Удаление аккаунта невозможно отменить. Вы больше не сможете зайти в игру, и ваша страница больше не будет доступна.
thisAccountIsClosed=Ваш аккаунт удален.
thisAccountIsClosed=Профиль этого пользователя был удалён.
invalidUsernameOrPassword=Неправильное имя или пароль
emailMeALink=Выслать ссылку
currentPassword=Текущий пароль
newPassword=Новый пароль
newPasswordAgain=Новый пароль (повтор)
newPasswordAgain=Новый пароль (ещё раз)
boardHighlights=Подсветка (последний ход и шах)
pieceDestinations=Показывать все возможные ходы
boardCoordinates=Координаты доски (A-H, 1-8)
@ -378,7 +378,7 @@ soundWhenTimeGetsCritical=Звук, когда время подходит к к
gameBehavior=Настройки игры
premovesPlayingDuringOpponentTurn=Предварительный ход (пока ходит противник)
takebacksWithOpponentApproval=Возвраты (с согласия противника)
promoteToQueenAutomatically=Пешка превращается в Ферзя автоматически
promoteToQueenAutomatically=Пешка превращается в ферзя автоматически
claimDrawOnThreefoldRepetitionAutomatically=Объявлять ничью после %s%s трёхкратного повторения позиции
privacy=Приватность
letOtherPlayersFollowYou=Позволить другим наблюдать за мной
@ -397,23 +397,23 @@ always=Всегда
inCasualGamesOnly=Только в играх без рейтинга
whenPremoving=Когда сделан предварительный ход
whenTimeRemainingLessThanThirtySeconds=Когда остается меньше 30 секунд
difficultyEasy=Легкий
difficultyEasy=Лёгкий
difficultyNormal=Нормальный
difficultyHard=Сложный
xLeftANoteOnY=%s оставил заметку о %s
xCompetesInY=%s участвует в %s
xAskedY=%s спрашивает %s
xAnsweredY=%s ответил %s
xCommentedY=%s откомментировал %s
xCommentedY=%s прокомментировал %s
timeline=Дневник
seeAllTournaments=Открыть все турниры
starting=Начинается:
allInformationIsPublicAndOptional=Вся информация публична и опциональна.
allInformationIsPublicAndOptional=Вся информация публична и указывается по желанию.
yourCityRegionOrDepartment=Ваш город, область или округ.
biographyDescription=Расскажите о себе, что вы любите в шахматах, ваши любимые дебюты, партии, игроки...
biographyDescription=Расскажите о себе, что Вы любите в шахматах, Ваши любимые дебюты, партии, игроки...
maximumNbCharacters=Максимум: %s символов.
blocks=%s заблокировано
listBlockedPlayers=Список заблокированных вами игроков
listBlockedPlayers=Список заблокированных Вами игроков
human=Человек
computer=Компьютер
side=Сторона
@ -421,7 +421,7 @@ clock=Часы
unauthorizedError=Неавторизованный доступ
noInternetConnection=Нет интернет соединения. Вы можете играть оффлайн из меню.
connectedToLichess=Сейчас вы подключены к lichess.org
signedOut=Вы вышли.
signedOut=Вы вышли
loginSuccessful=Вы вошли
playOnTheBoardOffline=Играйте оффлайн
playOfflineComputer=Играть с компьютером оффлайн
@ -434,9 +434,9 @@ board=Доска
pieces=Фигуры
sharePGN=Экспорт PGN
playOnline=Играть онлайн
playOffline=Играть офлайн
playOffline=Играть оффлайн
allowAnalytics=Разрешить сбор статистики
shareGameURL=Дать URL игры
shareGameURL=Получить URL игры
error.required=Заполните это поле
error.email=Адрес электронной почты является недействительным
error.email_acceptable=Адрес электронной почты не является приемлемым
@ -463,7 +463,7 @@ mobileApp=Мобильное приложение
webmasters=Разработчики
contribute=Помочь Lichess
contact=Контакты
termsOfService=Польз. соглашение
termsOfService=Пользовательское соглашение
sourceCode=Исходный код
simultaneousExhibitions=Сеанс одновременной игры
host=Сеансёр
@ -471,7 +471,7 @@ createdSimuls=Недавно созданные сеансы
hostANewSimul=Новый сеанс
noSimulFound=Сеанс не найден
noSimulExplanation=Этот сеанс одновр. игры не существует.
returnToSimulHomepage=Вернуться на главную Сеансов
returnToSimulHomepage=Вернуться на страницу сеансов
aboutSimul=Сеансы подразумевают сражение одного игрока с несколькими противниками одновременно.
aboutSimulImage=Из общего числа в 50 игр Фишер выиграл 47, 2 сыграл вничью и проиграл 1.
aboutSimulRealLife=Идея взята с событий реального мира. В живых шахматах сеансёр перемещается от стола к столу, чтобы совершить один ход.
@ -505,4 +505,4 @@ monthlyPerfTypeRatingDistribution=Распределение по рейтинг
nbPerfTypePlayersThisMonth=%s %s игроков за месяц
yourPerfTypeRatingisRating=Ваш %s рейтинг %s.
youAreBetterThanPercentOfPerfTypePlayers=Ваш рейтинг выше чем %s игроков %s.
youDoNotHaveAnEstablishedPerfTypeRating=Ваш %s рейтинг ещё не определен
youDoNotHaveAnEstablishedPerfTypeRating=Ваш %s рейтинг ещё не определен.

View file

@ -90,7 +90,7 @@ nbDays=%s dní
nbHours=%s hodín
time=Čas
rating=Hodnotenie
username=Meno používateľa
usernameOrEmail=Meno používateľa
password=Heslo
haveAnAccount=Máte účet?
changePassword=Zmeniť heslo

View file

@ -91,7 +91,7 @@ nbHours=%s ur
time=Čas
rating=Rating
ratingStats=Rating statistika
username=Uporabniško ime
usernameOrEmail=Uporabniško ime
password=Geslo
haveAnAccount=Ali že imaš račun?
changePassword=Zamenjaj geslo

View file

@ -90,7 +90,7 @@ nbDays=%s ditë
nbHours=%s orë
time=Koha
rating=Vlerësuar
username=Emri i përdoruesit
usernameOrEmail=Emri i përdoruesit
password=Fjalëkalimi
haveAnAccount=Keni një llogari?
changePassword=Ndrysho fjalëkalimin

View file

@ -91,7 +91,7 @@ nbHours=%s сати
time=Време
rating=Рејтинг
ratingStats=Статистика рејтинга
username=Корисничко име
usernameOrEmail=Корисничко име
password=Лозинка
haveAnAccount=Имате налог?
changePassword=Промените лозинку

View file

@ -91,7 +91,7 @@ nbHours=%s timmar
time=Tid
rating=Rating
ratingStats=Rating statistik
username=Användarnamn
usernameOrEmail=Användarnamn
password=Lösenord
haveAnAccount=Har du ett konto?
changePassword=Ändra lösenord

View file

@ -86,7 +86,7 @@ nbDays=%s நாட்கள்
nbHours=%s மணி நேரம்
time=நேரம்
rating=மதிப்பீடு
username=பயனர்பெயர்
usernameOrEmail=பயனர்பெயர்
password=கடவுச்சொல்
haveAnAccount=கணக்கு உண்டா?
changePassword=இரகசிய இலக்கத்தை மாற்று

View file

@ -91,7 +91,7 @@ nbHours=%s ชั่วโมง
time=เวลา
rating=ระดับคะแนน
ratingStats=สถิติระดับคะแนน
username=ชื่อผู้ใช้
usernameOrEmail=ชื่อผู้ใช้
password=รหัสผ่าน
haveAnAccount=มีบัญชีแล้วหรือยัง?
changePassword=เปลี่ยนรหัสผ่าน

View file

@ -86,7 +86,7 @@ nbDays=tenpo suno pi mute %s
nbHours=tenpo pi mute %s lon tenpo suno
time=tenpo
rating=nanpa
username=nimi
usernameOrEmail=nimi
password=nimi pi sona ala
haveAnAccount=sina jo ala jo e nimi lon ni?
changePassword=ante e nimi sina pi sona ala

View file

@ -91,7 +91,7 @@ nbHours=%s saat
time=Zaman
rating=Derece
ratingStats=Puan İstatistikleri
username=Kullanıcı Adı
usernameOrEmail=Kullanıcı Adı
password=Şifre
haveAnAccount=Üye misiniz?
changePassword=Şifre değiştir

View file

@ -91,7 +91,7 @@ nbHours=%s годин
time=Час
rating=Рейтинг
ratingStats=Розподіл за рейтингом
username=Ім’я користувача
usernameOrEmail=Ім’я користувача
password=Пароль
haveAnAccount=Вже зареєстровані?
changePassword=Змінити пароль

View file

@ -86,7 +86,7 @@ nbDays=%s دن
nbHours=%s گھنٹے
time=دورانیہ
rating=درجہ
username=آپ کا نام
usernameOrEmail=آپ کا نام
password=خفیہ کلمہ
haveAnAccount=اکاؤنٹ موجود ہے؟
changePassword=خفیہ کلمہ تبدیل کریں

View file

@ -90,7 +90,7 @@ nbDays=%s ngày
nbHours=%s giờ
time=Thời gian
rating=Hệ số Elo
username=Tên đăng nhập
usernameOrEmail=Tên đăng nhập
password=Mật khẩu
haveAnAccount=Bạn có tài khoản chưa?
changePassword=Thay đổi mật khẩu

View file

@ -91,7 +91,7 @@ nbHours=%s小时
time=时间
rating=评级
ratingStats=评分数据
username=用户名
usernameOrEmail=用户名
password=密码
haveAnAccount=有账户吗?
changePassword=修改密码

File diff suppressed because one or more lines are too long

View file

@ -26,7 +26,7 @@ final class Importer(
def applyResult(game: Game, result: Result) {
result match {
case Result(Status.Draw, _) => roundMap ! Tell(game.id, ImportDraw)
case Result(Status.Resign, Some(color)) => roundMap ! Tell(game.id, ImportResign(color))
case Result(Status.Resign, Some(color)) => roundMap ! Tell(game.id, ImportResign(!color))
case _ =>
}
}

View file

@ -39,7 +39,7 @@ final class Live(
case "1/2-1/2" => fuccess {
roundMap ! Tell(game.id, DrawForce)
}
case m => fufail("Invalid move: " + m)
case m => fufail("Importer invalid move: " + m)
}
case Some(uci) => fuccess {
applyMove(Pov(game, game.player.color), uci)

View file

@ -1,27 +1,38 @@
package lila.security
import play.api.libs.json._
import play.api.libs.ws.WS
import play.api.Play.current
final class DisposableEmailDomain(providerUrl: String) {
private var domains = List.empty[String]
private type Matcher = String => Boolean
private var matchers = List.empty[Matcher]
private[security] def refresh {
WS.url(providerUrl).get() map { res =>
try {
val prevSize = domains.size
domains = res.json.as[List[String]]
if (domains.size != prevSize)
loginfo(s"[disposable email] registered ${domains.size} domains")
}
catch {
case e: Exception => logerr(s"Can't update disposable emails: $e")
}
setDomains(res.json)
}
}
def apply(domain: String) = domains.exists { d =>
domain == d || domain.endsWith(s".$d")
private[security] def setDomains(json: JsValue): Unit = try {
val ds = json.as[List[String]]
if (ds.size != matchers.size)
loginfo(s"[disposable email] registered ${matchers.size} -> ${ds.size} domains")
matchers = ds.map { d =>
val regex = s"""(.+\\.|)${d.replace(".", "\\.")}"""
makeMatcher(regex)
}
}
catch {
case e: Exception => logerr(s"Can't update disposable emails: $e")
}
private def makeMatcher(regex: String): Matcher = {
val matcher = regex.r.pattern matcher _
(s: String) => matcher(s).matches
}
def apply(domain: String) = matchers exists { _(domain) }
}

View file

@ -0,0 +1,44 @@
package lila.security
import org.specs2.mutable.Specification
import play.api.libs.json._
class DisposableEmailDomainTest extends Specification {
val d = new DisposableEmailDomain("")
d.setDomains(Json.parse(Fixtures.json))
"disposable email domain" should {
"simple" in {
d("gmail.com") must beFalse
d("hotmail.com") must beFalse
d("live.com") must beFalse
d("docmail.cz") must beTrue
}
"suffix" in {
d("foo.some.randomgoodemail.org") must beFalse
d("phpbb.uu.gl") must beTrue
d("other.phpbb.uu.gl") must beTrue
}
"regex" in {
d("domforfb.tk") must beFalse
d("domforfbaa.tk") must beFalse
d("domforfb1.tk") must beTrue
d("domforfb29.tk") must beTrue
d("foo.domforfb11.tk") must beTrue
d("foo2.domforfb11.tk") must beTrue
d("10minutemail.com") must beTrue
d("12hourmail.de") must beTrue
d("30minutesmail.co") must beTrue
d("centermail.net") must beTrue
d("center-mail.info") must beTrue
d("discard.com") must beTrue
d("discardmail.com") must beTrue
d("discartmail.com") must beTrue
d("guerillamail.com") must beTrue
d("guerrillamail.com") must beTrue
d("jetable.fr.nf") must beTrue
d("notjetable.fr") must beFalse
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -24,7 +24,8 @@ final class JsonView(
tour: Tournament,
page: Option[Int],
me: Option[String],
playerInfoExt: Option[PlayerInfoExt]): Fu[JsObject] = for {
playerInfoExt: Option[PlayerInfoExt],
socketVersion: Option[Int]): Fu[JsObject] = for {
data <- cachableData(tour.id)
myInfo <- me ?? { PlayerRepo.playerInfo(tour.id, _) }
stand <- (myInfo, page) match {
@ -59,7 +60,8 @@ final class JsonView(
"featured" -> data.featured,
"podium" -> data.podium,
"playerInfo" -> playerInfoJson,
"quote" -> tour.isCreated.option(lila.quote.Quote.one(tour.id))
"quote" -> tour.isCreated.option(lila.quote.Quote.one(tour.id)),
"socketVersion" -> socketVersion
).noNull
def standing(tour: Tournament, page: Int): Fu[JsObject] =

View file

@ -94,7 +94,7 @@ private[tournament] final class Scheduler(api: TournamentApi) extends Actor {
Schedule(Daily, Blitz, Antichess, std, at(tomorrow, 2)),
Schedule(Daily, Blitz, Atomic, std, at(tomorrow, 3)),
Schedule(Daily, Blitz, Horde, std, at(tomorrow, 4)),
Schedule(Daily, Blitz, RacingKings, std, at(tomorrow, 5))
Schedule(Daily, SuperBlitz, RacingKings, std, at(tomorrow, 5))
),
List( // eastern tournaments!

View file

@ -64,6 +64,7 @@ object Countries {
"FI" -> "Finland",
"FJ" -> "Fiji",
"FM" -> "Micronesia",
"FO" -> "Faroe Islands",
"FR" -> "France",
"GA" -> "Gabon",
"GB" -> "United Kingdom",

View file

@ -1,6 +1,6 @@
resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/"
// The Play plugin
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.4.4")
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.4.6")
// addSbtPlugin("com.timushev.sbt" % "sbt-updates" % "0.1.6")

View file

@ -2244,7 +2244,7 @@ lichess.unique = function(xs) {
});
var tournament;
lichess.socket = new lichess.StrongSocket(
'/tournament/' + cfg.data.id + '/socket/v1', cfg.socketVersion, {
'/tournament/' + cfg.data.id + '/socket/v1', cfg.data.socketVersion, {
receive: function(t, d) {
tournament.socketReceive(t, d)
},

View file

@ -27,6 +27,9 @@
float: left;
margin-right: 10px;
}
#import_game form .analyse > label {
cursor: pointer;
}
#import_game button.submit {
margin: 1em auto 0 auto;