mirror of
https://github.com/sudoxnym/habitica-self-host.git
synced 2026-07-13 17:52:22 +00:00
40 commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
12773d539e
|
Add interface to block ip-addresses or clients due to abuse (#15484)
* Read IP blocks from database * begin building general blocking solution * add new frontend files * Add UI for managing blockers * correctly reset local data after creating blocker * Tweak wording * Add UI for managing blockers * restructure admin pages * improve test coverage * Improve blocker UI * add blocker to block emails from registration * lint fix * fix * lint fixes * fix import * add new permission for managing blockers * improve permission check * fix managing permissions from admin * improve navbar display for non fullAccess admin * update block error strings * lint fix * add option to errorHandler to skip logging * validate blocker value during input * improve blocker form display * chore(subproj): reconcile habitica-images * fix(scripts): use same Mongo version for dev/test * fix(whitespace): eof * documentation improvements * remove nconf import * remove old test --------- Co-authored-by: Kalista Payne <kalista@habitica.com> Co-authored-by: Kalista Payne <sabrecat@gmail.com> |
||
|
|
17d22dda3f
|
enforce x-client header (#15476) | ||
|
|
f26d2a59ae
|
add InvalidCredentialsError with language-agnostic code (#15472)
* add InvalidCredentialsError with language-agnostic code and update backend & web logout logic * error.code in API error responses Updated the error handler to serialize responseErr.code as the JSON error field, falling back to responseErr.name when no code is set. * fix(lint): whitespace and missing def * fix(lint): missed one * add InvalidCredentialsError case for bad token Add test verifying that auth middleware throws InvalidCredentialsError with code "invalid_credentials" and correct translated message when the API token is invalid. * fix(test): user fields implicitly required --------- Co-authored-by: Kalista Payne <sabrecat@gmail.com> |
||
|
|
1fab19acf4
|
Refactor Cron to be more robust (#15399)
* Simplify cron code use transactions for cron remove only bump mongoose to 8.x remove deprecated config fix race condition when users join a party console debugging time try calling transaction differently add missing await addditional console log . .. ... …. await more debug log mongoose logging more logging move session to encapsulate all of cron delete old todos before fetching all tasks changes try waiting for mongoose connection try adding timeout to time jump cleanup and code refactoring Translated using Weblate (Spanish) Currently translated at 100.0% (821 of 821 strings) Translated using Weblate (German) Currently translated at 100.0% (821 of 821 strings) Translated using Weblate (Japanese) Currently translated at 87.0% (228 of 262 strings) Translated using Weblate (Spanish (Latin America)) Currently translated at 93.8% (107 of 114 strings) Translated using Weblate (Spanish (Latin America)) Currently translated at 18.1% (44 of 243 strings) Translated using Weblate (Spanish (Latin America)) Currently translated at 11.9% (29 of 243 strings) Translated using Weblate (Spanish (Latin America)) Currently translated at 88.1% (724 of 821 strings) Translated using Weblate (Spanish (Latin America)) Currently translated at 100.0% (22 of 22 strings) Translated using Weblate (Spanish (Latin America)) Currently translated at 91.2% (104 of 114 strings) Translated using Weblate (Spanish (Latin America)) Currently translated at 7.4% (18 of 243 strings) Translated using Weblate (Spanish) Currently translated at 99.5% (817 of 821 strings) Translated using Weblate (German) Currently translated at 99.3% (816 of 821 strings) Translated using Weblate (German) Currently translated at 100.0% (3265 of 3265 strings) Translated using Weblate (German) Currently translated at 100.0% (3265 of 3265 strings) Translated using Weblate (English (United Kingdom)) Currently translated at 98.2% (112 of 114 strings) Translated using Weblate (English (United Kingdom)) Currently translated at 97.7% (131 of 134 strings) Translated using Weblate (English (United Kingdom)) Currently translated at 69.1% (2257 of 3265 strings) Translated using Weblate (English (United Kingdom)) Currently translated at 99.5% (239 of 240 strings) Translated using Weblate (English (United Kingdom)) Currently translated at 16.4% (40 of 243 strings) Translated using Weblate (German) Currently translated at 99.9% (3264 of 3265 strings) Translated using Weblate (Japanese) Currently translated at 86.6% (227 of 262 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (272 of 272 strings) Translated using Weblate (Japanese) Currently translated at 97.9% (423 of 432 strings) Translated using Weblate (German) Currently translated at 100.0% (262 of 262 strings) Translated using Weblate (German) Currently translated at 100.0% (432 of 432 strings) Translated using Weblate (German) Currently translated at 100.0% (240 of 240 strings) Translated using Weblate (English (United Kingdom)) Currently translated at 14.8% (36 of 243 strings) Translated using Weblate (German) Currently translated at 99.1% (814 of 821 strings) Translated using Weblate (German) Currently translated at 100.0% (397 of 397 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 84.7% (222 of 262 strings) Translated using Weblate (English (United Kingdom)) Currently translated at 84.3% (221 of 262 strings) Translated using Weblate (German) Currently translated at 100.0% (60 of 60 strings) Translated using Weblate (English (United Kingdom)) Currently translated at 100.0% (22 of 22 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 96.0% (415 of 432 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 94.2% (3077 of 3265 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 63.7% (155 of 243 strings) Translated using Weblate (German) Currently translated at 99.0% (813 of 821 strings) Translated using Weblate (English (United Kingdom)) Currently translated at 99.7% (396 of 397 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 98.7% (885 of 896 strings) Translated using Weblate (English (United Kingdom)) Currently translated at 100.0% (896 of 896 strings) Translated using Weblate (German) Currently translated at 100.0% (896 of 896 strings) Translated using Weblate (Japanese) Currently translated at 97.4% (265 of 272 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (114 of 114 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (134 of 134 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (260 of 260 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (896 of 896 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (397 of 397 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (60 of 60 strings) Update translation files Updated by "Cleanup translation files" hook in Weblate. Translated using Weblate (Japanese) Currently translated at 98.7% (392 of 397 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (240 of 240 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (262 of 262 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (114 of 114 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (60 of 60 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (432 of 432 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (240 of 240 strings) Translated using Weblate (Spanish) Currently translated at 99.0% (813 of 821 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (397 of 397 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (896 of 896 strings) Translated using Weblate (French) Currently translated at 100.0% (262 of 262 strings) Translated using Weblate (French) Currently translated at 100.0% (60 of 60 strings) Translated using Weblate (French) Currently translated at 100.0% (432 of 432 strings) Translated using Weblate (French) Currently translated at 100.0% (3265 of 3265 strings) Translated using Weblate (French) Currently translated at 100.0% (240 of 240 strings) Translated using Weblate (French) Currently translated at 100.0% (821 of 821 strings) Translated using Weblate (French) Currently translated at 100.0% (397 of 397 strings) Translated using Weblate (French) Currently translated at 100.0% (896 of 896 strings) Translated using Weblate (French) Currently translated at 100.0% (3265 of 3265 strings) Update translation files Updated by "Cleanup translation files" hook in Weblate. Update translation files Updated by "Cleanup translation files" hook in Weblate. Translated using Weblate (French) Currently translated at 100.0% (3265 of 3265 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (3255 of 3255 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (15 of 15 strings) Co-authored-by: Asier Gallego <agr2367789@gmail.com> Co-authored-by: Asier Gallego Roca <asiernoide@users.noreply.translate.habitica.com> Co-authored-by: Henrique Ferreira <pedroferreira217.ph@gmail.com> Co-authored-by: Jaime Martí <jaumemarti77@icloud.com> Co-authored-by: John Doe (Anonymous) <shyamjayeshduck@duck.com> Co-authored-by: Katharina <katharinaanna.wilding@gmail.com> Co-authored-by: Marie Blosse--Gilbin <mbgil@hotmail.fr> Co-authored-by: Mauricio Pérez <mauriciodavidperez@gmail.com> Co-authored-by: Raul Ernesto Ceron Lara <raztreuzz1234@gmail.com> Co-authored-by: Sophie LE MASLE <sophiesuff@gmail.com> Co-authored-by: Toro Mor <thomas.bizer@gmx.de> Co-authored-by: Weblate <noreply@weblate.org> Co-authored-by: Willhelm Winter <carapax@posteo.de> Co-authored-by: mattya 226 <worldworld1114@gmail.com> Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/de/ Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/en_GB/ Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es/ Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/fr/ Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ja/ Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt_BR/ Translate-URL: https://translate.habitica.com/projects/habitica/content/de/ Translate-URL: https://translate.habitica.com/projects/habitica/content/en_GB/ Translate-URL: https://translate.habitica.com/projects/habitica/content/es/ Translate-URL: https://translate.habitica.com/projects/habitica/content/fr/ Translate-URL: https://translate.habitica.com/projects/habitica/content/ja/ Translate-URL: https://translate.habitica.com/projects/habitica/death/es/ Translate-URL: https://translate.habitica.com/projects/habitica/faq/en_GB/ Translate-URL: https://translate.habitica.com/projects/habitica/faq/es_419/ Translate-URL: https://translate.habitica.com/projects/habitica/faq/pt_BR/ Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/ Translate-URL: https://translate.habitica.com/projects/habitica/gear/en_GB/ Translate-URL: https://translate.habitica.com/projects/habitica/gear/es/ Translate-URL: https://translate.habitica.com/projects/habitica/gear/fr/ Translate-URL: https://translate.habitica.com/projects/habitica/gear/pt_BR/ Translate-URL: https://translate.habitica.com/projects/habitica/generic/ Translate-URL: https://translate.habitica.com/projects/habitica/generic/de/ Translate-URL: https://translate.habitica.com/projects/habitica/generic/en_GB/ Translate-URL: https://translate.habitica.com/projects/habitica/generic/es/ Translate-URL: https://translate.habitica.com/projects/habitica/generic/fr/ Translate-URL: https://translate.habitica.com/projects/habitica/generic/ja/ Translate-URL: https://translate.habitica.com/projects/habitica/groups/ Translate-URL: https://translate.habitica.com/projects/habitica/groups/de/ Translate-URL: https://translate.habitica.com/projects/habitica/groups/es/ Translate-URL: https://translate.habitica.com/projects/habitica/groups/fr/ Translate-URL: https://translate.habitica.com/projects/habitica/groups/ja/ Translate-URL: https://translate.habitica.com/projects/habitica/groups/pt_BR/ Translate-URL: https://translate.habitica.com/projects/habitica/limited/ja/ Translate-URL: https://translate.habitica.com/projects/habitica/loginincentives/en_GB/ Translate-URL: https://translate.habitica.com/projects/habitica/loginincentives/es_419/ Translate-URL: https://translate.habitica.com/projects/habitica/messages/de/ Translate-URL: https://translate.habitica.com/projects/habitica/messages/es/ Translate-URL: https://translate.habitica.com/projects/habitica/messages/fr/ Translate-URL: https://translate.habitica.com/projects/habitica/messages/ja/ Translate-URL: https://translate.habitica.com/projects/habitica/npc/en_GB/ Translate-URL: https://translate.habitica.com/projects/habitica/npc/ja/ Translate-URL: https://translate.habitica.com/projects/habitica/pets/en_GB/ Translate-URL: https://translate.habitica.com/projects/habitica/pets/es/ Translate-URL: https://translate.habitica.com/projects/habitica/pets/es_419/ Translate-URL: https://translate.habitica.com/projects/habitica/pets/ja/ Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/de/ Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/es/ Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/es_419/ Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/fr/ Translate-URL: https://translate.habitica.com/projects/habitica/settings/ja/ Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/de/ Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/en_GB/ Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/es/ Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/fr/ Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ja/ Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/pt_BR/ Translation: Habitica/Backgrounds Translation: Habitica/Content Translation: Habitica/Death Translation: Habitica/Faq Translation: Habitica/Gear Translation: Habitica/Generic Translation: Habitica/Groups Translation: Habitica/Limited Translation: Habitica/Loginincentives Translation: Habitica/Messages Translation: Habitica/Npc Translation: Habitica/Pets Translation: Habitica/Questscontent Translation: Habitica/Settings Translation: Habitica/Subscriber 5.33.1 fix(links): next round of wiki revisions Translated using Weblate (German) Currently translated at 100.0% (896 of 896 strings) Translated using Weblate (Portuguese) Currently translated at 96.4% (864 of 896 strings) Co-authored-by: Miya <baddybadges@gmail.com> Co-authored-by: Toro Mor <thomas.bizer@gmx.de> Co-authored-by: Weblate <noreply@weblate.org> Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/de/ Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt/ Translation: Habitica/Backgrounds 5.33.2 Fix achievement display in admin panel (#15326) Fix news related permission issues (#15287) Support sprite version of armoire icon (#15354) * Use sprite component for armoire sprite * use gif version of armoire sprite * fix(import): sprite component path --------- Co-authored-by: Kalista Payne <sabrecat@gmail.com> log slow requests to loggly (#15364) Update .eslintrc.js (#15388) Add `require-await` to eslint config Translated using Weblate (Japanese) Currently translated at 93.0% (764 of 821 strings) Translated using Weblate (Hungarian) Currently translated at 54.8% (1790 of 3265 strings) Translated using Weblate (Hungarian) Currently translated at 53.5% (1748 of 3265 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (896 of 896 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (262 of 262 strings) Translated using Weblate (Hungarian) Currently translated at 52.1% (1704 of 3265 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (896 of 896 strings) Translated using Weblate (Hungarian) Currently translated at 59.3% (532 of 896 strings) Translated using Weblate (Hungarian) Currently translated at 79.3% (208 of 262 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (13 of 13 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (432 of 432 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (245 of 245 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (91 of 91 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (896 of 896 strings) Translated using Weblate (Spanish (Latin America)) Currently translated at 77.4% (2528 of 3265 strings) Translated using Weblate (Spanish (Latin America)) Currently translated at 100.0% (167 of 167 strings) Translated using Weblate (Spanish (Latin America)) Currently translated at 100.0% (167 of 167 strings) Translated using Weblate (Spanish (Latin America)) Currently translated at 100.0% (167 of 167 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (272 of 272 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 93.0% (764 of 821 strings) Translated using Weblate (French) Currently translated at 100.0% (193 of 193 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (896 of 896 strings) Translated using Weblate (French) Currently translated at 100.0% (260 of 260 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (896 of 896 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (896 of 896 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (896 of 896 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (896 of 896 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (896 of 896 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (896 of 896 strings) Translated using Weblate (Hungarian) Currently translated at 94.8% (258 of 272 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (245 of 245 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 95.2% (378 of 397 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (896 of 896 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (896 of 896 strings) Translated using Weblate (Hungarian) Currently translated at 82.8% (203 of 245 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (821 of 821 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 94.9% (377 of 397 strings) Translated using Weblate (Hungarian) Currently translated at 52.1% (1704 of 3265 strings) Translated using Weblate (Hungarian) Currently translated at 49.7% (122 of 245 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 96.1% (789 of 821 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (821 of 821 strings) Translated using Weblate (Hungarian) Currently translated at 48.5% (119 of 245 strings) Translated using Weblate (Hungarian) Currently translated at 26.1% (64 of 245 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (2 of 2 strings) Translated using Weblate (Hungarian) Currently translated at 8.9% (22 of 245 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (15 of 15 strings) Translated using Weblate (Hungarian) Currently translated at 96.2% (790 of 821 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (896 of 896 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (896 of 896 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (896 of 896 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (896 of 896 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (22 of 22 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (432 of 432 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (240 of 240 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 95.4% (784 of 821 strings) Translated using Weblate (Hungarian) Currently translated at 91.5% (752 of 821 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (91 of 91 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (397 of 397 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (47 of 47 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (193 of 193 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (896 of 896 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (896 of 896 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (114 of 114 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (60 of 60 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (397 of 397 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (193 of 193 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (193 of 193 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (260 of 260 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (94 of 94 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (134 of 134 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (240 of 240 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (47 of 47 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (260 of 260 strings) Translated using Weblate (German) Currently translated at 99.2% (133 of 134 strings) Translated using Weblate (German) Currently translated at 99.2% (133 of 134 strings) Translated using Weblate (Czech) Currently translated at 95.2% (159 of 167 strings) Translated using Weblate (Russian) Currently translated at 91.2% (2978 of 3265 strings) Translated using Weblate (Russian) Currently translated at 99.3% (890 of 896 strings) Translated using Weblate (German) Currently translated at 100.0% (3265 of 3265 strings) Translated using Weblate (German) Currently translated at 100.0% (3265 of 3265 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (134 of 134 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (47 of 47 strings) Translated using Weblate (French) Currently translated at 100.0% (134 of 134 strings) Translated using Weblate (French) Currently translated at 100.0% (47 of 47 strings) Translated using Weblate (Korean) Currently translated at 100.0% (56 of 56 strings) Translated using Weblate (Korean) Currently translated at 98.5% (132 of 134 strings) Translated using Weblate (Korean) Currently translated at 6.9% (17 of 245 strings) Translated using Weblate (Korean) Currently translated at 71.9% (645 of 896 strings) Translated using Weblate (Korean) Currently translated at 49.2% (129 of 262 strings) Translated using Weblate (Korean) Currently translated at 100.0% (13 of 13 strings) Translated using Weblate (Korean) Currently translated at 81.9% (77 of 94 strings) Translated using Weblate (Korean) Currently translated at 91.6% (153 of 167 strings) Translated using Weblate (Korean) Currently translated at 67.3% (291 of 432 strings) Translated using Weblate (Korean) Currently translated at 79.5% (191 of 240 strings) Translated using Weblate (Korean) Currently translated at 54.6% (1785 of 3265 strings) Translated using Weblate (Korean) Currently translated at 88.8% (48 of 54 strings) Translated using Weblate (Korean) Currently translated at 89.3% (42 of 47 strings) Translated using Weblate (Korean) Currently translated at 93.9% (373 of 397 strings) Translated using Weblate (Korean) Currently translated at 54.9% (50 of 91 strings) Translated using Weblate (German) Currently translated at 100.0% (182 of 182 strings) Translated using Weblate (German) Currently translated at 100.0% (182 of 182 strings) Translated using Weblate (Spanish (Latin America)) Currently translated at 73.0% (179 of 245 strings) Translated using Weblate (French) Currently translated at 100.0% (245 of 245 strings) Translated using Weblate (German) Currently translated at 99.1% (243 of 245 strings) Translated using Weblate (French) Currently translated at 99.5% (244 of 245 strings) Translated using Weblate (Spanish (Latin America)) Currently translated at 62.0% (152 of 245 strings) Translated using Weblate (Indonesian) Currently translated at 73.4% (180 of 245 strings) Translated using Weblate (Indonesian) Currently translated at 96.0% (861 of 896 strings) Translated using Weblate (Spanish (Latin America)) Currently translated at 62.0% (152 of 245 strings) Translated using Weblate (German) Currently translated at 98.7% (242 of 245 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (245 of 245 strings) Translated using Weblate (Spanish) Currently translated at 99.5% (244 of 245 strings) Translated using Weblate (Portuguese) Currently translated at 33.7% (82 of 243 strings) Translated using Weblate (Portuguese) Currently translated at 73.3% (602 of 821 strings) Translated using Weblate (Portuguese) Currently translated at 56.0% (51 of 91 strings) Translated using Weblate (German) Currently translated at 100.0% (167 of 167 strings) Translated using Weblate (German) Currently translated at 100.0% (167 of 167 strings) Translated using Weblate (Portuguese) Currently translated at 97.2% (107 of 110 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (896 of 896 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (896 of 896 strings) Translated using Weblate (Portuguese) Currently translated at 100.0% (896 of 896 strings) Co-authored-by: César Orlando Pallares Delgado <copdeb@gmail.com> Co-authored-by: Céu <marcel.ufscar@gmail.com> Co-authored-by: Diego Benitez <diego.benitez@bigpond.com> Co-authored-by: Finrod <963505255@qq.com> Co-authored-by: ForbiddenFigs <sorautai@outlook.com> Co-authored-by: Hexe des Windes (she/her) <krausanna1@gmail.com> Co-authored-by: Icaro <icaro.mascarenhas@outlook.com> Co-authored-by: Ikmal <ikmal.s.16@gmail.com> Co-authored-by: Jackal <qwerty70244@gmail.com> Co-authored-by: Jaime Martí <jaumemarti77@icloud.com> Co-authored-by: Katharina <katharinaanna.wilding@gmail.com> Co-authored-by: Leslie Munguía <moongeeuh@gmail.com> Co-authored-by: Lio Zam <zerofux@web.de> Co-authored-by: Marius <mariusschmid11@gmail.com> Co-authored-by: Miya <baddybadges@gmail.com> Co-authored-by: Natalie Luhrs <eilatan@gmail.com> Co-authored-by: Raul Ernesto Ceron Lara <raztreuzz1234@gmail.com> Co-authored-by: Sophie LE MASLE <sophiesuff@gmail.com> Co-authored-by: Toro Mor <thomas.bizer@gmx.de> Co-authored-by: Viktor Révész <rviktor@ivankapal.com> Co-authored-by: Weblate <noreply@weblate.org> Co-authored-by: 小王 <963505255@qq.com> Co-authored-by: 이채린 <cofls1256@gmail.com> Translate-URL: https://translate.habitica.com/projects/habitica/achievements/cs/ Translate-URL: https://translate.habitica.com/projects/habitica/achievements/de/ Translate-URL: https://translate.habitica.com/projects/habitica/achievements/es_419/ Translate-URL: https://translate.habitica.com/projects/habitica/achievements/ko/ Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/hu/ Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/id/ Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ko/ Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt/ Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ru/ Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hans/ Translate-URL: https://translate.habitica.com/projects/habitica/challenge/pt/ Translate-URL: https://translate.habitica.com/projects/habitica/character/es/ Translate-URL: https://translate.habitica.com/projects/habitica/character/fr/ Translate-URL: https://translate.habitica.com/projects/habitica/character/hu/ Translate-URL: https://translate.habitica.com/projects/habitica/character/zh_Hans/ Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/hu/ Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/ko/ Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/pt/ Translate-URL: https://translate.habitica.com/projects/habitica/content/hu/ Translate-URL: https://translate.habitica.com/projects/habitica/content/ko/ Translate-URL: https://translate.habitica.com/projects/habitica/content/pt_BR/ Translate-URL: https://translate.habitica.com/projects/habitica/content/zh_Hans/ Translate-URL: https://translate.habitica.com/projects/habitica/contrib/es/ Translate-URL: https://translate.habitica.com/projects/habitica/contrib/fr/ Translate-URL: https://translate.habitica.com/projects/habitica/contrib/hu/ Translate-URL: https://translate.habitica.com/projects/habitica/contrib/ko/ Translate-URL: https://translate.habitica.com/projects/habitica/contrib/zh_Hans/ Translate-URL: https://translate.habitica.com/projects/habitica/death/zh_Hans/ Translate-URL: https://translate.habitica.com/projects/habitica/defaulttasks/ko/ Translate-URL: https://translate.habitica.com/projects/habitica/faq/de/ Translate-URL: https://translate.habitica.com/projects/habitica/faq/es/ Translate-URL: https://translate.habitica.com/projects/habitica/faq/es_419/ Translate-URL: https://translate.habitica.com/projects/habitica/faq/fr/ Translate-URL: https://translate.habitica.com/projects/habitica/faq/hu/ Translate-URL: https://translate.habitica.com/projects/habitica/faq/id/ Translate-URL: https://translate.habitica.com/projects/habitica/faq/ko/ Translate-URL: https://translate.habitica.com/projects/habitica/faq/pt/ Translate-URL: https://translate.habitica.com/projects/habitica/front/de/ Translate-URL: https://translate.habitica.com/projects/habitica/gear/de/ Translate-URL: https://translate.habitica.com/projects/habitica/gear/es_419/ Translate-URL: https://translate.habitica.com/projects/habitica/gear/hu/ Translate-URL: https://translate.habitica.com/projects/habitica/gear/ko/ Translate-URL: https://translate.habitica.com/projects/habitica/gear/ru/ Translate-URL: https://translate.habitica.com/projects/habitica/generic/hu/ Translate-URL: https://translate.habitica.com/projects/habitica/generic/ko/ Translate-URL: https://translate.habitica.com/projects/habitica/generic/zh_Hans/ Translate-URL: https://translate.habitica.com/projects/habitica/groups/hu/ Translate-URL: https://translate.habitica.com/projects/habitica/groups/ko/ Translate-URL: https://translate.habitica.com/projects/habitica/limited/hu/ Translate-URL: https://translate.habitica.com/projects/habitica/loginincentives/zh_Hans/ Translate-URL: https://translate.habitica.com/projects/habitica/messages/hu/ Translate-URL: https://translate.habitica.com/projects/habitica/noscript/zh_Hans/ Translate-URL: https://translate.habitica.com/projects/habitica/npc/de/ Translate-URL: https://translate.habitica.com/projects/habitica/npc/es/ Translate-URL: https://translate.habitica.com/projects/habitica/npc/fr/ Translate-URL: https://translate.habitica.com/projects/habitica/npc/hu/ Translate-URL: https://translate.habitica.com/projects/habitica/npc/ko/ Translate-URL: https://translate.habitica.com/projects/habitica/pets/hu/ Translate-URL: https://translate.habitica.com/projects/habitica/quests/hu/ Translate-URL: https://translate.habitica.com/projects/habitica/quests/ko/ Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/hu/ Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/ja/ Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt/ Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/ Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hans/ Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/hu/ Translate-URL: https://translate.habitica.com/projects/habitica/rebirth/ko/ Translate-URL: https://translate.habitica.com/projects/habitica/settings/es/ Translate-URL: https://translate.habitica.com/projects/habitica/settings/fr/ Translate-URL: https://translate.habitica.com/projects/habitica/settings/hu/ Translate-URL: https://translate.habitica.com/projects/habitica/spells/ko/ Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/hu/ Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ko/ Translation: Habitica/Achievements Translation: Habitica/Backgrounds Translation: Habitica/Challenge Translation: Habitica/Character Translation: Habitica/Communityguidelines Translation: Habitica/Content Translation: Habitica/Contrib Translation: Habitica/Death Translation: Habitica/Defaulttasks Translation: Habitica/Faq Translation: Habitica/Front Translation: Habitica/Gear Translation: Habitica/Generic Translation: Habitica/Groups Translation: Habitica/Limited Translation: Habitica/Loginincentives Translation: Habitica/Messages Translation: Habitica/Noscript Translation: Habitica/Npc Translation: Habitica/Pets Translation: Habitica/Quests Translation: Habitica/Questscontent Translation: Habitica/Rebirth Translation: Habitica/Settings Translation: Habitica/Spells Translation: Habitica/Subscriber 5.33.3 March 2025 Content Build (#15392) * build: March 2025 css, backgrounds, subscriber gear, armoire * build: March 2025 quests, seasonal gear, various fixes * fix: fix string * fix: fixes to string errors * fix: string fixes wait for mongoose connection on timetravel rework broken cron recovery remove lodash from cron code remove old cron notification Simplify cron code fix unit tests Remove unnecessary user fetch Further code simplification fix test check lint fix disable world boss calculation during cron for now prevent saving user twice in paralllel when leaving group plan correctly call cron in api call remove console fix tests failing mark cronSignature as modified fix test Translated using Weblate (Spanish) Currently translated at 99.5% (3288 of 3303 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (836 of 836 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (836 of 836 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (899 of 899 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (836 of 836 strings) Translated using Weblate (Spanish) Currently translated at 99.5% (832 of 836 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (836 of 836 strings) Translated using Weblate (German) Currently translated at 98.8% (826 of 836 strings) Translated using Weblate (Russian) Currently translated at 40.8% (100 of 245 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (836 of 836 strings) Translated using Weblate (French) Currently translated at 100.0% (836 of 836 strings) Translated using Weblate (Russian) Currently translated at 40.4% (99 of 245 strings) Translated using Weblate (Russian) Currently translated at 40.0% (98 of 245 strings) Translated using Weblate (Russian) Currently translated at 40.0% (98 of 245 strings) Translated using Weblate (Russian) Currently translated at 39.1% (96 of 245 strings) Translated using Weblate (Russian) Currently translated at 91.2% (219 of 240 strings) Translated using Weblate (Russian) Currently translated at 38.7% (95 of 245 strings) Translated using Weblate (Russian) Currently translated at 38.7% (95 of 245 strings) Translated using Weblate (Russian) Currently translated at 38.7% (95 of 245 strings) Translated using Weblate (Russian) Currently translated at 37.5% (92 of 245 strings) Translated using Weblate (Russian) Currently translated at 37.1% (91 of 245 strings) Translated using Weblate (Russian) Currently translated at 36.7% (90 of 245 strings) Translated using Weblate (Russian) Currently translated at 100.0% (60 of 60 strings) Translated using Weblate (Russian) Currently translated at 90.8% (218 of 240 strings) Translated using Weblate (Russian) Currently translated at 90.8% (218 of 240 strings) Translated using Weblate (Russian) Currently translated at 36.3% (89 of 245 strings) Translated using Weblate (Russian) Currently translated at 36.3% (89 of 245 strings) Translated using Weblate (Russian) Currently translated at 100.0% (899 of 899 strings) Translated using Weblate (Russian) Currently translated at 99.3% (893 of 899 strings) Translated using Weblate (Russian) Currently translated at 99.2% (892 of 899 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (836 of 836 strings) Translated using Weblate (Spanish) Currently translated at 99.4% (831 of 836 strings) Translated using Weblate (Hungarian) Currently translated at 62.6% (2068 of 3303 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 97.9% (804 of 821 strings) Translated using Weblate (Portuguese) Currently translated at 72.0% (602 of 836 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (836 of 836 strings) Translated using Weblate (Spanish) Currently translated at 99.1% (829 of 836 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 98.4% (885 of 899 strings) Translated using Weblate (Portuguese) Currently translated at 99.6% (896 of 899 strings) Translated using Weblate (Hungarian) Currently translated at 57.9% (1915 of 3303 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 97.4% (800 of 821 strings) Translated using Weblate (Hungarian) Currently translated at 57.6% (1903 of 3303 strings) Translated using Weblate (Hungarian) Currently translated at 57.5% (1900 of 3303 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 97.0% (797 of 821 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (836 of 836 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (899 of 899 strings) Translated using Weblate (Bulgarian) Currently translated at 84.0% (79 of 94 strings) Translated using Weblate (Bulgarian) Currently translated at 84.0% (79 of 94 strings) Translated using Weblate (Spanish) Currently translated at 98.4% (823 of 836 strings) Translated using Weblate (Spanish) Currently translated at 98.7% (3263 of 3303 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 96.8% (795 of 821 strings) Translated using Weblate (Spanish) Currently translated at 98.3% (822 of 836 strings) Translated using Weblate (Spanish) Currently translated at 98.5% (3256 of 3303 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 96.8% (795 of 821 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 96.8% (795 of 821 strings) Translated using Weblate (French) Currently translated at 98.4% (823 of 836 strings) Translated using Weblate (French) Currently translated at 100.0% (3303 of 3303 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 96.5% (793 of 821 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (899 of 899 strings) Translated using Weblate (French) Currently translated at 99.8% (3297 of 3303 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 96.4% (792 of 821 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (899 of 899 strings) Translated using Weblate (French) Currently translated at 99.3% (3280 of 3303 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 99.7% (897 of 899 strings) Translated using Weblate (French) Currently translated at 99.1% (3275 of 3303 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 99.7% (897 of 899 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 99.7% (897 of 899 strings) Translated using Weblate (German) Currently translated at 100.0% (899 of 899 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 99.7% (897 of 899 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 97.6% (3187 of 3265 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 99.7% (897 of 899 strings) Translated using Weblate (French) Currently translated at 100.0% (899 of 899 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (896 of 896 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (896 of 896 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (896 of 896 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (896 of 896 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (262 of 262 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (272 of 272 strings) Translated using Weblate (Hungarian) Currently translated at 58.1% (1898 of 3265 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 62.8% (154 of 245 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (15 of 15 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 96.4% (792 of 821 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (91 of 91 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 95.2% (378 of 397 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (397 of 397 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (896 of 896 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (896 of 896 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (896 of 896 strings) Co-authored-by: Anna <shiloanna007@gmail.com> Co-authored-by: Besogon <victoria_murka@mail.ru> Co-authored-by: Céu <marcel.ufscar@gmail.com> Co-authored-by: ForbiddenFigs <sorautai@outlook.com> Co-authored-by: Jaime Martí <jaumemarti77@icloud.com> Co-authored-by: Nell Chant <doubletailor@gmail.com> Co-authored-by: Sophie LE MASLE <sophiesuff@gmail.com> Co-authored-by: Toro Mor <thomas.bizer@gmx.de> Co-authored-by: Viktor Révész <rviktor@ivankapal.com> Co-authored-by: Weblate <noreply@weblate.org> Co-authored-by: razil <boss.razmarin@gmail.com> Co-authored-by: 小王 <963505255@qq.com> Co-authored-by: 海岛钓鱼佬 <963505255@qq.com> Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/de/ Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es/ Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/fr/ Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/hu/ Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt/ Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/pt_BR/ Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/ru/ Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/zh_Hans/ Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/hu/ Translate-URL: https://translate.habitica.com/projects/habitica/content/hu/ Translate-URL: https://translate.habitica.com/projects/habitica/content/pt_BR/ Translate-URL: https://translate.habitica.com/projects/habitica/death/hu/ Translate-URL: https://translate.habitica.com/projects/habitica/faq/pt_BR/ Translate-URL: https://translate.habitica.com/projects/habitica/faq/ru/ Translate-URL: https://translate.habitica.com/projects/habitica/gear/es/ Translate-URL: https://translate.habitica.com/projects/habitica/gear/fr/ Translate-URL: https://translate.habitica.com/projects/habitica/gear/hu/ Translate-URL: https://translate.habitica.com/projects/habitica/gear/zh_Hans/ Translate-URL: https://translate.habitica.com/projects/habitica/generic/ru/ Translate-URL: https://translate.habitica.com/projects/habitica/limited/hu/ Translate-URL: https://translate.habitica.com/projects/habitica/messages/ru/ Translate-URL: https://translate.habitica.com/projects/habitica/quests/bg/ Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/de/ Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/es/ Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/fr/ Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/hu/ Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt/ Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/ Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/hu/ Translation: Habitica/Backgrounds Translation: Habitica/Communityguidelines Translation: Habitica/Content Translation: Habitica/Death Translation: Habitica/Faq Translation: Habitica/Gear Translation: Habitica/Generic Translation: Habitica/Limited Translation: Habitica/Messages Translation: Habitica/Quests Translation: Habitica/Questscontent Translation: Habitica/Subscriber 5.34.0 Update test.yml (#15397) combined messages restyling - next round (#15386) * split component prepare new views / states * extract empty and disabled state as components * fix empty state mail icon * first logic switching between modes, move page to /private-messages/index.vue * extract autoCompleteHelper.js * style header + start new message input * style plus button + focus input * state logic, types for sanity * WIP PM new Message started * add /members/username test * first design changes to messageCard * delete private message or chat - based on the mode * copy as todo * mention links to modal * report chat or private message * WIP likeButton * likeButton styling * hide like on private message cards * fix unit test * replace copy as todo - to just a copy to clipboard * style changes * menu position + like button width * dropdown items background + like font * fix like button padding * move api endpoints and tests around to group inbox methods + like for inbox private messages * restyle system messages * Dropdown Radius and Padding * WIP system messages * fix lint * copy delta commit of allowing liking own private messages * enable liking private messages * fix menu non hovered item icon color * fix import path * ignore background on system messages * requested changes + migration * update migration to update the unique id to some messages and delete the duplicates * migration based on users pagination * fix(migration): use Promise.all * change to bulkWrites per User, and all messages in one run (of a user) * check for array * use rest operator ... * skip sorting to get the users * remove migration, disable like for private messages without uniqueMessageId * lean+bulkWrite for likes, add time checks for like and auth for further debugging * add a limit 2 get the messages by uniqueId * Adding a simple server start script * remove pinned nodemon dep * fix inbox controller/tests * fix / requested style changes * fix empty state padding / * hide avatar weapons on messages - fix avatar spacing on messages * Hourglass Simplification (#15323) * begin removing obsolete tests * begin refactoring * update cron tests * cleanup * finish basic implementation of new logic * add more subscription tests * subscription test improvements * return nextHourglassDate again * fix gem limit * fix(test): short circuit this. * fix(admin): correct logic and style for shrimple subs * WIP(frontend): draft of main subs page view * fix hourglass count * Fix hourglass logic for upgrades * fix admin panel display * WIP(subs): extant Stripe state * fix admin panel strings * fix missing transaction type * add new field for cumulative subscription count * show date for hourglass bonus if it was received * fix test * feat(subscription): max Gems progress readout * fix(css): correct and refactor heights and selection states * fix(subs): correct border-radius and redirect * fix(stripe): correct redirect after success * Admin panel display fixes * don’t give additional HG for new sub if they already got one this month * fix issue with promo hourglasses * fix(subscription): update layout when gifting * fix(subscriptions): more gift layout revisions * fix(subscriptions): minor visual updates * fix(subs): pass autoRenews through Stripe * fix(subs): gifts DON't renew * fix(lint): unnecessary ternary * fix(lint): do negate object ig * fix(subs): try again on gifts * fix(subs): unhovery and un-12-monthy * fix bug with incorrectly giving HG bonus * remove only * fix test * fix test * fix(subs): also redirect to subs after gift sub * fix(subs): fix typeError * fix(g1g1): don't try to find Gems promo during bogo --------- Co-authored-by: Phillip Thelen <phillip@habitica.com> Co-authored-by: Kalista Payne <sabe@habitica.com> * chore(sprites): update subproject * fix(layout): tighten cancellation note * fix(subs): Google wording and HG escape * chore(testing): fake g1g1 dates * fix(subs): don't hide HG preview entirely * fix(subs): center next hourglass message * working validatedTextInput.vue within start-new-conversation-input-header.vue 🎉 * fix(git): remove changes from old develop * Revert "fix(git): remove changes from old develop" This reverts commit 0e30f7df004bc363f2868d4b59de01862dec610f. * fix(git): no actually just this file i guesss * adding an empty loading state, hiding * fought the avatar arch nemesis again * fix chatMessages (party chat) message spacing * move disabled text back to above the input area - re-enable input area * show disabled private messages top panel * fix font color * fixing uiStates - removing disabled - moving the own user check to the last * fix(lint): add missing prop defaults * fix(lint): object default should be fn * fix(chat): correct grammar in error * remove weapon position relative * revert most of avatar.vue changes, add back weapons in chat message UI * show date tooltip above system / skill messages * fix toggle disable icon position * trivial CSS cleanup * fix(typo): English syntax in test * chore(test): small style cleanup * chore(logging): revert debug function * chore(debug): remove timers from inbox like --------- Co-authored-by: SabreCat <sabe@habitica.com> Co-authored-by: Kalista Payne <sabrecat@gmail.com> Co-authored-by: Phillip Thelen <phillip@habitica.com> * improve method signature * add fallback * syntax fix * fix merge error * facepalm --------- Co-authored-by: SabreCat <sabe@habitica.com> Co-authored-by: Kalista Payne <sabrecat@gmail.com> |
||
|
|
1fe4bd2de7
|
Improve rate limiting (#15272)
* Improve rate limiting * make rate limiter config names more consistent * fix tests and add new one * correct math |
||
|
|
550ac2db9d | fix tests | ||
|
|
31e501f65a | Merge branch 'release' into schedule-rc | ||
|
|
4da53f83c9
|
Add option to log every request start and end to loggly (#15243) | ||
|
|
cd685c1b2b
|
Fix liveliness probes being rate limited (#15236)
* Do not rate limit any liveliness probes * update example config |
||
|
|
c0d6338eba | WIP(shops): safer debug mode | ||
|
|
a50c0eb1e7 | fix test | ||
|
|
fb56f7df20 | Fix various tests | ||
|
|
8fa91a3805 | chore(node): upgrade to Node 20 | ||
|
|
f8d315ff6e
|
Upgrade to mongoose 7 (#14971)
* remove some unused dependencies * update mongoose version * make common tests pass * Make unit tests pass * make api v3 integration tests pass * fix lint issues * fix issue with package-lock * fix(lint): we don't need no .js * fix(lint): update to latest config-habitrpg * chore(npm): update package locks * fix(test): replace deprecated fn * chore(package): update eslint-habitrpg again * fix(lint): server linting * fix(lint): client linting * fix(client): correct mangled common imports * chore(npm): update package-locks * fix(lint): punctuation, module --------- Co-authored-by: SabreCat <sabrecat@gmail.com> Co-authored-by: SabreCat <sabe@habitica.com> |
||
|
|
8150fef993
|
Database Access optimisations (#14544)
* Optimize database access during spell casting * load less data when casting spells * Begin migrating update calls to updateOne and updateMany * Only update user objects that don’t have notification yet * fix test * fix spy * Don’t unnecessarily update user when requesting invalid guild * fix sort order for middlewares to not load user twice every request * fix tests * fix integration test * fix skill usage not always deducting mp * addtest case for blessing spell * fix healAll * fix lint * Fix error for when some spells are used outside of party * Add check to not run bulk spells in web client * fix(tags): change const to let --------- Co-authored-by: SabreCat <sabe@habitica.com> |
||
|
|
38b39b600c
|
Adminpanel and revamped permissions (#13843)
* create Admin Panel page with initial content from Hall's admin section
* reorganise Admin Panel form and add more accordians
* add lastCron to fields returned by api.getHeroes
* improve timestamps and authentication section
* add party and quest info to Admin Panel, add party to heroAdminFields
* move Admin Panel menu item to top of menu, make invisible to non-admins
* remove code used for displaying all Heroes
* add avatar appearance and drops section in Admin Panel
* allow logged-in user to be the default hero loaded
* add time zones to timestamp/authentication section
* rename Items to Update Items
This will allow a new Items section to be added.
* add read-only Items display with button to copy data to Update Items section
* remove never-used allItemsPaths code that had been copied from Hall
* update tests for the attributes added to heroAdminFields
* supply names for items and also set information for gear/equipment
* remove code that loads subsections of content
We use enough of the content that it's easier to load it all and
access it through the content object, especially when we're looping
through different item types.
* add gear names and set details to Avatar Costume/Battle Gear section
* make the wiki URLs clickable and make minor item format improvements
* add gear sets for Check-In Incentives and animal ears and tails
* add gear set for Gold-Purchasable Quest Lines
Also merges the existing Mystery of the Masterclassers quest set into it.
* fix error with Kickstarter gear set and include wiki link
* improve description of check-in incentive gear set
* fix description of Items section
* fix lint warnings
* update another test for the attributes added to heroAdminFields
* allow "@" to be included when specifying Username to load
* create GetHeroParty API v3 route to fetch a given user's party data
Only some data from the party will be loaded (e.g., not private
data such as name, description).
Includes tests for the route.
See the next commit for front-end changes that use this.
* display data from a given user's party in admin panel
Only some data from the party will be loaded (e.g., not private
data such as name, description).
Also adds support for finding and displaying errors from the
user's data.
* use new error handling method for other sections
- Time zone differences
- Cron bugs
- Privilege removal (mute/block) - not a bug but needs to be highlighted
* redirect non-admin users away from admin-only page (WIP)
This needs more work. Currently, admin users are also redirected
if they access the page by direct URL or after reload.
* clarify source of items from Check-In Incentives and Lunar Battle quests
* replace non-standard form fields with HTML forms
* add user's language, remove unused export blocks
* convert functions to filters: formatDate, formatTimeZone
* improve display of minutes portion of time zone in Admin Panel
* move basic details about user to a new component
* move Timestamp/Cron/Auth/etc details to a new component - WIP, has errors
The automatic expand and error warnings don't reset themselves when
you fetch data for a new user.
* replace non-standard form fields with HTML forms
Most of this was done in 26fdcbbee51937d39a149a20bf7ccd1cf674ca18
* move Timestamp/Cron/Auth/etc details to a new component (fixed)
* move Avatar and Drops section to a new component
* move Party and Quest section to a new component
* move Contributor Details to new component, add checkbox for admin, add preview
This adds a markdown-enabled preview of the Contributions textarea.
It also removes the code that automatically set contributor.admin
to true when the Tier was above 7.
That feature wasn't secure because the Tier can be accidentally
changed if you scroll while the cursor is over the Tier form field
(we accidentally demoted a Socialite once by doing that and if
we'd scrolled in the other direction we would have given her
admin privileges).
Instead there's now a checkbox for giving moderator-level privileges.
We'll want that anyway when we move to a system of selected
privileges for each admin instead of all admin privileges being
given to all mods/staff.
There's also a commented-out checkbox for giving Bailey CMS
privileges, for when we're ready to use that. The User model doesn't
yet have support for it.
* move Privileges and Gems section to a new component
* rename formatItems to getItemDescription; make other minor fixes
* remove an outdated test description
This "pended" explanation probably wasn't needed after "x" was
removed from "describe" in
|
||
|
|
9ff0766910
|
Fix cron not running if previous run failed (#13892)
* catch issue where cron wouldn’t run bc previous run failed * add some more tests for cron middleware * fix lint |
||
|
|
79033af36e |
Revert "fix(test): skip undesired test"
This reverts commit
|
||
|
|
93e0d16d5d | fix(test): skip undesired test | ||
|
|
40bf664f20 | chore(analytics): various updates to analytics tracking | ||
|
|
14714f9e1c
|
Drop Cap A/B Tests: v2 (#12759)
* drop cap ab test: enroll all web users, 50/50 * update tests * fix lint |
||
|
|
9474a44df3 | fix(ab test): enroll more users | ||
|
|
e04d4e8bea
|
Drop Cap Notification, Modal and A/B Test (#12651)
* add drop cap notification * add drop cap notification * add dismissible notification * fix(notification): correct remove icon positioning * track events * add modal * add back files * fix links and add missing analytics * fix rounded borders and hide sub info for subscribers * a/b test * fix comparison * Translated using Weblate (Spanish) Currently translated at 98.2% (55 of 56 strings) Translation: Habitica/Messages Translate-URL: https://translate.habitica.com/projects/habitica/messages/es/ Translated using Weblate (Spanish) Currently translated at 99.4% (179 of 180 strings) Translation: Habitica/Settings Translate-URL: https://translate.habitica.com/projects/habitica/settings/es/ Merge branch 'origin/develop' into Weblate. Translated using Weblate (Spanish) Currently translated at 99.4% (175 of 176 strings) Translation: Habitica/Subscriber Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/es/ Translated using Weblate (Spanish (Latin America)) Currently translated at 98.6% (359 of 364 strings) Translation: Habitica/Groups Translate-URL: https://translate.habitica.com/projects/habitica/groups/es_419/ Translated using Weblate (Spanish) Currently translated at 85.7% (151 of 176 strings) Translation: Habitica/Subscriber Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/es/ Translated using Weblate (Spanish) Currently translated at 95.3% (538 of 564 strings) Translation: Habitica/Backgrounds Translate-URL: https://translate.habitica.com/projects/habitica/backgrounds/es/ Translated using Weblate (Spanish (Latin America)) Currently translated at 98.6% (359 of 364 strings) Translation: Habitica/Groups Translate-URL: https://translate.habitica.com/projects/habitica/groups/es_419/ Translated using Weblate (French) Currently translated at 100.0% (56 of 56 strings) Translation: Habitica/Messages Translate-URL: https://translate.habitica.com/projects/habitica/messages/fr/ Translated using Weblate (German) Currently translated at 100.0% (56 of 56 strings) Translation: Habitica/Messages Translate-URL: https://translate.habitica.com/projects/habitica/messages/de/ Translated using Weblate (French) Currently translated at 100.0% (718 of 718 strings) Translation: Habitica/Questscontent Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/fr/ Translated using Weblate (German) Currently translated at 100.0% (718 of 718 strings) Translation: Habitica/Questscontent Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/de/ Translated using Weblate (Czech) Currently translated at 100.0% (56 of 56 strings) Translation: Habitica/Spells Translate-URL: https://translate.habitica.com/projects/habitica/spells/cs/ Translated using Weblate (Japanese) Currently translated at 100.0% (175 of 175 strings) Translation: Habitica/Subscriber Translate-URL: https://translate.habitica.com/projects/habitica/subscriber/ja/ Translated using Weblate (Italian) Currently translated at 100.0% (56 of 56 strings) Translation: Habitica/Messages Translate-URL: https://translate.habitica.com/projects/habitica/messages/it/ Translated using Weblate (Italian) Currently translated at 100.0% (718 of 718 strings) Translation: Habitica/Questscontent Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/it/ Translated using Weblate (Czech) Currently translated at 100.0% (180 of 180 strings) Translation: Habitica/Settings Translate-URL: https://translate.habitica.com/projects/habitica/settings/cs/ Translated using Weblate (Basque) Currently translated at 100.0% (2 of 2 strings) Translation: Habitica/Noscript Translate-URL: https://translate.habitica.com/projects/habitica/noscript/eu/ Translated using Weblate (Basque) Currently translated at 6.5% (8 of 123 strings) Translation: Habitica/Communityguidelines Translate-URL: https://translate.habitica.com/projects/habitica/communityguidelines/eu/ Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (56 of 56 strings) Translation: Habitica/Messages Translate-URL: https://translate.habitica.com/projects/habitica/messages/zh_Hans/ Translated using Weblate (Japanese) Currently translated at 100.0% (56 of 56 strings) Translation: Habitica/Messages Translate-URL: https://translate.habitica.com/projects/habitica/messages/ja/ Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (718 of 718 strings) Translation: Habitica/Questscontent Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/zh_Hans/ Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (718 of 718 strings) Translation: Habitica/Questscontent Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/ Translated using Weblate (Portuguese (Brazil)) Currently translated at 99.8% (717 of 718 strings) Translation: Habitica/Questscontent Translate-URL: https://translate.habitica.com/projects/habitica/questscontent/pt_BR/ * clarify a/b test values * add tests * refactor user dropdown * fix hover state * fix user dropdown * fix user menu hierarchy * restore i18n files to release version Co-authored-by: Melior <admin@habitica.com> |
||
|
|
d9e774dd77
|
Implement Bailey CMS API (#10739)
* Begin refactoring news API to return individual markdown posts
* Implement simple bailey CMS
* Prevented users with lvl less than 10 from seeing mana
* Added in class checks and notification tests
* Added getter use
* Fixed class check
* chore(i18n): update locales
* 4.60.2
* remove tests that are no longer needed because we won't be purging private messages (#10670)
Ref: this comment from paglias: https://github.com/HabitRPG/habitica/issues/7940#issuecomment-406489506
* remove .only
* allow challenge leader/owner to view/join/modify challenge in private group they've left - fixes #9753 (#10606)
* rename hasAccess to canJoin for challenges
This is so the function won't be used accidentally for other
purposes, since hasAccess could be misinterpretted.
* add isLeader function for challenges
* allow challenge leader to join/modify/end challenge when they're not in the private group it's in
* delete duplicate test
* clarify title of existing tests
* add tests and adjust existing tests to reduce privileges of test users
* fix lint errors
* remove pointless isLeader check (it's checked in canJoin)
* Correct Challenges tooltip in Guild view (#10667)
* Fix new party member cannot join pending quest (#10648)
* Saved sort selection into local storage for later use - fixes #10432 (#10655)
* Saved sort selection into local storage for later use
* Updated code to use userLocalManager module
* Fix initial position item info when selecting one item after another (fixes #10077) (#10661)
* Update lastMouseMoveEvent even when dragging an egg or potion.
* Update lastMouseMoveEvent even when dragging a food item.
* Refactor/market vue (#10601)
* extract inventoryDrawer from market
* show scrollbar only if needed
* extract featuredItemsHeader / pinUtils
* extract pageLayout
* extract layoutSection / filterDropdown - fix sortByNumber
* rollback sortByNumber order-fix
* move equipment lists out of the layout-section (for now)
* refactor sellModal
* extract checkbox
* extract equipment section
* extract category row
* revert scroll - remove sellModal item template
* fix(lint): commas and semis
* Created category item component (#10613)
* extract filter sidebar
* fix gemCount - fix raising the item count if the item wasn't previously owned
* fixes #10659
* remove unneeded method
* fix typo when importing component
* feat(content): Forest Friends Quest Bundle
* chore(sprites): compile
* chore(i18n): update locales
* 4.60.3
* fix(bcrypt): install fork compatible with Node 8
* chore(i18n): update locales
* 4.60.4
* add swear words - TRIGGER / CONTENT WARNING: assault, slurs, swearwords, etc
* add pinUtils-mixin - fixes #10682 (#10683)
* chore(news): Bailey
* chore(i18n): update locales
* 4.60.5
* Improve rendering banner about sleeping in the inn
See #10695
* Display settings in one column
* Small Updates (#10701)
* small updates
* fix client unit test
* fix uuid validation
* Revert "Small Updates (#10701)" (#10702)
This reverts commit
|
||
|
|
f5e4e2150a | fix(tests): remove exclusive unit test | ||
|
|
6743dcb08a | fix(cors): expose rate limit headers to clients | ||
|
|
e7c8833c9a |
API v3 Rate Limiter (#12117)
* simplify ip address management by using the trust proxy express option * add setupExpress file * fix redirects middleware tests * fix lint * short circuit the ip blocking middleware * basic implementation with ip based limiting * improve logging * upgrade apidoc * apidoc: add introduction section * fix lint * fix tests * fix lint * add unit tests for rate limiter * do not send retry-after header when points are available * automatically fix lint * fix more lint issues * use userId as key for rate limit when available |
||
|
|
d861236f44 | fix(cors): allow authorization header | ||
|
|
3d5630d5a2 | chore: update sub-deps and fix lint | ||
|
|
9364cdc2b4 | fix(apple auth): do not try to parse name if it is missing, add query parameters to logs | ||
|
|
24e1bfdfba | add basic test, disable etag on post routes as well, paypal ipn: prevent set headers after response error | ||
|
|
e92ff9737a
|
Automatically Logout Banned Users (#12037)
* wip * logout banned users, fix and refactor language library and middleware * req.locals -> res.locals * fix tests * redirect to login page |
||
|
|
9ab9b0f553
|
IP Blocking (#12015)
* start implementing an ip blocker * fix comments and add to list of middlewares * fix code, comment code and improve response * wip tests * fix order * fixes and tests |
||
|
|
c2a79e1d7c | fix tests | ||
|
|
85fb5f33aa | fix test lint | ||
|
|
d19b3857ee | fix unit tests | ||
|
|
eff8db0afd | fix issue with language being undefined, refactoring auth middleware, new tests | ||
|
|
6ea4d96830 | add extra condition to skip ssl check | ||
|
|
04a7fd25a6
|
allow skipping SSL check with secret key (#10962) | ||
|
|
8be9964483
|
API v4 (WIP) (#10453)
API v4 |