Advertisement
jargon

// Shared :: "linedancerClass.php"

Sep 13th, 2024
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 6.58 KB | Gaming | 0 0
  1. <?php
  2. // Shared :: "linedancerClass.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.                 if(isset($MatchNames['short'])){
  88.                     // echo "<!-- BOGUS: {$MatchNames['short']} -->";
  89.                 }
  90.                 continue;
  91.             }else{
  92.                 // echo "<!-- MATCH: {$MatchNames['full']} -->";
  93.             }
  94.                        
  95.             $fileData = null;
  96.            
  97.             if(is_file("{$_SERVER['DOCUMENT_ROOT']}{$MatchNames['full']}")){
  98.                 $fileData = file_get_contents("{$_SERVER['DOCUMENT_ROOT']}{$MatchNames['full']}");
  99.             }else{
  100.                 continue;
  101.             }
  102.            
  103.             // echo "<!-- Found: \"{$MatchNames['full']}\" in: \"".htmlentities($line)."\" -->\r\n";
  104.            
  105.             if ($fileData !== null) {
  106.                 $pageLines = $this->remove($pageLines, $index, 1);
  107.                
  108.                 $pgData = "\r\n" . implode("\r\n", $this->commentEntrance($MatchNames['full'], $this->depth));
  109.                 $pgData .= "\r\n" . $this->loader($this->xText($fileData));
  110.                 $pgData .= "\r\n" . implode("\r\n", $this->commentExit($MatchNames['full'], $this->depth - 1));
  111.                
  112.                 $pgData = explode("\r\n", $pgData);
  113.                 $pageLines = $this->insert($pageLines, $index, $pgData);
  114.             }
  115.            
  116.             $this->depth--;
  117.         }
  118.         return $this->iText($pageLines);
  119.     }
  120.  
  121.     public function getFileData($filePath, $mode = null, $var = null) {
  122.         $data = null;
  123.        
  124.         if (in_array($filePath, $this->history)) {
  125.             return $data;
  126.         }
  127.        
  128.         $this->history[] = $filePath;
  129.         $ext = "." . pathinfo($filePath, PATHINFO_EXTENSION);
  130.        
  131.         if (in_array($ext, ['.css', '.js', '.meta', '.html'])) {
  132.             $data = file_get_contents($filePath);
  133.         } elseif (in_array($ext, ['.json']) && in_array($mode, ['const', 'var', 'let'])) {
  134.             if ($var !== null) {
  135.                 $data = "$mode $var = " . file_get_contents($filePath) . ";";
  136.             }
  137.         }
  138.        
  139.         return $data;
  140.     }
  141.  
  142.     public function insert($array, $index, $value) {
  143.         if (!is_array($array)) {
  144.             $array = explode("\r\n", $array);
  145.         }
  146.  
  147.         if (!is_array($value)) {
  148.             $value = explode("\r\n", $value);
  149.         }
  150.  
  151.         array_splice($array, $index, 0, $value);
  152.         return $array;
  153.     }
  154.  
  155.     public function remove($array, $index, $count) {
  156.         if (!is_array($array)) {
  157.             $array = explode("\r\n", $array);
  158.         }
  159.  
  160.         array_splice($array, $index, $count);
  161.         return $array;
  162.     }
  163.  
  164.     public function commentEntrance($filePath, $depth) {
  165.         $results = [];
  166.        
  167.         /*
  168.         foreach ((array)$filePath as $path) {
  169.             $results[] = json_decode(file_get_contents("http://{$_SERVER['HTTP_HOST']}/Shared/php/nameConverter.php?name=".urlencode($path)), true);
  170.         }
  171.         */
  172.        
  173.         $comments = [];
  174.  
  175.         foreach ($results as $result) {
  176.             $ext = "." . pathinfo($result['short'], PATHINFO_EXTENSION);
  177.  
  178.             switch ($ext) {
  179.                 case '.css':
  180.                 case '.js':
  181.                     $comments[] = "/* Processed: \"{$result['short']}\" (Entrance Depth: {$depth}) */";
  182.                     break;
  183.                 case '.meta':
  184.                 case '.html':
  185.                     $comments[] = "<!-- Processed: \"{$result['short']}\" (Entrance Depth: {$depth}) -->";
  186.                     break;
  187.                 case '.json':
  188.                     $comments[] = "/* Processed: \"{$result['short']}\" (Entrance Depth: {$depth}) */";
  189.                     break;
  190.                 default:
  191.                     break;
  192.             }
  193.  
  194.             if ($ext === '.js') {
  195.                 $comments[] = "console.log('Processed:  \"{$result['short']}\" (Entrance Depth: {$depth})');";
  196.             }
  197.         }
  198.         return $comments;
  199.     }
  200.  
  201.     public function commentExit($filePath, $depth) {
  202.         $results = [];
  203.  
  204.         /*
  205.         foreach ((array)$filePath as $path) {
  206.             $results[] = json_decode(file_get_contents("http://{$_SERVER['HTTP_HOST']}/Shared/php/nameConverter.php?name=".urlencode($path)), true);
  207.         }
  208.         */
  209.        
  210.         $comments = [];
  211.  
  212.         foreach ($results as $result) {
  213.             $ext = "." . pathinfo($result['short'], PATHINFO_EXTENSION);
  214.  
  215.             switch ($ext) {
  216.                 case '.css':
  217.                 case '.js':
  218.                     $comments[] = "/* Processed: \"{$result['short']}\" (Exit Depth: {$depth}) */";
  219.                     break;
  220.                 case '.meta':
  221.                 case '.html':
  222.                     $comments[] = "<!-- Processed: \"{$result['short']}\" (Exit Depth: {$depth}) -->";
  223.                     break;
  224.                 case '.json':
  225.                     $comments[] = "/* Processed: \"{$result['short']}\" (Exit Depth: {$depth}) */";
  226.                     break;
  227.                 default:
  228.                     break;
  229.             }
  230.  
  231.             if ($ext === '.js') {
  232.                 $comments[] = "console.log('Processed:  \"{$result['short']}\" (Exit Depth: {$depth})');";
  233.             }
  234.         }
  235.         return $comments;
  236.     }
  237.     public function jRmNumeric($m = false) {
  238.         if (!is_array($m)) {
  239.             return;
  240.         }
  241.  
  242.         foreach ($m as $key => $value) {
  243.             if ($key == 0) {
  244.                 continue;
  245.             }
  246.             if (is_numeric($key)) {
  247.                 unset($m[$key]);
  248.             }
  249.             if (is_numeric($value)) {
  250.                 $m[$key] = intval($m[$key]);
  251.             }
  252.             if ($value === null) {
  253.                 $m[$key] = "";
  254.             }
  255.         }
  256.         return $m;
  257.     }
  258. }
  259.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement