[ Avaa Bypassed ]




Upload:

Command:

www-data@18.117.10.159: ~ $
#!/bin/bash

#
# Copyright (c) 2015-2018 Samuel Thibault <samuel.thibault@ens-lyon.org>
# 
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
# 
# 
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
# 
# 
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
# 

# Make sure we have enough options
if [ $# != 5 -a $# != 6 ]; then
  echo "ERROR: $0 jobid user name nb options [filename]" >&2
  exit 1
fi

NB=$4
OPTIONS=$5
FILE=$6

. /usr/share/cups/braille/cups-braille.sh

####################
# Liblouis options #
####################
LIBLOUIS_CONFIG=""

echo "DEBUG: Input content type: $CONTENT_TYPE" >&2

# FIXME CONTENT_TYPE contains original document, not document passed as parameter ?!!

setupTextRendering() {
  # Default rendering without translation: just reformat paragraphs
  RENDER_CALL="fmt -$TEXTWIDTH"

  #  Tool to be used for the conversion
  case $CONTENT_TYPE in
    text/plain)
      CONVERT=""
      ;;
    text/html)
      CONVERT=""
      RENDER_CALL="lynx -width=$TEXTWIDTH -dump -stdin"
      checkTool lynx lynx "translating html files"
      ;;
    application/msword)
      CONVERT="antiword -"
      checkTool antiword antiword "translating MS-Word doc files"
      ;;
    application/vnd.openxmlformats-officedocument.wordprocessingml.document)
      CONVERT="docx2txt"
      checkTool docx2txt docx2txt "translating MS-Word docx files"
      ;;
    text/rtf|application/rtf)
      CONVERT="rtf2txt /dev/stdin"
      checkTool rtf2txt rtf2txt "translating RTF files"
      ;;
    application/pdf|application/vnd.cups-pdf-banner)
      CONVERT="pdftotext -raw - -"
      checkTool pdftotext poppler "translating PDF files"
      ;;
    *)
      echo "ERROR: unsupported content type $CONTENT_TYPE" >&2
      exit 1
      ;;
  esac
}

# sometimes we can't filter directly from stdin or the original file because the
# tools need to seek within the file (e.g. unzip), or spaces in the path pose
# problem. This can be called in such case to dump the original content to a
# fresh file
dumptofile() {
  ORIGFILE="$FILE"
  FILE=$(mktemp "${TMPDIR:-/tmp}/texttobrf.tmp.XXXXXX")
  trap -- 'rm -f "$FILE"' EXIT
  if [ -n "$ORIGFILE" ]
  then
    cat "$ORIGFILE" > "$FILE"
  else
    cat > "$FILE"
  fi
}

