A modern Python wrapper for the Spiget API, providing easy access to Spigot resources, authors, and categories.
pip install pyspiget
from spiget import Spiget
# Initialize the client
api = Spiget(user_agent="MyApp/1.0.0")
# Get a resource
resource = api.get_resource(1234)
print(f"Resource name: {resource.name}")
# Search for resources
resources = api.search_resources("worldedit")
for resource in resources:
print(f"Found: {resource.name}")
The main class for interacting with the Spiget API.
api = Spiget(user_agent="MyApp/1.0.0")
Handles webhook-related operations for the Spiget API.
webhook_handler = WebhookHandler(api.session)
All models inherit from BaseModel
which provides basic dictionary to object conversion.
Represents a Spigot resource (plugin, mod, etc.)
Properties:
id
: Resource IDname
: Resource nametag
: Resource tagcontributors
: List of contributorslikes
: Number of likesfile
: ResourceFile objecttested_versions
: List of tested Minecraft versionslinks
: Dictionary of related linksrating
: ResourceRating objectrelease_date
: Release datetimeupdate_date
: Last update datetimedownloads
: Number of downloadsexternal
: Whether the resource is externalicon
: Icon objectpremium
: Whether the resource is premiumprice
: Resource price (if premium)currency
: Price currencydescription
: Resource descriptiondocumentation
: Resource documentationsource_code_link
: Link to source codedonation_link
: Link to donation page
Represents a resource's downloadable file.
Properties:
type
: File typesize
: File sizesize_unit
: Size uniturl
: Download URLexternal_url
: External download URL
Represents a specific version of a resource.
Properties:
id
: Version IDuuid
: Version UUIDname
: Version namerelease_date
: Release datetimedownloads
: Number of downloadsrating
: ResourceRating object
Represents an update post for a resource.
Properties:
id
: Update IDresource
: Resource IDtitle
: Update titledescription
: Update descriptiondate
: Update datetimelikes
: Number of likes
Represents a review for a resource.
Properties:
author
: Author objectrating
: ResourceRating objectmessage
: Review messageresponse_message
: Author's responseversion
: Version revieweddate
: Review datetime
Represents a resource author.
Properties:
id
: Author IDname
: Author nameicon
: Icon object
Represents a resource category.
Properties:
id
: Category IDname
: Category name
# Get multiple resources
resources = api.get_resources(size=10, page=1, sort=None, fields=None)
# Get a single resource
resource = api.get_resource(resource_id=1234)
# Get resource versions
versions = api.get_resource_versions(resource_id=1234, size=10, page=1)
# Get specific version
version = api.get_resource_version(resource_id=1234, version_id="1.0.0")
# Get latest version
latest = api.get_resource_latest_version(resource_id=1234)
# Get resource updates
updates = api.get_resource_updates(resource_id=1234, size=10, page=1)
# Get resource reviews
reviews = api.get_resource_reviews(resource_id=1234, size=10, page=1)
# Get resource author
author = api.get_resource_author(resource_id=1234)
# Get multiple authors
authors = api.get_authors(size=10, page=1)
# Get single author
author = api.get_author(author_id=1234)
# Get author's resources
resources = api.get_author_resources(author_id=1234, size=10, page=1)
# Get all categories
categories = api.get_categories(size=10, page=1)
# Get single category
category = api.get_category(category_id=1234)
# Get category resources
resources = api.get_category_resources(category_id=1234, size=10, page=1)
# Search resources
resources = api.search_resources(query="worldedit", field=None, size=10, page=1)
# Search authors
authors = api.search_authors(query="sk89q", field=None, size=10, page=1)
# Get available webhook events
events = webhook_handler.get_webhook_events()
# Register a webhook
webhook = webhook_handler.register_webhook(
url="https://example.com/webhook",
events=["resource-update", "new-resource"]
)
# Get webhook status
status = webhook_handler.get_webhook_status(webhook_id="abc123")
# Delete webhook
webhook_handler.delete_webhook(webhook_id="abc123", secret="webhook_secret")
The wrapper includes a custom SpigetError
exception that is raised when API requests fail:
from spiget import Spiget, SpigetError
api = Spiget()
try:
resource = api.get_resource(99999999)
except SpigetError as e:
print(f"API error: {e}")
This wrapper is built for the Spiget API created by the SpiGetOrg team.
MIT License - see LICENSE file for details