sleamdge 0.0.0.dev0__tar.gz → 0.2.1__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 (59) hide show
  1. sleamdge-0.2.1/.copier-answers.yml +45 -0
  2. {sleamdge-0.0.0.dev0 → sleamdge-0.2.1}/.pre-commit-config.yaml +3 -0
  3. sleamdge-0.2.1/.woodpecker/autoupdate-deps.yaml +14 -0
  4. sleamdge-0.2.1/.woodpecker/container.yaml +67 -0
  5. sleamdge-0.2.1/.woodpecker/docs.yaml +24 -0
  6. {sleamdge-0.0.0.dev0 → sleamdge-0.2.1}/.woodpecker/package.yaml +25 -19
  7. sleamdge-0.2.1/.woodpecker/test.yaml +36 -0
  8. sleamdge-0.2.1/Dockerfile +93 -0
  9. sleamdge-0.2.1/PKG-INFO +79 -0
  10. {sleamdge-0.0.0.dev0 → sleamdge-0.2.1}/README.md +15 -11
  11. sleamdge-0.2.1/commitlint.config.js +34 -0
  12. {sleamdge-0.0.0.dev0 → sleamdge-0.2.1}/docker-compose.yml +5 -3
  13. {sleamdge-0.0.0.dev0 → sleamdge-0.2.1}/docs/source/conf.py +9 -4
  14. sleamdge-0.2.1/docs/source/config.rst +41 -0
  15. {sleamdge-0.0.0.dev0 → sleamdge-0.2.1}/docs/source/index.rst +1 -1
  16. sleamdge-0.2.1/pyproject.toml +155 -0
  17. sleamdge-0.2.1/sleamdge/__init__.py +35 -0
  18. sleamdge-0.2.1/sleamdge/__main__.py +6 -0
  19. sleamdge-0.2.1/sleamdge/command.py +0 -0
  20. sleamdge-0.2.1/sleamdge/config.py +0 -0
  21. sleamdge-0.2.1/sleamdge.egg-info/PKG-INFO +79 -0
  22. {sleamdge-0.0.0.dev0 → sleamdge-0.2.1}/sleamdge.egg-info/SOURCES.txt +3 -2
  23. {sleamdge-0.0.0.dev0 → sleamdge-0.2.1}/uv.lock +440 -391
  24. sleamdge-0.0.0.dev0/.woodpecker/autoupdate-deps.yaml +0 -28
  25. sleamdge-0.0.0.dev0/.woodpecker/container-cache.yaml +0 -27
  26. sleamdge-0.0.0.dev0/.woodpecker/container-ci.yaml +0 -20
  27. sleamdge-0.0.0.dev0/.woodpecker/container.yaml +0 -40
  28. sleamdge-0.0.0.dev0/.woodpecker/docs.yaml +0 -24
  29. sleamdge-0.0.0.dev0/.woodpecker/test.yaml +0 -32
  30. sleamdge-0.0.0.dev0/Dockerfile +0 -24
  31. sleamdge-0.0.0.dev0/PKG-INFO +0 -733
  32. sleamdge-0.0.0.dev0/commitlint.config.js +0 -2
  33. sleamdge-0.0.0.dev0/docs/source/config.rst +0 -14
  34. sleamdge-0.0.0.dev0/pyproject.toml +0 -127
  35. sleamdge-0.0.0.dev0/sleamdge/__init__.py +0 -13
  36. sleamdge-0.0.0.dev0/sleamdge/__main__.py +0 -3
  37. sleamdge-0.0.0.dev0/sleamdge.egg-info/PKG-INFO +0 -733
  38. {sleamdge-0.0.0.dev0 → sleamdge-0.2.1}/.gitignore +0 -0
  39. {sleamdge-0.0.0.dev0 → sleamdge-0.2.1}/LICENSE +0 -0
  40. {sleamdge-0.0.0.dev0 → sleamdge-0.2.1}/doap.xml +0 -0
  41. {sleamdge-0.0.0.dev0 → sleamdge-0.2.1}/docs/Makefile +0 -0
  42. {sleamdge-0.0.0.dev0 → sleamdge-0.2.1}/docs/source/codeberg.svg +0 -0
  43. {sleamdge-0.0.0.dev0 → sleamdge-0.2.1}/docs/source/features.rst +0 -0
  44. {sleamdge-0.0.0.dev0 → sleamdge-0.2.1}/docs/source/readme.rst +0 -0
  45. {sleamdge-0.0.0.dev0 → sleamdge-0.2.1}/docs/source/user.rst +0 -0
  46. {sleamdge-0.0.0.dev0 → sleamdge-0.2.1}/setup.cfg +0 -0
  47. {sleamdge-0.0.0.dev0 → sleamdge-0.2.1}/sleamdge/client.py +0 -0
  48. {sleamdge-0.0.0.dev0 → sleamdge-0.2.1}/sleamdge/contact.py +0 -0
  49. {sleamdge-0.0.0.dev0 → sleamdge-0.2.1}/sleamdge/gateway.py +0 -0
  50. {sleamdge-0.0.0.dev0 → sleamdge-0.2.1}/sleamdge/group.py +0 -0
  51. {sleamdge-0.0.0.dev0 → sleamdge-0.2.1}/sleamdge/session.py +0 -0
  52. {sleamdge-0.0.0.dev0 → sleamdge-0.2.1}/sleamdge/types.py +0 -0
  53. {sleamdge-0.0.0.dev0 → sleamdge-0.2.1}/sleamdge/util.py +0 -0
  54. {sleamdge-0.0.0.dev0 → sleamdge-0.2.1}/sleamdge.egg-info/dependency_links.txt +0 -0
  55. {sleamdge-0.0.0.dev0 → sleamdge-0.2.1}/sleamdge.egg-info/entry_points.txt +0 -0
  56. {sleamdge-0.0.0.dev0 → sleamdge-0.2.1}/sleamdge.egg-info/requires.txt +0 -0
  57. {sleamdge-0.0.0.dev0 → sleamdge-0.2.1}/sleamdge.egg-info/top_level.txt +0 -0
  58. {sleamdge-0.0.0.dev0 → sleamdge-0.2.1}/tests/test_base.py +0 -0
  59. {sleamdge-0.0.0.dev0 → sleamdge-0.2.1}/tests/test_util.py +0 -0
