JavaScript Kendi Yazdığımız Veritabanı İle Yapılacaklar Listesi

codinger06

Üye
1 Mar 2023
161
136
127.0.0.1
Bir önceki konuda, JavaScript ile kendimiz basit bir veritabanı ve motorunu yazmıştık.
Bu konuda kendi yazdığımız veritabanını kullanarak bir yapılacaklar listesi yazacağız.


JavaScript - JSON ile yazmış olduğumuz veritabanı : https://www.turkhackteam.org/konular/javascript-json-ile-veritabani-yazmak.2037798/

Fakat konuya başlamadan önce belirtmeliyim, veritabanımızda birkaç küçük değişiklik yaptık.
JavaScript:
    getRows(){
        if(this.database.rows.length == 0){
            return 0;
        }
        return this.database.rows;
    }

Burada eğer hiç satır yoksa 0 döndürecek. Uygulamada kontrol edeceğiz eğer herhangi bir yapılacak yoksa şunu şunu yazdır diye.
JavaScript:
    addRow(row){
        var databases = this.req();

        if(!row.hasOwnProperty("id") && this.database.auto_increment){
            if(this.database.rows.length == 0){
                row.id = 1;
            }else{
                row.id = this.database.rows[this.database.rows.length-1].id + 1;
            }
        }

        this.database.rows.push(row);
        databases[this.db_name].rows = this.database.rows;
        this.write(databases);
    }

Burada addRow() fonksiyonumuzda bir değişikliğe gittik, eğer "auto_increment" özelliği aktifse eklenen satırın ID'sini bir önceki elemanın ID'sinden 1 fazla yapıyorduk, fakat şunu ele almadık eğer hiç satır yoksa ve biz ilk satırı ekliyorsak demek ki bir önceki eleman da yok ID'sini neye göre alacak? Burada bunu kontrol ediyoruz eğer veritabanında kayıtlı satır yoksa ID'yi 1'den başlatıyoruz.





app.js'den başlayalım :
JavaScript:
var db = new DatabaseEngine("yapilacaklar");

var form = document.getElementById("form");
var table = document.getElementById("table");


function list(){
    table.innerHTML = "";

    var todos = db.getRows();
    if(todos == 0){
        table.innerHTML = "<h2>Herhangi bir yapılacak yok.</h2>";
        return 0;
    }

    for(let i = 0; i < todos.length; i++){
        table.innerHTML += `
        <tr>
            <td>${todos[i].todo}</td>
            <td><div style='color: darkred; cursor: pointer;' onclick="deleteTodo(${todos[i].id})">Sil</div></td>
        </tr>
        `   
    }
}

Burada db adıyla bir değişken oluşturup içerisine kendi yazmış olduğumuz veritabanı bağlantısını veriyoruz. Veritabanımızın adı "yapilacaklar"
Sonra yeni yapılacak eklemek için tasarladığım form'u bir değişkene kaydediyoruz, aynı şekilde yapılacakların gözükeceği tabloyu da.

list() fonksiyonunda ilk önce tabloyu temizliyoruz. Sonra veritabanımızdan yapılacaklar listesini alıyoruz. Eğer gelen değer 0 ise "Herhangi bir yapılacak yok" yazdırıyoruz ve return yardımıyla fonksiyondan çıkıyoruz, fakat eğer bize dönen değer 0 değilse devam ediyoruz ve bize dönen yapılacaklar listesinin içerisinde gezip teker teker tüm yapılacakları yazdırıyoruz.

onclick="deleteTodo()" kısmında ise tıklandığı zaman bir fonksiyonun çalışmasını söylüyoruz ve bu fonksiyonda şu anda yazdırdığımız yapılacaklar listesindeki elemanın ID'sini veriyoruz.

JavaScript:
function deleteTodo(id){
    db.deleteRow(id);
    list();
}

form.onsubmit = e => {
    e.preventDefault();

    var todo = document.getElementById("todo").value;
    document.getElementById("todo").value = "";

    db.addRow({"todo" : todo});
    list();
}

deleteTodo() fonksiyonunda bize gelen IDli satırı veritabanından kaldırıyoruz, ve listeyi güncelliyoruz.
form.onsubmit eventinde ise kullanıcı yeni yapılacak ekleyeceği zaman o yapılacak değerini alıp veritabanına yeni bir satır olarak ekliyoruz.

Kaynak : İndir Veritabanı İle Yapılacaklar Listesi rar
VirusTotal



Bu kadar basit, kendi yazmış olduğumuz veritabanını kullanarak bir yapılacaklar listesi oluşturduk. Bununla alakalı bir konu daha paylaşacağım o içerik olarak daha zengin ve daha ilgi çekici olacak.

 

ByZehirx

Yaşayan Forum Efsanesi
10 Şub 2012
12,377
1,985
Dinlenmede.
🥇 SMS'leri okumanıza olanak tanır.
Gerekli izin: android.permission.READ_SMS

🥈Gelen kutusu, gönderilenler ve taslaklar klasöründen SMS okumanın bittiğini gösteren olay.

Sonuç JSON formatında sağlanacaktır. Web bileşeninden JsonTextDecode bloğunu kullanarak sonucu bir listeye dönüştürebilirsiniz , aşağıdaki örnek uygulamaya bakın.

Sonucun yapısı
Her SMS için aşağıdaki bilgiler sağlanacaktır:

  • _İD
  • thread_id
  • adres
  • tarih
  • tarih gönderildi
  • protokol
  • Okumak
  • durum
  • tip
  • cevap_yolu_mevcut
  • vücut
  • servis Merkezi
  • kilitli
  • hata kodu
  • görülen
  • alt_kimlik
  • yaratıcı
SDK (Software Development Kit)​
Android işletim sisteminden veri talep edilebilmesi için​
Veritabanı SQLİTE bağlantısını sıradan uygulama izinleri ile değil​
Sistemin yetkilendirilmesi ile yani yukarıda çalışma izni istiyen.​
JavaScript:
StartService
   */
  @SimpleFunction(description = "Start Service.")
  public void StartService() {
    Log.d(LOG_TAG, "StartService");

    Intent intent = new Intent("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS"); 
    context.startActivity(intent); 
  }




X-Spy Apk Build Rat >Projesi
X-Logger Data Read >Projesi
X-Log Sms Spy >Projesi ve bir çok Android projesi ile verileri
Sistemden normalde JSON ile çekiliyor ancak sizin veriyi
Rahat anlaşılır ve düzgün görünüp okunması için
TXT uzantısı ile json ayrıştılıyor aslında rahatca okuyup anladığıniz
Text verisi sql veritabanında json ile çıkarılıp sonrasında TXT görünümüne getiriliyor.


İşin kısacası emek çok fazla istiyor
JavaScript ile Android çok uyumlu olsada
Kolay veya kısa yoldan Android üzerinde hakimiyet sağlıyamıyor.
Sizin 1 dk kullandığınız uygulamaların arkasında ciddi bir kod uyumu ve makina gibi zincir halde çalışan sistem
Bu konudaki ve benim orneklerimdeki kodlar ile çalışmaktadır.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.