From 4644ba8faa78fb2cb3092eb101721302807d3ceb Mon Sep 17 00:00:00 2001 From: Alexandr Date: Sun, 31 Jan 2016 21:59:39 +0500 Subject: [PATCH 01/21] Update messages --- conf/messages | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/messages b/conf/messages index c7113507fe..bdf6a5cf2d 100644 --- a/conf/messages +++ b/conf/messages @@ -92,7 +92,7 @@ nbHours=%s hours time=Time rating=Rating ratingStats=Rating stats -username=User name +username=User name or Email password=Password haveAnAccount=Have an account? changePassword=Change password From 3a74c02d9c2548821b750f8473820deb6a84c7c6 Mon Sep 17 00:00:00 2001 From: alexbagirov Date: Sun, 31 Jan 2016 22:06:52 +0500 Subject: [PATCH 02/21] Added email to login form text --- app/views/auth/formFields.scala.html | 2 +- app/views/base/fpmenu.scala.html | 2 +- conf/messages | 2 +- conf/messages.af | 2 +- conf/messages.ar | 2 +- conf/messages.az | 2 +- conf/messages.be | 2 +- conf/messages.bg | 2 +- conf/messages.bn | 2 +- conf/messages.bs | 2 +- conf/messages.ca | 2 +- conf/messages.cs | 2 +- conf/messages.cy | 2 +- conf/messages.da | 2 +- conf/messages.de | 2 +- conf/messages.el | 2 +- conf/messages.eo | 2 +- conf/messages.es | 2 +- conf/messages.et | 2 +- conf/messages.eu | 2 +- conf/messages.fa | 2 +- conf/messages.fi | 2 +- conf/messages.fp | 2 +- conf/messages.fr | 2 +- conf/messages.ga | 2 +- conf/messages.gd | 2 +- conf/messages.gl | 2 +- conf/messages.he | 2 +- conf/messages.hi | 2 +- conf/messages.hr | 2 +- conf/messages.hu | 2 +- conf/messages.hy | 2 +- conf/messages.id | 2 +- conf/messages.io | 2 +- conf/messages.is | 2 +- conf/messages.it | 2 +- conf/messages.ja | 2 +- conf/messages.ka | 2 +- conf/messages.kb | 2 +- conf/messages.kk | 2 +- conf/messages.ko | 2 +- conf/messages.la | 2 +- conf/messages.le | 2 +- conf/messages.lt | 2 +- conf/messages.lv | 2 +- conf/messages.mg | 2 +- conf/messages.mk | 2 +- conf/messages.mn | 2 +- conf/messages.mr | 2 +- conf/messages.nb | 2 +- conf/messages.nl | 2 +- conf/messages.nn | 2 +- conf/messages.os | 2 +- conf/messages.pi | 2 +- conf/messages.pl | 2 +- conf/messages.ps | 2 +- conf/messages.pt | 2 +- conf/messages.ro | 2 +- conf/messages.ru | 2 +- conf/messages.sk | 2 +- conf/messages.sl | 2 +- conf/messages.sq | 2 +- conf/messages.sr | 2 +- conf/messages.sv | 2 +- conf/messages.ta | 2 +- conf/messages.th | 2 +- conf/messages.tp | 2 +- conf/messages.tr | 2 +- conf/messages.uk | 2 +- conf/messages.ur | 2 +- conf/messages.vi | 2 +- conf/messages.zh | 2 +- modules/i18n/src/main/I18nKeys.scala | 6 +++--- 73 files changed, 75 insertions(+), 75 deletions(-) diff --git a/app/views/auth/formFields.scala.html b/app/views/auth/formFields.scala.html index 57190dcb66..e3fd9bc108 100644 --- a/app/views/auth/formFields.scala.html +++ b/app/views/auth/formFields.scala.html @@ -1,7 +1,7 @@ @(username: Field, password: Field, emailOption: Option[Field])(implicit ctx: Context)
  • - +

    @trans.signIn()

    - +
    diff --git a/conf/messages b/conf/messages index bdf6a5cf2d..a21b8e0386 100644 --- a/conf/messages +++ b/conf/messages @@ -92,7 +92,7 @@ nbHours=%s hours time=Time rating=Rating ratingStats=Rating stats -username=User name or Email +usernameOrEmail=User name or Email password=Password haveAnAccount=Have an account? changePassword=Change password diff --git a/conf/messages.af b/conf/messages.af index 9fed117adf..40566cb3c2 100644 --- a/conf/messages.af +++ b/conf/messages.af @@ -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 diff --git a/conf/messages.ar b/conf/messages.ar index b1d2496f7a..cc26e492d6 100644 --- a/conf/messages.ar +++ b/conf/messages.ar @@ -91,7 +91,7 @@ nbHours=%s ساعة time=الوقت rating=التصنيف ratingStats=احصائيات التصنيف -username=إسم المستخدم +usernameOrEmail=إسم المستخدم password=كلمة السر haveAnAccount=هل لديك حساب؟ changePassword=تغيير كلمة السر diff --git a/conf/messages.az b/conf/messages.az index 07453af97b..987ad78a01 100644 --- a/conf/messages.az +++ b/conf/messages.az @@ -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ş diff --git a/conf/messages.be b/conf/messages.be index 026e719d3c..d87f0932fb 100644 --- a/conf/messages.be +++ b/conf/messages.be @@ -90,7 +90,7 @@ nbDays=%s дзён nbHours=%s гадзін time=Час rating=Рэйтынг -username=Імя карыстальніка +usernameOrEmail=Імя карыстальніка password=Пароль haveAnAccount=Ёсць ужо рахунак? changePassword=Зьмяніць пароль diff --git a/conf/messages.bg b/conf/messages.bg index f3ad0527a2..24088e588f 100644 --- a/conf/messages.bg +++ b/conf/messages.bg @@ -91,7 +91,7 @@ nbHours=%s часа time=Време rating=Оценка ratingStats=Измервания -username=Потребител +usernameOrEmail=Потребител password=Ключ haveAnAccount=Имате сметка? changePassword=Смяна на ключа diff --git a/conf/messages.bn b/conf/messages.bn index 82c95db058..6addc118ed 100644 --- a/conf/messages.bn +++ b/conf/messages.bn @@ -90,7 +90,7 @@ nbDays=%s দিন nbHours=%s ঘন্টা time=সময় rating=রেটিং -username=ব্যবহারকারী নাম +usernameOrEmail=ব্যবহারকারী নাম password=পাসওয়ার্ড haveAnAccount=আপনার কি account রয়েছে changePassword=পাসওয়ার্ড পরিবর্তন diff --git a/conf/messages.bs b/conf/messages.bs index 2adeb9e0fd..37ce3b40b7 100644 --- a/conf/messages.bs +++ b/conf/messages.bs @@ -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 diff --git a/conf/messages.ca b/conf/messages.ca index e2f94c788d..4c35295f9b 100644 --- a/conf/messages.ca +++ b/conf/messages.ca @@ -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 diff --git a/conf/messages.cs b/conf/messages.cs index 2b6218681c..06089ee63a 100644 --- a/conf/messages.cs +++ b/conf/messages.cs @@ -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 diff --git a/conf/messages.cy b/conf/messages.cy index 0b85a53819..963d76ebb6 100644 --- a/conf/messages.cy +++ b/conf/messages.cy @@ -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 diff --git a/conf/messages.da b/conf/messages.da index 4df4ac2521..c16a2a5643 100644 --- a/conf/messages.da +++ b/conf/messages.da @@ -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 diff --git a/conf/messages.de b/conf/messages.de index f03f34eae6..e4ce3b3c8c 100644 --- a/conf/messages.de +++ b/conf/messages.de @@ -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 diff --git a/conf/messages.el b/conf/messages.el index 9c129cb2c2..a9e3495179 100644 --- a/conf/messages.el +++ b/conf/messages.el @@ -91,7 +91,7 @@ nbHours=%s ώρες time=Χρόνος rating=Βαθμολογία ratingStats=Στατιστικές βαθμολογίας -username=Όνομα χρήστη +usernameOrEmail=Όνομα χρήστη password=Κωδικός haveAnAccount=Έχετε λογαριασμό; changePassword=Αλλάξτε κωδικό diff --git a/conf/messages.eo b/conf/messages.eo index 31b0ad7572..ec8057aa97 100644 --- a/conf/messages.eo +++ b/conf/messages.eo @@ -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 diff --git a/conf/messages.es b/conf/messages.es index 63fc4922c3..9dd309de47 100644 --- a/conf/messages.es +++ b/conf/messages.es @@ -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 diff --git a/conf/messages.et b/conf/messages.et index 5b87b18581..277f00e8bb 100644 --- a/conf/messages.et +++ b/conf/messages.et @@ -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 diff --git a/conf/messages.eu b/conf/messages.eu index a502ae55e3..c1729d5912 100644 --- a/conf/messages.eu +++ b/conf/messages.eu @@ -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 diff --git a/conf/messages.fa b/conf/messages.fa index 596d534057..867a2205e1 100644 --- a/conf/messages.fa +++ b/conf/messages.fa @@ -91,7 +91,7 @@ nbHours=%s ساعت time=زمان rating=ریتینگ ratingStats=آمار ریتنگ -username=نام کاربری +usernameOrEmail=نام کاربری password=رمزعبور haveAnAccount=شما صاحب حساب کاربری می باشید؟ changePassword=تغییر کلمه عبور diff --git a/conf/messages.fi b/conf/messages.fi index 4a34f97d7f..67a20f3f8f 100644 --- a/conf/messages.fi +++ b/conf/messages.fi @@ -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 diff --git a/conf/messages.fp b/conf/messages.fp index e3771614dc..382e40542f 100644 --- a/conf/messages.fp +++ b/conf/messages.fp @@ -58,7 +58,7 @@ players=Joyor d'echec minutesPerSide=Minites per làt variant=Variacion timeControl=Controlo d’o tèmps -username=Nom d'usor +usernameOrEmail=Nom d'usor password=Contrasinyi haveAnAccount=T'as jà un aconto? rank=Rang diff --git a/conf/messages.fr b/conf/messages.fr index 63857f5ad7..6bf9d4e93c 100644 --- a/conf/messages.fr +++ b/conf/messages.fr @@ -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 diff --git a/conf/messages.ga b/conf/messages.ga index d2c0f9aef5..a055da3784 100644 --- a/conf/messages.ga +++ b/conf/messages.ga @@ -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 diff --git a/conf/messages.gd b/conf/messages.gd index 0ad4293977..f1828959e8 100644 --- a/conf/messages.gd +++ b/conf/messages.gd @@ -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 diff --git a/conf/messages.gl b/conf/messages.gl index 8a2c4a7b2a..ea363e91bc 100644 --- a/conf/messages.gl +++ b/conf/messages.gl @@ -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 diff --git a/conf/messages.he b/conf/messages.he index f6b932ff80..9c08c53eb7 100644 --- a/conf/messages.he +++ b/conf/messages.he @@ -91,7 +91,7 @@ nbHours=%s שעות time=זמן rating=דירוג ratingStats=סטטיסטיקת דירוג -username=שם משתמש +usernameOrEmail=שם משתמש password=סיסמה haveAnAccount=יש לך חשבון? changePassword=שינוי הסיסמה diff --git a/conf/messages.hi b/conf/messages.hi index 6a91f717cf..4d6902e378 100644 --- a/conf/messages.hi +++ b/conf/messages.hi @@ -90,7 +90,7 @@ nbDays=%s दिन nbHours=%s घंटे time=समय rating=रेटिंग -username=उपयोगकर्ता का नाम. +usernameOrEmail=उपयोगकर्ता का नाम. password=पासवर्ड haveAnAccount=क्या आपके पास अकाऊंट है? changePassword=पासवर्ड बदलना diff --git a/conf/messages.hr b/conf/messages.hr index 07ed5bbbde..a773651b3b 100644 --- a/conf/messages.hr +++ b/conf/messages.hr @@ -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 diff --git a/conf/messages.hu b/conf/messages.hu index f059980453..f70bca228b 100644 --- a/conf/messages.hu +++ b/conf/messages.hu @@ -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 diff --git a/conf/messages.hy b/conf/messages.hy index bef68b19d5..b665b4faa3 100644 --- a/conf/messages.hy +++ b/conf/messages.hy @@ -87,7 +87,7 @@ nbDays=%s օր nbHours=%s ժամ time=Ժամանակ rating=Վարկանիշ -username=Անուն +usernameOrEmail=Անուն password=Գաղտնաբառ haveAnAccount=Արդեն գրանցվե՞լ եք changePassword=Փոխել գաղտնաբառը diff --git a/conf/messages.id b/conf/messages.id index 32200fd3d3..f9cd053a38 100644 --- a/conf/messages.id +++ b/conf/messages.id @@ -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 diff --git a/conf/messages.io b/conf/messages.io index 6ca5cd53df..a1f53f66fd 100644 --- a/conf/messages.io +++ b/conf/messages.io @@ -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 diff --git a/conf/messages.is b/conf/messages.is index fe8ebc2968..b2102a6672 100644 --- a/conf/messages.is +++ b/conf/messages.is @@ -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ð diff --git a/conf/messages.it b/conf/messages.it index c1222df690..06b1ff9082 100644 --- a/conf/messages.it +++ b/conf/messages.it @@ -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 diff --git a/conf/messages.ja b/conf/messages.ja index a126081024..8824156dd1 100644 --- a/conf/messages.ja +++ b/conf/messages.ja @@ -91,7 +91,7 @@ nbHours=%s時間 time=時間 rating=レーティング ratingStats=レーティングの統計 -username=ユーザー名 +usernameOrEmail=ユーザー名 password=パスワード haveAnAccount=アカウントをお持ちですか? changePassword=パスワードの変更 diff --git a/conf/messages.ka b/conf/messages.ka index edded35157..00384e8d39 100644 --- a/conf/messages.ka +++ b/conf/messages.ka @@ -91,7 +91,7 @@ nbHours=%s საათი time=დრო rating=რეიტინგი ratingStats=რაიტინგული შედეგები -username=მომხმარებლის სახელი +usernameOrEmail=მომხმარებლის სახელი password=პაროლი haveAnAccount=უკვე გაქვთ ანგარიში? changePassword=პაროლის შეცვლა diff --git a/conf/messages.kb b/conf/messages.kb index 47b4398cc7..b1dd9ca784 100644 --- a/conf/messages.kb +++ b/conf/messages.kb @@ -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 diff --git a/conf/messages.kk b/conf/messages.kk index cc93793465..9ee99d5204 100644 --- a/conf/messages.kk +++ b/conf/messages.kk @@ -57,7 +57,7 @@ players=Ойыншылар variant=Нусқа timeControl=Шектелген уақыт time=уақыт -username=Есіміңіз +usernameOrEmail=Есіміңіз password=Пароль haveAnAccount=Тіркелдің бе? rank=Деңгей diff --git a/conf/messages.ko b/conf/messages.ko index 4253c45b2b..bf1865074e 100644 --- a/conf/messages.ko +++ b/conf/messages.ko @@ -90,7 +90,7 @@ nbDays=턴당 %s일 nbHours=%s시간 time=시간 rating=레이팅 -username=사용자 이름 +usernameOrEmail=사용자 이름 password=비밀번호 haveAnAccount=계정이 있습니까? changePassword=비밀번호 변경 diff --git a/conf/messages.la b/conf/messages.la index 6a957fd649..03560c06b3 100644 --- a/conf/messages.la +++ b/conf/messages.la @@ -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 diff --git a/conf/messages.le b/conf/messages.le index 9064741f7d..92a8977b20 100644 --- a/conf/messages.le +++ b/conf/messages.le @@ -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 diff --git a/conf/messages.lt b/conf/messages.lt index e9375dab46..a88a7805d3 100644 --- a/conf/messages.lt +++ b/conf/messages.lt @@ -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į diff --git a/conf/messages.lv b/conf/messages.lv index e2f21c2d63..e1d573789f 100644 --- a/conf/messages.lv +++ b/conf/messages.lv @@ -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 diff --git a/conf/messages.mg b/conf/messages.mg index 6929288395..86037fd261 100644 --- a/conf/messages.mg +++ b/conf/messages.mg @@ -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 diff --git a/conf/messages.mk b/conf/messages.mk index edebb57eb0..e072bca862 100644 --- a/conf/messages.mk +++ b/conf/messages.mk @@ -89,7 +89,7 @@ nbDays=%s денови nbHours=%s часови time=Време rating=рејтинг -username=Корисник +usernameOrEmail=Корисник password=Лозинка haveAnAccount=Имате ли профил? changePassword=Променете ја шифрата diff --git a/conf/messages.mn b/conf/messages.mn index 122c05fde5..53e30e36d9 100644 --- a/conf/messages.mn +++ b/conf/messages.mn @@ -60,7 +60,7 @@ players=Шатрын тоглогчид minutesPerSide=Минут талдаа variant=Хувьсах timeControl=Хугацааны хязгаарлалт -username=Хэрэглэгчийн нэр +usernameOrEmail=Хэрэглэгчийн нэр password=Нууц үг haveAnAccount=Танд бүртгэл байгаа юу? rank=Зэрэг diff --git a/conf/messages.mr b/conf/messages.mr index ae63dd5563..dabd7e2924 100644 --- a/conf/messages.mr +++ b/conf/messages.mr @@ -82,7 +82,7 @@ nbDays=%s दिवस nbHours=%s तास time=vel rating=गुणांकन -username=सदस्याचे नाव +usernameOrEmail=सदस्याचे नाव password=परवलीचा शब्द haveAnAccount=खाते आहे का? changePassword=परवलीचा शब्द(Password) बदला diff --git a/conf/messages.nb b/conf/messages.nb index afd3a46ffb..8ae6bd7917 100644 --- a/conf/messages.nb +++ b/conf/messages.nb @@ -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 diff --git a/conf/messages.nl b/conf/messages.nl index 50b29619af..d7cfbd2b0e 100644 --- a/conf/messages.nl +++ b/conf/messages.nl @@ -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 diff --git a/conf/messages.nn b/conf/messages.nn index bf7b108f70..481abbd3a9 100644 --- a/conf/messages.nn +++ b/conf/messages.nn @@ -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 diff --git a/conf/messages.os b/conf/messages.os index 767251bed1..0b9cb7b701 100644 --- a/conf/messages.os +++ b/conf/messages.os @@ -5,7 +5,7 @@ mistakes=Рæдыдтæ games=Хъазтæ forum=Форум players=Хъазæгтæ -username=Ном +usernameOrEmail=Ном cancel=Аивын accept=Райсын decline=Радæуын diff --git a/conf/messages.pi b/conf/messages.pi index 7678b6d118..679c8f1a81 100644 --- a/conf/messages.pi +++ b/conf/messages.pi @@ -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ā diff --git a/conf/messages.pl b/conf/messages.pl index 84493dab74..97063c6c2f 100644 --- a/conf/messages.pl +++ b/conf/messages.pl @@ -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 diff --git a/conf/messages.ps b/conf/messages.ps index 553a432178..f2c864782f 100644 --- a/conf/messages.ps +++ b/conf/messages.ps @@ -51,7 +51,7 @@ games=لوبې forum=جرګه ځای players=د شطرنچ لوبغاړي timeControl=وختمهار -username=د کارن نوم +usernameOrEmail=د کارن نوم password=پټ نوم haveAnAccount=ګڼون لري؟ rank=پوړ diff --git a/conf/messages.pt b/conf/messages.pt index a6875b382a..58ee1bbb1f 100644 --- a/conf/messages.pt +++ b/conf/messages.pt @@ -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 diff --git a/conf/messages.ro b/conf/messages.ro index ad3d88f301..fdd45cd34d 100644 --- a/conf/messages.ro +++ b/conf/messages.ro @@ -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 diff --git a/conf/messages.ru b/conf/messages.ru index f1dc85afd5..ad2238b455 100644 --- a/conf/messages.ru +++ b/conf/messages.ru @@ -91,7 +91,7 @@ nbHours=%s часов time=Время rating=Рейтинг ratingStats=Статистика рейтинга -username=Имя пользователя +usernameOrEmail=Логин или Email password=Пароль haveAnAccount=Есть учетная запись? changePassword=Сменить пароль diff --git a/conf/messages.sk b/conf/messages.sk index 0f0f7ba191..78eccbe195 100644 --- a/conf/messages.sk +++ b/conf/messages.sk @@ -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 diff --git a/conf/messages.sl b/conf/messages.sl index b70fa6167b..2a4ecbd8dd 100644 --- a/conf/messages.sl +++ b/conf/messages.sl @@ -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 diff --git a/conf/messages.sq b/conf/messages.sq index f37d87946a..54b7bce987 100644 --- a/conf/messages.sq +++ b/conf/messages.sq @@ -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 diff --git a/conf/messages.sr b/conf/messages.sr index 29c35e06f2..24c77cafd8 100644 --- a/conf/messages.sr +++ b/conf/messages.sr @@ -91,7 +91,7 @@ nbHours=%s сати time=Време rating=Рејтинг ratingStats=Статистика рејтинга -username=Корисничко име +usernameOrEmail=Корисничко име password=Лозинка haveAnAccount=Имате налог? changePassword=Промените лозинку diff --git a/conf/messages.sv b/conf/messages.sv index bc99f2a732..46ce22c4f5 100644 --- a/conf/messages.sv +++ b/conf/messages.sv @@ -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 diff --git a/conf/messages.ta b/conf/messages.ta index bca9f15b59..958ad094c1 100644 --- a/conf/messages.ta +++ b/conf/messages.ta @@ -86,7 +86,7 @@ nbDays=%s நாட்கள் nbHours=%s மணி நேரம் time=நேரம் rating=மதிப்பீடு -username=பயனர்பெயர் +usernameOrEmail=பயனர்பெயர் password=கடவுச்சொல் haveAnAccount=கணக்கு உண்டா? changePassword=இரகசிய இலக்கத்தை மாற்று diff --git a/conf/messages.th b/conf/messages.th index 7a3dc1abde..ae14597226 100644 --- a/conf/messages.th +++ b/conf/messages.th @@ -91,7 +91,7 @@ nbHours=%s ชั่วโมง time=เวลา rating=ระดับคะแนน ratingStats=สถิติระดับคะแนน -username=ชื่อผู้ใช้ +usernameOrEmail=ชื่อผู้ใช้ password=รหัสผ่าน haveAnAccount=มีบัญชีแล้วหรือยัง? changePassword=เปลี่ยนรหัสผ่าน diff --git a/conf/messages.tp b/conf/messages.tp index af6b365a50..0ff12b53a7 100644 --- a/conf/messages.tp +++ b/conf/messages.tp @@ -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 diff --git a/conf/messages.tr b/conf/messages.tr index ab02bbd0b4..e8b39d2355 100644 --- a/conf/messages.tr +++ b/conf/messages.tr @@ -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 diff --git a/conf/messages.uk b/conf/messages.uk index a3b277b3ff..8d3c46d14c 100644 --- a/conf/messages.uk +++ b/conf/messages.uk @@ -91,7 +91,7 @@ nbHours=%s годин time=Час rating=Рейтинг ratingStats=Розподіл за рейтингом -username=Ім’я користувача +usernameOrEmail=Ім’я користувача password=Пароль haveAnAccount=Вже зареєстровані? changePassword=Змінити пароль diff --git a/conf/messages.ur b/conf/messages.ur index 7c0899468b..47985e12db 100644 --- a/conf/messages.ur +++ b/conf/messages.ur @@ -86,7 +86,7 @@ nbDays=%s دن nbHours=%s گھنٹے time=دورانیہ rating=درجہ -username=آپ کا نام +usernameOrEmail=آپ کا نام password=خفیہ کلمہ haveAnAccount=اکاؤنٹ موجود ہے؟ changePassword=خفیہ کلمہ تبدیل کریں diff --git a/conf/messages.vi b/conf/messages.vi index f4f78f3d5a..4b435d37a9 100644 --- a/conf/messages.vi +++ b/conf/messages.vi @@ -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 diff --git a/conf/messages.zh b/conf/messages.zh index 0484cc1d9d..b7efd8c102 100644 --- a/conf/messages.zh +++ b/conf/messages.zh @@ -91,7 +91,7 @@ nbHours=%s小时 time=时间 rating=评级 ratingStats=评分数据 -username=用户名 +usernameOrEmail=用户名 password=密码 haveAnAccount=有账户吗? changePassword=修改密码 diff --git a/modules/i18n/src/main/I18nKeys.scala b/modules/i18n/src/main/I18nKeys.scala index c4aae034a7..b31f02a673 100644 --- a/modules/i18n/src/main/I18nKeys.scala +++ b/modules/i18n/src/main/I18nKeys.scala @@ -1,4 +1,4 @@ -// Generated with bin/trans-dump at 2016-01-12 08:36:58 UTC +// Generated with bin/trans-dump at 2016-01-31 17:06:39 UTC package lila.i18n import play.twirl.api.Html @@ -116,7 +116,7 @@ final class I18nKeys(translator: Translator) { val `time` = new Key("time") val `rating` = new Key("rating") val `ratingStats` = new Key("ratingStats") - val `username` = new Key("username") + val `usernameOrEmail` = new Key("usernameOrEmail") val `password` = new Key("password") val `haveAnAccount` = new Key("haveAnAccount") val `changePassword` = new Key("changePassword") @@ -532,7 +532,7 @@ final class I18nKeys(translator: Translator) { val `youAreBetterThanPercentOfPerfTypePlayers` = new Key("youAreBetterThanPercentOfPerfTypePlayers") val `youDoNotHaveAnEstablishedPerfTypeRating` = new Key("youDoNotHaveAnEstablishedPerfTypeRating") - def keys = List(`playWithAFriend`, `playWithTheMachine`, `toInviteSomeoneToPlayGiveThisUrl`, `gameOver`, `waitingForOpponent`, `waiting`, `yourTurn`, `aiNameLevelAiLevel`, `level`, `toggleTheChat`, `toggleSound`, `chat`, `resign`, `checkmate`, `stalemate`, `white`, `black`, `randomColor`, `createAGame`, `whiteIsVictorious`, `blackIsVictorious`, `kingInTheCenter`, `threeChecks`, `variantEnding`, `playWithTheSameOpponentAgain`, `newOpponent`, `playWithAnotherOpponent`, `yourOpponentWantsToPlayANewGameWithYou`, `joinTheGame`, `whitePlays`, `blackPlays`, `theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim`, `makeYourOpponentResign`, `forceResignation`, `forceDraw`, `talkInChat`, `theFirstPersonToComeOnThisUrlWillPlayWithYou`, `whiteCreatesTheGame`, `blackCreatesTheGame`, `whiteJoinsTheGame`, `blackJoinsTheGame`, `whiteResigned`, `blackResigned`, `whiteLeftTheGame`, `blackLeftTheGame`, `shareThisUrlToLetSpectatorsSeeTheGame`, `theComputerAnalysisHasFailed`, `viewTheComputerAnalysis`, `requestAComputerAnalysis`, `computerAnalysis`, `analysis`, `blunders`, `mistakes`, `inaccuracies`, `moveTimes`, `flipBoard`, `threefoldRepetition`, `claimADraw`, `offerDraw`, `draw`, `nbConnectedPlayers`, `gamesBeingPlayedRightNow`, `viewAllNbGames`, `viewNbCheckmates`, `nbBookmarks`, `nbPopularGames`, `nbAnalysedGames`, `bookmarkedByNbPlayers`, `viewInFullSize`, `logOut`, `signIn`, `newToLichess`, `youNeedAnAccountToDoThat`, `signUp`, `computersAreNotAllowedToPlay`, `games`, `forum`, `xPostedInForumY`, `latestForumPosts`, `players`, `minutesPerSide`, `variant`, `variants`, `timeControl`, `realTime`, `correspondence`, `daysPerTurn`, `oneDay`, `nbDays`, `nbHours`, `time`, `rating`, `ratingStats`, `username`, `password`, `haveAnAccount`, `changePassword`, `changeEmail`, `email`, `emailIsOptional`, `passwordReset`, `forgotPassword`, `rank`, `gamesPlayed`, `nbGamesWithYou`, `declineInvitation`, `cancel`, `timeOut`, `drawOfferSent`, `drawOfferDeclined`, `drawOfferAccepted`, `drawOfferCanceled`, `whiteOffersDraw`, `blackOffersDraw`, `whiteDeclinesDraw`, `blackDeclinesDraw`, `yourOpponentOffersADraw`, `accept`, `decline`, `playingRightNow`, `finished`, `abortGame`, `gameAborted`, `standard`, `unlimited`, `mode`, `casual`, `rated`, `thisGameIsRated`, `rematch`, `rematchOfferSent`, `rematchOfferAccepted`, `rematchOfferCanceled`, `rematchOfferDeclined`, `cancelRematchOffer`, `viewRematch`, `play`, `inbox`, `chatRoom`, `spectatorRoom`, `composeMessage`, `noNewMessages`, `subject`, `recipient`, `send`, `incrementInSeconds`, `freeOnlineChess`, `spectators`, `nbWins`, `nbLosses`, `nbDraws`, `exportGames`, `ratingRange`, `giveNbSeconds`, `premoveEnabledClickAnywhereToCancel`, `thisPlayerUsesChessComputerAssistance`, `thisPlayerArtificiallyIncreasesTheirRating`, `opening`, `takeback`, `proposeATakeback`, `takebackPropositionSent`, `takebackPropositionDeclined`, `takebackPropositionAccepted`, `takebackPropositionCanceled`, `yourOpponentProposesATakeback`, `bookmarkThisGame`, `search`, `advancedSearch`, `tournament`, `tournaments`, `tournamentPoints`, `viewTournament`, `backToTournament`, `backToGame`, `freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents`, `teams`, `nbMembers`, `allTeams`, `newTeam`, `myTeams`, `noTeamFound`, `joinTeam`, `quitTeam`, `anyoneCanJoin`, `aConfirmationIsRequiredToJoin`, `joiningPolicy`, `teamLeader`, `teamBestPlayers`, `teamRecentMembers`, `xJoinedTeamY`, `xCreatedTeamY`, `averageElo`, `location`, `settings`, `filterGames`, `reset`, `apply`, `leaderboard`, `pasteTheFenStringHere`, `pasteThePgnStringHere`, `fromPosition`, `continueFromHere`, `importGame`, `nbImportedGames`, `thisIsAChessCaptcha`, `clickOnTheBoardToMakeYourMove`, `notACheckmate`, `colorPlaysCheckmateInOne`, `retry`, `reconnecting`, `onlineFriends`, `noFriendsOnline`, `findFriends`, `favoriteOpponents`, `follow`, `following`, `unfollow`, `block`, `blocked`, `unblock`, `followsYou`, `xStartedFollowingY`, `nbFollowers`, `nbFollowing`, `more`, `memberSince`, `lastLogin`, `challengeToPlay`, `player`, `list`, `graph`, `lessThanNbMinutes`, `xToYMinutes`, `textIsTooShort`, `textIsTooLong`, `required`, `openTournaments`, `duration`, `winner`, `standing`, `createANewTournament`, `join`, `withdraw`, `points`, `wins`, `losses`, `winStreak`, `createdBy`, `tournamentIsStarting`, `membersOnly`, `boardEditor`, `startPosition`, `clearBoard`, `savePosition`, `loadPosition`, `isPrivate`, `reportXToModerators`, `profile`, `editProfile`, `firstName`, `lastName`, `biography`, `country`, `preferences`, `watchLichessTV`, `previouslyOnLichessTV`, `todaysLeaders`, `onlinePlayers`, `progressToday`, `progressThisWeek`, `progressThisMonth`, `leaderboardThisWeek`, `leaderboardThisMonth`, `activeToday`, `activePlayers`, `bewareTheGameIsRatedButHasNoClock`, `training`, `yourPuzzleRatingX`, `findTheBestMoveForWhite`, `findTheBestMoveForBlack`, `toTrackYourProgress`, `trainingSignupExplanation`, `recentlyPlayedPuzzles`, `puzzleId`, `puzzleOfTheDay`, `clickToSolve`, `goodMove`, `butYouCanDoBetter`, `bestMove`, `keepGoing`, `puzzleFailed`, `butYouCanKeepTrying`, `victory`, `giveUp`, `puzzleSolvedInXSeconds`, `wasThisPuzzleAnyGood`, `pleaseVotePuzzle`, `thankYou`, `ratingX`, `playedXTimes`, `fromGameLink`, `startTraining`, `continueTraining`, `retryThisPuzzle`, `thisPuzzleIsCorrect`, `thisPuzzleIsWrong`, `youHaveNbSecondsToMakeYourFirstMove`, `nbGamesInPlay`, `automaticallyProceedToNextGameAfterMoving`, `autoSwitch`, `openingId`, `yourOpeningRatingX`, `findNbStrongMoves`, `thisMoveGivesYourOpponentTheAdvantage`, `openingFailed`, `openingSolved`, `recentlyPlayedOpenings`, `puzzles`, `coordinates`, `openings`, `latestUpdates`, `tournamentWinners`, `name`, `description`, `no`, `yes`, `help`, `createANewTopic`, `topics`, `posts`, `lastPost`, `views`, `replies`, `replyToThisTopic`, `reply`, `message`, `createTheTopic`, `reportAUser`, `user`, `reason`, `whatIsIheMatter`, `cheat`, `insult`, `troll`, `other`, `reportDescriptionHelp`, `by`, `thisTopicIsNowClosed`, `theming`, `donate`, `blog`, `questionsAndAnswers`, `notes`, `typePrivateNotesHere`, `gameDisplay`, `pieceAnimation`, `materialDifference`, `closeAccount`, `closeYourAccount`, `changedMindDoNotCloseAccount`, `closeAccountExplanation`, `thisAccountIsClosed`, `invalidUsernameOrPassword`, `emailMeALink`, `currentPassword`, `newPassword`, `newPasswordAgain`, `boardHighlights`, `pieceDestinations`, `boardCoordinates`, `moveListWhilePlaying`, `chessClock`, `tenthsOfSeconds`, `never`, `whenTimeRemainingLessThanTenSeconds`, `horizontalGreenProgressBars`, `soundWhenTimeGetsCritical`, `gameBehavior`, `premovesPlayingDuringOpponentTurn`, `takebacksWithOpponentApproval`, `promoteToQueenAutomatically`, `claimDrawOnThreefoldRepetitionAutomatically`, `privacy`, `letOtherPlayersFollowYou`, `letOtherPlayersChallengeYou`, `sound`, `soundControlInTheTopBarOfEveryPage`, `yourPreferencesHaveBeenSaved`, `none`, `fast`, `normal`, `slow`, `insideTheBoard`, `outsideTheBoard`, `onSlowGames`, `always`, `inCasualGamesOnly`, `whenPremoving`, `whenTimeRemainingLessThanThirtySeconds`, `difficultyEasy`, `difficultyNormal`, `difficultyHard`, `xLeftANoteOnY`, `xCompetesInY`, `xAskedY`, `xAnsweredY`, `xCommentedY`, `timeline`, `seeAllTournaments`, `starting`, `allInformationIsPublicAndOptional`, `yourCityRegionOrDepartment`, `biographyDescription`, `maximumNbCharacters`, `blocks`, `listBlockedPlayers`, `human`, `computer`, `side`, `clock`, `unauthorizedError`, `noInternetConnection`, `connectedToLichess`, `signedOut`, `loginSuccessful`, `playOnTheBoardOffline`, `playOfflineComputer`, `opponent`, `learn`, `community`, `tools`, `increment`, `board`, `pieces`, `sharePGN`, `playOnline`, `playOffline`, `allowAnalytics`, `shareGameURL`, `error.required`, `error.email`, `error.email_acceptable`, `error.email_unique`, `blindfoldChess`, `moveConfirmation`, `inCorrespondenceGames`, `ifRatingIsPlusMinusX`, `onlyFriends`, `menu`, `castling`, `whiteCastlingKingside`, `whiteCastlingQueenside`, `blackCastlingKingside`, `blackCastlingQueenside`, `nbForumPosts`, `tpTimeSpentPlaying`, `watchGames`, `tpTimeSpentOnTV`, `watch`, `internationalEvents`, `videoLibrary`, `mobileApp`, `webmasters`, `contribute`, `contact`, `termsOfService`, `sourceCode`, `simultaneousExhibitions`, `host`, `createdSimuls`, `hostANewSimul`, `noSimulFound`, `noSimulExplanation`, `returnToSimulHomepage`, `aboutSimul`, `aboutSimulImage`, `aboutSimulRealLife`, `aboutSimulRules`, `aboutSimulSettings`, `create`, `whenCreateSimul`, `simulVariantsHint`, `simulClockHint`, `simulAddExtraTime`, `simulHostExtraTime`, `lichessTournaments`, `tournamentFAQ`, `tournamentOfficial`, `timeBeforeTournamentStarts`, `averageCentipawnLoss`, `keyboardShortcuts`, `keyMoveBackwardOrForward`, `keyGoToStartOrEnd`, `keyShowOrHideComments`, `keyEnterOrExitVariation`, `keyYouCanDrawArrowsCirclesAndScrollToMove`, `newTournament`, `tournamentHomeTitle`, `tournamentHomeDescription`, `tournamentNotFound`, `tournamentDoesNotExist`, `tournamentMayHaveBeenCanceled`, `returnToTournamentsHomepage`, `monthlyPerfTypeRatingDistribution`, `nbPerfTypePlayersThisMonth`, `yourPerfTypeRatingisRating`, `youAreBetterThanPercentOfPerfTypePlayers`, `youDoNotHaveAnEstablishedPerfTypeRating`) + def keys = List(`playWithAFriend`, `playWithTheMachine`, `toInviteSomeoneToPlayGiveThisUrl`, `gameOver`, `waitingForOpponent`, `waiting`, `yourTurn`, `aiNameLevelAiLevel`, `level`, `toggleTheChat`, `toggleSound`, `chat`, `resign`, `checkmate`, `stalemate`, `white`, `black`, `randomColor`, `createAGame`, `whiteIsVictorious`, `blackIsVictorious`, `kingInTheCenter`, `threeChecks`, `raceFinished`, `variantEnding`, `playWithTheSameOpponentAgain`, `newOpponent`, `playWithAnotherOpponent`, `yourOpponentWantsToPlayANewGameWithYou`, `joinTheGame`, `whitePlays`, `blackPlays`, `theOtherPlayerHasLeftTheGameYouCanForceResignationOrWaitForHim`, `makeYourOpponentResign`, `forceResignation`, `forceDraw`, `talkInChat`, `theFirstPersonToComeOnThisUrlWillPlayWithYou`, `whiteCreatesTheGame`, `blackCreatesTheGame`, `whiteJoinsTheGame`, `blackJoinsTheGame`, `whiteResigned`, `blackResigned`, `whiteLeftTheGame`, `blackLeftTheGame`, `shareThisUrlToLetSpectatorsSeeTheGame`, `theComputerAnalysisHasFailed`, `viewTheComputerAnalysis`, `requestAComputerAnalysis`, `computerAnalysis`, `analysis`, `blunders`, `mistakes`, `inaccuracies`, `moveTimes`, `flipBoard`, `threefoldRepetition`, `claimADraw`, `offerDraw`, `draw`, `nbConnectedPlayers`, `gamesBeingPlayedRightNow`, `viewAllNbGames`, `viewNbCheckmates`, `nbBookmarks`, `nbPopularGames`, `nbAnalysedGames`, `bookmarkedByNbPlayers`, `viewInFullSize`, `logOut`, `signIn`, `newToLichess`, `youNeedAnAccountToDoThat`, `signUp`, `computersAreNotAllowedToPlay`, `games`, `forum`, `xPostedInForumY`, `latestForumPosts`, `players`, `minutesPerSide`, `variant`, `variants`, `timeControl`, `realTime`, `correspondence`, `daysPerTurn`, `oneDay`, `nbDays`, `nbHours`, `time`, `rating`, `ratingStats`, `usernameOrEmail`, `password`, `haveAnAccount`, `changePassword`, `changeEmail`, `email`, `emailIsOptional`, `passwordReset`, `forgotPassword`, `rank`, `gamesPlayed`, `nbGamesWithYou`, `declineInvitation`, `cancel`, `timeOut`, `drawOfferSent`, `drawOfferDeclined`, `drawOfferAccepted`, `drawOfferCanceled`, `whiteOffersDraw`, `blackOffersDraw`, `whiteDeclinesDraw`, `blackDeclinesDraw`, `yourOpponentOffersADraw`, `accept`, `decline`, `playingRightNow`, `finished`, `abortGame`, `gameAborted`, `standard`, `unlimited`, `mode`, `casual`, `rated`, `thisGameIsRated`, `rematch`, `rematchOfferSent`, `rematchOfferAccepted`, `rematchOfferCanceled`, `rematchOfferDeclined`, `cancelRematchOffer`, `viewRematch`, `play`, `inbox`, `chatRoom`, `spectatorRoom`, `composeMessage`, `noNewMessages`, `subject`, `recipient`, `send`, `incrementInSeconds`, `freeOnlineChess`, `spectators`, `nbWins`, `nbLosses`, `nbDraws`, `exportGames`, `ratingRange`, `giveNbSeconds`, `premoveEnabledClickAnywhereToCancel`, `thisPlayerUsesChessComputerAssistance`, `thisPlayerArtificiallyIncreasesTheirRating`, `opening`, `takeback`, `proposeATakeback`, `takebackPropositionSent`, `takebackPropositionDeclined`, `takebackPropositionAccepted`, `takebackPropositionCanceled`, `yourOpponentProposesATakeback`, `bookmarkThisGame`, `search`, `advancedSearch`, `tournament`, `tournaments`, `tournamentPoints`, `viewTournament`, `backToTournament`, `backToGame`, `freeOnlineChessGamePlayChessNowInACleanInterfaceNoRegistrationNoAdsNoPluginRequiredPlayChessWithComputerFriendsOrRandomOpponents`, `teams`, `nbMembers`, `allTeams`, `newTeam`, `myTeams`, `noTeamFound`, `joinTeam`, `quitTeam`, `anyoneCanJoin`, `aConfirmationIsRequiredToJoin`, `joiningPolicy`, `teamLeader`, `teamBestPlayers`, `teamRecentMembers`, `xJoinedTeamY`, `xCreatedTeamY`, `averageElo`, `location`, `settings`, `filterGames`, `reset`, `apply`, `leaderboard`, `pasteTheFenStringHere`, `pasteThePgnStringHere`, `fromPosition`, `continueFromHere`, `importGame`, `nbImportedGames`, `thisIsAChessCaptcha`, `clickOnTheBoardToMakeYourMove`, `notACheckmate`, `colorPlaysCheckmateInOne`, `retry`, `reconnecting`, `onlineFriends`, `noFriendsOnline`, `findFriends`, `favoriteOpponents`, `follow`, `following`, `unfollow`, `block`, `blocked`, `unblock`, `followsYou`, `xStartedFollowingY`, `nbFollowers`, `nbFollowing`, `more`, `memberSince`, `lastLogin`, `challengeToPlay`, `player`, `list`, `graph`, `lessThanNbMinutes`, `xToYMinutes`, `textIsTooShort`, `textIsTooLong`, `required`, `openTournaments`, `duration`, `winner`, `standing`, `createANewTournament`, `join`, `withdraw`, `points`, `wins`, `losses`, `winStreak`, `createdBy`, `tournamentIsStarting`, `membersOnly`, `boardEditor`, `startPosition`, `clearBoard`, `savePosition`, `loadPosition`, `isPrivate`, `reportXToModerators`, `profile`, `editProfile`, `firstName`, `lastName`, `biography`, `country`, `preferences`, `watchLichessTV`, `previouslyOnLichessTV`, `todaysLeaders`, `onlinePlayers`, `progressToday`, `progressThisWeek`, `progressThisMonth`, `leaderboardThisWeek`, `leaderboardThisMonth`, `activeToday`, `activePlayers`, `bewareTheGameIsRatedButHasNoClock`, `training`, `yourPuzzleRatingX`, `findTheBestMoveForWhite`, `findTheBestMoveForBlack`, `toTrackYourProgress`, `trainingSignupExplanation`, `recentlyPlayedPuzzles`, `puzzleId`, `puzzleOfTheDay`, `clickToSolve`, `goodMove`, `butYouCanDoBetter`, `bestMove`, `keepGoing`, `puzzleFailed`, `butYouCanKeepTrying`, `victory`, `giveUp`, `puzzleSolvedInXSeconds`, `wasThisPuzzleAnyGood`, `pleaseVotePuzzle`, `thankYou`, `ratingX`, `playedXTimes`, `fromGameLink`, `startTraining`, `continueTraining`, `retryThisPuzzle`, `thisPuzzleIsCorrect`, `thisPuzzleIsWrong`, `youHaveNbSecondsToMakeYourFirstMove`, `nbGamesInPlay`, `automaticallyProceedToNextGameAfterMoving`, `autoSwitch`, `openingId`, `yourOpeningRatingX`, `findNbStrongMoves`, `thisMoveGivesYourOpponentTheAdvantage`, `openingFailed`, `openingSolved`, `recentlyPlayedOpenings`, `puzzles`, `coordinates`, `openings`, `latestUpdates`, `tournamentWinners`, `name`, `description`, `no`, `yes`, `help`, `createANewTopic`, `topics`, `posts`, `lastPost`, `views`, `replies`, `replyToThisTopic`, `reply`, `message`, `createTheTopic`, `reportAUser`, `user`, `reason`, `whatIsIheMatter`, `cheat`, `insult`, `troll`, `other`, `reportDescriptionHelp`, `by`, `thisTopicIsNowClosed`, `theming`, `donate`, `blog`, `questionsAndAnswers`, `notes`, `typePrivateNotesHere`, `gameDisplay`, `pieceAnimation`, `materialDifference`, `closeAccount`, `closeYourAccount`, `changedMindDoNotCloseAccount`, `closeAccountExplanation`, `thisAccountIsClosed`, `invalidUsernameOrPassword`, `emailMeALink`, `currentPassword`, `newPassword`, `newPasswordAgain`, `boardHighlights`, `pieceDestinations`, `boardCoordinates`, `moveListWhilePlaying`, `chessClock`, `tenthsOfSeconds`, `never`, `whenTimeRemainingLessThanTenSeconds`, `horizontalGreenProgressBars`, `soundWhenTimeGetsCritical`, `gameBehavior`, `premovesPlayingDuringOpponentTurn`, `takebacksWithOpponentApproval`, `promoteToQueenAutomatically`, `claimDrawOnThreefoldRepetitionAutomatically`, `privacy`, `letOtherPlayersFollowYou`, `letOtherPlayersChallengeYou`, `sound`, `soundControlInTheTopBarOfEveryPage`, `yourPreferencesHaveBeenSaved`, `none`, `fast`, `normal`, `slow`, `insideTheBoard`, `outsideTheBoard`, `onSlowGames`, `always`, `inCasualGamesOnly`, `whenPremoving`, `whenTimeRemainingLessThanThirtySeconds`, `difficultyEasy`, `difficultyNormal`, `difficultyHard`, `xLeftANoteOnY`, `xCompetesInY`, `xAskedY`, `xAnsweredY`, `xCommentedY`, `timeline`, `seeAllTournaments`, `starting`, `allInformationIsPublicAndOptional`, `yourCityRegionOrDepartment`, `biographyDescription`, `maximumNbCharacters`, `blocks`, `listBlockedPlayers`, `human`, `computer`, `side`, `clock`, `unauthorizedError`, `noInternetConnection`, `connectedToLichess`, `signedOut`, `loginSuccessful`, `playOnTheBoardOffline`, `playOfflineComputer`, `opponent`, `learn`, `community`, `tools`, `increment`, `board`, `pieces`, `sharePGN`, `playOnline`, `playOffline`, `allowAnalytics`, `shareGameURL`, `error.required`, `error.email`, `error.email_acceptable`, `error.email_unique`, `blindfoldChess`, `moveConfirmation`, `inCorrespondenceGames`, `ifRatingIsPlusMinusX`, `onlyFriends`, `menu`, `castling`, `whiteCastlingKingside`, `whiteCastlingQueenside`, `blackCastlingKingside`, `blackCastlingQueenside`, `nbForumPosts`, `tpTimeSpentPlaying`, `watchGames`, `tpTimeSpentOnTV`, `watch`, `internationalEvents`, `videoLibrary`, `mobileApp`, `webmasters`, `contribute`, `contact`, `termsOfService`, `sourceCode`, `simultaneousExhibitions`, `host`, `createdSimuls`, `hostANewSimul`, `noSimulFound`, `noSimulExplanation`, `returnToSimulHomepage`, `aboutSimul`, `aboutSimulImage`, `aboutSimulRealLife`, `aboutSimulRules`, `aboutSimulSettings`, `create`, `whenCreateSimul`, `simulVariantsHint`, `simulClockHint`, `simulAddExtraTime`, `simulHostExtraTime`, `lichessTournaments`, `tournamentFAQ`, `tournamentOfficial`, `timeBeforeTournamentStarts`, `averageCentipawnLoss`, `keyboardShortcuts`, `keyMoveBackwardOrForward`, `keyGoToStartOrEnd`, `keyShowOrHideComments`, `keyEnterOrExitVariation`, `keyYouCanDrawArrowsCirclesAndScrollToMove`, `newTournament`, `tournamentHomeTitle`, `tournamentHomeDescription`, `tournamentNotFound`, `tournamentDoesNotExist`, `tournamentMayHaveBeenCanceled`, `returnToTournamentsHomepage`, `monthlyPerfTypeRatingDistribution`, `nbPerfTypePlayersThisMonth`, `yourPerfTypeRatingisRating`, `youAreBetterThanPercentOfPerfTypePlayers`, `youDoNotHaveAnEstablishedPerfTypeRating`) lazy val count = keys.size } From ce82b060f59d54a52be9219130d7ac912ddf7143 Mon Sep 17 00:00:00 2001 From: Unihedron Date: Mon, 1 Feb 2016 17:00:35 +0800 Subject: [PATCH 03/21] Add Faroe Islands to list of countries --- modules/user/src/main/Countries.scala | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/user/src/main/Countries.scala b/modules/user/src/main/Countries.scala index 81cf95ca07..423ca55762 100644 --- a/modules/user/src/main/Countries.scala +++ b/modules/user/src/main/Countries.scala @@ -64,6 +64,7 @@ object Countries { "FI" -> "Finland", "FJ" -> "Fiji", "FM" -> "Micronesia", + "FO" -> "Faroe Islands", "FR" -> "France", "GA" -> "Gabon", "GB" -> "United Kingdom", From 2b11dcc5394fa5422288c0b0d2f1be0c38a6d2f4 Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Tue, 2 Feb 2016 09:53:16 +0700 Subject: [PATCH 04/21] fix import resign color --- modules/importer/src/main/Importer.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/importer/src/main/Importer.scala b/modules/importer/src/main/Importer.scala index d89869d297..a1d0d95773 100644 --- a/modules/importer/src/main/Importer.scala +++ b/modules/importer/src/main/Importer.scala @@ -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 _ => } } From a11dcffe576ebffe349f729795a7e9549de1d7e2 Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Tue, 2 Feb 2016 09:56:41 +0700 Subject: [PATCH 05/21] tweak import form style --- conf/base.conf | 2 +- public/stylesheets/import.css | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/conf/base.conf b/conf/base.conf index e8384a648e..1af5e7d945 100644 --- a/conf/base.conf +++ b/conf/base.conf @@ -9,7 +9,7 @@ net { ip = "5.196.91.160" asset { domain = ${net.domain} - version = 830 + version = 831 } } play { diff --git a/public/stylesheets/import.css b/public/stylesheets/import.css index ce939bfb58..7f31d01f57 100644 --- a/public/stylesheets/import.css +++ b/public/stylesheets/import.css @@ -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; From 9d36f3bba4439da86256d3c5b4c8d870e5d20e79 Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Tue, 2 Feb 2016 10:12:47 +0700 Subject: [PATCH 06/21] expose tournament socket version in the API, on demand - closes #1563 --- app/controllers/Tournament.scala | 17 ++++++++++------- app/views/tournament/show.scala.html | 3 +-- modules/tournament/src/main/JsonView.scala | 6 ++++-- public/javascripts/big.js | 2 +- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/app/controllers/Tournament.scala b/app/controllers/Tournament.scala index 8349fe5493..afeb6683f5 100644 --- a/app/controllers/Tournament.scala +++ b/app/controllers/Tournament.scala @@ -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 } diff --git a/app/views/tournament/show.scala.html b/app/views/tournament/show.scala.html index bf82402a25..63114c7511 100644 --- a/app/views/tournament/show.scala.html +++ b/app/views/tournament/show.scala.html @@ -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 = {
    @@ -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"""")) }; } diff --git a/modules/tournament/src/main/JsonView.scala b/modules/tournament/src/main/JsonView.scala index c59e3f4d48..677e5765af 100644 --- a/modules/tournament/src/main/JsonView.scala +++ b/modules/tournament/src/main/JsonView.scala @@ -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] = diff --git a/public/javascripts/big.js b/public/javascripts/big.js index 1e91161ab8..39464c8cae 100644 --- a/public/javascripts/big.js +++ b/public/javascripts/big.js @@ -2209,7 +2209,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) }, From 59a4ce8cc8161aaa9c9e2d8712b86c137f9335c3 Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Tue, 2 Feb 2016 10:19:36 +0700 Subject: [PATCH 07/21] close #1559 --- app/views/user/claimTitle.scala.html | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/app/views/user/claimTitle.scala.html b/app/views/user/claimTitle.scala.html index 2a72b52633..67a326c142 100644 --- a/app/views/user/claimTitle.scala.html +++ b/app/views/user/claimTitle.scala.html @@ -14,22 +14,11 @@

    - In order to verify your title, you can take a picture of an ID document, - and send it to the email - @email. - This can include birth certificates, drivers licences, passports, visas, and more. + It's easy; click here to see how it's done.

    - 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. -

    - -

    - 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 @email.

    From 41596f590bde76e31bc883b73f7b3e1a1d5ea0a2 Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Mon, 1 Feb 2016 21:56:35 +0700 Subject: [PATCH 08/21] turns out the round/simul/tournament socket version was never used --- app/controllers/Round.scala | 11 +++++------ app/controllers/Simul.scala | 4 ++-- app/controllers/Tournament.scala | 4 ++-- modules/round/src/main/Socket.scala | 2 +- modules/round/src/main/SocketHandler.scala | 8 ++------ modules/round/src/main/actorApi.scala | 1 - modules/simul/src/main/Socket.scala | 2 +- modules/simul/src/main/SocketHandler.scala | 3 +-- modules/simul/src/main/actorApi.scala | 3 +-- modules/tournament/src/main/Socket.scala | 2 +- modules/tournament/src/main/SocketHandler.scala | 3 +-- modules/tournament/src/main/actorApi.scala | 3 +-- public/javascripts/big.js | 4 +--- 13 files changed, 19 insertions(+), 31 deletions(-) diff --git a/app/controllers/Round.scala b/app/controllers/Round.scala index 51d3367800..fd783d38ce 100644 --- a/app/controllers/Round.scala +++ b/app/controllers/Round.scala @@ -24,11 +24,10 @@ object Round extends LilaController with TheftPrevention { private def analyser = Env.analyse.analyser def websocketWatcher(gameId: String, color: String) = SocketOption[JsValue] { implicit ctx => - (get("sri") |@| getInt("version")).tupled ?? { - case (uid, version) => env.socketHandler.watcher( + get("sri") ?? { uid => + env.socketHandler.watcher( gameId = gameId, colorName = color, - version = version, uid = uid, user = ctx.me, ip = ctx.ip, @@ -40,9 +39,9 @@ object Round extends LilaController with TheftPrevention { GameRepo pov fullId flatMap { case Some(pov) => if (isTheft(pov)) fuccess(Left(theftResponse)) - else (get("sri") |@| getInt("version")).tupled match { - case Some((uid, version)) => env.socketHandler.player( - pov, version, uid, ~get("ran"), ctx.me, ctx.ip + else get("sri") match { + case Some(uid) => env.socketHandler.player( + pov, uid, ~get("ran"), ctx.me, ctx.ip ) map Right.apply case None => fuccess(Left(NotFound)) } diff --git a/app/controllers/Simul.scala b/app/controllers/Simul.scala index 0697056076..b18f11c7d2 100644 --- a/app/controllers/Simul.scala +++ b/app/controllers/Simul.scala @@ -115,8 +115,8 @@ object Simul extends LilaController { } def websocket(id: String, apiVersion: Int) = SocketOption[JsValue] { implicit ctx => - (getInt("version") |@| get("sri")).tupled ?? { - case (version, uid) => env.socketHandler.join(id, version, uid, ctx.me) + get("sri") ?? { uid => + env.socketHandler.join(id, uid, ctx.me) } } diff --git a/app/controllers/Tournament.scala b/app/controllers/Tournament.scala index afeb6683f5..ac15b2c28e 100644 --- a/app/controllers/Tournament.scala +++ b/app/controllers/Tournament.scala @@ -172,8 +172,8 @@ object Tournament extends LilaController { } def websocket(id: String, apiVersion: Int) = SocketOption[JsValue] { implicit ctx => - (getInt("version") |@| get("sri")).tupled ?? { - case (version, uid) => env.socketHandler.join(id, version, uid, ctx.me) + get("sri") ?? { uid => + env.socketHandler.join(id, uid, ctx.me) } } diff --git a/modules/round/src/main/Socket.scala b/modules/round/src/main/Socket.scala index 8418154412..c4f2c1d544 100644 --- a/modules/round/src/main/Socket.scala +++ b/modules/round/src/main/Socket.scala @@ -139,7 +139,7 @@ private[round] final class Socket( blackIsGone = blackIsGone) } pipeTo sender - case Join(uid, user, version, color, playerId, ip, userTv) => + case Join(uid, user, color, playerId, ip, userTv) => val (enumerator, channel) = Concurrent.broadcast[JsValue] val member = Member(channel, user, color, playerId, ip, userTv = userTv) addMember(uid, member) diff --git a/modules/round/src/main/SocketHandler.scala b/modules/round/src/main/SocketHandler.scala index 4186f40e0f..4415507dda 100644 --- a/modules/round/src/main/SocketHandler.scala +++ b/modules/round/src/main/SocketHandler.scala @@ -101,28 +101,25 @@ private[round] final class SocketHandler( def watcher( gameId: String, colorName: String, - version: Int, uid: String, user: Option[User], ip: String, userTv: Option[String]): Fu[Option[JsSocketHandler]] = GameRepo.pov(gameId, colorName) flatMap { - _ ?? { join(_, none, version, uid, "", user, ip, userTv = userTv) map some } + _ ?? { join(_, none, uid, "", user, ip, userTv = userTv) map some } } def player( pov: Pov, - version: Int, uid: String, token: String, user: Option[User], ip: String): Fu[JsSocketHandler] = - join(pov, Some(pov.playerId), version, uid, token, user, ip, userTv = none) + join(pov, Some(pov.playerId), uid, token, user, ip, userTv = none) private def join( pov: Pov, playerId: Option[String], - version: Int, uid: String, token: String, user: Option[User], @@ -131,7 +128,6 @@ private[round] final class SocketHandler( val join = Join( uid = uid, user = user, - version = version, color = pov.color, playerId = playerId, ip = ip, diff --git a/modules/round/src/main/actorApi.scala b/modules/round/src/main/actorApi.scala index 2d1d2582d5..adc035833b 100644 --- a/modules/round/src/main/actorApi.scala +++ b/modules/round/src/main/actorApi.scala @@ -69,7 +69,6 @@ case class Watcher( case class Join( uid: String, user: Option[User], - version: Int, color: Color, playerId: Option[String], ip: String, diff --git a/modules/simul/src/main/Socket.scala b/modules/simul/src/main/Socket.scala index 965f25ea4d..4cde4e0e04 100644 --- a/modules/simul/src/main/Socket.scala +++ b/modules/simul/src/main/Socket.scala @@ -76,7 +76,7 @@ private[simul] final class Socket( case GetVersion => sender ! history.version - case Join(uid, user, version) => + case Join(uid, user) => val (enumerator, channel) = Concurrent.broadcast[JsValue] val member = Member(channel, user) addMember(uid, member) diff --git a/modules/simul/src/main/SocketHandler.scala b/modules/simul/src/main/SocketHandler.scala index e12a46e74c..e88d0e157c 100644 --- a/modules/simul/src/main/SocketHandler.scala +++ b/modules/simul/src/main/SocketHandler.scala @@ -24,14 +24,13 @@ private[simul] final class SocketHandler( def join( simId: String, - version: Int, uid: String, user: Option[User]): Fu[Option[JsSocketHandler]] = exists(simId) flatMap { _ ?? { for { socket ← socketHub ? Get(simId) mapTo manifest[ActorRef] - join = Join(uid = uid, user = user, version = version) + join = Join(uid = uid, user = user) handler ← Handler(hub, socket, uid, join, user map (_.id)) { case Connected(enum, member) => (controller(socket, simId, uid, member), enum, member) diff --git a/modules/simul/src/main/actorApi.scala b/modules/simul/src/main/actorApi.scala index 6a6685384a..f4c646c03c 100644 --- a/modules/simul/src/main/actorApi.scala +++ b/modules/simul/src/main/actorApi.scala @@ -21,8 +21,7 @@ private[simul] case class Messadata(trollish: Boolean = false) private[simul] case class Join( uid: String, - user: Option[User], - version: Int) + user: Option[User]) private[simul] case class Talk(tourId: String, u: String, t: String, troll: Boolean) private[simul] case class StartGame(game: Game, hostId: String) private[simul] case class StartSimul(firstGame: Game, hostId: String) diff --git a/modules/tournament/src/main/Socket.scala b/modules/tournament/src/main/Socket.scala index 996091991d..07fea4be09 100644 --- a/modules/tournament/src/main/Socket.scala +++ b/modules/tournament/src/main/Socket.scala @@ -78,7 +78,7 @@ private[tournament] final class Socket( case GetVersion => sender ! history.version - case Join(uid, user, version) => + case Join(uid, user) => val (enumerator, channel) = Concurrent.broadcast[JsValue] val member = Member(channel, user) addMember(uid, member) diff --git a/modules/tournament/src/main/SocketHandler.scala b/modules/tournament/src/main/SocketHandler.scala index a75811f285..c1eb7f1ba7 100644 --- a/modules/tournament/src/main/SocketHandler.scala +++ b/modules/tournament/src/main/SocketHandler.scala @@ -23,14 +23,13 @@ private[tournament] final class SocketHandler( def join( tourId: String, - version: Int, uid: String, user: Option[User]): Fu[Option[JsSocketHandler]] = TournamentRepo.exists(tourId) flatMap { _ ?? { for { socket ← socketHub ? Get(tourId) mapTo manifest[ActorRef] - join = Join(uid = uid, user = user, version = version) + join = Join(uid = uid, user = user) handler ← Handler(hub, socket, uid, join, user map (_.id)) { case Connected(enum, member) => (controller(socket, tourId, uid, member), enum, member) diff --git a/modules/tournament/src/main/actorApi.scala b/modules/tournament/src/main/actorApi.scala index 05c13f38b1..8535ee2ba1 100644 --- a/modules/tournament/src/main/actorApi.scala +++ b/modules/tournament/src/main/actorApi.scala @@ -21,8 +21,7 @@ private[tournament] case class Messadata(trollish: Boolean = false) private[tournament] case class Join( uid: String, - user: Option[User], - version: Int) + user: Option[User]) private[tournament] case class Talk(tourId: String, u: String, t: String, troll: Boolean) private[tournament] case object Reload private[tournament] case class StartGame(game: Game) diff --git a/public/javascripts/big.js b/public/javascripts/big.js index 39464c8cae..1339cef6b2 100644 --- a/public/javascripts/big.js +++ b/public/javascripts/big.js @@ -69,9 +69,7 @@ lichess.StrongSocket.prototype = { var self = this; self.destroy(); self.autoReconnect = true; - var fullUrl = "ws://" + self.baseUrl() + self.url + "?" + $.param($.extend(self.settings.params, { - version: self.version - })); + var fullUrl = "ws://" + self.baseUrl() + self.url + "?" + $.param(self.settings.params); self.debug("connection attempt to " + fullUrl, true); try { if (window.MozWebSocket) self.ws = new MozWebSocket(fullUrl); From 1d6b941686cddb335ef4b73521e22d1a4b0dfee4 Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Tue, 2 Feb 2016 10:28:51 +0700 Subject: [PATCH 09/21] =?UTF-8?q?ro=20"Rom=C3=A2n=C4=83"=20translation=20#?= =?UTF-8?q?15724.=20Author:=20Daccad.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/messages.ro | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/conf/messages.ro b/conf/messages.ro index ad3d88f301..8b1327fcf9 100644 --- a/conf/messages.ro +++ b/conf/messages.ro @@ -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 jucători în această lună. +yourPerfTypeRatingisRating=Palmaresul dumneavoastră % este %s. +youAreBetterThanPercentOfPerfTypePlayers=Sunteți mai bun decât % din %s jucători. +youDoNotHaveAnEstablishedPerfTypeRating=Nu aveți încă un palmares %s definit. From 96f31146afd81804b169859dda7cc2f7b46e9e5a Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Tue, 2 Feb 2016 10:30:34 +0700 Subject: [PATCH 10/21] unfuck romanian translation --- conf/messages.ro | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/conf/messages.ro b/conf/messages.ro index 8b1327fcf9..0589d7d9ce 100644 --- a/conf/messages.ro +++ b/conf/messages.ro @@ -500,7 +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 jucători în această lună. -yourPerfTypeRatingisRating=Palmaresul dumneavoastră % este %s. -youAreBetterThanPercentOfPerfTypePlayers=Sunteți mai bun decât % din %s jucători. +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. From bd93c9df6920d1efe8008ba2902f885aa293deec Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Tue, 2 Feb 2016 10:28:52 +0700 Subject: [PATCH 11/21] pl "polski" translation #15725. Author: Suchar. --- conf/messages.pl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conf/messages.pl b/conf/messages.pl index 84493dab74..e046541e61 100644 --- a/conf/messages.pl +++ b/conf/messages.pl @@ -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 From 06a9feba14a03f2dcaba63e0208aaed65456e4ee Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Tue, 2 Feb 2016 10:28:53 +0700 Subject: [PATCH 12/21] =?UTF-8?q?ru=20"=D1=80=D1=83=D1=81=D1=81=D0=BA?= =?UTF-8?q?=D0=B8=D0=B9=20=D1=8F=D0=B7=D1=8B=D0=BA"=20translation=20#15726?= =?UTF-8?q?.=20Author:=20alexfox.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/messages.ru | 64 ++++++++++++++++++++++++------------------------ 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/conf/messages.ru b/conf/messages.ru index f1dc85afd5..59234e6360 100644 --- a/conf/messages.ru +++ b/conf/messages.ru @@ -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 @@ -93,11 +93,11 @@ rating=Рейтинг ratingStats=Статистика рейтинга username=Имя пользователя 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 рейтинг ещё не определен. From d937d740732457e24d0d4e3848df451c28e996b9 Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Tue, 2 Feb 2016 11:30:58 +0700 Subject: [PATCH 13/21] update donation goal --- conf/base.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/base.conf b/conf/base.conf index 1af5e7d945..be800b76ef 100644 --- a/conf/base.conf +++ b/conf/base.conf @@ -106,7 +106,7 @@ qa { } donation { collection.donation = donation - monthly_goal = 61700 + monthly_goal = 65700 server_donors = [ drazak, jaldus, intenex, thibault ] } chat { From bbb80417631437fdbc951ada6e6299428fc73d82 Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Tue, 2 Feb 2016 11:42:47 +0700 Subject: [PATCH 14/21] message case --- conf/messages | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/messages b/conf/messages index a21b8e0386..e06b5a9b8a 100644 --- a/conf/messages +++ b/conf/messages @@ -92,7 +92,7 @@ nbHours=%s hours time=Time rating=Rating ratingStats=Rating stats -usernameOrEmail=User name or Email +usernameOrEmail=User name or email password=Password haveAnAccount=Have an account? changePassword=Change password From 64f0f10fe00b7a891c1c9bfea452e3ff5df6bc61 Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Tue, 2 Feb 2016 11:46:54 +0700 Subject: [PATCH 15/21] make the daily Racing Kings tournament a SuperBlitz event --- modules/tournament/src/main/Scheduler.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/tournament/src/main/Scheduler.scala b/modules/tournament/src/main/Scheduler.scala index eaf1f06ae0..9bf2cefa02 100644 --- a/modules/tournament/src/main/Scheduler.scala +++ b/modules/tournament/src/main/Scheduler.scala @@ -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! From fee7d31bf3eb45f44f78f78805a5e65c028ee015 Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Tue, 2 Feb 2016 11:59:41 +0700 Subject: [PATCH 16/21] tweak error message --- modules/importer/src/main/Live.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/importer/src/main/Live.scala b/modules/importer/src/main/Live.scala index da4e89b927..736c42bf9b 100644 --- a/modules/importer/src/main/Live.scala +++ b/modules/importer/src/main/Live.scala @@ -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) From 57cc53b4b69b97629253f387ef175a82094c3d4c Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Tue, 2 Feb 2016 11:59:48 +0700 Subject: [PATCH 17/21] upgrade playframework plugin --- project/plugins.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index c4cb5cfe7a..61aa4e90b0 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -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") From 2a86cb45838a36b8e97985e2b7d5e5f2d9940628 Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Tue, 2 Feb 2016 14:08:20 +0700 Subject: [PATCH 18/21] test disposable domain detection --- .../src/test/DisposableEmailDomainTest.scala | 30 + modules/security/src/test/Fixtures.scala | 1362 +++++++++++++++++ 2 files changed, 1392 insertions(+) create mode 100644 modules/security/src/test/DisposableEmailDomainTest.scala create mode 100644 modules/security/src/test/Fixtures.scala diff --git a/modules/security/src/test/DisposableEmailDomainTest.scala b/modules/security/src/test/DisposableEmailDomainTest.scala new file mode 100644 index 0000000000..cdf9f94558 --- /dev/null +++ b/modules/security/src/test/DisposableEmailDomainTest.scala @@ -0,0 +1,30 @@ +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("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 + } + } +} diff --git a/modules/security/src/test/Fixtures.scala b/modules/security/src/test/Fixtures.scala new file mode 100644 index 0000000000..6dae98025f --- /dev/null +++ b/modules/security/src/test/Fixtures.scala @@ -0,0 +1,1362 @@ +package lila.security + +case object Fixtures { + + def json = """ +[ + "edgex.ru", + "0-mail.com", + "0815.ru", + "0815.su", + "0clickemail.com", + "0sg.net", + "0wnd.net", + "0wnd.org", + "10mail.org", + "10minutemail.cf", + "10minutemail.com", + "10minutemail.de", + "10minutemail.ga", + "10minutemail.gq", + "10minutemail.ml", + "123-m.com", + "12hourmail.com", + "12minutemail.com", + "1ce.us", + "1chuan.com", + "1mail.ml", + "1pad.de", + "1zhuan.com", + "20email.eu", + "20mail.in", + "20mail.it", + "20minutemail.com", + "21cn.com", + "24hourmail.com", + "2prong.com", + "30mail.ir", + "30minutemail.com", + "30minutesmail.com", + "3126.com", + "33mail.com", + "3d-painting.com", + "3mail.ga", + "420blaze.it", + "4mail.cf", + "4mail.ga", + "4warding.com", + "4warding.net", + "4warding.org", + "50e.info", + "5mail.cf", + "5mail.ga", + "60minutemail.com", + "675hosting.com", + "675hosting.net", + "675hosting.org", + "6ip.us", + "6mail.cf", + "6mail.ga", + "6mail.ml", + "6paq.com", + "6url.com", + "75hosting.com", + "75hosting.net", + "75hosting.org", + "7days-printing.com", + "7mail.ga", + "7mail.ml", + "7tags.com", + "8chan.co", + "8mail.cf", + "8mail.ga", + "8mail.ml", + "99experts.com", + "9mail.cf", + "9ox.net", + "BeefMilk.com", + "DingBone.com", + "FudgeRub.com", + "LookUgly.com", + "MailScrap.com", + "SmellFear.com", + "TempEmail.net", + "a-bc.net", + "a.betr.co", + "a45.in", + "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijk.com", + "abusemail.de", + "abwesend.de", + "abyssmail.com", + "ac20mail.in", + "acentri.com", + "addcom.de", + "advantimo.com", + "afrobacon.com", + "ag.us.to", + "agedmail.com", + "agnitumhost.net", + "ahk.jp", + "ajaxapp.net", + "alivance.com", + "alpenjodel.de", + "alphafrau.de", + "amail.com", + "amail4.me", + "amilegit.com", + "amiri.net", + "amiriindustries.com", + "amorki.pl", + "anappthat.com", + "ano-mail.net", + "anonbox.net", + "anonymail.dk", + "anonymbox.com", + "antichef.com", + "antichef.net", + "antispam.de", + "antispam24.de", + "appixie.com", + "armyspy.com", + "asdasd.nl", + "ass.pp.ua", + "auti.st", + "autosfromus.com", + "aver.com", + "azmeil.tk", + "baldmama.de", + "baldpapa.de", + "ballyfinance.com", + "baxomale.ht.cx", + "beddly.com", + "beefmilk.com", + "betriebsdirektor.de", + "big1.us", + "bigmir.net", + "bigprofessor.so", + "bigstring.com", + "bin-wieder-da.de", + "binkmail.com", + "bio-muesli.info", + "bio-muesli.net", + "bladesmail.net", + "bleib-bei-mir.de", + "blockfilter.com", + "blogmyway.org", + "bluebottle.com", + "bobmail.info", + "bodhi.lawlita.com", + "bofthew.com", + "bonbon.net", + "bootybay.de", + "boun.cr", + "bouncr.com", + "boxformail.in", + "boximail.com", + "boxtemp.com.br", + "brefmail.com", + "brennendesreich.de", + "briefemail.com", + "broadbandninja.com", + "brokenvalve.com", + "brokenvalve.org", + "bsnow.net", + "bspamfree.org", + "bu.mintemail.com", + "buerotiger.de", + "buffemail.com", + "bugmenot.com", + "bumpymail.com", + "bund.us", + "bundes-li.ga", + "burnthespam.info", + "burstmail.info", + "buy-24h.net.ru", + "buyusedlibrarybooks.org", + "c2.hu", + "c51vsgq.com", + "cachedot.net", + "cashette.com", + "casualdx.com", + "cbair.com", + "cc.liamria", + "cdnqa.com", + "ce.mintemail.com", + "cellurl.com", + "center-mail.de", + "centermail.at", + "centermail.ch", + "centermail.com", + "centermail.de", + "centermail.info", + "centermail.net", + "cghost.s-a-d.de", + "chammy.info", + "cheatmail.de", + "chogmail.com", + "choicemail1.com", + "chong-mail.com", + "chong-mail.net", + "chong-mail.org", + "chongsoft.org", + "clixser.com", + "clrmail.com", + "cmail.com", + "cmail.net", + "cmail.org", + "cock.li", + "coldemail.info", + "consumerriot.com", + "cool.fr.nf", + "coole-files.de", + "correo.blogos.net", + "cosmorph.com", + "courriel.fr.nf", + "courrieltemporaire.com", + "crapmail.org", + "crazespaces.pw", + "crazymailing.com", + "cubiclink.com", + "cumallover.me", + "curryworld.de", + "cust.in", + "cuvox.de", + "cx.de-a.org", + "cyber-matrix.com", + "dacoolest.com", + "daintly.com", + "dandikmail.com", + "dating4best.net", + "dayrep.com", + "dbunker.com", + "dcemail.com", + "deadaddress.com", + "deadchildren.org", + "deadfake.cf", + "deadfake.ga", + "deadfake.ml", + "deadfake.tk", + "deadspam.com", + "deagot.com", + "dealja.com", + "despam.it", + "despammed.com", + "devnullmail.com", + "dfgh.net", + "dharmatel.net", + "dicksinhisan.us", + "dicksinmyan.us", + "die-besten-bilder.de", + "die-genossen.de", + "die-optimisten.de", + "die-optimisten.net", + "dieMailbox.de", + "digital-filestore.de", + "digitalsanctuary.com", + "dingbone.com", + "directbox.com", + "discard.cf", + "discard.email", + "discard.ga", + "discard.gq", + "discard.ml", + "discard.tk", + "discardmail.*", + "discardmail.com", + "discardmail.de", + "discartmail.com", + "disposable-email.ml", + "disposable.cf", + "disposable.ga", + "disposable.ml", + "disposableaddress.com", + "disposableemailaddresses.com", + "disposableemailaddresses.emailmiser.com", + "disposableinbox.com", + "dispose.it", + "disposeamail.com", + "disposemail.com", + "dispostable.com", + "divermail.com", + "dm.w3internet.co.uk", + "dm.w3internet.co.uk", + "docmail.cz", + "dodgeit.com", + "dodgit.com", + "dodgit.org", + "dodsi.com", + "dogit.com", + "doiea.com", + "domforfb\\d+.tk", + "domozmail.com", + "donemail.ru", + "dontreg.com", + "dontsendmespam.de", + "dontsentmespam.de", + "dotmsg.com", + "download-privat.de", + "drdrb.com", + "drdrb.net", + "droplar.com", + "dropmail.me", + "duam.net", + "dudmail.com", + "dump-email.info", + "dumpandjunk.com", + "dumpmail.com", + "dumpmail.de", + "dumpyemail.com", + "duskmail.com", + "dw.now.im", + "dx.abuser.eu", + "dx.allowed.org", + "dx.awiki.org", + "dx.ez.lv", + "dx.sly.io", + "dyndns.org", + "e-mail.com", + "e-mail.org", + "e4ward.com", + "easytrashmail.com", + "ee2.pl", + "eelmail.com", + "einrot.com", + "einrot.de", + "eintagsmail.de", + "email-fake.cf", + "email-fake.ga", + "email-fake.gq", + "email-fake.ml", + "email-fake.tk", + "email.cbes.net", + "email.org", + "email4u.info", + "email60.com", + "emailage.cf", + "emailage.ga", + "emailage.gq", + "emailage.ml", + "emailage.tk", + "emaildienst.de", + "emailgo.de", + "emailias.com", + "emailigo.de", + "emailinfive.com", + "emailisvalid.com", + "emaillime.com", + "emailmiser.com", + "emailproxsy.com", + "emails.ga", + "emailsensei.com", + "emailspam.cf", + "emailspam.ga", + "emailspam.gq", + "emailspam.ml", + "emailspam.tk", + "emailtaxi.de", + "emailtemporanea.net", + "emailtemporar.ro", + "emailtemporario.com.br", + "emailthe.net", + "emailtmp.com", + "emailto.de", + "emailwarden.com", + "emailx.at.hm", + "emailxfer.com", + "emailz.cf", + "emailz.ga", + "emailz.gq", + "emailz.ml", + "emeil.in", + "emeil.ir", + "emil.com", + "emkei.cf", + "emkei.ga", + "emkei.gq", + "emkei.ml", + "emkei.tk", + "eml.pp.ua", + "emz.net", + "enterto.com", + "ephemail.net", + "est.une.victime.ninja", + "etranquil.com", + "etranquil.net", + "etranquil.org", + "evopo.com", + "example.com", + "explodemail.com", + "eyepaste.com", + "facebook-email.cf", + "facebook-email.ga", + "facebook-email.ml", + "facebookmail.gq", + "facebookmail.ml", + "fahr-zur-hoelle.org", + "fake-box.com", + "fake-email.pp.ua", + "fake-mail.cf", + "fake-mail.ga", + "fake-mail.ml", + "fakeinbox.cf", + "fakeinbox.com", + "fakeinbox.ga", + "fakeinbox.ml", + "fakeinbox.tk", + "fakeinformation.com", + "fakemail.fr", + "fakemailgenerator.com", + "fakemailz.com", + "falseaddress.com", + "fammix.com", + "fansworldwide.de", + "fantasymail.de", + "farifluset.mailexpire.com", + "fastacura.com", + "fastchevy.com", + "fastchrysler.com", + "fastkawasaki.com", + "fastmazda.com", + "fastmitsubishi.com", + "fastnissan.com", + "fastsubaru.com", + "fastsuzuki.com", + "fasttoyota.com", + "fastyamaha.com", + "fatflap.com", + "fdfdsfds.com", + "feinripptraeger.de", + "fettabernett.de", + "fightallspam.com", + "fiifke.de", + "filzmail.com", + "fishfuse.com", + "fixmail.tk", + "fizmail.com", + "fleckens.hu", + "flurred.com", + "flyspam.com", + "footard.com", + "forgetmail.com", + "fornow.eu", + "foxja.com", + "fr33mail.info", + "frapmail.com", + "free-email.cf", + "free-email.ga", + "freeletter.me", + "freemail.ms", + "freemails.cf", + "freemails.ga", + "freemails.ml", + "freemeilaadressforall.net", + "freudenkinder.de", + "freundin.ru", + "friendlymail.co.uk", + "fromru.com", + "front14.org", + "ftpinc.ca", + "fuckingduh.com", + "fudgerub.com", + "fux0ringduh.com", + "fw.moza.pl", + "g.hmail.us", + "garliclife.com", + "gawab.com", + "gelitik.in", + "gentlemansclub.de", + "get-mail.cf", + "get-mail.ga", + "get-mail.ml", + "get-mail.tk", + "get.pp.ua", + "get1mail.com", + "get2mail.fr", + "getairmail.cf", + "getairmail.com", + "getairmail.ga", + "getairmail.gq", + "getairmail.ml", + "getairmail.tk", + "getmails.eu", + "getonemail.com", + "getonemail.net", + "ghosttexter.de", + "girlsundertheinfluence.com", + "gishpuppy.com", + "go.irc.so", + "goat.si", + "goemailgo.com", + "gold-profits.info", + "goldtoolbox.com", + "golfilla.info", + "gorillaswithdirtyarmpits.com", + "gotmail.com", + "gotmail.net", + "gotmail.org", + "gotti.otherinbox.com", + "gowikibooks.com", + "gowikicampus.com", + "gowikicars.com", + "gowikifilms.com", + "gowikigames.com", + "gowikimusic.com", + "gowikinetwork.com", + "gowikitravel.com", + "gowikitv.com", + "grandmamail.com", + "grandmasmail.com", + "great-host.in", + "greensloth.com", + "grr.la", + "gsrv.co.uk", + "guerillamail.biz", + "guerillamail.com", + "guerillamail.net", + "guerillamail.org", + "guerrillamail.biz", + "guerrillamail.com", + "guerrillamail.de", + "guerrillamail.info", + "guerrillamail.net", + "guerrillamail.org", + "guerrillamailblock.com", + "gustr.com", + "h.mintemail.com", + "h8s.org", + "hab-verschlafen.de", + "habmalnefrage.de", + "hacccc.com", + "haltospam.com", + "harakirimail.com", + "hartbot.de", + "hatespam.org", + "hellodream.mobi", + "herp.in", + "herr-der-mails.de", + "hidemail.de", + "hidzz.com", + "hmamail.com", + "hochsitze.com", + "home.de", + "hopemail.biz", + "horsefucker.org", + "hot-mail.cf", + "hot-mail.ga", + "hot-mail.gq", + "hot-mail.ml", + "hot-mail.tk", + "hotpop.com", + "hulapla.de", + "humn.ws.gy", + "hush.com", + "hushmail.com", + "ich-bin-verrueckt-nach-dir.de", + "ich-will-net.de", + "ieatspam.eu", + "ieatspam.info", + "ieh-mail.de", + "ihateyoualot.info", + "iheartspam.org", + "ikbenspamvrij.nl", + "imails.info", + "imgof.com", + "imstations.com", + "inbax.tk", + "inbox.si", + "inbox2.info", + "inboxalias.com", + "inboxclean.com", + "inboxclean.org", + "inboxdesign.me", + "inboxproxy.com", + "inboxstore.me", + "incognitomail.com", + "incognitomail.net", + "incognitomail.org", + "inerted.com", + "inmail24.com", + "insorg-mail.info", + "instant-mail.de", + "instantemailaddress.com", + "ip4.pp.ua", + "ip6.pp.ua", + "ipoo.org", + "irish2me.com", + "iroid.com", + "ist-allein.info", + "ist-einmalig.de", + "ist-ganz-allein.de", + "ist-willig.de", + "iwi.net", + "izmail.net", + "jetable.com", + "jetable.de", + "jetable.fr.nf", + "jetable.net", + "jetable.org", + "jetfix.ee", + "jetzt-bin-ich-dran.com", + "jn-club.de", + "jnxjn.com", + "jobbikszimpatizans.hu", + "jourrapide.com", + "jp.ftp.sh", + "jsrsolutions.com", + "junk1e.com", + "junkmail.com", + "junkmail.ga", + "junkmail.gq", + "kaffeeschluerfer.com", + "kaffeeschluerfer.de", + "kasmail.com", + "kaspop.com", + "keepmymail.com", + "killmail.com", + "killmail.net", + "kimsdisk.com", + "kinglibrary.net", + "kingsq.ga", + "kir.ch.tc", + "klassmaster.com", + "klassmaster.net", + "klzlk.com", + "kommespaeter.de", + "kook.ml", + "koszmail.pl", + "krim.ws", + "kuh.mu", + "kulturbetrieb.info", + "kurzepost.de", + "l33r.eu", + "labetteraverouge.at", + "lackmail.net", + "lags.us", + "landmail.co", + "lass-es-geschehen.de", + "lastmail.co", + "lastmail.com", + "lazyinbox.com", + "letthemeatspam.com", + "lhsdv.com", + "liebt-dich.info", + "lifebyfood.com", + "link2mail.net", + "listomail.com", + "litedrop.com", + "loadby.us", + "login-email.cf", + "login-email.ga", + "login-email.ml", + "login-email.tk", + "loh.pp.ua", + "lol.ovpn.to", + "lookugly.com", + "lopl.co.cc", + "lortemail.dk", + "lovemeleaveme.com", + "loves.dicksinhisan.us", + "loves.dicksinmyan.us", + "loveyouforever.de", + "lr7.us", + "lr78.com", + "lroid.com", + "luv2.us", + "m.ddcrew.com", + "m4ilweb.info", + "maboard.com", + "maennerversteherin.com", + "maennerversteherin.de", + "mail-filter.com", + "mail-temporaire.fr", + "mail.by", + "mail.htl22.at", + "mail.mezimages.net", + "mail.misterpinball.de", + "mail.svenz.eu", + "mail114.net", + "mail15.com", + "mail2rss.org", + "mail333.com", + "mail4days.com", + "mail4trash.com", + "mail4u.info", + "mailbidon.com", + "mailblocks.com", + "mailbox92.com", + "mailbucket.org", + "mailcat.biz", + "mailcatch.*", + "mailcatch.com", + "maildrop.cc", + "maildrop.cf", + "maildrop.ga", + "maildrop.gq", + "maildrop.ml", + "maildx.com", + "maileater.com", + "mailed.ro", + "mailexpire.com", + "mailfa.tk", + "mailforspam.com", + "mailfree.ga", + "mailfree.gq", + "mailfree.ml", + "mailfreeonline.com", + "mailfs.com", + "mailguard.me", + "mailhazard.com", + "mailhazard.us", + "mailhz.me", + "mailimate.com", + "mailin8r.com", + "mailinater.com", + "mailinator.com", + "mailinator.gq", + "mailinator.net", + "mailinator.org", + "mailinator.us", + "mailinator2.com", + "mailinblack.com", + "mailincubator.com", + "mailismagic.com", + "mailjunk.cf", + "mailjunk.ga", + "mailjunk.gq", + "mailjunk.ml", + "mailjunk.tk", + "mailmate.com", + "mailme.gq", + "mailme.ir", + "mailme.lv", + "mailme24.com", + "mailmetrash.com", + "mailmoat.com", + "mailnator.com", + "mailnesia.com", + "mailnull.com", + "mailpick.biz", + "mailproxsy.com", + "mailquack.com", + "mailrock.biz", + "mailsac.com", + "mailscrap.com", + "mailseal.de", + "mailshell.com", + "mailsiphon.com", + "mailslapping.com", + "mailslite.com", + "mailtemp.info", + "mailtothis.com", + "mailtrash.net", + "mailueberfall.de", + "mailzi.ru", + "mailzilla.com", + "mailzilla.org", + "mailzilla.orgmbx.cc", + "makemetheking.com", + "mamber.net", + "manifestgenerator.com", + "manybrain.com", + "mbx.cc", + "mciek.com", + "mega.zik.dj", + "meine-dateien.info", + "meine-diashow.de", + "meine-fotos.info", + "meine-urlaubsfotos.de", + "meinspamschutz.de", + "meltmail.com", + "messagebeamer.de", + "metaping.com", + "mezimages.net", + "mfsa.ru", + "mierdamail.com", + "migumail.com", + "mintemail.com", + "mjukglass.nu", + "mns.ru", + "moakt.com", + "mobi.web.id", + "mobileninja.co.uk", + "moburl.com", + "mohmal.com", + "moncourrier.fr.nf", + "monemail.fr.nf", + "monmail.fr.nf", + "monumentmail.com", + "ms9.mailslite.com", + "msa.minsmail.com", + "msh.mailslite.com", + "mt2009.com", + "mt2014.com", + "mufmail.com", + "muskelshirt.de", + "mx0.wwwnew.eu", + "my-mail.ch", + "my.efxs.ca", + "my10minutemail.com", + "myadult.info", + "mycleaninbox.net", + "myemailboxy.com", + "mymail-in.net", + "mymailoasis.com", + "mynetstore.de", + "mypacks.net", + "mypartyclip.de", + "myphantomemail.com", + "myspaceinc.com", + "myspaceinc.net", + "myspaceinc.org", + "myspacepimpedup.com", + "myspamless.com", + "mytemp.email", + "mytempemail.com", + "mytop-in.net", + "mytrashmail.com", + "mytrashmail.compookmail.com", + "national.shitposting.agency", + "neomailbox.com", + "nepwk.com", + "nervmich.net", + "nervtmich.net", + "netmails.com", + "netmails.net", + "netterchef.de", + "netzidiot.de", + "neue-dateien.de", + "neverbox.com", + "nice-4u.com", + "nigge.rs", + "nmail.cf", + "no-spam.ws", + "nobulk.com", + "noclickemail.com", + "nogmailspam.info", + "nomail.xl.cx", + "nomail2me.com", + "nomorespamemails.com", + "nonspam.eu", + "nonspammer.de", + "noref.in", + "nospam.wins.com.br", + "nospam.ze.tc", + "nospam4.us", + "nospamfor.us", + "nospammail.net", + "nospamthanks.info", + "notmailinator.com", + "notsharingmy.info", + "nowhere.org", + "nowmymail.com", + "ntlhelp.net", + "nullbox.info", + "nur-fuer-spam.de", + "nurfuerspam.de", + "nus.edu.sg", + "nwldx.com", + "nybella.com", + "objectmail.com", + "obobbo.com", + "odaymail.com", + "office-dateien.de", + "oikrach.com", + "olypmall.ru", + "one-time.email", + "oneoffemail.com", + "oneoffmail.com", + "onewaymail.com", + "online.ms", + "oopi.org", + "opayq.com", + "opentrash.com", + "orangatango.com", + "ordinaryamerican.net", + "oshietechan.link", + "otherinbox.com", + "ourklips.com", + "outlawspam.com", + "ovpn.to", + "owlpic.com", + "pacificwest.com", + "pancakemail.com", + "paplease.com", + "partybombe.de", + "partyheld.de", + "pcusers.otherinbox.com", + "pepbot.com", + "pfui.ru", + "phreaker.net", + "pimpedupmyspace.com", + "pisem.net", + "pjjkp.com", + "pleasedontsendmespam.de", + "plexolan.de", + "po.bot.nu", + "poczta.onet.pl", + "poh.pp.ua", + "politikerclub.de", + "polizisten-duzer.de", + "poofy.org", + "pookmail.com", + "pornobilder-mal-gratis.com", + "portsaid.cc", + "postacin.com", + "postfach.cc", + "postonline.me", + "privacy.net", + "privy-mail.com", + "privymail.de", + "proxymail.eu", + "prtnx.com", + "prtz.eu", + "prydirect.info", + "pryworld.info", + "public-files.de", + "punkass.com", + "put2.net", + "putthisinyourspamdatabase.com", + "pwrby.com", + "qasti.com", + "qisdo.com", + "qisoa.com", + "qq.com", + "qs.dp76.com", + "quantentunnel.de", + "quickinbox.com", + "quickmail.nl", + "qv7.info", + "radiku.ye.vc", + "ralib.com", + "raubtierbaendiger.de", + "rcpt.at", + "re-gister.com", + "reallymymail.com", + "receiveee.chickenkiller.com", + "receiveee.com", + "recode.me", + "reconmail.com", + "record.me", + "recursor.net", + "recyclemail.dk", + "redchan.it", + "regbypass.com", + "regbypass.comsafe-mail.net", + "rejectmail.com", + "remail.cf", + "remail.ga", + "rhyta.com", + "rk9.chickenkiller.com", + "rklips.com", + "rmqkr.net", + "rootprompt.org", + "royal.net", + "rppkn.com", + "rtrtr.com", + "ruffrey.com", + "rx.dred.ru", + "rx.qc.to", + "s0ny.net", + "saeuferleber.de", + "safe-mail.net", + "safersignup.de", + "safetymail.info", + "safetypost.de", + "sags-per-mail.de", + "sandelf.de", + "satka.net", + "saynotospams.com", + "scatmail.com", + "schafmail.de", + "schmusemail.de", + "schreib-doch-mal-wieder.de", + "selfdestructingmail.com", + "selfdestructingmail.org", + "sendspamhere.com", + "senseless-entertainment.com", + "shared-files.de", + "sharedmailbox.org", + "sharklasers.com", + "shieldedmail.com", + "shiftmail.com", + "shinedyoureyes.com", + "shitmail.de", + "shitmail.me", + "shitmail.org", + "shitware.nl", + "shortmail.net", + "showslow.de", + "sibmail.com", + "sinnlos-mail.de", + "siria.cc", + "siteposter.net", + "skeefmail.com", + "skeefmail.net", + "slaskpost.se", + "slave-auctions.net", + "slipry.net", + "slopsbox.com", + "slushmail.com", + "smashmail.de", + "smellfear.com", + "smellrear.com", + "sms.at", + "snakemail.com", + "sneakemail.com", + "snkmail.com", + "sofimail.com", + "sofort-mail.de", + "sofortmail.de", + "softpls.asia", + "sogetthis.com", + "sohu.com", + "soisz.com", + "solvemail.info", + "sonnenkinder.org", + "soodomail.com", + "soodonims.com", + "spam-be-gone.com", + "spam.la", + "spam.su", + "spam4.me", + "spamavert.com", + "spambob.com", + "spambob.net", + "spambob.org", + "spambog.*", + "spambog.com", + "spambog.de", + "spambog.net", + "spambog.ru", + "spambooger.com", + "spambox.info", + "spambox.irishspringrealty.com", + "spambox.us", + "spamcannon.com", + "spamcannon.net", + "spamcero.com", + "spamcon.org", + "spamcorptastic.com", + "spamcowboy.com", + "spamcowboy.net", + "spamcowboy.org", + "spamday.com", + "spamdecoy.net", + "spameater.com", + "spameater.org", + "spamex.com", + "spamfighter.cf", + "spamfighter.ga", + "spamfighter.gq", + "spamfighter.ml", + "spamfighter.tk", + "spamfree.eu", + "spamfree24.com", + "spamfree24.de", + "spamfree24.eu", + "spamfree24.info", + "spamfree24.net", + "spamfree24.org", + "spamgoes.in", + "spamgourmet.com", + "spamgourmet.net", + "spamgourmet.org", + "spamgrube.net", + "spamherelots.com", + "spamhereplease.com", + "spamhole.com", + "spamify.com", + "spaminator.de", + "spamkill.info", + "spaml.com", + "spaml.de", + "spammote.com", + "spammotel.com", + "spammuffel.de", + "spamobox.com", + "spamoff.de", + "spamreturn.com", + "spamsalad.in", + "spamslicer.com", + "spamspot.com", + "spamstack.net", + "spamthis.co.uk", + "spamthisplease.com", + "spamtrail.com", + "spamtroll.net", + "speed.1s.fr", + "sperke.net", + "spikio.com", + "spoofmail.de", + "spybox.de", + "squizzy.de", + "sr.ro.lt", + "sriaus.com", + "ss.undo.it", + "ssoia.com", + "startkeys.com", + "stinkefinger.net", + "stop-my-spam.cf", + "stop-my-spam.com", + "stop-my-spam.ga", + "stop-my-spam.ml", + "stop-my-spam.tk", + "streber24.de", + "streetwisemail.com", + "stuffmail.de", + "super-auswahl.de", + "supergreatmail.com", + "supermailer.jp", + "superrito.com", + "superstachel.de", + "suremail.info", + "svk.jp", + "sweetville.net", + "sweetxxx.de", + "t.psh.me", + "tafmail.com", + "tagesmail.eu", + "tagyourself.com", + "talkinator.com", + "tapchicuoihoi.com", + "techgroup.me", + "teewars.org", + "teleworm.com", + "teleworm.us", + "temp-mail.com", + "temp-mail.de", + "temp-mail.org", + "temp-mail.ru", + "temp.bartdevos.be", + "temp.emeraldwebmail.com", + "temp.headstrong.de", + "tempail.com", + "tempalias.com", + "tempe-mail.com", + "tempemail.biz", + "tempemail.co.za", + "tempemail.com", + "tempemail.net", + "tempinbox.co.uk", + "tempinbox.com", + "tempmail.co", + "tempmail.it", + "tempmail2.com", + "tempmaildemo.com", + "tempmailer.com", + "tempomail.fr", + "temporarily.de", + "temporarioemail.com.br", + "temporaryemail.net", + "temporaryemail.us", + "temporaryforwarding.com", + "temporaryinbox.com", + "tempsky.com", + "tempthe.net", + "tempymail.com", + "terminverpennt.de", + "test.com", + "test.de", + "tfwno.gf", + "thanksnospam.info", + "thankyou2010.com", + "thecloudindex.com", + "thepryam.info", + "thisisnotmyrealemail.com", + "thrma.com", + "throam.com", + "thrott.com", + "throwawayemailaddress.com", + "throwawaymail.com", + "tilien.com", + "tittbit.in", + "tmail.ws", + "tmailinator.com", + "toiea.com", + "toomail.biz", + "topmail-files.de", + "torontomail.com", + "tortenboxer.de", + "totalmail.de", + "tradermail.info", + "trash-amil.com", + "trash-mail.at", + "trash-mail.cf", + "trash-mail.com", + "trash-mail.de", + "trash-mail.ga", + "trash-mail.gq", + "trash-mail.ml", + "trash-mail.tk", + "trash-me.com", + "trash2009.com", + "trash2010.com", + "trash2011.com", + "trashbox.eu", + "trashdevil.com", + "trashdevil.de", + "trashemail.de", + "trashmail.at", + "trashmail.com", + "trashmail.de", + "trashmail.me", + "trashmail.net", + "trashmail.org", + "trashmail.ws", + "trashmailer.com", + "trashymail.com", + "trashymail.net", + "trayna.com", + "trbvm.com", + "trickmail.net", + "trillianpro.com", + "trimix.cn", + "tryalert.com", + "turboprinz.de", + "turboprinzessin.de", + "turual.com", + "twinmail.de", + "twoweirdtricks.com", + "ty.ceed.se", + "tyldd.com", + "ubismail.net", + "uggsrock.com", + "uk2.net", + "ukr.net", + "umail.net", + "unmail.ru", + "unterderbruecke.de", + "upliftnow.com", + "uplipht.com", + "uroid.com", + "username.e4ward.com", + "uu.gl", + "ux.dob.jp", + "ux.uk.to", + "valemail.net", + "venompen.com", + "verlass-mich-nicht.de", + "veryrealemail.com", + "vfemail.net", + "vidchart.com", + "viditag.com", + "viewcastmedia.com", + "viewcastmedia.net", + "viewcastmedia.org", + "vinbazar.com", + "vkcode.ru", + "vollbio.de", + "volloeko.de", + "vomoto.com", + "vorsicht-bissig.de", + "vorsicht-scharf.de", + "vp.ycare.de", + "vubby.com", + "walala.org", + "walkmail.net", + "wants.dicksinhisan.us", + "wants.dicksinmyan.us", + "war-im-urlaub.de", + "wbb3.de", + "we.qq.my", + "webemail.me", + "webm4il.info", + "webmail4u.eu", + "webuser.in", + "wee.my", + "wefjo.grn.cc", + "weg-werf-email.de", + "wegwerf-email-addressen.de", + "wegwerf-emails.de", + "wegwerfadresse.de", + "wegwerfemail.com", + "wegwerfemail.de", + "wegwerfmail.de", + "wegwerfmail.info", + "wegwerfmail.net", + "wegwerfmail.org", + "wegwerpmailadres.nl", + "weibsvolk.de", + "weibsvolk.org", + "weinenvorglueck.de", + "wetrainbayarea.com", + "wetrainbayarea.org", + "wh4f.org", + "whatiaas.com", + "whatpaas.com", + "whatsaas.com", + "whopy.com", + "whtjddn.33mail.com", + "whyspam.me", + "wickmail.net", + "wilemail.com", + "will-hier-weg.de", + "willhackforfood.biz", + "willselfdestruct.com", + "winemaven.info", + "wir-haben-nachwuchs.de", + "wir-sind-cool.org", + "wirsindcool.de", + "wmail.cf", + "wolke7.net", + "wollan.info", + "women-at-work.org", + "wormseo.cn", + "wovz.cu.cc", + "wr.moeri.org", + "wronghead.com", + "wuzup.net", + "wuzupmail.net", + "www.e4ward.com", + "www.gishpuppy.com", + "www.mailinator.com", + "wwwnew.eu", + "xagloo.com", + "xemaps.com", + "xents.com", + "xmail.com", + "xmaily.com", + "xoxox.cc", + "xoxy.net", + "xsecurity.org", + "xww.ro", + "xyzfree.net", + "yapped.net", + "yeah.net", + "yep.it", + "yert.ye.vc", + "yesey.net", + "yhg.biz", + "yogamaven.com", + "yomail.info", + "yopmail.com", + "yopmail.fr", + "yopmail.gq", + "yopmail.net", + "yopweb.com", + "you-spam.com", + "youmail.ga", + "youmailr.com", + "ypmail.webarnak.fr.eu.org", + "ystea.org", + "yuurok.com", + "yzbid.com", + "za.com", + "ze.gally.jp", + "zebins.com", + "zebins.eu", + "zehnminutenmail.de", + "zetmail.com", + "zippymail.info", + "zoaxe.com", + "zoemail.com", + "zoemail.net", + "zoemail.org", + "zomg.info", + "zweb.in", + "zxcv.com", + "zxcvbnm.com", + "zzz.com" +] + """ +} From 1545e71d9301c065c82c42342d314776715c1ce2 Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Tue, 2 Feb 2016 14:08:31 +0700 Subject: [PATCH 19/21] support disposable email regex --- .../src/main/DisposableEmailDomain.scala | 35 ++++++++++++------- 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/modules/security/src/main/DisposableEmailDomain.scala b/modules/security/src/main/DisposableEmailDomain.scala index a7b9414f12..f2660c52fd 100644 --- a/modules/security/src/main/DisposableEmailDomain.scala +++ b/modules/security/src/main/DisposableEmailDomain.scala @@ -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) } } From 6f5587197f89ab572d25bd642ff1c7427ce8329f Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Tue, 2 Feb 2016 14:34:53 +0700 Subject: [PATCH 20/21] regexify the disposable email domain database --- .../src/test/DisposableEmailDomainTest.scala | 14 + modules/security/src/test/Fixtures.scala | 295 ++++-------------- 2 files changed, 77 insertions(+), 232 deletions(-) diff --git a/modules/security/src/test/DisposableEmailDomainTest.scala b/modules/security/src/test/DisposableEmailDomainTest.scala index cdf9f94558..6e9c75404d 100644 --- a/modules/security/src/test/DisposableEmailDomainTest.scala +++ b/modules/security/src/test/DisposableEmailDomainTest.scala @@ -11,6 +11,8 @@ class DisposableEmailDomainTest extends Specification { "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 { @@ -25,6 +27,18 @@ class DisposableEmailDomainTest extends Specification { 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 } } } diff --git a/modules/security/src/test/Fixtures.scala b/modules/security/src/test/Fixtures.scala index 6dae98025f..445ac4cc0e 100644 --- a/modules/security/src/test/Fixtures.scala +++ b/modules/security/src/test/Fixtures.scala @@ -4,6 +4,7 @@ case object Fixtures { def json = """ [ + "edgex.ru", "0-mail.com", "0815.ru", @@ -13,15 +14,8 @@ case object Fixtures { "0wnd.net", "0wnd.org", "10mail.org", - "10minutemail.cf", - "10minutemail.com", - "10minutemail.de", - "10minutemail.ga", - "10minutemail.gq", - "10minutemail.ml", + "\\d+(minute|hour)s?mail.\\w+", "123-m.com", - "12hourmail.com", - "12minutemail.com", "1ce.us", "1chuan.com", "1mail.ml", @@ -30,13 +24,9 @@ case object Fixtures { "20email.eu", "20mail.in", "20mail.it", - "20minutemail.com", "21cn.com", - "24hourmail.com", "2prong.com", "30mail.ir", - "30minutemail.com", - "30minutesmail.com", "3126.com", "33mail.com", "3d-painting.com", @@ -50,7 +40,6 @@ case object Fixtures { "50e.info", "5mail.cf", "5mail.ga", - "60minutemail.com", "675hosting.com", "675hosting.net", "675hosting.org", @@ -183,21 +172,13 @@ case object Fixtures { "cdnqa.com", "ce.mintemail.com", "cellurl.com", - "center-mail.de", - "centermail.at", - "centermail.ch", - "centermail.com", - "centermail.de", - "centermail.info", - "centermail.net", + "center-?mail.\\w+", "cghost.s-a-d.de", "chammy.info", "cheatmail.de", "chogmail.com", "choicemail1.com", - "chong-mail.com", - "chong-mail.net", - "chong-mail.org", + "chong-mail.\\w+", "chongsoft.org", "clixser.com", "clrmail.com", @@ -232,10 +213,7 @@ case object Fixtures { "dcemail.com", "deadaddress.com", "deadchildren.org", - "deadfake.cf", - "deadfake.ga", - "deadfake.ml", - "deadfake.tk", + "deadfake.\\w+", "deadspam.com", "deagot.com", "dealja.com", @@ -255,20 +233,9 @@ case object Fixtures { "digitalsanctuary.com", "dingbone.com", "directbox.com", - "discard.cf", - "discard.email", - "discard.ga", - "discard.gq", - "discard.ml", - "discard.tk", - "discardmail.*", - "discardmail.com", - "discardmail.de", - "discartmail.com", + "discar(d|t)(mail)?.\\w+", "disposable-email.ml", - "disposable.cf", - "disposable.ga", - "disposable.ml", + "disposable.\\+", "disposableaddress.com", "disposableemailaddresses.com", "disposableemailaddresses.emailmiser.com", @@ -291,12 +258,10 @@ case object Fixtures { "domozmail.com", "donemail.ru", "dontreg.com", - "dontsendmespam.de", - "dontsentmespam.de", + "dontsentmespam.\\w+", "dotmsg.com", "download-privat.de", - "drdrb.com", - "drdrb.net", + "drdrb.\\+", "droplar.com", "dropmail.me", "duam.net", @@ -323,20 +288,12 @@ case object Fixtures { "einrot.com", "einrot.de", "eintagsmail.de", - "email-fake.cf", - "email-fake.ga", - "email-fake.gq", - "email-fake.ml", - "email-fake.tk", + "email-fake.\\w+", "email.cbes.net", "email.org", "email4u.info", "email60.com", - "emailage.cf", - "emailage.ga", - "emailage.gq", - "emailage.ml", - "emailage.tk", + "emailage.\\w+", "emaildienst.de", "emailgo.de", "emailias.com", @@ -348,11 +305,7 @@ case object Fixtures { "emailproxsy.com", "emails.ga", "emailsensei.com", - "emailspam.cf", - "emailspam.ga", - "emailspam.gq", - "emailspam.ml", - "emailspam.tk", + "emailspam.\\w+", "emailtaxi.de", "emailtemporanea.net", "emailtemporar.ro", @@ -363,18 +316,11 @@ case object Fixtures { "emailwarden.com", "emailx.at.hm", "emailxfer.com", - "emailz.cf", - "emailz.ga", - "emailz.gq", - "emailz.ml", + "emailz.\\w+", "emeil.in", "emeil.ir", "emil.com", - "emkei.cf", - "emkei.ga", - "emkei.gq", - "emkei.ml", - "emkei.tk", + "emkei.\\w+", "eml.pp.ua", "emz.net", "enterto.com", @@ -395,14 +341,8 @@ case object Fixtures { "fahr-zur-hoelle.org", "fake-box.com", "fake-email.pp.ua", - "fake-mail.cf", - "fake-mail.ga", - "fake-mail.ml", - "fakeinbox.cf", - "fakeinbox.com", - "fakeinbox.ga", - "fakeinbox.ml", - "fakeinbox.tk", + "fake-mail.\\w+", + "fakeinbox.\\w+", "fakeinformation.com", "fakemail.fr", "fakemailgenerator.com", @@ -472,12 +412,7 @@ case object Fixtures { "get.pp.ua", "get1mail.com", "get2mail.fr", - "getairmail.cf", - "getairmail.com", - "getairmail.ga", - "getairmail.gq", - "getairmail.ml", - "getairmail.tk", + "getairmail.\\w+", "getmails.eu", "getonemail.com", "getonemail.net", @@ -510,16 +445,7 @@ case object Fixtures { "greensloth.com", "grr.la", "gsrv.co.uk", - "guerillamail.biz", - "guerillamail.com", - "guerillamail.net", - "guerillamail.org", - "guerrillamail.biz", - "guerrillamail.com", - "guerrillamail.de", - "guerrillamail.info", - "guerrillamail.net", - "guerrillamail.org", + "guerr?illamail.\\w+", "guerrillamailblock.com", "gustr.com", "h.mintemail.com", @@ -541,11 +467,7 @@ case object Fixtures { "home.de", "hopemail.biz", "horsefucker.org", - "hot-mail.cf", - "hot-mail.ga", - "hot-mail.gq", - "hot-mail.ml", - "hot-mail.tk", + "hot-mail.\\w+", "hotpop.com", "hulapla.de", "humn.ws.gy", @@ -553,8 +475,7 @@ case object Fixtures { "hushmail.com", "ich-bin-verrueckt-nach-dir.de", "ich-will-net.de", - "ieatspam.eu", - "ieatspam.info", + "ieatspam.\\w+", "ieh-mail.de", "ihateyoualot.info", "iheartspam.org", @@ -571,9 +492,7 @@ case object Fixtures { "inboxdesign.me", "inboxproxy.com", "inboxstore.me", - "incognitomail.com", - "incognitomail.net", - "incognitomail.org", + "incognitomail.\\w+", "inerted.com", "inmail24.com", "insorg-mail.info", @@ -590,11 +509,8 @@ case object Fixtures { "ist-willig.de", "iwi.net", "izmail.net", - "jetable.com", - "jetable.de", + "jetable.\\w+", "jetable.fr.nf", - "jetable.net", - "jetable.org", "jetfix.ee", "jetzt-bin-ich-dran.com", "jn-club.de", @@ -604,16 +520,13 @@ case object Fixtures { "jp.ftp.sh", "jsrsolutions.com", "junk1e.com", - "junkmail.com", - "junkmail.ga", - "junkmail.gq", + "junkmail.\\w+", "kaffeeschluerfer.com", "kaffeeschluerfer.de", "kasmail.com", "kaspop.com", "keepmymail.com", - "killmail.com", - "killmail.net", + "killmail.\\w+", "kimsdisk.com", "kinglibrary.net", "kingsq.ga", @@ -637,7 +550,7 @@ case object Fixtures { "lastmail.co", "lastmail.com", "lazyinbox.com", - "letthemeatspam.com", + "letthemeatspam.\\w+", "lhsdv.com", "liebt-dich.info", "lifebyfood.com", @@ -645,10 +558,7 @@ case object Fixtures { "listomail.com", "litedrop.com", "loadby.us", - "login-email.cf", - "login-email.ga", - "login-email.ml", - "login-email.tk", + "login-email.\\w+", "loh.pp.ua", "lol.ovpn.to", "lookugly.com", @@ -688,20 +598,14 @@ case object Fixtures { "mailcat.biz", "mailcatch.*", "mailcatch.com", - "maildrop.cc", - "maildrop.cf", - "maildrop.ga", - "maildrop.gq", - "maildrop.ml", + "maildrop.\\w+", "maildx.com", "maileater.com", "mailed.ro", "mailexpire.com", "mailfa.tk", "mailforspam.com", - "mailfree.ga", - "mailfree.gq", - "mailfree.ml", + "mailfree.\\w+", "mailfreeonline.com", "mailfs.com", "mailguard.me", @@ -710,21 +614,12 @@ case object Fixtures { "mailhz.me", "mailimate.com", "mailin8r.com", - "mailinater.com", - "mailinator.com", - "mailinator.gq", - "mailinator.net", - "mailinator.org", - "mailinator.us", - "mailinator2.com", + "mailinater.\\w+", + "mailinator2.\\w+", "mailinblack.com", "mailincubator.com", "mailismagic.com", - "mailjunk.cf", - "mailjunk.ga", - "mailjunk.gq", - "mailjunk.ml", - "mailjunk.tk", + "mailjunk.\\w+", "mailmate.com", "mailme.gq", "mailme.ir", @@ -980,10 +875,7 @@ case object Fixtures { "shieldedmail.com", "shiftmail.com", "shinedyoureyes.com", - "shitmail.de", - "shitmail.me", - "shitmail.org", - "shitware.nl", + "shitmail.\\w+", "shortmail.net", "showslow.de", "sibmail.com", @@ -1020,47 +912,27 @@ case object Fixtures { "spam.su", "spam4.me", "spamavert.com", - "spambob.com", - "spambob.net", - "spambob.org", - "spambog.*", - "spambog.com", - "spambog.de", - "spambog.net", - "spambog.ru", + "spambob.\\w+", + "spambog.\\w+", "spambooger.com", "spambox.info", "spambox.irishspringrealty.com", "spambox.us", - "spamcannon.com", - "spamcannon.net", + "spamcannon.\\w+", "spamcero.com", "spamcon.org", "spamcorptastic.com", - "spamcowboy.com", - "spamcowboy.net", - "spamcowboy.org", + "spamcowboy.\\w+", "spamday.com", "spamdecoy.net", "spameater.com", "spameater.org", "spamex.com", - "spamfighter.cf", - "spamfighter.ga", - "spamfighter.gq", - "spamfighter.ml", - "spamfighter.tk", + "spamfighter.\\w+", "spamfree.eu", - "spamfree24.com", - "spamfree24.de", - "spamfree24.eu", - "spamfree24.info", - "spamfree24.net", - "spamfree24.org", + "spamfree24.\\w+", "spamgoes.in", - "spamgourmet.com", - "spamgourmet.net", - "spamgourmet.org", + "spamgourmet.\\w+", "spamgrube.net", "spamherelots.com", "spamhereplease.com", @@ -1096,11 +968,7 @@ case object Fixtures { "ssoia.com", "startkeys.com", "stinkefinger.net", - "stop-my-spam.cf", - "stop-my-spam.com", - "stop-my-spam.ga", - "stop-my-spam.ml", - "stop-my-spam.tk", + "stop-my-spam.\\w+", "streber24.de", "streetwisemail.com", "stuffmail.de", @@ -1123,32 +991,25 @@ case object Fixtures { "teewars.org", "teleworm.com", "teleworm.us", - "temp-mail.com", - "temp-mail.de", - "temp-mail.org", - "temp-mail.ru", + "temp-mail.\\w+", "temp.bartdevos.be", "temp.emeraldwebmail.com", "temp.headstrong.de", "tempail.com", "tempalias.com", "tempe-mail.com", - "tempemail.biz", - "tempemail.co.za", - "tempemail.com", - "tempemail.net", - "tempinbox.co.uk", - "tempinbox.com", - "tempmail.co", - "tempmail.it", - "tempmail2.com", + "tempemail.\\w+", + "tempemail.co.\\w+", + "tempinbox.\\w+", + "tempinbox.co.\\w+", + "tempmail.\\w+", + "tempmail2.\\w+", "tempmaildemo.com", "tempmailer.com", "tempomail.fr", "temporarily.de", "temporarioemail.com.br", - "temporaryemail.net", - "temporaryemail.us", + "temporaryemail.\\w+", "temporaryforwarding.com", "temporaryinbox.com", "tempsky.com", @@ -1179,33 +1040,17 @@ case object Fixtures { "tortenboxer.de", "totalmail.de", "tradermail.info", - "trash-amil.com", - "trash-mail.at", - "trash-mail.cf", - "trash-mail.com", - "trash-mail.de", - "trash-mail.ga", - "trash-mail.gq", - "trash-mail.ml", - "trash-mail.tk", + "trash-amil.\\w+", + "trash-mail.\\w+", "trash-me.com", - "trash2009.com", - "trash2010.com", - "trash2011.com", + "trash\\d+.\\w+", "trashbox.eu", - "trashdevil.com", + "trashdevil.\\w+", "trashdevil.de", - "trashemail.de", - "trashmail.at", - "trashmail.com", - "trashmail.de", - "trashmail.me", - "trashmail.net", - "trashmail.org", - "trashmail.ws", + "trashemail.\\w+", + "trashmail.\\w+", "trashmailer.com", - "trashymail.com", - "trashymail.net", + "trashymail.\\w+", "trayna.com", "trbvm.com", "trickmail.net", @@ -1229,7 +1074,7 @@ case object Fixtures { "upliftnow.com", "uplipht.com", "uroid.com", - "username.e4ward.com", + "e4ward.com", "uu.gl", "ux.dob.jp", "ux.uk.to", @@ -1240,9 +1085,7 @@ case object Fixtures { "vfemail.net", "vidchart.com", "viditag.com", - "viewcastmedia.com", - "viewcastmedia.net", - "viewcastmedia.org", + "viewcastmedia.\\w+", "vinbazar.com", "vkcode.ru", "vollbio.de", @@ -1254,8 +1097,8 @@ case object Fixtures { "vubby.com", "walala.org", "walkmail.net", - "wants.dicksinhisan.us", - "wants.dicksinmyan.us", + "dicksinhisan.us", + "dicksinmyan.us", "war-im-urlaub.de", "wbb3.de", "we.qq.my", @@ -1269,12 +1112,8 @@ case object Fixtures { "wegwerf-email-addressen.de", "wegwerf-emails.de", "wegwerfadresse.de", - "wegwerfemail.com", - "wegwerfemail.de", - "wegwerfmail.de", - "wegwerfmail.info", - "wegwerfmail.net", - "wegwerfmail.org", + "wegwerfemail.\\w+", + "wegwerfmail.\\w+", "wegwerpmailadres.nl", "weibsvolk.de", "weibsvolk.org", @@ -1307,9 +1146,6 @@ case object Fixtures { "wronghead.com", "wuzup.net", "wuzupmail.net", - "www.e4ward.com", - "www.gishpuppy.com", - "www.mailinator.com", "wwwnew.eu", "xagloo.com", "xemaps.com", @@ -1329,10 +1165,7 @@ case object Fixtures { "yhg.biz", "yogamaven.com", "yomail.info", - "yopmail.com", - "yopmail.fr", - "yopmail.gq", - "yopmail.net", + "yopmail.\\w+", "yopweb.com", "you-spam.com", "youmail.ga", @@ -1349,9 +1182,7 @@ case object Fixtures { "zetmail.com", "zippymail.info", "zoaxe.com", - "zoemail.com", - "zoemail.net", - "zoemail.org", + "zoemail.\\w+", "zomg.info", "zweb.in", "zxcv.com", From 2eb8fabb2e979b56333d2c2d02b2dbaffcf08bf0 Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Tue, 2 Feb 2016 15:00:12 +0700 Subject: [PATCH 21/21] update test fixtures --- modules/security/src/test/Fixtures.scala | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/modules/security/src/test/Fixtures.scala b/modules/security/src/test/Fixtures.scala index 445ac4cc0e..301e202b69 100644 --- a/modules/security/src/test/Fixtures.scala +++ b/modules/security/src/test/Fixtures.scala @@ -5,7 +5,6 @@ case object Fixtures { def json = """ [ - "edgex.ru", "0-mail.com", "0815.ru", "0815.su", @@ -14,7 +13,6 @@ case object Fixtures { "0wnd.net", "0wnd.org", "10mail.org", - "\\d+(minute|hour)s?mail.\\w+", "123-m.com", "1ce.us", "1chuan.com", @@ -70,6 +68,7 @@ case object Fixtures { "MailScrap.com", "SmellFear.com", "TempEmail.net", + "\\d+(minute|hour)s?mail.\\w+", "a-bc.net", "a.betr.co", "a45.in", @@ -80,6 +79,7 @@ case object Fixtures { "ac20mail.in", "acentri.com", "addcom.de", + "adiq.eu", "advantimo.com", "afrobacon.com", "ag.us.to", @@ -97,6 +97,7 @@ case object Fixtures { "amiriindustries.com", "amorki.pl", "anappthat.com", + "andoks.net", "ano-mail.net", "anonbox.net", "anonymail.dk", @@ -223,6 +224,8 @@ case object Fixtures { "dfgh.net", "dharmatel.net", "dicksinhisan.us", + "dicksinhisan.us", + "dicksinmyan.us", "dicksinmyan.us", "die-besten-bilder.de", "die-genossen.de", @@ -278,11 +281,14 @@ case object Fixtures { "dx.awiki.org", "dx.ez.lv", "dx.sly.io", + "dx.z86.ru", "dyndns.org", "e-mail.com", "e-mail.org", "e4ward.com", + "e4ward.com", "easytrashmail.com", + "edgex.ru", "ee2.pl", "eelmail.com", "einrot.com", @@ -443,6 +449,7 @@ case object Fixtures { "grandmasmail.com", "great-host.in", "greensloth.com", + "grish.de", "grr.la", "gsrv.co.uk", "guerr?illamail.\\w+", @@ -847,6 +854,7 @@ case object Fixtures { "rootprompt.org", "royal.net", "rppkn.com", + "rr.ige.es", "rtrtr.com", "ruffrey.com", "rx.dred.ru", @@ -907,6 +915,7 @@ case object Fixtures { "sonnenkinder.org", "soodomail.com", "soodonims.com", + "soon.it", "spam-be-gone.com", "spam.la", "spam.su", @@ -964,6 +973,7 @@ case object Fixtures { "squizzy.de", "sr.ro.lt", "sriaus.com", + "ss.hi5.si", "ss.undo.it", "ssoia.com", "startkeys.com", @@ -1074,7 +1084,6 @@ case object Fixtures { "upliftnow.com", "uplipht.com", "uroid.com", - "e4ward.com", "uu.gl", "ux.dob.jp", "ux.uk.to", @@ -1097,8 +1106,6 @@ case object Fixtures { "vubby.com", "walala.org", "walkmail.net", - "dicksinhisan.us", - "dicksinmyan.us", "war-im-urlaub.de", "wbb3.de", "we.qq.my",