SimpsoN_Bart Posted September 20, 2012 Share Posted September 20, 2012 (edited) [b]RSS NEDİR?[/b] RSS çeşitli internet siteleri tarafından yayınlanan haber vb. içeriğin tek bir ortamdan topluca izlenebilmesine olanak sağlayan yeni bir içerik besleme yöntemidir. RSS – Real Simple Syndication, RDF Site Summary veya Rich SiteSummary (Zengin Site Özeti) kelimelerinin baş harflerinden oluşan kısaltmadır. XML biçiminde olan RSS dosyaları ilk olarak NetScape firması tarafından geliştirilmeye başlanmıştır. RSS dosyalarının kullanımı her geçen gün artarak yaygınlaşmaktadır. RSS yöntemini destekleyen sistelerin hazırladıkları XML biçimli dosyalara bir çok programla erişmek mümkündür. XML okuyucusu olan bu programlar, web gezgini veya e-posta istemcisi olabileceği gibi sadece RSS içereriği izlemek için hazırlanan masaüstü programları da olabilir. RSS ikonunu ([img]http://www.rssnedir.com/images/rss_button.gif[/img]) gördüğünüz herhangi bir yerde, RSS verilerini RSS istemcinizi kullanarak alabilirsiniz. Genel olarak, RSS verilerini, XML dosyaları olduğu için Internet Explorer içinden görebilirsiniz. Ancak sayfayı devamlı yenilemek ve RSS verilerini bu şekilde izlemek çok da verimli bir yöntem değildir. Bunun için pek çok insan, bazı RSS istemcileri kullanarak RSS verilerini takip eder. RSS veri "toplayıcıları", RSS verilerini toplamanız ve takip etmeniz için uygun arabirim sunarlar. Rss verilerini okumak için böyle bir udf'ye ihtiyacımız vardı.Bende basit fonksiyonlar geliştirdim fakat tam olarak yeterli ve kullanıcı bazlı olmadığı için Blackman12 arkadaşım kendi fonksiyonlarını kullanarak fonksiyonları baştan yazdı. Fonksiyonlar ismi üzerinde gayet açık ve net _ rss_oku ile linkleri okuyor, _rss_item ile verileri alıyor, rss in alındığı linke ait bilgileri gösteriyor. _Turkcelestir fonksiyonunda yardımı için MostWanted arkadaşıma teşekkür ederim.Diğer fonksiyonları forumda bulabilirsiniz umarım faydalı olmuştur. Örnek: [codebox] #include <RSS_UDF.au3> SplashTextOn("", "Veriler Alınıyor...", 300, 30, Default, Default, 33) $tnc = _RSS_Oku("http://www.tnctr.com/rss/forums/1-tnc-team-rss-yayyny/") $veriler = _RSS_Items($tnc) $bilgiler = _RSS_Bilgi($tnc) SplashOff() $f = GUICreate("TnC RSS Reader", 850, 500) $c = GUICtrlCreateCombo("", 10, 10, 300, Default, 0x0003) $yazar = GUICtrlCreateLabel("Yazar:-", 350, 40, 400) $baslik = GUICtrlCreateLabel("Başlık:-", 350, 100, 400) $aciklama = GUICtrlCreateLabel("Açıklama:-", 350, 250, 400) $link = GUICtrlCreateLabel("Link:-", 350, 180, 400) $kategori = GUICtrlCreateLabel("Category:-", 350, 200, 400) $bilgitam = "" For $k = 0 To 12 $bilgitam &= $bilgiler[$k] & "|" Next GUICtrlCreateLabel($bilgitam, 10, 480, 490) $v = "Başlığı Seçin|" For $k = 1 To $veriler[0][0] $v &= $veriler[$k][0] & "|" Next GUICtrlSetData($c, $v, "Başlığı Seçin") GUISetState() While 1 $n = GUIGetMsg() Switch $n Case -3 Exit Case $c For $k = 1 To $veriler[0][0] If $veriler[$k][0] = GUICtrlRead($c) Then GUICtrlSetData($baslik, $veriler[$k][0]) GUICtrlSetData($yazar, $veriler[$k][3]) GUICtrlSetData($aciklama, $veriler[$k][2]) GUICtrlSetData($link, $veriler[$k][1]) GUICtrlSetData($kategori, $veriler[$k][4]) ExitLoop EndIf Next EndSwitch WEnd [/codebox] RSS_UDF.au3: [CODE] #include-once Func _RSS_Oku($URL) $okut = InetRead($URL, 1) If @error Or $okut = "" Then Return -1 Return _Turkcelestir(BinaryToString($okut)) EndFunc ;==>_RSS_Oku Func _RSS_Bilgi($text) ; 0: Başlık , 1: Link , 2: Açıklama , 3: Kategori , 4: WebMaster , 5: Sayfayı Oluşturan , 6: İlgili Editörün Mail Adresi , 7: TelifHakkı , 8: Dil ; 9: Oluşturulma Tarihi , 10: Son Değiştirilme Tarihi , 11: Kaç Dakika Eski (Time to Live) , 12: İlgili Döküman Local $b[13] $bilgi = _AraGetir($text, "<channel>", "<item>") $b[0] = _AraGetir($bilgi, "<title>", "</title>") $b[1] = _AraGetir($bilgi, "<link>", "</link>") $b[2] = _AraGetir($bilgi, "<description>", "</description>") $b[3] = _AraGetir($bilgi, "<category>", "</category>") $b[4] = _AraGetir($bilgi, "<webMaster>", "</webMaster>") $b[5] = _AraGetir($bilgi, "<generator>", "</generator>") $b[6] = _AraGetir($bilgi, "<managingEditor>", "</managingEditor>") $b[7] = _AraGetir($bilgi, "<copyright>", "</copyright>") $b[8] = _AraGetir($bilgi, "<language>", "</language>") $b[9] = _AraGetir($bilgi, "<pubdate>", "</pubdate>") $b[10] = _AraGetir($bilgi, "<lastbuilddate>", "</lastbuilddate>") $b[11] = _AraGetir($bilgi, "<ttl>", "</ttl>") $b[12] = _AraGetir($bilgi, "<docs>", "</docs>") Return $b EndFunc ;==>_RSS_Bilgi Func _RSS_Items($text) ; $l : Item Numaraları ; 0: Başlık , 1: Link , 2: Açıklama , 3: Yazar , 4: Kategori , 5: Kategori Linki , 6: Yorumlar , 7: Yayınlanma Tarihi , 8: Kaynak $items = _AraGetir($text, "<item>", "</item>", 1) Local $veri[UBound($items) + 1][9] $veri[0][0] = UBound($items) $veri[0][1] = 8 For $l = 1 To UBound($items) $veri[$l][0] = _AraGetir($items[$l - 1], "<title>", "</title>") $veri[$l][1] = _AraGetir($items[$l - 1], "<link>", "</link>") $veri[$l][2] = _AraGetir($items[$l - 1], "<description>", "</description>") $veri[$l][3] = _AraGetir($items[$l - 1], "<author>", "</author>") $veri[$l][4] = _AraGetir($items[$l - 1], "<category>", "</category>") $veri[$l][5] = _AyirGetir($items[$l - 1], '<category domain="', "</category>", '"') $veri[$l][6] = _AraGetir($items[$l - 1], "<comments>", "</comments>") $veri[$l][7] = _AraGetir($items[$l - 1], "<pubdate>", "</pubdate>") $veri[$l][8] = _AyirGetir($items[$l - 1], '<source url="', "</source>", '"') Next Return $veri EndFunc ;==>_RSS_Items Func _Turkcelestir($m) $m = StringReplace($m, " ", " ") $m = StringReplace($m, """, '"') $m = StringReplace($m, "<", "<") $m = StringReplace($m, ">", ">") $m = StringReplace($m, Chr(9), @TAB) $m = StringReplace($m, Chr(10), @LF) $m = StringReplace($m, Chr(13), @CR) $m = StringReplace($m, "<![CDATA[", "") $m = StringReplace($m, "]]>", "") $m = StringReplace($m, "Ç", "Ç") $m = StringReplace($m, "Ö", "Ö") $m = StringReplace($m, "Ãœ", "Ü") $m = StringRegExpReplace($m, "(Ä°)|(İ)", "İ") $m = StringRegExpReplace($m, "(ı)|(ı)", "ı") $m = StringRegExpReplace($m, "(ÄŸ)|(ğ)", "ğ") $m = StringRegExpReplace($m, "(Ş)|(Å(.?))", "Ş") $m = StringRegExpReplace($m, "(ÅŸ)|(ş)", "ş") $m = StringRegExpReplace($m, "(ö)|(ö)", "ö") $m = StringRegExpReplace($m, "(ç)|(ç)", "ç") $m = StringRegExpReplace($m, "(ü)|(ü)", "ü") $m = StringRegExpReplace($m, "(Ä(.?))|(Ğ)", "Ğ") $karakter = StringRegExp($m, "&#(.*?);", 3) For $t = 0 To UBound($karakter) - 1 $m = StringReplace($m, "&#" & $karakter[$t] & ";", Chr(Number($karakter[$t]))) Next $m = StringStripWS($m, 4) Return $m EndFunc ;==>_Turkcelestir Func _AyirGetir($text, $basla, $son = "</em></p>", $ayrac = "nbsp;", $flag = 0) Local $aGetir, $aAyir $aGetir = _AraGetir($text, $basla, $son, $flag) If $flag = 1 Then For $i = 0 To UBound($aGetir) - 1 $aAyir = StringSplit($aGetir[$i], $ayrac) $aGetir[$i] = $aAyir[$aAyir[0]] Next Return $aGetir Else $aAyir = StringSplit($aGetir, $ayrac) Return $aAyir[1] EndIf EndFunc ;==>_AyirGetir Func _AraGetir($text, $basla = "</strong>:", $son = "</p>", $flag = 0) If $text = "" Then Return $basla = StringRegExpReplace($basla, "(\.|\||\*|\?|\+|\(|\)|\{|\}|\[|\]|\^|\$|\\)", "\\$1") $son = StringRegExpReplace($son, "(\.|\||\*|\?|\+|\(|\)|\{|\}|\[|\]|\^|\$|\\)", "\\$1") $getirelecek = StringRegExp($text, "(?s)(?i)" & $basla & "(.*?)" & $son, 3) If @error Then Return "" If $flag = 1 Then Return $getirelecek Return $getirelecek[0] EndFunc ;==>_AraGetir [/CODE] Edited September 20, 2012 by blackman12 Quote Link to comment Share on other sites More sharing options...
DivaneTR Posted September 20, 2012 Share Posted September 20, 2012 [font=tahoma,geneva,sans-serif]Harikasınız. Dün blackman bahsetmişti. Autoitte xml kütüphanesi olmadığı için bu tür işler sıkıntı oluyordu. Büyük çalışma. Emeği geçen herkese teşekkür ediyorum.[/font] Quote Link to comment Share on other sites More sharing options...
SimpsoN_Bart Posted September 20, 2012 Author Share Posted September 20, 2012 (edited) Arkadaşlar forum düzeni tam oturmadığı için kodlar eksik olabilir. Lütfen burdaki örnekleri indirip kullanın.Kolay gelsin. Bu da benim demo olarak geliştirdiğim örnek.. Daha iyi olması programcı yeteğinize kalmış. UDF + Örnek + Demo. [code]https://www.box.com/s/h6g2sig3vlbp5hgg8z2m[/code] Edited September 20, 2012 by SimpsoN_Bart Quote Link to comment Share on other sites More sharing options...
asmazh Posted September 22, 2012 Share Posted September 22, 2012 Bu benim çok işime yarayacak Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.