Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ekşi Sözlük — Nintendo Switch

Nintendo Switch için resmi olmayan, bağımsız bir Ekşi Sözlük istemcisi. Homebrew olarak çalışır; arayüz baştan sona native (nanovg + OpenGL ES 2), tam Türkçe metin, kontrolcü ve dokunmatik desteğiyle.

Resmi değildir. Bu proje Ekşi Sözlük ile ilişkili değildir, onlar tarafından desteklenmez. Kişisel ve eğitim amaçlı bir çalışmadır.


Özellikler

  • Native arayüz — nanovg + GLFW/GLES2, Switch'in sistem fontuyla eksiksiz Türkçe karakter desteği (ı ğ ş İ Ğ Ş), kelime sarma, yumuşak kaydırma.
  • Gündem, bugün (debe), arama, başlık okuma — sayfalı entry listeleri.
  • Kontrolcü + dokunmatik — çubuk/tuşlarla gezinme veya parmakla sürükle-kaydır ve dokunarak-aç.
  • Canlı veri — gerçek API'den okur; kimlik bilgisi gerektirmeden anonim oturumla çalışır.
  • Çevrimdışı demo modu — yapılandırma boşsa örnek verilerle tüm arayüz gezilebilir.

Kurulum

Hacklenmiş (Atmosphère/CFW) bir Switch gerekir.

  1. Releases sayfasından en güncel .zip'i indir.
  2. İçindeki switch klasörünü SD kartın köküne kopyala:
    sdmc:/switch/eksi-switch/eksi-switch.nro
    
  3. SD kartı tak, CFW'yi başlat.
  4. hbmenu'yü bir oyunun üzerinde R tuşunu basılı tutarak aç (Album'den değil — tam bellek için gereklidir).
  5. Listeden Eksi Sozluk'ü seç.

Kontroller

Liste ekranı

Giriş İşlev
↑ / ↓ · sürükle gezin / kaydır
A · dokun başlığı aç
Y ara
X giriş yap / çıkış
L / R sekme (gündem · bugün · takip)
ZL / ZR önceki / sonraki sayfa
+ çıkış

Başlık ekranı

Giriş İşlev
↑ / ↓ · sürükle entry seç / kaydır
B geri
Y entry yaz
X favori
L / R artı / eksi oy
ZL / ZR önceki / sonraki sayfa

Kaynaktan derleme

devkitPro toolchain'i ve switch-dev paket grubu gerekir. Kullanılan portlib'ler: glfw3, EGL, GLESv2, curl, mbedtls, z.

export DEVKITPRO=/opt/devkitpro
make                 # -> eksi-switch.nro
bash package.sh      # temiz derleme + SD kart düzeni + dağıtım .zip

romfs/cacert.pem HTTPS için gereklidir — Switch'te curl'ün mbedtls backend'inin okuyabileceği bir sistem güven deposu olmadığından CA paketi uygulamayla birlikte gider.

Mimari

source/
  app.{hpp,cpp}       ana döngü, ekran yığını, ortak çerçeve (header/footer/toast)
  model/types.hpp     Entry, Topic, TopicRef, TopicList, Session
  net/
    http.{hpp,cpp}    libcurl + arka plan worker; callback'ler render thread'inde
    eksi_api.*        tipli API cephesi, tolerant JSON parse, markup temizleme
    api_secret.*      istek imzasının (Api-Secret) mbedtls ile üretimi
    api_config.hpp    endpoint'ler, sabitler, anahtarlar
    demo_data.*       çevrimdışı fixture'lar
  ui/
    render.*          GLFW + GLES2 + nanovg + shared font
    input.*           libnx HID sarmalayıcı (kontrolcü + dokunmatik)
    text.* scroll.* theme.*   metin, kaydırma, palet
  screens/            gündem/başlık ekranları
third_party/          nanovg, nlohmann/json (vendor)
tools/capture/        API yapılandırmasını üreten yardımcı araçlar

Öne çıkan iki tasarım kararı:

  • HTTP arka planda tek worker thread'de döner, ama callback'ler render thread'inde (Http::pump) çalışır — ekranlar kendi durumlarına kilitsiz dokunur.
  • Yazma işlemleri iyimserdir — favori/oy anında yerel olarak uygulanır, sunucu reddederse geri alınır; arayüz 60fps'te tepkisel kalır.

Yapılandırma

Uygulama, mobil istemcinin özel API'siyle konuşur. Host, endpoint'ler ve istek imzalama şeması tools/capture/ altındaki araçlarla, kişinin kendi trafiğini yakalayarak çıkarılır ve source/net/api_config.hpp içine yazılır. Ayrıntılar için tools/capture/README.md.

api_config.hpp içindeki kBaseUrl boş bırakılırsa uygulama çevrimdışı demo modunda çalışır.

Sorumluluk reddi

Bu resmi olmayan, bağımsız bir istemcidir; Ekşi Sözlük ile hiçbir bağı yoktur ve onların markası, içeriği ya da hizmetleri üzerinde hak iddia etmez. Yalnızca kişisel ve eğitim amaçlıdır. Kullanmadan önce ilgili hizmet koşullarını ve yürürlükteki mevzuatı kendin değerlendir. Yazar, kullanımından doğacak sonuçlardan sorumlu değildir.

Lisans

MIT — bkz. LICENSE.

About

Nintendo Switch icin resmi olmayan Eksi Sozluk istemcisi (native homebrew)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages