Habiticalib 0.3.7rc0__tar.gz → 0.4.0__tar.gz

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.
Files changed (79) hide show
  1. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/.github/dependabot.yml +6 -0
  2. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/.github/labels.yml +50 -23
  3. habiticalib-0.4.0/.github/release-drafter.yml +96 -0
  4. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/.github/workflows/draft.yml +9 -2
  5. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/.github/workflows/labeler.yml +1 -1
  6. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/.gitignore +2 -0
  7. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/PKG-INFO +1 -2
  8. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/pyproject.toml +6 -7
  9. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/src/habiticalib/__init__.py +40 -6
  10. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/src/habiticalib/const.py +1 -1
  11. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/src/habiticalib/ha.py +2 -0
  12. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/src/habiticalib/lib.py +192 -25
  13. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/src/habiticalib/typedefs.py +322 -29
  14. habiticalib-0.4.0/tests/__snapshots__/test_group.ambr +4 -0
  15. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/__snapshots__/test_serialize.ambr +19 -0
  16. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/__snapshots__/test_user.ambr +2 -2
  17. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/conftest.py +4 -0
  18. habiticalib-0.4.0/tests/fixtures/party.json +132 -0
  19. habiticalib-0.4.0/tests/test_group.py +16 -0
  20. habiticalib-0.3.7rc0/.github/release-drafter.yml +0 -99
  21. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/.cruft.json +0 -0
  22. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/.editorconfig +0 -0
  23. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/.github/FUNDING.yml +0 -0
  24. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/.github/workflows/build.yml +0 -0
  25. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/.github/workflows/documentation.yml +0 -0
  26. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/.pre-commit-config.yaml +0 -0
  27. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/.vscode/settings.json +0 -0
  28. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/LICENSE +0 -0
  29. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/README.md +0 -0
  30. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/docs/index.md +0 -0
  31. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/docs/reference/habiticalib.md +0 -0
  32. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/mkdocs.yml +0 -0
  33. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/src/habiticalib/exceptions.py +0 -0
  34. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/src/habiticalib/helpers.py +0 -0
  35. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/src/habiticalib/py.typed +0 -0
  36. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/__init__.py +0 -0
  37. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/__snapshots__/test_avatar/test_generate_avatar.png +0 -0
  38. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[animated_background].png +0 -0
  39. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[default].png +0 -0
  40. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[kickstarter_backer_gear].png +0 -0
  41. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[kickstarter_pet_mount].png +0 -0
  42. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[seafoam].png +0 -0
  43. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[shinySeed].png +0 -0
  44. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[sleeping].png +0 -0
  45. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[snowball].png +0 -0
  46. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[special_0].png +0 -0
  47. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[special_1].png +0 -0
  48. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[spookySparkles].png +0 -0
  49. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[weapon_critical].png +0 -0
  50. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[with_chair].png +0 -0
  51. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/__snapshots__/test_avatar/test_generate_avatar_to_file.png +0 -0
  52. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/__snapshots__/test_avatar.ambr +0 -0
  53. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/__snapshots__/test_login.ambr +0 -0
  54. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/__snapshots__/test_tasks.ambr +0 -0
  55. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/fixtures/empty_data.json +0 -0
  56. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/fixtures/login.json +0 -0
  57. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/fixtures/task.json +0 -0
  58. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/fixtures/task_order.json +0 -0
  59. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/fixtures/tasks.json +0 -0
  60. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/fixtures/user.json +0 -0
  61. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/fixtures/user_anonymized.json +0 -0
  62. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/fixtures/user_styles.json +0 -0
  63. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/fixtures/user_styles_animated_background.json +0 -0
  64. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/fixtures/user_styles_kickstarter.json +0 -0
  65. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/fixtures/user_styles_kickstarter_pets.json +0 -0
  66. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/fixtures/user_styles_seafoam.json +0 -0
  67. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/fixtures/user_styles_shinySeed.json +0 -0
  68. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/fixtures/user_styles_sleeping.json +0 -0
  69. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/fixtures/user_styles_snowball.json +0 -0
  70. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/fixtures/user_styles_special_0.json +0 -0
  71. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/fixtures/user_styles_special_1.json +0 -0
  72. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/fixtures/user_styles_spookySparkles.json +0 -0
  73. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/fixtures/user_styles_weapon_critical.json +0 -0
  74. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/fixtures/user_styles_with_chair.json +0 -0
  75. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/test_avatar.py +0 -0
  76. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/test_login.py +0 -0
  77. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/test_serialize.py +0 -0
  78. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/test_tasks.py +0 -0
  79. {habiticalib-0.3.7rc0 → habiticalib-0.4.0}/tests/test_user.py +0 -0
@@ -4,7 +4,13 @@ updates:
4
4
  directory: "/"
5
5
  schedule:
6
6
  interval: "weekly"
7
+ labels:
8
+ - ":recycle: dependencies"
9
+ - ":snake: python"
7
10
  - package-ecosystem: "github-actions"
8
11
  directory: "/"
9
12
  schedule:
10
13
  interval: "weekly"
14
+ labels:
15
+ - ":recycle: dependencies"
16
+ - ":clapper: github_actions"
@@ -4,63 +4,90 @@
4
4
  #
5
5
  # The repository labels will be automatically configured using this file and
6
6
  # the GitHub Action https://github.com/marketplace/actions/github-labeler.
7
- - name: breaking
7
+ - name: ':boom: breaking change'
8
+ from_name: breaking
8
9
  description: Breaking Changes
9
10
  color: bfd4f2
10
- - name: bug
11
+ - name: ':ghost: bug'
12
+ from_name: bug
11
13
  description: Something isn't working
12
14
  color: d73a4a
13
- - name: build
15
+ - name: ':building_construction: build'
16
+ from_name: build
14
17
  description: Build System and Dependencies
15
18
  color: bfdadc
16
- - name: ci
19
+ - name: ':construction_worker_woman: ci'
20
+ from_name: ci
17
21
  description: Continuous Integration
18
22
  color: 4a97d6
19
- - name: dependencies
23
+ - name: ':recycle: dependencies'
24
+ from_name: dependencies
20
25
  description: Pull requests that update a dependency file
21
26
  color: 0366d6
22
- - name: documentation
27
+ - name: ':book: documentation'
28
+ from_name: documentation
23
29
  description: Improvements or additions to documentation
24
30
  color: 0075ca
25
- - name: duplicate
31
+ - name: ':roll_eyes: duplicate'
32
+ from_name: duplicate
26
33
  description: This issue or pull request already exists
27
34
  color: cfd3d7
28
- - name: feature
35
+ - name: ':rocket: feature'
36
+ from_name: enhancement
29
37
  description: New feature or request
30
38
  color: a2eeef
31
- - name: github_actions
39
+ - name: ':clapper: github_actions'
40
+ from_name: github_actions
32
41
  description: Pull requests that update Github_actions code
