Advertisement
jargon

Shared :: "Classes/linedancerClass.php"

Sep 10th, 2024
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.64 KB | Gaming | 0 0
  1. <?php
  2. // Shared :: "linedancerClass.php"
  3.  
  4. class linedancerClass {
  5.    
  6.     public $scriptMatch;
  7.     public $history = [];
  8.     public $hashMatch = "";
  9.     public $depth = 0;
  10.     public $shortName = "";
  11.     public $release = "";
  12.     public $game = "";
  13.     public $extensions = [];
  14.     public $package = "";
  15.     public $pagedata = "";
  16.  
  17.     public function __construct($release, $game) {
  18.         include_once("{$_SERVER['DOCUMENT_ROOT']}/Shared/scripts/regex/scriptMatches.php");
  19.         $this->scriptMatch = new scriptMatchClass();
  20.  
  21.         $this->package = "";
  22.         $this->extensions = implode("|", explode("\r\n", file_get_contents("{$_SERVER['DOCUMENT_ROOT']}/Shared/scripts/csv/extensions.csv")));
  23.  
  24.         $this->release = $release;
  25.         $this->game = $game;
  26.         $this->history = [];
  27.         $this->depth = 0;
  28.     }
  29.  
  30.     public function jRmNumeric(&$m = false) {
  31.         if (!is_array($m)) { return; }
  32.        
  33.         foreach ($m as $key => $value) {
  34.             if ($key == 0) { continue; }
  35.             if ($key == strval(intval($key))) {
  36.                 unset($m[$key]);
  37.             } else {
  38.                 if (is_numeric($value)) {
  39.                     $m[$key] = intval($m[$key]);
  40.                 }
  41.             }
  42.         }
  43.         return $m;
  44.     }
  45.  
  46.     public function iText($text) {
  47.         if (is_array($text)) {
  48.             $text = implode("\r\n", $text);
  49.         }
  50.  
  51.         if (!is_string($text)) {
  52.             $text = (string)$text;
  53.         }
  54.  
  55.         return $text;
  56.     }
  57.  
  58.     public function xText($text) {
  59.         $text = $this->iText($text);
  60.         $text = str_replace("\r\n", "\n", $text);
  61.         $text = str_replace("\n", "\r\n", $text);
  62.  
  63.         return explode("\r\n", $text);
  64.     }
  65.  
  66.     public function loader($pagedata) {
  67.         global $queries, $swaps;
  68.  
  69.         $this->pagedata = $pagedata;
  70.         $this->depth++;
  71.  
  72.         // Swap out placeholder variables with actual content
  73.         foreach ($swaps as $swapOut => $swapIn) {
  74.             $this->pagedata = str_replace($swapOut, $swapIn, $this->pagedata);
  75.         }
  76.  
  77.         $pageLines = $this->xText($this->pagedata);
  78.  
  79.         for ($index = 0; $index < count($pageLines); $index++) {
  80.             $line = $pageLines[$index];
  81.             $matchFiles = $this->scriptMatch->asName(trim($line, " \t"));
  82.  
  83.             if ($matchFiles[0] !== null && !is_file("{$_SERVER['DOCUMENT_ROOT']}{$matchFiles[0]}")) {
  84.                 die("{$matchFiles[0]} Not Found.");
  85.             }
  86.  
  87.             $fileData = $this->getFileData("{$_SERVER['DOCUMENT_ROOT']}{$matchFiles[0]}");
  88.  
  89.             if ($fileData !== null) {
  90.                 $pageLines = $this->remove($pageLines, $index, 1);
  91.  
  92.                 $pgData = "\r\n" . implode("\r\n", $this->commentEntrance($matchFiles[1], $this->depth));
  93.                 $pgData .= "\r\n" . $this->loader($this->xText($fileData));
  94.                 $pgData .= "\r\n" . implode("\r\n", $this->commentExit($matchFiles[1], $this->depth - 1));
  95.  
  96.                 $pgData = explode("\r\n", $pgData);
  97.                 $pageLines = $this->insert($pageLines, $index, $pgData);
  98.             }
  99.  
  100.             $this->depth--;
  101.         }
  102.         return $this->iText($pageLines);
  103.     }
  104.  
  105.     public function getFileData($filePath, $mode = null, $var = null) {
  106.         $data = null;
  107.  
  108.         if (in_array($filePath, $this->history)) {
  109.             return $data;
  110.         }
  111.  
  112.         $this->history[] = $filePath;
  113.         $ext = "." . pathinfo($filePath, PATHINFO_EXTENSION);
  114.  
  115.         if (in_array($ext, ['.css', '.js', '.meta', '.html'])) {
  116.             $data = file_get_contents($filePath);
  117.         } elseif (in_array($ext, ['.json']) && in_array($mode, ['const', 'var', 'let'])) {
  118.             if ($var !== null) {
  119.                 $data = "$mode $var = " . file_get_contents($filePath) . ";";
  120.             }
  121.         }
  122.  
  123.         return $data;
  124.     }
  125.  
  126.     public function insert($array, $index, $value) {
  127.         if (!is_array($array)) {
  128.             $array = explode("\r\n", $array);
  129.         }
  130.  
  131.         if (!is_array($value)) {
  132.             $value = explode("\r\n", $value);
  133.         }
  134.  
  135.         array_splice($array, $index, 0, $value);
  136.         return $array;
  137.     }
  138.  
  139.     public function remove($array, $index, $count) {
  140.         if (!is_array($array)) {
  141.             $array = explode("\r\n", $array);
  142.         }
  143.  
  144.         array_splice($array, $index, $count);
  145.         return $array;
  146.     }
  147.  
  148.     public function commentEntrance($filePath, $depth) {
  149.         $results = [];
  150.        
  151.         foreach ((array)$filePath as $path) {
  152.             $results[] = json_decode(file_get_contents("http://{$_SERVER['HTTP_HOST']}/Shared/php/nameConverter.php?name=".urlencode($path)), true);
  153.         }
  154.  
  155.         $comments = [];
  156.  
  157.         foreach ($results as $result) {
  158.             $ext = "." . pathinfo($result['short'], PATHINFO_EXTENSION);
  159.  
  160.             switch ($ext) {
  161.                 case '.css':
  162.                 case '.js':
  163.                     $comments[] = "/* Processed: \"{$result['short']}\" (Entrance Depth: {$depth}) */";
  164.                     break;
  165.                 case '.meta':
  166.                 case '.html':
  167.                     $comments[] = "<!-- Processed: \"{$result['short']}\" (Entrance Depth: {$depth}) -->";
  168.                     break;
  169.                 case '.json':
  170.                     $comments[] = "/* Processed: \"{$result['short']}\" (Entrance Depth: {$depth}) */";
  171.                     break;
  172.                 default:
  173.                     break;
  174.             }
  175.  
  176.             if ($ext === '.js') {
  177.                 $comments[] = "console.log('Processed:  \"{$result['short']}\" (Entrance Depth: {$depth})');";
  178.             }
  179.         }
  180.         return $comments;
  181.     }
  182.  
  183.     public function commentExit($filePath, $depth) {
  184.         $results = [];
  185.  
  186.         foreach ((array)$filePath as $path) {
  187.             $results[] = json_decode(file_get_contents("http://{$_SERVER['HTTP_HOST']}/Shared/php/nameConverter.php?name=".urlencode($path)), true);
  188.         }
  189.  
  190.         $comments = [];
  191.  
  192.         foreach ($results as $result) {
  193.             $ext = "." . pathinfo($result['short'], PATHINFO_EXTENSION);
  194.  
  195.             switch ($ext) {
  196.                 case '.css':
  197.                 case '.js':
  198.                     $comments[] = "/* Processed: \"{$result['short']}\" (Exit Depth: {$depth}) */";
  199.                     break;
  200.                 case '.meta':
  201.                 case '.html':
  202.                     $comments[] = "<!-- Processed: \"{$result['short']}\" (Exit Depth: {$depth}) -->";
  203.                     break;
  204.                 case '.json':
  205.                     $comments[] = "/* Processed: \"{$result['short']}\" (Exit Depth: {$depth}) */";
  206.                     break;
  207.                 default:
  208.                     break;
  209.             }
  210.  
  211.             if ($ext === '.js') {
  212.                 $comments[] = "console.log('Processed:  \"{$result['short']}\" (Exit Depth: {$depth})');";
  213.             }
  214.         }
  215.         return $comments;
  216.     }
  217. }
  218.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement