Habiticalib 0.3.5__tar.gz → 0.3.6__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 (73) hide show
  1. {habiticalib-0.3.5 → habiticalib-0.3.6}/.github/workflows/labeler.yml +2 -6
  2. {habiticalib-0.3.5 → habiticalib-0.3.6}/PKG-INFO +1 -1
  3. {habiticalib-0.3.5 → habiticalib-0.3.6}/src/habiticalib/const.py +1 -1
  4. {habiticalib-0.3.5 → habiticalib-0.3.6}/src/habiticalib/types.py +38 -7
  5. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/__snapshots__/test_user.ambr +1 -1
  6. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/fixtures/user.json +39 -1
  7. {habiticalib-0.3.5 → habiticalib-0.3.6}/.cruft.json +0 -0
  8. {habiticalib-0.3.5 → habiticalib-0.3.6}/.editorconfig +0 -0
  9. {habiticalib-0.3.5 → habiticalib-0.3.6}/.github/FUNDING.yml +0 -0
  10. {habiticalib-0.3.5 → habiticalib-0.3.6}/.github/dependabot.yml +0 -0
  11. {habiticalib-0.3.5 → habiticalib-0.3.6}/.github/labels.yml +0 -0
  12. {habiticalib-0.3.5 → habiticalib-0.3.6}/.github/release-drafter.yml +0 -0
  13. {habiticalib-0.3.5 → habiticalib-0.3.6}/.github/workflows/build.yml +0 -0
  14. {habiticalib-0.3.5 → habiticalib-0.3.6}/.github/workflows/documentation.yml +0 -0
  15. {habiticalib-0.3.5 → habiticalib-0.3.6}/.github/workflows/draft.yml +0 -0
  16. {habiticalib-0.3.5 → habiticalib-0.3.6}/.gitignore +0 -0
  17. {habiticalib-0.3.5 → habiticalib-0.3.6}/.pre-commit-config.yaml +0 -0
  18. {habiticalib-0.3.5 → habiticalib-0.3.6}/.vscode/settings.json +0 -0
  19. {habiticalib-0.3.5 → habiticalib-0.3.6}/LICENSE +0 -0
  20. {habiticalib-0.3.5 → habiticalib-0.3.6}/README.md +0 -0
  21. {habiticalib-0.3.5 → habiticalib-0.3.6}/docs/index.md +0 -0
  22. {habiticalib-0.3.5 → habiticalib-0.3.6}/docs/reference/habiticalib.md +0 -0
  23. {habiticalib-0.3.5 → habiticalib-0.3.6}/mkdocs.yml +0 -0
  24. {habiticalib-0.3.5 → habiticalib-0.3.6}/pyproject.toml +0 -0
  25. {habiticalib-0.3.5 → habiticalib-0.3.6}/src/habiticalib/__init__.py +0 -0
  26. {habiticalib-0.3.5 → habiticalib-0.3.6}/src/habiticalib/exceptions.py +0 -0
  27. {habiticalib-0.3.5 → habiticalib-0.3.6}/src/habiticalib/ha.py +0 -0
  28. {habiticalib-0.3.5 → habiticalib-0.3.6}/src/habiticalib/helpers.py +0 -0
  29. {habiticalib-0.3.5 → habiticalib-0.3.6}/src/habiticalib/lib.py +0 -0
  30. {habiticalib-0.3.5 → habiticalib-0.3.6}/src/habiticalib/py.typed +0 -0
  31. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/__init__.py +0 -0
  32. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/__snapshots__/test_avatar/test_generate_avatar.png +0 -0
  33. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[animated_background].png +0 -0
  34. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[default].png +0 -0
  35. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[kickstarter_backer_gear].png +0 -0
  36. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[kickstarter_pet_mount].png +0 -0
  37. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[seafoam].png +0 -0
  38. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[shinySeed].png +0 -0
  39. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[sleeping].png +0 -0
  40. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[snowball].png +0 -0
  41. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[special_0].png +0 -0
  42. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[special_1].png +0 -0
  43. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[spookySparkles].png +0 -0
  44. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[weapon_critical].png +0 -0
  45. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/__snapshots__/test_avatar/test_generate_avatar_from_styles[with_chair].png +0 -0
  46. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/__snapshots__/test_avatar/test_generate_avatar_to_file.png +0 -0
  47. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/__snapshots__/test_avatar.ambr +0 -0
  48. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/__snapshots__/test_login.ambr +0 -0
  49. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/__snapshots__/test_tasks.ambr +0 -0
  50. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/conftest.py +0 -0
  51. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/fixtures/empty_data.json +0 -0
  52. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/fixtures/login.json +0 -0
  53. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/fixtures/task.json +0 -0
  54. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/fixtures/task_order.json +0 -0
  55. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/fixtures/tasks.json +0 -0
  56. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/fixtures/user_anonymized.json +0 -0
  57. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/fixtures/user_styles.json +0 -0
  58. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/fixtures/user_styles_animated_background.json +0 -0
  59. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/fixtures/user_styles_kickstarter.json +0 -0
  60. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/fixtures/user_styles_kickstarter_pets.json +0 -0
  61. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/fixtures/user_styles_seafoam.json +0 -0
  62. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/fixtures/user_styles_shinySeed.json +0 -0
  63. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/fixtures/user_styles_sleeping.json +0 -0
  64. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/fixtures/user_styles_snowball.json +0 -0
  65. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/fixtures/user_styles_special_0.json +0 -0
  66. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/fixtures/user_styles_special_1.json +0 -0
  67. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/fixtures/user_styles_spookySparkles.json +0 -0
  68. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/fixtures/user_styles_weapon_critical.json +0 -0
  69. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/fixtures/user_styles_with_chair.json +0 -0
  70. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/test_avatar.py +0 -0
  71. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/test_login.py +0 -0
  72. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/test_tasks.py +0 -0
  73. {habiticalib-0.3.5 → habiticalib-0.3.6}/tests/test_user.py +0 -0
