Use CARDDAV_URL as address book URL
All checks were successful
Build And Test / publish (push) Successful in 49s
All checks were successful
Build And Test / publish (push) Successful in 49s
This commit is contained in:
@@ -51,10 +51,9 @@ CALDAV_PASSWORD=your-caldav-password
|
|||||||
# - Nextcloud: https://cloud.example.com/remote.php/dav
|
# - Nextcloud: https://cloud.example.com/remote.php/dav
|
||||||
# - Fastmail: https://carddav.fastmail.com/dav/addressbooks/user/you@fastmail.com
|
# - Fastmail: https://carddav.fastmail.com/dav/addressbooks/user/you@fastmail.com
|
||||||
# - Radicale: https://radicale.example.com/user/
|
# - Radicale: https://radicale.example.com/user/
|
||||||
CARDDAV_URL=https://carddav.example.com/dav
|
CARDDAV_URL=https://carddav.example.com/dav/addressbooks/users/user@example.com/contacts/
|
||||||
CARDDAV_USERNAME=user@example.com
|
CARDDAV_USERNAME=user@example.com
|
||||||
CARDDAV_PASSWORD=your-carddav-password
|
CARDDAV_PASSWORD=your-carddav-password
|
||||||
CONTACTS_ADDRESSBOOK_URL=https://carddav.example.com/dav/addressbooks/users/user@example.com/contacts/
|
|
||||||
|
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
# Cache Configuration
|
# Cache Configuration
|
||||||
|
|||||||
@@ -91,13 +91,12 @@ ICS_CALENDAR_TIMEOUT=20
|
|||||||
ICS_CALENDARS=Team|https://example.com/team.ics,Family|https://example.com/family.ics
|
ICS_CALENDARS=Team|https://example.com/team.ics,Family|https://example.com/family.ics
|
||||||
ICS_CALENDAR_TIMEOUT=20
|
ICS_CALENDAR_TIMEOUT=20
|
||||||
|
|
||||||
CARDDAV_URL=https://carddav.example.com/dav
|
CARDDAV_URL=https://carddav.example.com/dav/addressbooks/users/you@example.com/contacts/
|
||||||
CARDDAV_USERNAME=you@example.com
|
CARDDAV_USERNAME=you@example.com
|
||||||
CARDDAV_PASSWORD=your-password
|
CARDDAV_PASSWORD=your-password
|
||||||
CONTACTS_ADDRESSBOOK_URL=https://carddav.example.com/dav/addressbooks/users/you@example.com/contacts/
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Contacts tools always use `CONTACTS_ADDRESSBOOK_URL` (full CardDAV address book URL). Listing address books is not exposed via MCP.
|
Contacts tools always use `CARDDAV_URL` as the full CardDAV address book URL. Listing address books is not exposed via MCP.
|
||||||
|
|
||||||
ICS calendars are optional and read-only. Set `ICS_CALENDARS` to a comma-separated list of entries, each as `name|url` or just `url` if you want the name inferred.
|
ICS calendars are optional and read-only. Set `ICS_CALENDARS` to a comma-separated list of entries, each as `name|url` or just `url` if you want the name inferred.
|
||||||
|
|
||||||
|
|||||||
@@ -40,10 +40,6 @@ class Settings(BaseSettings):
|
|||||||
carddav_url: Optional[str] = Field(default=None, alias="CARDDAV_URL")
|
carddav_url: Optional[str] = Field(default=None, alias="CARDDAV_URL")
|
||||||
carddav_username: Optional[str] = Field(default=None, alias="CARDDAV_USERNAME")
|
carddav_username: Optional[str] = Field(default=None, alias="CARDDAV_USERNAME")
|
||||||
carddav_password: Optional[SecretStr] = Field(default=None, alias="CARDDAV_PASSWORD")
|
carddav_password: Optional[SecretStr] = Field(default=None, alias="CARDDAV_PASSWORD")
|
||||||
contacts_addressbook_url: Optional[str] = Field(
|
|
||||||
default=None,
|
|
||||||
alias="CONTACTS_ADDRESSBOOK_URL",
|
|
||||||
)
|
|
||||||
|
|
||||||
# SQLite Cache
|
# SQLite Cache
|
||||||
sqlite_path: str = Field(default="/data/cache.db", alias="SQLITE_PATH")
|
sqlite_path: str = Field(default="/data/cache.db", alias="SQLITE_PATH")
|
||||||
@@ -154,7 +150,6 @@ class Settings(BaseSettings):
|
|||||||
self.carddav_url,
|
self.carddav_url,
|
||||||
self.carddav_username,
|
self.carddav_username,
|
||||||
self.carddav_password,
|
self.carddav_password,
|
||||||
self.contacts_addressbook_url,
|
|
||||||
])
|
])
|
||||||
|
|
||||||
def is_notification_configured(self) -> bool:
|
def is_notification_configured(self) -> bool:
|
||||||
|
|||||||
@@ -495,6 +495,6 @@ class ContactsService:
|
|||||||
def _resolve_addressbook_id(self, addressbook_id: Optional[str]) -> str:
|
def _resolve_addressbook_id(self, addressbook_id: Optional[str]) -> str:
|
||||||
if addressbook_id:
|
if addressbook_id:
|
||||||
return addressbook_id
|
return addressbook_id
|
||||||
if self.settings.contacts_addressbook_url:
|
if self.settings.carddav_url:
|
||||||
return self.settings.contacts_addressbook_url
|
return self.settings.carddav_url
|
||||||
raise ValueError("CONTACTS_ADDRESSBOOK_URL must be set to use contacts tools")
|
raise ValueError("CARDDAV_URL must be set to use contacts tools")
|
||||||
|
|||||||
Reference in New Issue
Block a user