diff --git a/tools/TGUICompiler.php b/tools/TGUICompiler.php deleted file mode 100644 index a393e1d3c6..0000000000 --- a/tools/TGUICompiler.php +++ /dev/null @@ -1,198 +0,0 @@ - 0 && strpos($name, '\\') == false && strpos($name, '/') == false){ - $ext = pathinfo($name, PATHINFO_EXTENSION); - $mime = $finfo->file($F['tmp_name']); - if($ext == 'ract' && $mime == 'text/plain') - $good_files[] = $F; - } - } - $the_count = count($good_files); - if($the_count > 0 && $the_count < $max_number_of_uploads){ - $tgtgui_path = $tgdir . $path_to_tgui_from_repo; - $requests_dir = $parent_dir . '/requests'; - if(!is_dir($requests_dir)) - mkdir($requests_dir); - $target_path = str_replace('\\', '/', tempnam($requests_dir, 'tgui')); - unlink($target_path); - recurse_copy($tgtgui_path, $target_path); - $parent_node = $parent_dir . '/node_modules'; - $target_node = $target_path . '/node_modules'; - exec('mklink /j "' . str_replace('/', '\\', $target_node) . '" "' . str_replace('/', '\\', $parent_node) . '"'); - - //now copy the uploads to the thing - $target_interfaces = $target_path . '/src/interfaces/'; - foreach($good_files as $F){ - $target_name = $target_interfaces . $F['name']; - if(file_exists($target_name)) - unlink($target_name); //remove the file - move_uploaded_file($F['tmp_name'], $target_name); - } - - //compile - $command = '"' . $full_path_to_gulp . '" --cwd "' . str_replace('/', '\\', $target_path) . '" --min 2>&1'; - $output = shell_exec($command); - - $zip = new ZipArchive(); - $zippath = $target_path . '/TGUI.zip'; - if($zip->open($zippath, ZipArchive::CREATE) == TRUE){ - $zip->addFile($target_path . '/assets/tgui.css', 'tgui.css'); - $zip->addFile($target_path . '/assets/tgui.js', 'tgui.js'); - $zip->addFromString('gulp_output.txt', $output); - $zip->close(); - download_file($zippath); - } - else - $error = 'Unable to create output zipfile!'; - exec('rmdir "' . str_replace('/', '\\', $target_node) . '"'); //improtant - rrmdir($target_path); - } - else if(!$updated_git) - throw new RuntimeException('No valid files uploaded!'); - } -} -catch(Exception $e){ - $error = $e->getMessage(); -} - -?> - - - - TGUI .ract Compiler - - - An error occured: ' . $error . '

'; ?> -

Upload up to .ract files

-

Based off revision: ' . $revision . '' : $revision; ?> -
- Update to latest revision (don't use this unless you have to)
-
-
-
- - -
- - - - diff --git a/tools/WebhookProcessor/github_webhook_processor.php b/tools/WebhookProcessor/github_webhook_processor.php index 625d43cb91..111200ea09 100644 --- a/tools/WebhookProcessor/github_webhook_processor.php +++ b/tools/WebhookProcessor/github_webhook_processor.php @@ -11,7 +11,7 @@ /**CREDITS: * GitHub webhook handler template. - * + * * @see https://developer.github.com/webhooks/ * @author Miloslav Hula (https://github.com/milo) */ @@ -126,24 +126,24 @@ switch (strtolower($_SERVER['HTTP_X_GITHUB_EVENT'])) { function apisend($url, $method = 'GET', $content = null, $authorization = null) { if (is_array($content)) $content = json_encode($content); - + $headers = array(); $headers[] = 'Content-type: application/json'; if ($authorization) $headers[] = 'Authorization: ' . $authorization; - + $scontext = array('http' => array( 'method' => $method, 'header' => implode("\r\n", $headers), 'ignore_errors' => true, 'user_agent' => 'tgstation13.org-Github-Automation-Tools' )); - + if ($content) $scontext['http']['content'] = $content; - + return file_get_contents($url, false, stream_context_create($scontext)); - + } function github_apisend($url, $method = 'GET', $content = NULL) { @@ -178,7 +178,7 @@ function validate_user($payload) { $res = github_apisend('https://api.github.com/search/issues?q='.$querystring); $res = json_decode($res, TRUE); return $res['total_count'] >= (int)$validation_count; - + } function get_labels($payload){ @@ -227,7 +227,7 @@ function tag_pr($payload, $opened) { sleep(10); $payload['pull_request'] = json_decode(github_apisend($url), TRUE); } - + $tags = array(); $title = $payload['pull_request']['title']; if($opened) { //you only have one shot on these ones so as to not annoy maintainers @@ -235,7 +235,7 @@ function tag_pr($payload, $opened) { if(strpos(strtolower($title), 'refactor') !== FALSE) $tags[] = 'Refactor'; - + if(strpos(strtolower($title), 'revert') !== FALSE) $tags[] = 'Revert'; if(strpos(strtolower($title), 'removes') !== FALSE) @@ -302,7 +302,7 @@ function check_ready_for_review($payload, $labels = null, $remove = array()){ if($L == $r4rlabel) $has_label_already = true; } - + if($has_label_already && $should_not_have_label){ $remove[] = $r4rlabel; return $returned; @@ -340,7 +340,7 @@ function check_ready_for_review($payload, $labels = null, $remove = array()){ //make sure they are part of an offending review if(!in_array($C['pull_request_review_id'], $reviews_ids_with_changes_requested)) continue; - + //review comments which are outdated have a null position if($C['position'] !== null){ if($has_label_already) @@ -363,10 +363,10 @@ function check_dismiss_changelog_review($payload){ if(!$require_changelog) return; - + if(!$no_changelog) checkchangelog($payload, false); - + $review_message = 'Your changelog for this PR is either malformed or non-existent. Please create one to document your changes.'; $reviews = get_reviews($payload); @@ -427,8 +427,8 @@ function handle_pr($payload) { break; default: return; - } - + } + $pr_flags = 0; if (strpos(strtolower($payload['pull_request']['title']), '[s]') !== false) { $pr_flags |= F_SECRET_PR; @@ -438,7 +438,7 @@ function handle_pr($payload) { } discord_announce($action, $payload, $pr_flags); game_announce($action, $payload, $pr_flags); - + } function filter_announce_targets($targets, $owner, $repo, $action, $pr_flags) { @@ -447,7 +447,7 @@ function filter_announce_targets($targets, $owner, $repo, $action, $pr_flags) { unset($targets[$i]); continue; } - + if (isset($target['announce_secret']) && $target['announce_secret']) { if (!($pr_flags & F_SECRET_PR) && $target['announce_secret'] === 'only') { unset($targets[$i]); @@ -457,7 +457,7 @@ function filter_announce_targets($targets, $owner, $repo, $action, $pr_flags) { unset($targets[$i]); continue; } - + if (isset($target['announce_unvalidated']) && $target['announce_unvalidated']) { if (!($pr_flags & F_UNVALIDATED_USER) && $target['announce_unvalidated'] === 'only') { unset($targets[$i]); @@ -467,7 +467,7 @@ function filter_announce_targets($targets, $owner, $repo, $action, $pr_flags) { unset($targets[$i]); continue; } - + $wildcard = false; if (isset($target['include_repos'])) { foreach ($target['include_repos'] as $match_string) { @@ -490,7 +490,7 @@ function filter_announce_targets($targets, $owner, $repo, $action, $pr_flags) { continue; } } - + if (isset($target['exclude_repos'])) foreach ($target['exclude_repos'] as $match_string) { $owner_repo_pair = explode('/', strtolower($match_string)); @@ -517,13 +517,13 @@ function filter_announce_targets($targets, $owner, $repo, $action, $pr_flags) { function game_announce($action, $payload, $pr_flags) { global $servers; - + $msg = '['.$payload['pull_request']['base']['repo']['full_name'].'] Pull Request '.$action.' by '.htmlSpecialChars($payload['sender']['login']).': '.htmlSpecialChars('#'.$payload['pull_request']['number'].' '.$payload['pull_request']['user']['login'].' - '.$payload['pull_request']['title']).''; $game_servers = filter_announce_targets($servers, $payload['pull_request']['base']['repo']['owner']['login'], $payload['pull_request']['base']['repo']['name'], $action, $pr_flags); - + $msg = '?announce='.urlencode($msg).'&payload='.urlencode(json_encode($payload)); - + foreach ($game_servers as $serverid => $server) { $server_message = $msg; if (isset($server['comskey'])) @@ -554,9 +554,9 @@ function discord_announce($action, $payload, $pr_flags) { 'username' => 'GitHub', 'avatar_url' => $payload['pull_request']['base']['user']['avatar_url'], ); - + $content = 'Pull Request #'.$payload['pull_request']['number'].' *'.$action.'* by '.discord_sanitize($payload['sender']['login'])."\n".discord_sanitize($payload['pull_request']['user']['login']).' - __**'.discord_sanitize($payload['pull_request']['title']).'**__'."\n".'<'.$payload['pull_request']['html_url'].'>'; - + $embeds = array( array( 'title' => '__**'.discord_sanitize($payload['pull_request']['title'], S_MARKDOWN).'**__', @@ -586,22 +586,22 @@ function discord_announce($action, $payload, $pr_flags) { } discord_webhook_send($discordWebHook['url'], $sending_data); } - + } -function discord_sanitize($text, $flags = S_MENTIONS|S_LINK_EMBED|S_MARKDOWN) { +function discord_sanitize($text, $flags = S_MENTIONS|S_LINK_EMBED|S_MARKDOWN) { if ($flags & S_MARKDOWN) $text = str_ireplace(array('\\', '*', '_', '~', '`', '|'), (array('\\\\', '\\*', '\\_', '\\~', '\\`', '\\|')), $text); - + if ($flags & S_HTML_COMMENTS) $text = preg_replace('//Uis', '', $text); - + if ($flags & S_MENTIONS) $text = str_ireplace(array('@everyone', '@here', '<@'), array('`@everyone`', '`@here`', '@<'), $text); if ($flags & S_LINK_EMBED) $text = preg_replace("/((https?|ftp|byond)\:\/\/)([a-z0-9-.]*)\.([a-z]{2,3})(\:[0-9]{2,5})?(\/(?:[a-z0-9+\$_-]\.?)+)*\/?(\?[a-z+&\$_.-][a-z0-9;:@&%=+\/\$_.-]*)?(#[a-z_.-][a-z0-9+\$_.-]*)?/mi", '<$0>', $text); - + return $text; } @@ -673,7 +673,7 @@ function get_pr_code_friendliness($payload, $oldbalance = null){ $maxNegative = min($friendliness, $maxNegative); } } - + $affecting = abs($maxNegative) >= $maxPositive ? $maxNegative : $maxPositive; return $affecting; } @@ -805,7 +805,7 @@ function checkchangelog($payload, $compile = true) { } if (!$incltag) continue; - + $firstword = explode(' ', $line)[0]; $pos = strpos($line, " "); $item = ''; @@ -815,7 +815,7 @@ function checkchangelog($payload, $compile = true) { } else { $firstword = $line; } - + if (!strlen($firstword)) { $currentchangelogblock[count($currentchangelogblock)-1]['body'] .= "\n"; continue; @@ -933,7 +933,7 @@ function checkchangelog($payload, $compile = true) { case 'server': if($item != 'something server ops should know') $currentchangelogblock[] = array('type' => 'server', 'body' => $item); - break; + break; default: //we add it to the last changelog entry as a separate line if (count($currentchangelogblock) > 0) @@ -970,10 +970,10 @@ function checkchangelog($payload, $compile = true) { function game_server_send($addr, $port, $str) { // All queries must begin with a question mark (ie "?players") if($str{0} != '?') $str = ('?' . $str); - + /* --- Prepare a packet to send to the server (based on a reverse-engineered packet structure) --- */ $query = "\x00\x83" . pack('n', strlen($str) + 6) . "\x00\x00\x00\x00\x00" . $str . "\x00"; - + /* --- Create a socket and connect it to the server --- */ $server = socket_create(AF_INET,SOCK_STREAM,SOL_TCP) or exit("ERROR"); socket_set_option($server, SOL_SOCKET, SO_SNDTIMEO, array('sec' => 2, 'usec' => 0)); //sets connect and send timeout to 2 seconds @@ -981,7 +981,7 @@ function game_server_send($addr, $port, $str) { return "ERROR: Connection failed"; } - + /* --- Send bytes to the server. Loop until all bytes have been sent --- */ $bytestosend = strlen($query); $bytessent = 0; @@ -989,22 +989,22 @@ function game_server_send($addr, $port, $str) { //echo $bytessent.'
'; $result = socket_write($server,substr($query,$bytessent),$bytestosend-$bytessent); //echo 'Sent '.$result.' bytes
'; - if ($result===FALSE) + if ($result===FALSE) return "ERROR: " . socket_strerror(socket_last_error()); $bytessent += $result; } - + /* --- Idle for a while until recieved bytes from game server --- */ $result = socket_read($server, 10000, PHP_BINARY_READ); socket_close($server); // we don't need this anymore - + if($result != "") { if($result{0} == "\x00" || $result{1} == "\x83") { // make sure it's the right packet format - + // Actually begin reading the output: $sizebytes = unpack('n', $result{2} . $result{3}); // array size of the type identifier and content $size = $sizebytes[1] - 1; // size of the string/floating-point (minus the size of the identifier byte) - + if($result{4} == "\x2a") { // 4-byte big-endian floating-point $unpackint = unpack('f', $result{5} . $result{6} . $result{7} . $result{8}); // 4 possible bytes: add them up together, unpack them as a floating-point return $unpackint[1]; @@ -1012,7 +1012,7 @@ function game_server_send($addr, $port, $str) { else if($result{4} == "\x06") { // ASCII string $unpackstr = ""; // result string $index = 5; // string index - + while($size > 0) { // loop through the entire ASCII string $size--; $unpackstr .= $result{$index}; // add the string position to return string