{"id":19832059,"url":"https://github.com/ail-project/lacuscore","last_synced_at":"2026-04-18T20:08:07.938Z","repository":{"id":63041089,"uuid":"536309922","full_name":"ail-project/LacusCore","owner":"ail-project","description":"The modulable part of Lacus","archived":false,"fork":false,"pushed_at":"2025-04-21T17:49:26.000Z","size":1936,"stargazers_count":7,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-21T18:43:14.998Z","etag":null,"topics":["lacus"],"latest_commit_sha":null,"homepage":"https://lacuscore.readthedocs.io/en/latest/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ail-project.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-09-13T21:10:27.000Z","updated_at":"2025-04-21T17:49:30.000Z","dependencies_parsed_at":"2023-09-27T15:56:54.851Z","dependency_job_id":"c9f0ef41-a182-45a3-b082-c20e3ae5bddd","html_url":"https://github.com/ail-project/LacusCore","commit_stats":{"total_commits":112,"total_committers":4,"mean_commits":28.0,"dds":"0.044642857142857095","last_synced_commit":"317170eb0d36f5a0b353f5208106cef71d7dc23b"},"previous_names":[],"tags_count":157,"template":false,"template_full_name":"Lookyloo/pyproject_template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ail-project%2FLacusCore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ail-project%2FLacusCore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ail-project%2FLacusCore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ail-project%2FLacusCore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ail-project","download_url":"https://codeload.github.com/ail-project/LacusCore/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251907060,"owners_count":21663210,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["lacus"],"created_at":"2024-11-12T11:36:18.772Z","updated_at":"2026-04-18T20:08:07.930Z","avatar_url":"https://github.com/ail-project.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Documentation Status](https://readthedocs.org/projects/lacuscore/badge/?version=latest)](https://lacuscore.readthedocs.io/en/latest/?badge=latest)\n\n# Modulable Lacus\n\nLacus, but as a simple module.\n\n# Installation\n\n```bash\npip install lacuscore\n```\n\n# Design\n\n`LacusCore` is the part taking care of enqueuing and capturing URLs or web enabled documents.\nIt can be used as a module in your own project, see below for the usage\n\n[Lacus](https://github.com/ail-project/lacus) is the webservice that uses `LacusCore`,\nand you can use [Pylacus](https://github.com/ail-project/pylacus) to query it.\n\nThe `enqueue`, `get_capture_status`, and `get_capture` methods if `LacusCore` and `PyLacus` have\nthe same parameters which means you can easily use them interchangeably in your project.\n\n## Interactive Sessions\n\n`LacusCore` can also manage interactive captures when it is initialized with\n`interactive_allowed=True` and `headed_allowed=True`. In that mode, `enqueue(...)`\naccepts `interactive=True` (and an optional `interactive_ttl` in seconds,\ndefault 600) and keeps the browser session alive until a trusted caller\ntriggers the final capture via `request_session_capture(uuid)`.\n\nInteractive session state is split into two layers:\n\n- `get_session_metadata(uuid)` returns the backend-agnostic public state for a\n\tsession: status, view URL, lifecycle timestamps, and whether a final capture\n\thas been requested.\n- `get_session_backend_metadata(uuid)` returns backend-specific transport data\n\tfor trusted local infrastructure only. This is where implementation details\n\tsuch as xpra unix socket paths belong.\n\nThat split keeps API consumers decoupled from the current xpra implementation\nwhile still allowing a local sidecar proxy to connect to the active session.\n\n\nFor more information regarding the usage of the module and a few examples, please refer to\n[the documentation](https://lacuscore.readthedocs.io/en/latest/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fail-project%2Flacuscore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fail-project%2Flacuscore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fail-project%2Flacuscore/lists"}