@@ -0,0 +1,45 @@
1
+ # Do not edit manually!
2
+ # Changes here will be overwritten by copier.
3
+ # https://copier.readthedocs.io/
4
+ _commit: 6fcd5f7
5
+ _src_path: git+https://codeberg.org/slidge/legacy-module-template
6
+ authors:
7
+ - email: nicoco@nicoco.fr
8
+ name: Nicolas Cedilnik
9
+ ci_id: 14070
10
+ container_build_files:
11
+ - uv.lock
12
+ - pyproject.toml
13
+ container_build_native: false
14
+ container_builder_deps:
15
+ - git
16
+ - make
17
+ container_builder_deps_backports: []
18
+ container_debian_version: bookworm
19
+ container_dev_custom_hot_reload: ''
20
+ container_dev_extra_lines: ''
21
+ container_python_version: '3.11'
22
+ container_requires_rustup: false
23
+ container_runtime_deps: []
24
+ custom_build_system: ''
25
+ custom_readme_head: ''
26
+ custom_readme_tail: ''
27
+ dependencies:
28
+ - steamio>=1.1,<2
29
+ - slidge>=0.2.0a3,<0.3
30
+ dev_dependencies: []
31
+ intersphinx_mappings: []
32
+ lint_excludes: []
33
+ mypy_ignores: []
34
+ native_builds: false
35
+ pre_commit_custom_hooks: ''
36
+ project_name: sleamdge
37
+ requires_lottie: false
38
+ silo:
39
+ lib:
40
+ name: steamio
41
+ url: https://steam-py.github.io/docs/latest/
42
+ name: Steam
43
+ url: https://steamcommunity.com/
44
+ uv_sources: []
45
+ wheels: false
@@ -1,3 +1,6 @@
1
+ # DO NOT EDIT
2
+ # This file is automatically generated with copier using https://codeberg.org/slidge/legacy-module-template
3
+
1
4
  default_stages: [pre-commit]