33
- color: "000000"
34
- - name: good first issue
42
+ color: '000000'
43
+ - name: ':hatching_chick: good first issue'
44
+ from_name: good first issue
35
45
  description: Good for newcomers
36
46
  color: 7057ff
37
- - name: help wanted
47
+ - name: ':pray: help wanted'
48
+ from_name: help wanted
38
49
  description: Extra attention is needed
39
- color: 008672
40
- - name: invalid
50
+ color: '008672'
51
+ - name: ':no_entry_sign: invalid'
52
+ from_name: invalid
41
53
  description: This doesn't seem right
42
54
  color: e4e669
43
- - name: performance
55
+ - name: ':racing_car: performance'
56
+ from_name: performance
44
57
  description: Performance
45
- color: "016175"
46
- - name: python
58
+ color: '016175'
59
+ - name: ':snake: python'
60
+ from_name: python
47
61
  description: Pull requests that update Python code
48
62
  color: 2b67c6
49
- - name: question
63
+ - name: ':question: question'
64
+ from_name: question
50
65
  description: Further information is requested
51
66
  color: d876e3
52
- - name: code quality
67
+ - name: ':sparkles: code quality'
68
+ from_name: code quality
53
69
  description: Code quality improvements
54
70
  color: ef67c4
55
- - name: deprecation
71
+ - name: ':file_cabinet: deprecation'
72
+ from_name: deprecation
56
73
  description: Removals and Deprecations
57
74
  color: 9ae7ea
58
- - name: style
75
+ - name: ':nail_care: style'
76
+ from_name: style
59
77
  description: Style
60
78
  color: c120e5
61
- - name: testing
79
+ - name: ':test_tube: testing'
80
+ from_name: testing
62
81
  description: Pull request that adds tests
63
82
  color: b1fc6f
64
- - name: wontfix
83
+ - name: ':woman_shrugging: wontfix'
84
+ from_name: wontfix
65
85
  description: This will not be worked on
66
86
  color: ffffff
87
+ - name: ':arrow_up: bump'
88
+ description: Bump the version
89
+ color: 3C5D34
90
+ - name: ':sparkles: enhancement'
91
+ color: CBF8DA
92
+ - name: 'skip-changelog'
93
+ color: D3D3D3
@@ -0,0 +1,96 @@
1
+ name-template: 'v$RESOLVED_VERSION'
2
+ tag-template: 'v$RESOLVED_VERSION'
3
+
4
+
5
+ categories:
6
+ - title: '💥 Breaking changes'
7
+ labels:
8
+ - ':boom: breaking change'
9
+ - title: '🚀 New Features'
10
+ labels:
11
+ - ':rocket: feature'
12
+ - title: '👻 Bug Fixes'
13
+ labels:
14
+ - ':ghost: bug'
15
+ - title: '⏳ Deprecations'
16
+ labels:
17
+ - ':file_cabinet: deprecation'
18
+ - title: '📃 Documentation'
19
+ labels:
20
+ - ':book: documentation'
21
+ - title: '🧰 Maintenance'
22
+ labels:
23
+ - ':building_construction: build'
24
+ - ':construction_worker_woman: ci'
25
+ - ':clapper: github_actions'
26
+ collapse-after: 5
27
+ - title: '🔬 Other updates'
28
+ labels:
29
+ - ':nail_care: style'
30
+ - ':test_tube: testing'
31
+ - ':racing_car: performance'
32
+ - ':sparkles: code quality'
33
+ - ':sparkles: enhancement'
34
+ - title: '🧩 Dependency Updates'
35
+ labels:
36
+ - ':recycle: dependencies'
37
+ collapse-after: 5
38
+ exclude-labels:
39
+ - ':arrow_up: bump'
40
+ - 'skip-changelog'
41
+
42
+ autolabeler:
43
+ - label: ':rocket: feature'
44
+ title:
45
+ - '/adds/i'
46
+ - '/add method/i'
47
+ - label: ':ghost: bug'
48
+ title:
49
+ - '/fix/i'
50
+ - label: ':sparkles: code quality'
51
+ title:
52
+ - '/Refactor/i'
53
+ - label: ':test_tube: testing'
54
+ files:
55
+ - 'test_*'
56
+ - 'conftest.py'
57
+ - label: ':book: documentation'
58
+ title:
59
+ - '/docs:/i'
60
+ files:
61
+ - '*.md'
62
+ - 'mkdocs.yml'
63
+ - label: ':construction_worker_woman: ci'
64
+ files:
65
+ - '.github/*'
66
+ - label: ':recycle: dependencies'
67
+ title:
68
+ - '/bump/i'
69
+ - label: ':file_cabinet: deprecation'
70
+ title:
71
+ - '/Deprecate/i'
72
+
73
+ change-template: '- $TITLE @$AUTHOR (#$NUMBER)'
74
+ change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks.
75
+ exclude-contributors:
76
+ - 'dependabot'
77
+
78
+ version-resolver:
79
+ major:
80
+ labels:
81
+ - ':boom: breaking change'
82
+ minor:
83
+ labels:
84
+ - ':rocket: feature'
85
+ default: patch
86
+
87
+ template: |
88
+ ## What's Changed
89
+
90
+ $CHANGES
91
+
92
+ Contributors: $CONTRIBUTORS
93
+
94
+ replacers:
95
+ - search: '/(?:and )?@dependabot(?:\[bot\])?,?/g'
96
+ replace: ''
@@ -4,16 +4,23 @@ on:
4
4
  push:
5
5
  branches:
6
6
  - main
7
+ # pull_request event is required only for autolabeler
8
+ pull_request:
9
+ types: [opened, reopened, synchronize]
10
+ pull_request_target:
11
+ types: [opened, reopened, synchronize]
12
+
13
+ permissions:
14
+ contents: read
7
15
 
8
16
  jobs:
9
17
  update-draft:
10
18
  runs-on: ubuntu-latest
11
19
  permissions:
12
20
  contents: write
21
+ pull-requests: write
13
22
  steps:
14
23
  # Drafts your next Release notes as Pull Requests are merged into "main"
15
24
  - uses: release-drafter/release-drafter@v6
16
- with:
17
- disable-autolabeler: false
18
25
  env:
19
26
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -16,6 +16,6 @@ jobs:
16
16
  uses: actions/checkout@v4
17
17
 
18
18
  - name: Run Labeler
19
- uses: crazy-max/ghaction-github-labeler@v5.2.0
19
+ uses: crazy-max/ghaction-github-labeler@v5.3.0
20
20
  with:
21
21
  skip-delete: true
@@ -111,3 +111,5 @@ ENV/
111
111
 
112
112
  # Avatar test image
113
113
  avatar.png
114
+
115
+ *.http
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Habiticalib
3
- Version: 0.3.7rc0
3
+ Version: 0.4.0
4
4
  Summary: Asynchronous Python client library for the Habitica API
