package GCImport::GCImportDVDProfiler;

###################################################
#
#  Copyright 2005-2010 Christian Jodar
#
#  This file is part of GCstar.
#
#  GCstar is free software; you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation; either version 2 of the License, or
#  (at your option) any later version.
#
#  GCstar is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with GCstar; if not, write to the Free Software
#  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
#
###################################################

use strict;
use GCImport::GCImportBase;

{
    package GCImport::GCImporterDVDProfiler;

    use base qw(GCImport::GCImportBaseClass);
    
    use XML::Simple;    
        
    sub new
    {
        my $proto = shift;
        my $class = ref($proto) || $proto;
        my $self  = $class->SUPER::new();
        bless ($self, $class);
        
        return $self;
    }

    sub getName
    {
        return "DVDProfiler (.xml)";
    }
    
    sub getOptions
    {
        my $self = shift;
        my @options;
        return \@options;
    }
    
    sub getFilePatterns
    {
       return (['DVDProfiler (.xml)', '*.xml']);
    }
    
    #Return supported models name
    sub getModels
    {
        return ['GCfilms'];
    }

    # Ignored for the moment
    sub wantsFieldsSelection
    {
        return 0;
    }
    sub getEndInfo
    {
        return "";
    }
    
    sub getItemsArray
    {
	my ($self, $file) = @_;
	my $xml;
	my $data;
	# creer un objet
	$xml = XML::Simple->new; # sans keyAttr les dvd seront dans une liste ou chaque dvd sera identifie par l'emplacement qu'il a dans cette liste
	$data = $xml->XMLin ("$file");

	
	my @result; 
	my $film;
	
	foreach $film(@{$data->{DVD}}){
		my $item;
		
		$item->{title} = $film->{Title};
		$item->{date} = $film->{ProductionYear};
		$item->{time} = $film->{RunningTime}.' mn';
		$item->{synopsis} = $film->{Overview};
		####### DIRECTOR #########
		my $director;
		
		if (ref ($film->{Credits}->{Credit}) eq "ARRAY") {
			foreach $director(@{$film->{Credits}->{Credit}}){
				if (($director->{CreditType}) eq 'Direction') {
					$item->{director} .= $director->{FirstName}.' '.$director->{LastName}.', ';
					
				}
			}
		}
		else {
			if (($film->{Credits}->{Credit}->{CreditType}) eq 'Direction') {
					$item->{director} .= $film->{Credits}->{Credit}->{FirstName}.' '.$film->{Credits}->{Credit}->{LastName};
				}
		}
		###### END DIRECTOR ######
		
		####### ACTORS #########
		my $actor;
		if (ref ($film->{Actors}->{Actor}) eq "ARRAY") {
			foreach $actor(@{$film->{Actors}->{Actor}}){
				$item->{actors} .= $actor->{FirstName}.' '.$actor->{LastName}.' '.'('.$actor->{Role}.')'.', ';
				
			}
			}
		else {
		$item->{actors} .= $film->{Actors}->{Actor}->{'FirstName'}.' '.$film->{Actors}->{Actor}->{LastName}.' '.'('.$film->{Actors}->{Actor}->{Role}.')';
		}
		###### END ACTORS ######
		
		####### AUDIO #########
		my $audio;
		if (ref ($film->{Audio}->{AudioFormat}) eq "ARRAY"){
			foreach $audio(@{$film->{Audio}->{AudioFormat}}){
				$item->{audio} .= $audio->{AudioLanguage}.', ';
				
				}
		}
		else  {
			$item->{audio} .= $film->{Audio}->{AudioFormat}->{'AudioLanguage'};
		}
		###### END AUDIO ######
		####### SUBT #########
		my $subt;
		if (ref ($film->{Subtitles}->{Subtitle}) eq "ARRAY"){
			foreach $subt(@{$film->{Subtitles}->{Subtitle}}){
				$item->{subt} .= $subt.', ';
				
			}
		}
		else {
			$item->{subt} = $film->{Subtitles}->{Subtitle};
		}
		####### END SUBT #########
		####### TYPE #########
		my $type;
		if (ref ($film->{Genres}->{Genre}) eq "ARRAY"){
			foreach $type(@{$film->{Genres}->{Genre}}){
				$item->{type} .= $type.',';
				
			}
		}
		else {
			$item->{type} = $film->{Genres}->{Genre};
		}
		####### END TYPE #########
		
		#$item->{original} = $film->{Title};
		#$item->{subt} = $film->{Subtitles}->{Subtitle};
		#$item->{borrower} = $film->{Title};
		#$item->{lendDate} = $film->{Title};
		#$item->{history} = $film->{Title};
		#$item->{seen} = $film->{Title};# non par defaut ?
		#$item->{comment} = $film->{Title};
		#$item->{image} = $film->{Title};
		#$item->{country} = $film->{Title};
		#$item->{number} = $film->{CollectionNumber};
		#$item->{rating} = $film->{Title};# note par defaut
		#$item->{format} = $film->{Title};#DVD par dï¿½faut ?
		#$item->{webPage} = $film->{Title};
		#$item->{place} = $film->{Title};
		$item->{director} =~ s/, $//;
		$item->{actors} =~ s/, $//;
		$item->{audio} =~ s/, $//;
		$item->{subt} =~ s/, $//;
		$item->{type} =~ s/, $//;
		push @result, $item;
	}
	return \@result;

	}
}

1;