audio/puddletag: import puddletag-2.0.1
puddletag is an audio tag editor (primarily created) for GNU/Linux similar to the Windows program, Mp3tag. Unlike most taggers for GNU/Linux, it uses a spreadsheet-like layout so that all the tags you want to edit by hand are visible and easily editable. The usual tag editor features are supported like extracting tag information from filenames, renaming files based on their tags by using patterns and basic tag editing. Then there're Functions, which can do things like replace text, trim it, do case conversions, etc. Actions can automate repetitive tasks. Doing web lookups using Amazon (including cover art), Discogs (does cover art too!), FreeDB and MusicBrainz is also supported.
This commit is contained in:
parent
b8406c66fa
commit
86ce51784a
5 changed files with 274 additions and 0 deletions
13
audio/puddletag/DESCR
Normal file
13
audio/puddletag/DESCR
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
puddletag is an audio tag editor (primarily created) for GNU/Linux
|
||||||
|
similar to the Windows program, Mp3tag. Unlike most taggers for
|
||||||
|
GNU/Linux, it uses a spreadsheet-like layout so that all the tags
|
||||||
|
you want to edit by hand are visible and easily editable.
|
||||||
|
|
||||||
|
The usual tag editor features are supported like extracting tag
|
||||||
|
information from filenames, renaming files based on their tags by
|
||||||
|
using patterns and basic tag editing.
|
||||||
|
|
||||||
|
Then there're Functions, which can do things like replace text,
|
||||||
|
trim it, do case conversions, etc. Actions can automate repetitive
|
||||||
|
tasks. Doing web lookups using Amazon (including cover art), Discogs
|
||||||
|
(does cover art too!), FreeDB and MusicBrainz is also supported.
|
32
audio/puddletag/Makefile
Normal file
32
audio/puddletag/Makefile
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
# $NetBSD: Makefile,v 1.1 2022/12/16 17:49:09 wiz Exp $
|
||||||
|
|
||||||
|
DISTNAME= puddletag-2.0.1
|
||||||
|
CATEGORIES= audio python
|
||||||
|
MASTER_SITES= ${MASTER_SITE_GITHUB:=puddletag/}
|
||||||
|
GITHUB_RELEASE= ${PKGVERSION_NOREV}
|
||||||
|
GITHUB_PROJECT= puddletag
|
||||||
|
|
||||||
|
MAINTAINER= pkgsrc-users@NetBSD.org
|
||||||
|
HOMEPAGE= http://puddletag.sourceforge.net/
|
||||||
|
COMMENT= Simple, powerful audio tag editor
|
||||||
|
LICENSE= gnu-gpl-v2
|
||||||
|
|
||||||
|
DEPENDS+= chromaprint>=0.4:../../audio/chromaprint
|
||||||
|
DEPENDS+= quodlibet-[0-9]*:../../audio/quodlibet
|
||||||
|
DEPENDS+= ${PYPKGPREFIX}-configobj-[0-9]*:../../devel/py-configobj
|
||||||
|
DEPENDS+= ${PYPKGPREFIX}-pyparsing>=1.5.1:../../devel/py-pyparsing
|
||||||
|
DEPENDS+= ${PYPKGPREFIX}-mutagen>=1.45:../../audio/py-mutagen
|
||||||
|
DEPENDS+= ${PYPKGPREFIX}-qt5-[0-9]*:../../x11/py-qt5
|
||||||
|
|
||||||
|
USE_LANGUAGES= # none
|
||||||
|
|
||||||
|
PYTHON_SELF_CONFLICT= yes
|
||||||
|
PYTHON_VERSIONS_INCOMPATIBLE= 27 37
|
||||||
|
|
||||||
|
INSTALLATION_DIRS= ${PKGMANDIR}/man1
|
||||||
|
|
||||||
|
post-install:
|
||||||
|
${MV} ${DESTDIR}${PREFIX}/share/man/man1/* ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1
|
||||||
|
|
||||||
|
.include "../../lang/python/egg.mk"
|
||||||
|
.include "../../mk/bsd.pkg.mk"
|
207
audio/puddletag/PLIST
Normal file
207
audio/puddletag/PLIST
Normal file
|
@ -0,0 +1,207 @@
|
||||||
|
@comment $NetBSD: PLIST,v 1.1 2022/12/16 17:49:09 wiz Exp $
|
||||||
|
bin/puddletag
|
||||||
|
${PYSITELIB}/puddlestuff/__init__.py
|
||||||
|
${PYSITELIB}/puddlestuff/__init__.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/__init__.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/about.py
|
||||||
|
${PYSITELIB}/puddlestuff/about.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/about.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/action_shortcuts.py
|
||||||
|
${PYSITELIB}/puddlestuff/action_shortcuts.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/action_shortcuts.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/actiondlg.py
|
||||||
|
${PYSITELIB}/puddlestuff/actiondlg.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/actiondlg.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/audio_filter.py
|
||||||
|
${PYSITELIB}/puddlestuff/audio_filter.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/audio_filter.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/audioinfo/__init__.py
|
||||||
|
${PYSITELIB}/puddlestuff/audioinfo/__init__.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/audioinfo/__init__.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/audioinfo/_compatid3.py
|
||||||
|
${PYSITELIB}/puddlestuff/audioinfo/_compatid3.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/audioinfo/_compatid3.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/audioinfo/apev2.py
|
||||||
|
${PYSITELIB}/puddlestuff/audioinfo/apev2.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/audioinfo/apev2.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/audioinfo/constants.py
|
||||||
|
${PYSITELIB}/puddlestuff/audioinfo/constants.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/audioinfo/constants.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/audioinfo/id3.py
|
||||||
|
${PYSITELIB}/puddlestuff/audioinfo/id3.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/audioinfo/id3.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/audioinfo/mp4.py
|
||||||
|
${PYSITELIB}/puddlestuff/audioinfo/mp4.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/audioinfo/mp4.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/audioinfo/tag_versions.py
|
||||||
|
${PYSITELIB}/puddlestuff/audioinfo/tag_versions.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/audioinfo/tag_versions.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/audioinfo/util.py
|
||||||
|
${PYSITELIB}/puddlestuff/audioinfo/util.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/audioinfo/util.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/audioinfo/vorbis.py
|
||||||
|
${PYSITELIB}/puddlestuff/audioinfo/vorbis.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/audioinfo/vorbis.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/confirmations.py
|
||||||
|
${PYSITELIB}/puddlestuff/confirmations.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/confirmations.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/constants.py
|
||||||
|
${PYSITELIB}/puddlestuff/constants.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/constants.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/findfunc.py
|
||||||
|
${PYSITELIB}/puddlestuff/findfunc.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/findfunc.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/funcprint.py
|
||||||
|
${PYSITELIB}/puddlestuff/funcprint.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/funcprint.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/functions.py
|
||||||
|
${PYSITELIB}/puddlestuff/functions.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/functions.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/functions_dialogs.py
|
||||||
|
${PYSITELIB}/puddlestuff/functions_dialogs.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/functions_dialogs.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/genres.py
|
||||||
|
${PYSITELIB}/puddlestuff/genres.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/genres.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/helperwin.py
|
||||||
|
${PYSITELIB}/puddlestuff/helperwin.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/helperwin.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/libraries/__init__.py
|
||||||
|
${PYSITELIB}/puddlestuff/libraries/__init__.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/libraries/__init__.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/libraries/quodlibetlib.py
|
||||||
|
${PYSITELIB}/puddlestuff/libraries/quodlibetlib.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/libraries/quodlibetlib.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/loadshortcuts.py
|
||||||
|
${PYSITELIB}/puddlestuff/loadshortcuts.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/loadshortcuts.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/logger.py
|
||||||
|
${PYSITELIB}/puddlestuff/logger.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/logger.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/m3u.py
|
||||||
|
${PYSITELIB}/puddlestuff/m3u.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/m3u.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/__init__.py
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/__init__.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/__init__.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/action_dialogs.py
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/action_dialogs.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/action_dialogs.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/artwork.py
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/artwork.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/artwork.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/dirview.py
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/dirview.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/dirview.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/filterwin.py
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/filterwin.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/filterwin.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/funcs.py
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/funcs.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/funcs.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/logdialog.py
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/logdialog.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/logdialog.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/patterncombo.py
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/patterncombo.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/patterncombo.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/previews.py
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/previews.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/previews.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/storedtags.py
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/storedtags.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/storedtags.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/tagpanel.py
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/tagpanel.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/tagpanel.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/tagtools.py
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/tagtools.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/mainwin/tagtools.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/masstag/__init__.py
|
||||||
|
${PYSITELIB}/puddlestuff/masstag/__init__.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/masstag/__init__.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/masstag/config.py
|
||||||
|
${PYSITELIB}/puddlestuff/masstag/config.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/masstag/config.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/masstag/dialogs.py
|
||||||
|
${PYSITELIB}/puddlestuff/masstag/dialogs.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/masstag/dialogs.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/musiclib.py
|
||||||
|
${PYSITELIB}/puddlestuff/musiclib.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/musiclib.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/pluginloader.py
|
||||||
|
${PYSITELIB}/puddlestuff/pluginloader.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/pluginloader.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/plugins/__init__.py
|
||||||
|
${PYSITELIB}/puddlestuff/plugins/__init__.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/plugins/__init__.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/puddleobjects.py
|
||||||
|
${PYSITELIB}/puddlestuff/puddleobjects.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/puddleobjects.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/puddlesettings.py
|
||||||
|
${PYSITELIB}/puddlestuff/puddlesettings.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/puddlesettings.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/puddletag.py
|
||||||
|
${PYSITELIB}/puddlestuff/puddletag.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/puddletag.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/releasewidget.py
|
||||||
|
${PYSITELIB}/puddlestuff/releasewidget.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/releasewidget.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/resource.py
|
||||||
|
${PYSITELIB}/puddlestuff/resource.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/resource.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/shortcutsettings.py
|
||||||
|
${PYSITELIB}/puddlestuff/shortcutsettings.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/shortcutsettings.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/tagmodel.py
|
||||||
|
${PYSITELIB}/puddlestuff/tagmodel.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/tagmodel.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/tagsources/CDDB.py
|
||||||
|
${PYSITELIB}/puddlestuff/tagsources/CDDB.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/tagsources/CDDB.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/tagsources/__init__.py
|
||||||
|
${PYSITELIB}/puddlestuff/tagsources/__init__.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/tagsources/__init__.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/tagsources/_acoustid.py
|
||||||
|
${PYSITELIB}/puddlestuff/tagsources/_acoustid.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/tagsources/_acoustid.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/tagsources/acoust_id.py
|
||||||
|
${PYSITELIB}/puddlestuff/tagsources/acoust_id.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/tagsources/acoust_id.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/tagsources/amazon.py
|
||||||
|
${PYSITELIB}/puddlestuff/tagsources/amazon.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/tagsources/amazon.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/tagsources/discogs.py
|
||||||
|
${PYSITELIB}/puddlestuff/tagsources/discogs.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/tagsources/discogs.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/tagsources/freedb.py
|
||||||
|
${PYSITELIB}/puddlestuff/tagsources/freedb.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/tagsources/freedb.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/tagsources/mp3tag/__init__.py
|
||||||
|
${PYSITELIB}/puddlestuff/tagsources/mp3tag/__init__.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/tagsources/mp3tag/__init__.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/tagsources/mp3tag/funcs.py
|
||||||
|
${PYSITELIB}/puddlestuff/tagsources/mp3tag/funcs.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/tagsources/mp3tag/funcs.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/tagsources/musicbrainz.py
|
||||||
|
${PYSITELIB}/puddlestuff/tagsources/musicbrainz.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/tagsources/musicbrainz.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/tagsources/parse_html.py
|
||||||
|
${PYSITELIB}/puddlestuff/tagsources/parse_html.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/tagsources/parse_html.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/translations.py
|
||||||
|
${PYSITELIB}/puddlestuff/translations.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/translations.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/util.py
|
||||||
|
${PYSITELIB}/puddlestuff/util.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/util.pyo
|
||||||
|
${PYSITELIB}/puddlestuff/webdb.py
|
||||||
|
${PYSITELIB}/puddlestuff/webdb.pyc
|
||||||
|
${PYSITELIB}/puddlestuff/webdb.pyo
|
||||||
|
${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
|
||||||
|
${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
|
||||||
|
${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
|
||||||
|
${PYSITELIB}/${EGG_INFODIR}/top_level.txt
|
||||||
|
man/man1/puddletag.1
|
||||||
|
share/applications/puddletag.desktop
|
||||||
|
share/pixmaps/puddletag.png
|
6
audio/puddletag/distinfo
Normal file
6
audio/puddletag/distinfo
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
$NetBSD: distinfo,v 1.1 2022/12/16 17:49:09 wiz Exp $
|
||||||
|
|
||||||
|
BLAKE2s (puddletag-2.0.1.tar.gz) = 1175e9a0f9868e2c37d1227cb70bdbf0810b778db4693980447f5fa852aa8b4c
|
||||||
|
SHA512 (puddletag-2.0.1.tar.gz) = d84ba360a6cd8c3ddb6628e30276df58d059d9e8cbb2d1255320ca273436c69f05584059c2e768a15871d3f56dc08d7ac96fef9a9c7c077811bb9fdfde444610
|
||||||
|
Size (puddletag-2.0.1.tar.gz) = 1227152 bytes
|
||||||
|
SHA1 (patch-puddlestuff_audio__filter.py) = ddd6508a902a5105471819d5feb9ce04e300db2c
|
16
audio/puddletag/patches/patch-puddlestuff_audio__filter.py
Normal file
16
audio/puddletag/patches/patch-puddlestuff_audio__filter.py
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
$NetBSD: patch-puddlestuff_audio__filter.py,v 1.1 2022/12/16 17:49:09 wiz Exp $
|
||||||
|
|
||||||
|
Stop using deprecated function.
|
||||||
|
https://github.com/puddletag/puddletag/issues/643
|
||||||
|
|
||||||
|
--- puddlestuff/audio_filter.py.orig 2020-08-29 13:19:47.992420700 +0000
|
||||||
|
+++ puddlestuff/audio_filter.py
|
||||||
|
@@ -180,7 +180,7 @@ bool_exprs = [
|
||||||
|
field_expr = Combine('%' + Word(alphanums + '_') + '%')
|
||||||
|
tokens = QuotedString('"', unquoteResults=False) \
|
||||||
|
| field_expr | Word(alphanums + '_')
|
||||||
|
-bool_expr = operatorPrecedence(tokens, bool_exprs)
|
||||||
|
+bool_expr = infixNotation(tokens, bool_exprs)
|
||||||
|
bool_expr.enablePackrat()
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue