feat: add CoinGecko price logic with DOT-based fallback

- HEZ price: CoinGecko direct > DOT/3 > DEX pool
- PEZ price: CoinGecko direct > DOT/10 > DEX pool
- Added AuthorizeCall signed extension for blockchain connection
- Updated @pezkuwi packages to 16.5.22 and 14.0.13
This commit is contained in:
2026-01-31 18:56:28 +03:00
parent d37eacf4e0
commit 94f91cf765
6 changed files with 631 additions and 770 deletions
@@ -1,127 +0,0 @@
import os
import sys
# HARİÇ TUTULACAK KLASÖRLER
EXCLUDE_DIRS = {'crate_placeholders', '.git', 'target', 'node_modules', '__pycache__'}
# Düzeltilecek Kalıplar ve Yerine Geçecek Değerler
# Tekrar eden önekleri temizler.
REPLACEMENT_MAP = {
"pezpez": "pez",
"Pezpez": "Pez",
"PEZPEZ": "PEZ",
"PeZPeZ": "PeZ",
"pezPez": "pez",
"PEZpez": "PEZ",
}
def is_path_excluded(path):
"""Verilen yolun yasaklı bir klasörün içinde olup olmadığını kontrol eder."""
parts = path.split(os.sep)
return any(excluded in parts for excluded in EXCLUDE_DIRS)
def fix_double_prefix(text):
"""Metin içindeki çift PEZ öneklerini tek PEZ önekiyle değiştirir."""
for old_prefix, new_prefix in REPLACEMENT_MAP.items():
text = text.replace(old_prefix, new_prefix)
return text
def process_content_updates(root_dir):
"""Belirtilen dizin altındaki tüm hedef dosyaların içeriğini günceller."""
# Sadece .rs ve .toml gibi kod dosyalarını hedefleyelim.
TARGET_EXTENSIONS = ('.rs', '.toml', '.md', '.txt', '.yml', '.yaml', '.json', '.py')
print("--- Adım 1: Dosya İçeriklerinde Çift Önek Düzeltme ---")
for dirpath, dirnames, filenames in os.walk(root_dir, topdown=True):
dirnames[:] = [d for d in dirnames if d not in EXCLUDE_DIRS]
if is_path_excluded(dirpath):
continue
for filename in filenames:
if filename.endswith(TARGET_EXTENSIONS) or filename == 'Cargo.lock':
filepath = os.path.join(dirpath, filename)
if os.path.basename(filepath) == os.path.basename(sys.argv[0]):
continue
try:
with open(filepath, 'r', encoding='utf-8', errors='ignore') as f:
content = f.read()
original_content = content
content = fix_double_prefix(content)
if content != original_content:
with open(filepath, 'w', encoding='utf-8') as f:
f.write(content)
print(f" [İÇERİK DÜZELTİLDİ] Dosya içeriği: {filepath}")
except Exception as e:
print(f" [HATA] İçerik düzeltilirken: {filepath} -> {e}")
def rename_pezpez_paths(root_dir):
"""Dosya ve klasör adlarında geçen 'pezpez' önekini 'pez' olarak düzeltir (bottom-up)."""
# 2. Klasör İsimlerini Düzelt (topdown=False, en alttan yukarı güvenli işlem)
print("\n--- Adım 2: Klasör İsimlerinin Düzeltilmesi (pezpez -> pez) ---")
for dirpath, dirnames, filenames in os.walk(root_dir, topdown=False):
if any(excluded in dirpath.split(os.sep) for excluded in EXCLUDE_DIRS):
continue
dirname = os.path.basename(dirpath)
original_dirname = dirname
new_dirname = fix_double_prefix(dirname)
if new_dirname != original_dirname:
old_path = dirpath
new_path = os.path.join(os.path.dirname(dirpath), new_dirname)
if os.path.exists(old_path) and not os.path.exists(new_path):
try:
os.rename(old_path, new_path)
print(f" [RENAME-DIR] {original_dirname} -> {new_dirname}")
except OSError as e:
print(f" [HATA] Klasör adlandırılamadı {original_dirname}: {e}")
# 3. Dosya İsimlerini Düzelt (topdown=True, kökten aşağı)
print("\n--- Adım 3: Dosya İsimlerinin Düzeltilmesi (pezpez -> pez) ---")
for dirpath, dirnames, filenames in os.walk(root_dir, topdown=True):
dirnames[:] = [d for d in dirnames if d not in EXCLUDE_DIRS]
if is_path_excluded(dirpath):
continue
for filename in filenames:
original_filename = filename
new_filename = fix_double_prefix(filename)
if new_filename != original_filename:
old_path = os.path.join(dirpath, original_filename)
new_path = os.path.join(dirpath, new_filename)
if os.path.exists(old_path) and not os.path.exists(new_path):
try:
os.rename(old_path, new_path)
print(f" [RENAME-FILE] {original_filename} -> {new_filename}")
except OSError as e:
print(f" [HATA] Dosya adlandırılamadı {original_filename}: {e}")
def main():
root_dir = os.getcwd()
print("==================================================")
print(f"🔧 PEZPEZ DÜZELTME (İçerik ve Ad) İşlemi Başlatılıyor...")
print(f"⚠️ Çalışma Dizini: {root_dir}")
print("==================================================")
# Önce içerikleri düzelt (dosya yolları değişmeden)
process_content_updates(root_dir)
# Ardından dosya ve klasör adlarını düzelt
rename_pezpez_paths(root_dir)
print("\n✅ PEZPEZ Düzeltme işlemi tamamlandı.")
if __name__ == "__main__":
main()
@@ -1,96 +0,0 @@
import os
import sys
# HARİÇ TUTULACAK KLASÖRLER
EXCLUDE_DIRS = {'crate_placeholders', '.git', 'target', 'node_modules', '__pycache__'}
# Yeniden adlandırma haritası (Basit: sadece 'pallet'in önüne 'pez' ekle)
RENAME_MAP = {
# Tireli (kebab-case) isimlendirmeler için
"pallet-": "pezpallet-",
# Alt çizgili (snake_case) isimlendirmeler için
"pallet_": "pezpallet_",
}
# Not: Bu betik, 'Pallet-' veya 'PALLET-' gibi büyük harf varyasyonlarını dosya sisteminde
# (çoğunlukla küçük harf veya tireli kullanılan) adreslemeyebilir, ancak en yaygın olanları hedefler.
def is_path_excluded(path):
"""Verilen yolun yasaklı bir klasörün içinde olup olmadığını kontrol eder."""
parts = path.split(os.sep)
return any(excluded in parts for excluded in EXCLUDE_DIRS)
def rename_paths(root_dir):
"""
Dosya ve klasör adlarında geçen 'pallet' önekini 'pezpallet' olarak değiştirir.
Bottom-up (en alttan yukarı) yaklaşımıyla klasör adlarını güvenli bir şekilde değiştirir.
"""
# Adım 1: Dosya İsimlerini Düzelt (topdown=True, kökten aşağı)
print("--- Adım 1: Dosya İsimlerinin Güncellenmesi (pallet -> pezpallet) ---")
for dirpath, dirnames, filenames in os.walk(root_dir, topdown=True):
# Yasaklı klasörleri atla
dirnames[:] = [d for d in dirnames if d not in EXCLUDE_DIRS]
if any(excluded in dirpath.split(os.sep) for excluded in EXCLUDE_DIRS):
continue
for filename in filenames:
original_filename = filename
new_filename = filename
for old_prefix, new_prefix in RENAME_MAP.items():
if old_prefix in new_filename:
# Basit string değiştirme, pez yaratma riskini taşıyoruz.
new_filename = new_filename.replace(old_prefix, new_prefix)
if new_filename != original_filename:
old_path = os.path.join(dirpath, original_filename)
new_path = os.path.join(dirpath, new_filename)
if os.path.exists(old_path) and not os.path.exists(new_path):
try:
os.rename(old_path, new_path)
print(f" [RENAME-FILE] {original_filename} -> {new_filename}")
except OSError as e:
print(f" [HATA] Dosya adlandırılamadı {original_filename}: {e}")
# Adım 2: Klasör İsimlerini Düzelt (topdown=False, en alttan yukarı güvenli işlem)
print("\n--- Adım 2: Klasör İsimlerinin Güncellenmesi (pallet -> pezpallet) ---")
for dirpath, dirnames, filenames in os.walk(root_dir, topdown=False):
if any(excluded in dirpath.split(os.sep) for excluded in EXCLUDE_DIRS):
continue
dirname = os.path.basename(dirpath)
original_dirname = dirname
new_dirname = dirname
for old_prefix, new_prefix in RENAME_MAP.items():
if old_prefix in new_dirname:
new_dirname = new_dirname.replace(old_prefix, new_prefix)
if new_dirname != original_dirname:
old_path = dirpath
new_path = os.path.join(os.path.dirname(dirpath), new_dirname)
if os.path.exists(old_path) and not os.path.exists(new_path):
try:
os.rename(old_path, new_path)
print(f" [RENAME-DIR] {original_dirname} -> {new_dirname}")
except OSError as e:
print(f" [HATA] Klasör adlandırılamadı {original_dirname}: {e}")
def main():
root_dir = os.getcwd()
print("==================================================")
print(f"🗂️ Dosya Adı Düzeltme İşlemi Başlatılıyor (pallet -> pezpallet)...")
print(f"⚠️ Çalışma Dizini: {root_dir}")
print("==================================================")
rename_paths(root_dir)
print("\n✅ Dosya Adları Düzeltme işlemi tamamlandı.")
if __name__ == "__main__":
main()