#  Selected braille table
if [ -n "$LIBLOUIS_TABLES" ]
then
  if type file2brl > /dev/null
  then
    # Good, we can use liblouisutdml
    case $CONTENT_TYPE in
      text/plain)
	LIBLOUIS_TOOL="file2brl"
	CONVERT=""
	;;
      text/html)
	LIBLOUIS_TOOL="file2brl -t"
	CONVERT=""
	;;
      text/xml|application/xml|application/xhtml+xml|application/sgml)
	LIBLOUIS_TOOL="file2brl"
	CONVERT=""
	;;
      application/msword)
	LIBLOUIS_TOOL="file2brl"
	CONVERT="antiword -x db -"
	checkTool antiword antiword "translating MS-Word doc files"
	;;
      application/vnd.oasis.opendocument*)
	LIBLOUIS_TOOL="file2brl"
	dumptofile
	CONVERT="unzip -p $FILE content.xml"
	CHARSET=utf-8
	checkTool unzip unzip "translating LibreOffice/OpenOffice OpenDocument files"
	;;
      application/vnd.openxmlformats-officedocument*)
	LIBLOUIS_TOOL="file2brl"
	dumptofile
	CONVERT="unzip -p $FILE word/document.xml"
	CHARSET=utf-8
	checkTool unzip unzip "translating MS-Word docx files"
	;;
      text/rtf|application/rtf)
	LIBLOUIS_TOOL="file2brl"
	CONVERT="rtf2xml /dev/stdin"
	checkTool rtf2xml rtf2xml "translating RTF files"
	;;
      application/pdf|application/vnd.cups-pdf-banner)
	LIBLOUIS_TOOL="file2brl -p"
	CONVERT="pdftotext -raw - -"
	CHARSET=utf-8
	checkTool pdftotext poppler "translating PDF files"
	;;
      *)
	echo "ERROR: unsupported content type $CONTENT_TYPE" >&2
	exit 1
	;;
    esac

    #
    # text encoding
    #
    if [ "$CHARSET" = utf-8 ]
    then
      LIBLOUIS_CONFIG+=" -CinputTextEncoding=UTF8"
    else
      LIBLOUIS_CONFIG+=" -CinputTextEncoding=ascii8"
    fi

    #
    # Page numbers options
    #
    BRAILLEPAGENUMBER=$(getOption BraillePageNumber)
    case "$BRAILLEPAGENUMBER" in
      None) LIBLOUIS_CONFIG+=" -CbraillePages=no";;
      TopMargin) LIBLOUIS_CONFIG+=" -CbraillePages=yes -CbraillePageNumberAt=top -CpageNumberTopSeparateLine=yes";;
      BottomMargin) LIBLOUIS_CONFIG+=" -CbraillePages=yes -CbraillePageNumberAt=bottom -CpageNumberBottomSeparateLine=yes";;
      TopInline) LIBLOUIS_CONFIG+=" -CbraillePages=yes -CbraillePageNumberAt=top -CpageNumberTopSeparateLine=no";;
      BottomInline) LIBLOUIS_CONFIG+=" -CbraillePages=yes -CbraillePageNumberAt=bottom -CpageNumberBottomSeparateLine=no";;
      *)
	printf "ERROR: Unknown braille page number option '%s'\n" "$BRAILLEPAGENUMBER" >&2
	exit 1
	;;
    esac

    PRINTPAGENUMBER=$(getOption PrintPageNumber)
    case "$PRINTPAGENUMBER" in
      None) LIBLOUIS_CONFIG+=" -CprintPages=no";;
      TopMargin) LIBLOUIS_CONFIG+=" -CprintPages=yes -CprintPageNumberAt=top -CpageNumberTopSeparateLine=yes";;
      BottomMargin) LIBLOUIS_CONFIG+=" -CprintPages=yes -CprintPageNumberAt=bottom -CpageNumberBottomSeparateLine=yes";;
      TopInline) LIBLOUIS_CONFIG+=" -CprintPages=yes -CprintPageNumberAt=top -CpageNumberTopSeparateLine=no";;
      BottomInline) LIBLOUIS_CONFIG+=" -CprintPages=yes -CprintPageNumberAt=bottom -CpageNumberBottomSeparateLine=no";;
      *)
	printf "ERROR: Unknown print page number option '%s'\n" "$PRINTPAGENUMBER" >&2
	exit 1
	;;
    esac

    # Page numbering in top or bottom margin actually reduce the given margin
    if [ "$BRAILLEPAGENUMBER" = TopMargin -o "$PRINTPAGENUMBER" = TopMargin ]
    then
      TOPMARGIN=$((TOPMARGIN - 1))
      TEXTHEIGHT=$((TEXTHEIGHT + 1))
    fi
    if [ "$BRAILLEPAGENUMBER" = BottomMargin -o "$PRINTPAGENUMBER" = BottomMargin ]
    then
      BOTTOMMARGIN=$((BOTTOMMARGIN - 1))
      TEXTHEIGHT=$((TEXTHEIGHT + 1))
    fi

    PAGESEPARATOR=$(getOption PageSeparator)
    case "$PAGESEPARATOR" in
      True|true) LIBLOUIS_CONFIG+=" -CpageSeparator=yes";;
      False|false) LIBLOUIS_CONFIG+=" -CpageSeparator=no";;
      *)
	printf "ERROR: Unknown page separator option '%s'\n" "$PAGESEPARATOR" >&2
	exit 1
	;;
    esac

    PAGESEPARATORNUMBER=$(getOption PageSeparatorNumber)
    case "$PAGESEPARATORNUMBER" in
      True|true) LIBLOUIS_CONFIG+=" -CpageSeparatorNumber=yes";;
      False|false) LIBLOUIS_CONFIG+=" -CpageSeparatorNumber=no";;
      *)
	printf "ERROR: Unknown page separator number option '%s'\n" "$PAGESEPARATORNUMBER" >&2
	exit 1
	;;
    esac

    CONTINUEPAGES=$(getOption ContinuePages)
    case "$CONTINUEPAGES" in
      True|true) LIBLOUIS_CONFIG+=" -CcontinuePages=yes";;
      False|false) LIBLOUIS_CONFIG+=" -CcontinuePages=no";;
      *)
	printf "ERROR: Unknown page separator number option '%s'\n" "$CONTINUEPAGES" >&2
	exit 1
	;;
    esac

    LIBLOUIS_CONFIG+=" -CcellsPerLine=$TEXTWIDTH -ClinesPerPage=$TEXTHEIGHT "

    RENDER_CALL="$LIBLOUIS_TOOL -Chyphenate=yes -CliteraryTextTable=en-us-brf.dis,$LIBLOUIS_TABLES,braille-patterns.cti $LIBLOUIS_CONFIG"
  elif type lou_translate > /dev/null
  then
    # Only liblouis, but better than nothing
    setupTextRendering
    printf "WARN: The liblouisutdml package is required for translating braille better\n" >&2
    TRANSLATE="lou_translate en-us-brf.dis,$LIBLOUIS_TABLES,braille-patterns.cti"
  else
    printf "ERROR: The liblouisutdml package is required for translating braille\n" >&2
    exit 1
  fi
