MovieMeter script

Started by bodiug, July 4, 2007, 13:32:59

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

bodiug

Ik heb een aantal scriptjes gemaakt die ik gebruik om plaatjes van beschrijvingen van films te maken. Zodat ik deze op mijn MB200 bekijk voordat ik een film afspeel om te zien waar het over gaat.

Voorbeeld:



Deze scripts draaien op Linux, maar zou op windows ook moeten kunnen via cygwin of iets dergelijks.

Shell script om moviemeter info te parsen, mm.sh:


#!/bin/sh

cookie=/tmp/cookie-$$
title=$(echo $@ | sed "s/ /+/g")

curl -c $cookie -d search[title]=$title -o /dev/null -s http://www.moviemeter.nl/film/search

if [ "$?" != "0" ]; then
  echo "$0: unknown error"
  rm -f $cookie
  exit
fi

id=$(curl -b $cookie -s http://www.moviemeter.nl/film/searchresults | grep -o filminfo_0_[0-9]* | cut -d _ -f3 | head -1)

if [ "$?" != "0" ]; then
  echo "$0: unknown error"
  rm -f $cookie
  exit
fi

rm -f $cookie

curl -s http://www.moviemeter.nl/film/$id | grep -Po '<div id="film_info">.*</div>' \
| sed 's^<div id="film_info">^^g' \
| sed 's^&euml;^ë^g' \
| sed 's^<br />^\n^g' \
| sed 's^<a href=.*">^^g' \
| sed 's^</a>^^g' \
| sed 's^<div class="film_date">.*</div>^^g' \
| sed 's^</div>^^g' \
| sed 's/^/     /g'


PHP script om txt naar gif te converteren, txt2gif.php:


<?php
if(empty($text)) {
  die();
}

// Set the content-type
header("Content-type: image/gif");

$fontsize 10;
$font 'verdana.ttf';
$text "\n\n$text";
$text wordwrap($text"75""\n     ");

// Create the image
$size imagettfbbox($fontsize0$font$text);
//$width = $size[2] + $size[0] + 8;
//$height = abs($size[1]) + abs($size[7]);
$width "576";
$height "350";

$im imagecreate($width$height);

$colourBlack imagecolorallocate($im255255255);
imagecolortransparent($im$colourBlack);

// Create some colors
$white imagecolorallocate($im255255255);
$black imagecolorallocate($im000);

// Add the text
imagefttext($im$fontsize00abs($size[5]), $black$font$text);

// Using imagepng() results in clearer text compared with
imagegif($im);
imagedestroy($im);
?>



En een shell scriptje die door mijn media tree heenloopt en bovenstaande toepast op alle film ISOs, createmmgif.sh:


#!/bin/sh
set -x
dir=/net/media/movies

cd $dir

for genre in *; do
  if [ "$genre" == "cabaret" ]; then
    continue
  fi

  if [ "$genre" == "muziek" ]; then
    continue
  fi

  if [ "$genre" == "series" ]; then
    continue
  fi

  cd "$genre"

  for file in *.iso; do
    if [ -f "$file" ]; then
      movie=$(echo "$file" | sed "s/ (...)//g" | sed "s/\.iso//g")

      if [ -f "$movie.gif" ]; then
        continue
      fi

      tmp=/tmp/.mm-$$
      text=$(/net/scripts/mm.sh $movie)

      if [ -n "$text" ]; then
        php -q /var/www/html/txt2gif.php text="$text" > $movie.gif
      fi
      rm -f $tmp
    fi
  done
  cd $dir
done


De laatste draait dagelijks in mijn cron. Er zullen nog wel wat schoonheids foutjes inzitten, maar het werkt... :)
Wie weet heeft iemand anders er ook wat aan.  ;)