@@ -1,10 +1,6 @@
1
1
  name: Labeler
2
2
 
3
- on:
4
- push:
5
- branches:
6
- - main
7
- - master
3
+ on: workflow_dispatch
8
4
 
9
5
  permissions:
10
6
  actions: read
@@ -20,6 +16,6 @@ jobs:
20
16
  uses: actions/checkout@v4
21
17
 
22
18
  - name: Run Labeler
23
- uses: crazy-max/ghaction-github-labeler@v5.0.0
19
+ uses: crazy-max/ghaction-github-labeler@v5.2.0
24
20
  with:
25
21
  skip-delete: true
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Habiticalib
3
- Version: 0.3.5
3
+ Version: 0.3.6
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
@@ -1,6 +1,6 @@
1
1
  """Constants for Habiticalib."""
2
2
 
3
- __version__ = "0.3.5"
3
+ __version__ = "0.3.6"
4
4
 
5
5
  DEFAULT_URL = "https://habitica.com/"
6
6
  ASSETS_URL = "https://habitica-assets.s3.amazonaws.com/mobileApp/images/"
@@ -703,17 +703,48 @@ class PushDevicesUser:
703
703
  updatedAt: datetime
704
704
 
705
705
 
706
+ class WebhooksType(StrEnum):
707
+ """Webhook types."""
708
+
709
+ TASK_ACTIVITY = "taskActivity"
710
+ USER_ACTIVITY = "userActivity"
711
+ QUEST_ACTIVITY = "questActivity"
712
+ GROUP_CHAT_RECEIVED = "groupChatReceived"
713
+
714
+
715
+ @dataclass(kw_only=True)
716
+ class WebhooksOptions:
717
+ """Webhooks options data."""
718
+
719
+ created: bool | None = None
720
+ updated: bool | None = None
721
+ deleted: bool | None = None
722
+ scored: bool | None = None
723
+ questStarted: bool | None = None
724
+ questFinished: bool | None = None
725
+ questInvited: bool | None = None
726
+ petHatched: bool | None = None
727
+ mountRaised: bool | None = None
728
+ leveledUp: bool | None = None
729
+ groupId: UUID | None = None
730
+
731
+
706
732
  @dataclass(kw_only=True)
707
733
  class WebhooksUser:
708
734
  """Webhooks user data."""
709
735
 
710
- id: UUID
711
- Type: str = field(metadata=field_options(alias="type"))
712
- label: str
713
- url: str
714
- enabled: bool
715
- failures: int
716
- lastFailureAt: datetime | None
736
+ id: UUID | None = None
737
+ Type: WebhooksType = field(
738
+ metadata=field_options(alias="type"), default=WebhooksType.TASK_ACTIVITY
739
+ )
740
+ url: str | None = None
741
+ enabled: bool = True
742
+ failures: int = 0
743
+ label: str = ""
744
+ options = WebhooksOptions
745
+ lastFailureAt: datetime | None = None
746
+ createdAt: datetime | None = None
747
+ updatedAt: datetime | None = None
717
748
 
718
749
 
719
750
  @dataclass(kw_only=True)
@@ -1,6 +1,6 @@
1
1
  # serializer version: 1
2
2
  # name: test_get_user
