Jump to content

SimpsoN_Bart
 Share

Recommended Posts

[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, "&nbsp;", " ")
$m = StringReplace($m, "&quot;", '"')
$m = StringReplace($m, "&lt;", "<")
$m = StringReplace($m, "&gt;", ">")
$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, "(ö)|(&ouml;)", "ö")
$m = StringRegExpReplace($m, "(ç)|(ç)", "ç")
$m = StringRegExpReplace($m, "(&uuml;)|(ü)", "ü")
$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 by blackman12
Link to comment
Share on other sites

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 by SimpsoN_Bart
Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...