Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Qt4 Application [QT3 Application]  (gelezen 33914 keer)

Offline profoX

  • Lid
    • wesley
    • Lionslink
Qt4 Application [QT3 Application]
« Reactie #50 Gepost op: 2008/05/23, 17:04:03 »
Kijk, zo zou het ook kunnen:
       # plug-ins
        self.plugins = {}
        pluginsdir = QtCore.QDir('plugins/')
        pluginsdir.setFilter(QtCore.QDir.Files)
        for file in pluginsdir.entryList():
            if file.endsWith('.py'): # ignore non-python files
                file.chop(3) # remove .py extension
                plugin = __import__('plugins.'+str(file), fromlist=[str(file)])
                self.plugins[str(file)] = plugin
        for id, plugin in self.plugins.iteritems():
            if self.debug:
                print 'Plug-in '+id+' loaded with website trigger '+plugin.website
   def checksite(self):
        pluginFound = False
        for id, plugin in self.plugins.iteritems():
            if plugin.website == self.website:
                pluginFound = True
                self.host = plugin.host
                self.baseurl = plugin.baseurl
                data = self.urlsource.split('\n')
                if not data:
                    self.ui.output.setText(QtGui.QApplication.translate("Form", "Error: invalid url.", None, QtGui.QApplication.UnicodeUTF8))
                else:
                    vidname = plugin.getVideoName(str(data))
                    if vidname != None:
                        self.videonaam = vidname
                        #print self.videonaam
                    else:
                        self.ready()
                        self.ui.output.setText(QtGui.QApplication.translate("Form", "Error: No video name found. Using 'Unknown'.", None, QtGui.QApplication.UnicodeUTF8))
                        self.videonaam = 'Unknown'
                    vidurl = plugin.getVideoUrl(str(data))
                    if vidurl != None:
                        self.videourl = vidurl
                        if (self.debug):
                            print "Video url found: "+self.videourl
                        self.checkBeforeDownload()
                    else:
                        self.ready()
                        self.ui.output.setText(QtGui.QApplication.translate("Form", "Error: Video url not found. Couldn't download the video.", None, QtGui.QApplication.UnicodeUTF8))
                        videourl = 'Not found'
                break
        if not pluginFound:
             self.ready()
             self.ui.output.setText(QtGui.QApplication.translate("Form", "The website \""+self.website+"\" is not supported (yet)." , None, QtGui.QApplication.UnicodeUTF8))
Sample plug-in:
##################################################
######### Plugin for youtube - by koenux #########
##################################################

import re

# plug info
website = 'youtube.com'

# host info
host = 'youtube.com'
baseurl = '/get_video.php?video_id='

# find videoname
def getVideoName(data):
    vnpat = re.compile( "video_id=.*\s*&title=(.*)\s*'.*" )# This regexp does not seem to be right, it will return the title + the rest of the html page
    vnfnd = vnpat.search( data )
    if (vnfnd == None):
        videoname = None
    else:
        videoname = vnfnd.group(1)
    return videoname

# find video url
def getVideoUrl(data):
    vupat = re.compile( "video_id=(.*)\s*&title=.*" )
    vufnd = vupat.search( data )
    if (vufnd == None):
        videourl == None
    else:
        videourl = vufnd.group(1)
    print videourl
    return videourl
edit: om errors op te vangen zou ik een try/except structuur opzetten in ytr.py rond het laden van de plug-in en uitvoeren van functies en laden van variabelen van de plug-in..
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Offline profoX

  • Lid
    • wesley
    • Lionslink
Qt4 Application [QT3 Application]
« Reactie #51 Gepost op: 2008/05/23, 17:06:37 »
Trouwens, je huidige code reageert niet op dingen zoals http://nl.youtube.com, hij zal dan zeggen dat er geen plug-in bestaat voor nl.youtube.com...

in ripstart() heb ik nu dit:
               vind = pat.search( str(urltorip) )
                website = vind.group(1).rsplit('.', 2)
                self.website = website[-2] + '.' + website[-1]