3
- HabiticaUserResponse(data=UserData(id=UUID('c18e1853-bded-47a9-82e2-adfdad08894d'), preferences=PreferencesUser(hair=HairPreferences(color='red', base=3, bangs=1, beard=0, mustache=0, flower=1), emailNotifications=EmailNotificationsPreferences(unsubscribeFromAll=False, newPM=True, kickedGroup=True, wonChallenge=True, giftedGems=True, giftedSubscription=True, invitedParty=True, invitedGuild=True, questStarted=True, invitedQuest=True, importantAnnouncements=True, weeklyRecaps=True, onboarding=True, majorUpdates=True, subscriptionReminders=True, contentRelease=True), pushNotifications=PushNotificationsPreferences(unsubscribeFromAll=False, newPM=True, wonChallenge=True, giftedGems=True, giftedSubscription=True, invitedParty=True, invitedGuild=True, questStarted=True, invitedQuest=True, majorUpdates=True, mentionParty=True, mentionJoinedGuild=True, mentionUnjoinedGuild=True, partyActivity=True, contentRelease=True), suppressModals=SuppressModalsPreferences(levelUp=False, hatchPet=False, raisePet=False, streak=False), tasks=TasksPreferences(activeFilter=ActiveFilterTask(habit='all', daily='all', todo='remaining', reward='all'), groupByChallenge=False, confirmScoreNotes=False, mirrorGroupTasks=[]), dayStart=0, size='slim', hideHeader=False, skin='915533', shirt='blue', timezoneOffset=-120, sound='rosstavoTheme', chair='none', allocationMode='flat', autoEquip=True, costume=False, dateFormat='MM/dd/yyyy', sleep=False, stickyHeader=True, disableClasses=False, newTaskEdit=False, dailyDueDefaultView=False, advancedCollapsed=False, toolbarCollapsed=False, reverseChatOrder=False, developerMode=False, displayInviteToPartyWhenPartyIs1=True, background='violet', automaticAllocation=None, webhooks={}, improvementCategories=[], timezoneOffsetAtLastCron=None, language=<Language.DE: 'de'>), flags=FlagsUser(customizationsNotification=False, tour=TourFlags(intro=-1, classes=-1, stats=-1, tavern=-1, party=-1, guilds=-1, challenges=-1, market=-1, pets=-1, mounts=-1, hall=-1, equipment=-1, groupPlans=-1), showTour=True, tutorial=TutorialFlags(common=CommonTutorial(habits=True, dailies=True, todos=True, rewards=True, party=True, pets=True, gems=True, skills=True, classes=True, tavern=True, equipment=True, items=True, mounts=True, inbox=True, stats=True), ios=IosTutorial(addTask=False, editTask=False, deleteTask=False, filterTask=False, groupPets=False, inviteParty=False, reorderTask=False)), dropsEnabled=False, itemsEnabled=False, lastNewStuffRead='', rewrite=True, classSelected=False, rebirthEnabled=False, levelDrops={}, recaptureEmailsPhase=0, weeklyRecapEmailsPhase=0, lastWeeklyRecap=datetime.datetime(2024, 10, 19, 18, 43, 39, 782000, tzinfo=datetime.timezone.utc), communityGuidelinesAccepted=False, cronCount=0, welcomed=True, armoireEnabled=True, armoireOpened=False, armoireEmpty=False, cardReceived=False, warnedLowHealth=False, verifiedUsername=True, newStuff=False, thirdPartyTools=None, mathUpdates=None, lastFreeRebirth=None, chatRevoked=None, chatShadowMuted=None, lastWeeklyRecapDiscriminator=None, onboardingEmailsPhase=None), auth=AuthUser(local=LocalAuth(email='test@example.com', username='test', lowerCaseUsername='test', has_password=True), timestamps=LocalTimestamps(created=datetime.datetime(2024, 10, 19, 18, 43, 39, 782000, tzinfo=datetime.timezone.utc), loggedin=datetime.datetime(2024, 10, 19, 18, 43, 39, 782000, tzinfo=datetime.timezone.utc), updated=datetime.datetime(2024, 10, 19, 18, 44, 51, 37000, tzinfo=datetime.timezone.utc)), facebook={}, google={}, apple={}), achievements=AchievementsUser(ultimateGearSets=UltimateGearSetsAchievments(healer=False, wizard=False, rogue=False, warrior=False), streak=0, challenges=[], perfect=0, quests=QuestsAchievments(bewilder=None, burnout=None, stressbeast=None, harpy=None, atom3=None, vice3=None, vice1=None, gryphon=None, evilsanta2=None, evilsanta=None, dilatory_derby=None, dilatory=None, atom2=None, atom1=None, dysheartener=None), backToBasics=None, dustDevil=None, primedForPainting=None, completedTask=None, createdTask=None, fedPet=None, hatchedPet=None, purchasedEquipment=None, tickledPink=None, goodAsGold=None, boneCollector=None, seeingRed=None, violetsAreBlue=None, shadyCustomer=None, joinedGuild=None, joinedChallenge=None, partyUp=None), backer=BackerUser(tier=None, npc=None, tokensApplied=None), contributor=ContributorUser(contributions=None, level=None, text=None), permissions=PermissionsUser(fullAccess=None, news=None, userSupport=None, challengeAdmin=None, moderator=None, coupons=None), purchased=PurchasedUser(plan=PlanPurchased(consecutive=ConsecutivePlan(trinkets=0, gemCapExtra=0, offset=0, count=0), mysteryItems=[], gemsBought=0, extraMonths=0, dateUpdated=None, perkMonthCount=-1, quantity=1), txnCount=0, background={'violet': True}, shirt={}, hair={}, skin={}, ads=False, mobileChat=None), history=HistoryUser(todos=[], exp=[]), items=ItemsUser(gear=GearItems(equipped=EquippedGear(weapon='weapon_special_fall2024Warrior', armor='armor_special_fall2024Warrior', head='head_special_fall2024Warrior', shield='shield_special_fall2024Warrior', back='back_mystery_201402', headAccessory='headAccessory_special_pinkHeadband', eyewear='eyewear_special_pinkHalfMoon', body='body_mystery_202003'), costume=EquippedGear(weapon=None, armor='armor_base_0', head='head_base_0', shield='shield_base_0', back=None, headAccessory=None, eyewear=None, body=None), owned={'headAccessory_special_blackHeadband': True, 'headAccessory_special_blueHeadband': True, 'headAccessory_special_greenHeadband': True, 'headAccessory_special_pinkHeadband': True, 'headAccessory_special_redHeadband': True, 'headAccessory_special_whiteHeadband': True, 'headAccessory_special_yellowHeadband': True, 'eyewear_special_blackTopFrame': True, 'eyewear_special_blueTopFrame': True, 'eyewear_special_greenTopFrame': True, 'eyewear_special_pinkTopFrame': True, 'eyewear_special_redTopFrame': True, 'eyewear_special_whiteTopFrame': True, 'eyewear_special_yellowTopFrame': True, 'eyewear_special_blackHalfMoon': True, 'eyewear_special_blueHalfMoon': True, 'eyewear_special_greenHalfMoon': True, 'eyewear_special_pinkHalfMoon': True, 'eyewear_special_redHalfMoon': True, 'eyewear_special_whiteHalfMoon': True, 'eyewear_special_yellowHalfMoon': True}), special=SpecialItems(birthdayReceived=[], birthday=0, thankyouReceived=[], thankyou=0, greetingReceived=[], greeting=0, nyeReceived=[], nye=0, valentineReceived=[], valentine=0, seafoam=0, shinySeed=0, spookySparkles=0, snowball=0, congrats=0, congratsReceived=[], getwell=0, getwellReceived=[], goodluck=0, goodluckReceived=[]), lastDrop=LastDropItems(count=0, date=datetime.datetime(2024, 10, 19, 18, 43, 39, 784000, tzinfo=datetime.timezone.utc)), currentMount='Velociraptor-Base', currentPet='Rat-Shade', quests={'dustbunnies': 1}, mounts={}, food={}, hatchingPotions={}, eggs={}, pets={}), invitations=InvitationsUser(party={}, guilds=[], parties=[]), party=PartyUser(quest=QuestParty(progress=ProgressQuest(up=0.0, down=0.0, collect={}, collectedItems=0), RSVPNeeded=False, key=None, completed=None), order='level', orderAscending='ascending', _id=None), profile=ProfileUser(blurb=None, imageUrl=None, name='test'), stats=StatsUser(buffs=BuffsStats(Str=0, per=0, con=0, stealth=0, streaks=False, seafoam=False, shinySeed=False, snowball=False, spookySparkles=False, Int=0), training=TrainingStats(Str=0.0, per=0, con=0, Int=0), hp=50.0, mp=10.0, exp=0, gp=0.0, lvl=1, Class=<HabiticaClass.WARRIOR: 'warrior'>, points=0, Str=0, con=0, per=0, toNextLevel=25, maxHealth=50, maxMP=30, Int=0), notifications=[], tags=[TagsUser(id=UUID('5358c71f-fe0f-4583-84a3-109b70c699fd'), name='Arbeit', challenge=None, group=None), TagsUser(id=UUID('45870b8b-3e1e-4e13-a722-6afcacdf689f'), name='Training', challenge=None, group=None), TagsUser(id=UUID('3e49b9db-0cc5-4070-b860-e16f1e4806a4'), name='Gesundheit + Wohlbefinden', challenge=None, group=None), TagsUser(id=UUID('0d85319e-7b9c-43e2-81ed-2a706521d5e3'), name='Schule', challenge=None, group=None), TagsUser(id=UUID('b7cf86bf-97ac-42d3-b5d0-5ffe998b62b4'), name='Teams', challenge=None, group=None), TagsUser(id=UUID('c584d792-0a9b-4646-a6ca-a67bb6ef3c36'), name='Hausarbeiten', challenge=None, group=None), TagsUser(id=UUID('0602fd13-edf2-46a7-99c0-c5084046efbb'), name='Kreativität', challenge=None, group=None)], inbox=InboxUser(newMessages=0, optOut=False, blocks=[], messages={}), tasksOrder=TasksOrderUser(habits=[UUID('21b10675-e238-4462-be11-1a4f8012fc9c'), UUID('69909140-a920-4b83-b018-b9156760aca3'), UUID('7e0679cf-e9cd-4604-b429-d061ea16ce72'), UUID('270df162-d47d-488b-9c1d-4fc4f0e2b2d2'), UUID('80ad00b5-622e-4d1a-af4d-6a6c199f3571'), UUID('0712669d-8374-4211-84ea-715cbcbae9c1'), UUID('56dee98d-038a-43f3-a514-59b1ed9a52ee'), UUID('25df4765-754c-47b1-a011-83b31f70c4fb')], dailys=[UUID('e22e9ef0-15be-478a-81c7-f9fdbb4fac10'), UUID('2a74baa2-3acd-426c-bce4-6b4bb145a8d5'), UUID('e18d0899-7c59-41c0-affd-318b8850c3e5'), UUID('3d0cecac-73c1-462b-ab39-a39cea107e6b'), UUID('1ed21cd0-e6f5-4707-b1b4-fb376d462387'), UUID('9117ad5e-2cda-43e0-a07c-0b175d32c0eb')], todos=[UUID('ac13c62c-9375-4809-a357-0e42b01a1b43'), UUID('2388ccad-0387-4ea6-9968-2d10d994e903'), UUID('5c6efb91-6ae3-4cad-8b19-2dd2fc52a965'), UUID('80afe0b9-e367-4473-8117-b8bc7115f54a'), UUID('4cc21c36-886c-4a43-b580-877e958a37fd'), UUID('10a45996-7133-4ca1-84d8-abf1093d9dcc'), UUID('fb867459-ae50-4cee-9017-c13206c6dfa2')], rewards=[UUID('4b18ccf6-3934-43a5-a153-31af8b2a36d9')]), extra={}, pushDevices=[], webhooks=[], loginIncentives=0, invitesSent=0, pinnedItems=[PinnedItemsUser(path='gear.flat.weapon_warrior_0', Type='marketGear'), PinnedItemsUser(path='gear.flat.armor_warrior_1', Type='marketGear'), PinnedItemsUser(path='gear.flat.shield_warrior_1', Type='marketGear'), PinnedItemsUser(path='gear.flat.head_warrior_1', Type='marketGear'), PinnedItemsUser(path='potion', Type='potion'), PinnedItemsUser(path='armoire', Type='armoire')], pinnedItemsOrder=[], unpinnedItems=[], secret=None, balance=0.0, lastCron=datetime.datetime(2024, 10, 19, 18, 43, 39, 784000, tzinfo=datetime.timezone.utc), needsCron=False, challenges=[], guilds=[], newMessages={}), success=True, notifications=[], userV=5, appVersion='5.28.8')
3
+ HabiticaUserResponse(data=UserData(id=UUID('c18e1853-bded-47a9-82e2-adfdad08894d'), preferences=PreferencesUser(hair=HairPreferences(color='red', base=3, bangs=1, beard=0, mustache=0, flower=1), emailNotifications=EmailNotificationsPreferences(unsubscribeFromAll=False, newPM=True, kickedGroup=True, wonChallenge=True, giftedGems=True, giftedSubscription=True, invitedParty=True, invitedGuild=True, questStarted=True, invitedQuest=True, importantAnnouncements=True, weeklyRecaps=True, onboarding=True, majorUpdates=True, subscriptionReminders=True, contentRelease=True), pushNotifications=PushNotificationsPreferences(unsubscribeFromAll=False, newPM=True, wonChallenge=True, giftedGems=True, giftedSubscription=True, invitedParty=True, invitedGuild=True, questStarted=True, invitedQuest=True, majorUpdates=True, mentionParty=True, mentionJoinedGuild=True, mentionUnjoinedGuild=True, partyActivity=True, contentRelease=True), suppressModals=SuppressModalsPreferences(levelUp=False, hatchPet=False, raisePet=False, streak=False), tasks=TasksPreferences(activeFilter=ActiveFilterTask(habit='all', daily='all', todo='remaining', reward='all'), groupByChallenge=False, confirmScoreNotes=False, mirrorGroupTasks=[]), dayStart=0, size='slim', hideHeader=False, skin='915533', shirt='blue', timezoneOffset=-120, sound='rosstavoTheme', chair='none', allocationMode='flat', autoEquip=True, costume=False, dateFormat='MM/dd/yyyy', sleep=False, stickyHeader=True, disableClasses=False, newTaskEdit=False, dailyDueDefaultView=False, advancedCollapsed=False, toolbarCollapsed=False, reverseChatOrder=False, developerMode=False, displayInviteToPartyWhenPartyIs1=True, background='violet', automaticAllocation=None, webhooks={}, improvementCategories=[], timezoneOffsetAtLastCron=None, language=<Language.DE: 'de'>), flags=FlagsUser(customizationsNotification=False, tour=TourFlags(intro=-1, classes=-1, stats=-1, tavern=-1, party=-1, guilds=-1, challenges=-1, market=-1, pets=-1, mounts=-1, hall=-1, equipment=-1, groupPlans=-1), showTour=True, tutorial=TutorialFlags(common=CommonTutorial(habits=True, dailies=True, todos=True, rewards=True, party=True, pets=True, gems=True, skills=True, classes=True, tavern=True, equipment=True, items=True, mounts=True, inbox=True, stats=True), ios=IosTutorial(addTask=False, editTask=False, deleteTask=False, filterTask=False, groupPets=False, inviteParty=False, reorderTask=False)), dropsEnabled=False, itemsEnabled=False, lastNewStuffRead='', rewrite=True, classSelected=False, rebirthEnabled=False, levelDrops={}, recaptureEmailsPhase=0, weeklyRecapEmailsPhase=0, lastWeeklyRecap=datetime.datetime(2024, 10, 19, 18, 43, 39, 782000, tzinfo=datetime.timezone.utc), communityGuidelinesAccepted=False, cronCount=0, welcomed=True, armoireEnabled=True, armoireOpened=False, armoireEmpty=False, cardReceived=False, warnedLowHealth=False, verifiedUsername=True, newStuff=False, thirdPartyTools=None, mathUpdates=None, lastFreeRebirth=None, chatRevoked=None, chatShadowMuted=None, lastWeeklyRecapDiscriminator=None, onboardingEmailsPhase=None), auth=AuthUser(local=LocalAuth(email='test@example.com', username='test', lowerCaseUsername='test', has_password=True), timestamps=LocalTimestamps(created=datetime.datetime(2024, 10, 19, 18, 43, 39, 782000, tzinfo=datetime.timezone.utc), loggedin=datetime.datetime(2024, 10, 19, 18, 43, 39, 782000, tzinfo=datetime.timezone.utc), updated=datetime.datetime(2024, 10, 19, 18, 44, 51, 37000, tzinfo=datetime.timezone.utc)), facebook={}, google={}, apple={}), achievements=AchievementsUser(ultimateGearSets=UltimateGearSetsAchievments(healer=False, wizard=False, rogue=False, warrior=False), streak=0, challenges=[], perfect=0, quests=QuestsAchievments(bewilder=None, burnout=None, stressbeast=None, harpy=None, atom3=None, vice3=None, vice1=None, gryphon=None, evilsanta2=None, evilsanta=None, dilatory_derby=None, dilatory=None, atom2=None, atom1=None, dysheartener=None), backToBasics=None, dustDevil=None, primedForPainting=None, completedTask=None, createdTask=None, fedPet=None, hatchedPet=None, purchasedEquipment=None, tickledPink=None, goodAsGold=None, boneCollector=None, seeingRed=None, violetsAreBlue=None, shadyCustomer=None, joinedGuild=None, joinedChallenge=None, partyUp=None), backer=BackerUser(tier=None, npc=None, tokensApplied=None), contributor=ContributorUser(contributions=None, level=None, text=None), permissions=PermissionsUser(fullAccess=None, news=None, userSupport=None, challengeAdmin=None, moderator=None, coupons=None), purchased=PurchasedUser(plan=PlanPurchased(consecutive=ConsecutivePlan(trinkets=0, gemCapExtra=0, offset=0, count=0), mysteryItems=[], gemsBought=0, extraMonths=0, dateUpdated=None, perkMonthCount=-1, quantity=1), txnCount=0, background={'violet': True}, shirt={}, hair={}, skin={}, ads=False, mobileChat=None), history=HistoryUser(todos=[], exp=[]), items=ItemsUser(gear=GearItems(equipped=EquippedGear(weapon='weapon_special_fall2024Warrior', armor='armor_special_fall2024Warrior', head='head_special_fall2024Warrior', shield='shield_special_fall2024Warrior', back='back_mystery_201402', headAccessory='headAccessory_special_pinkHeadband', eyewear='eyewear_special_pinkHalfMoon', body='body_mystery_202003'), costume=EquippedGear(weapon=None, armor='armor_base_0', head='head_base_0', shield='shield_base_0', back=None, headAccessory=None, eyewear=None, body=None), owned={'headAccessory_special_blackHeadband': True, 'headAccessory_special_blueHeadband': True, 'headAccessory_special_greenHeadband': True, 'headAccessory_special_pinkHeadband': True, 'headAccessory_special_redHeadband': True, 'headAccessory_special_whiteHeadband': True, 'headAccessory_special_yellowHeadband': True, 'eyewear_special_blackTopFrame': True, 'eyewear_special_blueTopFrame': True, 'eyewear_special_greenTopFrame': True, 'eyewear_special_pinkTopFrame': True, 'eyewear_special_redTopFrame': True, 'eyewear_special_whiteTopFrame': True, 'eyewear_special_yellowTopFrame': True, 'eyewear_special_blackHalfMoon': True, 'eyewear_special_blueHalfMoon': True, 'eyewear_special_greenHalfMoon': True, 'eyewear_special_pinkHalfMoon': True, 'eyewear_special_redHalfMoon': True, 'eyewear_special_whiteHalfMoon': True, 'eyewear_special_yellowHalfMoon': True}), special=SpecialItems(birthdayReceived=[], birthday=0, thankyouReceived=[], thankyou=0, greetingReceived=[], greeting=0, nyeReceived=[], nye=0, valentineReceived=[], valentine=0, seafoam=0, shinySeed=0, spookySparkles=0, snowball=0, congrats=0, congratsReceived=[], getwell=0, getwellReceived=[], goodluck=0, goodluckReceived=[]), lastDrop=LastDropItems(count=0, date=datetime.datetime(2024, 10, 19, 18, 43, 39, 784000, tzinfo=datetime.timezone.utc)), currentMount='Velociraptor-Base', currentPet='Rat-Shade', quests={'dustbunnies': 1}, mounts={}, food={}, hatchingPotions={}, eggs={}, pets={}), invitations=InvitationsUser(party={}, guilds=[], parties=[]), party=PartyUser(quest=QuestParty(progress=ProgressQuest(up=0.0, down=0.0, collect={}, collectedItems=0), RSVPNeeded=False, key=None, completed=None), order='level', orderAscending='ascending', _id=None), profile=ProfileUser(blurb=None, imageUrl=None, name='test'), stats=StatsUser(buffs=BuffsStats(Str=0, per=0, con=0, stealth=0, streaks=False, seafoam=False, shinySeed=False, snowball=False, spookySparkles=False, Int=0), training=TrainingStats(Str=0.0, per=0, con=0, Int=0), hp=50.0, mp=10.0, exp=0, gp=0.0, lvl=1, Class=<HabiticaClass.WARRIOR: 'warrior'>, points=0, Str=0, con=0, per=0, toNextLevel=25, maxHealth=50, maxMP=30, Int=0), notifications=[], tags=[TagsUser(id=UUID('5358c71f-fe0f-4583-84a3-109b70c699fd'), name='Arbeit', challenge=None, group=None), TagsUser(id=UUID('45870b8b-3e1e-4e13-a722-6afcacdf689f'), name='Training', challenge=None, group=None), TagsUser(id=UUID('3e49b9db-0cc5-4070-b860-e16f1e4806a4'), name='Gesundheit + Wohlbefinden', challenge=None, group=None), TagsUser(id=UUID('0d85319e-7b9c-43e2-81ed-2a706521d5e3'), name='Schule', challenge=None, group=None), TagsUser(id=UUID('b7cf86bf-97ac-42d3-b5d0-5ffe998b62b4'), name='Teams', challenge=None, group=None), TagsUser(id=UUID('c584d792-0a9b-4646-a6ca-a67bb6ef3c36'), name='Hausarbeiten', challenge=None, group=None), TagsUser(id=UUID('0602fd13-edf2-46a7-99c0-c5084046efbb'), name='Kreativität', challenge=None, group=None)], inbox=InboxUser(newMessages=0, optOut=False, blocks=[], messages={}), tasksOrder=TasksOrderUser(habits=[UUID('21b10675-e238-4462-be11-1a4f8012fc9c'), UUID('69909140-a920-4b83-b018-b9156760aca3'), UUID('7e0679cf-e9cd-4604-b429-d061ea16ce72'), UUID('270df162-d47d-488b-9c1d-4fc4f0e2b2d2'), UUID('80ad00b5-622e-4d1a-af4d-6a6c199f3571'), UUID('0712669d-8374-4211-84ea-715cbcbae9c1'), UUID('56dee98d-038a-43f3-a514-59b1ed9a52ee'), UUID('25df4765-754c-47b1-a011-83b31f70c4fb')], dailys=[UUID('e22e9ef0-15be-478a-81c7-f9fdbb4fac10'), UUID('2a74baa2-3acd-426c-bce4-6b4bb145a8d5'), UUID('e18d0899-7c59-41c0-affd-318b8850c3e5'), UUID('3d0cecac-73c1-462b-ab39-a39cea107e6b'), UUID('1ed21cd0-e6f5-4707-b1b4-fb376d462387'), UUID('9117ad5e-2cda-43e0-a07c-0b175d32c0eb')], todos=[UUID('ac13c62c-9375-4809-a357-0e42b01a1b43'), UUID('2388ccad-0387-4ea6-9968-2d10d994e903'), UUID('5c6efb91-6ae3-4cad-8b19-2dd2fc52a965'), UUID('80afe0b9-e367-4473-8117-b8bc7115f54a'), UUID('4cc21c36-886c-4a43-b580-877e958a37fd'), UUID('10a45996-7133-4ca1-84d8-abf1093d9dcc'), UUID('fb867459-ae50-4cee-9017-c13206c6dfa2')], rewards=[UUID('4b18ccf6-3934-43a5-a153-31af8b2a36d9')]), extra={}, pushDevices=[], webhooks=[WebhooksUser(id=UUID('43a67e37-1bae-4b11-8d3d-6c4b1b480231'), Type=<WebhooksType.TASK_ACTIVITY: 'taskActivity'>, url='https://some-webhook-url.com', enabled=True, failures=0, label='My Webhook', lastFailureAt=None, createdAt=datetime.datetime(2025, 2, 8, 22, 6, 8, 894000, tzinfo=datetime.timezone.utc), updatedAt=datetime.datetime(2025, 2, 8, 22, 6, 17, 195000, tzinfo=datetime.timezone.utc)), WebhooksUser(id=None, Type=<WebhooksType.GROUP_CHAT_RECEIVED: 'groupChatReceived'>, url='https://some-webhook-url.com', enabled=True, failures=0, label='My Chat Webhook', lastFailureAt=None, createdAt=None, updatedAt=None), WebhooksUser(id=None, Type=<WebhooksType.USER_ACTIVITY: 'userActivity'>, url='https://some-webhook-url.com', enabled=True, failures=0, label='My Activity Webhook', lastFailureAt=None, createdAt=None, updatedAt=None)], loginIncentives=0, invitesSent=0, pinnedItems=[PinnedItemsUser(path='gear.flat.weapon_warrior_0', Type='marketGear'), PinnedItemsUser(path='gear.flat.armor_warrior_1', Type='marketGear'), PinnedItemsUser(path='gear.flat.shield_warrior_1', Type='marketGear'), PinnedItemsUser(path='gear.flat.head_warrior_1', Type='marketGear'), PinnedItemsUser(path='potion', Type='potion'), PinnedItemsUser(path='armoire', Type='armoire')], pinnedItemsOrder=[], unpinnedItems=[], secret=None, balance=0.0, lastCron=datetime.datetime(2024, 10, 19, 18, 43, 39, 784000, tzinfo=datetime.timezone.utc), needsCron=False, challenges=[], guilds=[], newMessages={}), success=True, notifications=[], userV=5, appVersion='5.28.8')
4
4
  # ---