else
  # No translation, only text rendering
  printf "WARN: No braille table translation was selected\n" >&2
  setupTextRendering
fi

# Now proceeed
cd $TMPDIR
echo "INFO: Reformating text" >&2

(
set -o pipefail
set -e
if [ -z "$CONVERT" ]
then
  printf "DEBUG: Calling $RENDER_CALL on '%s'\n" "$FILE" >&2
  if [ -z "$FILE" ]
  then
    $RENDER_CALL 2> /dev/null | addmargins
  else
   < "$FILE" $RENDER_CALL 2> /dev/null | addmargins
  fi
elif [ -z "$TRANSLATE" ]
then
  printf "DEBUG: Calling $CONVERT | $RENDER_CALL on '%s'\n" "$FILE" >&2
  if [ -z "$FILE" ]
  then
    $CONVERT | $RENDER_CALL 2> /dev/null | addmargins
  else
  < "$FILE" $CONVERT | $RENDER_CALL 2> /dev/null | addmargins
  fi
else
  printf "DEBUG: Calling $CONVERT | $RENDER_CALL | $TRANSLATE on '%s'\n" "$FILE" >&2
  if [ -z "$FILE" ]
  then
    $CONVERT | $RENDER_CALL 2> /dev/null | $TRANSLATE | addmargins
  else
  < "$FILE" $CONVERT | $RENDER_CALL 2> /dev/null | $TRANSLATE | addmargins
  fi
fi
) || {
  printf "ERROR: text conversion pipeline $CONVERT | $RENDER_CALL | $TRANSLATE | addmargins failed\n" >&2
  exit 1
}

echo "INFO: Ready" >&2

Filemanager

Name Type Size Permission Actions
bannertopdf File 58.47 KB 0755
brftoembosser File 1.96 KB 0755
brftopagedbrf File 3.39 KB 0755
c2esp File 42.43 KB 0755
c2espC File 30.32 KB 0755
cgmtopdf File 2.13 KB 0755
cmxtopdf File 2.13 KB 0755
command2esp File 22.32 KB 0755
command2foo2lava-pjl File 22.39 KB 0755
commandtoescpx File 14.3 KB 0755
commandtopclx File 14.3 KB 0755
commandtops File 14.31 KB 0755
emftopdf File 2.13 KB 0755
foomatic-rip File 115.42 KB 0755
gstopdf File 555 B 0755
gstopxl File 558 B 0755
gstoraster File 62.47 KB 0755
gziptoany File 14.31 KB 0755
hpcups File 430.86 KB 0755
hpcupsfax File 34.32 KB 0755
hpps File 46.7 KB 0755
imagetobrf File 3.67 KB 0755
imagetopdf File 46.36 KB 0755
imagetops File 988 B 0755
imagetoraster File 59.66 KB 0755
imagetoubrl File 3.67 KB 0755
imageubrltoindexv3 File 6.43 KB 0755
imageubrltoindexv4 File 6.49 KB 0755
mupdftoraster File 22.3 KB 0755
musicxmltobrf File 1.83 KB 0755
pdftopdf File 174.49 KB 0755
pdftops File 74.84 KB 0755
pdftoraster File 46.49 KB 0755
pstops File 54.34 KB 0755
pstoqpdl File 26.31 KB 0755
pstotiff File 393 B 0755
rastertobrlaser File 42.23 KB 0755
rastertoepson File 22.3 KB 0755
rastertoescpx File 34.3 KB 0755
rastertohp File 18.3 KB 0755
rastertolabel File 22.3 KB 0755
rastertopclm File 563 B 0755
rastertopclx File 38.32 KB 0755
rastertopdf File 94.41 KB 0755
rastertops File 18.32 KB 0755
rastertoptch File 34 KB 0755
rastertopwg File 18.3 KB 0755
rastertoqpdl File 74.34 KB 0755
rastertosag-gdi File 15.59 KB 0755
svgtopdf File 2.13 KB 0755
sys5ippprinter File 34.42 KB 0755
textbrftoindexv3 File 4.8 KB 0755
textbrftoindexv4 File 4.8 KB 0755
texttobrf File 9.07 KB 0755
texttopdf File 61.6 KB 0755
texttops File 982 B 0755
texttotext File 30.3 KB 0755
vectortobrf File 2.53 KB 0755
vectortopdf File 2.13 KB 0755
vectortoubrl File 2.53 KB 0755
wmftopdf File 2.13 KB 0755
xfigtopdf File 2.13 KB 0755