forked from zKillboard/zKillboard
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathKillmail.php
55 lines (45 loc) · 1.67 KB
/
Killmail.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
class Killmail
{
// https://forums.eveonline.com/default.aspx?g=posts&m=4900335#post4900335
public static function getCrestHash($killID, $killmail)
{
$victim = $killmail['victim'];
$victimID = $victim['characterID'] == 0 ? 'None' : $victim['characterID'];
$attackers = $killmail['attackers'];
$attacker = null;
if ($attackers != null) {
foreach ($attackers as $att) {
if ($att['finalBlow'] != 0) {
$attacker = $att;
}
}
}
if ($attacker == null) {
$attacker = $attackers[0];
}
$attackerID = $attacker['characterID'] == 0 ? 'None' : $attacker['characterID'];
$shipTypeID = $victim['shipTypeID'];
$dttm = (strtotime($killmail['killTime']) * 10000000) + 116444736000000000;
$string = "$victimID$attackerID$shipTypeID$dttm";
$sha = sha1($string);
return $sha;
}
public static function deleteKillmail($killID)
{
global $mdb, $redis;
$killmail = $mdb->findDoc('killmails', ['killID' => $killID]);
foreach ($killmail['involved'] as $involved) {
foreach ($involved as $type => $id) {
$mdb->set('statistics', ['type' => $type, 'id' => (int) $id], ['reset' => true]);
}
}
$p = ['killID' => $killID];
$mdb->remove('killmails', $p);
$mdb->remove('rawmails', $p);
$mdb->remove('esimails', ['killmail_id' => $killID]);
$mdb->remove('oneWeek', $p);
$mdb->set('crestmails', $p, ['processed' => false]);
$redis->del("CacheKill:$killID:overview");
}
}