repository
appimage_updater.repositories.sourceforge.repository
¶
SourceForge repository implementation for AppImage Updater.
This module provides support for downloading AppImages from SourceForge projects. SourceForge URLs typically follow the pattern: https://sourceforge.net/projects/{project}/files/{path}/
SourceForgeRepository(timeout=30, user_agent=None, **kwargs)
¶
SourceForge repository implementation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
timeout
|
int
|
Request timeout in seconds |
30
|
user_agent
|
str | None
|
Custom user agent string |
None
|
**kwargs
|
Any
|
Additional configuration options |
{}
|
Source code in src/appimage_updater/repositories/sourceforge/repository.py
detect_repository_type(url)
¶
Check if this client can handle the given repository URL.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
url
|
str
|
Repository URL to check |
required |
Returns:
| Type | Description |
|---|---|
bool
|
True if this is a SourceForge URL, False otherwise |
Source code in src/appimage_updater/repositories/sourceforge/repository.py
generate_pattern_from_releases(url)
async
¶
Generate file pattern from actual releases.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
url
|
str
|
Repository URL to analyze for release patterns |
required |
Returns:
| Type | Description |
|---|---|
str | None
|
str | None: Regex pattern string if successful, None otherwise |
Source code in src/appimage_updater/repositories/sourceforge/repository.py
get_latest_release(repo_url)
async
¶
Get the latest stable release for a repository.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
repo_url
|
str
|
Repository URL |
required |
Returns:
| Type | Description |
|---|---|
Release
|
Release object with release information |
Raises:
| Type | Description |
|---|---|
RepositoryError
|
If the operation fails |
Source code in src/appimage_updater/repositories/sourceforge/repository.py
get_latest_release_including_prerelease(repo_url)
async
¶
Get the latest release including prereleases.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
repo_url
|
str
|
Repository URL |
required |
Returns:
| Type | Description |
|---|---|
Release
|
Release object with release information |
Raises:
| Type | Description |
|---|---|
RepositoryError
|
If the operation fails |
Source code in src/appimage_updater/repositories/sourceforge/repository.py
get_releases(repo_url, limit=10)
async
¶
Get recent releases for a repository.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
repo_url
|
str
|
Repository URL |
required |
limit
|
int
|
Maximum number of releases to fetch |
10
|
Returns:
| Type | Description |
|---|---|
list[Release]
|
List of Release objects |
Raises:
| Type | Description |
|---|---|
RepositoryError
|
If the operation fails |
Source code in src/appimage_updater/repositories/sourceforge/repository.py
normalize_repo_url(url)
¶
Normalize repository URL and detect if it was corrected.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
url
|
str
|
Repository URL to normalize |
required |
Returns:
| Type | Description |
|---|---|
tuple[str, bool]
|
Tuple of (normalized_url, was_corrected) |
Source code in src/appimage_updater/repositories/sourceforge/repository.py
parse_repo_url(url)
¶
Parse repository URL to extract project and path.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
url
|
str
|
Repository URL |
required |
Returns:
| Type | Description |
|---|---|
tuple[str, str]
|
Tuple of (project_name, file_path) |
Raises:
| Type | Description |
|---|---|
RepositoryError
|
If URL format is invalid |
Source code in src/appimage_updater/repositories/sourceforge/repository.py
should_enable_prerelease(url)
async
¶
Check if prerelease should be automatically enabled for a repository.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
url
|
str
|
Repository URL |
required |
Returns:
| Type | Description |
|---|---|
bool
|
True if only prereleases are found, False if stable releases exist |