lib/torrent.py: generate_torrent_async() — daemon thread that fires after upload, downloads file from S3, builds .torrent via torf, uploads product.torrent to S3 (public-read), saves magnet link to DB. views/product.py: trigger generate_torrent_async when file_key=='product' and shop.torrent_enabled. Removed manual magnet link save — it's automatic. templates/product_edit.j2: magnet link is read-only + copy button + Open button when generated; 'upload the product file' hint when not yet generated. tests: updated to reflect auto-generation model, added content page test.
59 lines
1 KiB
Text
59 lines
1 KiB
Text
# python 2 -> 3 compat.
|
|
six
|
|
#future
|
|
|
|
# Pyramid with SQLAlchemy.
|
|
plaster_pastedeploy
|
|
pyramid
|
|
pyramid_jinja2
|
|
pyramid_debugtoolbar
|
|
waitress
|
|
pyramid_retry
|
|
|
|
# Model.
|
|
pyramid_tm
|
|
SQLAlchemy==1.3.24
|
|
# pinning because they broke Python 2.7 in version 0.36.7 ...
|
|
SQLAlchemy-Utils<=0.36.6
|
|
transaction
|
|
zope.sqlalchemy
|
|
alembic
|
|
|
|
# boto3 is needed for AWS s3 or Digital Ocean Spaces.
|
|
boto3
|
|
|
|
# Create URI slugs from titles.
|
|
python-slugify
|
|
|
|
# Future proof, computationally complex password hashes.
|
|
bcrypt
|
|
|
|
# credit card storage and processing.
|
|
stripe
|
|
|
|
# DKIM Signed Email from Python, lot's of extras in here like async.
|
|
# https://git.launchpad.net/dkimpy/tree/setup.py#n84
|
|
dkimpy
|
|
|
|
# needed for signing with ed25519 keys.
|
|
dkimpy[ed25519]
|
|
|
|
# MarkDown is a popular and familair WYSIWYM markup language.
|
|
# python 3.
|
|
#markdown
|
|
# python 2.
|
|
markdown==2.6.11
|
|
|
|
# human readable timestamps.
|
|
ago
|
|
|
|
# miniuri is a tiny URI parser.
|
|
miniuri
|
|
|
|
# Bleach sanitizes MarkDown (removes HTML/Javascript) to prevent XSS.
|
|
bleach
|
|
#bleach-whitelist
|
|
bleach-allowlist
|
|
beautifulsoup4
|
|
html5lib
|
|
torf
|