]> Sergey Matveev's repositories - nnn.git/commitdiff
Play known video file types by extension
authorArun Prakash Jana <engineerarun@gmail.com>
Wed, 12 Feb 2020 01:35:41 +0000 (07:05 +0530)
committerArun Prakash Jana <engineerarun@gmail.com>
Wed, 12 Feb 2020 01:35:41 +0000 (07:05 +0530)
plugins/nuke

index e1c1a229406850f4bbe9f9851cc31300413b3e8c..38f3e4c4370e6a19db9b23d1d4d6b6614d81969d 100755 (executable)
@@ -43,6 +43,7 @@
 #      7-zip: list with 7z
 #      pdf: zathura (GUI), pdftotext, mutool, exiftool
 #      audio: mocplay (nnn plugin using MOC), mpv, mediainfo, exiftool
+#      avi|dat|mkv|mp4: smplayer, mpv (GUI), ffmpegthumbnailer, mediainfo, exiftool
 #      torrent: rtorrent, transmission-show
 #      odt|ods|odp|sxw: odt2txt
 #      md: glow (https://github.com/charmbracelet/glow)
@@ -96,6 +97,44 @@ handle_pdf() {
     fi
 }
 
+handle_audio() {
+    if which mocp >/dev/null 2>&1; then
+        mocplay "${FPATH}" >/dev/null 2>&1
+        exit 0
+    elif which mpv >/dev/null 2>&1; then
+        mpv "${FPATH}" >/dev/null 2>&1 &
+        exit 0
+    elif which mediainfo >/dev/null 2>&1; then
+        mediainfo "${FPATH}" | less -R
+        exit 0
+    elif which exiftool >/dev/null 2>&1; then
+        exiftool "${FPATH}"| less -R
+        exit 0
+    fi
+}
+
+handle_video() {
+    if [ $GUI -ne 0 ] && which smplayer >/dev/null 2>&1; then
+        smplayer "${FPATH}" >/dev/null 2>&1 &
+        exit 0
+    elif [ $GUI -ne 0 ] && which mpv >/dev/null 2>&1; then
+        mpv "${FPATH}" >/dev/null 2>&1 &
+        exit 0
+    elif which ffmpegthumbnailer >/dev/null 2>&1; then
+        # Thumbnail
+        [ -d "${IMAGE_CACHE_PATH}" ] || mkdir "${IMAGE_CACHE_PATH}"
+        ffmpegthumbnailer -i "${FPATH}" -o "${IMAGE_CACHE_PATH}/${FNAME}.jpg" -s 0
+        viu -n "${IMAGE_CACHE_PATH}/${FNAME}.jpg" | less -R
+        exit 0
+    elif which mediainfo >/dev/null 2>&1; then
+        mediainfo "${FPATH}" | less -R
+        exit 0
+    elif which exiftool >/dev/null 2>&1; then
+        exiftool "${FPATH}"| less -R
+        exit 0
+    fi
+}
+
 # handle this extension and exit
 handle_extension() {
     case "${ext}" in
@@ -131,19 +170,12 @@ handle_extension() {
 
         ## Audio
         aac|flac|m4a|mid|midi|mpa|mp2|mp3|ogg|wav|wma)
-            if which mocp >/dev/null 2>&1; then
-                mocplay "${FPATH}" >/dev/null 2>&1
-                exit 0
-            elif which mpv >/dev/null 2>&1; then
-                mpv "${FPATH}" >/dev/null 2>&1 &
-                exit 0
-            elif which mediainfo >/dev/null 2>&1; then
-                mediainfo "${FPATH}" | less -R
-                exit 0
-            elif which exiftool >/dev/null 2>&1; then
-                exiftool "${FPATH}"| less -R
-                exit 0
-            fi
+            handle_audio
+            exit 1;;
+
+        ## Video
+        avi|dat|mkv|mp4)
+            handle_video
             exit 1;;
 
         ## BitTorrent
@@ -249,49 +281,19 @@ handle_multimedia() {
             ## as above), but might fail for unsupported types.
             exit 7;;
 
-        ## Video
-        video/*)
-            if [ $GUI -ne 0 ] && which smplayer >/dev/null 2>&1; then
-                smplayer "${FPATH}" >/dev/null 2>&1 &
-                exit 0
-            elif [ $GUI -ne 0 ] && which mpv >/dev/null 2>&1; then
-                mpv "${FPATH}" >/dev/null 2>&1 &
-                exit 0
-            elif which ffmpegthumbnailer >/dev/null 2>&1; then
-                # Thumbnail
-                [ -d "${IMAGE_CACHE_PATH}" ] || mkdir "${IMAGE_CACHE_PATH}"
-                ffmpegthumbnailer -i "${FPATH}" -o "${IMAGE_CACHE_PATH}/${FNAME}.jpg" -s 0
-                viu -n "${IMAGE_CACHE_PATH}/${FNAME}.jpg" | less -R
-                exit 0
-            elif which mediainfo >/dev/null 2>&1; then
-                mediainfo "${FPATH}" | less -R
-                exit 0
-            elif which exiftool >/dev/null 2>&1; then
-                exiftool "${FPATH}"| less -R
-                exit 0
-            fi
+        ## PDF
+        application/pdf)
+            handle_pdf
             exit 1;;
 
         ## Audio
         audio/*)
-            if which mocp >/dev/null 2>&1; then
-                mocplay "${FPATH}" >/dev/null 2>&1
-                exit 0
-            elif which mpv >/dev/null 2>&1; then
-                mpv "${FPATH}" >/dev/null 2>&1 &
-                exit 0
-            elif which mediainfo >/dev/null 2>&1; then
-                mediainfo "${FPATH}" | less -R
-                exit 0
-            elif which exiftool >/dev/null 2>&1; then
-                exiftool "${FPATH}"| less -R
-                exit 0
-            fi
+            handle_audio
             exit 1;;
 
-        ## PDF
-        application/pdf)
-            handle_pdf
+        ## Video
+        video/*)
+            handle_video
             exit 1;;
 
         #     pdftoppm -f 1 -l 1 \