<?php

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

add_action( 'admin_menu', 'tilfy_admin_menu_ekle' );

function tilfy_dosya_surum( $goreli_yol ) {
	$dosya = TILFY_YOL . ltrim( (string) $goreli_yol, '/' );
	if ( is_readable( $dosya ) ) {
		return TILFY_SURUM . '.' . filemtime( $dosya );
	}
	return TILFY_SURUM;
}

function tilfy_admin_menu_ekle() {
	add_menu_page( tilfy__( 'Tilfy' ), tilfy__( 'Tilfy' ), 'manage_options', 'tilfy', 'tilfy_sayfa_panel', 'dashicons-share', 57 );
	add_submenu_page( 'tilfy', tilfy__( 'Panel' ), tilfy__( 'Panel' ), 'manage_options', 'tilfy', 'tilfy_sayfa_panel' );
	add_submenu_page( 'tilfy', tilfy__( 'Studyo' ), tilfy__( 'Studyo' ), 'manage_options', 'tilfy-studyosu', 'tilfy_sayfa_studyosu' );
	add_submenu_page( 'tilfy', tilfy__( 'İçerikler' ), tilfy__( 'İçerikler' ), 'manage_options', 'tilfy-icerikler', 'tilfy_sayfa_icerikler' );
	add_submenu_page( 'tilfy', tilfy__( 'Takvim' ), tilfy__( 'Takvim' ), 'manage_options', 'tilfy-takvim', 'tilfy_sayfa_takvim' );
	add_submenu_page( 'tilfy', tilfy__( 'Paylaşımlar' ), tilfy__( 'Paylaşımlar' ), 'manage_options', 'tilfy-paylasimlar', 'tilfy_sayfa_paylasimlar' );
	add_submenu_page( 'tilfy', tilfy__( 'Otomasyon' ), tilfy__( 'Otomasyon' ), 'manage_options', 'tilfy-otomasyon', 'tilfy_sayfa_otomasyon' );
	add_submenu_page( 'tilfy', tilfy__( 'İşlem yöneticisi' ), tilfy__( 'İşlem yöneticisi' ), 'manage_options', 'tilfy-islem-yoneticisi', 'tilfy_sayfa_islem_yoneticisi' );
	add_submenu_page( 'tilfy', tilfy__( 'İndirilen dosyalar' ), tilfy__( 'İndirilen dosyalar' ), 'manage_options', 'tilfy-medya-temizlik', 'tilfy_sayfa_medya_temizlik' );
	add_submenu_page( 'tilfy', tilfy__( 'Ayarlar' ), tilfy__( 'Ayarlar' ), 'manage_options', 'tilfy-ayarlar', 'tilfy_sayfa_ayarlar' );
}

function tilfy_admin_sayfa_mi( $hook ) {
	return strpos( (string) $hook, 'tilfy' ) !== false;
}

add_action( 'admin_enqueue_scripts', 'tilfy_admin_varliklari' );

function tilfy_admin_varliklari( $hook ) {
	if ( ! current_user_can( 'manage_options' ) ) {
		return;
	}
	wp_enqueue_style( 'tilfy-admin', TILFY_URL . 'assets/admin.css', array(), tilfy_dosya_surum( 'assets/admin.css' ) );
	wp_enqueue_script( 'tilfy-admin', TILFY_URL . 'assets/admin.js', array( 'jquery' ), tilfy_dosya_surum( 'assets/admin.js' ), true );
	wp_localize_script(
		'tilfy-admin',
		'tilfyAdmin',
		array(
			'ajax'              => admin_url( 'admin-ajax.php' ),
			'nonce'             => wp_create_nonce( 'tilfy_admin' ),
			'rest'              => esc_url_raw( rest_url( 'tilfy/v1/' ) ),
			'restNonce'         => wp_create_nonce( 'wp_rest' ),
			'platformlar'       => tilfy_platform_listesi(),
			'hedefPlatformlar'  => function_exists( 'tilfy_hedef_platform_listesi' ) ? tilfy_hedef_platform_listesi() : tilfy_platform_listesi(),
			'kaynakPlatformlar' => function_exists( 'tilfy_kaynak_platform_listesi' ) ? tilfy_kaynak_platform_listesi() : tilfy_platform_listesi(),
			'wordpressKaynak'   => function_exists( 'tilfy_wordpress_kaynak_aktif_mi' ) && tilfy_wordpress_kaynak_aktif_mi(),
			'senkronModu'       => function_exists( 'tilfy_senkron_modu' ) ? tilfy_senkron_modu() : 'yeni',
			'kapakHavuzu'       => function_exists( 'tilfy_kapak_havuzu_ogeleri' ) ? tilfy_kapak_havuzu_ogeleri() : array(),
			'ikonlar'           => function_exists( 'tilfy_ikonlar_listesi' ) ? tilfy_ikonlar_listesi() : array(),
			'baglanti'          => tilfy_baglanti_durumu(),
			'paylasimlarUrl'    => admin_url( 'admin.php?page=tilfy-paylasimlar' ),
			'takvimUrl'         => admin_url( 'admin.php?page=tilfy-takvim' ),
			'iceriklerUrl'      => admin_url( 'admin.php?page=tilfy-icerikler' ),
			'panelUrl'          => admin_url( 'admin.php?page=tilfy' ),
			'studyosuUrl'       => admin_url( 'admin.php?page=tilfy-studyosu' ),
			'islemYoneticisiUrl'=> admin_url( 'admin.php?page=tilfy-islem-yoneticisi' ),
			'medyaTemizlikUrl'  => admin_url( 'admin.php?page=tilfy-medya-temizlik' ),
			'yuklemeLimit'      => function_exists( 'tilfy_sunucu_yukleme_limiti' ) ? tilfy_sunucu_yukleme_limiti() : 0,
			'yuklemeLimitMetin' => function_exists( 'tilfy_sunucu_yukleme_limiti_metin' ) ? tilfy_sunucu_yukleme_limiti_metin() : '',
			'diagAnaliz'        => function_exists( 'tilfy_diag_analiz_aktif_mi' ) && tilfy_diag_analiz_aktif_mi(),
			'caprazSiraliArasiDk' => function_exists( 'tilfy_capraz_sirali_arasi_varsayilan' ) ? tilfy_capraz_sirali_arasi_varsayilan() : 80,
			'yinelenenKoruma'     => function_exists( 'tilfy_yinelenen_koruma_modu' ) ? tilfy_yinelenen_koruma_modu() : 'uyari',
			'logoSvgUrl'          => add_query_arg( 'ver', tilfy_dosya_surum( 'assets/tilfy.svg' ), TILFY_URL . 'assets/tilfy.svg' ),
			'locale'              => tilfy_dil_al(),
			'i18n'                => function_exists( 'tilfy_js_ceviriler' ) ? tilfy_js_ceviriler() : array(),
		)
	);
	if ( ! tilfy_admin_sayfa_mi( $hook ) ) {
		return;
	}
	wp_enqueue_media();
}

add_action( 'admin_post_tilfy_ayar_kaydet', 'tilfy_admin_ayar_kaydet' );
add_action( 'admin_post_tilfy_kuyruk_calistir', 'tilfy_admin_kuyruk_calistir' );
add_action( 'admin_post_tilfy_paylasim_toplu', 'tilfy_admin_paylasim_toplu' );
add_action( 'admin_post_tilfy_log_indir', 'tilfy_admin_log_indir' );
add_action( 'admin_post_tilfy_meta_sayfa_bul', 'tilfy_admin_meta_sayfa_bul' );
add_action( 'admin_post_tilfy_youtube_sifirla', 'tilfy_admin_youtube_sifirla' );
add_action( 'admin_post_tilfy_temizlik', 'tilfy_admin_temizlik' );
add_action( 'admin_post_tilfy_otomasyon_kaydet', 'tilfy_admin_otomasyon_kaydet' );
add_action( 'admin_post_tilfy_otomasyon_sil', 'tilfy_admin_otomasyon_sil' );
add_action( 'admin_post_tilfy_paylasim_kaydet', 'tilfy_admin_paylasim_kaydet' );

function tilfy_admin_otomasyon_kaydet() {
	tilfy_yetki_kontrol();
	check_admin_referer( 'tilfy_otomasyon_kaydet' );
	if ( ! function_exists( 'tilfy_otomasyon_post_verisi' ) || ! function_exists( 'tilfy_otomasyon_kaydet' ) ) {
		tilfy_admin_yonlendir_guvenli( array( 'page' => 'tilfy-otomasyon', 'tilfy_mesaj' => 'hata' ) );
	}
	$id = tilfy_otomasyon_kaydet( tilfy_otomasyon_post_verisi() );
	if ( $id <= 0 ) {
		tilfy_admin_yonlendir_guvenli( array( 'page' => 'tilfy-otomasyon', 'tilfy_mesaj' => 'hata' ) );
	}
	tilfy_admin_yonlendir_guvenli(
		array(
			'page'        => 'tilfy-otomasyon',
			'tilfy_mesaj' => 'kaydedildi',
		)
	);
}

function tilfy_admin_otomasyon_sil() {
	tilfy_yetki_kontrol();
	check_admin_referer( 'tilfy_otomasyon_sil' );
	$id = isset( $_POST['otomasyon_id'] ) ? (int) $_POST['otomasyon_id'] : 0;
	if ( $id > 0 && function_exists( 'tilfy_otomasyon_sil' ) ) {
		tilfy_otomasyon_sil( $id );
	}
	tilfy_admin_yonlendir_guvenli( array( 'page' => 'tilfy-otomasyon', 'tilfy_mesaj' => 'silindi' ) );
}

function tilfy_otomasyon_kural_kontrol_calistir( $id ) {
	$id = (int) $id;
	if ( $id <= 0 || ! function_exists( 'tilfy_otomasyon_al' ) || ! function_exists( 'tilfy_otomasyon_kural_isle' ) ) {
		return array(
			'ok'    => false,
			'tip'   => 'kontrol_hata',
			'mesaj' => tilfy__( 'Kural bulunamadı.' ),
			'adet'  => 0,
		);
	}
	$kural = tilfy_otomasyon_al( $id );
	if ( ! $kural ) {
		return array(
			'ok'    => false,
			'tip'   => 'kontrol_hata',
			'mesaj' => tilfy__( 'Kural bulunamadı.' ),
			'adet'  => 0,
		);
	}
	if ( empty( $kural->aktif ) ) {
		return array(
			'ok'    => false,
			'tip'   => 'kontrol_kapali',
			'mesaj' => tilfy__( 'Kural kapalı. Kontrol için önce kuralı aktif edin.' ),
			'adet'  => 0,
		);
	}
	$sonuc = tilfy_otomasyon_kural_isle( $kural );
	if ( empty( $sonuc['ok'] ) ) {
		$mesaj = trim( (string) ( $sonuc['mesaj'] ?? '' ) );
		if ( $mesaj === '' ) {
			$mesaj = 'Kontrol çalıştırılamadı. Kaynak bağlantısını ve kural ayarlarını kontrol edin.';
		}
		return array(
			'ok'    => false,
			'tip'   => 'kontrol_hata',
			'mesaj' => $mesaj,
			'adet'  => 0,
		);
	}
	$adet = (int) ( $sonuc['adet'] ?? 0 );
	if ( $adet > 0 ) {
		return array(
			'ok'    => true,
			'tip'   => 'kontrol_ok',
			'mesaj' => sprintf( tilfy__( '%d paylaşım kuyruğa eklendi.' ), $adet ),
			'adet'  => $adet,
		);
	}
	return array(
		'ok'    => true,
		'tip'   => 'kontrol_bos',
		'mesaj' => tilfy__( 'Kontrol tamamlandı; gecikme ve filtreye uyan yeni içerik yok.' ),
		'adet'  => 0,
	);
}

function tilfy_admin_otomasyon_kontrol() {
	tilfy_yetki_kontrol();
	check_admin_referer( 'tilfy_otomasyon_kontrol' );
	$id  = isset( $_POST['otomasyon_id'] ) ? (int) $_POST['otomasyon_id'] : 0;
	$yon = array( 'page' => 'tilfy-otomasyon' );
	$sonuc = tilfy_otomasyon_kural_kontrol_calistir( $id );
	$yon['tilfy_mesaj'] = $sonuc['tip'];
	if ( ! empty( $sonuc['adet'] ) ) {
		$yon['adet'] = (int) $sonuc['adet'];
	}
	tilfy_admin_yonlendir_guvenli( $yon );
}

add_action( 'wp_ajax_tilfy_manuel_metin', 'tilfy_ajax_manuel_metin' );
add_action( 'wp_ajax_tilfy_manuel_tamam', 'tilfy_ajax_manuel_tamam' );
add_action( 'wp_ajax_tilfy_capraz_baslat', 'tilfy_ajax_capraz_baslat' );
add_action( 'wp_ajax_tilfy_paylasim_baslat', 'tilfy_ajax_paylasim_baslat' );
add_action( 'wp_ajax_tilfy_kuyruk_adim', 'tilfy_ajax_kuyruk_adim' );
add_action( 'wp_ajax_tilfy_paylasim_durum', 'tilfy_ajax_paylasim_durum' );
add_action( 'wp_ajax_tilfy_paylasim_log', 'tilfy_ajax_paylasim_log' );
add_action( 'wp_ajax_tilfy_paylasim_toplu_sil', 'tilfy_ajax_paylasim_toplu_sil' );
add_action( 'wp_ajax_tilfy_paylasim_yeniden', 'tilfy_ajax_paylasim_yeniden' );
add_action( 'wp_ajax_tilfy_paylasim_toplu_yeniden', 'tilfy_ajax_paylasim_toplu_yeniden' );
add_action( 'wp_ajax_tilfy_senkron_baslat', 'tilfy_ajax_senkron_baslat' );
add_action( 'wp_ajax_tilfy_aktivite_durum', 'tilfy_ajax_aktivite_durum' );
add_action( 'wp_ajax_tilfy_kuyruk_duraklat', 'tilfy_ajax_kuyruk_duraklat' );
add_action( 'wp_ajax_tilfy_kuyruk_devam', 'tilfy_ajax_kuyruk_devam' );
add_action( 'wp_ajax_tilfy_kuyruk_iptal', 'tilfy_ajax_kuyruk_iptal' );
add_action( 'wp_ajax_tilfy_kuyruk_calisiyor_iptal', 'tilfy_ajax_kuyruk_calisiyor_iptal' );
add_action( 'wp_ajax_tilfy_kuyruk_secili_sil', 'tilfy_ajax_kuyruk_secili_sil' );
add_action( 'wp_ajax_tilfy_medya_secili_sil', 'tilfy_ajax_medya_secili_sil' );
add_action( 'wp_ajax_tilfy_paylasim_secili_iptal', 'tilfy_ajax_paylasim_secili_iptal' );
add_action( 'wp_ajax_tilfy_youtube_listeler', 'tilfy_ajax_youtube_listeler' );
add_action( 'wp_ajax_tilfy_baglanti_saglik', 'tilfy_ajax_baglanti_saglik' );
add_action( 'wp_ajax_tilfy_takvim_zamanla', 'tilfy_ajax_takvim_zamanla' );
add_action( 'wp_ajax_tilfy_takvim_gonder', 'tilfy_ajax_takvim_gonder' );
add_action( 'wp_ajax_tilfy_takvim_sil', 'tilfy_ajax_takvim_sil' );
add_action( 'wp_ajax_tilfy_takvim_toplu_zamanla', 'tilfy_ajax_takvim_toplu_zamanla' );
add_action( 'wp_ajax_tilfy_takvim_toplu_sil', 'tilfy_ajax_takvim_toplu_sil' );
add_action( 'wp_ajax_tilfy_takvim_toplu_gonder', 'tilfy_ajax_takvim_toplu_gonder' );
add_action( 'wp_ajax_tilfy_icerik_gizle', 'tilfy_ajax_icerik_gizle' );
add_action( 'wp_ajax_tilfy_icerik_goster', 'tilfy_ajax_icerik_goster' );
add_action( 'wp_ajax_tilfy_icerik_sifirla', 'tilfy_ajax_icerik_sifirla' );
add_action( 'wp_ajax_tilfy_icerik_sil', 'tilfy_ajax_icerik_sil' );
add_action( 'wp_ajax_tilfy_icerik_detay', 'tilfy_ajax_icerik_detay' );
add_action( 'wp_ajax_tilfy_icerik_medya_test', 'tilfy_ajax_icerik_medya_test' );
add_action( 'wp_ajax_tilfy_icerik_medya_ara', 'tilfy_ajax_icerik_medya_ara' );
add_action( 'wp_ajax_tilfy_icerik_medya_sec', 'tilfy_ajax_icerik_medya_sec' );
add_action( 'wp_ajax_tilfy_paylasim_detay', 'tilfy_ajax_paylasim_detay' );
add_action( 'wp_ajax_tilfy_paylasim_yoksay', 'tilfy_ajax_paylasim_yoksay' );
add_action( 'wp_ajax_tilfy_otomasyon_kontrol', 'tilfy_ajax_otomasyon_kontrol' );
add_action( 'wp_ajax_tilfy_diag_analiz_toggle', 'tilfy_ajax_diag_analiz_toggle' );
add_action( 'wp_ajax_tilfy_kapak_tara_baslat', 'tilfy_ajax_kapak_tara_baslat' );
add_action( 'wp_ajax_tilfy_kapak_tara_adim', 'tilfy_ajax_kapak_tara_adim' );
add_action( 'wp_ajax_tilfy_kapak_tara_loopback', 'tilfy_ajax_kapak_tara_loopback' );
add_action( 'wp_ajax_nopriv_tilfy_kapak_tara_loopback', 'tilfy_ajax_kapak_tara_loopback' );
add_action( 'wp_ajax_tilfy_kuyruk_loopback', 'tilfy_ajax_kuyruk_loopback' );
add_action( 'wp_ajax_nopriv_tilfy_kuyruk_loopback', 'tilfy_ajax_kuyruk_loopback' );
add_action( 'wp_ajax_tilfy_wordpress_yazilar', 'tilfy_ajax_wordpress_yazilar' );
add_action( 'wp_ajax_tilfy_icerik_kapak_ata', 'tilfy_ajax_icerik_kapak_ata' );
add_action( 'wp_ajax_tilfy_paylasim_kapak_ata', 'tilfy_ajax_paylasim_kapak_ata' );
add_action( 'wp_ajax_tilfy_icerik_medya_ata', 'tilfy_ajax_icerik_medya_ata' );
add_action( 'wp_ajax_tilfy_paylasim_medya_ata', 'tilfy_ajax_paylasim_medya_ata' );
add_action( 'wp_ajax_tilfy_icerik_one_cikani_kullan', 'tilfy_ajax_icerik_one_cikani_kullan' );
add_action( 'wp_ajax_tilfy_paylasim_one_cikani_kullan', 'tilfy_ajax_paylasim_one_cikani_kullan' );
add_action( 'wp_ajax_tilfy_wordpress_yazi_yukle', 'tilfy_ajax_wordpress_yazi_yukle' );

