{"id":37064849,"url":"https://github.com/geertmeersman/aiocloudlibrary","last_synced_at":"2026-01-14T07:35:07.223Z","repository":{"id":212343755,"uuid":"731276938","full_name":"geertmeersman/aiocloudlibrary","owner":"geertmeersman","description":"Asynchronous Python library to communicate with the Cloud Library API","archived":true,"fork":false,"pushed_at":"2025-10-20T14:19:31.000Z","size":210,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-22T01:26:02.300Z","etag":null,"topics":["cloud-library","python","python3"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/geertmeersman.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"geertmeersman","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":["https://www.buymeacoffee.com/geertmeersman"]}},"created_at":"2023-12-13T18:08:15.000Z","updated_at":"2025-10-20T14:19:31.000Z","dependencies_parsed_at":"2024-03-04T13:50:53.640Z","dependency_job_id":"e9256023-8c9d-4d44-90e6-527e9c36ce7a","html_url":"https://github.com/geertmeersman/aiocloudlibrary","commit_stats":null,"previous_names":["geertmeersman/aiocloudlibrary"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/geertmeersman/aiocloudlibrary","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geertmeersman%2Faiocloudlibrary","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geertmeersman%2Faiocloudlibrary/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geertmeersman%2Faiocloudlibrary/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geertmeersman%2Faiocloudlibrary/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/geertmeersman","download_url":"https://codeload.github.com/geertmeersman/aiocloudlibrary/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geertmeersman%2Faiocloudlibrary/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28413428,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T05:26:33.345Z","status":"ssl_error","status_checked_at":"2026-01-14T05:21:57.251Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloud-library","python","python3"],"created_at":"2026-01-14T07:35:06.649Z","updated_at":"2026-01-14T07:35:07.206Z","avatar_url":"https://github.com/geertmeersman.png","language":"Python","funding_links":["https://github.com/sponsors/geertmeersman","https://www.buymeacoffee.com/geertmeersman"],"categories":[],"sub_categories":[],"readme":"# aiocloudlibrary\n\nAsynchronous library to communicate with the Cloud Library API\n\n[![maintainer](https://img.shields.io/badge/maintainer-Geert%20Meersman-green?style=for-the-badge\u0026logo=github)](https://github.com/geertmeersman)\n[![buyme_coffee](https://img.shields.io/badge/Buy%20me%20an%20Omer-donate-yellow?style=for-the-badge\u0026logo=buymeacoffee)](https://www.buymeacoffee.com/geertmeersman)\n[![discord](https://img.shields.io/discord/1094198226493636638?style=for-the-badge\u0026logo=discord)](https://discord.gg/QhvcnzjYzA)\n\n[![MIT License](https://img.shields.io/github/license/geertmeersman/aiocloudlibrary?style=flat-square)](https://github.com/geertmeersman/aiocloudlibrary/blob/master/LICENSE)\n\n[![GitHub issues](https://img.shields.io/github/issues/geertmeersman/aiocloudlibrary)](https://github.com/geertmeersman/aiocloudlibrary/issues)\n[![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/geertmeersman/aiocloudlibrary.svg)](http://isitmaintained.com/project/geertmeersman/aiocloudlibrary)\n[![Percentage of issues still open](http://isitmaintained.com/badge/open/geertmeersman/aiocloudlibrary.svg)](http://isitmaintained.com/project/geertmeersman/aiocloudlibrary)\n[![PRs Welcome](https://img.shields.io/badge/PRs-Welcome-brightgreen.svg)](https://github.com/geertmeersman/aiocloudlibrary/pulls)\n\n[![Python](https://img.shields.io/badge/Python-FFD43B?logo=python)](https://github.com/geertmeersman/aiocloudlibrary/search?l=python)\n\n[![github release](https://img.shields.io/github/v/release/geertmeersman/aiocloudlibrary?logo=github)](https://github.com/geertmeersman/aiocloudlibrary/releases)\n[![github release date](https://img.shields.io/github/release-date/geertmeersman/aiocloudlibrary)](https://github.com/geertmeersman/aiocloudlibrary/releases)\n[![github last-commit](https://img.shields.io/github/last-commit/geertmeersman/aiocloudlibrary)](https://github.com/geertmeersman/aiocloudlibrary/commits)\n[![github contributors](https://img.shields.io/github/contributors/geertmeersman/aiocloudlibrary)](https://github.com/geertmeersman/aiocloudlibrary/graphs/contributors)\n[![github commit activity](https://img.shields.io/github/commit-activity/y/geertmeersman/aiocloudlibrary?logo=github)](https://github.com/geertmeersman/aiocloudlibrary/commits/main)\n\n## Cloud Library API Example Script\n\nThis example script demonstrates how to utilize the `CloudLibraryClient` class from the `aiocloudlibrary` module to interact with the Cloud Library API. It showcases various functionalities available within the client class to retrieve different types of data from the API.\n\n### Usage\n\n1. **Installation:** Ensure the `aiocloudlibrary` module is installed. If not, install it using `pip install aiocloudlibrary`.\n\n2. **Configuration:** Replace the placeholder details (barcode/email, PIN/password, library ID) within the script with actual values.\n\n3. **Functionality Displayed:**\n\n   - `current()`: Fetches the current patron items.\n   - `history()`: Retrieves the patron's borrowing history.\n   - `holds()`: Retrieves the patron's holds.\n   - `saved()`: Retrieves the patron's saved items.\n   - `featured()`: Retrieves the patron's featured items.\n   - `email()`: Retrieves the patron's email settings.\n   - `notifications()`: Retrieves patron notifications (unread or archived).\n\n4. **Execution:** Run the script, and it will sequentially call these functions, displaying the retrieved data for each function.\n\n### Important Notes\n\n- Replace placeholder values (barcode, PIN, library ID) with your actual Cloud Library account details.\n- The `notifications()` function demonstrates both fetching unread notifications and archiving specific notifications.\n- Make sure you have appropriate access rights and permissions for the Cloud Library API endpoints being accessed.\n\nFeel free to modify the script as needed, adding error handling, logging, or additional functionalities based on your requirements and the Cloud Library API's capabilities.\n\n```python\n\"\"\"\nExample Script: Accessing Cloud Library API with aiocloudlibrary\n\nThis script demonstrates fetching current patron items, borrowing history, holds, and saved items\nfrom the Cloud Library API using the aiocloudlibrary library.\n\nMake sure to replace 'xxxxxx@mail.com', 'xxxxxxxx', and 'xxxxx' with actual credentials and library details.\n\nRequirements:\n- aiocloudlibrary library (installed via pip)\n\nUsage:\nRun the script and observe the output displaying various data from the Cloud Library API.\n\"\"\"\n\nfrom aiocloudlibrary import CloudLibraryClient\nimport asyncio\nimport json\n\nasync def main():\n    client = CloudLibraryClient(\n        barcode=\"xxxxxx@mail.com\",  # Replace with actual barcode/email\n        pin=\"xxxxxxxx\",  # Replace with actual PIN/password\n        library=\"xxxxx\"  # Replace with actual library ID\n    )\n\n    try:\n        current = await client.current()\n        print(f\"Current Patron Items: {json.dumps(current, indent=2)}\")\n\n        history = await client.history()\n        print(f\"Patron's Borrowing History: {json.dumps(history, indent=2)}\")\n\n        holds = await client.holds()\n        print(f\"Patron's Holds: {json.dumps(holds, indent=2)}\")\n\n        saved_items = await client.saved()\n        print(f\"Patron's Saved Items: {json.dumps(saved_items, indent=2)}\")\n\n        featured_items = await client.featured()\n        print(f\"Patron's Featured Items: {json.dumps(featured_items, indent=2)}\")\n\n        email_settings = await client.email()\n        print(f\"Patron's Email Settings: {json.dumps(email_settings, indent=2)}\")\n\n        unread_notifications = await client.notifications()\n        print(f\"Unread Notifications: {json.dumps(unread_notifications, indent=2)}\")\n\n        notification_ids = [\"notification_id_1\", \"notification_id_2\"]  # Replace with actual notification IDs\n        archived_notifications = await client.notifications(\n            unread=\"false\", notification_id_to_archive=notification_ids\n        )\n        print(f\"Archived Notifications: {json.dumps(archived_notifications, indent=2)}\")\n\n    finally:\n        await client.close_session()\n\nasyncio.run(main())\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeertmeersman%2Faiocloudlibrary","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeertmeersman%2Faiocloudlibrary","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeertmeersman%2Faiocloudlibrary/lists"}