5
5
  # name: test_get_user_anonymized
6
6
  HabiticaUserAnonymizedResponse(data=UserAnonymizedData(user=UserData(id=None, preferences=PreferencesUser(hair=HairPreferences(color=None, base=None, bangs=None, beard=None, mustache=None, flower=None), emailNotifications=EmailNotificationsPreferences(unsubscribeFromAll=None, newPM=None, kickedGroup=None, wonChallenge=None, giftedGems=None, giftedSubscription=None, invitedParty=None, invitedGuild=None, questStarted=None, invitedQuest=None, importantAnnouncements=None, weeklyRecaps=None, onboarding=None, majorUpdates=None, subscriptionReminders=None, contentRelease=None), pushNotifications=PushNotificationsPreferences(unsubscribeFromAll=None, newPM=None, wonChallenge=None, giftedGems=None, giftedSubscription=None, invitedParty=None, invitedGuild=None, questStarted=None, invitedQuest=None, majorUpdates=None, mentionParty=None, mentionJoinedGuild=None, mentionUnjoinedGuild=None, partyActivity=None, contentRelease=None), suppressModals=SuppressModalsPreferences(levelUp=None, hatchPet=None, raisePet=None, streak=None), tasks=TasksPreferences(activeFilter=ActiveFilterTask(habit=None, daily=None, todo=None, reward=None), groupByChallenge=None, confirmScoreNotes=None, mirrorGroupTasks=[]), dayStart=None, size=None, hideHeader=None, skin=None, shirt=None, timezoneOffset=None, sound=None, chair=None, allocationMode=None, autoEquip=None, costume=None, dateFormat=None, sleep=None, stickyHeader=None, disableClasses=None, newTaskEdit=None, dailyDueDefaultView=None, advancedCollapsed=None, toolbarCollapsed=None, reverseChatOrder=None, developerMode=None, displayInviteToPartyWhenPartyIs1=None, background=None, automaticAllocation=None, webhooks={}, improvementCategories=[], timezoneOffsetAtLastCron=None, language=None), flags=FlagsUser(customizationsNotification=None, tour=TourFlags(intro=None, classes=None, stats=None, tavern=None, party=None, guilds=None, challenges=None, market=None, pets=None, mounts=None, hall=None, equipment=None, groupPlans=None), showTour=None, tutorial=TutorialFlags(common=None, ios=None), dropsEnabled=None, itemsEnabled=None, lastNewStuffRead=None, rewrite=None, classSelected=None, rebirthEnabled=None, levelDrops={}, recaptureEmailsPhase=None, weeklyRecapEmailsPhase=None, lastWeeklyRecap=None, communityGuidelinesAccepted=None, cronCount=None, welcomed=None, armoireEnabled=None, armoireOpened=None, armoireEmpty=None, cardReceived=None, warnedLowHealth=None, verifiedUsername=None, newStuff=None, thirdPartyTools=None, mathUpdates=None, lastFreeRebirth=None, chatRevoked=None, chatShadowMuted=None, lastWeeklyRecapDiscriminator=None, onboardingEmailsPhase=None), auth=AuthUser(local=LocalAuth(email=None, username=None, lowerCaseUsername=None, has_password=None), timestamps=LocalTimestamps(created=None, loggedin=None, updated=None), facebook=None, google=None, apple=None), achievements=AchievementsUser(ultimateGearSets=UltimateGearSetsAchievments(healer=None, wizard=None, rogue=None, warrior=None), streak=None, challenges=[], perfect=None, quests=QuestsAchievments(bewilder=None, burnout=None, stressbeast=None, harpy=None, atom3=None, vice3=None, vice1=None, gryphon=None, evilsanta2=None, evilsanta=None, dilatory_derby=None, dilatory=None, atom2=None, atom1=None, dysheartener=None), backToBasics=None, dustDevil=None, primedForPainting=None, completedTask=None, createdTask=None, fedPet=None, hatchedPet=None, purchasedEquipment=None, tickledPink=None, goodAsGold=None, boneCollector=None, seeingRed=None, violetsAreBlue=None, shadyCustomer=None, joinedGuild=None, joinedChallenge=None, partyUp=None), backer=BackerUser(tier=None, npc=None, tokensApplied=None), contributor=ContributorUser(contributions=None, level=None, text=None), permissions=PermissionsUser(fullAccess=None, news=None, userSupport=None, challengeAdmin=None, moderator=None, coupons=None), purchased=PurchasedUser(plan=PlanPurchased(consecutive=ConsecutivePlan(trinkets=None, gemCapExtra=None, offset=None, count=None), mysteryItems=[], gemsBought=None, extraMonths=None, dateUpdated=None, perkMonthCount=None, quantity=None), txnCount=None, background={}, shirt={}, hair={}, skin={}, ads=None, mobileChat=None), history=HistoryUser(todos=[], exp=[]), items=ItemsUser(gear=GearItems(equipped=EquippedGear(weapon=None, armor=None, head=None, shield=None, back=None, headAccessory=None, eyewear=None, body=None), costume=EquippedGear(weapon=None, armor=None, head=None, shield=None, back=None, headAccessory=None, eyewear=None, body=None), owned={}), special=SpecialItems(birthdayReceived=[], birthday=None, thankyouReceived=[], thankyou=None, greetingReceived=[], greeting=None, nyeReceived=[], nye=None, valentineReceived=[], valentine=None, seafoam=None, shinySeed=None, spookySparkles=None, snowball=None, congrats=None, congratsReceived=[], getwell=None, getwellReceived=[], goodluck=None, goodluckReceived=[]), lastDrop=LastDropItems(count=None, date=None), currentMount=None, currentPet=None, quests={}, mounts={}, food={}, hatchingPotions={}, eggs={}, pets={}), invitations=InvitationsUser(party={}, guilds=[], parties=[]), party=PartyUser(quest=QuestParty(progress=ProgressQuest(up=None, down=None, collect={}, collectedItems=None), RSVPNeeded=None, key=None, completed=None), order=None, orderAscending=None, _id=None), profile=ProfileUser(blurb=None, imageUrl=None, name=None), stats=StatsUser(buffs=BuffsStats(Str=None, per=None, con=None, stealth=None, streaks=None, seafoam=None, shinySeed=None, snowball=None, spookySparkles=None, Int=None), training=TrainingStats(Str=None, per=None, con=None, Int=None), hp=None, mp=None, exp=None, gp=None, lvl=None, Class=None, points=None, Str=None, con=None, per=None, toNextLevel=None, maxHealth=None, maxMP=None, Int=None), notifications=[], tags=[], inbox=InboxUser(newMessages=None, optOut=None, blocks=[], messages={}), tasksOrder=TasksOrderUser(habits=[], dailys=[], todos=[], rewards=[]), extra={}, pushDevices=[], webhooks=[], loginIncentives=None, invitesSent=None, pinnedItems=[], pinnedItemsOrder=[], unpinnedItems=[], secret=None, balance=None, lastCron=None, needsCron=None, challenges=[], guilds=[], newMessages={}), tasks=[]))
