mirror of
https://github.com/spl0k/supysonic.git
synced 2024-09-19 19:01:03 +00:00
387a5e3de3
- Fixes zip downloads failing when zipping enough data that Zip64 extensions are required by automatically enabling them if needed. - Fixes zip downloads failing when a file has a datestamp that zipfiles cannot store (pre-1980 or post-2108) by clamping them within the supported range. - Massively speeds up zip downloads by disabling compression (audio files generally don't compress well anyway) - Computes the total size of a generated zip file before streaming it and sets the `Content-Length` header. This allows clients to show a final size and progress bar while downloading, as well as detect if the download fails. - Adds a check to prevent sending an empty zip file to the client if there was no content to download (will error out instead).
63 lines
1.8 KiB
Python
63 lines
1.8 KiB
Python
# This file is part of Supysonic.
|
|
# Supysonic is a Python implementation of the Subsonic server API.
|
|
#
|
|
# Copyright (C) 2013-2019 Alban 'spl0k' Féron
|
|
# 2017 Óscar García Amor
|
|
#
|
|
# Distributed under terms of the GNU AGPLv3 license.
|
|
|
|
import supysonic as project
|
|
|
|
from setuptools import setup
|
|
from setuptools import find_packages
|
|
|
|
reqs = [
|
|
"flask>=0.11",
|
|
"pony>=0.7.6",
|
|
"Pillow",
|
|
"requests>=1.0.0",
|
|
"mediafile",
|
|
"watchdog>=0.8.0",
|
|
"zipstream-ng>=1.1.0,<2.0.0",
|
|
]
|
|
|
|
setup(
|
|
name=project.NAME,
|
|
version=project.VERSION,
|
|
description=project.DESCRIPTION,
|
|
keywords=project.KEYWORDS,
|
|
long_description=project.LONG_DESCRIPTION,
|
|
author=project.AUTHOR_NAME,
|
|
author_email=project.AUTHOR_EMAIL,
|
|
url=project.URL,
|
|
license=project.LICENSE,
|
|
packages=find_packages(exclude=["tests*"]),
|
|
install_requires=reqs,
|
|
entry_points={
|
|
"console_scripts": [
|
|
"supysonic-cli=supysonic.cli:main",
|
|
"supysonic-daemon=supysonic.daemon:main",
|
|
]
|
|
},
|
|
zip_safe=False,
|
|
include_package_data=True,
|
|
test_suite="tests.suite",
|
|
tests_require=["lxml"],
|
|
classifiers=[
|
|
"Development Status :: 3 - Alpha",
|
|
"Environment :: Console",
|
|
"Environment :: Web Environment",
|
|
"Framework :: Flask",
|
|
"Intended Audience :: End Users/Desktop",
|
|
"Intended Audience :: System Administrators",
|
|
"License :: OSI Approved :: GNU Affero General Public License v3",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.5",
|
|
"Programming Language :: Python :: 3.6",
|
|
"Programming Language :: Python :: 3.7",
|
|
"Programming Language :: Python :: 3.8",
|
|
"Programming Language :: Python :: 3.9",
|
|
"Topic :: Multimedia :: Sound/Audio",
|
|
],
|
|
)
|