die code kijkt alleen naar het domein zelf, niet naar subdomeinen, bv. http://www.whatever.sub.youtube.com/bla wordt youtube.com
http://www.youtube.com wordt nu dus ook gewoon youtube.com
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Qt4 Application [QT3 Application]
« Reactie #52 Gepost op: 2008/05/23, 19:10:15 »
koen@koenux-server1-generic:~/Bureaublad/ytripper_1.0alpha-6_all/usr/share/ytripper$ python ytr.py
Traceback (most recent call last):
  File "ytr.py", line 332, in
    f = ytripper()
  File "ytr.py", line 98, in __init__
    plugin = __import__('plugins.'+str(file), fromlist=[str(file)])
ImportError: No module named plugins.youtube
koen@koenux-server1-generic:~/Bureaublad/ytripper_1.0alpha-6_all/usr/share/ytripper$
Dus het werkt niet bij mij?

Maar inderdaad de regExp is niet juist.  Die was eerst wel juist, heel raar.
De verbeterde regExp:
"(.*?)\s*"

Offline profoX

  • Lid
    • wesley
    • Lionslink
Qt4 Application [QT3 Application]
« Reactie #53 Gepost op: 2008/05/23, 19:12:18 »
Heb je youtube.py in de map plugins/ gestoken?
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Qt4 Application [QT3 Application]
« Reactie #54 Gepost op: 2008/05/23, 19:15:44 »
jup. Want als ik dat niet doe, dan zegt hij terecht dat de site nog niet ondersteund wordt.

Offline profoX

  • Lid
    • wesley
    • Lionslink
Qt4 Application [QT3 Application]
« Reactie #55 Gepost op: 2008/05/23, 19:18:00 »
update bzr eens, dan kijk ik even mee om te zoeken wat er misgaat..
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Qt4 Application [QT3 Application]
« Reactie #56 Gepost op: 2008/05/23, 19:28:08 »
hmmm hij is nu aan het pushen.. ( duurt erg lang )

Edit

ssh_exchange_identification: read: Connection reset by peer
bzr: ERROR: Connection closed: please check connectivity and permissions (and try -Dhpss if further diagnosis is required)

Echter is hij wel aangekomen op launchpad

Edit2
Zou ik niet gewoon ook mijn manier van plugins laden kunnen gebruiken? Of is dat echt slecht?
Punt is dat ik een plugin bestand graag zo simpel mogelijk wil houden voor de niet-python kenners.
De code met mijn manier werkt overigens nu prima.

Offline profoX

  • Lid
    • wesley
    • Lionslink
Qt4 Application [QT3 Application]
« Reactie #57 Gepost op: 2008/05/23, 19:44:40 »
In Launchpad zit alleen maar de vorige versie denk ik.. niet de versie waar je die error krijgt.. kan dat?
PS: kom je niet op MSN? lijkt me makkelijker :)
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Offline profoX

  • Lid
    • wesley
    • Lionslink
Qt4 Application [QT3 Application]
« Reactie #58 Gepost op: 2008/05/23, 19:46:17 »
Citaat van: vlerknozem
Edit2
Zou ik niet gewoon ook mijn manier van plugins laden kunnen gebruiken? Of is dat echt slecht?
Punt is dat ik een plugin bestand graag zo simpel mogelijk wil houden voor de niet-python kenners.
De code met mijn manier werkt overigens nu prima.
Ja, goed. Als het werkt, dan werkt het. Ik weet ook maar weinig van Python, dus ik weet niet of dat slechter of beter is.
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Qt4 Application [QT3 Application]
« Reactie #59 Gepost op: 2008/05/23, 20:01:46 »
oke dan :)

Gast, ik ben al sinds metuzalem online op msn!
Jij bent bij mij offline, ik bij jou zeker????

Misschien dat het ligt aan emesene.. Ik zal ff switchen naar aMSN.