@@ -428,7 +428,45 @@
428
428
  ],
429
429
  "extra": {},
430
430
  "pushDevices": [],
431
- "webhooks": [],
431
+ "webhooks": [
432
+ {
433
+ "id": "43a67e37-1bae-4b11-8d3d-6c4b1b480231",
434
+ "type": "taskActivity",
435
+ "label": "My Webhook",
436
+ "url": "https://some-webhook-url.com",
437
+ "enabled": true,
438
+ "failures": 0,
439
+ "options": {
440
+ "created": false,
441
+ "updated": false,
442
+ "deleted": false,
443
+ "checklistScored": false,
444
+ "scored": true
445
+ },
446
+ "createdAt": "2025-02-08T22:06:08.894Z",
447
+ "updatedAt": "2025-02-08T22:06:17.195Z"
448
+ },
449
+ {
450
+ "enabled": true,
451
+ "url": "https://some-webhook-url.com",
452
+ "label": "My Chat Webhook",
453
+ "type": "groupChatReceived",
454
+ "options": {
455
+ "groupId": "89ee933e-79e5-43ed-8722-3ca5a58be79f"
456
+ }
457
+ },
458
+ {
459
+ "enabled": true,
460
+ "url": "https://some-webhook-url.com",
461
+ "label": "My Activity Webhook",
462
+ "type": "userActivity",
463
+ "options": {
464
+ "petHatched": false,
465
+ "mountRaised": false,
466
+ "leveledUp": false
467
+ }
468
+ }
469
+ ],
432
470
  "pinnedItems": [
433
471
  {
434
472
  "path": "gear.flat.weapon_warrior_0",
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes