The official website for the open-source compatibility layer fpPS4
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

added homebrew support + smoll changes

+37 -15
+1 -1
public_html/compatibility/index.html
··· 13 13 <meta name="description" content="These are the games that have been tested with fpPS4"> 14 14 <meta name="theme-color" content="#4C566A"> 15 15 <meta name="copyright" content="fpPS4"> 16 - <meta name="keywords" content="fpPS4, playstation, ps4, playstation 4, emulator, windows, open source, free pascal, compatibility layer, red-prig, compatibility list, compatibility, playable, menus, ingame, boots, nothing"> 16 + <meta name="keywords" content="fpPS4, playstation, ps4, playstation 4, emulator, windows, open source, free pascal, compatibility layer, red-prig, compatibility list, compatibility, fpps4 compatibility list, fpps4 compatibility, fpps4 game compatibility"> 17 17 <meta name="robots" content="index,follow"> 18 18 <meta name="author" content="Mr. Snowy"> 19 19 <link rel="stylesheet" href="./styles.css">
+2 -2
public_html/compatibility/styles.css
··· 90 90 background: var(--main0); 91 91 border-radius: 6px; 92 92 margin-top: 6rem; 93 - padding: 2rem 0 0; 93 + padding: 2rem 0 1rem; 94 94 width: 40rem; 95 95 border: 0.2rem solid var(--main0); 96 96 } ··· 340 340 341 341 .pageBarContainer { 342 342 display: flex; 343 - padding: 0.8rem 0 1.5rem; 343 + padding: 0.8rem 0 2rem; 344 344 gap: 0.35rem; 345 345 text-align: center; 346 346 height: 2rem;
+2 -2
public_html/index.html
··· 19 19 <meta name="viewport" content="width=device-width, initial-scale=1"> 20 20 <title>fpPS4</title> 21 21 <meta name="description" content="fpPS4 is an open source PS4 compatibility layer (emulator) written with Free Pascal for Windows."> 22 - <meta name="keywords" content="fpPS4, playstation, ps4, playstation 4, emulator, windows, open source, free pascal, compatibility layer, red-prig"> 22 + <meta name="keywords" content="fpPS4, playstation, ps4, playstation 4, emulator, windows, open source, free pascal, compatibility layer, red-prig, fpps4 github, fpps4 discord"> 23 23 <meta name="robots" content="index,follow"> 24 24 <meta name="author" content="Mr. Snowy"> 25 25 <meta name="copyright" content="fpPS4"> ··· 38 38 <body> 39 39 <div class="top"> 40 40 <div class="top-text-container"> 41 - <h1 class="coming-soon">Coming soon...</h1> 41 + <h1 class="coming-soon">Work In Progress</h1> 42 42 <h1 class="main-text"><span style="color: #f0e74a;">fp</span>PS4.net</h1> 43 43 <p class="progress-text">The offical website for the open-source<br>compatibility layer fpPS4</p> 44 44 <div class="topButtonContainer">
+32 -10
public_html/scripts/issue_fetcher.php
··· 99 99 $tags = filter_var($tags, FILTER_SANITIZE_STRING); 100 100 $updatedDate = filter_var($updatedDate, FILTER_SANITIZE_STRING); 101 101 102 - // Remove CUSA code from the title 103 - $clean_title = preg_replace('/\b' . preg_quote($cusaCode, '/') . '\b/', '', $title); 104 - $clean_title = preg_replace('/\s+-\s+/', ' - ', $clean_title); 105 - $clean_title = rtrim($clean_title, '- '); 106 - $clean_title = rtrim($clean_title, ' '); 107 - $clean_title = rtrim($clean_title, '[]'); 102 + // Handle homebrews and remove CUSA code from the title 103 + if (in_array("app-homebrew", array_column($issue['labels'], 'name'))) { 104 + $cusaCode = "HOMEBREW"; 105 + $clean_title = preg_replace('/\s-\s.*$/', '', $title); 106 + $clean_title = trim(explode('(Homebrew)', $clean_title)[0]); 107 + } else { 108 + $clean_title = preg_replace('/\b' . preg_quote($cusaCode, '/') . '\b/', '', $title); 109 + $clean_title = preg_replace('/\s+-\s+/', ' - ', $clean_title); 110 + $clean_title = rtrim($clean_title, '- '); 111 + $clean_title = rtrim($clean_title, ' '); 112 + $clean_title = rtrim($clean_title, '[]'); 113 + } 108 114 109 115 // Filter labels and give them the correct names 110 116 $filteredTags = array_filter($issue['labels'], function ($label) { ··· 118 124 if (empty($tagNames)) { 119 125 $tagNames = ['N/A']; 120 126 } else { 121 - // Define the order of preference for tags 127 + // Define the order of the tags 122 128 $tagOrder = [ 123 129 'status-playable', 124 130 'status-ingame', ··· 127 133 'status-nothing' 128 134 ]; 129 135 130 - // Sort the tags based on their preference 136 + // Sort the tags 131 137 usort($tagNames, function ($a, $b) use ($tagOrder) { 132 138 return array_search($a, $tagOrder) <=> array_search($b, $tagOrder); 133 139 }); 134 140 135 - // Take the first (best) tag 141 + // Take the best tag 136 142 $tagNames = array_slice($tagNames, 0, 1); 137 143 } 138 144 ··· 224 230 $CUSA_total_skipped = 0; 225 231 $images_downloaded = 0; 226 232 $images_skiped = 0; 233 + $homebrewProcessed = 0; 227 234 228 235 for ($page = 1; $page <= $total_pages; $page++) { 229 236 $issues_data = get_open_issues($page); ··· 234 241 $cusaCode = extract_cusaCode($title); 235 242 $avifIconURL = "/home/{$serverUsername}/domains/fpps4.net/public_html/images/CUSA/{$cusaCode}.avif"; 236 243 237 - // Check if cusa code is empty 244 + // Check if cusa code is not empty 238 245 if ($cusaCode) { 239 246 $query = "SELECT cusaCode FROM newIssues WHERE cusaCode = :cusaCode"; 240 247 $stmt = $conn->prepare($query); ··· 266 273 } else { 267 274 $images_skiped++; 268 275 } 276 + 277 + } else if (in_array("app-homebrew", array_column($issue['labels'], 'name'))) { 278 + $query = "SELECT title FROM newIssues WHERE title = :title"; 279 + $stmt = $conn->prepare($query); 280 + $stmt->bindParam(':title', $title, PDO::PARAM_STR); 281 + $stmt->execute(); 282 + $checkTitle = $stmt->fetchAll(PDO::FETCH_ASSOC); 269 283 284 + if (count($checkTitle) > 0) { 285 + $total_skipped++; 286 + continue; 287 + } 288 + $total_processed++; 289 + $homebrewProcessed++; 290 + insert_issue($issue, $conn); 270 291 } else { 271 292 $CUSA_total_skipped++; 272 293 continue; ··· 315 336 print "<br>Total open issues: " . $open_issues_count; 316 337 print "<br>Total issues without CUSA: " . $CUSA_total_skipped; 317 338 print "<br>Total issues processed: " . $total_processed; 339 + print "<br>Homebrew's processed: " . $homebrewProcessed; 318 340 print "<br>Total duplicates: " . $total_skipped; 319 341 print "<br>Total images downloaded: " . $images_downloaded; 320 342 print "<br>Total images skipped: " . $images_skiped;