2
5
  repos:
3
6
  - repo: https://github.com/pre-commit/pre-commit-hooks
@@ -0,0 +1,14 @@
1
+ # DO NOT EDIT
2
+ # Generated from .copier-answers.yml
3
+
4
+ when:
5
+ event: [cron, manual]
6
+ cron: lockfile
7
+
8
+ steps:
9
+ refresh-deps:
10
+ image: codeberg.org/slidge/woodpecker-uv-update-lockfile:latest
11
+ pull: true
12
+ settings:
13
+ token:
14
+ from_secret: CODEBERG_TOKEN
@@ -0,0 +1,67 @@
1
+ # DO NOT EDIT
2
+ # Generated from .copier-answers.yml
3
+
4
+ when:
5
+ event: [push, tag]
6
+ path:
7
+ - "sleamdge/**"
8
+ - Dockerfile
9
+ - pyproject.toml
10
+ - uv.lock
11
+
12
+ labels:
13
+ platform: linux/amd64
14
+
15
+ clone:
16
+ - name: clone-deep
17
+ image: woodpeckerci/plugin-git
18
+ settings:
19
+ tags: true
20
+ partial: false
21
+
22
+ variables:
23
+ - &settings
24
+ repo: codeberg.org/${CI_REPO_OWNER}/sleamdge
25
+ username: ${CI_REPO_OWNER}
26
+ password:
27
+ from_secret: CODEBERG_TOKEN
28
+ registry: codeberg.org
29
+ target: sleamdge
30
+ # this only caches one of the two platforms unfortunately
31
+ # https://github.com/docker/buildx/discussions/1382
32
+ # https://github.com/docker/buildx/issues/1044
33
+ cache_images:
34
+ - codeberg.org/${CI_REPO_OWNER}/sleamdge:buildcache
35
+ platforms: linux/amd64,linux/arm64
36
+
37
+ steps:
38
+ build-tag:
39
+ image: woodpeckerci/plugin-docker-buildx
40
+ when:
41
+ event: [tag]
42
+ settings:
43
+ <<: *settings
44
+ tags:
45
+ - latest
46
+ - ${CI_COMMIT_TAG}
47
+
48
+ build-branch:
49
+ when:
50
+ event: [push]
51
+ image: woodpeckerci/plugin-docker-buildx
52
+ settings:
53
+ <<: *settings
54
+ tags:
55
+ - ${CI_COMMIT_BRANCH}
56
+
57
+ build-ci:
58
+ when:
59
+ event: [push]
60
+ branch: ${CI_REPO_DEFAULT_BRANCH}
61
+ image: woodpeckerci/plugin-docker-buildx
62
+ settings:
63
+ <<: *settings
64
+ target: ci
65
+ tag: ci
66
+ cache_images:
67
+ - codeberg.org/${CI_REPO_OWNER}/sleamdge:buildcache-ci
@@ -0,0 +1,24 @@
1
+ # DO NOT EDIT
2
+ # Generated from .copier-answers.yml
3
+
4
+ when:
5
+ event: [push, tag, pull_request]
6
+ path: ["sleamdge/**/*.py", "docs/**/*", "README.md"]
7
+
8
+ steps:
9
+ build:
10
+ image: codeberg.org/${CI_REPO_OWNER}/sleamdge:ci
11
+ pull: true
12
+ commands:
13
+ - cp -r /venv .venv
14
+ - uv sync --all-groups --all-extras
15
+ - cd docs && make html
16
+
17
+ publish:
18
+ image: codeberg.org/slidge/woodpecker-publish-pages
19
+ pull: true
20
+ when:
21
+ event: [push, tag]
22
+ settings:
23
+ token:
24
+ from_secret: CODEBERG_TOKEN
@@ -1,33 +1,37 @@
1
+ # DO NOT EDIT
2
+ # Generated from .copier-answers.yml
3
+
1
4
  when:
2
- event: [ push, tag, pull_request ]
3
- path: [ "${CI_REPO_NAME}/**/*", "pyproject.toml", "uv.lock", "README.md" ]
5
+ event: [push, tag]
6
+ path: ["sleamdge/**/*", "pyproject.toml", "README.md"]
7
+ branch: main
4
8
 
