local Fluent = loadstring(game:HttpGet("https://github.com/dawid-scripts/Fluent/releases/latest/download/main.lua"))() local HttpService = game:GetService("HttpService") -- AYARLAR local GithubUser = "oldhacfard" local CheckInterval = 30 -- Yeni script kontrolü için bekleme süresi (saniye) local Window = Fluent:CreateWindow({ Title = GithubUser .. " Cloud Hub", SubTitle = "Auto-Sync & Notify", TabWidth = 160, Size = UDim2.fromOffset(580, 520), Acrylic = true, Theme = "Dark", MinimizeKey = Enum.KeyCode.LeftControl }) local Tabs = {} local KnownFiles = {} -- Mevcut dosyaları takip etmek için tablo -- Veri çekme fonksiyonu local function GetData(url) local success, res = pcall(function() return game:HttpGet(url) end) if success and res then return HttpService:JSONDecode(res) end return nil end -- Dosyayı Buton Olarak Ekleme Fonksiyonu local function AddFileButton(tab, repoName, branch, filePath) local rawUrl = string.format("https://raw.githubusercontent.com/%s/%s/%s/%s", GithubUser, repoName, branch, filePath) tab:AddButton({ Title = filePath, Description = "Çalıştırmak için tıkla", Callback = function() local s, content = pcall(function() return game:HttpGet(rawUrl) end) if s then local exec, err = pcall(function() loadstring(content)() end) if exec then Fluent:Notify({Title = "Başarılı", Content = filePath .. " açıldı.", Duration = 2}) else print("Hata veya Düz Metin:\n" .. content) end end end }) end -- Tüm Arşivi ve Yeni Dosyaları Yükleme/Kontrol Etme local function SyncGithub(isFirstLoad) local repos = GetData("https://api.github.com/users/" .. GithubUser .. "/repos?per_page=100") if not repos then return end for _, repo in pairs(repos) do local repoName = repo.name local branch = repo.default_branch or "main" -- Eğer bu repo için henüz sekme yoksa oluştur if not Tabs[repoName] then Tabs[repoName] = Window:AddTab({ Title = repoName, Icon = "folder" }) end local tree = GetData(string.format("https://api.github.com/repos/%s/%s/git/trees/%s?recursive=1", GithubUser, repoName, branch)) if tree and tree.tree then for _, file in pairs(tree.tree) do if file.type == "blob" then local fileKey = repoName .. "/" .. file.path -- Eğer dosya sistemde kayıtlı değilse (YENİ DOSYA) if not KnownFiles[fileKey] then KnownFiles[fileKey] = true -- Butonu ekle AddFileButton(Tabs[repoName], repoName, branch, file.path) -- Eğer ilk açılış değilse bildirim gönder if not isFirstLoad then Fluent:Notify({ Title = "Yeni Script Tespit Edildi!", Content = repoName .. " deposuna '" .. file.path .. "' eklendi.", SubContent = "Menüye otomatik eklendi.", Duration = 10 }) end end end end end end end -- Arka Plan Kontrol Döngüsü task.spawn(function() -- İlk yükleme (Bildirimsiz) SyncGithub(true) -- Sürekli Kontrol (Bildirimli) while task.wait(CheckInterval) do pcall(function() SyncGithub(false) end) end end) Window:SelectTab(1)