5
5
  Project-URL: Documentation, https://tr4nt0r.github.io/habiticalib/
6
6
  Project-URL: Source, https://github.com/tr4nt0r/habiticalib
@@ -12,7 +12,6 @@ Classifier: Operating System :: OS Independent
12
12
  Classifier: Programming Language :: Python :: 3 :: Only
13
13
  Requires-Python: >=3.12
14
14
  Requires-Dist: aiohttp~=3.9
15
- Requires-Dist: habitipy~=0.3.3
16
15
  Requires-Dist: mashumaro~=3.13
17
16
  Requires-Dist: orjson~=3.10
18
17
  Requires-Dist: pillow~=11.0
@@ -75,16 +75,16 @@ path = "src/habiticalib/const.py"
75
75
  [tool.hatch.envs.default]
76
76
  python = "3.12"
77
77
  dependencies = [
78
- "aiohttp==3.11.11",
78
+ "aiohttp==3.11.12",
79
79
  "mashumaro==3.15",
80
80
  "orjson==3.10.15",
81
81
  "Pillow==11.1.0",
82
- "mypy==1.14.1",
83
- "ruff==0.9.4",
82
+ "mypy==1.15.0",
83
+ "ruff==0.9.6",
84
84
  "pytest==8.3.4",
85
85
  "pytest-cov==6.0.0",
86
- "mkdocs-material==9.6.1",
87
- "mkdocstrings[python]==0.27.0",
86
+ "mkdocs-material==9.6.3",
87
+ "mkdocstrings[python]==0.28.0",
88
88
  "pytest-asyncio==0.25.3",
89
89
  "aioresponses==0.7.8",
90
90
  "pre-commit==4.1.0",
@@ -147,8 +147,7 @@ dependencies = [
147
147
  "aiohttp~=3.9",
148
148
  "mashumaro~=3.13",
149
149
  "orjson~=3.10",
150
- "Pillow~=11.0",
151
- "habitipy~=0.3.3"
150
+ "Pillow~=11.0"
152
151
  ]
153
152
 
154
153
  [project.urls]
@@ -46,14 +46,23 @@ from .typedefs import (
46
46
  GearItems,
47
47
  GearItemsAvatar,
48
48
  GearType,
49
+ GlobalActivity,
50
+ GlobalActivityWebhook,
51
+ GroupChatReceived,
52
+ GroupChatReceivedOptions,
53
+ GroupChatReceivedWebhook,
54
+ GroupData,
49
55
  GroupTask,
50
56
  HabiticaCastSkillResponse,
51
57
  HabiticaClass,
52
58
  HabiticaClassSystemResponse,
53
59
  HabiticaContentResponse,
60
+ HabiticaDeleteWebhookResponse,
54
61
  HabiticaErrorResponse,
55
62
  HabiticaGroupMembersResponse,
63
+ HabiticaGroupsResponse,
56
64
  HabiticaLoginResponse,
65
+ HabiticaMessageResponse,
57
66
  HabiticaQuestResponse,
58
67
  HabiticaResponse,
59
68
  HabiticaScoreResponse,
@@ -67,6 +76,7 @@ from .typedefs import (
67
76
  HabiticaUserAnonymizedResponse,
68
77
  HabiticaUserExport,
69
78
  HabiticaUserResponse,
79
+ HabiticaWebhookResponse,
70
80
  HairPreferences,
71
81
  HatchingPotionEntry,
72
82
  HistoryUser,
@@ -98,6 +108,9 @@ from .typedefs import (
98
108
  PurchasedUser,
99
109
  PushDevicesUser,
100
110
  PushNotificationsPreferences,
111
+ QuestActivity,
112
+ QuestActivityOptions,
113
+ QuestActivityWebhook,
101
114
  QuestBoss,
102
115
  QuestBossRage,
103
116
  QuestCollect,
@@ -123,6 +136,9 @@ from .typedefs import (
123
136
  SuppressModalsPreferences,
124
137
  TagsUser,
125
138
  Task,
139
+ TaskActivity,
140
+ TaskActivityOptions,
141
+ TaskActivityWebhook,
126
142
  TaskData,
127
143
  TaskFilter,
128
144
  TaskPriority,
@@ -135,12 +151,13 @@ from .typedefs import (
135
151
  TrainingStats,
136
152
  TutorialFlags,
137
153
  UltimateGearSetsAchievments,
154
+ UserActivity,
155
+ UserActivityOptions,
156
+ UserActivityWebhook,
138
157
  UserAnonymizedData,
139
158
  UserData,
140
159
  UserTasks,
141
- WebhooksOptions,
142
- WebhooksType,
143
- WebhooksUser,
160
+ WebhookType,
144
161
  )
145
162
 
146
163
  __all__ = [
@@ -185,6 +202,12 @@ __all__ = [
185
202
  "GearItems",
186
203
  "GearItemsAvatar",
187
204
  "GearType",
205
+ "GlobalActivity",
206
+ "GlobalActivityWebhook",
207
+ "GroupChatReceived",
208
+ "GroupChatReceivedOptions",
209
+ "GroupChatReceivedWebhook",
210
+ "GroupData",
188
211
  "GroupTask",
189
212
  "Habitica",
190
213
  "HabiticaCastSkillResponse",
@@ -194,13 +217,16 @@ __all__ = [
194
217
  "HabiticaClassSystemResponse",
195
218
  "HabiticaContentResponse",
196
219
  "HabiticaContentResponse",
220
+ "HabiticaDeleteWebhookResponse",
197
221
  "HabiticaErrorResponse",
198
222
  "HabiticaErrorResponse",
199
223
  "HabiticaException",
200
224
  "HabiticaGroupMembersResponse",
201
225
  "HabiticaGroupMembersResponse",
226
+ "HabiticaGroupsResponse",
202
227
  "HabiticaLoginResponse",
203
228
  "HabiticaLoginResponse",
229
+ "HabiticaMessageResponse",
204
230
  "HabiticaQuestResponse",
205
231
  "HabiticaQuestResponse",
206
232
  "HabiticaResponse",
@@ -227,6 +253,7 @@ __all__ = [
227
253
  "HabiticaUserExport",
228
254
  "HabiticaUserResponse",
229
255
  "HabiticaUserResponse",
256
+ "HabiticaWebhookResponse",
230
257
  "HairPreferences",
231
258
  "HatchingPotionEntry",
232
259
  "HistoryUser",
@@ -261,6 +288,9 @@ __all__ = [
261
288
  "PurchasedUser",
262
289
  "PushDevicesUser",
263
290
  "PushNotificationsPreferences",
291
+ "QuestActivity",
292
+ "QuestActivityOptions",
293
+ "QuestActivityWebhook",
264
294
  "QuestBoss",
265
295
  "QuestBossRage",
266
296
  "QuestCollect",
@@ -291,6 +321,9 @@ __all__ = [
291
321
  "TagsUser",
292
322
  "TagsUser",
293
323
  "Task",
324
+ "TaskActivity",
325
+ "TaskActivityOptions",
326
+ "TaskActivityWebhook",
294
327
  "TaskData",
295
328
  "TaskData",
296
329
  "TaskFilter",
@@ -305,15 +338,16 @@ __all__ = [
305
338
  "TrainingStats",
306
339
  "TutorialFlags",
307
340
  "UltimateGearSetsAchievments",
341
+ "UserActivity",
342
+ "UserActivityOptions",
343
+ "UserActivityWebhook",
308
344
  "UserAnonymizedData",
309
345
  "UserAnonymizedData",
310
346
  "UserData",
311
347
  "UserData",
312
348
  "UserTasks",
313
349
  "UserTasks",
314
- "WebhooksOptions",
315
- "WebhooksType",
316
- "WebhooksUser",
350
+ "WebhookType",
317
351
  "__version__",
318
352
  "deserialize_task",
319
353
  "extract_avatar",
@@ -1,6 +1,6 @@
1
1
  """Constants for Habiticalib."""
2
2
 
3
- __version__ = "0.3.7rc0"
3
+ __version__ = "0.4.0"
4
4
 
5
5
  DEFAULT_URL = "https://habitica.com/"
6
6
  ASSETS_URL = "https://habitica-assets.s3.amazonaws.com/mobileApp/images/"
@@ -9,3 +9,5 @@ ROGUE = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwM
9
9
  WIZARD = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciICB2aWV3Qm94PSItMTIgLTEyIDcyIDcyIj4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPHBhdGggZmlsbD0iIzFGNkVBMiIgZD0iTTI0LjQ2MiAxLjE1MWMtMy42OTUgMy43MTQtNy4zMjEgMTQuNjItOS4yMzYgMjAuOTEzLS44NC0xLjA2Mi0xLjc5OS0yLjA3Ni0zLjE1OC0zLjMyNi00LjgwNiAzLjUxNC03LjM1NyA3LjI1LTEwLjY0NiAxMS44MTYgOC45MTYgNy45MjYgMTEuMjMzIDkuMjU2IDIyLjk5NSAxNi4wMDVsLjA0NS0uMDI1aC4wMDFsLjA0NS4wMjVjMTEuNzYtNi43NDkgMTQuMDc5LTguMDggMjIuOTk0LTE2LjAwNS0zLjI4Ny00LjU2Ni01Ljg0MS04LjMwMi0xMC42NDUtMTEuODE2LTEuMzYxIDEuMjUtMi4zMTcgMi4yNjQtMy4xNTggMy4zMjYtMS45MTUtNi4yOTQtNS41NDMtMTcuMi05LjIzNi0yMC45MTNoLS4wMDF6Ii8+CiAgICAgICAgPHBhdGggZmlsbD0iIzI3OEFCRiIgZD0iTTI0LjQ2NCAzMi4xMDhsMy41NjEtMS4yNjVjNi4wNzUtLjYwNSA4LjQyNS0yLjI4MSA5LjQyNi0zLjQ5OGw2LjA1MyAyLjcwNy4wMDIuMDEzYS40NS40NSAwIDAgMS0uMTA1LjI4NiA0Ljk3IDQuOTcgMCAwIDEtLjMyLjMzYy0zLjQwNSAzLjMxNS0xOC4yMzcgMTEuOTgxLTE4LjYxNyAxMi4yMDJWMzIuMTA4eiIvPgogICAgICAgIDxwYXRoIGZpbGw9IiM1M0I0RTUiIGQ9Ik0zNi40MDYgMjMuMDQxYy4yMy0uMTg4LjI5Mi0uMzQuNjc0LS4zMzYgMS4xODMuMDY3IDUuMTY5IDUuMTc1IDYuMDY0IDYuNDYxLjE5NC4yNzguMzY2LjYxLjM2Ljg4NWwtNi4wNTMtMi43MDdjLjIzNi0uMzY3LjE5LS45Mi0uMzU1LTEuMjUyLS44MTgtLjUwMS0yLjUyOS45NDktMi45NTkuMjg0LS41OTktLjkyNyAyLjA0LTMuMTQ3IDIuMjctMy4zMzUiLz4KICAgICAgICA8cGF0aCBmaWxsPSIjMkFBMENGIiBkPSJNMjMuNTkxIDcuNDg3Yy01LjM5IDE1LjQxOS04LjIyNyAyMy44MTctOC4yMjcgMjMuODE3bDkuMDk3IDQuNzZWNi44MzljLS4zNiAwLS43MTguMjE2LS44Ny42NDgiLz4KICAgICAgICA8cGF0aCBmaWxsPSIjMjc4QUJGIiBkPSJNMjUuMzMyIDcuNDg3Yy0uMTUyLS40MzItLjUxLS42NDgtLjg3LS42NDh2MjkuMjI1bDkuMDk3LTQuNzZzLTIuODM3LTguMzk4LTguMjI3LTIzLjgxNyIvPgogICAgICAgIDxwYXRoIGZpbGw9IiM0REIyRDYiIGQ9Ik0yNC40NjIgMzIuMTA4TDIwLjkgMzAuODQzYy02LjA3NS0uNjA1LTguMzQyLTIuMzUyLTkuNDI1LTMuNDk4TDUuNDIgMzAuMDUybC0uMDAyLjAxM2EuNDUuNDUgMCAwIDAgLjEwNi4yODZjLjA5LjEwNC4xOTcuMjE1LjMxOC4zMyAzLjQwNiAzLjMxNSAxOC4yMzggMTEuOTgxIDE4LjYxOSAxMi4yMDJWMzIuMTA4eiIvPgogICAgICAgIDxwYXRoIGZpbGw9IiM2QkM0RTkiIGQ9Ik0xMi41MTkgMjMuMDQxYy0uMjMtLjE4OC0uMjkyLS4zNC0uNjc0LS4zMzYtMS4xODMuMDY3LTUuMTY5IDUuMTc1LTYuMDYzIDYuNDYxLS4xOTQuMjc4LS4zNjcuNjEtLjM2MS44ODVsNi4wNTMtMi43MDdjLS4yMzYtLjM2Ny0uMTktLjkyLjM1Ni0xLjI1Mi44MTctLjUwMSAyLjUyOC45NDkgMi45NTguMjg0LjYtLjkyNy0yLjAzOS0zLjE0Ny0yLjI3LTMuMzM1Ii8+CiAgICAgICAgPHBhdGggZmlsbD0iI0E5REJGNiIgZD0iTTI0LjQ2MyAzNC45OTh2LTUuMTAxbC03LjIxLTQuMTMtMS40OCA0LjA0OXoiLz4KICAgICAgICA8cGF0aCBmaWxsPSIjODRDRkYyIiBkPSJNMjQuNDYzIDM0Ljk5OHYtNS4xMDFsNy4yMDctNC4xMyAxLjQ4MyA0LjA0OXoiLz4KICAgIDwvZz4KPC9zdmc+"
10
10
  HEALER = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciICB2aWV3Qm94PSItMTIgLTEyIDcyIDcyIj4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPHBhdGggZmlsbD0iI0NGODIyOSIgZD0iTTI0LjYxIDQ3LjYwNHMtMS43ODktLjczNS0yLjU4NS0xLjEzOGwtLjE4My0uMDljLTUuMTMtMi41OC0xMC41NC01Ljc4Mi0xMy44ODEtMTIuMTA4LTMuNzc3LTcuMTUtMy4wNS0xOC41NjUtMi45NTUtMTkuODQzLjA3NS0xLjAwMy4zNzgtMy40NjQuMzc4LTMuNDY0czEuOTQxLS44NTggMi45MDEtMS4zMTFsMTMuODY0LTcuMDEyYy43NjQtLjM2MyAyLjQ2Mi0xLjExNCAyLjQ2Mi0xLjExNHMxLjY5Ny43NSAyLjQ2MyAxLjExNGwxMy44NiA3LjAxYy45NjYuNDU3IDMuMDUgMS4zMTUgMy4wNSAxLjMxNXMuMTU3IDIuNDY3LjIzMiAzLjQ2NWMuMDk0IDEuMjc1LjgyMiAxMi42OS0yLjk1NSAxOS44NC0zLjM0MyA2LjMzLTguNzU1IDkuNTMtMTMuODc2IDEyLjEwM2wtLjE5LjA5NmMtLjc5NS40MDItMi41ODQgMS4xMzctMi41ODQgMS4xMzciLz4KICAgICAgICA8cGF0aCBmaWxsPSIjRTI5RTQ1IiBkPSJNMTIuNjk0IDE2LjE0N2wxMS4wNTktNS42OTVjLjI3LS4xMjkuNTY0LS4xOTIuODU4LS4xOTJWNS44MjljLS4yOTQgMC0uNTg4LjA2My0uODU4LjE5Mkw5Ljg4OCAxMy4wMzJhMS45ODUgMS45ODUgMCAwIDAtLjcyNy42MDNsMy41MzMgMi41MjN2LS4wMTFNMjQuNjEyIDEwLjI1OVY1LjgyN3oiLz4KICAgICAgICA8cGF0aCBmaWxsPSIjRkRDNjdFIiBkPSJNMjMuNzUyIDYuMDA4TDkuODkgMTMuMDJjLS42NTUuMzEtMS4wOS45NDUtMS4xNDUgMS42NjUtLjAzNC40NjYtLjgxIDExLjQ4NyAyLjUzMSAxNy44MTQgMi43ODIgNS4yNjYgNy4zNiA4LjA0OCAxMi4yNDIgMTAuNTA0bC4xOS4wOTZjLjI4NC4xNDIuNTkzLjIxMy45MDIuMjEzVjUuODE2Yy0uMjkzIDAtLjU4NS4wNjQtLjg1OC4xOTIiLz4KICAgICAgICA8cGF0aCBmaWxsPSIjRkZBNjIzIiBkPSJNMjUuNTEyIDQzLjA5OWwuMTktLjA5NmM0Ljg4NS0yLjQ1NCA5LjQ2Mi01LjIzOCAxMi4yNDQtMTAuNTA1IDMuMzQxLTYuMzI2IDIuNTY1LTE3LjM0NyAyLjUzLTE3LjgxM2EyLjAwOSAyLjAwOSAwIDAgMC0xLjE0My0xLjY2NUwyNS40NjggNi4wMDhhMS45OTkgMS45OTkgMCAwIDAtLjg1OC0uMTkydjM3LjQ5NmMuMzEgMCAuNjE4LS4wNzEuOTAyLS4yMTMiLz4KICAgICAgICA8cGF0aCBmaWxsPSIjRkZEREI1IiBkPSJNMTIuNjk0IDE2LjEzNGwxMS4wNTktNS42OTRjLjI3LS4xMjkuNTY0LS4xOTIuODU4LS4xOTJWNS44MTZjLS4yOTQgMC0uNTg3LjA2NC0uODU4LjE5Mkw5Ljg4OSAxMy4wMmExLjk4NSAxLjk4NSAwIDAgMC0uNzI4LjYwM2wzLjUzMyAyLjUyM3YtLjAxMiIvPgogICAgICAgIDxwYXRoIGZpbGw9IiNGREM2N0UiIGQ9Ik0zOS4zMzMgMTMuMDJMMjUuNDY4IDYuMDA4YTEuOTk5IDEuOTk5IDAgMCAwLS44NTgtLjE5MnY0LjQzMWMuMjk0IDAgLjU4OC4wNjUuODU4LjE5MmwxMS4wNjUgNS43MDIgMy41MjctMi41MTlhMS45NzMgMS45NzMgMCAwIDAtLjcyNy0uNjAyIi8+CiAgICAgICAgPHBhdGggZmlsbD0iI0ZGQTYyMyIgZD0iTTI0LjIxNCAzOC44NThjLTQuMTk3LTIuMTI4LTcuMzgzLTQuNDM4LTkuMzg5LTguMjM1LTIuMjM5LTQuMjM4LTIuMjI5LTExLjYzLTIuMTMxLTE0LjQ3N0w5LjE2IDEzLjYyM2EyIDIgMCAwIDAtLjQxNyAxLjA2MmMtLjAxNS4yMDctLjE3NCAyLjQ5OC0uMDU3IDUuNTMxLjE0OCAzLjc5OC43MzEgOC43NjUgMi41OSAxMi4yODIgMi43ODIgNS4yNjcgNy4zNTcgOC4wNSAxMi4yNDIgMTAuNTA1bC4xOS4wOTZjLjI4NC4xNDIuNTkzLjIxMy45MDIuMjEzdi00LjMzYy0uMDk4IDAtLjE5Ny0uMDQtLjM5Ny0uMTI0Ii8+CiAgICAgICAgPHBhdGggZmlsbD0iI0U1OTAyNSIgZD0iTTM0LjM5NSAzMC42MjNjLTIuMDA4IDMuODA0LTUuMjAzIDYuMTEzLTkuNDA2IDguMjQzLS4xODguMDc4LS4yODIuMTE3LS4zNzguMTE3djQuMzNjLjMxIDAgLjYxOC0uMDcyLjktLjIxNGwuMTktLjA5NmM0Ljg4NS0yLjQ1NSA5LjQ2Mi01LjIzOCAxMi4yNDQtMTAuNTA0IDEuODU3LTMuNTE4IDIuNDQzLTguNDg1IDIuNTktMTIuMjgyLjExOC0zLjAzNC0uMDQ0LTUuMzI1LS4wNi01LjUzMmExLjk5NSAxLjk5NSAwIDAgMC0uNDE0LTEuMDY0bC0zLjUyNyAyLjUyMWMuMTI5IDMuNTMtLjA3IDEwLjU2Ni0yLjEzOSAxNC40ODEiLz4KICAgICAgICA8cGF0aCBmaWxsPSIjRkZFNEM5IiBkPSJNMTYuMDc2IDI0LjU2NGw1LjY5LTIuODQ1IDIuODQ1IDIuODQ1ek0yNC42MSAzMy4wOThsLTIuODQ1LTUuNjg4IDIuODQ2LTIuODQ2eiIvPgogICAgICAgIDxwYXRoIGZpbGw9IiNFNTkwMjUiIGQ9Ik0zMy4xNDUgMjQuNTY0bC01LjY4OSAyLjg0Ni0yLjg0NS0yLjg0NnpNMjQuNjEgMTYuMDNsMi44NDYgNS42ODktMi44NDUgMi44NDV6Ii8+CiAgICAgICAgPHBhdGggZmlsbD0iI0U1OTAyNSIgZD0iTTMzLjE0NSAyNC41NjRsLTUuNjg5LTIuODQ1LTIuODQ1IDIuODQ1ek0yNC42MSAzMy4wOThsMi44NDYtNS42ODgtMi44NDUtMi44NDZ6Ii8+CiAgICAgICAgPHBhdGggZmlsbD0iI0ZGRTRDOSIgZD0iTTE2LjA3NiAyNC41NjRsNS42OSAyLjg0NiAyLjg0NS0yLjg0NnpNMjQuNjEgMTYuMDNsLTIuODQ1IDUuNjg5IDIuODQ2IDIuODQ1eiIvPgogICAgPC9nPgo8L3N2Zz4="
11
11
  FOOD = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjAiIGhlaWdodD0iNTgiIHZpZXdCb3g9IjAgMCA2MCA1OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CjxyZWN0IHg9IjM4IiB5PSI2IiB3aWR0aD0iMjIiIGhlaWdodD0iMjYiIGZpbGw9InVybCgjcGF0dGVybjBfMTMyN18yNTYpIj48L3JlY3Q+CjxyZWN0IHdpZHRoPSIyNiIgaGVpZ2h0PSIyNiIgZmlsbD0idXJsKCNwYXR0ZXJuMV8xMzI3XzI1NikiPjwvcmVjdD4KPHJlY3QgeD0iOCIgeT0iMzYiIHdpZHRoPSIzMCIgaGVpZ2h0PSIyMiIgZmlsbD0idXJsKCNwYXR0ZXJuMl8xMzI3XzI1NikiPjwvcmVjdD4KPGRlZnM+CjxwYXR0ZXJuIGlkPSJwYXR0ZXJuMF8xMzI3XzI1NiIgcGF0dGVybkNvbnRlbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPgo8dXNlIHhsaW5rOmhyZWY9IiNpbWFnZTBfMTMyN18yNTYiIHRyYW5zZm9ybT0ic2NhbGUoMC4wNDU0NTQ1IDAuMDM4NDYxNSkiPjwvdXNlPgo8L3BhdHRlcm4+CjxwYXR0ZXJuIGlkPSJwYXR0ZXJuMV8xMzI3XzI1NiIgcGF0dGVybkNvbnRlbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPgo8dXNlIHhsaW5rOmhyZWY9IiNpbWFnZTFfMTMyN18yNTYiIHRyYW5zZm9ybT0ic2NhbGUoMC4wMzg0NjE1KSI+PC91c2U+CjwvcGF0dGVybj4KPHBhdHRlcm4gaWQ9InBhdHRlcm4yXzEzMjdfMjU2IiBwYXR0ZXJuQ29udGVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgd2lkdGg9IjEiIGhlaWdodD0iMSI+Cjx1c2UgeGxpbms6aHJlZj0iI2ltYWdlMl8xMzI3XzI1NiIgdHJhbnNmb3JtPSJzY2FsZSgwLjAzMzMzMzMgMC4wNDU0NTQ1KSI+PC91c2U+CjwvcGF0dGVybj4KPGltYWdlIGlkPSJpbWFnZTBfMTMyN18yNTYiIHdpZHRoPSIyMiIgaGVpZ2h0PSIyNiIgeGxpbms6aHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCWUFBQUFhQ0FZQUFBQ3pkcXhBQUFBQUFYTlNSMElBcnM0YzZRQUFBUWxKUkVGVVNBMjkwazFxd2xBVXhmRnNwK3NvWFlkem9lQWFXcUZiY1N4MTRMVFFTYnVBanJ1TFZnZFBudkFyY3NJalJsT0Z5OG45K3Q5alNOY04vQjd1N3N0cERJeWYzejZGMXVmek4yTXlRZnZmOTFMalo3czZSdlpqdlozbTR0Vmd3TjM2cTlUZ2tLclQ3K2VQVXNOZTA2b0JpNEJVblE2Q0UyaUJBcVhxVTV3LzV3b1dEVkwxVkgySzB3TWJBSGliZlpZYTZpMDFkenN3Nnk3bTUrVWZjTXhoUzNGd080WEp3SUNjNWVmRmFlcWc0NXVCMDVtODVWQ2R3ZDY3OVNxQVVnRmEyZ1FEV1RRb1Q4Mit2T2Q0Y3JBTEx0S3N6eDhYcFVhcmI3Nm5GcWdCK2NWZ29GVGdwK1ZMcVNIUHVkRTUwTCtCMTYrYlVzT2gwUTV6QVdoeXNFTU95Q2ZUc2VBRFNTQzNudTVpRmFjQUFBQUFTVVZPUks1Q1lJST0iPjwvaW1hZ2U+CjxpbWFnZSBpZD0iaW1hZ2UxXzEzMjdfMjU2IiB3aWR0aD0iMjYiIGhlaWdodD0iMjYiIHhsaW5rOmhyZWY9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQm9BQUFBYUNBWUFBQUNwU2t6T0FBQUFBWE5TUjBJQXJzNGM2UUFBQVNsSlJFRlVTQTNGMURGT3cwQVFCVkRUUmhTcDZSSFVhVkxRY0FXT0VDa05SNkhpUHRSY0psMUtxQlp0cEVmeGpiV3J4QTZXUmw4em52bC8vcTdsWVlqbmJuTmIvZ3B0K2U3NWZWMXFxT3Ryb29GRWcxay9XeWdKNzNjM3BRWUIrY1VDL3k2VVRqaDYyMjVMamQwd25NS2kzWmhITlpzUVlvaFl2djk0TERYVU9UbSt2cFFhWHc5UHAxQ2ZkSVFRSXBSZkxJUVFPbnZFTU92Nk9XazZNd0NUY0hZaFJ3UlR3QUtKN3VUNzgxQnFjS2orZTFlY0VJQ3pDeUdtdkZtdFNnMmJFN1JwYnE3UCs4bTd1cG9RSjVBalo1d2IyeHltZzNROCtjZTR1cENOYzhPV0EzT3c2VWpqNGtMdWlDQnNDYWZqcHFQRmhhYSt2bDVoanZYN3VQQ09VSU1CNkFnaDRzejE0eGtKWkVFamRPYUlXbWd1ZVVlNVJyaVlVQ29UN01XYzc4NTdCZlFoL2dGQ2FOUWFobDJ1M2dBQUFBQkpSVTVFcmtKZ2dnPT0iPjwvaW1hZ2U+CjxpbWFnZSBpZD0iaW1hZ2UyXzEzMjdfMjU2IiB3aWR0aD0iMzAiIGhlaWdodD0iMjIiIHhsaW5rOmhyZWY9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQjRBQUFBV0NBWUFBQURYWXl6UEFBQUFBWE5TUjBJQXJzNGM2UUFBQVJSSlJFRlVTQTNGMDhGdEFqRVVCRkNhZ0FZU0tkM1FBc1VnY1VrRHFTTzMxSkJqTHJuU0JsSms1TU9EMVdndDdSbzVJSDJOL2NlZStiUHNiamFEZjY4dmIyVmFnKzN1OGxQVHVyNHpLMWNwWko4eStoK0g3MUxMUHM4dDNoTklUQUY4dHpFQitQbHpLZFA2UGYrVld2akUwLzZyMUZvOVFBcE5UZXQ2dURIRDQvdTV6Qlhlb0ptME96SGhPZFBhd3o5c1RJQmdHbnJFeWV2dnR0dFNpMDVpdm95M3ZZTXBiQUFHeWVzL2JFeklmOFlJdGdZeCtDM0owb1dMdzR3WkpIcFVra2tzb1g0aW5sNHpxQU9KLzJic080TVNHa2d5aWZCUTMvbG1Vb1NERENGQi9IRGpOR1FNRFFDOWZIZ29XQk1kYkNYRlE0YXcyOWhFaEExZ2o0ZjZpZmpWU09ocHhnWllQWG52Qllhd1YyZnB2U3R4R0Z5dUlYV3NXUUFBQUFCSlJVNUVya0pnZ2c9PSI+PC9pbWFnZT4KPC9kZWZzPgo8L3N2Zz4="
12
+ DAMAGE = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSItMyAtMyAyMiAyMiI+CiAgICA8ZGVmcz4KICAgICAgICA8cGF0aCBpZD0iYSIgZD0iTTEwLjQ2NCAyLjkxN0w4LjIgNS4xOTd2Mi4wMmwyLjI2NC0yLjE3M1YyLjkxN3oiPjwvcGF0aD4KICAgIDwvZGVmcz4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgdHJhbnNmb3JtPSJtYXRyaXgoLTEgMCAwIDEgMTYgLjMyKSI+CiAgICAgICAgPHBhdGggZmlsbD0iI0YwNjE2NiIgZD0iTTYuMTMgOS4yMDRsMi4xMTEuOTM0Yy4xNzYuMDc4LjI5LjIzNS4zMzMuNDE1LjA3My4zMDQuMjk1IDEuMDEuMzEzIDEuMzg2LjAxLjIxLS4yMTQuMzU2LS40MTQuMjdsLTMuNTI5LTEuNjIzYS41ODIuNTgyIDAgMCAxLS4yNTQtLjI0NEwzIDYuOTU1Yy0uMDktLjE5Mi4wNjMtLjQwNy4yODEtLjM5Ny4zOTEuMDE3IDEuMTEyLjIxOCAxLjQ0NC4zLjE4Ni4wNDUuMzUxLjE1LjQzMi4zMTlsLjk3MyAyLjAyN3oiPjwvcGF0aD4KICAgICAgICA8cGF0aCBmaWxsPSIjODc4MTkwIiBkPSJNMS4wMjQgMTQuMTA3bC45MS44NzUgMi4zNjMtLjE3OS4xMjEtMS40OSAxLjM1Ni0xLjMgMi40NjcgMS4xMjYgMS44NDYtLjQ3Ny0uNzc0LTMuMTk2IDUuMTcxLTQuNjMzLjk5LTQuNTk2aC0uMDAyVi4yMzVsLTQuNzg2Ljk1TDUuODYgNi4xNWwtMy4zMy0uNzQzLS40OTcgMS43NyAxLjE3NCAyLjM3LTEuMzU1IDEuMy0xLjU1Mi4xMTgtLjE4NiAyLjI2Ny45MS44NzV6Ij48L3BhdGg+CiAgICAgICAgPHBhdGggZmlsbD0iI0YwNjE2NiIgZD0iTTIuOTc2IDEzLjM2NmwtMS4xODItMS4xMzQgMi45MjMtMi44MDUgMS4xOCAxLjEzNHoiPjwvcGF0aD4KICAgICAgICA8cGF0aCBmaWxsPSIjRjA2MTY2IiBkPSJNMS4xMjYgMTIuODc0bC4wODUtMS4wMzUgMS4wNzgtLjA4MiAxLjE4MiAxLjEzNS0uMDg1IDEuMDM1LTEuMDc4LjA4MnoiPjwvcGF0aD4KICAgICAgICA8cGF0aCBmaWxsPSIjRkZGIiBkPSJNMTEuMzEyIDIuMDg4bC4xIDIuMDQ2IDIuNzAyLTIuNTk1Yy0uMDUtLjA0NS0yLjA4Ni4xOC0yLjgwMi41NSI+PC9wYXRoPgogICAgICAgIDxwYXRoIGZpbGw9IiNFREVDRUUiIGQ9Ik0xMS4yNjIgMi4xMTNMNS41NTMgNy44NjJsMS40NjMuNDkyIDQuMzk2LTQuMjItLjEtMi4wNDYtLjA1LjAyNU01LjU1MyA3Ljg2MmwtLjA1LjA1Mi42MjIgMS4yOTQuODktLjg1NC0xLjQ2Mi0uNDkyeiI+PC9wYXRoPgogICAgICAgIDxwYXRoIGZpbGw9IiNFREVDRUUiIGQ9Ik0xMy41NDEgNC4yM2wtMi4xMy0uMDk2IDIuNzAzLTIuNTk0Yy4wNDYuMDQ4LS4xODkgMi4wMDMtLjU3MyAyLjY5Ij48L3BhdGg+CiAgICAgICAgPHBhdGggZmlsbD0iI0UxRTBFMyIgZD0iTTEzLjUxNiA0LjI3OGwtNS45ODkgNS40OC0uNTEyLTEuNDA0IDQuMzk2LTQuMjIgMi4xMy4wOTYtLjAyNS4wNDhNNy41MjcgOS43NThsLS4wNTQuMDQ4LTEuMzQ4LS41OTcuODktLjg1NC41MTIgMS40MDN6Ij48L3BhdGg+CiAgICAgICAgPHBhdGggZmlsbD0iI0Q1QzhGRiIgZD0iTTIuMjg5IDExLjc1N2wtLjI1Ljg3OC0uODI5LS43OTZ6TTMuNDY5IDEyLjg5bC0uOTE0LjI0LjgyOC43OTV6Ij48L3BhdGg+CiAgICAgICAgPHBhdGggZmlsbD0iI0JEQThGRiIgZD0iTTIuMjg5IDExLjc1N2wxLjE4MiAxLjEzNS0uOTE2LjIzNy0uNTE2LS40OTR6Ij48L3BhdGg+CiAgICAgICAgPHBhdGggZmlsbD0iI0JEQThGRiIgZD0iTTEuMTI3IDEyLjg3NmwuOTE0LS4yNC0uODI4LS43OTZ6TTIuMzA3IDE0LjAwOGwuMjUtLjg3Ny44MjkuNzk2eiI+PC9wYXRoPgogICAgICAgIDxwYXRoIGZpbGw9IiNENUM4RkYiIGQ9Ik0xLjEyNyAxMi44NzZMMi4zMSAxNC4wMWwuMjQ3LS44OC0uNTE2LS40OTV6Ij48L3BhdGg+CiAgICAgICAgPHBhdGggZmlsbD0iI0IzNjIxMyIgZD0iTTQuOSAxMS41MjNsLTEuMTg0LTEuMTM3LjcxNS0uNjg1IDEuMTg0IDEuMTM2eiI+PC9wYXRoPgogICAgICAgIDxwYXRoIGZpbGw9IiNFMzhGM0QiIGQ9Ik00LjE4NyAxMi4yMDhsLTEuMTg0LTEuMTM2LjcxNC0uNjg1TDQuOSAxMS41MjN6Ij48L3BhdGg+CiAgICAgICAgPHBhdGggZmlsbD0iI0IzNjIxMyIgZD0iTTMuNDczIDEyLjg5NGwtMS4xODQtMS4xMzcuNzE0LS42ODUgMS4xODQgMS4xMzZ6Ij48L3BhdGg+CiAgICAgICAgPHBhdGggZmlsbD0iI0MzQzBDNyIgZD0iTTYuMTMyIDkuMjA1bC0uOTc0LTIuMDI3YS41MjYuNTI2IDAgMCAwLS4xNTMtLjE4NS43MTguNzE4IDAgMCAwLS4yNzktLjEzNWMtLjMzMS0uMDgtMS4wNTItLjI4Mi0xLjQ0My0uM2EuMjk1LjI5NSAwIDAgMC0uMjQyLjEwOEw0LjQ2IDcuODI5IDUuNTAzIDkuODFsLjYzLS42MDVoLS4wMDF6Ij48L3BhdGg+CiAgICAgICAgPHBhdGggZmlsbD0iI0E1QTFBQyIgZD0iTTQuNDYgNy44MjlMMy4wNCA2LjY2NmEuMjcuMjcgMCAwIDAtLjAzOS4yOWwxLjY5IDMuMzg3Yy4wMjkuMDUzLjA2Ni4xLjExLjE0MmwuNzAyLS42NzVMNC40NiA3LjgzeiI+PC9wYXRoPgogICAgICAgIDxwYXRoIGZpbGw9IiNDM0MwQzciIGQ9Ik04Ljg5MSAxMS45NGMtLjAxOC0uMzc1LS4yMjgtMS4wNjgtLjMxMi0xLjM4NWEuNjY4LjY2OCAwIDAgMC0uMTQtLjI2OC41NC41NCAwIDAgMC0uMTkzLS4xNDdsLTIuMTExLS45MzV2LS4wMDJsLS42MzEuNjA2IDIuMDY0IDEuMDAxIDEuMjExIDEuMzYzYS4yNzUuMjc1IDAgMCAwIC4xMTItLjIzMyI+PC9wYXRoPgogICAgICAgIDxwYXRoIGZpbGw9IiNBNUExQUMiIGQ9Ik03LjU2OCAxMC44MWwxLjIxMSAxLjM2M2EuMy4zIDAgMCAxLS4zMDEuMDM3bC0zLjUzLTEuNjIyYS41ODguNTg4IDAgMCAxLS4xNDctLjEwNWwuNzAzLS42NzQgMi4wNjQgMS4wMDF6Ij48L3BhdGg+CiAgICAgICAgPG1hc2sgaWQ9ImIiIGZpbGw9IiNmZmYiPgogICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNhIj48L3VzZT4KICAgICAgICA8L21hc2s+CiAgICAgICAgPHBhdGggZmlsbD0iI0ZGRiIgZD0iTTkuODI0IDcuNDVoLjMyOVYxLjg2NWgtLjMyOXpNOC4yIDguODYyaC45NzRWMy4yNzdIOC4yeiIgbWFzaz0idXJsKCNiKSI+PC9wYXRoPgogICAgPC9nPgo8L3N2Zz4="
13
+ PARTY = "data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii02IC02IDQ2IDUwIj48dGl0bGU+QnJvbnplX1NtYWxsPC90aXRsZT48cGF0aCBkPSJNMjAsMzYuMjhDNy4xOCwzMC42MSw1LjYsMjQuNjksNS41LDEwLjQyTDIwLDMuNzVsMTQuNSw2LjY3QzM0LjQsMjQuNjksMzIuODIsMzAuNjEsMjAsMzYuMjhaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMyAtMSkiIGZpbGw9IiNlYThjMzEiPjwvcGF0aD48cGF0aCBkPSJNMjAsNi41TDMyLDEyYy0wLjE1LDExLjU2LTEuNTEsMTYuNjItMTIsMjEuNTFDOS41MywyOC42NCw4LjE3LDIzLjU4LDgsMTJMMjAsNi41TTIwLDFMMyw4LjgyQzMsMjQuNDcsNC4xMywzMi4yOSwyMCwzOSwzNS44NywzMi4yOSwzNywyNC40NywzNyw4LjgyTDIwLDFoMFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zIC0xKSIgZmlsbD0iI2IzNjIxMyI+PC9wYXRoPjxwYXRoIGQ9Ik0yMCw0LjNsMTQsNi40NGMtMC4xMiwxMy43Mi0xLjcyLDE5LjUxLTE0LDI1QzcuNzMsMzAuMjUsNi4xMiwyNC40Niw2LDEwLjc0TDIwLDQuM00yMCwxTDMsOC44MkMzLDI0LjQ3LDQuMTMsMzIuMjksMjAsMzksMzUuODcsMzIuMjksMzcsMjQuNDcsMzcsOC44MkwyMCwxaDBaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMyAtMSkiIGZpbGw9IiNkNzdhMjAiPjwvcGF0aD48L3N2Zz4="