Skip to main content

Simple, unofficial library with some example scripts to access data from the Spond API.

Project description

Spond

spond logo

Simple, unofficial library with some example scripts to access data from the Spond API.

Install

pip install spond

Usage

You need a username and password from Spond

Example code

import asyncio
from spond import spond

username = 'my@mail.invalid'
password = 'Pa55worD'
group_id = 'C9DC791FFE63D7914D6952BE10D97B46'  # fake 

async def main():
    s = spond.Spond(username=username, password=password)
    group = await s.get_group(group_id)
    print(group['name'])
    await s.clientsession.close()

asyncio.run(main())

Key methods

get_groups()

Get details of all your group memberships and all members of those groups.

get_events([group_id, subgroup_id, include_scheduled, max_end, min_end, max_start, min_start, max_events])

Get details of events, limited to 100 by default. Optional parameters allow filtering by start and end datetimes, group and subgroup; more events to be returned; inclusion of 'scheduled' events.

get_person()

Get a member's details.

get_messages(max_chats=100)

Get chats, limited to 100 by default. Optional parameter allows more events to be returned.

send_message(text, user=None, group_uid=None, chat_id=None)

Send a message with content text. Either specify an existing chat_id, or both user and group_uid for a new chat.

get_event_attendance_xlsx()

Get Excel attendance report for a single event, available via the web client.

change_response()

Change a member's response for an event (e.g. accept/decline)

get_posts()

Retrieve posts from group walls.

get_profile()

Retrieve information connected to the user's account.

Example scripts

The following scripts are included in examples/. Some of the scripts might require additional packages to be installed (csv, ical etc).

Rename the file config.py.sample to config.py and add your username and password to the file before running the samples.

ical.py

Generates an ics-file of upcoming events.

groups.py

Generates a json-file for each group you are a member of.

attendance.py <-f from_date> <-t to_date> [-a]

Generates a csv-file for each event between from_date and to_date with attendance status of all organizers. The optional parameter -a also includes all members that has been invited.

transactions.py

Generates a csv-file for transactions / payments appeared in Spond Club > Finance > Payments.

manual_test_functions.py

Demonstrates most get...() methods.

AsyncIO

Asyncio might seem intimidating in the beginning, but for basic stuff, it is quite easy to follow the examples above, and just remeber to prefix functions that use the API with async def ... and to await all API-calls and all calls to said functions.

This article will give a nice introduction to both why, when and how to use asyncio in projects.

Contributing

Keeping a PR up to date with main

Add the updateme label to a PR targeting main and a GitHub Actions workflow will automatically merge main into the PR branch every time main advances. This is opt-in: PRs without the label are left alone.

Limitations:

  • Only acts on PRs whose base branch is main. PRs targeting other branches are ignored even with the label.
  • Only works for PRs from branches in this repository. PRs from forks cannot be pushed to via the workflow's token and will be skipped (the workflow logs which PRs it skipped).
  • If gh pr update-branch fails for a given PR (merge conflict, branch protection rule, transient API error, etc.), that PR is skipped for this run and the failure is logged. The label stays on, so the next push to main will retry automatically.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spond-1.2.1.tar.gz (21.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

spond-1.2.1-py3-none-any.whl (21.7 kB view details)

Uploaded Python 3

File details

Details for the file spond-1.2.1.tar.gz.

File metadata

  • Download URL: spond-1.2.1.tar.gz
  • Upload date:
  • Size: 21.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for spond-1.2.1.tar.gz
Algorithm Hash digest
SHA256 84e0f20b6fb32dd76d006658ed9db7ba80fb8bf3904a7979d90c95a83281f22f
MD5 ec1c5a0f95f2f9ae984f02cf2d755295
BLAKE2b-256 9a17b913093bd7795d64e10d6b97c4adff8f7cc8497d1e5d81e8869acb027151

See more details on using hashes here.

Provenance

The following attestation bundles were made for spond-1.2.1.tar.gz:

Publisher: release.yml on Olen/Spond

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spond-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: spond-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 21.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for spond-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e161415c29fefed6aaaf9aaba322900498622f0646313fe1b4655b9ac0a881b3
MD5 4f63c9fddbe6fcf3c6beeec14143a0a0
BLAKE2b-256 9acdc9b088d680fd8b5156b1037b2b3b3bacceedf615c7ab4e20659894efb1ee

See more details on using hashes here.

Provenance

The following attestation bundles were made for spond-1.2.1-py3-none-any.whl:

Publisher: release.yml on Olen/Spond

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page