Files
Barış Keser 83be058d23 feat: Athena v2 — Discord auth, AthenaCore mod, cross-platform launcher, CI
Backend (PHP+SQLite): Discord OAuth2 + JWT, coklu hesap (1 Discord = 3-5),
tek-kullanimlik join token (/api/join/prepare+verify), custom skin yukleme/sunma,
hesap/Discord/HWID ban, admin paneli kartlari; deterministik offline UUID (PHP<->C#
paritesi dogrulandi). 25 entegrasyon testi gecti.

AthenaCore (Forge 1.12.2): tek client+server mod — join token dogrulama + kick,
grace-gate, custom skin uygulama. Sunucu offline-mode kalir (UUID/dunya verisi korunur).

Masaustu: WPF -> Avalonia (Windows+Linux), Discord giris/hesap/skin/oyna; WMI/DPAPI
yerine cross-platform (machine-id HWID, AES-GCM secret store). Derlenir + calisir.

CI: athenacore-mod.yml (JDK8), desktop-release.yml (Win+Linux self-contained).
Deploy: deploy.sh (.env uretimi, php-gd, nginx Authorization gecisi) + HANDOFF.md.
Android: backend hazir; entegrasyon spec'i ANDROID_INTEGRATION.md.
2026-06-13 23:45:21 +03:00

48 lines
1.7 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
/**
* Athena Studios Launcher - CLI index builder.
*
* Rebuilds files/index.json and files/mods.json from the current contents of
* files/. Intended to run from cron, e.g. (every 5 minutes):
*
* (slash-five) * * * * php /path/to/WebBackend/cli/build_index.php
*
* See README.md / nginx.conf.sample for the exact crontab line.
*/
declare(strict_types=1);
require_once __DIR__ . '/../src/config.php';
require_once __DIR__ . '/../src/builder.php';
// Incremental by default (cheap: only re-hashes changed files) so it is safe
// to run frequently from cron. Pass --force / -f for a full re-hash.
$force = in_array('--force', $argv ?? [], true) || in_array('-f', $argv ?? [], true);
$start = microtime(true);
try {
$result = refresh_pack($force);
} catch (Throwable $e) {
fwrite(STDERR, '[Athena] Index oluşturma hatası: ' . $e->getMessage() . PHP_EOL);
exit(1);
}
$ms = (int) round((microtime(true) - $start) * 1000);
echo '[Athena Studios] Paket ' . ($result['changed'] ? 'güncellendi' : 'zaten güncel') . '.' . PHP_EOL;
echo ' Paket sürümü : v' . $result['version'] . PHP_EOL;
if ($result['index'] !== null) {
echo ' Zorunlu dosya (index.json) : ' . $result['index'] . PHP_EOL;
echo ' İsteğe bağlı mod (mods.json): ' . $result['optional'] . PHP_EOL;
}
if ($result['changed']) {
echo ' Eklendi : ' . count($result['added']) . PHP_EOL;
echo ' Güncellendi: ' . count($result['updated']) . PHP_EOL;
echo ' Kaldırıldı : ' . count($result['removed']) . PHP_EOL;
}
echo ' Süre : ' . $ms . ' ms' . PHP_EOL;
echo ' files/ : ' . FILES_DIR . PHP_EOL;
exit(0);