temny

colgen.sh

Sep 15th, 2011
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.15 KB | None | 0 0
  1. #!/bin/ash
  2.  
  3. cfile=/mnt/us/system/collections.json
  4. wdir=`dirname "$0"`
  5.  
  6. AddSerial() {
  7.         [ ${#2} -ne 0 ] && {
  8.                 [ ${first:-yes} == yes ] && { echo { > $cfile; first=no; } || { echo ,\ >> $cfile; }
  9.                 echo '"'$1'@en-US":{"items":['${2%,}'],"lastAccess":'`date +%s`'}' >> $cfile
  10.         }
  11. }
  12.  
  13. AddBookWithASIN() {
  14.         echo "$1" | grep -qi asin_ && {
  15.                 ASIN=`echo "$1"|sed 's!.*asin_!!;s!-.*!!'`
  16.                 TYPE=`echo "$1"|sed 's!.*type_!!;s!-.*!!'`
  17.                 [ ${#ASIN} -gt 0 -a ${#TYPE} -gt 0 ] && BOOKID='"#'$ASIN^$TYPE'",'
  18.         }
  19.         [ ${#BOOKID} -eq 0 ] && {
  20.                 ASIN=`sed -n '/^q$/{s!.*!!;N;N;N;s![[:space:]]*[(,[:cntrl:]]*!!;/^[A-Za-z0-9]/{p;q;};}' "$1"`
  21.                 TYPE=`sed -n '/^[[:cntrl:]]?$/{s!.*!!;N;N;N;s![[:space:]]!!g;/^[A-Z]/{p;q;};}' "$1"`
  22.                 [ ${#ASIN} -gt 0 -a ${#TYPE} -gt 0 ] && BOOKID='"#'$ASIN^$TYPE'",'
  23.         }
  24. }
  25.  
  26. AddAZW2() {
  27.         unzip -oq "$1" META-INF/MANIFEST.MF -d "$wdir/temp"
  28.         ASIN=`awk '$0~/^Amazon-ASIN: / {print $2}' "$wdir/temp/META-INF/MANIFEST.MF"`
  29.         [ ${#ASIN} -gt 0 ] && BOOKID='"#'$ASIN^AZW2'",'
  30.         rm -rf "$wdir"/temp/*
  31. }
  32.  
  33. AddBook() {
  34.         BOOKID=""
  35.         FILEEXT=`echo "$1"|awk -F. '{printf "%s",tolower($NF)}'`
  36.         for EXT in mobi pdf txt prc azw azw2 mp3; do
  37.                 [ $FILEEXT == $EXT ] && {
  38.                         [ $FILEEXT == azw -o $FILEEXT == mobi ] && AddBookWithASIN "$1"
  39.                         [ $FILEEXT == azw2 ] && AddAZW2 "$1"
  40.                         [ ${#BOOKID} -eq 0 ] && BOOKID='"*'`echo -n "$1" | openssl sha1`'",'
  41.                         BOOKS="$BOOKS$BOOKID"
  42.                         return 1
  43.                 }
  44.         done
  45. }
  46.  
  47. mkdir -p "$wdir/backup" "$wdir/temp"
  48. [ ! -f "$wdir/backup/collections.json" ] && cp $cfile "$wdir/backup"
  49.  
  50. for i in /mnt/us/documents /mnt/us/audible; do
  51.         find "$i" -type d | sed 1d | sort -r | while read dir; do
  52.                 for k in "$dir"/*; do [ -f "$k" ] && AddBook "$k"; done
  53.                 AddSerial "${dir#/mnt/us/*/}" $BOOKS; BOOKS=""
  54.         done
  55. done
  56. echo } >> $cfile
  57. /etc/init.d/framework restart
Advertisement
Add Comment
Please, Sign In to add comment