function tilfy_admin_ayar_kaydet() {
	tilfy_yetki_kontrol();
	check_admin_referer( 'tilfy_ayar_kaydet' );
	$girdi = array();
	foreach ( tilfy_ayar_anahtarlari() as $anahtar ) {
		if ( ! isset( $_POST[ $anahtar ] ) ) {
			continue;
		}
		$ham = wp_unslash( $_POST[ $anahtar ] );
		if ( in_array( $anahtar, tilfy_gizli_anahtarlar(), true ) ) {
			$ham = is_string( $ham ) ? $ham : '';
			if ( $ham === '' || $ham === tilfy_ayar_maskeli( $anahtar ) ) {
				continue;
			}
			$girdi[ $anahtar ] = sanitize_text_field( $ham );
			continue;
		}
		if ( is_string( $ham ) ) {
			$girdi[ $anahtar ] = sanitize_text_field( $ham );
		} elseif ( is_array( $ham ) ) {
			$girdi[ $anahtar ] = map_deep( $ham, 'sanitize_text_field' );
		} else {
			$girdi[ $anahtar ] = $ham;
		}
	}
	if ( isset( $_POST['meta_graph_surum'] ) ) {
		$ham_surum = sanitize_text_field( wp_unslash( $_POST['meta_graph_surum'] ) );
		$norm      = tilfy_meta_graph_surum_normalize( $ham_surum );
		$bos       = trim( $ham_surum ) === '';
		if ( $norm !== '' ) {
			$girdi['meta_graph_surum'] = $norm;
		} elseif ( $bos ) {
			$girdi['meta_graph_surum'] = '';
		} else {
			unset( $girdi['meta_graph_surum'] );
		}
	}
	if ( isset( $_POST['ayar_sekme'] ) && sanitize_key( wp_unslash( $_POST['ayar_sekme'] ) ) === 'genel' ) {
		$girdi['kuyruk_tek_is'] = ! empty( $_POST['kuyruk_tek_is'] ) ? '1' : '0';
		$girdi['log_islem']     = ! empty( $_POST['log_islem'] ) ? '1' : '0';
		$girdi['log_debug']     = ! empty( $_POST['log_debug'] ) ? '1' : '0';
		if ( function_exists( 'tilfy_diag_analiz_baslat' ) && function_exists( 'tilfy_diag_analiz_durdur' ) ) {
			if ( ! empty( $_POST['log_diag'] ) ) {
				tilfy_diag_analiz_baslat();
			} else {
				tilfy_diag_analiz_durdur();
			}
		}
		if ( isset( $_POST['varsayilan_icerik_gorunum'] ) ) {
			$ham_gorunum = sanitize_key( wp_unslash( $_POST['varsayilan_icerik_gorunum'] ) );
			$girdi['varsayilan_icerik_gorunum'] = $ham_gorunum === 'grid' ? 'grid' : 'liste';
		}
		if ( isset( $_POST['yinelenen_koruma'] ) ) {
			$ham_yinelenen = sanitize_key( wp_unslash( $_POST['yinelenen_koruma'] ) );
			$girdi['yinelenen_koruma'] = in_array( $ham_yinelenen, array( 'kapali', 'uyari', 'engelle' ), true ) ? $ham_yinelenen : 'uyari';
		}
		$girdi['kapak_sunucuya_kaydet'] = ! empty( $_POST['kapak_sunucuya_kaydet'] ) ? '1' : '0';
		$girdi['wordpress_kaynak'] = ! empty( $_POST['wordpress_kaynak'] ) ? '1' : '0';
		if ( isset( $_POST['senkron_modu'] ) ) {
			$ham_mod = sanitize_key( wp_unslash( $_POST['senkron_modu'] ) );
			$girdi['senkron_modu'] = $ham_mod === 'tam' ? 'tam' : 'yeni';
		}
		if ( isset( $_POST['senkron_medya'] ) ) {
			$ham_senkron = sanitize_key( wp_unslash( $_POST['senkron_medya'] ) );
			$girdi['senkron_medya'] = in_array( $ham_senkron, array( 'both', 'video', 'image' ), true ) ? $ham_senkron : 'both';
		}
		if ( isset( $_POST['capraz_sirali_arasi_dakika'] ) ) {
			$girdi['capraz_sirali_arasi_dakika'] = (string) max( 0, min( 1440, (int) wp_unslash( $_POST['capraz_sirali_arasi_dakika'] ) ) );
		}
		if ( isset( $_POST['varsayilan_kapak_havuzu'] ) ) {
			$havuz_ham = wp_unslash( $_POST['varsayilan_kapak_havuzu'] );
			$havuz_ids = function_exists( 'tilfy_kapak_havuzu_normalize' )
				? tilfy_kapak_havuzu_normalize( $havuz_ham )
				: array();
			$girdi['varsayilan_kapak_havuzu'] = wp_json_encode( $havuz_ids );
		}
	}
	if ( isset( $_POST['ayar_sekme'] ) && sanitize_key( wp_unslash( $_POST['ayar_sekme'] ) ) === 'tiktok' ) {
		$girdi['tiktok_direct_post'] = ! empty( $_POST['tiktok_direct_post'] ) ? '1' : '0';
		if ( isset( $_POST['tiktok_gizlilik'] ) ) {
			$girdi['tiktok_gizlilik'] = sanitize_text_field( wp_unslash( $_POST['tiktok_gizlilik'] ) );
		}
	}
	if ( isset( $_POST['ayar_sekme'] ) && sanitize_key( wp_unslash( $_POST['ayar_sekme'] ) ) === 'galeri' && function_exists( 'tilfy_galeri_ayarlari_kaydet' ) ) {
		$girdi = array_merge( $girdi, tilfy_galeri_ayarlari_kaydet( wp_unslash( $_POST ) ) );
	}
	tilfy_ayar_kaydet( $girdi );
	$ayar_sekme = isset( $_POST['ayar_sekme'] ) ? sanitize_key( wp_unslash( $_POST['ayar_sekme'] ) ) : 'merkez';
	$baglan_sonrasi = isset( $_POST['tilfy_baglan_sonrasi'] ) ? sanitize_key( wp_unslash( $_POST['tilfy_baglan_sonrasi'] ) ) : '';
	if ( $baglan_sonrasi === 'tiktok' ) {
		tilfy_oauth_dis_yonlendir( tilfy_tiktok_oauth_url() );
	}
	tilfy_admin_yonlendir_guvenli(
		array(
			'page'        => 'tilfy-ayarlar',
			'sekme'       => $ayar_sekme,
			'tilfy_mesaj' => 'ayar_kaydedildi',
		)
	);
}

function tilfy_admin_youtube_sifirla() {
	tilfy_yetki_kontrol();
	check_admin_referer( 'tilfy_youtube_sifirla' );
	tilfy_ayar_kaydet(
		array(
			'youtube_erisim_jetonu'   => '',
			'youtube_erisim_bitis'    => '',
			'youtube_yenileme_jetonu' => '',
			'youtube_scope_eksik'     => '1',
		)
	);
	tilfy_admin_yonlendir_guvenli(
		array(
			'page'        => 'tilfy-ayarlar',
			'sekme'       => 'youtube',
			'tilfy_mesaj' => 'youtube_sifirlandi',
		)
	);
}

function tilfy_admin_medya_onbellek_temizle() {
	tilfy_yetki_kontrol();
	check_admin_referer( 'tilfy_medya_onbellek_temizle' );
	if ( ! function_exists( 'tilfy_medya_onbellek_temizle' ) ) {
		tilfy_admin_yonlendir_guvenli(
			array(
				'page'        => 'tilfy-ayarlar',
				'sekme'       => 'genel',
				'tilfy_mesaj' => 'oauth_hata',
			)
		);
	}
	$sonuc = tilfy_medya_onbellek_temizle();
	set_transient( 'tilfy_medya_temiz_sonuc', $sonuc, 120 );
	tilfy_admin_yonlendir_guvenli(
		array(
			'page'        => 'tilfy-ayarlar',
			'sekme'       => 'genel',
			'tilfy_mesaj' => 'medya_temizlendi',
		)
	);
}

function tilfy_admin_temizlik() {
	tilfy_yetki_kontrol();
	check_admin_referer( 'tilfy_temizlik' );
	$islem    = isset( $_POST['temizlik_islem'] ) ? sanitize_key( wp_unslash( $_POST['temizlik_islem'] ) ) : '';
	$platform = isset( $_POST['temizlik_platform'] ) ? sanitize_key( wp_unslash( $_POST['temizlik_platform'] ) ) : '';
	if ( ! function_exists( 'tilfy_temizlik_calistir' ) ) {
		tilfy_admin_yonlendir_guvenli(
			array(
				'page'        => 'tilfy-ayarlar',
				'sekme'       => 'genel',
				'tilfy_mesaj' => 'temizlik_hata',
			)
		);
	}
	$sonuc = tilfy_temizlik_calistir( $islem, $platform );
	if ( ! empty( $sonuc['sonuc'] ) && $islem === 'medya_onbellek' ) {
		set_transient( 'tilfy_medya_temiz_sonuc', $sonuc['sonuc'], 120 );
	}
	set_transient( 'tilfy_temizlik_mesaj', (string) ( $sonuc['mesaj'] ?? '' ), 120 );
	tilfy_admin_yonlendir_guvenli(
		array(
			'page'        => 'tilfy-ayarlar',
			'sekme'       => 'genel',
			'tilfy_mesaj' => ! empty( $sonuc['ok'] ) ? 'temizlik_ok' : 'temizlik_hata',
		)
	);
}

function tilfy_admin_meta_sayfa_jeton() {
	tilfy_yetki_kontrol();
	check_admin_referer( 'tilfy_meta_sayfa_jeton' );
	require_once TILFY_YOL . 'includes/api/meta.php';
	$sayfa_id = isset( $_POST['meta_sayfa_id'] ) ? sanitize_text_field( wp_unslash( $_POST['meta_sayfa_id'] ) ) : tilfy_ayar_al( 'meta_sayfa_id' );
	if ( $sayfa_id !== '' ) {
		tilfy_ayar_kaydet( array( 'meta_sayfa_id' => $sayfa_id ) );
	}
	$jeton = tilfy_meta_sayfa_jetonu_al( $sayfa_id, true );
	$mesaj = is_wp_error( $jeton ) ? 'meta_sayfa_jeton_hata' : 'meta_sayfa_jeton_ok';
	if ( is_wp_error( $jeton ) ) {
		set_transient( 'tilfy_meta_sayfa_hata', $jeton->get_error_message(), 120 );
	}
	tilfy_admin_yonlendir_guvenli(
		array(
			'page'        => 'tilfy-ayarlar',
			'sekme'       => 'meta',
			'tilfy_mesaj' => $mesaj,
		)
	);
}

function tilfy_admin_meta_sayfa_bul() {
	tilfy_yetki_kontrol();
	check_admin_referer( 'tilfy_meta_sayfa_bul' );
	require_once TILFY_YOL . 'includes/api/meta.php';

	$manuel_sayfa = isset( $_POST['meta_sayfa_id'] ) ? sanitize_text_field( wp_unslash( $_POST['meta_sayfa_id'] ) ) : tilfy_ayar_al( 'meta_sayfa_id' );
	$mesaj        = 'meta_sayfa_bos';

	if ( $manuel_sayfa !== '' ) {
		tilfy_ayar_kaydet( array( 'meta_sayfa_id' => $manuel_sayfa ) );
		$jeton = tilfy_meta_sayfa_jetonu_al( $manuel_sayfa, true );
		if ( is_wp_error( $jeton ) ) {
			$mesaj = 'meta_sayfa_jeton_hata';
			set_transient( 'tilfy_meta_sayfa_hata', $jeton->get_error_message(), 120 );
		} else {
			$yanit = tilfy_meta_sayfa_instagram_id_al( $manuel_sayfa );
			if ( is_wp_error( $yanit ) ) {
				$mesaj = 'meta_sayfa_hata';
				set_transient( 'tilfy_meta_sayfa_hata', $yanit->get_error_message(), 60 );
			} else {
				$ig = (string) ( $yanit['instagram_business_account']['id'] ?? '' );
				tilfy_ayar_kaydet( array( 'meta_instagram_id' => $ig ) );
				$mesaj = $ig !== '' ? 'meta_sayfa_bulundu' : 'meta_instagram_yok';
			}
		}
	} else {
		$liste = tilfy_meta_sayfalari_bul();
		if ( is_wp_error( $liste ) ) {
			$mesaj = 'meta_sayfa_hata';
			set_transient( 'tilfy_meta_sayfa_hata', $liste->get_error_message(), 60 );
		} elseif ( ! empty( $liste ) ) {
			$ilk = $liste[0];
			tilfy_ayar_kaydet(
				array(
					'meta_sayfa_id'     => $ilk['sayfa_id'],
					'meta_instagram_id' => $ilk['instagram_id'],
				)
			);
			$mesaj = 'meta_sayfa_bulundu';
		}
	}

	tilfy_admin_yonlendir_guvenli(
		array(
			'page'        => 'tilfy-ayarlar',
			'sekme'       => 'meta',
			'tilfy_mesaj' => $mesaj,
		)
	);
}

function tilfy_senkron_baslat( $platform, $mod = '' ) {
	$platform = sanitize_key( (string) $platform );
	$mod      = function_exists( 'tilfy_senkron_mod_normalize' )
		? tilfy_senkron_mod_normalize( $mod !== '' ? $mod : ( function_exists( 'tilfy_senkron_modu' ) ? tilfy_senkron_modu() : 'yeni' ) )
		: ( $mod === 'tam' ? 'tam' : 'yeni' );
	if ( $platform === 'tumu' ) {
		tilfy_kuyruk_ekle( 'tumu_senkron', array( 'mod' => $mod ) );
	} elseif ( in_array( $platform, array( 'instagram', 'facebook', 'youtube' ), true ) ) {
		tilfy_kuyruk_ekle( 'icerik_cek', array( 'platform' => $platform, 'mod' => $mod ) );
		tilfy_kuyruk_ekle( 'istatistik_sync', array( 'platform' => $platform ) );
	} elseif ( $platform === 'threads' && function_exists( 'tilfy_threads_api_aktif_mi' ) && tilfy_threads_api_aktif_mi() ) {
		tilfy_kuyruk_ekle( 'icerik_cek', array( 'platform' => 'threads', 'mod' => $mod ) );
	} elseif ( $platform === 'wordpress' && function_exists( 'tilfy_wordpress_kaynak_aktif_mi' ) && tilfy_wordpress_kaynak_aktif_mi() ) {
		tilfy_kuyruk_ekle( 'icerik_cek', array( 'platform' => 'wordpress', 'mod' => $mod ) );
	} else {
		return array( 'ok' => false, 'mesaj' => tilfy__( 'Platform geçersiz veya bağlı değil' ) );
	}
	return array(
		'ok'              => true,
		'platform'        => $platform,
		'mod'             => $mod,
		'kuyruk_bekleyen' => function_exists( 'tilfy_kuyruk_bekleyen_say' ) ? tilfy_kuyruk_bekleyen_say() : 0,
	);
}

function tilfy_admin_senkron() {
	tilfy_yetki_kontrol();
	check_admin_referer( 'tilfy_senkron' );
	$platform = isset( $_POST['platform'] ) ? sanitize_key( wp_unslash( $_POST['platform'] ) ) : 'instagram';
	$mod      = isset( $_POST['mod'] ) ? sanitize_key( wp_unslash( $_POST['mod'] ) ) : '';
	$sonuc    = tilfy_senkron_baslat( $platform, $mod );
	if ( empty( $sonuc['ok'] ) ) {
		tilfy_admin_yonlendir_guvenli( array( 'page' => 'tilfy', 'tilfy_mesaj' => 'senkron_hata' ) );
	}
	tilfy_kuyruk_calistir();
	tilfy_admin_yonlendir_guvenli( array( 'page' => 'tilfy', 'tilfy_mesaj' => 'senkron_basladi' ) );
}

function tilfy_admin_kuyruk_calistir() {
	tilfy_yetki_kontrol();
	check_admin_referer( 'tilfy_kuyruk_calistir' );
	tilfy_kuyruk_calistir();
	tilfy_admin_yonlendir_guvenli( array( 'page' => 'tilfy-paylasimlar', 'tilfy_mesaj' => 'kuyruk_calisti' ) );
}

