@extends('admin.layouts.app') @section('title', 'Sağlık Kontrolü') @section('page-title', 'Sağlık Kontrolü') @push('styles') @endpush @section('content') {{-- Özet Kartlar --}}
@php $checks = [ ['icon'=>'bi-copy','label'=>'Duplike Anime','value'=>$malDuplicates->count(),'danger'=>$malDuplicates->count()>0], ['icon'=>'bi-shuffle','label'=>'Karışık Kaynaklı','value'=>$mixedSources->count(),'warn'=>$mixedSources->count()>0], ['icon'=>'bi-collection-play','label'=>'Eksik Bölümlü','value'=>$missingEpisodes->count(),'warn'=>$missingEpisodes->count()>0], ['icon'=>'bi-cloud','label'=>'Harici CDN Bölüm','value'=>number_format($externalCount),'info'=>$externalCount>0], ['icon'=>'bi-trash3','label'=>'0 Bölümlü Anime','value'=>$zeroEpisodeAnimes->count(),'danger'=>$zeroEpisodeAnimes->count()>0], ]; @endphp @foreach($checks as $c)
{{ $c['value'] }}
{{ $c['label'] }}
@endforeach
{{-- 1. Duplike --}}
Duplike Animeler (MAL ID) {{ $malDuplicates->count() }}
@forelse($malDuplicates as $dup)
MAL ID: {{ $dup['mal_id'] }}
@foreach($dup['animes'] as $anime) @endforeach
IDBaşlıkBölümEklenme
#{{ $anime->id }} {{ $anime->title }} {{ $anime->episodes_count }} {{ $anime->created_at->format('d.m.Y') }}
@csrf @method('DELETE')
@empty
Duplike anime yok.
@endforelse
{{-- 2. Karışık Kaynak --}}
Karışık Kaynaklı Animeler (hem animecix hem anizium) {{ $mixedSources->count() }}
@forelse($mixedSources as $item)
{{ $item['anime']->title }}
@foreach($item['sources'] as $src => $cnt) {{ $src }}: {{ $cnt }} bölüm @endforeach
@foreach($item['sources'] as $src => $cnt)
@csrf
@endforeach
@empty
Karışık kaynaklı anime yok.
@endforelse
{{-- 3. Eksik Bölümler --}}
Eksik Bölümlü Animeler {{ $missingEpisodes->count() }}
@if($missingEpisodes->count())
@foreach($missingEpisodes as $item) @endforeach
AnimeBeklenenMevcutEksik
{{ $item['title'] }} {{ $item['expected'] }} {{ $item['actual'] }} -{{ $item['missing'] }} Bölümler
@else
Eksik bölümlü anime yok.
@endif
{{-- 4. Sıfır Bölümlü --}}
0 Bölümlü Animeler {{ $zeroEpisodeAnimes->count() }} @if($zeroEpisodeAnimes->count() > 0) @endif
@if($zeroEpisodeAnimes->count())
@foreach($zeroEpisodeAnimes as $anime) @endforeach
AnimeEklenmeİşlem
{{ $anime->title }} {{ $anime->created_at->format('d.m.Y') }}
@csrf @method('DELETE')
@else
0 bölümlü anime yok.
@endif
{{-- ── Depolama & İnode Yönetimi ── --}}
Depolama & İnode Temizliği
İnode uyarısı: Sunucuda 188.000+ inode kullanılıyor. En büyük tüketiciler: HLS segment cache, file session'lar, Laravel cache dosyaları.
HLS Segment Cache
Session Dosyaları
Laravel Cache
— views
Session sürücüsünü değiştir → .env
File session'lar her ziyaretçi için 1 inode kullanır. Değiştirmek için .env dosyasında:
SESSION_DRIVER=cookie
Cookie driver: 0 sunucu dosyası, anında inode tasarrufu. Sonra cache temizle.
@endsection @push('scripts') @endpush