TR — Popmundo scriptlerini tek panelden yönetmenizi sağlayan merkezi modül
La data de
PopControl, Popmundo Tampermonkey scriptlerini tek bir barda birleştiren merkezi hub'dır. Herhangi bir script, PopControl yoksa bağımsız çalışmaya devam eder.
| Dosya | Versiyon | Açıklama |
|---|---|---|
popcontrol.js |
v1.1 | Hub scripti — ilk kurulacak |
helper_v4.7.js |
v4.7 | 🎨 Helper — modal ile entegre |
social_v2.0.js |
v2.0 | 🌐 Social (masaüstü) |
social_mobile_v1.6.js |
v1.6 | 🌐 Social (mobil) |
MissionAid_v1.7.js |
v1.7 | 📜 MissionAid |
Depot_v1.8.js |
v1.8 | 📦 Depot (Envanter) |
Tampermonkey'de script sırası önemlidir. PopControl her zaman en üstte (ilk sırada) olmalıdır.
popcontrol.js ← İLKhelper_v4.7.jssocial_v2.0.js (masaüstü) veya social_mobile_v1.6.js (mobil)MissionAid_v1.7.jsDepot_v1.8.jsNot: Tüm scriptler
@run-at document-endkullanır. PopControl yüklendikten sonra diğer scriptler 300ms aralıklarla (max ~6sn) onu arar. Bulamazlarsa bağımsız çalışmaya devam ederler.
Her script sayfa yüklendiğinde PopControl'ü arar. Bulursa otomatik olarak kaydolur ve kendi UI'ını gizler.
Sayfa açılır
→ Script init olur (bağımsız UI hazır)
→ _waitPC() başlar (PopControl'ü arar, ~6sn timeout)
→ PopControl bulunursa: register() + kendi UI'ını gizle
→ Bulunamazsa: bağımsız çalışmaya devam et
onUndo callback'i tetiklenir. Script kendi bağımsız UI'ını geri getirir.
@grant satırı// @grant unsafeWindow
_waitPC yardımcı fonksiyonuScript IIFE'nizin içine, tüm fonksiyon tanımlarından sonra, init çağrısından önce ekleyin:
function _waitPC(cb, n) {
n = n || 0;
if (unsafeWindow.PopControl) { cb(); return; }
if (n < 20) setTimeout(function() { _waitPC(cb, n + 1); }, 300);
}
Script init'inin en sonuna ekleyin:
// Auto-connect to PopControl if available
_waitPC(function() {
unsafeWindow.PopControl.register({
id: 'my-script', // Benzersiz ID, küçük harf, tire
icon: '🔧', // Bar'da gösterilecek emoji
label: 'My Script', // Bar'da gösterilecek etiket
buttons: [
{
icon: '🔧',
label: 'Open',
onClick: function() { openMyMainPanel(); }
}
// İstersen birden fazla buton ekleyebilirsin
],
onUndo: function() {
// PopControl bağlantısı kesilince çalışır
// Kendi bağımsız UI'ını geri getir
restoreMyStandaloneUI();
}
});
// Kendi bağımsız UI'ını gizle
hideMyStandaloneUI();
});
ppc_enabled kontrolü (isteğe bağlı)Kullanıcı PopControl ayarlarından scripti tamamen devre dışı bırakırsa scriptin hiç çalışmamasını istiyorsan, IIFE başına ekle:
try {
var _ppc = JSON.parse(localStorage.getItem('ppc_enabled') || '{}');
if (_ppc['my-script'] === false) return;
} catch(e) {}
// Script kaydettir
unsafeWindow.PopControl.register({
id, icon, label, buttons, onUndo
});
// Script kaydını sil (onUndo tetiklenir)
unsafeWindow.PopControl.unregister(id);
// Script etkin mi?
unsafeWindow.PopControl.isEnabled(id); // → boolean
// Aktif dil
unsafeWindow.PopControl.getLang(); // → 'TR' | 'EN' | 'PT'
| Konum | Davranış |
|---|---|
bottom |
Sayfanın altında, #ppm-main genişliğinde |
top |
Sayfanın üstünde, #ppm-main genişliğinde, içeriği aşağı iter |
left |
Sol kenar, #ppm-main'e yaslanır, hover'da genişler |
right |
Sağ kenar, #ppm-main'e yaslanır, hover'da genişler |
Konum seçimi ⚙️ PopControl butonuyla açılan panelden yapılır. Seçim cookie olarak saklanır (ppc_pos).
Barda butonları sürükleyip bırakarak sıralama yapılabilir. Sıra localStorage['ppc_order'] içinde saklanır.
PopControl ppm_lang cookie'sini okur (TR / EN / PT). Tüm entegre scriptler de aynı cookie'yi kullanır.
unsafeWindow.PopControl üzerinden iletişim kurar — Tampermonkey sandbox'larını aşmanın standart yöntemidirppc_enabled localStorage'da saklanır (script tamamen kapatma/açma)Mevcut bir Popmundo Tampermonkey scriptini PopControl hub'a entegre etmek için aşağıdaki promptu kullanabilirsin:
Sen deneyimli bir Tampermonkey/userscript geliştiricisisin.
Aşağıdaki Popmundo userscript'ini PopControl hub'a entegre etmeni istiyorum.
## PopControl API
PopControl, Popmundo scriptlerini birleştiren bir hub'dır.
Scriptler `unsafeWindow.PopControl.register()` ile kaydolur.
PopControl yoksa script bağımsız çalışmaya devam eder.
### Entegrasyon Kuralları
1. `@grant unsafeWindow` ekle (zaten varsa atlat)
2. Script IIFE'nin içine, tüm fonksiyon tanımlarından SONRA, init çağrısından ÖNCE şu yardımcı fonksiyonu ekle:
```js
function _waitPC(cb, n) {
n = n || 0;
if (unsafeWindow.PopControl) { cb(); return; }
if (n < 20) setTimeout(function() { _waitPC(cb, n + 1); }, 300);
}
Script init'inin EN SONUNA auto-connect ekle:
// Auto-connect to PopControl if available
_waitPC(function() {
unsafeWindow.PopControl.register({
id: '<SCRIPT_ID>',
icon: '<EMOJI>',
label: '<KISA_AD>',
buttons: [
{ icon: '<EMOJI>', label: '<ETIKET>', onClick: function() { <ANA_FONKSIYON>(); } }
],
onUndo: function() {
// Kendi bağımsız UI'ını geri getir
<STANDALONE_UI_GERI_GETIR>();
}
});
// Kendi bağımsız UI'ını gizle
<STANDALONE_UI_GIZLE>();
});
IIFE başına ppc_enabled kontrolü ekle:
try {
var _ppc = JSON.parse(localStorage.getItem('ppc_enabled') || '{}');
if (_ppc['<SCRIPT_ID>'] === false) return;
} catch(e) {}
window.SocialHub referansları varsa sil (eski hub, artık kullanılmıyor)
Scriptin bağımsız çalışma mantığını BOZMA. Tek değişiklik:
---
*Bu doküman PopControl v1.1 için hazırlanmıştır.*