Ring header restructured from flat 1fr/auto grid into two semantic rows: - Info row: title + badges left, progress counter right - Controls row: Reverse and Autoplay toggles right-aligned Now-playing row shows full title (no line-clamp truncation) and product thumbnail. JS reads og:image meta tag for current thumbnail during SPA navigation. SPA updates for edit button, download button, file info, comments, and canonical link. Footer and docs updates.
154 lines
4.9 KiB
ReStructuredText
154 lines
4.9 KiB
ReStructuredText
Changelog
|
|
=========
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
2026-02-09
|
|
----------
|
|
|
|
DJ Crossfade
|
|
~~~~~~~~~~~~
|
|
|
|
* 7-second audio + visual crossfade starts before current video ends
|
|
* Volume ramps down on outgoing, ramps up on incoming simultaneously
|
|
* Opacity crossfade dissolves between videos during transition
|
|
* Countdown overlay shows during crossfade with Play Now / Cancel controls
|
|
* User-initiated transitions (click related item, queue) also get visual crossfade
|
|
* Falls back to standard countdown when preloaded data isn't ready or media types differ
|
|
|
|
Footer & Links
|
|
~~~~~~~~~~~~~~
|
|
|
|
* Fixed apex domain link to use ``www.makepostsell.com`` in shop footer
|
|
* Added Source Code (GitLab) and PyPI links to shop footer
|
|
|
|
2026-02-08
|
|
----------
|
|
|
|
Watch Mode v2
|
|
~~~~~~~~~~~~~
|
|
|
|
* Continuous playback with crossfade transitions between media
|
|
* Discovery ring: deterministic content traversal precomputed per shop
|
|
* Up Next sidebar with compact rows, numbered index, and queue management
|
|
* Countdown overlay (7s) as frosted-glass bottom bar between items
|
|
* Queue system: add/remove items, reorder playback
|
|
* Autoplay toggle switch inline with Up Next heading
|
|
* Two-phase preload: fast JSON fetch, then buffer media 30s before end
|
|
* Recently-played tracking: filter items from Up Next for 4 hours
|
|
* Support for video, audio, and static content (PDFs, images) with auto-advance
|
|
* Sticky video on desktop scroll (offset below ribbon)
|
|
* ``watch.js`` — new standalone JS module for all watch mode logic
|
|
|
|
Pop-out Media Player
|
|
~~~~~~~~~~~~~~~~~~~~
|
|
|
|
* Draggable pop-out window with prev/next navigation
|
|
* Keyboard shortcuts and responsive controls
|
|
* Auto-advance for images/PDFs (60s timer, reset on scroll)
|
|
* ``player.js`` — new standalone JS module
|
|
* ``/random`` and ``/tv`` endpoints for media playback
|
|
|
|
Lazy Cart Creation
|
|
~~~~~~~~~~~~~~~~~~
|
|
|
|
* Anonymous session carts are now in-memory until a product is added
|
|
* Prevents bots and crawlers from creating empty cart rows in the database
|
|
* UUID stays stable across requests via session cookie
|
|
* Transient cart guard in authentication merge flow
|
|
|
|
AJAX Comments
|
|
~~~~~~~~~~~~~
|
|
|
|
* Comment form submits via fetch when JS is available
|
|
* Preserves media playback — no page reload interrupts
|
|
* Falls back to normal POST + redirect without JS
|
|
* ``comments.js`` — new standalone JS module
|
|
|
|
Email Subscriptions
|
|
~~~~~~~~~~~~~~~~~~~
|
|
|
|
* Email digest subscriptions with configurable frequency
|
|
* @mentions in comments notify mentioned users
|
|
* RSS and Atom feed autodiscovery in ``<head>``
|
|
* Subscribe link in shop nav bar
|
|
|
|
Related Content
|
|
~~~~~~~~~~~~~~~
|
|
|
|
* Jaccard similarity for related content ranking
|
|
* Related content thumbnails in sidebar
|
|
|
|
Feeds & SEO
|
|
~~~~~~~~~~~~
|
|
|
|
* Sitemap generation (``/sitemap.xml``)
|
|
* RSS (``/rss.xml``) and Atom (``/atom.xml``) feeds
|
|
* Google site verification meta tag support
|
|
* Feeds served as ``application/xml`` for browser rendering
|
|
* Feed links open in new window
|
|
|
|
Adyen Integration
|
|
~~~~~~~~~~~~~~~~~
|
|
|
|
* Added Adyen as a payment processor
|
|
* Per-shop enable/disable toggle
|
|
* See ``docs/ADYEN.md`` for details
|
|
|
|
Stripe Improvements
|
|
~~~~~~~~~~~~~~~~~~~
|
|
|
|
* Payment tracking and webhook resilience
|
|
* Per-shop Stripe enable/disable
|
|
|
|
UI & Layout
|
|
~~~~~~~~~~~
|
|
|
|
* Sticky ribbon + logo/nav on desktop scroll
|
|
* Footer pushed to bottom of viewport on short pages
|
|
* Product media uses viewport-relative sizing (``max-height: 42vh``)
|
|
* Reduced heading font sizes for tighter layout
|
|
* Product/content dates toggle (``show_dates`` shop setting)
|
|
* Inline video playback on thumbnail click (replaced pop-up)
|
|
|
|
Infrastructure
|
|
~~~~~~~~~~~~~~
|
|
|
|
* ``/version`` endpoint with baked git hash for deploy verification
|
|
* ``GIT_HASH`` tracked in repo, baked at install time
|
|
* Removed jQuery — all vanilla JavaScript
|
|
* Replaced JS toggles with pure CSS ``<details>`` elements
|
|
* Pinned ``setuptools<81`` for Python 3.12+ compatibility
|
|
|
|
2025-12-22 (2:30 PM)
|
|
--------------------
|
|
|
|
PayPal Integration
|
|
~~~~~~~~~~~~~~~~~~
|
|
|
|
* Added PayPal as a payment processor alongside Stripe and crypto payments
|
|
* New ``PayPalUserShop`` model for saved payment methods
|
|
* Invoice model extended with ``paypal_order_id`` and ``paypal_capture_id`` columns
|
|
* Shop settings now include PayPal client ID and secret configuration
|
|
* Checkout page supports PayPal payment option when enabled
|
|
* Added PayPal saved payment methods (vault) support
|
|
* Added ``/billing/disconnect-paypal`` route for users to manage saved PayPal
|
|
* See ``docs/PAYPAL.md`` for details
|
|
|
|
CSS Grid Lanes
|
|
~~~~~~~~~~~~~~
|
|
|
|
* Added toggleable CSS Grid Lanes (masonry layout) setting per shop
|
|
* New ``grid_lanes_enabled`` column on Shop model
|
|
|
|
Video Thumbnails
|
|
~~~~~~~~~~~~~~~~
|
|
|
|
* Added play button overlay on video thumbnails for unlocked content
|
|
* Styled video play overlay with red tint and click-to-play text
|
|
|
|
Meta Tags
|
|
~~~~~~~~~
|
|
|
|
* Added Twitter card meta tags for proper link unfurling on Matrix/Discord
|
|
* Increased meta description truncation to 500 chars
|