LINUX.ORG.RU

История изменений

Исправление legolegs, (текущая версия) :

Вот так, пожалуй, даже почище и попонятней.

#!/bin/bash

function rawurlencode() {
  local string="${1}"
  local strlen=${#string}
  local encoded=""
  local pos c o

  for (( pos=0 ; pos<strlen ; pos++ )); do
     c=${string:$pos:1}
     case "$c" in
        [-_.~a-zA-Z0-9/] ) o="${c}" ;; #ИСПРАВЛЕНО чтобы не трогало слеши
        * )
     printf -v o '%%%02x' "'$c"
     esac
     encoded+="${o}"
  done
  echo "${encoded}"
}
export -f rawurlencode

function file2m3u() {
echo "\
#EXTINF:-1, $1
ftp://192.168.88.250/hdd/"$(rawurlencode "$1")
}
export -f file2m3u

{
  echo '#EXTM3U'
  find /YOUR/MOVIES/DIR/ -iname '*.mkv' -exec bash -c 'file2m3u "$0"' {} \;
} > playlist.m3u

Исправление legolegs, :

Вот так, пожалуй, даже почище и попонятней.

#!/bin/bash

function rawurlencode() {
  local string="${1}"
  local strlen=${#string}
  local encoded=""
  local pos c o

  for (( pos=0 ; pos<strlen ; pos++ )); do
     c=${string:$pos:1}
     case "$c" in
        [-_.~a-zA-Z0-9/] ) o="${c}" ;; #ИСПРАВЛЕНО чтобы не трогало слеши
        * )
     printf -v o '%%%02x' "'$c"
     esac
     encoded+="${o}"
  done
  echo "${encoded}"
}

export -f rawurlencode
function file2m3u() {
echo "\
#EXTINF:-1, $1
ftp://192.168.88.250/hdd/"$(rawurlencode "$1")
}
export -f file2m3u

{
  echo '#EXTM3U'
  find /YOUR/MOVIES/DIR/ -iname '*.mkv' -exec bash -c 'file2m3u "$0"' {} \;
} > playlist.m3u

Исправление legolegs, :

Вот так, пожалуй, даже почище и попонятней.

#!/bin/bash

function rawurlencode() {
  local string="${1}"
  local strlen=${#string}
  local encoded=""
  local pos c o

  for (( pos=0 ; pos<strlen ; pos++ )); do
     c=${string:$pos:1}
     case "$c" in
        [-_.~a-zA-Z0-9/] ) o="${c}" ;; #ИСПРАВЛЕНО чтобы не трогало слеши
        * )
     printf -v o '%%%02x' "'$c"
     esac
     encoded+="${o}"
  done
  echo "${encoded}"
}

function file2m3u() {
echo "\
#EXTINF:-1, $1
ftp://192.168.88.250/hdd/"$(rawurlencode "$1")
}
export -f file2m3u

{
  echo '#EXTM3U'
  find /YOUR/MOVIES/DIR/ -iname '*.mkv' -exec bash -c 'file2m3u "$0"' {} \;
} > playlist.m3u

Исходная версия legolegs, :

Вот так, пожалуй даже почище и по-понятней.

#!/bin/bash

function rawurlencode() {
  local string="${1}"
  local strlen=${#string}
  local encoded=""
  local pos c o

  for (( pos=0 ; pos<strlen ; pos++ )); do
     c=${string:$pos:1}
     case "$c" in
        [-_.~a-zA-Z0-9/] ) o="${c}" ;; #ИСПРАВЛЕНО чтобы не трогало слеши
        * )
     printf -v o '%%%02x' "'$c"
     esac
     encoded+="${o}"
  done
  echo "${encoded}"
}

function file2m3u() {
echo "\
#EXTINF:-1, $1
ftp://192.168.88.250/hdd/"$(rawurlencode "$1")
}
export -f file2m3u

{
  echo '#EXTM3U'
  find /YOUR/MOVIES/DIR/ -iname '*.mkv' -exec bash -c 'file2m3u "$0"' {} \;
} > playlist.m3u