-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMissingAliases.php
executable file
·137 lines (115 loc) · 3.9 KB
/
MissingAliases.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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#!/usr/bin/env php
<?php
include_once "includes/autoloader.php";
main();
function main()
{
FindMissingAuthIDs();
logFile::GenerateMissingPlayersFile();
// So we don't have to iterate through the DB again while getting steam info for names / avatars for dropdown menus:
logFile::GenerateSteamIDsArray_jsonFile("steamIDs_everyone", "SourceTV_Survival_Main.json");
logFile::GenerateSteamIDsArray_jsonFile("steamIDs_SourceTV_Survival_LoggedEvents", "SourceTV_Survival_LoggedEvents.json");
logFile::GenerateSteamIDsArray_jsonFile("steamIDs_OnLogAction_Logs", "OnLogAction_Logs.json");
logFile::GenerateSteamIDsArray_jsonFile("steamIDs_gasconfigs_v2_logs", "steamIDs_gasconfigs_v2_logs.json");
}
function FindMissingAuthIDs()
{
$mysqli = connection::establishDBConnection();
// 1st query, all relevant steamIDs from rounds played
$query = <<<queryString
SELECT p1_authID as 'authID' FROM `SourceTV_Survival_Main`
UNION
SELECT p2_authID as 'authID' FROM `SourceTV_Survival_Main`
UNION
SELECT p3_authID as 'authID' FROM `SourceTV_Survival_Main`
UNION
SELECT p4_authID as 'authID' FROM `SourceTV_Survival_Main`
ORDER BY `authID` ASC;
queryString;
if (!$result = $mysqli->query($query))
{
$logFile->LogError("MySQL error:\n$mysqli->error \n query:\n $query");
return;
}
$iter = 0;
while($row = $result->fetch_assoc())
{
$iter++;
$AuthID = $row['authID'];
PushToCheckedSteamAccounts($AuthID, $iter, $result->num_rows);
}
// takes ~ 11 minutes for previous operation, reestablish
// DB connection to avoid "mysql server has gone away" error
connection::KillDBConnection($mysqli);
$mysqli = connection::establishDBConnection();
// 2nd query, sourceTV logged events
$query = "SELECT DISTINCT `authID` FROM `SourceTV_Survival_LoggedEvents`;";
if (!$result = $mysqli->query($query))
{
$logFile->LogError("MySQL error:\n$mysqli->error \n query:\n $query");
return;
}
else
{
while($row = $result->fetch_assoc())
{
$AuthID = $row['authID'];
if (!is_numeric($AuthID) || in_array($AuthID, data::$steamid_ignore)) { continue;}
global_vars::PushValue("steamIDs_SourceTV_Survival_LoggedEvents", $AuthID, true);
}
}
// 3rd query, general logged events
$query =<<<queryString
SELECT `client_authID` as 'authID' FROM `OnLogAction_Logs`
UNION
SELECT `target_authID` as 'authID' FROM `OnLogAction_Logs`
ORDER BY `authID` ASC;
queryString;
if (!$result = $mysqli->query($query))
{
$logFile->LogError("MySQL error:\n$mysqli->error \n query:\n $query");
return;
}
else
{
while($row = $result->fetch_assoc())
{
$AuthID = $row['authID'];
if (!is_numeric($AuthID) || in_array($AuthID, data::$steamid_ignore)) { continue;}
global_vars::PushValue("steamIDs_OnLogAction_Logs", $AuthID, true);
}
}
connection::KillDBConnection($mysqli);
$mysqli = connection::establishDBConnection();
// 4th query, gas configs
$query = "SELECT DISTINCT steam64ID_user_who_loaded_config as authID FROM `gasconfigs_v2_logs`;";
if (!$result = $mysqli->query($query))
{
$logFile->LogError("MySQL error:\n$mysqli->error \n query:\n $query");
return;
}
else
{
while($row = $result->fetch_assoc())
{
$AuthID = $row['authID'];
if (!is_numeric($AuthID) || in_array($AuthID, data::$steamid_ignore)) { continue;}
global_vars::PushValue("steamIDs_gasconfigs_v2_logs", $AuthID, true);
}
}
connection::KillDBConnection($mysqli);
}
function PushToCheckedSteamAccounts($AuthID, $iteration, $total_resultset)
{
if (!is_numeric($AuthID) || in_array($AuthID, data::$steamid_ignore)) {
return;
}
// Not defined in data::$player_aliases
if (!array_key_exists($AuthID, data::$player_aliases))
{
global_vars::AddToMissingPlayersArray($AuthID);
}
global_vars::PushValue("steamIDs_everyone", $AuthID, true);
$progress = number_format(($iteration / $total_resultset) * 100, 2);
echo "PushToCheckedSteamAccounts [$AuthID]. Progress: $iteration / $total_resultset ($progress%)" . PHP_EOL;
}