5
9
  variables:
6
- - &image codeberg.org/slidge/woodpecker-${CI_REPO_NAME}
7
- - &only-main-tag
8
- when:
9
- branch: main
10
- event: tag
10
+ - &ci-image codeberg.org/${CI_REPO_OWNER}/sleamdge:ci
11
11
 
12
- steps:
13
- version:
14
- image: codeberg.org/slidge/woodpecker-version
15
- pull: true
12
+ clone:
13
+ - name: clone-deep
14
+ image: woodpeckerci/plugin-git
15
+ settings:
16
+ tags: true
17
+ partial: false
16
18
 
19
+ steps:
17
20
  changelog:
18
21
  image: codeberg.org/slidge/woodpecker-generate-changelog
19
22
  pull: true
20
23
 
21
24
  build:
22
- image: *image
25
+ image: *ci-image
26
+ pull: true
23
27
  commands:
24
28
  - uv build
25
29
 
26
30
  codeberg-pypi:
27
31
  when:
28
- event: [ push, tag ]
32
+ event: [push, tag]
33
+ image: *ci-image
29
34
  depends_on: build
30
- image: *image
31
35
  environment:
32
36
  CODEBERG_TOKEN:
33
37
  from_secret: CODEBERG_TOKEN
@@ -35,9 +39,10 @@ steps:
35
39
  - uv publish --index codeberg --token $CODEBERG_TOKEN
36
40
 
37
41
  pypi:
38
- image: *image
42
+ image: *ci-image
39
43
  depends_on: build
40
- <<: *only-main-tag
44
+ when:
45
+ event: tag
41
46
  environment:
42
47
  PYPI_TOKEN:
43
48
  from_secret: PYPI_TOKEN
@@ -46,11 +51,12 @@ steps:
46
51
 
47
52
  codeberg-release:
48
53
  image: woodpeckerci/plugin-release
49
- depends_on: build
50
- <<: *only-main-tag
54
+ depends_on: [changelog, build]
55
+ when:
56
+ event: tag
51
57
  settings:
52
58
  files:
53
- - dist/${CI_REPO_NAME}*
59
+ - dist/sleamdge*
54
60
  api_key:
55
61
  from_secret: CODEBERG_TOKEN
56
62
  note: CHANGELOG
