Habiticalib 0.3.6__py3-none-any.whl → 0.3.7rc1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- habiticalib/__init__.py +215 -4
- habiticalib/const.py +1 -1
- habiticalib/exceptions.py +1 -1
- habiticalib/helpers.py +5 -5
- habiticalib/lib.py +20 -18
- habiticalib/{types.py → typedefs.py} +247 -245
- {habiticalib-0.3.6.dist-info → habiticalib-0.3.7rc1.dist-info}/METADATA +1 -1
- habiticalib-0.3.7rc1.dist-info/RECORD +12 -0
- habiticalib-0.3.6.dist-info/RECORD +0 -12
- {habiticalib-0.3.6.dist-info → habiticalib-0.3.7rc1.dist-info}/WHEEL +0 -0
- {habiticalib-0.3.6.dist-info → habiticalib-0.3.7rc1.dist-info}/licenses/LICENSE +0 -0
@@ -11,7 +11,7 @@ from typing import Any, NotRequired, TypedDict
|
|
11
11
|
from uuid import UUID
|
12
12
|
|
13
13
|
from mashumaro import field_options
|
14
|
-
from mashumaro.config import
|
14
|
+
from mashumaro.config import TO_DICT_ADD_OMIT_NONE_FLAG
|
15
15
|
from mashumaro.mixins.orjson import DataClassORJSONMixin
|
16
16
|
|
17
17
|
|
@@ -33,18 +33,141 @@ def serialize_datetime(date: str | int | None) -> datetime | None:
|
|
33
33
|
return None
|
34
34
|
|
35
35
|
|
36
|
+
@dataclass
|
37
|
+
class BaseModel(DataClassORJSONMixin):
|
38
|
+
"""Base config for dataclasses."""
|
39
|
+
|
40
|
+
class Config:
|
41
|
+
"""Configuration for TaskData."""
|
42
|
+
|
43
|
+
aliases = { # noqa: RUF012
|
44
|
+
"Type": "type",
|
45
|
+
"Str": "str",
|
46
|
+
"Int": "int",
|
47
|
+
"Class": "class",
|
48
|
+
"tmp": "_tmp",
|
49
|
+
"Def": "def",
|
50
|
+
"Set": "set",
|
51
|
+
}
|
52
|
+
serialize_by_alias = True
|
53
|
+
omit_none = True
|
54
|
+
code_generation_options = [TO_DICT_ADD_OMIT_NONE_FLAG] # noqa: RUF012
|
55
|
+
|
56
|
+
def __eq__(self, value: object) -> bool:
|
57
|
+
"""Check if two instances are equal."""
|
58
|
+
if issubclass(type(value), type(self)):
|
59
|
+
return all(
|
60
|
+
getattr(self, field) == getattr(value, field)
|
61
|
+
for field in self.__dataclass_fields__
|
62
|
+
)
|
63
|
+
return super().__eq__(value)
|
64
|
+
|
65
|
+
|
66
|
+
@dataclass(kw_only=True)
|
67
|
+
class EquippedGear(BaseModel):
|
68
|
+
"""Gear equipped data."""
|
69
|
+
|
70
|
+
weapon: str | None = None
|
71
|
+
armor: str | None = None
|
72
|
+
head: str | None = None
|
73
|
+
shield: str | None = None
|
74
|
+
back: str | None = None
|
75
|
+
headAccessory: str | None = None
|
76
|
+
eyewear: str | None = None
|
77
|
+
body: str | None = None
|
78
|
+
|
79
|
+
|
80
|
+
@dataclass(kw_only=True, eq=False)
|
81
|
+
class GearItemsAvatar(BaseModel):
|
82
|
+
"""Items gear avatar data."""
|
83
|
+
|
84
|
+
equipped: EquippedGear = field(default_factory=EquippedGear)
|
85
|
+
costume: EquippedGear = field(default_factory=EquippedGear)
|
86
|
+
|
87
|
+
|
88
|
+
@dataclass(kw_only=True, eq=False)
|
89
|
+
class ItemsAvatar(BaseModel):
|
90
|
+
"""Items avatar data."""
|
91
|
+
|
92
|
+
gear: GearItemsAvatar = field(default_factory=GearItemsAvatar)
|
93
|
+
currentMount: str | None = None
|
94
|
+
currentPet: str | None = None
|
95
|
+
|
96
|
+
|
97
|
+
class HabiticaClass(StrEnum):
|
98
|
+
"""Habitica's player classes."""
|
99
|
+
|
100
|
+
WARRIOR = "warrior"
|
101
|
+
ROGUE = "rogue"
|
102
|
+
MAGE = "wizard"
|
103
|
+
HEALER = "healer"
|
104
|
+
|
105
|
+
|
106
|
+
@dataclass(kw_only=True)
|
107
|
+
class HairPreferences(BaseModel):
|
108
|
+
"""Hair preferences data."""
|
109
|
+
|
110
|
+
color: str | None = None
|
111
|
+
base: int | None = None
|
112
|
+
bangs: int | None = None
|
113
|
+
beard: int | None = None
|
114
|
+
mustache: int | None = None
|
115
|
+
flower: int | None = None
|
116
|
+
|
117
|
+
|
118
|
+
@dataclass(kw_only=True, eq=False)
|
119
|
+
class PreferencesAvatar(BaseModel):
|
120
|
+
"""Preferences avatar data."""
|
121
|
+
|
122
|
+
hair: HairPreferences = field(default_factory=HairPreferences)
|
123
|
+
size: str | None = None
|
124
|
+
skin: str | None = None
|
125
|
+
shirt: str | None = None
|
126
|
+
chair: str | None = None
|
127
|
+
costume: bool | None = None
|
128
|
+
sleep: bool | None = None
|
129
|
+
background: str | None = None
|
130
|
+
|
131
|
+
|
132
|
+
@dataclass(kw_only=True, eq=False)
|
133
|
+
class BuffsStatsavatar(BaseModel):
|
134
|
+
"""Buffs stats avatar data."""
|
135
|
+
|
136
|
+
seafoam: bool | None = None
|
137
|
+
shinySeed: bool | None = None
|
138
|
+
snowball: bool | None = None
|
139
|
+
spookySparkles: bool | None = None
|
140
|
+
|
141
|
+
|
142
|
+
@dataclass(kw_only=True, eq=False)
|
143
|
+
class StatsAvatar(BaseModel):
|
144
|
+
"""Stats avatar data."""
|
145
|
+
|
146
|
+
buffs: BuffsStatsavatar = field(default_factory=BuffsStatsavatar)
|
147
|
+
Class: HabiticaClass = HabiticaClass.WARRIOR
|
148
|
+
|
149
|
+
|
150
|
+
@dataclass(kw_only=True, eq=False)
|
151
|
+
class Avatar(BaseModel):
|
152
|
+
"""Represents data for avatar visuals."""
|
153
|
+
|
154
|
+
items: ItemsAvatar = field(default_factory=ItemsAvatar)
|
155
|
+
preferences: PreferencesAvatar = field(default_factory=PreferencesAvatar)
|
156
|
+
stats: StatsAvatar = field(default_factory=StatsAvatar)
|
157
|
+
|
158
|
+
|
36
159
|
@dataclass(kw_only=True)
|
37
|
-
class NotificationsUser:
|
160
|
+
class NotificationsUser(BaseModel):
|
38
161
|
"""Notifications User data."""
|
39
162
|
|
40
|
-
Type: str
|
163
|
+
Type: str
|
41
164
|
data: dict[str, Any]
|
42
165
|
seen: bool
|
43
166
|
id: UUID
|
44
167
|
|
45
168
|
|
46
169
|
@dataclass(kw_only=True)
|
47
|
-
class HabiticaResponse(
|
170
|
+
class HabiticaResponse(BaseModel):
|
48
171
|
"""Representation of a base Habitica API response."""
|
49
172
|
|
50
173
|
data: Any
|
@@ -55,7 +178,7 @@ class HabiticaResponse(DataClassORJSONMixin):
|
|
55
178
|
|
56
179
|
|
57
180
|
@dataclass(kw_only=True)
|
58
|
-
class LoginData:
|
181
|
+
class LoginData(BaseModel):
|
59
182
|
"""Login data."""
|
60
183
|
|
61
184
|
id: UUID
|
@@ -73,7 +196,7 @@ class HabiticaLoginResponse(HabiticaResponse):
|
|
73
196
|
|
74
197
|
|
75
198
|
@dataclass(kw_only=True)
|
76
|
-
class LocalAuth:
|
199
|
+
class LocalAuth(BaseModel):
|
77
200
|
"""Auth local data."""
|
78
201
|
|
79
202
|
email: str | None = None
|
@@ -83,7 +206,7 @@ class LocalAuth:
|
|
83
206
|
|
84
207
|
|
85
208
|
@dataclass(kw_only=True)
|
86
|
-
class LocalTimestamps:
|
209
|
+
class LocalTimestamps(BaseModel):
|
87
210
|
"""Timestamps local data."""
|
88
211
|
|
89
212
|
created: datetime | None = None
|
@@ -92,7 +215,7 @@ class LocalTimestamps:
|
|
92
215
|
|
93
216
|
|
94
217
|
@dataclass(kw_only=True)
|
95
|
-
class AuthUser:
|
218
|
+
class AuthUser(BaseModel):
|
96
219
|
"""User auth data."""
|
97
220
|
|
98
221
|
local: LocalAuth = field(default_factory=LocalAuth)
|
@@ -103,7 +226,7 @@ class AuthUser:
|
|
103
226
|
|
104
227
|
|
105
228
|
@dataclass(kw_only=True)
|
106
|
-
class UltimateGearSetsAchievments:
|
229
|
+
class UltimateGearSetsAchievments(BaseModel):
|
107
230
|
"""Achievments ultimateGearSets data."""
|
108
231
|
|
109
232
|
healer: bool | None = None
|
@@ -113,7 +236,7 @@ class UltimateGearSetsAchievments:
|
|
113
236
|
|
114
237
|
|
115
238
|
@dataclass(kw_only=True)
|
116
|
-
class QuestsAchievments:
|
239
|
+
class QuestsAchievments(BaseModel):
|
117
240
|
"""Achievments quests."""
|
118
241
|
|
119
242
|
bewilder: int | None = None
|
@@ -134,7 +257,7 @@ class QuestsAchievments:
|
|
134
257
|
|
135
258
|
|
136
259
|
@dataclass(kw_only=True)
|
137
|
-
class AchievementsUser:
|
260
|
+
class AchievementsUser(BaseModel):
|
138
261
|
"""User achievments data."""
|
139
262
|
|
140
263
|
ultimateGearSets: UltimateGearSetsAchievments = field(
|
@@ -164,7 +287,7 @@ class AchievementsUser:
|
|
164
287
|
|
165
288
|
|
166
289
|
@dataclass(kw_only=True)
|
167
|
-
class BackerUser:
|
290
|
+
class BackerUser(BaseModel):
|
168
291
|
"""User backer data."""
|
169
292
|
|
170
293
|
tier: int | None = None
|
@@ -173,7 +296,7 @@ class BackerUser:
|
|
173
296
|
|
174
297
|
|
175
298
|
@dataclass(kw_only=True)
|
176
|
-
class PermissionsUser:
|
299
|
+
class PermissionsUser(BaseModel):
|
177
300
|
"""User permissions data."""
|
178
301
|
|
179
302
|
fullAccess: bool | None = None
|
@@ -185,7 +308,7 @@ class PermissionsUser:
|
|
185
308
|
|
186
309
|
|
187
310
|
@dataclass(kw_only=True)
|
188
|
-
class ContributorUser:
|
311
|
+
class ContributorUser(BaseModel):
|
189
312
|
"""User contributer data."""
|
190
313
|
|
191
314
|
contributions: str | None = None
|
@@ -194,7 +317,7 @@ class ContributorUser:
|
|
194
317
|
|
195
318
|
|
196
319
|
@dataclass(kw_only=True)
|
197
|
-
class ConsecutivePlan:
|
320
|
+
class ConsecutivePlan(BaseModel):
|
198
321
|
"""Plan consecutive data."""
|
199
322
|
|
200
323
|
trinkets: int | None = None
|
@@ -204,7 +327,7 @@ class ConsecutivePlan:
|
|
204
327
|
|
205
328
|
|
206
329
|
@dataclass(kw_only=True)
|
207
|
-
class PlanPurchased:
|
330
|
+
class PlanPurchased(BaseModel):
|
208
331
|
"""Purchased background data."""
|
209
332
|
|
210
333
|
consecutive: ConsecutivePlan = field(default_factory=ConsecutivePlan)
|
@@ -217,7 +340,7 @@ class PlanPurchased:
|
|
217
340
|
|
218
341
|
|
219
342
|
@dataclass(kw_only=True)
|
220
|
-
class PurchasedUser:
|
343
|
+
class PurchasedUser(BaseModel):
|
221
344
|
"""User purchased data."""
|
222
345
|
|
223
346
|
plan: PlanPurchased = field(default_factory=PlanPurchased)
|
@@ -231,7 +354,7 @@ class PurchasedUser:
|
|
231
354
|
|
232
355
|
|
233
356
|
@dataclass(kw_only=True)
|
234
|
-
class TourFlags:
|
357
|
+
class TourFlags(BaseModel):
|
235
358
|
"""Flags tour data."""
|
236
359
|
|
237
360
|
intro: int | None = None
|
@@ -250,7 +373,7 @@ class TourFlags:
|
|
250
373
|
|
251
374
|
|
252
375
|
@dataclass(kw_only=True)
|
253
|
-
class CommonTutorial:
|
376
|
+
class CommonTutorial(BaseModel):
|
254
377
|
"""Tutorial common data."""
|
255
378
|
|
256
379
|
habits: bool
|
@@ -271,7 +394,7 @@ class CommonTutorial:
|
|
271
394
|
|
272
395
|
|
273
396
|
@dataclass(kw_only=True)
|
274
|
-
class IosTutorial:
|
397
|
+
class IosTutorial(BaseModel):
|
275
398
|
"""Tutorial ios data."""
|
276
399
|
|
277
400
|
addTask: bool
|
@@ -284,7 +407,7 @@ class IosTutorial:
|
|
284
407
|
|
285
408
|
|
286
409
|
@dataclass(kw_only=True)
|
287
|
-
class TutorialFlags:
|
410
|
+
class TutorialFlags(BaseModel):
|
288
411
|
"""Flags tutorial data."""
|
289
412
|
|
290
413
|
common: CommonTutorial | None = None
|
@@ -292,7 +415,7 @@ class TutorialFlags:
|
|
292
415
|
|
293
416
|
|
294
417
|
@dataclass(kw_only=True)
|
295
|
-
class FlagsUser:
|
418
|
+
class FlagsUser(BaseModel):
|
296
419
|
"""User flags data."""
|
297
420
|
|
298
421
|
customizationsNotification: bool | None = None
|
@@ -329,7 +452,7 @@ class FlagsUser:
|
|
329
452
|
|
330
453
|
|
331
454
|
@dataclass(kw_only=True)
|
332
|
-
class EntryHistory:
|
455
|
+
class EntryHistory(BaseModel):
|
333
456
|
"""History entry data."""
|
334
457
|
|
335
458
|
date: datetime = field(
|
@@ -345,7 +468,7 @@ class EntryHistory:
|
|
345
468
|
|
346
469
|
|
347
470
|
@dataclass(kw_only=True)
|
348
|
-
class HistoryUser:
|
471
|
+
class HistoryUser(BaseModel):
|
349
472
|
"""User history data."""
|
350
473
|
|
351
474
|
todos: list[EntryHistory] = field(default_factory=list)
|
@@ -353,30 +476,14 @@ class HistoryUser:
|
|
353
476
|
|
354
477
|
|
355
478
|
@dataclass(kw_only=True)
|
356
|
-
class
|
357
|
-
"""Gear equipped data."""
|
358
|
-
|
359
|
-
weapon: str | None = None
|
360
|
-
armor: str | None = None
|
361
|
-
head: str | None = None
|
362
|
-
shield: str | None = None
|
363
|
-
back: str | None = None
|
364
|
-
headAccessory: str | None = None
|
365
|
-
eyewear: str | None = None
|
366
|
-
body: str | None = None
|
367
|
-
|
368
|
-
|
369
|
-
@dataclass(kw_only=True)
|
370
|
-
class GearItems:
|
479
|
+
class GearItems(GearItemsAvatar, BaseModel):
|
371
480
|
"""Items gear data."""
|
372
481
|
|
373
|
-
equipped: EquippedGear = field(default_factory=EquippedGear)
|
374
|
-
costume: EquippedGear = field(default_factory=EquippedGear)
|
375
482
|
owned: dict[str, bool] = field(default_factory=dict)
|
376
483
|
|
377
484
|
|
378
485
|
@dataclass(kw_only=True)
|
379
|
-
class SpecialItems:
|
486
|
+
class SpecialItems(BaseModel):
|
380
487
|
"""Items special data."""
|
381
488
|
|
382
489
|
birthdayReceived: list = field(default_factory=list)
|
@@ -402,7 +509,7 @@ class SpecialItems:
|
|
402
509
|
|
403
510
|
|
404
511
|
@dataclass(kw_only=True)
|
405
|
-
class LastDropItems:
|
512
|
+
class LastDropItems(BaseModel):
|
406
513
|
"""LastDrop items data."""
|
407
514
|
|
408
515
|
count: int | None = None
|
@@ -410,14 +517,12 @@ class LastDropItems:
|
|
410
517
|
|
411
518
|
|
412
519
|
@dataclass(kw_only=True)
|
413
|
-
class ItemsUser:
|
520
|
+
class ItemsUser(ItemsAvatar, BaseModel):
|
414
521
|
"""User items data."""
|
415
522
|
|
416
523
|
gear: GearItems = field(default_factory=GearItems)
|
417
524
|
special: SpecialItems = field(default_factory=SpecialItems)
|
418
525
|
lastDrop: LastDropItems = field(default_factory=LastDropItems)
|
419
|
-
currentMount: str | None = None
|
420
|
-
currentPet: str | None = None
|
421
526
|
quests: dict[str, int] = field(default_factory=dict)
|
422
527
|
mounts: dict[str, bool] = field(default_factory=dict)
|
423
528
|
food: dict[str, int] = field(default_factory=dict)
|
@@ -427,7 +532,7 @@ class ItemsUser:
|
|
427
532
|
|
428
533
|
|
429
534
|
@dataclass(kw_only=True)
|
430
|
-
class InvitationsUser:
|
535
|
+
class InvitationsUser(BaseModel):
|
431
536
|
"""Invitations user data."""
|
432
537
|
|
433
538
|
party: dict = field(default_factory=dict)
|
@@ -436,7 +541,7 @@ class InvitationsUser:
|
|
436
541
|
|
437
542
|
|
438
543
|
@dataclass(kw_only=True)
|
439
|
-
class ProgressQuest:
|
544
|
+
class ProgressQuest(BaseModel):
|
440
545
|
"""Quest progress data."""
|
441
546
|
|
442
547
|
up: float | None = None
|
@@ -446,7 +551,7 @@ class ProgressQuest:
|
|
446
551
|
|
447
552
|
|
448
553
|
@dataclass(kw_only=True)
|
449
|
-
class QuestParty:
|
554
|
+
class QuestParty(BaseModel):
|
450
555
|
"""Party quest data."""
|
451
556
|
|
452
557
|
progress: ProgressQuest = field(default_factory=ProgressQuest)
|
@@ -456,7 +561,7 @@ class QuestParty:
|
|
456
561
|
|
457
562
|
|
458
563
|
@dataclass(kw_only=True)
|
459
|
-
class PartyUser:
|
564
|
+
class PartyUser(BaseModel):
|
460
565
|
"""Party user data."""
|
461
566
|
|
462
567
|
quest: QuestParty = field(default_factory=QuestParty)
|
@@ -466,19 +571,7 @@ class PartyUser:
|
|
466
571
|
|
467
572
|
|
468
573
|
@dataclass(kw_only=True)
|
469
|
-
class
|
470
|
-
"""Hair preferences data."""
|
471
|
-
|
472
|
-
color: str | None = None
|
473
|
-
base: int | None = None
|
474
|
-
bangs: int | None = None
|
475
|
-
beard: int | None = None
|
476
|
-
mustache: int | None = None
|
477
|
-
flower: int | None = None
|
478
|
-
|
479
|
-
|
480
|
-
@dataclass(kw_only=True)
|
481
|
-
class EmailNotificationsPreferences:
|
574
|
+
class EmailNotificationsPreferences(BaseModel):
|
482
575
|
"""EmailNotifications preferences data."""
|
483
576
|
|
484
577
|
unsubscribeFromAll: bool | None = None
|
@@ -500,7 +593,7 @@ class EmailNotificationsPreferences:
|
|
500
593
|
|
501
594
|
|
502
595
|
@dataclass(kw_only=True)
|
503
|
-
class PushNotificationsPreferences:
|
596
|
+
class PushNotificationsPreferences(BaseModel):
|
504
597
|
"""PushNotifications preferences data."""
|
505
598
|
|
506
599
|
unsubscribeFromAll: bool | None = None
|
@@ -521,7 +614,7 @@ class PushNotificationsPreferences:
|
|
521
614
|
|
522
615
|
|
523
616
|
@dataclass(kw_only=True)
|
524
|
-
class SuppressModalsPreferences:
|
617
|
+
class SuppressModalsPreferences(BaseModel):
|
525
618
|
"""SupressModals preferences data."""
|
526
619
|
|
527
620
|
levelUp: bool | None = None
|
@@ -531,7 +624,7 @@ class SuppressModalsPreferences:
|
|
531
624
|
|
532
625
|
|
533
626
|
@dataclass(kw_only=True)
|
534
|
-
class ActiveFilterTask:
|
627
|
+
class ActiveFilterTask(BaseModel):
|
535
628
|
"""ActiveFilter task data."""
|
536
629
|
|
537
630
|
habit: str | None = None
|
@@ -541,7 +634,7 @@ class ActiveFilterTask:
|
|
541
634
|
|
542
635
|
|
543
636
|
@dataclass(kw_only=True)
|
544
|
-
class TasksPreferences:
|
637
|
+
class TasksPreferences(BaseModel):
|
545
638
|
"""Tasks preferences data."""
|
546
639
|
|
547
640
|
activeFilter: ActiveFilterTask = field(default_factory=ActiveFilterTask)
|
@@ -551,10 +644,9 @@ class TasksPreferences:
|
|
551
644
|
|
552
645
|
|
553
646
|
@dataclass(kw_only=True)
|
554
|
-
class PreferencesUser:
|
647
|
+
class PreferencesUser(PreferencesAvatar, BaseModel):
|
555
648
|
"""Preferences user data."""
|
556
649
|
|
557
|
-
hair: HairPreferences = field(default_factory=HairPreferences)
|
558
650
|
emailNotifications: EmailNotificationsPreferences = field(
|
559
651
|
default_factory=EmailNotificationsPreferences
|
560
652
|
)
|
@@ -566,18 +658,12 @@ class PreferencesUser:
|
|
566
658
|
)
|
567
659
|
tasks: TasksPreferences = field(default_factory=TasksPreferences)
|
568
660
|
dayStart: int | None = None
|
569
|
-
size: str | None = None
|
570
661
|
hideHeader: bool | None = None
|
571
|
-
skin: str | None = None
|
572
|
-
shirt: str | None = None
|
573
662
|
timezoneOffset: int | None = None
|
574
663
|
sound: str | None = None
|
575
|
-
chair: str | None = None
|
576
664
|
allocationMode: str | None = None
|
577
665
|
autoEquip: bool | None = None
|
578
|
-
costume: bool | None = None
|
579
666
|
dateFormat: str | None = None
|
580
|
-
sleep: bool | None = None
|
581
667
|
stickyHeader: bool | None = None
|
582
668
|
disableClasses: bool | None = None
|
583
669
|
newTaskEdit: bool | None = None
|
@@ -587,7 +673,6 @@ class PreferencesUser:
|
|
587
673
|
reverseChatOrder: bool | None = None
|
588
674
|
developerMode: bool | None = None
|
589
675
|
displayInviteToPartyWhenPartyIs1: bool | None = None
|
590
|
-
background: str | None = None
|
591
676
|
automaticAllocation: bool | None = None
|
592
677
|
webhooks: dict = field(default_factory=dict)
|
593
678
|
improvementCategories: list[str] = field(default_factory=list)
|
@@ -596,7 +681,7 @@ class PreferencesUser:
|
|
596
681
|
|
597
682
|
|
598
683
|
@dataclass(kw_only=True)
|
599
|
-
class ProfileUser:
|
684
|
+
class ProfileUser(BaseModel):
|
600
685
|
"""Profile user data."""
|
601
686
|
|
602
687
|
blurb: str | None = None
|
@@ -605,10 +690,10 @@ class ProfileUser:
|
|
605
690
|
|
606
691
|
|
607
692
|
@dataclass(kw_only=True)
|
608
|
-
class BuffsStats:
|
693
|
+
class BuffsStats(BuffsStatsavatar, BaseModel):
|
609
694
|
"""Buffs stats data."""
|
610
695
|
|
611
|
-
Str: int | None =
|
696
|
+
Str: int | None = None
|
612
697
|
per: int | None = None
|
613
698
|
con: int | None = None
|
614
699
|
stealth: int | None = None
|
@@ -617,30 +702,21 @@ class BuffsStats:
|
|
617
702
|
shinySeed: bool | None = None
|
618
703
|
snowball: bool | None = None
|
619
704
|
spookySparkles: bool | None = None
|
620
|
-
Int: int | None =
|
705
|
+
Int: int | None = None
|
621
706
|
|
622
707
|
|
623
708
|
@dataclass(kw_only=True)
|
624
|
-
class TrainingStats:
|
709
|
+
class TrainingStats(BaseModel):
|
625
710
|
"""Training stats data."""
|
626
711
|
|
627
|
-
Str: float | None =
|
712
|
+
Str: float | None = None
|
628
713
|
per: int | None = None
|
629
714
|
con: int | None = None
|
630
|
-
Int: int | None =
|
631
|
-
|
632
|
-
|
633
|
-
class HabiticaClass(StrEnum):
|
634
|
-
"""Habitica's player classes."""
|
635
|
-
|
636
|
-
WARRIOR = "warrior"
|
637
|
-
ROGUE = "rogue"
|
638
|
-
MAGE = "wizard"
|
639
|
-
HEALER = "healer"
|
715
|
+
Int: int | None = None
|
640
716
|
|
641
717
|
|
642
718
|
@dataclass(kw_only=True)
|
643
|
-
class StatsUser:
|
719
|
+
class StatsUser(StatsAvatar, BaseModel):
|
644
720
|
"""Stats user data."""
|
645
721
|
|
646
722
|
buffs: BuffsStats = field(default_factory=BuffsStats)
|
@@ -650,21 +726,18 @@ class StatsUser:
|
|
650
726
|
exp: int | None = None
|
651
727
|
gp: float | None = None
|
652
728
|
lvl: int | None = None
|
653
|
-
Class: HabiticaClass | None = field(
|
654
|
-
default=None, metadata=field_options(alias="class")
|
655
|
-
)
|
656
729
|
points: int | None = None
|
657
|
-
Str: int | None =
|
730
|
+
Str: int | None = None
|
658
731
|
con: int | None = None
|
659
732
|
per: int | None = None
|
660
733
|
toNextLevel: int | None = None
|
661
734
|
maxHealth: int | None = None
|
662
735
|
maxMP: int | None = None
|
663
|
-
Int: int | None =
|
736
|
+
Int: int | None = None
|
664
737
|
|
665
738
|
|
666
739
|
@dataclass(kw_only=True)
|
667
|
-
class TagsUser:
|
740
|
+
class TagsUser(BaseModel):
|
668
741
|
"""Tags user data."""
|
669
742
|
|
670
743
|
id: UUID | None = None
|
@@ -674,7 +747,7 @@ class TagsUser:
|
|
674
747
|
|
675
748
|
|
676
749
|
@dataclass(kw_only=True)
|
677
|
-
class InboxUser:
|
750
|
+
class InboxUser(BaseModel):
|
678
751
|
"""Inbox user data."""
|
679
752
|
|
680
753
|
newMessages: int | None = None
|
@@ -684,7 +757,7 @@ class InboxUser:
|
|
684
757
|
|
685
758
|
|
686
759
|
@dataclass(kw_only=True)
|
687
|
-
class TasksOrderUser:
|
760
|
+
class TasksOrderUser(BaseModel):
|
688
761
|
"""TasksOrder user data."""
|
689
762
|
|
690
763
|
habits: list[UUID] = field(default_factory=list)
|
@@ -694,11 +767,11 @@ class TasksOrderUser:
|
|
694
767
|
|
695
768
|
|
696
769
|
@dataclass(kw_only=True)
|
697
|
-
class PushDevicesUser:
|
770
|
+
class PushDevicesUser(BaseModel):
|
698
771
|
"""PushDevices user data."""
|
699
772
|
|
700
773
|
regId: str
|
701
|
-
Type: str
|
774
|
+
Type: str
|
702
775
|
createdAt: datetime
|
703
776
|
updatedAt: datetime
|
704
777
|
|
@@ -713,7 +786,7 @@ class WebhooksType(StrEnum):
|
|
713
786
|
|
714
787
|
|
715
788
|
@dataclass(kw_only=True)
|
716
|
-
class WebhooksOptions:
|
789
|
+
class WebhooksOptions(BaseModel):
|
717
790
|
"""Webhooks options data."""
|
718
791
|
|
719
792
|
created: bool | None = None
|
@@ -730,13 +803,11 @@ class WebhooksOptions:
|
|
730
803
|
|
731
804
|
|
732
805
|
@dataclass(kw_only=True)
|
733
|
-
class WebhooksUser:
|
806
|
+
class WebhooksUser(BaseModel):
|
734
807
|
"""Webhooks user data."""
|
735
808
|
|
736
809
|
id: UUID | None = None
|
737
|
-
Type: WebhooksType =
|
738
|
-
metadata=field_options(alias="type"), default=WebhooksType.TASK_ACTIVITY
|
739
|
-
)
|
810
|
+
Type: WebhooksType = WebhooksType.TASK_ACTIVITY
|
740
811
|
url: str | None = None
|
741
812
|
enabled: bool = True
|
742
813
|
failures: int = 0
|
@@ -748,15 +819,15 @@ class WebhooksUser:
|
|
748
819
|
|
749
820
|
|
750
821
|
@dataclass(kw_only=True)
|
751
|
-
class PinnedItemsUser:
|
822
|
+
class PinnedItemsUser(BaseModel):
|
752
823
|
"""PinnedItems user data."""
|
753
824
|
|
754
825
|
path: str
|
755
|
-
Type: str
|
826
|
+
Type: str
|
756
827
|
|
757
828
|
|
758
829
|
@dataclass(kw_only=True)
|
759
|
-
class UserData:
|
830
|
+
class UserData(Avatar, BaseModel):
|
760
831
|
"""User data."""
|
761
832
|
|
762
833
|
id: UUID | None = None
|
@@ -795,7 +866,6 @@ class UserData:
|
|
795
866
|
newMessages: dict[str, bool] = field(default_factory=dict)
|
796
867
|
|
797
868
|
|
798
|
-
@dataclass(kw_only=True)
|
799
869
|
class HabiticaUserResponse(HabiticaResponse):
|
800
870
|
"""Representation of a user data response."""
|
801
871
|
|
@@ -810,7 +880,7 @@ class HabiticaGroupMembersResponse(HabiticaResponse):
|
|
810
880
|
|
811
881
|
|
812
882
|
@dataclass(kw_only=True)
|
813
|
-
class CompletedBy:
|
883
|
+
class CompletedBy(BaseModel):
|
814
884
|
"""Task group completedby data."""
|
815
885
|
|
816
886
|
userId: UUID | None = None
|
@@ -818,7 +888,7 @@ class CompletedBy:
|
|
818
888
|
|
819
889
|
|
820
890
|
@dataclass(kw_only=True)
|
821
|
-
class GroupTask:
|
891
|
+
class GroupTask(BaseModel):
|
822
892
|
"""Task group data."""
|
823
893
|
|
824
894
|
assignedUsers: list[UUID] | None = None
|
@@ -832,7 +902,7 @@ class GroupTask:
|
|
832
902
|
|
833
903
|
|
834
904
|
@dataclass(kw_only=True)
|
835
|
-
class Repeat:
|
905
|
+
class Repeat(BaseModel):
|
836
906
|
"""Task repeat data."""
|
837
907
|
|
838
908
|
m: bool = True
|
@@ -855,7 +925,7 @@ class ChallengeAbortedReason(StrEnum):
|
|
855
925
|
|
856
926
|
|
857
927
|
@dataclass(kw_only=True)
|
858
|
-
class Challenge:
|
928
|
+
class Challenge(BaseModel):
|
859
929
|
"""Challenge task data."""
|
860
930
|
|
861
931
|
id: UUID | None = None
|
@@ -866,7 +936,7 @@ class Challenge:
|
|
866
936
|
|
867
937
|
|
868
938
|
@dataclass(kw_only=True)
|
869
|
-
class Reminders:
|
939
|
+
class Reminders(BaseModel):
|
870
940
|
"""Task reminders data."""
|
871
941
|
|
872
942
|
id: UUID
|
@@ -875,7 +945,7 @@ class Reminders:
|
|
875
945
|
|
876
946
|
|
877
947
|
@dataclass(kw_only=True)
|
878
|
-
class Checklist:
|
948
|
+
class Checklist(BaseModel):
|
879
949
|
"""Task checklist data."""
|
880
950
|
|
881
951
|
id: UUID
|
@@ -939,17 +1009,12 @@ class Task(TypedDict("Task", {"type": NotRequired[TaskType]}), total=True):
|
|
939
1009
|
|
940
1010
|
|
941
1011
|
@dataclass(kw_only=True)
|
942
|
-
class TaskData(
|
1012
|
+
class TaskData(BaseModel):
|
943
1013
|
"""Task data."""
|
944
1014
|
|
945
|
-
class Config(BaseConfig):
|
946
|
-
"""Configuration for TaskData."""
|
947
|
-
|
948
|
-
serialize_by_alias = True
|
949
|
-
|
950
1015
|
challenge: Challenge = field(default_factory=Challenge)
|
951
1016
|
group: GroupTask = field(default_factory=GroupTask)
|
952
|
-
Type: TaskType | None =
|
1017
|
+
Type: TaskType | None = None
|
953
1018
|
text: str | None = None
|
954
1019
|
notes: str | None = None
|
955
1020
|
tags: list[UUID] = field(default_factory=list)
|
@@ -1002,7 +1067,7 @@ class HabiticaTaskResponse(HabiticaResponse):
|
|
1002
1067
|
|
1003
1068
|
|
1004
1069
|
@dataclass(kw_only=True)
|
1005
|
-
class HabiticaErrorResponse(
|
1070
|
+
class HabiticaErrorResponse(BaseModel):
|
1006
1071
|
"""Base class for Habitica errors."""
|
1007
1072
|
|
1008
1073
|
success: bool
|
@@ -1011,7 +1076,7 @@ class HabiticaErrorResponse(DataClassORJSONMixin):
|
|
1011
1076
|
|
1012
1077
|
|
1013
1078
|
@dataclass(kw_only=True)
|
1014
|
-
class TasksUserExport:
|
1079
|
+
class TasksUserExport(BaseModel):
|
1015
1080
|
"""Tasks user export data."""
|
1016
1081
|
|
1017
1082
|
todos: list[TaskData] = field(default_factory=list)
|
@@ -1021,68 +1086,7 @@ class TasksUserExport:
|
|
1021
1086
|
|
1022
1087
|
|
1023
1088
|
@dataclass(kw_only=True)
|
1024
|
-
class
|
1025
|
-
"""Buffs UserStyles data."""
|
1026
|
-
|
1027
|
-
per: int | None = None
|
1028
|
-
con: int | None = None
|
1029
|
-
stealth: int | None = None
|
1030
|
-
seafoam: bool | None = None
|
1031
|
-
shinySeed: bool | None = None
|
1032
|
-
snowball: bool | None = None
|
1033
|
-
spookySparkles: bool | None = None
|
1034
|
-
|
1035
|
-
|
1036
|
-
@dataclass(kw_only=True)
|
1037
|
-
class StatsUserStyles:
|
1038
|
-
"""Stats user styles data."""
|
1039
|
-
|
1040
|
-
buffs: BuffsUserStyles = field(default_factory=BuffsUserStyles)
|
1041
|
-
Class: HabiticaClass = field(default=HabiticaClass.WARRIOR)
|
1042
|
-
|
1043
|
-
|
1044
|
-
@dataclass(kw_only=True)
|
1045
|
-
class GearItemsUserStyles:
|
1046
|
-
"""Items gear data."""
|
1047
|
-
|
1048
|
-
equipped: EquippedGear = field(default_factory=EquippedGear)
|
1049
|
-
costume: EquippedGear = field(default_factory=EquippedGear)
|
1050
|
-
|
1051
|
-
|
1052
|
-
@dataclass(kw_only=True)
|
1053
|
-
class ItemsUserStyles:
|
1054
|
-
"""Items user styles data."""
|
1055
|
-
|
1056
|
-
gear: GearItemsUserStyles = field(default_factory=GearItemsUserStyles)
|
1057
|
-
currentMount: str | None = None
|
1058
|
-
currentPet: str | None = None
|
1059
|
-
|
1060
|
-
|
1061
|
-
@dataclass(kw_only=True)
|
1062
|
-
class PreferencesUserStyles:
|
1063
|
-
"""Preferences user styles data."""
|
1064
|
-
|
1065
|
-
hair: HairPreferences = field(default_factory=HairPreferences)
|
1066
|
-
size: str | None = None
|
1067
|
-
skin: str | None = None
|
1068
|
-
shirt: str | None = None
|
1069
|
-
chair: str | None = None
|
1070
|
-
costume: bool | None = None
|
1071
|
-
sleep: bool | None = None
|
1072
|
-
background: str | None = None
|
1073
|
-
|
1074
|
-
|
1075
|
-
@dataclass(kw_only=True)
|
1076
|
-
class UserStyles(DataClassORJSONMixin):
|
1077
|
-
"""Represents minimalistic data only containing user styles."""
|
1078
|
-
|
1079
|
-
items: ItemsUserStyles = field(default_factory=ItemsUserStyles)
|
1080
|
-
preferences: PreferencesUserStyles = field(default_factory=PreferencesUserStyles)
|
1081
|
-
stats: StatsUserStyles = field(default_factory=StatsUserStyles)
|
1082
|
-
|
1083
|
-
|
1084
|
-
@dataclass(kw_only=True)
|
1085
|
-
class HabiticaUserExport(UserData, DataClassORJSONMixin):
|
1089
|
+
class HabiticaUserExport(UserData, BaseModel):
|
1086
1090
|
"""Representation of a user data export."""
|
1087
1091
|
|
1088
1092
|
tasks: TasksUserExport = field(default_factory=TasksUserExport)
|
@@ -1097,7 +1101,7 @@ class UserAnonymizedData:
|
|
1097
1101
|
|
1098
1102
|
|
1099
1103
|
@dataclass(kw_only=True)
|
1100
|
-
class HabiticaUserAnonymizedResponse(
|
1104
|
+
class HabiticaUserAnonymizedResponse(BaseModel):
|
1101
1105
|
"""Representation of a anonymized user data export."""
|
1102
1106
|
|
1103
1107
|
data: UserAnonymizedData
|
@@ -1111,7 +1115,7 @@ class HabiticaStatsResponse(HabiticaResponse):
|
|
1111
1115
|
|
1112
1116
|
|
1113
1117
|
@dataclass(kw_only=True)
|
1114
|
-
class QuestTmpScore:
|
1118
|
+
class QuestTmpScore(BaseModel):
|
1115
1119
|
"""Represents the quest progress details."""
|
1116
1120
|
|
1117
1121
|
progressDelta: float | None = None
|
@@ -1119,19 +1123,19 @@ class QuestTmpScore:
|
|
1119
1123
|
|
1120
1124
|
|
1121
1125
|
@dataclass(kw_only=True)
|
1122
|
-
class DropTmpScore:
|
1126
|
+
class DropTmpScore(BaseModel):
|
1123
1127
|
"""Represents the details of an item drop."""
|
1124
1128
|
|
1125
1129
|
target: str | None = None
|
1126
1130
|
canDrop: bool | None = None
|
1127
1131
|
value: int | None = None
|
1128
1132
|
key: str | None = None
|
1129
|
-
Type: str | None =
|
1133
|
+
Type: str | None = None
|
1130
1134
|
dialog: str | None = None
|
1131
1135
|
|
1132
1136
|
|
1133
1137
|
@dataclass(kw_only=True)
|
1134
|
-
class TmpScore:
|
1138
|
+
class TmpScore(BaseModel):
|
1135
1139
|
"""Temporary quest and drop data."""
|
1136
1140
|
|
1137
1141
|
quest: QuestTmpScore = field(default_factory=QuestTmpScore)
|
@@ -1143,34 +1147,32 @@ class ScoreData(StatsUser):
|
|
1143
1147
|
"""Scora data."""
|
1144
1148
|
|
1145
1149
|
delta: float | None = None
|
1146
|
-
tmp: TmpScore = field(
|
1147
|
-
default_factory=TmpScore, metadata=field_options(alias="_tmp")
|
1148
|
-
)
|
1150
|
+
tmp: TmpScore = field(default_factory=TmpScore)
|
1149
1151
|
|
1150
1152
|
|
1151
1153
|
@dataclass(kw_only=True)
|
1152
|
-
class HabiticaScoreResponse(HabiticaResponse
|
1154
|
+
class HabiticaScoreResponse(HabiticaResponse):
|
1153
1155
|
"""Representation of a score response."""
|
1154
1156
|
|
1155
1157
|
data: ScoreData
|
1156
1158
|
|
1157
1159
|
|
1158
1160
|
@dataclass(kw_only=True)
|
1159
|
-
class HabiticaTagsResponse(HabiticaResponse
|
1161
|
+
class HabiticaTagsResponse(HabiticaResponse):
|
1160
1162
|
"""Representation of a score response."""
|
1161
1163
|
|
1162
1164
|
data: list[TagsUser]
|
1163
1165
|
|
1164
1166
|
|
1165
1167
|
@dataclass(kw_only=True)
|
1166
|
-
class HabiticaTagResponse(HabiticaResponse
|
1168
|
+
class HabiticaTagResponse(HabiticaResponse):
|
1167
1169
|
"""Representation of a score response."""
|
1168
1170
|
|
1169
1171
|
data: TagsUser
|
1170
1172
|
|
1171
1173
|
|
1172
1174
|
@dataclass(kw_only=True)
|
1173
|
-
class QuestData:
|
1175
|
+
class QuestData(BaseModel):
|
1174
1176
|
"""Quest data."""
|
1175
1177
|
|
1176
1178
|
progress: ProgressQuest = field(default_factory=ProgressQuest)
|
@@ -1182,14 +1184,14 @@ class QuestData:
|
|
1182
1184
|
|
1183
1185
|
|
1184
1186
|
@dataclass(kw_only=True)
|
1185
|
-
class HabiticaQuestResponse(HabiticaResponse
|
1187
|
+
class HabiticaQuestResponse(HabiticaResponse):
|
1186
1188
|
"""Representation of a quest response."""
|
1187
1189
|
|
1188
1190
|
data: QuestData
|
1189
1191
|
|
1190
1192
|
|
1191
1193
|
@dataclass
|
1192
|
-
class ChangeClassData:
|
1194
|
+
class ChangeClassData(BaseModel):
|
1193
1195
|
"""Change class data."""
|
1194
1196
|
|
1195
1197
|
preferences: PreferencesUser = field(default_factory=PreferencesUser)
|
@@ -1199,7 +1201,7 @@ class ChangeClassData:
|
|
1199
1201
|
|
1200
1202
|
|
1201
1203
|
@dataclass(kw_only=True)
|
1202
|
-
class HabiticaClassSystemResponse(HabiticaResponse
|
1204
|
+
class HabiticaClassSystemResponse(HabiticaResponse):
|
1203
1205
|
"""Representation of a change-class response."""
|
1204
1206
|
|
1205
1207
|
data: ChangeClassData
|
@@ -1313,7 +1315,7 @@ class TaskPriority(Enum):
|
|
1313
1315
|
|
1314
1316
|
|
1315
1317
|
@dataclass
|
1316
|
-
class AchievmentContent:
|
1318
|
+
class AchievmentContent(BaseModel):
|
1317
1319
|
"""Achievment content data."""
|
1318
1320
|
|
1319
1321
|
icon: str
|
@@ -1327,7 +1329,7 @@ class AchievmentContent:
|
|
1327
1329
|
|
1328
1330
|
|
1329
1331
|
@dataclass
|
1330
|
-
class AnimalColorAchievementContent:
|
1332
|
+
class AnimalColorAchievementContent(BaseModel):
|
1331
1333
|
"""animalColorAchievement content data."""
|
1332
1334
|
|
1333
1335
|
color: str
|
@@ -1338,17 +1340,17 @@ class AnimalColorAchievementContent:
|
|
1338
1340
|
|
1339
1341
|
|
1340
1342
|
@dataclass
|
1341
|
-
class AnimalSetAchievementContent:
|
1343
|
+
class AnimalSetAchievementContent(BaseModel):
|
1342
1344
|
"""animalSetAchievements content data."""
|
1343
1345
|
|
1344
|
-
Type: str
|
1346
|
+
Type: str
|
1345
1347
|
species: list[str]
|
1346
1348
|
achievementKey: str
|
1347
1349
|
notificationType: str
|
1348
1350
|
|
1349
1351
|
|
1350
1352
|
@dataclass
|
1351
|
-
class StableAchievementContent:
|
1353
|
+
class StableAchievementContent(BaseModel):
|
1352
1354
|
"""stableAchievements content data."""
|
1353
1355
|
|
1354
1356
|
masterAchievement: str
|
@@ -1356,7 +1358,7 @@ class StableAchievementContent:
|
|
1356
1358
|
|
1357
1359
|
|
1358
1360
|
@dataclass
|
1359
|
-
class PetSetCompleteAchievsContent:
|
1361
|
+
class PetSetCompleteAchievsContent(BaseModel):
|
1360
1362
|
"""petSetCompleteAchievs content data."""
|
1361
1363
|
|
1362
1364
|
color: str
|
@@ -1365,7 +1367,7 @@ class PetSetCompleteAchievsContent:
|
|
1365
1367
|
|
1366
1368
|
|
1367
1369
|
@dataclass
|
1368
|
-
class QuestBossRage:
|
1370
|
+
class QuestBossRage(BaseModel):
|
1369
1371
|
"""QuestBossRage content data."""
|
1370
1372
|
|
1371
1373
|
title: str
|
@@ -1376,36 +1378,36 @@ class QuestBossRage:
|
|
1376
1378
|
|
1377
1379
|
|
1378
1380
|
@dataclass
|
1379
|
-
class QuestBoss:
|
1381
|
+
class QuestBoss(BaseModel):
|
1380
1382
|
"""QuestBoss content data."""
|
1381
1383
|
|
1382
1384
|
name: str
|
1383
1385
|
hp: float
|
1384
|
-
Str: float
|
1385
|
-
Def: float
|
1386
|
+
Str: float
|
1387
|
+
Def: float
|
1386
1388
|
rage: QuestBossRage | None = None
|
1387
1389
|
|
1388
1390
|
|
1389
1391
|
@dataclass
|
1390
|
-
class QuestItem:
|
1392
|
+
class QuestItem(BaseModel):
|
1391
1393
|
"""QuestItem content data."""
|
1392
1394
|
|
1393
|
-
Type: str
|
1395
|
+
Type: str
|
1394
1396
|
key: str
|
1395
1397
|
text: str
|
1396
1398
|
|
1397
1399
|
|
1398
1400
|
@dataclass
|
1399
|
-
class QuestDrop:
|
1401
|
+
class QuestDrop(BaseModel):
|
1400
1402
|
"""QuestDrop content data."""
|
1401
1403
|
|
1402
1404
|
gp: float
|
1403
1405
|
exp: float
|
1404
|
-
items: list[QuestItem]
|
1406
|
+
items: list[QuestItem] = field(default_factory=list)
|
1405
1407
|
|
1406
1408
|
|
1407
1409
|
@dataclass
|
1408
|
-
class QuestCollect:
|
1410
|
+
class QuestCollect(BaseModel):
|
1409
1411
|
"""QuestCollect content data."""
|
1410
1412
|
|
1411
1413
|
text: str
|
@@ -1413,7 +1415,7 @@ class QuestCollect:
|
|
1413
1415
|
|
1414
1416
|
|
1415
1417
|
@dataclass
|
1416
|
-
class QuestUnlockCondition:
|
1418
|
+
class QuestUnlockCondition(BaseModel):
|
1417
1419
|
"""QuestUnlockCondition content data."""
|
1418
1420
|
|
1419
1421
|
condition: str
|
@@ -1421,7 +1423,7 @@ class QuestUnlockCondition:
|
|
1421
1423
|
|
1422
1424
|
|
1423
1425
|
@dataclass
|
1424
|
-
class QuestsContent:
|
1426
|
+
class QuestsContent(BaseModel):
|
1425
1427
|
"""petSetCompleteAchievs content data."""
|
1426
1428
|
|
1427
1429
|
text: str
|
@@ -1443,7 +1445,7 @@ class QuestsContent:
|
|
1443
1445
|
|
1444
1446
|
|
1445
1447
|
@dataclass
|
1446
|
-
class ItemListEntry:
|
1448
|
+
class ItemListEntry(BaseModel):
|
1447
1449
|
"""ItemListEntry content data."""
|
1448
1450
|
|
1449
1451
|
localeKey: str
|
@@ -1451,7 +1453,7 @@ class ItemListEntry:
|
|
1451
1453
|
|
1452
1454
|
|
1453
1455
|
@dataclass
|
1454
|
-
class ItemListContent:
|
1456
|
+
class ItemListContent(BaseModel):
|
1455
1457
|
"""ItemListContent content data."""
|
1456
1458
|
|
1457
1459
|
weapon: ItemListEntry
|
@@ -1472,25 +1474,25 @@ class ItemListContent:
|
|
1472
1474
|
|
1473
1475
|
|
1474
1476
|
@dataclass
|
1475
|
-
class GearEntry:
|
1477
|
+
class GearEntry(BaseModel):
|
1476
1478
|
"""GearEntry content data."""
|
1477
1479
|
|
1478
1480
|
text: str
|
1479
1481
|
notes: str
|
1480
|
-
Int: int
|
1482
|
+
Int: int
|
1481
1483
|
value: int
|
1482
|
-
Type: str
|
1484
|
+
Type: str
|
1483
1485
|
key: str
|
1484
|
-
Set: str
|
1486
|
+
Set: str
|
1485
1487
|
klass: str
|
1486
1488
|
index: str
|
1487
|
-
Str: int
|
1489
|
+
Str: int
|
1488
1490
|
per: int
|
1489
1491
|
con: int
|
1490
1492
|
|
1491
1493
|
|
1492
1494
|
@dataclass
|
1493
|
-
class GearClass:
|
1495
|
+
class GearClass(BaseModel):
|
1494
1496
|
"""GearClass content data."""
|
1495
1497
|
|
1496
1498
|
base: dict[str, GearEntry] | None = None
|
@@ -1504,7 +1506,7 @@ class GearClass:
|
|
1504
1506
|
|
1505
1507
|
|
1506
1508
|
@dataclass
|
1507
|
-
class GearType:
|
1509
|
+
class GearType(BaseModel):
|
1508
1510
|
"""GearType content data."""
|
1509
1511
|
|
1510
1512
|
weapon: GearClass
|
@@ -1518,7 +1520,7 @@ class GearType:
|
|
1518
1520
|
|
1519
1521
|
|
1520
1522
|
@dataclass
|
1521
|
-
class GearContent:
|
1523
|
+
class GearContent(BaseModel):
|
1522
1524
|
"""GearContent content data."""
|
1523
1525
|
|
1524
1526
|
tree: GearType
|
@@ -1526,7 +1528,7 @@ class GearContent:
|
|
1526
1528
|
|
1527
1529
|
|
1528
1530
|
@dataclass
|
1529
|
-
class SpellEntry:
|
1531
|
+
class SpellEntry(BaseModel):
|
1530
1532
|
"""SpellEntry content data."""
|
1531
1533
|
|
1532
1534
|
text: str
|
@@ -1544,7 +1546,7 @@ class SpellEntry:
|
|
1544
1546
|
|
1545
1547
|
|
1546
1548
|
@dataclass
|
1547
|
-
class SpellsClass:
|
1549
|
+
class SpellsClass(BaseModel):
|
1548
1550
|
"""SpellsClass content data."""
|
1549
1551
|
|
1550
1552
|
wizard: dict[str, SpellEntry]
|
@@ -1555,8 +1557,8 @@ class SpellsClass:
|
|
1555
1557
|
|
1556
1558
|
|
1557
1559
|
@dataclass
|
1558
|
-
class
|
1559
|
-
"""
|
1560
|
+
class CardTypes(BaseModel):
|
1561
|
+
"""CardTypes content data."""
|
1560
1562
|
|
1561
1563
|
key: str
|
1562
1564
|
messageOptions: int
|
@@ -1564,7 +1566,7 @@ class CarTypes:
|
|
1564
1566
|
|
1565
1567
|
|
1566
1568
|
@dataclass
|
1567
|
-
class SpecialItemEntry:
|
1569
|
+
class SpecialItemEntry(BaseModel):
|
1568
1570
|
"""Item content data."""
|
1569
1571
|
|
1570
1572
|
key: str | None = None
|
@@ -1581,7 +1583,7 @@ class SpecialItemEntry:
|
|
1581
1583
|
|
1582
1584
|
|
1583
1585
|
@dataclass
|
1584
|
-
class EggEntry:
|
1586
|
+
class EggEntry(BaseModel):
|
1585
1587
|
"""Egg content data."""
|
1586
1588
|
|
1587
1589
|
text: str | None = None
|
@@ -1593,7 +1595,7 @@ class EggEntry:
|
|
1593
1595
|
|
1594
1596
|
|
1595
1597
|
@dataclass
|
1596
|
-
class HatchingPotionEntry:
|
1598
|
+
class HatchingPotionEntry(BaseModel):
|
1597
1599
|
"""Hatching potion content data."""
|
1598
1600
|
|
1599
1601
|
value: int | None = None
|
@@ -1607,18 +1609,18 @@ class HatchingPotionEntry:
|
|
1607
1609
|
|
1608
1610
|
|
1609
1611
|
@dataclass
|
1610
|
-
class PetEntry:
|
1612
|
+
class PetEntry(BaseModel):
|
1611
1613
|
"""Pet content data."""
|
1612
1614
|
|
1613
1615
|
key: str | None = None
|
1614
|
-
Type: str | None =
|
1616
|
+
Type: str | None = None
|
1615
1617
|
potion: str | None = None
|
1616
1618
|
egg: str | None = None
|
1617
1619
|
text: str | None = None
|
1618
1620
|
|
1619
1621
|
|
1620
1622
|
@dataclass
|
1621
|
-
class InventoryItemEntry:
|
1623
|
+
class InventoryItemEntry(BaseModel):
|
1622
1624
|
"""Inventory item content data."""
|
1623
1625
|
|
1624
1626
|
text: str | None = None
|
@@ -1632,7 +1634,7 @@ class InventoryItemEntry:
|
|
1632
1634
|
|
1633
1635
|
|
1634
1636
|
@dataclass
|
1635
|
-
class ContentData:
|
1637
|
+
class ContentData(BaseModel):
|
1636
1638
|
"""Content data."""
|
1637
1639
|
|
1638
1640
|
achievements: dict[str, AchievmentContent]
|
@@ -1657,7 +1659,7 @@ class ContentData:
|
|
1657
1659
|
# repeatingEvents
|
1658
1660
|
classes: list[str]
|
1659
1661
|
gearTypes: list[str]
|
1660
|
-
cardTypes: dict[str,
|
1662
|
+
cardTypes: dict[str, CardTypes]
|
1661
1663
|
special: dict[str, SpecialItemEntry]
|
1662
1664
|
dropEggs: dict[str, EggEntry]
|
1663
1665
|
questEggs: dict[str, EggEntry]
|
@@ -1697,7 +1699,7 @@ class HabiticaContentResponse(HabiticaResponse):
|
|
1697
1699
|
|
1698
1700
|
|
1699
1701
|
@dataclass
|
1700
|
-
class PartyMember:
|
1702
|
+
class PartyMember(BaseModel):
|
1701
1703
|
"""Party member data."""
|
1702
1704
|
|
1703
1705
|
stats: StatsUser
|
@@ -1707,7 +1709,7 @@ class PartyMember:
|
|
1707
1709
|
|
1708
1710
|
|
1709
1711
|
@dataclass
|
1710
|
-
class UserTasks:
|
1712
|
+
class UserTasks(BaseModel):
|
1711
1713
|
"""User and tasks data."""
|
1712
1714
|
|
1713
1715
|
user: UserData
|