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