1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
//! Async Rust client for the [Zotero Web API v3](https://www.zotero.org/support/dev/web_api/v3/start).
//!
//! Zotero is a personal research library manager. This crate provides a
//! type-safe async client for reading items, collections, tags, searches,
//! and groups from a Zotero user or group library.
//!
//! # Quick start
//!
//! ```no_run
//! # async fn example() -> papers_zotero::Result<()> {
//! use papers_zotero::{ZoteroClient, ItemListParams};
//!
//! let client = ZoteroClient::new("16916553", "your-api-key");
//!
//! // Search for items about rendering
//! let params = ItemListParams::builder()
//! .q("rendering")
//! .limit(5)
//! .build();
//! let response = client.list_items(¶ms).await?;
//! println!("Found {:?} items", response.total_results);
//! for item in &response.items {
//! println!(" - {}", item.data.title.as_deref().unwrap_or("untitled"));
//! }
//! # Ok(())
//! # }
//! ```
//!
//! # Authentication
//!
//! A Zotero API key is required. Create one at
//! <https://www.zotero.org/settings/keys>. Pass it explicitly or set the
//! `ZOTERO_API_KEY` and `ZOTERO_USER_ID` environment variables:
//!
//! ```no_run
//! use papers_zotero::ZoteroClient;
//!
//! // Explicit credentials
//! let client = ZoteroClient::new("16916553", "your-key");
//!
//! // Or from environment
//! let client = ZoteroClient::from_env().unwrap();
//! ```
//!
//! # Endpoints
//!
//! The client provides 40+ methods covering all Zotero read and write endpoints:
//!
//! **Read:**
//! - **9 item endpoints** — list/get items, top items, trash, children,
//! collection items, publication items, file download, file view, file URL
//! - **4 collection endpoints** — list/get collections, top, subcollections
//! - **10 tag endpoints** — list tags across various scopes (items, collections,
//! trash, publications)
//! - **2 search endpoints** — list/get saved searches
//! - **2 full-text endpoints** — list indexed versions, get item full-text
//! - **1 deleted endpoint** — get deleted object keys since a version
//! - **2 settings endpoints** — get all settings, get single setting
//! - **1 group endpoint** — list user groups
//! - **2 key endpoints** — get API key info by value or by current request
//!
//! **Write:**
//! - **5 item write endpoints** — create, update (PUT), patch (PATCH),
//! delete single, delete multiple
//! - **4 collection write endpoints** — create, update, delete single,
//! delete multiple
//! - **2 search write endpoints** — create, delete multiple
//! - **1 tag write endpoint** — delete multiple tags
pub use DiskCache;
pub use ZoteroClient;
pub use ;
pub use ;
pub use ;
pub use *;