function tilfy_paylasim_toplu_islem( $tip, $platform = '', $secili = array() ) {
	$tip      = sanitize_key( $tip );
	$platform = sanitize_key( $platform );
	$secili   = array_map( 'intval', (array) $secili );
	$adet     = 0;
	if ( $tip === 'secili' && ! empty( $secili ) && function_exists( 'tilfy_paylasim_sil' ) ) {
		foreach ( $secili as $id ) {
			$adet += tilfy_paylasim_sil( (int) $id );
		}
		return $adet;
	}
	if ( function_exists( 'tilfy_paylasim_toplu_sil' ) ) {
		return (int) tilfy_paylasim_toplu_sil( $tip, $platform );
	}
	return 0;
}

function tilfy_admin_paylasim_toplu() {
	tilfy_yetki_kontrol();
	check_admin_referer( 'tilfy_paylasim_toplu' );
	$tip      = isset( $_POST['toplu_tip'] ) ? sanitize_key( wp_unslash( $_POST['toplu_tip'] ) ) : '';
	$platform = isset( $_POST['toplu_platform'] ) ? sanitize_key( wp_unslash( $_POST['toplu_platform'] ) ) : '';
	if ( $platform === '' && isset( $_POST['toplu_platform_sec'] ) ) {
		$platform = sanitize_key( wp_unslash( $_POST['toplu_platform_sec'] ) );
	}
	$secili = isset( $_POST['paylasim_idler'] ) ? array_map( 'intval', (array) wp_unslash( $_POST['paylasim_idler'] ) ) : array();
	$adet   = tilfy_paylasim_toplu_islem( $tip, $platform, $secili );
	tilfy_admin_yonlendir_guvenli(
		array(
			'page'        => 'tilfy-paylasimlar',
			'tilfy_mesaj' => 'toplu_silindi',
			'adet'        => $adet,
		)
	);
}

function tilfy_ajax_paylasim_toplu_sil() {
	tilfy_ajax_yetki_kontrol();
	$tip      = isset( $_POST['tip'] ) ? sanitize_key( wp_unslash( $_POST['tip'] ) ) : '';
	$platform = isset( $_POST['platform'] ) ? sanitize_key( wp_unslash( $_POST['platform'] ) ) : '';
	$secili   = isset( $_POST['secili'] ) ? array_map( 'intval', (array) wp_unslash( $_POST['secili'] ) ) : array();
	$adet     = tilfy_paylasim_toplu_islem( $tip, $platform, $secili );
	wp_send_json_success(
		array(
			'adet'   => $adet,
			'mesaj' => sprintf( tilfy__( '%d kayıt Tilfy listesinden silindi. Sosyal medyadaki gönderiler silinmedi.' ), $adet ),
		)
	);
}

function tilfy_paylasim_toplu_yeniden_islem( $tip, $secili = array() ) {
	global $wpdb;
	$tip    = sanitize_key( $tip );
	$secili = array_map( 'intval', (array) $secili );
	$idler  = array();
	if ( $tip === 'secili' && ! empty( $secili ) ) {
		$idler = $secili;
	} elseif ( $tip === 'hata' ) {
		$idler = array_map( 'intval', (array) $wpdb->get_col( "SELECT id FROM " . tilfy_tablo( 'paylasim' ) . " WHERE durum = 'hata'" ) );
	} else {
		return 0;
	}
	$adet = 0;
	if ( function_exists( 'tilfy_paylasim_yeniden_dene' ) ) {
		foreach ( $idler as $id ) {
			$sonuc = tilfy_paylasim_yeniden_dene( (int) $id );
			if ( ! empty( $sonuc['ok'] ) ) {
				++$adet;
			}
		}
	}
	return $adet;
}

