Pazartesi, Temmuz 10, 2006

DLSync

Downloadcu arkadaslarin rastladigi bir problem, (downloadcu derken, kazaa dan 3-5 tane mp3 indirenlerden bahsetmiyorum, ciddi downloadculardan, Usenetcilerden bahsediyorum) daha onceden indirilen bir dosyanin tekrar indirilmesidir. Mesela Hede filminin DVDsini indirip, bundan 2 ay sonra newzbin de Hede filmini gorup, “aaa hede gelmis, indiriyim bari”, indirdigim olmustur. Bunun onune gecmek icin, DLSync diye bir alet yazdim. Yaptigi ise kisaca soyle ozetlenebilir:

Newzbindeki bookmarklara gir, bunlarin herbirini indir ve veri tabanina kaydet. Boylece Veri tabaninda olan birseyi tekrar bookmarklara ekleyince indirme.

Gercek cok basit degilmi? Aslinda arka tarafta olan biten baska detaylar var onlardanda soyle bahsetmek istiyorum, cunku insanlar bir article gonderirken, degisik isimlerle gonderiyor. 2 kisi Hede isimli filmi yollarken biri post subjectine “Hede DVD”, digeri “H.E.D.E 2004 Directors Cut” gibi birsey yaziyor, buda hali ile problem cikariyor. Ayrica Indirmek icin siraya eklenen hersey indirilyor diye birsey yok, Mesela NB den bookmarka eklediginiz Postu 1 Hafta sonra indirmeye kalkinca retentioni doldugu icin indiremeyebiliyorsunuz. DLSync ile bununda onune gecmis bulunuyorum. Soyle detayli bir bakista akis semasini soyle ozetleyebilirim:

  • Newzbindeki Bookmark sayfasina bagalan ve burdaki verileri al. NB sifreli bir site oldugu icin burada PHP nin CURL kutuphanesinden yardim gerekiyor. Buradaki veriler bir Regexden geciyor ve Postlarin URLleri Veri tabanina kaydediliyor. Tabiiki bunun disinda Post Isimi, ve baska ivir zivir seylerde veri tabanina kaydediliyor.
  • Kullanici “git MSGIDleri al” dedigi zaman, DLsync gene NB ye bagalaniyor ve belirtilen postlarin Dbdeki URLlerine girip buradan NZB yi aliyor. Bu sirada DBdeki “newzbinden indirdim” flagi set ediliyor.
  • Daha sonra kullanici DLsyncden Deque edip, Harddiskte bir yere NZByi yazdiriyor. Bu yer ise genellikle nzbperl in monitor ettigi que dizini oluyor. Boyle deque edilen posst direkt olarak download edilmeye basliyor.
  • Daha sonra Nzbperl in loglarindan hangi postlarin gercekten indirildigi bilgisi alinabiliyor, boylece DLSynce eklenipde indirilmeyen postlar aradan ayiklanabiliyor.

DLsync suanda daha alphanin alphasi durumunda, ara yuzu filan cok sade ama isini yapiyor. SVN deposuna ekledim, ilerde downloada acmayi dusunuyorum, ama illaki ben bunu denemek istiyorum diyen olursa, sanirim kaynak kodu gonderebilirim. Ancak su an dokumantasyon ve benden yardim 0 olur herhalde.

DLSyncin bagimli oldugu platformlar su anda sunlar:

  • MySQL
  • PHP
  • CURL

Hiç yorum yok: