Advertisement
jargon

// Shared :: "linedancerOverviewClass.php"

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