Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nautilus-based files managers plugin #405

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 26 additions & 2 deletions Project/GNU/PKGBUILD
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Maintainer: MediaArea.net SARL <[email protected]>
# Contributor: hydro <[email protected]>

pkgname=('mediainfo' 'mediainfo-gui')
pkgname=('mediainfo' 'mediainfo-gui' 'mediainfo-nautilus-plugin' 'mediainfo-nemo-plugin')
pkgver=19.09
pkgrel=1
pkgdesc="supplies technical and tag information about a video or audio file"
Expand All @@ -11,7 +11,6 @@ license=('GPL')
source=(${pkgname}_${pkgver}.orig.tar.xz)
md5sums=('00000000000000000000000000000000')
arch=('i686' 'x86_64')

depends=('libzen>=0.4.37' 'libmediainfo>=19.09' 'wxgtk' 'libsm' 'desktop-file-utils')

prepare() {
Expand Down Expand Up @@ -48,3 +47,28 @@ package_mediainfo-gui() {
make DESTDIR="${pkgdir}" install
}

package_mediainfo-nautilus-plugin() {
pkgdesc="${pkgdesc} (Nautilus plugin)"
depends=('python-mediainfo' 'python-nautilus')

install -m 0755 -d ${pkgdir}/usr/share/nautilus-python/extensions/mediainfo/ui/
install -m 0755 -d ${pkgdir}/usr/share/nautilus-python/extensions/mediainfo/locale/
install -m 0644 "${srcdir}"/MediaInfo/Source/Resource/Plugin/Language/*.csv ${pkgdir}/usr/share/nautilus-python/extensions/mediainfo/locale/
install -m 0644 "${srcdir}"/MediaInfo/Source/Plugins/FMS/ui.glade ${pkgdir}/usr/share/nautilus-python/extensions/mediainfo/ui/
install -m 0644 "${srcdir}"/MediaInfo/Source/Plugins/FMS/__init__.py ${pkgdir}/usr/share/nautilus-python/extensions/mediainfo/
install -m 0644 "${srcdir}"/MediaInfo/Source/Plugins/FMS/tab.py ${pkgdir}/usr/share/nautilus-python/extensions/mediainfo/
install -m 0644 "${srcdir}"/MediaInfo/Source/Plugins/FMS/nautilus-mediainfo.py ${pkgdir}/usr/share/nautilus-python/extensions/
}

package_mediainfo-nemo-plugin() {
pkgdesc="${pkgdesc} (Nemo plugin)"
depends=('python-mediainfo' 'nemo-python')

install -m 0755 -d ${pkgdir}/usr/share/nemo-python/extensions/mediainfo/ui/
install -m 0755 -d ${pkgdir}/usr/share/nemo-python/extensions/mediainfo/locale/
install -m 0644 "${srcdir}"/MediaInfo/Source/Resource/Plugin/Language/*.csv ${pkgdir}/usr/share/nemo-python/extensions/mediainfo/locale/
install -m 0644 "${srcdir}"/MediaInfo/Source/Plugins/FMS/ui.glade ${pkgdir}/usr/share/nemo-python/extensions/mediainfo/ui/
install -m 0644 "${srcdir}"/MediaInfo/Source/Plugins/FMS/__init__.py ${pkgdir}/usr/share/nemo-python/extensions/mediainfo/
install -m 0644 "${srcdir}"/MediaInfo/Source/Plugins/FMS/tab.py ${pkgdir}/usr/share/nemo-python/extensions/mediainfo/
install -m 0644 "${srcdir}"/MediaInfo/Source/Plugins/FMS/nemo-mediainfo.py ${pkgdir}/usr/share/nemo-python/extensions/
}
106 changes: 106 additions & 0 deletions Project/GNU/mediainfo.spec
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,54 @@ This package includes the graphical user interface.
%{gui_description}
%endif

%if ! 0%{?rhel} && ! 0%{?sles_version} && ! 0%{?sle_version}
%global fms_description MediaInfo is a convenient unified display of the most relevant technical\
and tag data for video and audio files.\
\
What information can I get from MediaInfo?\
* General: title, author, director, album, track number, date, duration...\
* Video: codec, aspect, fps, bitrate...\
* Audio: codec, sample rate, channels, language, bitrate...\
* Text: language of subtitle\
* Chapters: number of chapters, list of chapters\
\
DivX, XviD, H263, H.263, H264, x264, ASP, AVC, iTunes, MPEG-1,\
MPEG1, MPEG-2, MPEG2, MPEG-4, MPEG4, MP4, M4A, M4V, QuickTime,\
RealVideo, RealAudio, RA, RM, MSMPEG4v1, MSMPEG4v2, MSMPEG4v3,\
VOB, DVD, WMA, VMW, ASF, 3GP, 3GPP, 3GP2\
\
What format (container) does MediaInfo support?\
* Video: MKV, OGM, AVI, DivX, WMV, QuickTime, Real, MPEG-1,\
MPEG-2, MPEG-4, DVD (VOB) (Codecs: DivX, XviD, MSMPEG4, ASP,\
H.264, AVC...)\
* Audio: OGG, MP3, WAV, RA, AC3, DTS, AAC, M4A, AU, AIFF\
* Subtitles: SRT, SSA, ASS, SAMI\
\
This package includes the plugin for nautilus-based files managers.

%package nautilus-plugin
Summary: Supplies technical and tag information about a video or audio file (Nautilus plugin)
Group: Applications/Multimedia
Requires: %{libzen_name}%{?_isa} >= %{libzen_version}
Requires: %{libmediainfo_name}%{?_isa} >= %{libmediainfo_version}
Requires: nautilus-python
Requires: python3-mediainfo

%description nautilus-plugin
%{fms_description}

%package nemo-plugin
Summary: Supplies technical and tag information about a video or audio file (Nemo plugin)
Group: Applications/Multimedia
Requires: %{libzen_name}%{?_isa} >= %{libzen_version}
Requires: %{libmediainfo_name}%{?_isa} >= %{libmediainfo_version}
Requires: python3-nemo
Requires: python3-mediainfo

%description nemo-plugin
%{fms_description}
%endif

%prep
%setup -q -n MediaInfo
sed -i 's/.$//' *.txt *.html Release/*.txt
Expand Down Expand Up @@ -239,6 +287,24 @@ pushd Project/GNU/GUI
make install DESTDIR=%{buildroot}
popd

%if ! 0%{?rhel} && ! 0%{?sles_version} && ! 0%{?sle_version}
install -m 0755 -d %{buildroot}%{_datadir}/nautilus-python/extensions/mediainfo/ui/
install -m 0755 -d %{buildroot}%{_datadir}/nautilus-python/extensions/mediainfo/locale/
install -m 0644 Source/Resource/Plugin/Language/*.csv %{buildroot}%{_datadir}/nautilus-python/extensions/mediainfo/locale/
install -m 0644 Source/Plugins/FMS/ui.glade %{buildroot}%{_datadir}/nautilus-python/extensions/mediainfo/ui/
install -m 0644 Source/Plugins/FMS/__init__.py %{buildroot}%{_datadir}/nautilus-python/extensions/mediainfo/
install -m 0644 Source/Plugins/FMS/tab.py %{buildroot}%{_datadir}/nautilus-python/extensions/mediainfo/
install -m 0644 Source/Plugins/FMS/nautilus-mediainfo.py %{buildroot}%{_datadir}/nautilus-python/extensions/

install -m 0755 -d %{buildroot}%{_datadir}/nemo-python/extensions/mediainfo/ui/
install -m 0755 -d %{buildroot}%{_datadir}/nemo-python/extensions/mediainfo/locale/
install -m 0644 Source/Resource/Plugin/Language/*.csv %{buildroot}%{_datadir}/nemo-python/extensions/mediainfo/locale/
install -m 0644 Source/Plugins/FMS/ui.glade %{buildroot}%{_datadir}/nemo-python/extensions/mediainfo/ui/
install -m 0644 Source/Plugins/FMS/__init__.py %{buildroot}%{_datadir}/nemo-python/extensions/mediainfo/
install -m 0644 Source/Plugins/FMS/tab.py %{buildroot}%{_datadir}/nemo-python/extensions/mediainfo/
install -m 0644 Source/Plugins/FMS/nemo-mediainfo.py %{buildroot}%{_datadir}/nemo-python/extensions/
%endif

%if %{undefined fedora_version} || 0%{?fedora_version} < 26
rm -fr %{buildroot}%{_datadir}/metainfo
install -dm 755 %{buildroot}%{_datadir}/appdata/
Expand Down Expand Up @@ -318,6 +384,46 @@ install -m 644 Project/GNU/GUI/mediainfo-gui.metainfo.xml %{buildroot}%{_datadir
%{gui_files}
%endif

%if ! 0%{?rhel} && ! 0%{?sles_version} && ! 0%{?sle_version}
%define nautilus_files %defattr(-,root,root,-)\
%if 0%{?fedora_version} || 0%{?centos_version} >= 700 || 0%{?rhel_version} >= 700\
%license License.html\
%else\
%doc License.html\
%endif\
%dir %{_datadir}/nautilus-python\
%dir %{_datadir}/nautilus-python/extensions\
%{_datadir}/nautilus-python/extensions/nautilus-mediainfo.py\
%dir %{_datadir}/nautilus-python/extensions/mediainfo\
%{_datadir}/nautilus-python/extensions/mediainfo/*.py\
%dir %{_datadir}/nautilus-python/extensions/mediainfo/ui\
%{_datadir}/nautilus-python/extensions/mediainfo/ui/*.glade\
%dir %{_datadir}/nautilus-python/extensions/mediainfo/locale\
%{_datadir}/nautilus-python/extensions/mediainfo/locale/*.csv

%files nautilus-plugin
%{nautilus_files}

%define nemo_files %defattr(-,root,root,-)\
%if 0%{?fedora_version} || 0%{?centos_version} >= 700 || 0%{?rhel_version} >= 700\
%license License.html\
%else\
%doc License.html\
%endif\
%dir %{_datadir}/nemo-python\
%dir %{_datadir}/nemo-python/extensions\
%{_datadir}/nemo-python/extensions/nemo-mediainfo.py\
%dir %{_datadir}/nemo-python/extensions/mediainfo\
%{_datadir}/nemo-python/extensions/mediainfo/*.py\
%dir %{_datadir}/nemo-python/extensions/mediainfo/ui\
%{_datadir}/nemo-python/extensions/mediainfo/ui/*.glade\
%dir %{_datadir}/nemo-python/extensions/mediainfo/locale\
%{_datadir}/nemo-python/extensions/mediainfo/locale/*.csv

%files nemo-plugin
%{nemo_files}
%endif

%changelog
* Thu Jan 01 2009 MediaArea.net SARL <[email protected]> - %{mediainfo_version}
- See History.txt for more info and real dates
Expand Down
44 changes: 44 additions & 0 deletions Project/OBS/deb9.debian/control
Original file line number Diff line number Diff line change
Expand Up @@ -117,3 +117,47 @@ Description: graphical utility for reading information from audio/video files
- Subtitles: SRT, SSA, ASS, SAMI...
.
This package contains the debugging symbols of the graphical user interface.

Package: mediainfo-nautilus-plugin
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, python-nautilus, python-mediainfodll, libmediainfo0v5 (>= 19.09), libzen0v5 (>= 0.4.37)
Description: Nautilus plugin for reading information from audio/video files using MediaInfo
MediaInfo is a utility used for retrieving technical information and other
metadata about audio or video files.
.
A non-exhaustive list of the information MediaInfo can retrieve from media
files include:
- General: title, author, director, album, track number, date, duration...
- Video: codec, aspect, fps, bitrate...
- Audio: codec, sample rate, channels, language, bitrate...
- Text: language of subtitle
- Chapters: number of chapters, list of chapters
.
MediaInfo supports the following formats:
- Video: MKV, OGM, AVI, DivX, WMV, QuickTime, Real, MPEG-1, MPEG-2,
MPEG-4, DVD (VOB)...
- Video Codecs: DivX, XviD, MSMPEG4, ASP, H.264, AVC...)
- Audio: OGG, MP3, WAV, RA, AC3, DTS, AAC, M4A, AU, AIFF...
- Subtitles: SRT, SSA, ASS, SAMI...

Package: mediainfo-nemo-plugin
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}, python-nemo, python3-mediainfodll, libmediainfo0v5 (>= 19.09), libzen0v5 (>= 0.4.37)
Description: Nemo plugin for reading information from audio/video files using MediaInfo
MediaInfo is a utility used for retrieving technical information and other
metadata about audio or video files.
.
A non-exhaustive list of the information MediaInfo can retrieve from media
files include:
- General: title, author, director, album, track number, date, duration...
- Video: codec, aspect, fps, bitrate...
- Audio: codec, sample rate, channels, language, bitrate...
- Text: language of subtitle
- Chapters: number of chapters, list of chapters
.
MediaInfo supports the following formats:
- Video: MKV, OGM, AVI, DivX, WMV, QuickTime, Real, MPEG-1, MPEG-2,
MPEG-4, DVD (VOB)...
- Video Codecs: DivX, XviD, MSMPEG4, ASP, H.264, AVC...)
- Audio: OGG, MP3, WAV, RA, AC3, DTS, AAC, M4A, AU, AIFF...
- Subtitles: SRT, SSA, ASS, SAMI...
5 changes: 5 additions & 0 deletions Project/OBS/deb9.debian/mediainfo-nautilus-plugin.install
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
/usr/share/nautilus-python/extensions/mediainfo/ui/ui.glade
/usr/share/nautilus-python/extensions/mediainfo/locale/*.csv
/usr/share/nautilus-python/extensions/mediainfo/__init__.py
/usr/share/nautilus-python/extensions/mediainfo/tab.py
/usr/share/nautilus-python/extensions/nautilus-mediainfo.py
5 changes: 5 additions & 0 deletions Project/OBS/deb9.debian/mediainfo-nemo-plugin.install
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
/usr/share/nemo-python/extensions/mediainfo/ui/ui.glade
/usr/share/nemo-python/extensions/mediainfo/locale/*.csv
/usr/share/nemo-python/extensions/mediainfo/__init__.py
/usr/share/nemo-python/extensions/mediainfo/tab.py
/usr/share/nemo-python/extensions/nemo-mediainfo.py
9 changes: 9 additions & 0 deletions Project/OBS/deb9.debian/rules
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,15 @@ override_dh_auto_build:

override_dh_auto_install:
$(call auto_build_cmd,dh_auto_install)
for fms in nautilus nemo ; do \
install -m 0755 -d $(CURDIR)/debian/tmp/usr/share/"$$fms"-python/extensions/mediainfo/ui/;\
install -m 0644 Source/Plugins/FMS/ui.glade $(CURDIR)/debian/tmp/usr/share/"$$fms"-python/extensions/mediainfo/ui/ui.glade; \
install -m 0755 -d $(CURDIR)/debian/tmp/usr/share/"$$fms"-python/extensions/mediainfo/locale/; \
install -m 0644 Source/Resource/Plugin/Language/*.csv $(CURDIR)/debian/tmp/usr/share/"$$fms"-python/extensions/mediainfo/locale/; \
install -m 0644 Source/Plugins/FMS/__init__.py $(CURDIR)/debian/tmp/usr/share/"$$fms"-python/extensions/mediainfo/; \
install -m 0644 Source/Plugins/FMS/tab.py $(CURDIR)/debian/tmp/usr/share/"$$fms"-python/extensions/mediainfo/; \
install -m 0644 Source/Plugins/FMS/"$$fms"-mediainfo.py $(CURDIR)/debian/tmp/usr/share/"$$fms"-python/extensions/; \
done

override_dh_auto_clean:
$(call auto_build_cmd,dh_auto_clean)
Expand Down
4 changes: 3 additions & 1 deletion Project/OBS/deb9.dsc
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Format: 3.0 (quilt)
Source: mediainfo
Binary: mediainfo, mediainfo-dbg, mediainfo-gui, mediainfo-gui-dbg
Binary: mediainfo, mediainfo-dbg, mediainfo-gui, mediainfo-gui-dbg, mediainfo-nautilus-plugin, mediainfo-nemo-plugin
Architecture: any
Version: 19.09-1deb9
Maintainer: MediaArea.net SARL <[email protected]>
Expand All @@ -12,6 +12,8 @@ Build-Depends: debhelper (>= 9), dh-autoreconf, libmediainfo-dev (>= 19.09), lib
Package-List:
mediainfo deb utils optional arch=any
mediainfo-gui deb utils optional arch=any
mediainfo-nautilus-plugin deb utils optional arch=any
mediainfo-nemo-plugin deb utils optional arch=any
Checksums-Sha1:
0000000000000000000000000000000000000000 000000 mediainfo_19.09.orig.tar.xz
0000000000000000000000000000000000000000 000000 mediainfo_19.09-1deb9.debian.tar.xz
Expand Down
5 changes: 5 additions & 0 deletions Source/Plugins/FMS/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
## Copyright (c) MediaArea.net SARL. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license that can
# be found in the License.html file in the root of the source tree.
##
45 changes: 45 additions & 0 deletions Source/Plugins/FMS/nautilus-mediainfo.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
## Copyright (c) MediaArea.net SARL. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license that can
# be found in the License.html file in the root of the source tree.
##

import locale, os, subprocess
from mediainfo.tab import *

try:
from urllib import unquote
except ImportError:
from urllib.parse import unquote

from gi.repository import GObject, Gtk, Nautilus

class MediainfoPropertyPage(GObject.GObject, Nautilus.PropertyPageProvider):
def get_property_pages(self, files):
# TODO: handle multiples files
if len(files) != 1:
return

file = files[0]
if file.get_uri_scheme() != 'file':
return

if file.is_directory():
return

filename = unquote(file.get_uri()[7:])

try:
filename = filename.decode("utf-8")
except:
pass

self.tab = MediaInfoTab(filename)

if not self.tab.accepted:
return

self.label = Gtk.Label('MediaInfo')
self.label.show()

return Nautilus.PropertyPage(name="NautilusPython::mediainfo", label=self.label, page=self.tab.mainWindow),
48 changes: 48 additions & 0 deletions Source/Plugins/FMS/nemo-mediainfo.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
## Copyright (c) MediaArea.net SARL. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license that can
# be found in the License.html file in the root of the source tree.
##

import locale, os, subprocess
from mediainfo.tab import *

try:
from urllib import unquote
except ImportError:
from urllib.parse import unquote

from gi.repository import GObject, Gtk, Nemo

class MediainfoPropertyPage(GObject.GObject, Nemo.PropertyPageProvider, Nemo.NameAndDescProvider):
def get_property_pages(self, files):
# TODO: handle multiples files
if len(files) != 1:
return

file = files[0]
if file.get_uri_scheme() != 'file':
return

if file.is_directory():
return

filename = unquote(file.get_uri()[7:])

try:
filename = filename.decode("utf-8")
except:
pass

self.tab = MediaInfoTab(filename)

if not self.tab.accepted:
return

self.property_label = Gtk.Label('MediaInfo')
self.property_label.show()

return Nemo.PropertyPage(name="NemoPython::mediainfo", label=self.property_label, page=self.tab.mainWindow),

def get_name_and_desc(self):
return [("Nemo MediaInfo Tab:::Dispay technical informations about media files")]
Loading