TVDB: better handling of first run
[nonametv.git] / tools / nonametv-import
blobdebabeb9baf50ced350ffc6bb3f1618ec2ec8ef3
1 #!/usr/bin/perl -w
3 use strict;
4 use warnings;
6 use FindBin;
7 use lib "$FindBin::Bin/../lib";
9 use NonameTV::Factory qw/CreateDataStore CreateDataStoreDummy
10 CreateImporter InitHttpCache/;
11 use NonameTV::Job qw/StartJob EndJob/;
13 use Getopt::Long;
15 if( scalar( @ARGV ) == 0 )
17 print << 'EOHELP';
18 nonametv-import [test] [Importer] [Importer-options] [Filename]
20 Import data into the database. [Importer] is the name of an entry under
21 the Importers-section in the nonametv configuration.
23 The keyword "test" means that NonameTV::DataStore::Dummy is used.
25 Typical Importer-options include
27 --verbose
29 --force-update Import data even if the data has not changed since the
30 last import.
32 Some importers import data from files specified on the command-line,
33 other importers fetch their data via http.
35 EOHELP
37 exit 1;
40 my $run_test = 0;
42 my $imp_name = shift @ARGV;
43 if( $imp_name eq "test" ) {
44 $run_test = 1;
45 $imp_name = shift @ARGV;
48 # Create Datastore
49 my $ds;
51 if( $run_test ) {
52 $ds = CreateDataStoreDummy();
54 else {
55 $ds = CreateDataStore();
58 # Initialize cache
59 InitHttpCache();
61 my $imp = CreateImporter( $imp_name, $ds );
63 my %opt = %{$imp->{OptionDefaults}};
64 my $option_spec = $imp->{OptionSpec};
66 my $res = GetOptions( \%opt, @{$option_spec} );
68 my $jobname = $imp_name;
69 if( defined( $opt{'short-grab'} ) and $opt{'short-grab'} ) {
70 $jobname .= "-short";
73 # StartJob( "Import", $jobname, 10 );
75 # Run importer
76 $imp->Import( \%opt );
78 # EndJob();