root/dev/common/kill_import.php @ 31

Revision 31, 6.7 KB (checked in by exi, 16 years ago)

Fixes belonging to importscript

Line 
1<?php
2@set_time_limit(0);
3require_once('class.page.php');
4require_once('class.killboard.php');
5require_once('class.parser.php');
6require_once('class.kill.php');
7require_once('admin_menu.php');
8
9$page = new Page();
10$page->setAdmin();
11$page->setTitle("Administration - Killmail Importer");
12
13if (!$_POST['dir'])
14{
15    $dir = getcwd();
16}
17if (!$_POST['ext'])
18{
19    $ext = '.txt';
20}
21else
22{
23    $ext = $_POST['ext'];
24}
25if ($_REQUEST['submit'] == 'Reset')
26{
27    unset($_SESSION['kill_import']);
28    unset($_POST);
29}
30
31$html .= "<form id=\"options\" name=\"options\" method=\"post\" action=\"?a=kill_import\">";
32
33if ($_POST)
34{
35    $dir = $_POST['dir'];
36    if (!$dir && $_SESSION['kill_import'])
37    {
38        $dir = $_SESSION['kill_import']['dir'];
39        $ext = $_SESSION['kill_import']['ext'];
40    }
41    if (!strstr($dir, getcwd()))
42    {
43        $dir = getcwd().$dir;
44    }
45
46    if (substr($dir, -1, 1) != '/')
47    {
48        $dir .= '/';
49    }
50    if (is_dir($dir))
51    {
52        $dirh = opendir($dir);
53        $i = 0;
54        while ($file = readdir($dirh))
55        {
56            if (strstr($file, $ext))
57            {
58                $i++;
59            }
60        }
61        if (!$num)
62        {
63            $num = 200;
64        }
65        if ($_POST['submit'] != 'Import')
66        {
67            $html .= "<div class=block-header2>Import Options</div>";
68            $html .= "<table class=kb-subtable>";
69            $html .= "<tr><td width=120></td><td>'$dir' contains $i files matching '$ext'</td></tr>";
70            $html .= "<tr><td width=120><b>Read # mails at once:</b></td><td><input type=text name=num id=num size=3 maxlength=10 value=\"".$num."\"></td></tr>";
71            $html .= "<tr><td width=120><b>Start with mail #:</b></td><td><input type=text name=startnum id=startnum size=3 maxlength=10 value=\"0\"></td></tr>";
72            $html .= "<tr><td width=120></td><td><input type=submit name=submit value=\"Import\">&nbsp;<input type=submit name=submit value=\"Reset\"></td></tr>";
73            $html .= "</table>";
74            $_SESSION['kill_import'] = array();
75            $_SESSION['kill_import']['dir'] = $dir;
76            $_SESSION['kill_import']['count'] = $i;
77            $_SESSION['kill_import']['ext'] = $ext;
78        }
79        else
80        {
81            $_SESSION['kill_import']['do'] = 1;
82            $_SESSION['kill_import']['num'] = $num;
83            $_SESSION['kill_import']['startnum'] = $_POST['startnum'];
84        }
85    }
86    else
87    {
88        $html .= "'$dir' is not a valid directory<br>\n";
89    }
90}
91elseif (!isset($_SESSION['kill_import']['do']))
92{
93    $html .= "<div class=block-header2>Scan for Killmails</div>";
94    $html .= "<table class=kb-subtable>";
95    $html .= "<tr><td width=120><b>Directory:</b></td><td><input type=text name=dir id=dir size=60 maxlength=80 value=\"".$dir."\"></td></tr>";
96    $html .= "<tr><td width=120><b>Extension:</b></td><td><input type=text name=ext id=ext size=3 maxlength=10 value=\"".$ext."\"></td></tr>";
97    $html .= "<tr><td width=120><b>Attention:</b></td><td>For security reasons only directorys below the main EVE-KB-directory will be read.</td></tr>";
98    $html .= "<tr><td width=120></td><td><input type=submit name=submit value=\"Check\"></td></tr>";
99    $html .= "</table>";
100}
101$html .= "</form>";
102
103if (isset($_SESSION['kill_import']['do']))
104{
105    $i = 0;
106    $p = 0;
107    $p_all = 0;
108    $posted = 0;
109    $posted_all = 0;
110    $invalid = 0;
111    $inv = 0;
112    $num = 0;
113
114    $dirh = opendir($_SESSION['kill_import']['dir']);
115    while ($file = readdir($dirh))
116    {
117        if (strstr($file, $_SESSION['kill_import']['ext']))
118        {
119            $i++;
120            if ($i < $_SESSION['kill_import']['startnum'])
121            {
122                continue;
123            }
124            if ($i < $_SESSION['kill_import']['numcount'])
125            {
126                continue;
127            }
128            $num++;
129            $read++;
130            $mail = file_get_contents($_SESSION['kill_import']['dir'].$file);
131            $mail = stripslashes($mail);
132            $parser = new Parser($mail);
133
134            $killid = $parser->parse(false);
135            if ($killid == 0)
136            {
137                $inv++;
138                $invalid++;
139                #$html .= "Killmail is malformed: $file.<br>\n";
140                //unlink($dir.$file);
141            }
142            elseif ($killid == -1)
143            {
144                $posted++;
145                $posted_all++;
146                #echo "That $file killmail has already been posted <a href=\"/eve/?a=kill_detail&kll_id=" . $parser->dupeid_ . "\">here</a>.<br>\n";
147            }
148            else
149            {
150                $p++;
151                $p_all++;
152            }
153
154            if ($i % 10 == 0)
155            {
156                $html .= "$i/".$_SESSION['kill_import']['count']." - $num files read, $p new, $posted old, $inv invalid<br>\n";
157                $inv = 0;
158                $p = 0;
159                $posted = 0;
160            }
161            if ($i >= $_SESSION['kill_import']['count'])
162            {
163                $html .= "$i/".$_SESSION['kill_import']['count']." - $num files read, $p new, $posted old, $inv invalid<br>\n";
164                $_SESSION['kill_import']['numcount'] = $i;
165//                $_SESSION['kill_import']['postall'] = $posted_all;
166//                $_SESSION['kill_import']['p_all'] = $p_all;
167                break;
168            }
169            if ($num >= $_SESSION['kill_import']['num'])
170            {
171                $html .= "$i/".$_SESSION['kill_import']['count']." - $num files read, $p new, $posted old, $inv invalid<br>\n";
172                $_SESSION['kill_import']['numcount'] = $i;
173                break;
174            }
175        }
176    }
177
178    if ($_SESSION['kill_import']['count'] - $_SESSION['kill_import']['numcount'] > 0)
179    {
180        $html .= '<a href="?a=kill_import">Read next '.$_SESSION['kill_import']['num'].'</a>&nbsp;<a href="?a=kill_import&submit=Reset">Reset</a>';
181        $_SESSION['kill_import']['read'] += $read;
182        $_SESSION['kill_import']['p_all'] += $p_all;
183        $_SESSION['kill_import']['posted_all'] += $posted_all;
184        $_SESSION['kill_import']['invalid'] += $invalid;
185    }
186    else
187    {
188        $html .= 'Import complete, '.$_SESSION['kill_import']['read'].' files read, '
189                 .$_SESSION['kill_import']['p_all'].' kills added, '
190                 .$_SESSION['kill_import']['posted_all'].' already posted, '
191                 .$_SESSION['kill_import']['invalid'].' malformed<br>';
192        $html .= '<a href="?a=kill_import">Ok</a>';
193        unset($_SESSION['kill_import']);
194    }
195}
196$page->addContext($menubox->generate());
197$page->setContent($html);
198$page->generate();
199?>
Note: See TracBrowser for help on using the browser.