@@ -0,0 +1,36 @@
1
+ # DO NOT EDIT
2
+ # Generated from .copier-answers.yml
3
+
4
+ when:
5
+ event: [push, pull_request]
6
+ path: [pyproject.toml, uv.lock, "**/*.py"]
7
+
8
+ variables:
9
+ - &ci-image codeberg.org/${CI_REPO_OWNER}/sleamdge:ci
10
+
11
+ steps:
12
+ update-venv:
13
+ image: *ci-image
14
+ pull: true
15
+ commands:
16
+ - cp -r /venv .venv
17
+ - uv sync --all-groups --all-extras
18
+
19
+ ruff:
20
+ image: *ci-image
21
+ depends_on: update-venv
22
+ commands:
23
+ - ruff check
24
+ - ruff format --check
25
+
26
+ mypy:
27
+ image: *ci-image
28
+ depends_on: update-venv
29
+ commands:
30
+ - mypy
31
+
32
+ test:
33
+ image: *ci-image
34
+ depends_on: update-venv
35
+ commands:
36
+ - python -m pytest tests
@@ -0,0 +1,93 @@
1
+ # DO NOT EDIT
2
+ # This file is automatically generated with copier using https://codeberg.org/slidge/legacy-module-template
3
+
4
+ # Builder
5
+ # *******
6
+ FROM ghcr.io/astral-sh/uv:python3.11-bookworm-slim AS builder
7
+
8
+ # install git for setuptools scm
9
+ RUN apt-get update -y && \
10
+ apt-get install \
11
+ git \
12
+ make \
13
+ -y --no-install-recommends && \
14
+ rm -rf /var/lib/apt/lists/*
15
+ WORKDIR /build
16
+ ENV UV_PROJECT_ENVIRONMENT=/venv
17
+ ENV PATH="/venv/bin:/root/.cargo/bin:$PATH"
18
+ # By making the venv relocatable, we can copy it to /workspace/.venv in CI, and only update
19
+ # dependencies that might be out-of-date. If uv.lock is not modified, then updating
20
+ # the .venv is a no-op.
21
+ # This allows us to not wait on the CI container build for the test workflows to run,
22
+ # and also to run workflows for pull requests that modify the lockfile. In this,
23
+ # situation, updating the CI container is not an option.
24
+ RUN uv venv $UV_PROJECT_ENVIRONMENT --relocatable
25
+ COPY uv.lock pyproject.toml README.md .
26
+ COPY sleamdge sleamdge
27
+ # install dependencies in /venv
28
+ # .git/ needs to be mounted for setuptools-scm to set the version
29
+ RUN --mount=source=.git,target=/build/.git,type=bind \
30
+ uv sync --no-dev
31
+
32
+ # CI container
33
+ # ************
34
+ FROM builder AS ci
35
+
36
+ # In CI we copy /venv to .venv, then update it for the whole workflow.
37
+ RUN --mount=source=.git,target=/build/.git,type=bind \
38
+ uv sync --all-groups --no-install-project
39
+ ENV UV_PROJECT_ENVIRONMENT=.venv
40
+ ENV UV_LINK_MODE=copy
41
+ ENV PATH="/woodpecker/src/codeberg.org/slidge/sleamdge/.venv/bin:$PATH"
42
+
43
+ # Dev container
44
+ # *************
45
+ FROM builder AS dev
46
+
47
+ # copy "localhost" certs from the prosody slidge dev container, so
48
+ COPY --from=codeberg.org/slidge/prosody-slidge-dev:latest \
49
+ /etc/prosody/certs/localhost.crt \
50
+ /usr/local/share/ca-certificates/
51
+ RUN update-ca-certificates
52
+ RUN apt-get update -y \
53
+ && apt-get install -y --no-install-recommends \
54
+ libmagic1 \
55
+ media-types \
56
+ shared-mime-info \
57
+ && rm -rf /var/lib/apt/lists/*
58
+ RUN uv pip install watchdog[watchmedo]
59
+ COPY --from=ci /venv /venv
60
+ ENTRYPOINT ["watchmedo", "auto-restart", \
61
+ "--pattern", "*.py", \
62
+ "--directory", "/build/sleamdge", \
63
+ "--recursive", \
64
+ "sleamdge", "--", \
65
+ "--jid", "slidge.localhost", \
66
+ "--secret", "secret", \
67
+ "--debug", \
68
+ "--upload-service", "upload.localhost", \
69
+ "--admins", "test@localhost", \
70
+ "--dev-mode"]
71
+
72
+ # Prod container
73
+ # **************
74
+ FROM docker.io/python:3.11-slim-bookworm AS sleamdge
75
+
76
+ ENV PYTHONUNBUFFERED=1
77
+ ENV PATH="/venv/bin:$PATH"
78
+ STOPSIGNAL SIGINT
79
+ WORKDIR /var/lib/slidge
80
+ # libmagic1: to guess mime type from files
81
+ # media-types: to determine file name suffix based on file type
82
+ RUN apt-get update -y \
83
+ && apt-get install -y --no-install-recommends \
84
+ libmagic1 \
85
+ media-types \
86
+ shared-mime-info \
87
+ && rm -rf /var/lib/apt/lists/*
88
+ RUN addgroup --system --gid 10000 slidge
89
+ RUN adduser --system --uid 10000 --ingroup slidge --home /var/lib/slidge slidge
90
+ USER slidge
91
+ COPY --from=builder /venv /venv
92
+ COPY --from=builder /build/sleamdge /venv/lib/python3.11/site-packages/sleamdge
93
+ ENTRYPOINT ["sleamdge"]
@@ -0,0 +1,79 @@
1
+ Metadata-Version: 2.4
2
+ Name: sleamdge
3
+ Version: 0.2.1
4
+ Summary: A Steam/XMPP gateway
5
+ Author-email: Nicolas Cedilnik <nicoco@nicoco.fr>
6
+ License-Expression: AGPL-3.0-or-later
7
+ Project-URL: Homepage, https://codeberg.org/slidge/sleamdge
8
+ Project-URL: Issues, https://codeberg.org/slidge/sleamdge/issues
9
+ Project-URL: Repository, https://codeberg.org/slidge/sleamdge
10
+ Project-URL: Chat room, https://slidge.im/xmpp-web/#/guest?join=slidge@conference.nicoco.fr
11
+ Project-URL: Documentation, https://slidge.im/docs/sleamdge/main
12
+ Project-URL: changelog, https://codeberg.org/slidge/sleamdge/releases
13
+ Keywords: xmpp,gateway,bridge,instant messaging,chat,steam
14
+ Classifier: Topic :: Internet :: XMPP
15
+ Requires-Python: >=3.11
16
+ Description-Content-Type: text/markdown
17
+ License-File: LICENSE
18
+ Requires-Dist: steamio<2,>=1.1
19
+ Requires-Dist: slidge<0.3,>=0.2.0a3
20
+ Dynamic: license-file
21
+
22
+ # sleamdge
23
+
24
+ A
25
+ [feature-rich](https://slidge.im/docs/sleamdge/main/features.html)
26
+ [Steam](https://steamcommunity.com/) to
27
+ [XMPP](https://xmpp.org/) puppeteering
28
+ [gateway](https://xmpp.org/extensions/xep-0100.html), based on
29
+ [slidge](https://slidge.im) and
30
+ [steamio](https://steam-py.github.io/docs/latest/).
31
+
32
+ [![PyPI package version](https://badge.fury.io/py/sleamdge.svg)](https://pypi.org/project/sleamdge/)
33
+ [![CI pipeline status](https://ci.codeberg.org/api/badges/14070/status.svg)](https://ci.codeberg.org/repos/14070)
34
+ [![Chat](https://conference.nicoco.fr:5281/muc_badge/slidge@conference.nicoco.fr)](https://slidge.im/xmpp-web/#/guest?join=slidge@conference.nicoco.fr)
35
+
36
+
37
+ ## Installation
38
+
39
+ Refer to the [slidge admin documentation](https://slidge.im/docs/slidge/main/admin/)
40
+ for general info on how to set up an XMPP server component.
41
+
42
+ ### Containers
43
+
44
+ From [the codeberg package registry](https://codeberg.org/slidge/-/packages/container/sleamdge/latest)
45
+
46
+ ```sh
47
+ docker run codeberg.org/slidge/sleamdge # works with podman too
48
+ ```
49
+
50
+ Use the `:latest` tag for the latest release, `:vX.X.X` for release X.X.X, and `:main`
51
+ for the bleeding edge.
52
+
53
+ ### Python package
54
+
55
+ With [pipx](https://pypa.github.io/pipx/):
56
+
57
+ ```sh
58
+
59
+ # for the latest stable release (if any)
60
+ pipx install sleamdge
61
+
62
+ # for the bleeding edge
63
+ pipx install sleamdge \
64
+ --pip-args='--extra-index-url https://codeberg.org/api/packages/slidge/pypi/simple/'
65
+
66
+ sleamdge --help
67
+ ```
68
+
69
+ ## Documentation
70
+
71
+ Hosted on [codeberg pages](https://slidge.im/docs/sleamdge/main/).
72
+
73
+ ## Dev
74
+
75
+ ```sh
76
+ git clone https://codeberg.org/slidge/sleamdge
77
+ cd sleamdge
78
+ docker-compose up # works with podman-compose too
79
+ ```
@@ -1,7 +1,7 @@
1
1
  # sleamdge
2
2
 
3
3
  A
4
- [feature-rich](https://slidge.im/sleamdge/features.html)
4
+ [feature-rich](https://slidge.im/docs/sleamdge/main/features.html)
5
5
  [Steam](https://steamcommunity.com/) to
6
6
  [XMPP](https://xmpp.org/) puppeteering
7
7
  [gateway](https://xmpp.org/extensions/xep-0100.html), based on
@@ -9,8 +9,9 @@ A
9
9
  [steamio](https://steam-py.github.io/docs/latest/).
10
10
 
11
11
  [![PyPI package version](https://badge.fury.io/py/sleamdge.svg)](https://pypi.org/project/sleamdge/)
12
- [![CI pipeline status](https://ci.codeberg.org/api/badges/14068/status.svg)](https://ci.codeberg.org/repos/14068)
13
- [![Chat](https://conference.nicoco.fr:5281/muc_badge/slidge@conference.nicoco.fr)](https://slidge.im/xmpp-web/#/guest)
12
+ [![CI pipeline status](https://ci.codeberg.org/api/badges/14070/status.svg)](https://ci.codeberg.org/repos/14070)
13
+ [![Chat](https://conference.nicoco.fr:5281/muc_badge/slidge@conference.nicoco.fr)](https://slidge.im/xmpp-web/#/guest?join=slidge@conference.nicoco.fr)
14
+
14
15
 
15
16
  ## Installation
16
17
 
@@ -19,12 +20,15 @@ for general info on how to set up an XMPP server component.
19
20
 
20
21
  ### Containers
21
22
 
22
- From [the codeberg package registry](https://codeberg.org/slidge/-/packages?q=&type=container)
23
+ From [the codeberg package registry](https://codeberg.org/slidge/-/packages/container/sleamdge/latest)
23
24
 
24
25
  ```sh
25
- docker run codeberg.org/slidge/sleamdge
26
+ docker run codeberg.org/slidge/sleamdge # works with podman too
26
27
  ```
27
28
 
29
+ Use the `:latest` tag for the latest release, `:vX.X.X` for release X.X.X, and `:main`
30
+ for the bleeding edge.
31
+
28
32
  ### Python package
29
33
 
30
34
  With [pipx](https://pypa.github.io/pipx/):
@@ -35,20 +39,20 @@ With [pipx](https://pypa.github.io/pipx/):
35
39
  pipx install sleamdge
36
40
 
37
41
  # for the bleeding edge
38
- pipx install sleamdge==0.0.0.dev0 \
42
+ pipx install sleamdge \
39
43
  --pip-args='--extra-index-url https://codeberg.org/api/packages/slidge/pypi/simple/'
40
44
 
41
- # to update bleeding edge installs
42
- pipx install sleamdge==0.0.0.dev0 \
43
- --pip-args='--extra-index-url https://codeberg.org/api/packages/slidge/pypi/simple/' --force
44
-
45
45
  sleamdge --help
46
46
  ```
47
47
 
48
+ ## Documentation
49
+
50
+ Hosted on [codeberg pages](https://slidge.im/docs/sleamdge/main/).
51
+
48
52
  ## Dev
49
53
 
50
54
  ```sh
51
55
  git clone https://codeberg.org/slidge/sleamdge
52
56
  cd sleamdge
53
- docker-compose up
57
+ docker-compose up # works with podman-compose too
54
58
  ```
@@ -0,0 +1,34 @@
1
+ // DO NOT EDIT
2
+ // Generated from .copier-answers.yml
3
+ //
4
+ // This files defines the allowed "headers" for the commit messages.
5
+ // Following the rules makes the changelog generation easier.
6
+ // They come from angular conventions, unless commented.
7
+ const Configuration = {
8
+ extends: ['@commitlint/config-conventional'],
9
+ rules: {
10
+ 'type-enum':
11
+ [
12
+ 2,
13
+ 'always',
14
+ [
15
+ 'build',
16
+ 'chore',
17
+ 'ci',
18
+ 'docs',
19
+ 'feat',
20
+ 'fix',
21
+ 'perf',
22
+ 'refactor',
23
+ 'revert',
24
+ 'style',
25
+ 'test',
26
+ 'compat', // workaround to play nice with non-compliant clients or servers; ideally reverted once fixed upstream
27
+ 'cfix', // fixes an unreleased commit, should not appear in changelog
28
+ 'imprv', // improvement of an existing feature
29
+ ]
30
+ ],
31
+ },
32
+ }
33
+
34
+ module.exports = Configuration
@@ -1,4 +1,6 @@
1
- version: "3.9"
1
+ # DO NOT EDIT
2
+ # Generated from .copier-answers.yml
3
+
2
4
  services:
3
5
  slidge:
4
6
  build:
@@ -6,8 +8,8 @@ services:
6
8
  target: dev
7
9
  network_mode: service:prosody
8
10
  volumes:
9
- - ./sleamdge:/venv/lib/python/site-packages/legacy_module
10
- - ./persistent:/var/lib/slidge
11
+ - ./sleamdge:/build/sleamdge
12
+ - ./persistent:/var/lib/slidge/slidge.localhost
11
13
  depends_on:
12
14
  prosody:
13
15
  condition: service_started
@@ -1,11 +1,17 @@
1
+ # DO NOT EDIT
2
+ # Generated from .copier-answers.yml
3
+
4
+ import os
1
5
  from datetime import datetime
2
6
  from pathlib import Path
3
7
 
8
+ from slidge.__version__ import __version__ as slidge_version
9
+
4
10
  project = "sleamdge"
5
- branch = "main"
6
- slidge_version = "main"
7
11
  copyright = f"{datetime.today().year}, the {project} contributors"
8
12
  author = f"the {project} contributors"
13
+ branch = os.getenv("CI_COMMIT_BRANCH", "main")
14
+
9
15
  extensions = [
10
16
  "sphinx.ext.autodoc",
11
17
  "sphinx.ext.intersphinx",
@@ -26,12 +32,11 @@ autoapi_python_class_content = "both"
26
32
 
27
33
  autoapi_type = "python"
28
34
  autoapi_dirs = ["../../sleamdge"]
29
- autoapi_ignore = ["generated/*"]
30
35
 
31
36
  intersphinx_mapping = {
32
37
  "python": ("https://docs.python.org/3", None),
33
38
  "slixmpp": ("https://slixmpp.readthedocs.io/en/latest/", None),
34
- "slidge": (f"https://slidge.im/docs/slidge/{slidge_version}", None),
39
+ "slidge": (f"https://slidge.im/docs/slidge/{slidge_version}/", None),
35
40
  }
36
41
 
37
42
  extlinks = {"xep": ("https://xmpp.org/extensions/xep-%s.html", "XEP-%s")}
@@ -0,0 +1,41 @@
1
+ Configuration
2
+ =============
3
+
4
+ Minimal setup
5
+ -------------
6
+
7
+ For a minimal ``prosody <https://prosody.im>`` based setup, add these lines at the bottom of
8
+ ``/etc/prosody/prosody.cfg.lua``:
9
+
10
+ .. code-block:: lua
11
+
12
+ Component "sleamdge.example.org"
13
+ component_secret = "secret"
14
+
15
+ And start sleamdge with:
16
+
17
+ .. code-block:: bash
18
+
19
+ sleamdge \
20
+ --jid sleamdge.example.org \
21
+ --secret secret \
22
+ --home-dir /somewhere/writable
23
+
24
+ Advanced usage
25
+ --------------
26
+
27
+ Refer to the `slidge admin docs <https://slidge.im/docs/slidge/main/admin>`_ for more
28
+ advanced setups and examples of configuration for other XMPP servers.
29
+
30
+ You will probably want to add support for `attachments <https://slidge.im/docs/slidge/main/admin/attachments.html>`_
31
+ received from Steam, and setup sleamdge as a `privileged component <https://slidge.im/docs/slidge/main/admin/privilege.html>`_
32
+ for better UX.
33
+
34
+ sleamdge-specific config
35
+ ------------------------
36
+
37
+ All `generic slidge configuration options <https://slidge.im/docs/slidge/main/admin/config/#common-config>`_
38
+ apply.
39
+ sleamdge provides these additional component-wide options:
40
+
41
+ .. config-obj:: sleamdge.config
@@ -2,7 +2,7 @@ sleamdge
2
2
  ========
3
3
 
4
4
  A
5
- `feature-rich <https://slidge.im/sleamdge/features.html>`_
5
+ `feature-rich <https://slidge.im/docs/sleamdge/main/features.html>`_
6
6
  `Steam <https://steamcommunity.com/>`_ to
7
7
  `XMPP <https://xmpp.org/>`_ puppeteering
8
8
  `gateway <https://xmpp.org/extensions/xep-0100.html>`_, based on