function tilfy_ajax_paylasim_yeniden() {
	tilfy_ajax_yetki_kontrol();
	$id = isset( $_POST['paylasim_id'] ) ? (int) wp_unslash( $_POST['paylasim_id'] ) : 0;
	if ( $id <= 0 || ! function_exists( 'tilfy_paylasim_yeniden_dene' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Gecersiz istek' ) ), 400 );
	}
	$sonuc = tilfy_paylasim_yeniden_dene( $id );
	if ( empty( $sonuc['ok'] ) ) {
		wp_send_json_error( array( 'mesaj' => $sonuc['mesaj'] ?? 'Yeniden deneme basarisiz' ), 500 );
	}
	tilfy_kuyruk_calistir();
	wp_send_json_success( array( 'mesaj' => tilfy__( 'Kuyruga eklendi' ) ) );
}

function tilfy_ajax_paylasim_toplu_yeniden() {
	tilfy_ajax_yetki_kontrol();
	$tip    = isset( $_POST['tip'] ) ? sanitize_key( wp_unslash( $_POST['tip'] ) ) : '';
	$secili = isset( $_POST['secili'] ) ? array_map( 'intval', (array) wp_unslash( $_POST['secili'] ) ) : array();
	$adet   = tilfy_paylasim_toplu_yeniden_islem( $tip, $secili );
	if ( $adet > 0 ) {
		tilfy_kuyruk_calistir();
	}
	wp_send_json_success(
		array(
			'adet'  => $adet,
			'mesaj' => sprintf( tilfy__( '%d paylaşım yeniden kuyruğa eklendi.' ), $adet ),
		)
	);
}

function tilfy_admin_paylasim_sil() {
	tilfy_yetki_kontrol();
	check_admin_referer( 'tilfy_paylasim_sil' );
	$id = isset( $_POST['paylasim_id'] ) ? (int) $_POST['paylasim_id'] : 0;
	if ( $id > 0 && function_exists( 'tilfy_paylasim_sil' ) ) {
		tilfy_paylasim_sil( $id );
	}
	tilfy_admin_yonlendir_guvenli( array( 'page' => 'tilfy-paylasimlar', 'tilfy_mesaj' => 'silindi' ) );
}

function tilfy_admin_paylasim_yeniden() {
	tilfy_yetki_kontrol();
	check_admin_referer( 'tilfy_paylasim_yeniden' );
	$id = isset( $_POST['paylasim_id'] ) ? (int) $_POST['paylasim_id'] : 0;
	if ( $id > 0 && function_exists( 'tilfy_paylasim_yeniden_dene' ) ) {
		tilfy_paylasim_yeniden_dene( $id );
		tilfy_kuyruk_calistir();
	}
	tilfy_admin_yonlendir_guvenli( array( 'page' => 'tilfy-paylasimlar', 'tilfy_mesaj' => 'yeniden_kuyruk' ) );
}

function tilfy_admin_log_indir() {
	tilfy_yetki_kontrol();
	check_admin_referer( 'tilfy_log_indir' );
	$dosya = function_exists( 'tilfy_log_dosya_yolu' ) ? tilfy_log_dosya_yolu() : '';
	if ( $dosya === '' || ! is_readable( $dosya ) ) {
		wp_die( 'Islem logu henuz yok. Once paylasim veya senkron calistirin.' );
	}
	header( 'Content-Type: text/plain; charset=utf-8' );
	header( 'Content-Disposition: attachment; filename="tilfy-islem-' . gmdate( 'Y-m-d-His' ) . '.log"' );
	readfile( $dosya );
	exit;
}

function tilfy_ajax_paylasim_log() {
	tilfy_ajax_yetki_kontrol();
	$id = isset( $_POST['paylasim_id'] ) ? (int) $_POST['paylasim_id'] : 0;
	if ( $id <= 0 || ! function_exists( 'tilfy_paylasim_log_topla' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Log bulunamadi' ) ), 404 );
	}
	wp_send_json_success( array( 'satirlar' => tilfy_paylasim_log_topla( $id ) ) );
}

function tilfy_medya_dosya_gecerli_mi( $dosya_id ) {
	$dosya_id = (int) $dosya_id;
	if ( $dosya_id <= 0 || get_post_type( $dosya_id ) !== 'attachment' ) {
		return false;
	}
	$yol = get_attached_file( $dosya_id );
	return is_string( $yol ) && $yol !== '' && file_exists( $yol );
}

function tilfy_paylasim_medya_var_mi( $icerik_id, $medya_dosya_id ) {
	if ( (int) $medya_dosya_id > 0 && tilfy_medya_dosya_gecerli_mi( $medya_dosya_id ) ) {
		return true;
	}
	if ( (int) $icerik_id <= 0 ) {
		return false;
	}
	global $wpdb;
	$icerik = $wpdb->get_row(
		$wpdb->prepare(
			'SELECT medya_dosya_id, medya_url, kapak_url, kaynak_platform, kaynak_id FROM ' . tilfy_tablo( 'icerik' ) . ' WHERE id = %d',
			(int) $icerik_id
		)
	);
	if ( ! $icerik ) {
		return false;
	}
	if ( (int) $icerik->medya_dosya_id > 0 && tilfy_medya_dosya_gecerli_mi( (int) $icerik->medya_dosya_id ) ) {
		return true;
	}
	if ( function_exists( 'tilfy_icerik_meta_uzaktan_medya_mi' ) && tilfy_icerik_meta_uzaktan_medya_mi( $icerik ) ) {
		return true;
	}
	$medya = trim( (string) $icerik->medya_url );
	$kapak = trim( (string) ( $icerik->kapak_url ?? '' ) );
	if ( function_exists( 'tilfy_icerik_url_gecerli_mi' ) ) {
		return tilfy_icerik_url_gecerli_mi( $medya ) || tilfy_icerik_url_gecerli_mi( $kapak );
	}
	return $medya !== '' || $kapak !== '';
}

function tilfy_ajax_youtube_listeler() {
	tilfy_ajax_yetki_kontrol();
	require_once TILFY_YOL . 'includes/api/youtube.php';
	$listeler = tilfy_youtube_oynatma_listeleri();
	if ( is_wp_error( $listeler ) ) {
		wp_send_json_error( array( 'mesaj' => $listeler->get_error_message() ), 400 );
	}
	wp_send_json_success( array( 'listeler' => $listeler ) );
}

function tilfy_paylasim_baslat( $veri ) {
	$icerik_id      = (int) ( $veri['icerik_id'] ?? 0 );
	$mod            = sanitize_key( (string) ( $veri['paylasim_modu'] ?? 'ortak' ) );
	$medya_dosya_id = (int) ( $veri['medya_dosya_id'] ?? 0 );

	$platformlar = array_filter(
		array_map( 'sanitize_key', (array) ( $veri['platformlar'] ?? array() ) ),
		'tilfy_platform_paylasim_hazir_mi'
	);
	if ( empty( $platformlar ) ) {
		return array( 'ok' => false, 'mesaj' => tilfy__( 'En az bir platform secin' ) );
	}
	if ( ! tilfy_paylasim_medya_var_mi( $icerik_id, $medya_dosya_id ) ) {
		return array( 'ok' => false, 'mesaj' => tilfy__( 'Video veya gorsel zorunludur' ) );
	}

	if ( $icerik_id <= 0 ) {
		$icerik_id = tilfy_icerik_kaydet(
			array(
				'kaynak_platform' => 'wordpress',
				'baslik'          => (string) ( $veri['baslik'] ?? '' ),
				'aciklama'        => (string) ( $veri['aciklama'] ?? '' ),
				'etiketler'       => (string) ( $veri['etiketler'] ?? '' ),
				'medya_dosya_id'  => $medya_dosya_id,
				'medya_tipi'      => function_exists( 'tilfy_medya_tipi_belirle' ) ? tilfy_medya_tipi_belirle( $medya_dosya_id ) : 'video',
				'durum'           => 'hazir',
			)
		);
	} else {
		global $wpdb;
		$mevcut = $wpdb->get_row(
			$wpdb->prepare( 'SELECT medya_dosya_id, kaynak_platform FROM ' . tilfy_tablo( 'icerik' ) . ' WHERE id = %d', $icerik_id )
		);
		if ( $mevcut && sanitize_key( (string) ( $mevcut->kaynak_platform ?? '' ) ) === 'wordpress' ) {
			if ( $medya_dosya_id > 0 ) {
				$wpdb->update(
					tilfy_tablo( 'icerik' ),
					array(
						'medya_dosya_id' => $medya_dosya_id,
						'medya_tipi'     => function_exists( 'tilfy_medya_tipi_belirle' ) ? tilfy_medya_tipi_belirle( $medya_dosya_id ) : 'video',
						'guncelleme'     => current_time( 'mysql' ),
					),
					array( 'id' => $icerik_id )
				);
			}
		} elseif ( $medya_dosya_id > 0 ) {
			$wpdb->update(
				tilfy_tablo( 'icerik' ),
				array(
					'medya_dosya_id' => $medya_dosya_id,
					'medya_tipi'     => function_exists( 'tilfy_medya_tipi_belirle' ) ? tilfy_medya_tipi_belirle( $medya_dosya_id ) : 'video',
					'guncelleme'     => current_time( 'mysql' ),
				),
				array( 'id' => $icerik_id )
			);
		}
	}

	$ortak = array(
		'baslik'    => (string) ( $veri['baslik'] ?? '' ),
		'aciklama'  => (string) ( $veri['aciklama'] ?? '' ),
		'etiketler' => (string) ( $veri['etiketler'] ?? '' ),
	);
	if ( ! empty( $veri['zamanlama'] ) ) {
		if ( ! function_exists( 'tilfy_zamanlama_mysql_cevir' ) || ! function_exists( 'tilfy_zamanlama_gelecek_mi' ) ) {
			return array( 'ok' => false, 'mesaj' => tilfy__( 'Zamanlama modulu yok' ) );
		}
		$zaman_mysql = tilfy_zamanlama_mysql_cevir( $veri['zamanlama'] );
		if ( ! $zaman_mysql || ! tilfy_zamanlama_gelecek_mi( $zaman_mysql ) ) {
			return array( 'ok' => false, 'mesaj' => tilfy__( 'Gecerli bir gelecek tarih ve saat secin' ) );
		}
		$ortak['zamanlama'] = $veri['zamanlama'];
	}
	$ozel = array();
	if ( ! empty( $veri['platform_ozel'] ) && is_array( $veri['platform_ozel'] ) ) {
		foreach ( $veri['platform_ozel'] as $pl => $kart ) {
			$pl = sanitize_key( $pl );
			if ( ! tilfy_platform_aktif_mi( $pl ) || ! is_array( $kart ) ) {
				continue;
			}
			if ( $mod !== 'ayri' ) {
				continue;
			}
			$ozel[ $pl ] = array(
				'baslik'    => sanitize_text_field( $kart['baslik'] ?? '' ),
				'aciklama'  => wp_kses_post( $kart['aciklama'] ?? '' ),
				'etiketler' => sanitize_textarea_field( $kart['etiketler'] ?? '' ),
			);
		}
	}
	$platform_ayarlar = (array) ( $veri['platform_ayar'] ?? array() );
	foreach ( $platformlar as $platform ) {
		if ( empty( $platform_ayarlar[ $platform ] ) || ! is_array( $platform_ayarlar[ $platform ] ) ) {
			continue;
		}
		if ( ! isset( $ozel[ $platform ] ) ) {
			$ozel[ $platform ] = array();
		}
		$ozel[ $platform ]['ayar'] = function_exists( 'tilfy_paylasim_ayar_temizle' )
			? tilfy_paylasim_ayar_temizle( $platform, $platform_ayarlar[ $platform ] )
			: $platform_ayarlar[ $platform ];
	}

	if ( $icerik_id > 0 ) {
		tilfy_kuyruk_ekle( 'medya_indir', array( 'icerik_id' => $icerik_id ) );
	}
	$paylasim_ids = tilfy_paylasim_ekle( $icerik_id, $platformlar, $ortak, $ozel );
	$zamanlandi   = false;
	if ( ! empty( $ortak['zamanlama'] ) && ! empty( $paylasim_ids ) ) {
		global $wpdb;
		$in = tilfy_sql_in_ints( $paylasim_ids );
		if ( $in ) {
			$zamanlandi = (int) $wpdb->get_var(
				$wpdb->prepare(
					'SELECT COUNT(*) FROM ' . tilfy_tablo( 'paylasim' ) . " WHERE id IN ({$in['yer']}) AND durum = 'zamanlandi'",
					$in['degerler']
				)
			) === count( $in['degerler'] );
		}
	}
	return array(
		'ok'           => true,
		'icerik_id'    => (int) $icerik_id,
		'paylasim_ids' => array_map( 'intval', (array) $paylasim_ids ),
		'zamanlandi'   => $zamanlandi,
	);
}

function tilfy_admin_paylasim_kaydet() {
	tilfy_yetki_kontrol();
	check_admin_referer( 'tilfy_paylasim_kaydet' );

	$veri = tilfy_ajax_json_veri_temizle(
		array(
			'icerik_id'      => isset( $_POST['icerik_id'] ) ? absint( wp_unslash( $_POST['icerik_id'] ) ) : 0,
			'paylasim_modu'  => isset( $_POST['paylasim_modu'] ) ? sanitize_key( wp_unslash( $_POST['paylasim_modu'] ) ) : 'ortak',
			'medya_dosya_id' => isset( $_POST['medya_dosya_id'] ) ? absint( wp_unslash( $_POST['medya_dosya_id'] ) ) : 0,
			'baslik'         => isset( $_POST['baslik'] ) ? sanitize_text_field( wp_unslash( $_POST['baslik'] ) ) : '',
			'aciklama'       => isset( $_POST['aciklama'] ) ? wp_kses_post( wp_unslash( $_POST['aciklama'] ) ) : '',
			'etiketler'      => isset( $_POST['etiketler'] ) ? sanitize_textarea_field( wp_unslash( $_POST['etiketler'] ) ) : '',
			'platformlar'    => isset( $_POST['platformlar'] ) ? array_map( 'sanitize_key', (array) wp_unslash( $_POST['platformlar'] ) ) : array(),
			'platform_ozel'  => isset( $_POST['platform_ozel'] ) ? (array) wp_unslash( $_POST['platform_ozel'] ) : array(),
		)
	);
	$sonuc = tilfy_paylasim_baslat( $veri );
	if ( empty( $sonuc['ok'] ) ) {
		tilfy_admin_yonlendir_guvenli(
			array(
				'page'        => 'tilfy-studyosu',
				'tilfy_mesaj' => 'paylasim_hata',
			)
		);
	}
	tilfy_kuyruk_calistir();
	tilfy_admin_yonlendir_guvenli(
		array(
			'page'        => 'tilfy-paylasimlar',
			'tilfy_mesaj' => 'paylasim_kuyruga',
			'icerik_id'   => (int) $sonuc['icerik_id'],
		)
	);
}

function tilfy_capraz_ortak_hazirla( $veri, $id_sayisi ) {
	$veri      = is_array( $veri ) ? $veri : array();
	$id_sayisi = (int) $id_sayisi;
	$ortak     = array();
	if ( ! empty( $veri['zamanlama'] ) ) {
		if ( ! function_exists( 'tilfy_zamanlama_mysql_cevir' ) || ! function_exists( 'tilfy_zamanlama_gelecek_mi' ) ) {
			return new WP_Error( 'zamanlama_yok', 'Zamanlama modulu yok' );
		}
		$zaman_mysql = tilfy_zamanlama_mysql_cevir( $veri['zamanlama'] );
		if ( ! $zaman_mysql || ! tilfy_zamanlama_gelecek_mi( $zaman_mysql ) ) {
			return new WP_Error( 'zamanlama_gecersiz', 'Gecerli bir gelecek tarih ve saat secin' );
		}
		$ortak['zamanlama'] = sanitize_text_field( (string) $veri['zamanlama'] );
		if ( $id_sayisi > 1 && function_exists( 'tilfy_zamanlama_yayilim_normalize' ) ) {
			$norm = tilfy_zamanlama_yayilim_normalize( $veri['gunluk_adet'] ?? 1, $veri['paylasim_arasi_dakika'] ?? 0 );
			$ortak['gunluk_adet']           = $norm['gunluk_adet'];
			$ortak['paylasim_arasi_dakika'] = $norm['paylasim_arasi_dakika'];
		}
	} elseif ( $id_sayisi > 1 ) {
		if ( function_exists( 'tilfy_zamanlama_yayilim_normalize' ) ) {
			$norm = tilfy_zamanlama_yayilim_normalize( $veri['gunluk_adet'] ?? 1, $veri['paylasim_arasi_dakika'] ?? 0 );
			$ortak['gunluk_adet']           = $norm['gunluk_adet'];
			$ortak['paylasim_arasi_dakika'] = $norm['paylasim_arasi_dakika'];
		} elseif ( ! empty( $veri['paylasim_arasi_dakika'] ) ) {
			$ortak['paylasim_arasi_dakika'] = max( 0, min( 1440, (int) $veri['paylasim_arasi_dakika'] ) );
		}
	}
	if ( function_exists( 'tilfy_capraz_ortak_normalize' ) ) {
		$ortak = tilfy_capraz_ortak_normalize( $ortak, $id_sayisi );
	}
	return $ortak;
}

function tilfy_admin_capraz_paylas() {
	tilfy_yetki_kontrol();
	check_admin_referer( 'tilfy_capraz_paylas' );

	$idler  = array_values( array_filter( array_map( 'intval', (array) ( $_POST['icerik_idler'] ?? array() ) ) ) );
	$kaynak = isset( $_POST['kaynak_platform'] ) ? sanitize_key( wp_unslash( $_POST['kaynak_platform'] ) ) : '';
	$hedef  = isset( $_POST['hedef_platformlar'] ) ? array_map( 'sanitize_key', (array) wp_unslash( $_POST['hedef_platformlar'] ) ) : array();
	$hedef  = array_values(
		array_filter(
			$hedef,
			function ( $platform ) {
				return function_exists( 'tilfy_platform_paylasim_hazir_mi' ) ? tilfy_platform_paylasim_hazir_mi( $platform ) : tilfy_platform_aktif_mi( $platform );
			}
		)
	);
	if ( $kaynak !== '' ) {
		$hedef = array_values( array_diff( $hedef, array( $kaynak ) ) );
	}
	if ( empty( $idler ) || empty( $hedef ) ) {
		tilfy_admin_yonlendir_guvenli( array( 'page' => 'tilfy-icerikler', 'tilfy_mesaj' => 'secim_eksik' ) );
	}
	if ( $kaynak === 'tumu' ) {
		$kaynak = '';
	}
	if ( $kaynak !== '' && ! tilfy_platform_aktif_mi( $kaynak ) ) {
		tilfy_admin_yonlendir_guvenli( array( 'page' => 'tilfy-icerikler', 'tilfy_mesaj' => 'secim_eksik' ) );
	}

	$platform_ayarlar = array();
	if ( ! empty( $_POST['platform_ayar'] ) && is_array( $_POST['platform_ayar'] ) ) {
		$platform_ayarlar = function_exists( 'tilfy_post_platform_ayar_temizle' )
			? tilfy_post_platform_ayar_temizle( wp_unslash( $_POST['platform_ayar'] ) )
			: array();
	}

	$veri  = array(
		'zamanlama'             => isset( $_POST['zamanlama'] ) ? sanitize_text_field( wp_unslash( $_POST['zamanlama'] ) ) : '',
		'gunluk_adet'           => isset( $_POST['gunluk_adet'] ) ? absint( wp_unslash( $_POST['gunluk_adet'] ) ) : 1,
		'paylasim_arasi_dakika' => isset( $_POST['paylasim_arasi_dakika'] ) ? absint( wp_unslash( $_POST['paylasim_arasi_dakika'] ) ) : 0,
	);
	$ortak = tilfy_capraz_ortak_hazirla( $veri, count( $idler ) );
	if ( is_wp_error( $ortak ) ) {
		tilfy_admin_yonlendir_guvenli( array( 'page' => 'tilfy-icerikler', 'tilfy_mesaj' => 'secim_eksik' ) );
	}

	@set_time_limit( 300 );
	@ini_set( 'memory_limit', '256M' );
	$sonuc = tilfy_capraz_islem_yurut( $idler, $hedef, $ortak, $kaynak, $platform_ayarlar, false );
	if ( is_wp_error( $sonuc ) ) {
		tilfy_admin_yonlendir_guvenli( array( 'page' => 'tilfy-icerikler', 'tilfy_mesaj' => 'secim_eksik' ) );
	}
	$adet = (int) ( $sonuc['adet'] ?? 0 );
	tilfy_admin_yonlendir_guvenli(
		array(
			'page'        => 'tilfy-paylasimlar',
			'tilfy_mesaj' => 'capraz_basladi',
			'adet'        => $adet,
		)
	);
}

function tilfy_ajax_manuel_metin() {
	check_ajax_referer( 'tilfy_admin', 'nonce' );
	if ( ! current_user_can( 'manage_options' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Yetki yok' ) ), 403 );
	}
	$paylasim_id = isset( $_POST['paylasim_id'] ) ? (int) $_POST['paylasim_id'] : 0;
	$metin       = get_option( 'tilfy_manuel_paket_' . $paylasim_id, '' );
	wp_send_json_success( array( 'metin' => $metin ) );
}

function tilfy_ajax_manuel_tamam() {
	tilfy_ajax_yetki_kontrol();
	$paylasim_id = isset( $_POST['paylasim_id'] ) ? (int) $_POST['paylasim_id'] : 0;
	if ( $paylasim_id <= 0 ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Gecersiz paylasim' ) ), 400 );
	}
	global $wpdb;
	$paylasim = $wpdb->get_row(
		$wpdb->prepare( 'SELECT * FROM ' . tilfy_tablo( 'paylasim' ) . ' WHERE id = %d', $paylasim_id )
	);
	if ( ! $paylasim || (string) $paylasim->durum !== 'manuel_bekliyor' ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Paylasim manuel bekliyor degil' ) ), 400 );
	}
	$hedef_url = isset( $_POST['hedef_url'] ) ? esc_url_raw( wp_unslash( (string) $_POST['hedef_url'] ) ) : '';
	$guncelle  = array(
		'durum'      => 'yuklendi',
		'guncelleme' => current_time( 'mysql' ),
	);
	if ( $hedef_url !== '' ) {
		$guncelle['hedef_url'] = $hedef_url;
	}
	$wpdb->update( tilfy_tablo( 'paylasim' ), $guncelle, array( 'id' => $paylasim_id ) );
	delete_option( 'tilfy_manuel_paket_' . $paylasim_id );
	wp_send_json_success( array( 'mesaj' => tilfy__( 'Manuel paylasim tamamlandi' ) ) );
}

function tilfy_ajax_yetki_kontrol() {
	check_ajax_referer( 'tilfy_admin', 'nonce' );
	if ( ! current_user_can( 'manage_options' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Yetki yok' ) ), 403 );
	}
}


function tilfy_ajax_post_json_veri() {
	if ( empty( $_POST['veri'] ) ) {
		return array();
	}
	$ham = wp_unslash( (string) $_POST['veri'] );
	if ( $ham === '' || strlen( $ham ) > 500000 ) {
		return array();
	}
	$cozulmus = json_decode( $ham, true );
	if ( ! is_array( $cozulmus ) ) {
		return array();
	}
	return tilfy_ajax_json_veri_temizle( $cozulmus );
}

function tilfy_ajax_json_veri_temizle( $veri ) {
	$veri  = is_array( $veri ) ? $veri : array();
	$cikti = array();

	if ( isset( $veri['icerik_id'] ) ) {
		$cikti['icerik_id'] = absint( $veri['icerik_id'] );
	}
	if ( isset( $veri['icerik_idler'] ) ) {
		$cikti['icerik_idler'] = array_values( array_filter( array_map( 'absint', (array) $veri['icerik_idler'] ) ) );
	}
	if ( isset( $veri['medya_dosya_id'] ) ) {
		$cikti['medya_dosya_id'] = absint( $veri['medya_dosya_id'] );
	}
	if ( isset( $veri['paylasim_modu'] ) ) {
		$cikti['paylasim_modu'] = sanitize_key( (string) $veri['paylasim_modu'] );
	}
	if ( isset( $veri['kaynak_platform'] ) ) {
		$cikti['kaynak_platform'] = sanitize_key( (string) $veri['kaynak_platform'] );
	}
	if ( isset( $veri['platformlar'] ) ) {
		$cikti['platformlar'] = array_values( array_filter( array_map( 'sanitize_key', (array) $veri['platformlar'] ) ) );
	}
	if ( isset( $veri['hedef_platformlar'] ) ) {
		$cikti['hedef_platformlar'] = array_values( array_filter( array_map( 'sanitize_key', (array) $veri['hedef_platformlar'] ) ) );
	}
	if ( isset( $veri['baslik'] ) ) {
		$cikti['baslik'] = sanitize_text_field( (string) $veri['baslik'] );
	}
	if ( isset( $veri['aciklama'] ) ) {
		$cikti['aciklama'] = wp_kses_post( (string) $veri['aciklama'] );
	}
	if ( isset( $veri['etiketler'] ) ) {
		$cikti['etiketler'] = sanitize_textarea_field( (string) $veri['etiketler'] );
	}
	if ( isset( $veri['zamanlama'] ) ) {
		$cikti['zamanlama'] = sanitize_text_field( (string) $veri['zamanlama'] );
	}
	if ( isset( $veri['gunluk_adet'] ) ) {
		$cikti['gunluk_adet'] = absint( $veri['gunluk_adet'] );
	}
	if ( isset( $veri['paylasim_arasi_dakika'] ) ) {
		$cikti['paylasim_arasi_dakika'] = absint( $veri['paylasim_arasi_dakika'] );
	}
	if ( isset( $veri['yinelenen_zorla'] ) ) {
		$cikti['yinelenen_zorla'] = ! empty( $veri['yinelenen_zorla'] );
	}
	if ( ! empty( $veri['platform_ayar'] ) && is_array( $veri['platform_ayar'] ) ) {
		$cikti['platform_ayar'] = function_exists( 'tilfy_post_platform_ayar_temizle' )
			? tilfy_post_platform_ayar_temizle( $veri['platform_ayar'] )
			: array();
	}
	if ( ! empty( $veri['platform_ozel'] ) && is_array( $veri['platform_ozel'] ) ) {
		$cikti['platform_ozel'] = function_exists( 'tilfy_post_platform_ozel_temizle' )
			? tilfy_post_platform_ozel_temizle( $veri['platform_ozel'] )
			: array();
	}

	return $cikti;
}

function tilfy_ajax_capraz_baslat() {
	tilfy_ajax_yetki_kontrol();
	@set_time_limit( 300 );
	@ini_set( 'memory_limit', '256M' );
	$veri = tilfy_ajax_post_json_veri();
	if ( empty( $veri ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Eksik veri' ) ), 400 );
	}
	$idler  = array_values( array_filter( array_map( 'intval', (array) ( $veri['icerik_idler'] ?? array() ) ) ) );
	$kaynak = sanitize_key( (string) ( $veri['kaynak_platform'] ?? '' ) );
	$hedef  = array_filter( array_map( 'sanitize_key', (array) ( $veri['hedef_platformlar'] ?? array() ) ), 'tilfy_platform_paylasim_hazir_mi' );
	if ( $kaynak !== '' ) {
		$hedef = array_values( array_diff( $hedef, array( $kaynak ) ) );
	}
	if ( $kaynak === 'tumu' ) {
		$kaynak = '';
	}
	if ( empty( $idler ) || empty( $hedef ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'En az bir içerik ve hedef platform seçin.' ) ), 400 );
	}
	if ( $kaynak !== '' && ! tilfy_platform_aktif_mi( $kaynak ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Kaynak, içerik ve hedef platform gerekli' ) ), 400 );
	}
	$platform_ayarlar = (array) ( $veri['platform_ayar'] ?? array() );
	$ortak            = tilfy_capraz_ortak_hazirla( $veri, count( $idler ) );
	if ( is_wp_error( $ortak ) ) {
		$kod = $ortak->get_error_code();
		if ( $kod === 'zamanlama_yok' ) {
			wp_send_json_error( array( 'mesaj' => $ortak->get_error_message() ), 500 );
		}
		wp_send_json_error( array( 'mesaj' => $ortak->get_error_message() ), 400 );
	}
	$zorla = ! empty( $veri['yinelenen_zorla'] );
	$sonuc = tilfy_capraz_islem_yurut( $idler, array_values( $hedef ), $ortak, $kaynak, $platform_ayarlar, $zorla );
	if ( is_wp_error( $sonuc ) ) {
		$kod = $sonuc->get_error_code();
		if ( $kod === 'yinelenen_engellendi' ) {
			$data = $sonuc->get_error_data();
			wp_send_json_error(
				array(
					'kod'        => 'yinelenen_engellendi',
					'mesaj'      => $sonuc->get_error_message(),
					'engellenen' => is_array( $data ) ? ( $data['engellenen'] ?? array() ) : array(),
					'uyarilar'   => is_array( $data ) ? ( $data['uyarilar'] ?? array() ) : array(),
				),
				400
			);
		}
		if ( $kod === 'capraz_dedupe' ) {
			wp_send_json_error( array( 'mesaj' => $sonuc->get_error_message() ), 429 );
		}
		wp_send_json_error( array( 'mesaj' => $sonuc->get_error_message() ), 400 );
	}
	wp_send_json_success( $sonuc );
}

function tilfy_ajax_paylasim_baslat() {
	tilfy_ajax_yetki_kontrol();
	$veri = tilfy_ajax_post_json_veri();
	if ( empty( $veri ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Eksik veri' ) ), 400 );
	}
	if ( ! function_exists( 'tilfy_paylasim_baslat' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Paylasim modulu yok' ) ), 500 );
	}
	$sonuc = tilfy_paylasim_baslat( $veri );
	if ( empty( $sonuc['ok'] ) ) {
		wp_send_json_error( array( 'mesaj' => $sonuc['mesaj'] ?? 'Paylasim baslatilamadi' ), 400 );
	}
	tilfy_kuyruk_calistir();
	wp_send_json_success( $sonuc );
}

function tilfy_ajax_baglanti_saglik() {
	tilfy_ajax_yetki_kontrol();
	if ( ! function_exists( 'tilfy_baglanti_saglik_tumu' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Baglanti saglik modulu yok' ) ), 500 );
	}
	$platform = isset( $_POST['platform'] ) ? sanitize_key( wp_unslash( $_POST['platform'] ) ) : '';
	if ( $platform !== '' ) {
		$fonksiyon = 'tilfy_baglanti_saglik_' . $platform;
		if ( ! function_exists( $fonksiyon ) ) {
			wp_send_json_error( array( 'mesaj' => tilfy__( 'Gecersiz platform' ) ), 400 );
		}
		wp_send_json_success( array( 'sonuclar' => array( call_user_func( $fonksiyon ) ) ) );
	}
	wp_send_json_success( array( 'sonuclar' => tilfy_baglanti_saglik_tumu() ) );
}

function tilfy_ajax_takvim_gonder() {
	tilfy_ajax_yetki_kontrol();
	$id = isset( $_POST['paylasim_id'] ) ? (int) wp_unslash( $_POST['paylasim_id'] ) : 0;
	if ( $id <= 0 || ! function_exists( 'tilfy_paylasim_simdi_gonder' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Gecersiz istek' ) ), 400 );
	}
	$sonuc = tilfy_paylasim_simdi_gonder( $id );
	if ( is_wp_error( $sonuc ) ) {
		wp_send_json_error( array( 'mesaj' => $sonuc->get_error_message() ), 400 );
	}
	wp_send_json_success( $sonuc );
}

function tilfy_ajax_takvim_zamanla() {
	tilfy_ajax_yetki_kontrol();
	$id = isset( $_POST['paylasim_id'] ) ? (int) wp_unslash( $_POST['paylasim_id'] ) : 0;
	$zaman = isset( $_POST['zamanlama'] ) ? sanitize_text_field( wp_unslash( $_POST['zamanlama'] ) ) : '';
	if ( $id <= 0 || $zaman === '' || ! function_exists( 'tilfy_paylasim_zamanla' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Gecersiz istek' ) ), 400 );
	}
	$sonuc = tilfy_paylasim_zamanla( $id, $zaman );
	if ( is_wp_error( $sonuc ) ) {
		wp_send_json_error( array( 'mesaj' => $sonuc->get_error_message() ), 400 );
	}
	wp_send_json_success( array( 'mesaj' => tilfy__( 'Zamanlama guncellendi' ) ) );
}

function tilfy_ajax_takvim_sil() {
	tilfy_ajax_yetki_kontrol();
	$id = isset( $_POST['paylasim_id'] ) ? (int) wp_unslash( $_POST['paylasim_id'] ) : 0;
	if ( $id <= 0 || ! function_exists( 'tilfy_paylasim_takvimden_sil' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Gecersiz istek' ) ), 400 );
	}
	$sonuc = tilfy_paylasim_takvimden_sil( $id );
	if ( is_wp_error( $sonuc ) ) {
		wp_send_json_error( array( 'mesaj' => $sonuc->get_error_message() ), 400 );
	}
	wp_send_json_success( array( 'mesaj' => tilfy__( 'Paylasim silindi' ) ) );
}

function tilfy_ajax_takvim_toplu_zamanla() {
	tilfy_ajax_yetki_kontrol();
	$secili = isset( $_POST['secili'] ) ? (array) wp_unslash( $_POST['secili'] ) : array();
	$zaman  = isset( $_POST['zamanlama'] ) ? sanitize_text_field( wp_unslash( $_POST['zamanlama'] ) ) : '';
	if ( empty( $secili ) || $zaman === '' || ! function_exists( 'tilfy_paylasim_zamanla' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Gecersiz istek' ) ), 400 );
	}
	$idler = array_values( array_filter( array_map( 'intval', $secili ) ) );
	if ( function_exists( 'tilfy_paylasim_idler_icerik_sirala' ) ) {
		$idler = tilfy_paylasim_idler_icerik_sirala( $idler );
	} else {
		sort( $idler, SORT_NUMERIC );
	}
	$norm = function_exists( 'tilfy_zamanlama_yayilim_normalize' )
		? tilfy_zamanlama_yayilim_normalize(
			isset( $_POST['gunluk_adet'] ) ? absint( wp_unslash( $_POST['gunluk_adet'] ) ) : 1,
			isset( $_POST['paylasim_arasi_dakika'] ) ? absint( wp_unslash( $_POST['paylasim_arasi_dakika'] ) ) : 0
		)
		: array(
			'gunluk_adet'           => 1,
			'paylasim_arasi_dakika' => 0,
		);
	$adet           = count( $idler );
	$arasi   = (int) $norm['paylasim_arasi_dakika'];
	$gunluk  = (int) $norm['gunluk_adet'];
	if ( $arasi > 0 && $gunluk <= 1 ) {
		$gunluk = 1;
	}
	$yayilim = function_exists( 'tilfy_zamanlama_yayilim_aktif_mi' )
		&& tilfy_zamanlama_yayilim_aktif_mi( $gunluk, $arasi, $adet );
	$premiere_sirali = $adet > 1 && $arasi > 0 && $gunluk === 1 && ! $yayilim;
	if ( $premiere_sirali && function_exists( 'tilfy_takvim_sirali_zamanla' ) ) {
		$sonuc = tilfy_takvim_sirali_zamanla( $idler, $zaman, $arasi );
		if ( is_wp_error( $sonuc ) ) {
			wp_send_json_error( array( 'mesaj' => $sonuc->get_error_message() ), 400 );
		}
		wp_send_json_success(
			array(
				'basarili' => (int) ( $sonuc['basarili'] ?? 0 ),
				'hata'     => (int) ( $sonuc['hata'] ?? 0 ),
				'mesaj'    => (int) ( $sonuc['basarili'] ?? 0 ) . ' paylasim sirali zamanlandi (bitis + aralik)',
			)
		);
	}
	$basarili = 0;
	$hata     = 0;
	foreach ( $idler as $sira => $id ) {
		if ( $id <= 0 ) {
			continue;
		}
		$zaman_kullan = $zaman;
		if ( $adet > 1 && $yayilim && function_exists( 'tilfy_zamanlama_slot_datetime' ) ) {
			$zaman_kullan = tilfy_zamanlama_slot_datetime( $zaman, $sira, $gunluk, $arasi );
		}
		$sonuc = tilfy_paylasim_zamanla( $id, $zaman_kullan );
		if ( is_wp_error( $sonuc ) ) {
			++$hata;
		} else {
			++$basarili;
		}
	}
	if ( $basarili === 0 ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Hicbir kayit guncellenemedi' ) ), 400 );
	}
	wp_send_json_success(
		array(
			'basarili' => $basarili,
			'hata'     => $hata,
			'mesaj' => sprintf( tilfy__( '%d paylaşım zamanlandı' ), $basarili ) . ( $hata > 0 ? ' (' . $hata . ' ' . tilfy__( 'hata' ) . ')' : '' ),
		)
	);
}

function tilfy_ajax_takvim_toplu_sil() {
	tilfy_ajax_yetki_kontrol();
	$secili = isset( $_POST['secili'] ) ? (array) wp_unslash( $_POST['secili'] ) : array();
	if ( empty( $secili ) || ! function_exists( 'tilfy_paylasim_takvimden_sil' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Gecersiz istek' ) ), 400 );
	}
	$basarili = 0;
	$hata     = 0;
	foreach ( $secili as $ham_id ) {
		$id = (int) $ham_id;
		if ( $id <= 0 ) {
			continue;
		}
		$sonuc = tilfy_paylasim_takvimden_sil( $id );
		if ( is_wp_error( $sonuc ) ) {
			++$hata;
		} else {
			++$basarili;
		}
	}
	if ( $basarili === 0 ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Hicbir kayit silinemedi' ) ), 400 );
	}
	wp_send_json_success(
		array(
			'basarili' => $basarili,
			'hata'     => $hata,
			'mesaj' => sprintf( tilfy__( '%d paylaşım silindi' ), $basarili ) . ( $hata > 0 ? ' (' . $hata . ' ' . tilfy__( 'hata' ) . ')' : '' ),
		)
	);
}

function tilfy_ajax_takvim_toplu_gonder() {
	tilfy_ajax_yetki_kontrol();
	$secili = isset( $_POST['secili'] ) ? (array) wp_unslash( $_POST['secili'] ) : array();
	if ( empty( $secili ) || ! function_exists( 'tilfy_takvim_toplu_simdi_gonder' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Gecersiz istek' ) ), 400 );
	}
	$sonuc = tilfy_takvim_toplu_simdi_gonder( $secili );
	if ( is_wp_error( $sonuc ) ) {
		wp_send_json_error( array( 'mesaj' => $sonuc->get_error_message() ), 400 );
	}
	wp_send_json_success( $sonuc );
}

function tilfy_ajax_kuyruk_adim() {
	tilfy_ajax_yetki_kontrol();
	if ( ! function_exists( 'tilfy_kuyruk_tek_adim' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Kuyruk modulu yok' ) ), 500 );
	}
	@set_time_limit( 300 );
	wp_send_json_success( tilfy_kuyruk_tek_adim() );
}

function tilfy_ajax_senkron_baslat() {
	tilfy_ajax_yetki_kontrol();
	$platform = isset( $_POST['platform'] ) ? sanitize_key( wp_unslash( $_POST['platform'] ) ) : '';
	$mod      = isset( $_POST['mod'] ) ? sanitize_key( wp_unslash( $_POST['mod'] ) ) : '';
	if ( ! function_exists( 'tilfy_senkron_baslat' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Senkron modulu yok' ) ), 500 );
	}
	$sonuc = tilfy_senkron_baslat( $platform, $mod );
	if ( empty( $sonuc['ok'] ) ) {
		wp_send_json_error( array( 'mesaj' => $sonuc['mesaj'] ?? 'Senkron baslatilamadi' ), 400 );
	}
	wp_send_json_success( $sonuc );
}

function tilfy_ajax_aktivite_durum() {
	tilfy_ajax_yetki_kontrol();
	$ids = isset( $_POST['ids'] ) ? sanitize_text_field( wp_unslash( $_POST['ids'] ) ) : '';
	$id_liste = array();
	if ( $ids !== '' ) {
		$id_liste = array_map( 'intval', explode( ',', $ids ) );
	}
	if ( ! function_exists( 'tilfy_aktivite_durum_getir' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Aktivite modulu yok' ) ), 500 );
	}
	$senkron_platform = isset( $_POST['senkron_platform'] ) ? sanitize_key( wp_unslash( $_POST['senkron_platform'] ) ) : '';
	wp_send_json_success( tilfy_aktivite_durum_getir( $id_liste, $senkron_platform ) );
}

function tilfy_ajax_kuyruk_duraklat() {
	tilfy_ajax_yetki_kontrol();
	$duraklat = isset( $_POST['duraklat'] ) && wp_unslash( $_POST['duraklat'] ) === '1';
	if ( ! function_exists( 'tilfy_kuyruk_duraklat_set' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Kuyruk modulu yok' ) ), 500 );
	}
	tilfy_kuyruk_duraklat_set( $duraklat );
	$medya_eklenen = 0;
	if ( ! $duraklat ) {
		if ( function_exists( 'tilfy_kuyruk_takili_serbest_birak' ) ) {
			tilfy_kuyruk_takili_serbest_birak();
		}
		if ( function_exists( 'tilfy_kuyruk_bekleyen_tamamla' ) ) {
			tilfy_kuyruk_bekleyen_tamamla();
		}
		if ( function_exists( 'tilfy_kuyruk_medya_eksik_kuyruga_al' ) ) {
			$medya_eklenen = tilfy_kuyruk_medya_eksik_kuyruga_al();
		}
		if ( function_exists( 'tilfy_kuyruk_arka_plan_tetik' ) ) {
			tilfy_kuyruk_arka_plan_tetik();
		}
	}
	wp_send_json_success(
		array(
			'duraklatildi'  => tilfy_kuyruk_duraklatildi_mi(),
			'bekleyen'      => tilfy_kuyruk_bekleyen_say(),
			'medya_eklenen' => $medya_eklenen,
		)
	);
}

function tilfy_ajax_kuyruk_devam() {
	tilfy_ajax_yetki_kontrol();
	if ( ! function_exists( 'tilfy_kuyruk_devam_et' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Kuyruk modulu yok' ) ), 500 );
	}
	wp_send_json_success( tilfy_kuyruk_devam_et() );
}

function tilfy_ajax_kuyruk_calisiyor_iptal() {
	tilfy_ajax_yetki_kontrol();
	if ( ! function_exists( 'tilfy_kuyruk_calisiyor_iptal' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Kuyruk modulu yok' ) ), 500 );
	}
	$adet = tilfy_kuyruk_calisiyor_iptal();
	wp_send_json_success(
		array(
			'iptal'    => $adet,
			'bekleyen' => tilfy_kuyruk_bekleyen_say(),
		)
	);
}

function tilfy_ajax_kuyruk_secili_sil() {
	tilfy_ajax_yetki_kontrol();
	if ( ! function_exists( 'tilfy_kuyruk_satirlari_sil' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Kuyruk modulu yok' ) ), 500 );
	}
	$ids = isset( $_POST['ids'] ) ? array_map( 'intval', (array) wp_unslash( $_POST['ids'] ) ) : array();
	$iptal_paylasim = isset( $_POST['iptal_paylasim'] ) && wp_unslash( $_POST['iptal_paylasim'] ) === '1';
	$zorla          = isset( $_POST['zorla'] ) && wp_unslash( $_POST['zorla'] ) === '1';
	$sonuc          = tilfy_kuyruk_satirlari_sil( $ids, $iptal_paylasim, $zorla );
	wp_send_json_success(
		array_merge(
			$sonuc,
			array(
				'bekleyen' => tilfy_kuyruk_bekleyen_say(),
				'debug'    => function_exists( 'tilfy_aktivite_debug_getir' ) ? tilfy_aktivite_debug_getir() : array(),
			)
		)
	);
}

function tilfy_ajax_paylasim_secili_iptal() {
	tilfy_ajax_yetki_kontrol();
	if ( ! function_exists( 'tilfy_paylasim_bekleyen_iptal' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Paylasim modulu yok' ) ), 500 );
	}
	$ids = isset( $_POST['ids'] ) ? array_map( 'intval', (array) wp_unslash( $_POST['ids'] ) ) : array();
	$adet = tilfy_paylasim_bekleyen_iptal( $ids );
	wp_send_json_success(
		array(
			'iptal'    => $adet,
			'bekleyen' => tilfy_kuyruk_bekleyen_say(),
		)
	);
}

function tilfy_ajax_kuyruk_iptal() {
	tilfy_ajax_yetki_kontrol();
	if ( ! function_exists( 'tilfy_kuyruk_bekleyen_iptal' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Kuyruk modulu yok' ) ), 500 );
	}
	$adet = tilfy_kuyruk_bekleyen_iptal();
	wp_send_json_success(
		array(
			'iptal'    => $adet,
			'bekleyen' => tilfy_kuyruk_bekleyen_say(),
		)
	);
}

function tilfy_ajax_paylasim_durum() {
	tilfy_ajax_yetki_kontrol();
	$ids = isset( $_POST['ids'] ) ? sanitize_text_field( wp_unslash( $_POST['ids'] ) ) : '';
	if ( $ids === '' && isset( $_GET['ids'] ) ) {
		$ids = sanitize_text_field( wp_unslash( $_GET['ids'] ) );
	}
	$id_liste = array();
	if ( $ids !== '' ) {
		$id_liste = array_map( 'intval', explode( ',', $ids ) );
	}
	if ( ! function_exists( 'tilfy_paylasimlar_durum_getir' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Durum modulu yok' ) ), 500 );
	}
	wp_send_json_success( tilfy_paylasimlar_durum_getir( $id_liste ) );
}

function tilfy_sayfa_panel() {
	$ozet     = tilfy_istatistik_ozet();
	$baglanti = tilfy_baglanti_durumu();
	$mesaj    = isset( $_GET['tilfy_mesaj'] ) ? sanitize_key( wp_unslash( $_GET['tilfy_mesaj'] ) ) : '';
	require TILFY_YOL . 'includes/sayfalar/panel.php';
}

function tilfy_sayfa_icerikler() {
	$sekme           = isset( $_GET['sekme'] ) ? sanitize_key( wp_unslash( $_GET['sekme'] ) ) : 'tumu';
	$sira            = isset( $_GET['sira'] ) && wp_unslash( $_GET['sira'] ) === 'eski' ? 'eski' : 'yeni';
	$senkron         = isset( $_GET['senkron'] ) ? sanitize_key( wp_unslash( $_GET['senkron'] ) ) : '';
	$senkron_hedef   = isset( $_GET['senkron_hedef'] ) ? sanitize_key( wp_unslash( $_GET['senkron_hedef'] ) ) : '';
	$tarih_baslangic = isset( $_GET['tarih_baslangic'] ) ? sanitize_text_field( wp_unslash( $_GET['tarih_baslangic'] ) ) : '';
	$arama           = isset( $_GET['arama'] ) ? sanitize_text_field( wp_unslash( $_GET['arama'] ) ) : '';
	if ( isset( $_GET['gorunum'] ) ) {
		$gorunum = wp_unslash( $_GET['gorunum'] ) === 'grid' ? 'grid' : 'liste';
	} else {
		$gorunum = function_exists( 'tilfy_varsayilan_icerik_gorunum' ) ? tilfy_varsayilan_icerik_gorunum() : 'liste';
	}
	$medya_grup      = isset( $_GET['medya_grup'] ) ? sanitize_key( wp_unslash( $_GET['medya_grup'] ) ) : '';
	if ( ! in_array( $medya_grup, array( 'video', 'gorsel', 'kapaksiz' ), true ) ) {
		$medya_grup = '';
	}
	if ( $tarih_baslangic !== '' && ! preg_match( '/^\d{4}-\d{2}-\d{2}$/', $tarih_baslangic ) ) {
		$tarih_baslangic = '';
	}
	$sayfa          = max( 1, (int) ( $_GET['sayfa'] ?? 1 ) );
	$liste_args     = array(
		'platform'         => $sekme,
		'page'             => $sayfa,
		'per_page'         => 100,
		'sira'             => $sira,
		'senkron'          => $senkron,
		'senkron_hedef'    => $senkron_hedef,
		'tarih_baslangic'  => $tarih_baslangic,
		'arama'            => $arama,
		'medya_grup'       => $medya_grup,
	);
	$icerikler      = tilfy_icerik_listele( $liste_args );
	$toplam         = tilfy_icerik_say( $liste_args );
	$sayfa_sayisi   = max( 1, (int) ceil( $toplam / 100 ) );
	if ( $sayfa > $sayfa_sayisi ) {
		$sayfa = $sayfa_sayisi;
		$liste_args['page'] = $sayfa;
		$icerikler    = tilfy_icerik_listele( $liste_args );
	}
	$paylasim_etiket = function_exists( 'tilfy_icerik_paylasim_etiketleri' )
		? tilfy_icerik_paylasim_etiketleri( wp_list_pluck( $icerikler, 'id' ) )
		: array();
	$mesaj     = isset( $_GET['tilfy_mesaj'] ) ? sanitize_key( wp_unslash( $_GET['tilfy_mesaj'] ) ) : '';
	$baglanti  = tilfy_baglanti_durumu();
	$yt_listeler    = array();
	$yt_scope_eksik = tilfy_ayar_al( 'youtube_scope_eksik' ) === '1';
	if ( function_exists( 'tilfy_youtube_oynatma_listeleri' ) ) {
		$yt_ham = tilfy_youtube_oynatma_listeleri();
		if ( ! is_wp_error( $yt_ham ) ) {
			$yt_listeler = $yt_ham;
		}
	}
	require TILFY_YOL . 'includes/sayfalar/icerikler.php';
}

function tilfy_sayfa_takvim() {
	$yil = isset( $_GET['yil'] ) ? (int) $_GET['yil'] : (int) current_time( 'Y' );
	$ay  = isset( $_GET['ay'] ) ? (int) $_GET['ay'] : (int) current_time( 'n' );
	$yil = max( 1970, min( 2100, $yil ) );
	$ay  = max( 1, min( 12, $ay ) );
	$ogeler = function_exists( 'tilfy_takvim_ogeleri' ) ? tilfy_takvim_ogeleri( $yil, $ay ) : array();
	require TILFY_YOL . 'includes/sayfalar/takvim.php';
}

function tilfy_sayfa_paylasimlar() {
	$durum_filtre   = isset( $_GET['durum'] ) ? sanitize_key( wp_unslash( $_GET['durum'] ) ) : '';
	$hedef_filtre   = isset( $_GET['hedef'] ) ? sanitize_key( wp_unslash( $_GET['hedef'] ) ) : '';
	$arama          = isset( $_GET['arama'] ) ? sanitize_text_field( wp_unslash( $_GET['arama'] ) ) : '';
	$gizle_yuklendi = isset( $_GET['gizle_yuklendi'] ) && wp_unslash( $_GET['gizle_yuklendi'] ) === '1';
	$grup_filtre    = isset( $_GET['grup'] ) ? sanitize_key( wp_unslash( $_GET['grup'] ) ) : '';
	if ( isset( $_GET['gorunum'] ) ) {
		$gorunum = sanitize_key( wp_unslash( $_GET['gorunum'] ) ) === 'grid' ? 'grid' : 'liste';
	} else {
		$gorunum = function_exists( 'tilfy_varsayilan_icerik_gorunum' ) ? tilfy_varsayilan_icerik_gorunum() : 'liste';
	}
	$sayfa          = max( 1, (int) ( $_GET['sayfa'] ?? 1 ) );
	$liste_args     = array(
		'page'             => $sayfa,
		'per_page'         => 100,
		'durum'            => $durum_filtre,
		'hedef_platform'   => $hedef_filtre,
		'gizle_yuklendi'   => $gizle_yuklendi,
		'arama'            => $arama,
		'grup'             => $grup_filtre,
	);
	$toplam         = function_exists( 'tilfy_paylasim_say' ) ? tilfy_paylasim_say( $liste_args ) : 0;
	$sayfa_sayisi   = max( 1, (int) ceil( $toplam / 100 ) );
	if ( $sayfa > $sayfa_sayisi ) {
		$sayfa = $sayfa_sayisi;
		$liste_args['page'] = $sayfa;
	}
	$paylasimlar    = tilfy_paylasim_listele( $liste_args );
	$mesaj       = isset( $_GET['tilfy_mesaj'] ) ? sanitize_key( wp_unslash( $_GET['tilfy_mesaj'] ) ) : '';
	$platformlar = function_exists( 'tilfy_hedef_platform_listesi' ) ? tilfy_hedef_platform_listesi() : tilfy_platform_listesi();
	require TILFY_YOL . 'includes/sayfalar/paylasimlar.php';
}

function tilfy_sayfa_studyosu() {
	$platformlar = function_exists( 'tilfy_hedef_platform_listesi' ) ? tilfy_hedef_platform_listesi() : tilfy_platform_listesi();
	$wordpress_kaynak = function_exists( 'tilfy_wordpress_kaynak_aktif_mi' ) && tilfy_wordpress_kaynak_aktif_mi();
	$icerik_id   = isset( $_GET['icerik_id'] ) ? (int) $_GET['icerik_id'] : 0;
	$icerik      = null;
	if ( $icerik_id > 0 ) {
		global $wpdb;
		$icerik = $wpdb->get_row( $wpdb->prepare( 'SELECT * FROM ' . tilfy_tablo( 'icerik' ) . ' WHERE id = %d', $icerik_id ) );
	}
	$mesaj           = isset( $_GET['tilfy_mesaj'] ) ? sanitize_key( wp_unslash( $_GET['tilfy_mesaj'] ) ) : '';
	$yt_listeler     = array();
	$yt_scope_eksik  = tilfy_ayar_al( 'youtube_scope_eksik' ) === '1';
	if ( function_exists( 'tilfy_youtube_oynatma_listeleri' ) ) {
		$yt_ham = tilfy_youtube_oynatma_listeleri();
		if ( ! is_wp_error( $yt_ham ) ) {
			$yt_listeler = $yt_ham;
		}
	}
	require TILFY_YOL . 'includes/sayfalar/studyosu.php';
}

function tilfy_ajax_wordpress_yazilar() {
	tilfy_ajax_yetki_kontrol();
	if ( ! function_exists( 'tilfy_wordpress_kaynak_aktif_mi' ) || ! tilfy_wordpress_kaynak_aktif_mi() ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'WordPress kaynagi kapali' ) ), 400 );
	}
	if ( ! function_exists( 'tilfy_api_dosyalari_yukle' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'API yuklenemedi' ) ), 500 );
	}
	tilfy_api_dosyalari_yukle();
	if ( ! function_exists( 'tilfy_wordpress_yazi_ara' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'WordPress modulu yok' ) ), 500 );
	}
	$arama    = isset( $_POST['arama'] ) ? sanitize_text_field( wp_unslash( $_POST['arama'] ) ) : '';
	$sayfa    = isset( $_POST['sayfa'] ) ? max( 1, (int) $_POST['sayfa'] ) : 1;
	$kategori = isset( $_POST['kategori'] ) ? max( 0, (int) $_POST['kategori'] ) : 0;
	$sonuc    = tilfy_wordpress_yazi_ara(
		$arama,
		20,
		array(
			'sayfa'    => $sayfa,
			'kategori' => $kategori,
		)
	);
	wp_send_json_success( $sonuc );
}

function tilfy_ajax_wordpress_yazi_yukle() {
	tilfy_ajax_yetki_kontrol();
	if ( ! function_exists( 'tilfy_wordpress_kaynak_aktif_mi' ) || ! tilfy_wordpress_kaynak_aktif_mi() ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'WordPress kaynagi kapali' ) ), 400 );
	}
	if ( function_exists( 'tilfy_api_dosyalari_yukle' ) ) {
		tilfy_api_dosyalari_yukle();
	}
	if ( ! function_exists( 'tilfy_wordpress_yazi_import' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'WordPress modulu yok' ) ), 500 );
	}
	$post_id = isset( $_POST['post_id'] ) ? (int) $_POST['post_id'] : 0;
	$sonuc   = tilfy_wordpress_yazi_import( $post_id );
	if ( is_wp_error( $sonuc ) ) {
		wp_send_json_error( array( 'mesaj' => $sonuc->get_error_message() ), 400 );
	}
	$sonuc['kapaksiz'] = empty( $sonuc['kapak_url'] ) && empty( $sonuc['medya_url'] ) && empty( $sonuc['medya_dosya_id'] );
	wp_send_json_success( $sonuc );
}

function tilfy_ajax_icerik_kapak_ata() {
	tilfy_ajax_yetki_kontrol();
	if ( ! function_exists( 'tilfy_icerik_kapak_ata' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Kapak modulu yok' ) ), 500 );
	}
	$attachment_id = isset( $_POST['attachment_id'] ) ? (int) $_POST['attachment_id'] : 0;
	$idler         = array();
	if ( isset( $_POST['icerik_idler'] ) ) {
		$ham = wp_unslash( $_POST['icerik_idler'] );
		if ( is_array( $ham ) ) {
			$idler = array_map( 'intval', $ham );
		} else {
			$idler = array_filter( array_map( 'intval', explode( ',', (string) $ham ) ) );
		}
	} elseif ( isset( $_POST['icerik_id'] ) ) {
		$idler = array( (int) $_POST['icerik_id'] );
	}
	$sonuc = tilfy_icerik_kapak_ata( $idler, $attachment_id );
	if ( empty( $sonuc['ok'] ) ) {
		wp_send_json_error( array( 'mesaj' => $sonuc['mesaj'] ?? 'Kapak atanamadi' ), 400 );
	}
	wp_send_json_success( $sonuc );
}

function tilfy_ajax_paylasim_kapak_ata() {
	tilfy_ajax_yetki_kontrol();
	if ( ! function_exists( 'tilfy_icerik_kapak_ata' ) || ! function_exists( 'tilfy_paylasimlardan_icerik_idler' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Kapak modulu yok' ) ), 500 );
	}
	$attachment_id = isset( $_POST['attachment_id'] ) ? (int) $_POST['attachment_id'] : 0;
	$paylasimlar   = array();
	if ( isset( $_POST['paylasim_idler'] ) ) {
		$ham = wp_unslash( $_POST['paylasim_idler'] );
		if ( is_array( $ham ) ) {
			$paylasimlar = array_map( 'intval', $ham );
		} else {
			$paylasimlar = array_filter( array_map( 'intval', explode( ',', (string) $ham ) ) );
		}
	} elseif ( isset( $_POST['paylasim_id'] ) ) {
		$paylasimlar = array( (int) $_POST['paylasim_id'] );
	}
	$icerik_idler = tilfy_paylasimlardan_icerik_idler( $paylasimlar );
	$sonuc        = tilfy_icerik_kapak_ata( $icerik_idler, $attachment_id );
	if ( empty( $sonuc['ok'] ) ) {
		wp_send_json_error( array( 'mesaj' => $sonuc['mesaj'] ?? 'Kapak atanamadi' ), 400 );
	}
	$yeniden = ! empty( $_POST['yeniden'] );
	$adet_yeniden = 0;
	if ( $yeniden && function_exists( 'tilfy_paylasim_yeniden_dene' ) ) {
		foreach ( $paylasimlar as $pid ) {
			$yen = tilfy_paylasim_yeniden_dene( (int) $pid );
			if ( is_array( $yen ) ? ! empty( $yen['ok'] ) : (bool) $yen ) {
				++$adet_yeniden;
			}
		}
	}
	$sonuc['yeniden'] = $adet_yeniden;
	$sonuc['mesaj']   = $sonuc['mesaj'] . ( $yeniden ? ( ' · ' . $adet_yeniden . ' yeniden kuyruğa' ) : '' );
	wp_send_json_success( $sonuc );
}

function tilfy_ajax_idler_post_al( $anahtar_cogul, $anahtar_tekil ) {
	$idler = array();
	if ( isset( $_POST[ $anahtar_cogul ] ) ) {
		$ham = wp_unslash( $_POST[ $anahtar_cogul ] );
		if ( is_array( $ham ) ) {
			$idler = array_map( 'intval', $ham );
		} else {
			$idler = array_filter( array_map( 'intval', explode( ',', (string) $ham ) ) );
		}
	} elseif ( isset( $_POST[ $anahtar_tekil ] ) ) {
		$idler = array( (int) $_POST[ $anahtar_tekil ] );
	}
	return array_values( array_unique( array_filter( array_map( 'intval', $idler ) ) ) );
}

function tilfy_ajax_icerik_medya_ata() {
	tilfy_ajax_yetki_kontrol();
	if ( ! function_exists( 'tilfy_icerik_medya_ata' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Medya modulu yok' ) ), 500 );
	}
	$attachment_id = isset( $_POST['attachment_id'] ) ? (int) $_POST['attachment_id'] : 0;
	$idler         = tilfy_ajax_idler_post_al( 'icerik_idler', 'icerik_id' );
	$sonuc         = tilfy_icerik_medya_ata( $idler, $attachment_id );
	if ( empty( $sonuc['ok'] ) ) {
		wp_send_json_error( array( 'mesaj' => $sonuc['mesaj'] ?? 'Medya atanamadi' ), 400 );
	}
	wp_send_json_success( $sonuc );
}

function tilfy_ajax_paylasim_medya_ata() {
	tilfy_ajax_yetki_kontrol();
	if ( ! function_exists( 'tilfy_icerik_medya_ata' ) || ! function_exists( 'tilfy_paylasimlardan_icerik_idler' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Medya modulu yok' ) ), 500 );
	}
	$attachment_id = isset( $_POST['attachment_id'] ) ? (int) $_POST['attachment_id'] : 0;
	$paylasimlar   = tilfy_ajax_idler_post_al( 'paylasim_idler', 'paylasim_id' );
	$icerik_idler  = tilfy_paylasimlardan_icerik_idler( $paylasimlar );
	$sonuc         = tilfy_icerik_medya_ata( $icerik_idler, $attachment_id );
	if ( empty( $sonuc['ok'] ) ) {
		wp_send_json_error( array( 'mesaj' => $sonuc['mesaj'] ?? 'Medya atanamadi' ), 400 );
	}
	$yeniden      = ! empty( $_POST['yeniden'] );
	$adet_yeniden = 0;
	if ( $yeniden && function_exists( 'tilfy_paylasim_yeniden_dene' ) ) {
		foreach ( $paylasimlar as $pid ) {
			$yen = tilfy_paylasim_yeniden_dene( (int) $pid );
			if ( is_array( $yen ) ? ! empty( $yen['ok'] ) : (bool) $yen ) {
				++$adet_yeniden;
			}
		}
	}
	$sonuc['yeniden'] = $adet_yeniden;
	$sonuc['mesaj']   = $sonuc['mesaj'] . ( $yeniden ? ( ' · ' . $adet_yeniden . ' yeniden kuyruğa' ) : '' );
	wp_send_json_success( $sonuc );
}

function tilfy_ajax_icerik_one_cikani_kullan() {
	tilfy_ajax_yetki_kontrol();
	if ( ! function_exists( 'tilfy_icerik_one_cikani_kullan' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Kapak modulu yok' ) ), 500 );
	}
	$idler = tilfy_ajax_idler_post_al( 'icerik_idler', 'icerik_id' );
	$sonuc = tilfy_icerik_one_cikani_kullan( $idler );
	if ( empty( $sonuc['ok'] ) ) {
		wp_send_json_error( array( 'mesaj' => $sonuc['mesaj'] ?? 'One cikan uygulanamadi' ), 400 );
	}
	wp_send_json_success( $sonuc );
}

function tilfy_ajax_paylasim_one_cikani_kullan() {
	tilfy_ajax_yetki_kontrol();
	if ( ! function_exists( 'tilfy_icerik_one_cikani_kullan' ) || ! function_exists( 'tilfy_paylasimlardan_icerik_idler' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Kapak modulu yok' ) ), 500 );
	}
	$paylasimlar  = tilfy_ajax_idler_post_al( 'paylasim_idler', 'paylasim_id' );
	$icerik_idler = tilfy_paylasimlardan_icerik_idler( $paylasimlar );
	$sonuc        = tilfy_icerik_one_cikani_kullan( $icerik_idler );
	if ( empty( $sonuc['ok'] ) ) {
		wp_send_json_error( array( 'mesaj' => $sonuc['mesaj'] ?? 'One cikan uygulanamadi' ), 400 );
	}
	$yeniden      = ! empty( $_POST['yeniden'] );
	$adet_yeniden = 0;
	if ( $yeniden && function_exists( 'tilfy_paylasim_yeniden_dene' ) ) {
		foreach ( $paylasimlar as $pid ) {
			$yen = tilfy_paylasim_yeniden_dene( (int) $pid );
			if ( is_array( $yen ) ? ! empty( $yen['ok'] ) : (bool) $yen ) {
				++$adet_yeniden;
			}
		}
	}
	$sonuc['yeniden'] = $adet_yeniden;
	$sonuc['mesaj']   = $sonuc['mesaj'] . ( $yeniden ? ( ' · ' . $adet_yeniden . ' yeniden kuyruğa' ) : '' );
	wp_send_json_success( $sonuc );
}

function tilfy_ajax_icerik_id_listesi_al() {
	$ids = isset( $_POST['ids'] ) ? sanitize_text_field( wp_unslash( $_POST['ids'] ) ) : '';
	if ( $ids === '' ) {
		return array();
	}
	return array_values( array_filter( array_map( 'intval', explode( ',', $ids ) ) ) );
}

function tilfy_ek_dosya_ozet( $dosya_id ) {
	$dosya_id = (int) $dosya_id;
	if ( $dosya_id <= 0 || get_post_type( $dosya_id ) !== 'attachment' ) {
		return null;
	}
	$yol    = get_attached_file( $dosya_id );
	$url    = wp_get_attachment_url( $dosya_id );
	$upload = wp_upload_dir();
	$konum  = '';
	if ( is_string( $yol ) && $yol !== '' && empty( $upload['error'] ) && ! empty( $upload['basedir'] ) ) {
		$base = wp_normalize_path( (string) $upload['basedir'] );
		$norm = wp_normalize_path( $yol );
		if ( $base !== '' && strpos( $norm, $base ) === 0 ) {
			$konum = 'wp-content/uploads' . substr( $norm, strlen( $base ) );
		} else {
			$konum = basename( $yol );
		}
	} elseif ( is_string( $yol ) && $yol !== '' ) {
		$konum = basename( $yol );
	}
	return array(
		'id'    => $dosya_id,
		'ad'    => is_string( $yol ) && $yol !== '' ? basename( $yol ) : '',
		'konum' => $konum,
		'url'   => $url ? esc_url_raw( $url ) : '',
		'mime'  => (string) get_post_mime_type( $dosya_id ),
	);
}

function tilfy_icerik_detay_veri( $icerik_id ) {
	global $wpdb;
	$icerik_id = (int) $icerik_id;
	if ( $icerik_id <= 0 ) {
		return null;
	}
	$icerik = $wpdb->get_row(
		$wpdb->prepare(
			'SELECT id, baslik, aciklama, medya_tipi, kaynak_platform, kaynak_id, kaynak_url, medya_url, kapak_url, medya_dosya_id, kapak_dosya_id FROM ' . tilfy_tablo( 'icerik' ) . ' WHERE id = %d',
			$icerik_id
		)
	);
	if ( ! $icerik ) {
		return null;
	}
	$kaynak_url = function_exists( 'tilfy_icerik_kaynak_url' ) ? tilfy_icerik_kaynak_url( $icerik ) : esc_url_raw( (string) ( $icerik->kaynak_url ?? '' ) );
	$paylasimlar = $wpdb->get_results(
		$wpdb->prepare(
			'SELECT id, hedef_platform, durum, hedef_url, guncelleme FROM ' . tilfy_tablo( 'paylasim' ) . ' WHERE icerik_id = %d ORDER BY id DESC',
			$icerik_id
		)
	);
	$hedefler = array();
	foreach ( (array) $paylasimlar as $p ) {
		$hedefler[] = array(
			'id'       => (int) $p->id,
			'platform' => sanitize_key( (string) $p->hedef_platform ),
			'durum'    => sanitize_key( (string) $p->durum ),
			'url'      => esc_url_raw( (string) ( $p->hedef_url ?? '' ) ),
		);
	}
	$yerel_medya = tilfy_ek_dosya_ozet( (int) ( $icerik->medya_dosya_id ?? 0 ) );
	$yerel_kapak = tilfy_ek_dosya_ozet( (int) ( $icerik->kapak_dosya_id ?? 0 ) );
	$medya_tipi  = sanitize_key( (string) ( $icerik->medya_tipi ?? '' ) );
	$medya_grup  = function_exists( 'tilfy_icerik_medya_grup' ) ? tilfy_icerik_medya_grup( $medya_tipi ) : 'video';
	$gorsel_yerel = null;
	$video_yerel  = null;
	if ( is_array( $yerel_medya ) ) {
		$mime = strtolower( (string) ( $yerel_medya['mime'] ?? '' ) );
		if ( strpos( $mime, 'image/' ) === 0 || $medya_grup === 'gorsel' ) {
			$gorsel_yerel = $yerel_medya;
		} else {
			$video_yerel = $yerel_medya;
		}
	}
	return array(
		'id'              => $icerik_id,
		'baslik'          => (string) ( $icerik->baslik ?? '' ),
		'aciklama'        => wp_strip_all_tags( (string) ( $icerik->aciklama ?? '' ) ),
		'medya_tipi'      => $medya_tipi,
		'medya_grup'      => $medya_grup,
		'kaynak_platform' => sanitize_key( (string) ( $icerik->kaynak_platform ?? '' ) ),
		'kaynak_id'       => sanitize_text_field( (string) ( $icerik->kaynak_id ?? '' ) ),
		'kaynak_url'      => $kaynak_url,
		'medya_uzak_url'  => esc_url_raw( (string) ( $icerik->medya_url ?? '' ) ),
		'kapak_uzak_url'  => esc_url_raw( (string) ( $icerik->kapak_url ?? '' ) ),
		'gorsel_yerel'    => $gorsel_yerel,
		'video_yerel'     => $video_yerel,
		'kapak_yerel'     => $yerel_kapak,
		'paylasimlar'     => $hedefler,
	);
}

function tilfy_ajax_icerik_detay() {
	tilfy_ajax_yetki_kontrol();
	$icerik_id = isset( $_POST['icerik_id'] ) ? absint( wp_unslash( $_POST['icerik_id'] ) ) : 0;
	$veri      = tilfy_icerik_detay_veri( $icerik_id );
	if ( ! $veri ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'İçerik bulunamadı' ) ), 404 );
	}
	wp_send_json_success( $veri );
}

function tilfy_icerik_medya_canli_test( $icerik_id ) {
	global $wpdb;
	$icerik_id = (int) $icerik_id;
	if ( $icerik_id <= 0 ) {
		return new WP_Error( 'tilfy_test', tilfy__( 'İçerik bulunamadı' ) );
	}
	$icerik = $wpdb->get_row(
		$wpdb->prepare(
			'SELECT id, kaynak_platform, kaynak_id, medya_tipi, kaynak_url FROM ' . tilfy_tablo( 'icerik' ) . ' WHERE id = %d',
			$icerik_id
		)
	);
	if ( ! $icerik ) {
		return new WP_Error( 'tilfy_test', tilfy__( 'İçerik bulunamadı' ) );
	}
	$platform  = sanitize_key( (string) ( $icerik->kaynak_platform ?? '' ) );
	$kaynak_id = sanitize_text_field( (string) ( $icerik->kaynak_id ?? '' ) );
	$cikti     = array(
		'icerik_id'       => $icerik_id,
		'kaynak_platform' => $platform,
		'kaynak_id'       => $kaynak_id,
		'kaydedildi'      => false,
		'media_url'       => '',
		'thumbnail_url'   => '',
		'media_type'      => sanitize_key( (string) ( $icerik->medya_tipi ?? '' ) ),
		'permalink'       => '',
		'ozet'            => '',
	);
	if ( $platform === 'instagram' ) {
		if ( $kaynak_id === '' ) {
			return new WP_Error( 'tilfy_test', tilfy__( 'Instagram Meta ID boş' ) );
		}
		if ( is_readable( TILFY_YOL . 'includes/api/meta.php' ) ) {
			require_once TILFY_YOL . 'includes/api/meta.php';
		}
		if ( ! function_exists( 'tilfy_meta_yayin_jetonu_al' ) || ! function_exists( 'tilfy_meta_graph_istek' ) ) {
			return new WP_Error( 'tilfy_test', tilfy__( 'Meta API modülü yüklenemedi' ) );
		}
		$jeton = tilfy_meta_yayin_jetonu_al();
		if ( is_wp_error( $jeton ) || $jeton === '' ) {
			$mesaj = is_wp_error( $jeton ) ? $jeton->get_error_message() : tilfy__( 'Jeton eksik' );
			return new WP_Error( 'tilfy_test', $mesaj );
		}
		$veri = tilfy_meta_graph_istek(
			$kaynak_id,
			array( 'fields' => 'id,media_url,thumbnail_url,media_type,permalink' ),
			'GET',
			null,
			$jeton
		);
		if ( is_wp_error( $veri ) ) {
			return $veri;
		}
		$cikti['media_url']     = esc_url_raw( (string) ( $veri['media_url'] ?? '' ) );
		$cikti['thumbnail_url'] = esc_url_raw( (string) ( $veri['thumbnail_url'] ?? '' ) );
		$cikti['media_type']    = sanitize_key( (string) ( $veri['media_type'] ?? $cikti['media_type'] ) );
		$cikti['permalink']     = esc_url_raw( (string) ( $veri['permalink'] ?? '' ) );
		$cikti['api_id']        = sanitize_text_field( (string) ( $veri['id'] ?? $kaynak_id ) );
		if ( $cikti['media_url'] !== '' ) {
			$cikti['ozet'] = tilfy__( 'API media_url döndü (kaydedilmedi).' );
		} elseif ( $cikti['thumbnail_url'] !== '' ) {
			$cikti['ozet'] = tilfy__( 'API media_url boş; yalnızca thumbnail_url var. Video indirilemez.' );
		} else {
			$cikti['ozet'] = tilfy__( 'API media_url ve thumbnail_url boş.' );
		}
		return $cikti;
	}
	if ( $platform === 'facebook' && $kaynak_id !== '' ) {
		if ( is_readable( TILFY_YOL . 'includes/api/meta.php' ) ) {
			require_once TILFY_YOL . 'includes/api/meta.php';
		}
		if ( ! function_exists( 'tilfy_meta_graph_sayfa_istek' ) ) {
			return new WP_Error( 'tilfy_test', tilfy__( 'Meta API modülü yüklenemedi' ) );
		}
		$veri = tilfy_meta_graph_sayfa_istek(
			$kaynak_id,
			array( 'fields' => 'id,permalink_url,source,picture,attachments{media_type,media,url}' )
		);
		if ( is_wp_error( $veri ) ) {
			return $veri;
		}
		$medya = (string) ( $veri['source'] ?? '' );
		if ( $medya === '' ) {
			$ek    = $veri['attachments']['data'][0] ?? array();
			$medya = (string) ( $ek['media']['source'] ?? ( $ek['media']['image']['src'] ?? ( $ek['url'] ?? '' ) ) );
		}
		$cikti['media_url']     = esc_url_raw( $medya );
		$cikti['thumbnail_url'] = esc_url_raw( (string) ( $veri['picture'] ?? '' ) );
		$cikti['permalink']     = esc_url_raw( (string) ( $veri['permalink_url'] ?? '' ) );
		$cikti['ozet']          = $cikti['media_url'] !== ''
			? tilfy__( 'Facebook medya URL alındı (kaydedilmedi).' )
			: tilfy__( 'Facebook medya URL boş.' );
		return $cikti;
	}
	return new WP_Error( 'tilfy_test', tilfy__( 'Bu kaynak platform için canlı test yok' ) );
}

function tilfy_ajax_icerik_medya_test() {
	tilfy_ajax_yetki_kontrol();
	$icerik_id = isset( $_POST['icerik_id'] ) ? absint( wp_unslash( $_POST['icerik_id'] ) ) : 0;
	$sonuc     = tilfy_icerik_medya_canli_test( $icerik_id );
	if ( is_wp_error( $sonuc ) ) {
		wp_send_json_error( array( 'mesaj' => $sonuc->get_error_message() ), 400 );
	}
	wp_send_json_success( $sonuc );
}

function tilfy_metin_benzerlik_skoru( $a, $b ) {
	$a = trim( wp_strip_all_tags( (string) $a ) );
	$b = trim( wp_strip_all_tags( (string) $b ) );
	if ( function_exists( 'mb_strtolower' ) ) {
		$a = mb_strtolower( $a );
		$b = mb_strtolower( $b );
	} else {
		$a = strtolower( $a );
		$b = strtolower( $b );
	}
	if ( $a === '' || $b === '' ) {
		return 0.0;
	}
	if ( $a === $b ) {
		return 100.0;
	}
	if ( function_exists( 'similar_text' ) ) {
		similar_text( $a, $b, $yuzde );
		return (float) $yuzde;
	}
	return 0.0;
}

function tilfy_medya_aday_ekle( &$adaylar, $oge ) {
	$url = esc_url_raw( (string) ( $oge['media_url'] ?? '' ) );
	if ( $url === '' || ! function_exists( 'tilfy_url_izinli_mi' ) || ! tilfy_url_izinli_mi( $url ) ) {
		return;
	}
	$path = (string) wp_parse_url( $url, PHP_URL_PATH );
	if ( $path !== '' && preg_match( '/\.(jpe?g|png|gif|webp)(\?|$)/i', $path ) ) {
		return;
	}
	$key = sanitize_key( (string) ( $oge['platform'] ?? '' ) ) . ':' . sanitize_text_field( (string) ( $oge['platform_id'] ?? '' ) );
	if ( $key === ':' || isset( $adaylar[ $key ] ) ) {
		return;
	}
	$adaylar[ $key ] = array(
		'platform'    => sanitize_key( (string) ( $oge['platform'] ?? '' ) ),
		'platform_id' => sanitize_text_field( (string) ( $oge['platform_id'] ?? '' ) ),
		'baslik'      => sanitize_text_field( (string) ( $oge['baslik'] ?? '' ) ),
		'aciklama'    => wp_strip_all_tags( (string) ( $oge['aciklama'] ?? '' ) ),
		'media_url'   => $url,
		'thumb_url'   => esc_url_raw( (string) ( $oge['thumb_url'] ?? '' ) ),
		'permalink'   => esc_url_raw( (string) ( $oge['permalink'] ?? '' ) ),
		'skor'        => (float) ( $oge['skor'] ?? 0 ),
		'kaynak'      => sanitize_key( (string) ( $oge['kaynak'] ?? 'api' ) ),
	);
}

function tilfy_icerik_medya_fb_threads_ara( $icerik_id ) {
	global $wpdb;
	$icerik_id = (int) $icerik_id;
	$icerik    = $wpdb->get_row(
		$wpdb->prepare(
			'SELECT id, baslik, aciklama FROM ' . tilfy_tablo( 'icerik' ) . ' WHERE id = %d',
			$icerik_id
		)
	);
	if ( ! $icerik ) {
		return new WP_Error( 'tilfy_ara', tilfy__( 'İçerik bulunamadı' ) );
	}
	$arama = trim( (string) ( $icerik->baslik !== '' ? $icerik->baslik : $icerik->aciklama ) );
	$arama = wp_strip_all_tags( $arama );
	if ( $arama === '' ) {
		return new WP_Error( 'tilfy_ara', tilfy__( 'Arama için başlık/açıklama yok' ) );
	}
	$adaylar = array();
	$min     = 28.0;

	$yerel = $wpdb->get_results(
		$wpdb->prepare(
			"SELECT id, kaynak_platform, kaynak_id, baslik, aciklama, medya_url, kapak_url, kaynak_url, medya_dosya_id
			FROM " . tilfy_tablo( 'icerik' ) . "
			WHERE id <> %d AND kaynak_platform IN ('facebook','threads') AND durum <> 'gizli'
			ORDER BY id DESC LIMIT 120",
			$icerik_id
		)
	);
	foreach ( (array) $yerel as $satir ) {
		$metin = trim( (string) ( $satir->baslik !== '' ? $satir->baslik : $satir->aciklama ) );
		$skor  = tilfy_metin_benzerlik_skoru( $arama, $metin );
		if ( $skor < $min ) {
			continue;
		}
		$url = '';
		if ( (int) $satir->medya_dosya_id > 0 ) {
			$u = wp_get_attachment_url( (int) $satir->medya_dosya_id );
			$url = $u ? (string) $u : '';
		}
		if ( $url === '' ) {
			$url = (string) ( $satir->medya_url ?? '' );
		}
		tilfy_medya_aday_ekle(
			$adaylar,
			array(
				'platform'    => (string) $satir->kaynak_platform,
				'platform_id' => (string) $satir->kaynak_id,
				'baslik'      => (string) $satir->baslik,
				'aciklama'    => (string) $satir->aciklama,
				'media_url'   => $url,
				'thumb_url'   => (string) ( $satir->kapak_url ?? '' ),
				'permalink'   => (string) ( $satir->kaynak_url ?? '' ),
				'skor'        => $skor,
				'kaynak'      => 'yerel',
			)
		);
	}

	if ( is_readable( TILFY_YOL . 'includes/api/meta.php' ) ) {
		require_once TILFY_YOL . 'includes/api/meta.php';
	}
	$sayfa = function_exists( 'tilfy_ayar_al' ) ? (string) tilfy_ayar_al( 'meta_sayfa_id' ) : '';
	if ( $sayfa !== '' && function_exists( 'tilfy_meta_graph_sayfa_istek' ) ) {
		$after = '';
		for ( $sayfa_no = 0; $sayfa_no < 3; $sayfa_no++ ) {
			$args = array(
				'fields' => 'id,description,title,created_time,permalink_url,source,picture',
				'limit'  => 50,
			);
			if ( $after !== '' ) {
				$args['after'] = $after;
			}
			$veri = tilfy_meta_graph_sayfa_istek( $sayfa . '/videos', $args );
			if ( is_wp_error( $veri ) ) {
				break;
			}
			foreach ( (array) ( $veri['data'] ?? array() ) as $oge ) {
				$metin = trim( (string) ( ( $oge['title'] ?? '' ) !== '' ? $oge['title'] : ( $oge['description'] ?? '' ) ) );
				$skor  = tilfy_metin_benzerlik_skoru( $arama, $metin );
				if ( $skor < $min ) {
					continue;
				}
				tilfy_medya_aday_ekle(
					$adaylar,
					array(
						'platform'    => 'facebook',
						'platform_id' => (string) ( $oge['id'] ?? '' ),
						'baslik'      => (string) ( $oge['title'] ?? '' ),
						'aciklama'    => (string) ( $oge['description'] ?? '' ),
						'media_url'   => (string) ( $oge['source'] ?? '' ),
						'thumb_url'   => (string) ( $oge['picture'] ?? '' ),
						'permalink'   => (string) ( $oge['permalink_url'] ?? '' ),
						'skor'        => $skor,
						'kaynak'      => 'api',
					)
				);
			}
			$after = (string) ( $veri['paging']['cursors']['after'] ?? '' );
			if ( $after === '' || empty( $veri['paging']['next'] ) ) {
				break;
			}
		}
	}

	if ( is_readable( TILFY_YOL . 'includes/api/threads.php' ) ) {
		require_once TILFY_YOL . 'includes/api/threads.php';
	}
	$threads_id = function_exists( 'tilfy_ayar_al' ) ? (string) tilfy_ayar_al( 'threads_kullanici_id' ) : '';
	if ( $threads_id !== '' && function_exists( 'tilfy_threads_graph_istek' ) ) {
		$after = '';
		for ( $sayfa_no = 0; $sayfa_no < 3; $sayfa_no++ ) {
			$args = array(
				'fields' => 'id,text,media_type,media_url,thumbnail_url,permalink,timestamp',
				'limit'  => 50,
			);
			if ( $after !== '' ) {
				$args['after'] = $after;
			}
			$veri = tilfy_threads_graph_istek( $threads_id . '/threads', $args );
			if ( is_wp_error( $veri ) ) {
				break;
			}
			foreach ( (array) ( $veri['data'] ?? array() ) as $oge ) {
				$tip = strtoupper( (string) ( $oge['media_type'] ?? '' ) );
				if ( ! in_array( $tip, array( 'VIDEO', 'REELS_VIDEO', 'REPOST_FACADE' ), true ) && empty( $oge['media_url'] ) ) {
					continue;
				}
				$metin = (string) ( $oge['text'] ?? '' );
				$skor  = tilfy_metin_benzerlik_skoru( $arama, $metin );
				if ( $skor < $min ) {
					continue;
				}
				tilfy_medya_aday_ekle(
					$adaylar,
					array(
						'platform'    => 'threads',
						'platform_id' => (string) ( $oge['id'] ?? '' ),
						'baslik'      => wp_trim_words( $metin, 12, '…' ),
						'aciklama'    => $metin,
						'media_url'   => (string) ( $oge['media_url'] ?? '' ),
						'thumb_url'   => (string) ( $oge['thumbnail_url'] ?? '' ),
						'permalink'   => (string) ( $oge['permalink'] ?? '' ),
						'skor'        => $skor,
						'kaynak'      => 'api',
					)
				);
			}
			$after = (string) ( $veri['paging']['cursors']['after'] ?? '' );
			if ( $after === '' || empty( $veri['paging']['next'] ) ) {
				break;
			}
		}
	}

	$liste = array_values( $adaylar );
	usort(
		$liste,
		function ( $x, $y ) {
			return ( (float) $y['skor'] <=> (float) $x['skor'] );
		}
	);
	$liste = array_slice( $liste, 0, 12 );
	return array(
		'icerik_id'   => $icerik_id,
		'arama'       => $arama,
		'adaylar'     => $liste,
		'adet'        => count( $liste ),
		'scrape_yok'  => true,
		'scrape_not'  => tilfy__( 'Instagram sayfasından video çekmek Meta kuralları ve telif kısıtı nedeniyle desteklenmez. Orijinal dosyayı ▶ ile ekleyin veya müziksiz yeniden yayınlayın.' ),
	);
}

function tilfy_ajax_icerik_medya_ara() {
	tilfy_ajax_yetki_kontrol();
	$icerik_id = isset( $_POST['icerik_id'] ) ? absint( wp_unslash( $_POST['icerik_id'] ) ) : 0;
	$sonuc     = tilfy_icerik_medya_fb_threads_ara( $icerik_id );
	if ( is_wp_error( $sonuc ) ) {
		wp_send_json_error( array( 'mesaj' => $sonuc->get_error_message() ), 400 );
	}
	wp_send_json_success( $sonuc );
}

function tilfy_icerik_medya_aday_sec( $icerik_id, $media_url ) {
	global $wpdb;
	$icerik_id = (int) $icerik_id;
	$media_url = esc_url_raw( (string) $media_url );
	if ( $icerik_id <= 0 || $media_url === '' ) {
		return new WP_Error( 'tilfy_sec', tilfy__( 'Eksik bilgi' ) );
	}
	if ( ! function_exists( 'tilfy_url_izinli_mi' ) || ! tilfy_url_izinli_mi( $media_url ) ) {
		return new WP_Error( 'tilfy_sec', tilfy__( 'Medya host izinli değil' ) );
	}
	$icerik = $wpdb->get_row(
		$wpdb->prepare( 'SELECT * FROM ' . tilfy_tablo( 'icerik' ) . ' WHERE id = %d', $icerik_id )
	);
	if ( ! $icerik ) {
		return new WP_Error( 'tilfy_sec', tilfy__( 'İçerik bulunamadı' ) );
	}
	if ( ! function_exists( 'tilfy_uzaktan_medya_indir' ) ) {
		return new WP_Error( 'tilfy_sec', tilfy__( 'Medya modülü yok' ) );
	}
	$dosya_id = tilfy_uzaktan_medya_indir( $media_url, $icerik_id, true );
	if ( is_wp_error( $dosya_id ) ) {
		return $dosya_id;
	}
	if ( function_exists( 'tilfy_icerik_video_icin_gorsel_dosya_mi' ) && tilfy_icerik_video_icin_gorsel_dosya_mi( $icerik, (int) $dosya_id ) ) {
		if ( function_exists( 'wp_delete_attachment' ) ) {
			wp_delete_attachment( (int) $dosya_id, true );
		}
		return new WP_Error( 'tilfy_sec', tilfy__( 'Seçilen dosya görsel; video bekleniyor' ) );
	}
	$tip = function_exists( 'tilfy_medya_tipi_belirle' ) ? tilfy_medya_tipi_belirle( (int) $dosya_id ) : 'video';
	$wpdb->update(
		tilfy_tablo( 'icerik' ),
		array(
			'medya_dosya_id' => (int) $dosya_id,
			'medya_tipi'     => $tip,
			'medya_url'      => '',
			'guncelleme'     => current_time( 'mysql' ),
		),
		array( 'id' => $icerik_id )
	);
	$url = wp_get_attachment_url( (int) $dosya_id );
	return array(
		'ok'             => true,
		'icerik_id'      => $icerik_id,
		'medya_dosya_id' => (int) $dosya_id,
		'url'            => $url ? esc_url_raw( $url ) : '',
		'mesaj'          => tilfy__( 'Video içeriğe bağlandı' ),
	);
}

function tilfy_ajax_icerik_medya_sec() {
	tilfy_ajax_yetki_kontrol();
	$icerik_id = isset( $_POST['icerik_id'] ) ? absint( wp_unslash( $_POST['icerik_id'] ) ) : 0;
	$media_url = isset( $_POST['media_url'] ) ? esc_url_raw( wp_unslash( $_POST['media_url'] ) ) : '';
	$sonuc     = tilfy_icerik_medya_aday_sec( $icerik_id, $media_url );
	if ( is_wp_error( $sonuc ) ) {
		wp_send_json_error( array( 'mesaj' => $sonuc->get_error_message() ), 400 );
	}
	wp_send_json_success( $sonuc );
}

function tilfy_paylasim_detay_veri( $paylasim_id ) {
	global $wpdb;
	$paylasim_id = (int) $paylasim_id;
	if ( $paylasim_id <= 0 ) {
		return null;
	}
	$p = $wpdb->get_row(
		$wpdb->prepare(
			'SELECT * FROM ' . tilfy_tablo( 'paylasim' ) . ' WHERE id = %d',
			$paylasim_id
		)
	);
	if ( ! $p ) {
		return null;
	}
	$icerik = tilfy_icerik_detay_veri( (int) $p->icerik_id );
	$log    = function_exists( 'tilfy_paylasim_log_topla' ) ? tilfy_paylasim_log_topla( $paylasim_id ) : array();
	return array(
		'paylasim_id'     => $paylasim_id,
		'icerik_id'       => (int) $p->icerik_id,
		'hedef_platform'  => sanitize_key( (string) $p->hedef_platform ),
		'durum'           => sanitize_key( (string) $p->durum ),
		'hedef_url'       => esc_url_raw( (string) ( $p->hedef_url ?? '' ) ),
		'hedef_id'        => sanitize_text_field( (string) ( $p->hedef_id ?? '' ) ),
		'hata_mesaji'     => (string) ( $p->hata_mesaji ?? '' ),
		'zamanlama'       => (string) ( $p->zamanlama ?? '' ),
		'kaynak'          => sanitize_key( (string) ( $p->kaynak ?? '' ) ),
		'guncelleme'      => (string) ( $p->guncelleme ?? '' ),
		'icerik'          => $icerik,
		'log'             => is_array( $log ) ? array_values( $log ) : array(),
	);
}

function tilfy_ajax_paylasim_detay() {
	tilfy_ajax_yetki_kontrol();
	$paylasim_id = isset( $_POST['paylasim_id'] ) ? absint( wp_unslash( $_POST['paylasim_id'] ) ) : 0;
	$veri        = tilfy_paylasim_detay_veri( $paylasim_id );
	if ( ! $veri ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Paylaşım bulunamadı' ) ), 404 );
	}
	wp_send_json_success( $veri );
}

function tilfy_ajax_icerik_gizle() {
	tilfy_ajax_yetki_kontrol();
	if ( ! function_exists( 'tilfy_icerik_gizle' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Icerik modulu yok' ) ), 500 );
	}
	$adet = tilfy_icerik_gizle( tilfy_ajax_icerik_id_listesi_al() );
	wp_send_json_success( array( 'adet' => $adet ) );
}

function tilfy_ajax_icerik_goster() {
	tilfy_ajax_yetki_kontrol();
	if ( ! function_exists( 'tilfy_icerik_gizliden_cikar' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Icerik modulu yok' ) ), 500 );
	}
	$adet = tilfy_icerik_gizliden_cikar( tilfy_ajax_icerik_id_listesi_al() );
	wp_send_json_success( array( 'adet' => $adet ) );
}

function tilfy_ajax_icerik_sifirla() {
	tilfy_ajax_yetki_kontrol();
	if ( ! function_exists( 'tilfy_icerik_toplu_sifirla' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Icerik modulu yok' ) ), 500 );
	}
	$idler = tilfy_ajax_icerik_id_listesi_al();
	if ( empty( $idler ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Icerik secilmedi' ) ), 400 );
	}
	$sonuc = tilfy_icerik_toplu_sifirla( $idler );
	if ( $sonuc['adet'] <= 0 ) {
		wp_send_json_error(
			array(
				'mesaj'   => ! empty( $sonuc['hatalar'] ) ? implode( '; ', $sonuc['hatalar'] ) : 'Sifirlama basarisiz',
				'hatalar' => $sonuc['hatalar'],
			),
			400
		);
	}
	wp_send_json_success( $sonuc );
}

function tilfy_ajax_icerik_sil() {
	tilfy_ajax_yetki_kontrol();
	if ( ! function_exists( 'tilfy_icerik_toplu_sil' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Icerik modulu yok' ) ), 500 );
	}
	$idler = tilfy_ajax_icerik_id_listesi_al();
	if ( empty( $idler ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Icerik secilmedi' ) ), 400 );
	}
	$sonuc = tilfy_icerik_toplu_sil( $idler );
	if ( $sonuc['adet'] <= 0 ) {
		wp_send_json_error(
			array(
				'mesaj'   => ! empty( $sonuc['hatalar'] ) ? implode( '; ', $sonuc['hatalar'] ) : 'Silme basarisiz',
				'hatalar' => $sonuc['hatalar'],
			),
			400
		);
	}
	wp_send_json_success( $sonuc );
}

function tilfy_ajax_otomasyon_kontrol() {
	tilfy_ajax_yetki_kontrol();
	$id    = isset( $_POST['otomasyon_id'] ) ? (int) $_POST['otomasyon_id'] : 0;
	$sonuc = tilfy_otomasyon_kural_kontrol_calistir( $id );
	wp_send_json_success( $sonuc );
}

function tilfy_ajax_paylasim_yoksay() {
	tilfy_ajax_yetki_kontrol();
	if ( ! function_exists( 'tilfy_paylasim_yoksay' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Modul yok' ) ), 500 );
	}
	$id = isset( $_POST['paylasim_id'] ) ? (int) $_POST['paylasim_id'] : 0;
	$sonuc = tilfy_paylasim_yoksay( $id );
	if ( empty( $sonuc['ok'] ) ) {
		wp_send_json_error( array( 'mesaj' => $sonuc['mesaj'] ?? 'Yok sayilamadi' ), 400 );
	}
	wp_send_json_success( $sonuc );
}

function tilfy_ajax_diag_analiz_toggle() {
	tilfy_ajax_yetki_kontrol();
	if ( ! function_exists( 'tilfy_diag_analiz_baslat' ) || ! function_exists( 'tilfy_diag_analiz_durdur' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Diag modulu yok' ) ), 500 );
	}
	$durum = sanitize_key( (string) ( $_POST['durum'] ?? '' ) );
	if ( $durum === 'baslat' ) {
		tilfy_diag_analiz_baslat();
	} elseif ( $durum === 'durdur' ) {
		tilfy_diag_analiz_durdur();
	} else {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Gecersiz durum' ) ), 400 );
	}
	$bilgi = function_exists( 'tilfy_diag_log_dosya_bilgi' ) ? tilfy_diag_log_dosya_bilgi() : array();
	wp_send_json_success(
		array(
			'aktif' => tilfy_diag_analiz_aktif_mi(),
			'bilgi' => $bilgi,
		)
	);
}

function tilfy_ajax_kapak_tara_baslat() {
	tilfy_ajax_yetki_kontrol();
	if ( ! function_exists( 'tilfy_kapak_tara_baslat' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Kapak modulu yok' ) ), 500 );
	}
	@set_time_limit( 120 );
	$sonuc = tilfy_kapak_tara_baslat( isset( $_POST['platform'] ) ? sanitize_key( wp_unslash( $_POST['platform'] ) ) : '' );
	if ( empty( $sonuc['ok'] ) ) {
		wp_send_json_error( array( 'mesaj' => $sonuc['mesaj'] ?? 'Baslatilamadi' ), 400 );
	}
	wp_send_json_success( $sonuc );
}

function tilfy_ajax_kapak_tara_loopback() {
	if ( ! function_exists( 'tilfy_kapak_tara_loopback_islem' ) ) {
		status_header( 500 );
		wp_die( '500', '', array( 'response' => 500 ) );
	}
	tilfy_kapak_tara_loopback_islem();
}

function tilfy_ajax_kuyruk_loopback() {
	if ( ! function_exists( 'tilfy_kuyruk_loopback_islem' ) ) {
		status_header( 500 );
		wp_die( '500', '', array( 'response' => 500 ) );
	}
	tilfy_kuyruk_loopback_islem();
}

function tilfy_ajax_kapak_tara_adim() {
	tilfy_ajax_yetki_kontrol();
	if ( ! function_exists( 'tilfy_kapak_tara_bekleyen_say' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Kapak modulu yok' ) ), 500 );
	}
	$durum = isset( $_POST['durum'] ) && wp_unslash( $_POST['durum'] ) === '1';
	if ( $durum ) {
		$bekleyen = tilfy_kapak_tara_bekleyen_say();
		wp_send_json_success(
			array(
				'bekleyen' => $bekleyen,
				'bitti'    => $bekleyen <= 0,
			)
		);
	}
	if ( ! function_exists( 'tilfy_kuyruk_kapak_tara_calistir' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Kapak modulu yok' ) ), 500 );
	}
	@ignore_user_abort( true );
	@set_time_limit( 120 );
	$adim     = isset( $_POST['adim'] ) ? (int) wp_unslash( $_POST['adim'] ) : 3;
	$islenen  = tilfy_kuyruk_kapak_tara_calistir( max( 1, min( 8, $adim ) ) );
	$bekleyen = tilfy_kapak_tara_bekleyen_say();
	wp_send_json_success(
		array(
			'islenen'  => max( 0, (int) $islenen ),
			'bekleyen' => $bekleyen,
			'bitti'    => $bekleyen <= 0,
			'kilit'    => $islenen < 0,
		)
	);
}

function tilfy_ajax_medya_secili_sil() {
	tilfy_ajax_yetki_kontrol();
	if ( ! function_exists( 'tilfy_medya_dosyalari_sil' ) ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Medya modulu yok' ) ), 500 );
	}
	$ids = isset( $_POST['ids'] ) ? array_map( 'absint', (array) wp_unslash( $_POST['ids'] ) ) : array();
	$disk_yollar = isset( $_POST['disk_yollar'] )
		? ( function_exists( 'tilfy_post_disk_yollar_temizle' )
			? tilfy_post_disk_yollar_temizle( wp_unslash( $_POST['disk_yollar'] ) )
			: array() )
		: array();
	if ( ! $ids && ! $disk_yollar ) {
		wp_send_json_error( array( 'mesaj' => tilfy__( 'Dosya secilmedi' ) ), 400 );
	}
	wp_send_json_success( tilfy_medya_dosyalari_sil( $ids, $disk_yollar ) );
}

function tilfy_sayfa_medya_temizlik() {
	if ( ! current_user_can( 'manage_options' ) ) {
		return;
	}
	$arama  = isset( $_GET['arama'] ) ? sanitize_text_field( wp_unslash( $_GET['arama'] ) ) : '';
	$filtre = isset( $_GET['filtre'] ) ? sanitize_key( wp_unslash( $_GET['filtre'] ) ) : 'tumu';
	$sayfa  = max( 1, (int) ( $_GET['sayfa'] ?? 1 ) );
	$liste  = tilfy_medya_depo_listele(
		array(
			'arama'  => $arama,
			'filtre' => $filtre,
			'sayfa'  => $sayfa,
		)
	);
	require TILFY_YOL . 'includes/sayfalar/medya-temizlik.php';
}

function tilfy_sayfa_islem_yoneticisi() {
	require TILFY_YOL . 'includes/sayfalar/islem-yoneticisi.php';
}

function tilfy_sayfa_otomasyon() {
	$mesaj = isset( $_GET['tilfy_mesaj'] ) ? sanitize_key( wp_unslash( $_GET['tilfy_mesaj'] ) ) : '';
	require TILFY_YOL . 'includes/sayfalar/otomasyon.php';
}

function tilfy_sayfa_ayarlar() {
	$ayarlar  = get_option( 'tilfy_ayarlar', array() );
	$baglanti = tilfy_baglanti_durumu();
	$mesaj    = isset( $_GET['tilfy_mesaj'] ) ? sanitize_key( wp_unslash( $_GET['tilfy_mesaj'] ) ) : '';
	$teshis   = null;
	if ( function_exists( 'tilfy_meta_jeton_teshis' ) ) {
		require_once TILFY_YOL . 'includes/api/meta.php';
		$teshis = tilfy_meta_jeton_teshis();
	}
	$gizli_sayfa    = max( 1, (int) ( $_GET['gizli_sayfa'] ?? 1 ) );
	$gizli_icerikler = function_exists( 'tilfy_icerik_gizli_listele' )
		? tilfy_icerik_gizli_listele(
			array(
				'per_page' => 50,
				'page'     => $gizli_sayfa,
				'sira'     => 'yeni',
			)
		)
		: array();
	$gizli_toplam = function_exists( 'tilfy_icerik_gizli_say' ) ? tilfy_icerik_gizli_say() : 0;
	$gizli_sayfa_sayisi = max( 1, (int) ceil( $gizli_toplam / 50 ) );
	require TILFY_YOL . 'includes/sayfalar/ayarlar.php';
}
