Ticket #3900: mame.pl

File mame.pl, 1.8 KB (added by ffelix@…, 17 years ago)

Initial script

Line 
1#!/usr/bin/perl -w
2
3use strict;
4
5use XML::Simple;
6use Date::Manip;
7
8Date_Init();
9
10if (!$ARGV[0])
11{
12    die("Not exist mame xml");
13}
14
15
16my $xml = new XML::Simple;
17
18my $data = $xml->XMLin($ARGV[0]);
19
20$data->{build} =~ /\((.*?)\)/gs;
21
22my $date = UnixDate(ParseDate($1), '%Y%m%d');
23
24my $category;
25
26sub insert_sql
27{
28    my ($crc, $description, $category, $year, $manufacturer, $size, $file) = @_;
29
30    if (! $year)
31    {
32        $year = "????";
33    }
34
35    #my $game = $description;
36    #$game =~ s/\s\(.*?\)//g;
37
38    print "INSERT INTO romdb VALUES ('" . $crc . "'," . '"' . $description . '"' . "," . '"' . $description . '"' . ",'" .
39                    $category . "','" . $year . "'," . '"' . $manufacturer . '"'. ",'" .
40                    "Unknown','" . "Unknown','MAME'," .
41                    $size . ",'','" . $date . "','" . $file . "');\n";
42    return;
43}
44
45foreach my $key (keys (%{$data->{game}}))
46{
47
48    next if ($data->{game}->{$key}->{isbios});
49
50    if ($data->{game}->{$key}->{driver}->{status} eq 'good')
51    {
52        $category="Players " . $data->{game}->{$key}->{input}->{players};
53    }
54    else
55    {
56        $category='Inperfect';
57    }
58
59    if ($data->{game}->{$key}->{rom}->{crc})
60    {
61        insert_sql($data->{game}->{$key}->{rom}->{crc}, $data->{game}->{$key}->{description}, $category, $data->{game}->{$key}->{year},
62                $data->{game}->{$key}->{manufacturer}, $data->{game}->{$key}->{rom}->{size}, $data->{game}->{$key}->{rom}->{name});
63    }
64    else
65    {
66        foreach my $rom (keys (%{$data->{game}->{$key}->{rom}}))
67        {
68            if ($data->{game}->{$key}->{rom}->{$rom}->{crc})
69            {
70                insert_sql($data->{game}->{$key}->{rom}->{$rom}->{crc}, $data->{game}->{$key}->{description},
71                    $category, $data->{game}->{$key}->{year}, $data->{game}->{$key}->{manufacturer},
72                    $data->{game}->{$key}->{rom}->{$rom}->{size}, $rom);
73            }
74        }
75    }
76}