folder Tahribat.com Forumları
linefolder Python
linefolder Python İle "Konuda Yeni Mesaj Varmı" Kontrolü



Python İle "Konuda Yeni Mesaj Varmı" Kontrolü

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    celoron
    celoron's avatar
    Kayıt Tarihi: 13/Ekim/2008
    Erkek

    müridler forumda cevap varmı diye sayfayı yenilemek yerine python ile küçük bir kod yazdım.

    ana mantığı istediğiniz id li konunun html ine girip "Konuda x mesaj var" kısmını ayırarak x değerini buluyor.

     

    işte kodlar;

     # -*- coding: cp1254 -*-
    import urllib,time

    bekleme=10 #kaç saniye bekleyecek?

    def kontrol(id):
        parametre = urllib.urlencode({'folderid': id})
        link = urllib.urlopen("http://www.tahribat.com/forumdisplayfolder.asp", parametre)

        html=link.read()
        htmlbol=html.split('Konuda ')
        htmlbol2=htmlbol[1].split(' ',1)
        print 'Mesaj sayısı: '+htmlbol2[0]

    print 'ID yi girin:'
    id=raw_input()
    tekrar=10
    while True:
        if tekrar>=bekleme:
            tekrar=0
            kontrol(id)
        else:
            tekrar+=1
        time.sleep(1)

    açıklayacak olursak:

     # -*- coding: cp1254 -*-

    Türkçe karakterleri göstermesi için

    import urllib,time

    urllib sitenin html sini almak için, time bekletmek için (bunlar pythonun standart olarak içinde bulunan modüller)

    bekleme=10 #kaç saniye bekleyecek? 

    her yenileme kaç saniyede bir oluyor

    def kontrol(id):

    id adlı bir argümanı bulunan bir fonksiyon açtık

        parametre = urllib.urlencode({'folderid': id})
        link = urllib.urlopen("http://www.tahribat.com/forumdisplayfolder.asp", parametre)

    Parametrelerimiz url'ye ?folderid:xxx şeklinde giriyor. isterseniz direk bu şekilde de yapabilirsiniz

        html=link.read()

    linkten aldığımız bilgileri okuyoruz

        htmlbol=html.split('Konuda ')

    Konuda yazan kısımdan ayırıyoruz (başındaki html kodları eğer mesajın içinde de 'Konuda' kelimesi geçiyorsa ona dokunmasın diye)

        htmlbol2=htmlbol[1].split(' ',1)

    'Konuda' kelimesinden sonraki kısmı boşluktan ayırıyoruz. Sadece 1 kere ayırıyorum zaten gerisini kullanmayacağız.

        print 'Mesaj sayısı: '+htmlbol2[0]

    yazdırma komutu

    print 'ID yi girin:'
    id=raw_input()

    raw_input() fonksiyonu bizim bir değer girmemizi bekler

    tekrar=10

    beklemeyi burada ayarlıyorum

    while True:

    sonsuz bir döngü yapmak için

        if tekrar>=bekleme:
            tekrar=0
            kontrol(id)

    tekrar büyük yada eşitse beklemeye tekrar sıfırlansın ve kontrol mesajlar edilsin

        else:
            tekrar+=1

    değilse tekrar 1 artsın

        time.sleep(1)

    1 saniye beklesin


    artık isterseniz pygame ile yeni mesaj varsa sesli uyarı verdirirsiniz, isterseniz pyqt ile program görünümü katarsınız


    Microsoft isn't evil, they just make really crappy operating systems. Linus Torvalds
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    FOXXLY
    FOXXLY's avatar
    Kayıt Tarihi: 19/Haziran/2006
    Erkek
    dur bende asp sini kasayım :D

    kelimeler albayım bazı anlamlara gelmiyor.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    FOXXLY
    FOXXLY's avatar
    Kayıt Tarihi: 19/Haziran/2006
    Erkek

    mod başlığı değiştirsin Python & Asp ile olacak :D:D

     

    <%
    Function BinaryToString(Binary)
        Dim cl1, cl2, cl3, pl1, pl2, pl3
        Dim L
            cl1 = 1
            cl2 = 1
            cl3 = 1
            L = LenB(Binary)
        Do While cl1<=L
            pl3 = pl3 & Chr(AscB(MidB(Binary,cl1,1)))
            cl1 = cl1 + 1
            cl3 = cl3 + 1
        If cl3>300 Then
            pl2 = pl2 & pl3
            pl3 = ""
            cl3 = 1
            cl2 = cl2 + 1
        If cl2>200 Then
        pl1 = pl1 & pl2
        pl2 = ""
        cl2 = 1
        End If
        End If
        Loop
        BinaryToString = pl1 & pl2 & pl3
    End Function

    On error resume next
    site = "http://tahribat.com/forumdisplayfolder.asp?folderid=88448"

    Set HTTP = Server.CreateObject("Microsoft.XMLHTTP" )
    HTTP.Open "Get" , site, False
    HTTP.SEnd
    Sayfa_Al = BinaryToString(HTTP.ResponseBody)
    Set HTTP = Nothing

    Basla = InStr(1,Sayfa_Al, "Konuda " , 1)
    copyg="copyright by foxxly"
    Bitir = InStr(Basla, Sayfa_Al, "mesaj var.
    " , 1) - Basla
    foxxly = Mid(Sayfa_Al, Basla, Bitir)
    response.write foxxly &"mesaj var :F
    "&copyg&""

    %> 

     

    çıktısı : http://www.foxxly.com/tahribat-com.asp

    bu mesajı yazdığım sıra : 

    Konuda 2 mesaj var :F
    copyright by foxxly

    http://tahribat.com/forumdisplayfolder.asp?folderid=88448 şu sayfayı saydırdım ;)

    foxxly rulz :Ç


    kelimeler albayım bazı anlamlara gelmiyor.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    celoron
    celoron's avatar
    Kayıt Tarihi: 13/Ekim/2008
    Erkek

    pyqt ile ilerlettiğim uygulama(asp nin gücünü aşan bi olay :)

     

    bunun için pyqt modulüne ihtiyacınız var

    kodları burada:

    import sys,urllib,time
    from PyQt4 import QtCore, QtGui

    class Ui_MainWindow(object):
        def setupUi(self, MainWindow):
            MainWindow.setObjectName("MainWindow")
            MainWindow.resize(242, 125)
            self.centralwidget = QtGui.QWidget(MainWindow)
            self.centralwidget.setObjectName("centralwidget")
            self.pushButton = QtGui.QPushButton(self.centralwidget)
            self.pushButton.setGeometry(QtCore.QRect(100, 10, 131, 21))
            self.pushButton.setObjectName("pushButton")
            self.lineEdit = QtGui.QLineEdit(self.centralwidget)
            self.lineEdit.setGeometry(QtCore.QRect(10, 10, 81, 21))
            self.lineEdit.setObjectName("lineEdit")
            self.label = QtGui.QLabel(self.centralwidget)
            self.label.setGeometry(QtCore.QRect(10, 40, 221, 51))
            self.label.setObjectName("label")
            MainWindow.setCentralWidget(self.centralwidget)
            self.menubar = QtGui.QMenuBar(MainWindow)
            self.menubar.setGeometry(QtCore.QRect(0, 0, 242, 22))
            self.menubar.setObjectName("menubar")
            MainWindow.setMenuBar(self.menubar)
            self.statusbar = QtGui.QStatusBar(MainWindow)
            self.statusbar.setObjectName("statusbar")
            MainWindow.setStatusBar(self.statusbar)

            self.retranslateUi(MainWindow)
            QtCore.QMetaObject.connectSlotsByName(MainWindow)

            QtCore.QObject.connect(self.pushButton,QtCore.SIGNAL("clicked()"),self.bak)


        def retranslateUi(self, MainWindow):
            MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "Tahribat Mesaj Kontrol", None, QtGui.QApplication.UnicodeUTF8))
            self.pushButton.setText(QtGui.QApplication.translate("MainWindow", "Kontrol", None, QtGui.QApplication.UnicodeUTF8))
            self.lineEdit.setText(QtGui.QApplication.translate("MainWindow", "id", None, QtGui.QApplication.UnicodeUTF8))
            self.label.setText(QtGui.QApplication.translate("MainWindow", "id kısmına id yi girin", None, QtGui.QApplication.UnicodeUTF8))

        def bak(self):
            id=ui.lineEdit.text()
            kontrol(id)



    app = QtGui.QApplication(sys.argv)
    window = QtGui.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(window)

    def kontrol(id):
        parametre = urllib.urlencode({'folderid': id})
        link = urllib.urlopen("http://www.tahribat.com/forumdisplayfolder.asp", parametre)
        html=link.read()
        htmlbol=html.split('<font face="Verdana,arial,helvetica" size="2">Konuda ')
        htmlbol2 =htmlbol[1].split(' ',1)
        yaz='Konuda '+htmlbol2[0]+' mesaj var'
        print yaz
        ui.label.setText(yaz)
       


    window.show()
    sys.exit(app.exec_())


    Microsoft isn't evil, they just make really crappy operating systems. Linus Torvalds
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    FOXXLY
    FOXXLY's avatar
    Kayıt Tarihi: 19/Haziran/2006
    Erkek

    ASP nin Gücü Adına Hiimeennnn :F

     

    http://www.foxxly.com/tahribat-com.asp

    isterseniz sesli mesaj şeklindede uyarı verdirebiliris :D


    kelimeler albayım bazı anlamlara gelmiyor.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    celoron
    celoron's avatar
    Kayıt Tarihi: 13/Ekim/2008
    Erkek
    demek istediğimi anlamadın sanırım. python ile masaüstü programı hazırlanabiliyor. yaptığımda bu zaten. asp ancak web üzerinden kullanılabiliyor. python her yerde kullanılabiliyor symbian da bile.

    Microsoft isn't evil, they just make really crappy operating systems. Linus Torvalds
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    All hail to Tux
    sandman
    sandman's avatar
    Kayıt Tarihi: 01/Eylül/2005
    Erkek
    Pythonun en sevdigim tarafı çok hızlı script yazabilmemi sagladı ve bazen müşteriye program göstericek test için yada prototip programları hep pythonla yazıyoruz.

    Mühendis kahveyi projeye dönüştüren bir insan evladıdır.
Toplam Hit: 2760 Toplam Mesaj: 7