Issue is that Werkzeug > 1.0.0 has removed werkzeug.contrib.atom.AtomFeed,
making it difficult to use a distribution-packaged version of werkzeug. To solve
this, I've replaced use of werkzeug.contrib.atom.AtomFeed with
feedgenerator.Atom1Feed.
After the change, the only major difference between the feeds before and after is
that they use <summary> instead of <content>. Minor differences include no longer
adding 'type="text/html"' on some <link> elements and no "xml:base" attribute on
<entry> elements. I don't think these differences will have any noticable
effect.
Tested on Liferea feed reader.
We may need to push download link creation into the view in the future to make
it more fully featured, but this will solve the immediate issue with missing
download links on new media after 0.10.0. Sorting of entries won't be right if
your media is over 999p since it's alphabetical.
The `audiotospectrogram` module is a complete rewrite of the existing spectrogram
code with support for Python 3. This allows us to drop the bundled `freesound`
library and Python 2-only `audioprocessing` and `spectrogram` modules.
Signed-off-by: Ben Sturmfels <ben@sturm.com.au>
This change starts Celery only after RabbitMQ is available. It also returns the
unnecessarily low BROKER_HEARTBEAT setting to default of 120.0 to help prevent
connections being reset on machines under load.
For 0.10.0 we're removing specrograms entirely for reliability. This change only
disables spectrograms and updates install docs and Dockerfiles. We still need
to strip out all the spectrogram code and extlib/freesound/.
Prior to this change, when pagination kicks in on the user management or report
management panel, the following exception is raised:
TypeError: a bytes-like object is required, not 'str'
The cause is that `request.query_string` in the URL parameters in raw bytestring
form as per Werkzeug documentation.
This doesn't seem to be an issue in my Guix SD/Python 3.7 testing, but hit an
issue on Debian 9/Python3.5 where concatenating text to `request.query_string`
was causing the error:
TypeError: a bytes-like object is required, not 'str'
This clearly hasn't been an issue in the past though, so I suspect there's a
library somewhere that's on a different version and is behaving differently.
In addition to side-stepping spectrograms completely in Python 3 in 1038aea8,
this commit adds some fallbacks that will help with potential issues in Python 2.
Fixes Issue #5457
Signed-off-by: Ben Sturmfels <ben@sturm.com.au>
Author: Jorge <mediagoblin@gybs.waa>
This change adds a Python 3-specific audio thumbnailer that side-steps the
bundled Python 2-only `audioprocessing` module. Instead of an audio spectrogram,
Python 3 users will get a static image.
This also allows me to remove my ineffective customisations to
`audioprocessing`, returning it to the upstream version as should always be the
case for vendored code in "extlib".
Warning was:
PyGIWarning: GstPbutils was imported without specifying a version first. Use gi.require_version('GstPbutils', '1.0') before import to ensure that the right version gets loaded.
Switching from iteritems() to items() is technically less memory efficient on
Python 2, but this appeared be a significantly cleaner approach than adding six
to the template context. It's also the right choice assuming the project will at
some point go Python 3 only.
To avoid issues with quotes, I've replaced the manual CSV handling with
csv.DictReader and simplified the unicode handling down to a single line. I
don't believe any special encoding is required when writing to the database.
This has been tested by importing a CSV with braille characters on Python 3 and
Python 2.
Original of the video was not saved because info about it was not
written to the database. Fixed that.
Also removed original video from get_all_media listing. The method is
weird, we should evaluate whether it is video-specific and how to
generalize it.