Help with making plugin for flexibrowers!
#1
Sad 
k i kinda got this plugin working !!!! lol i go in to flexibrower, goto snuffx , then go to ether "accidents" "executions" "strange" or "celebrities" , but then when i click on one of this it sayz "could not find anything in this element" this is my first time doing anything like this so i'm not compeltely sure on what i'm doing, can someone please help me out and tell what else i have to do!!!!! i think i'm close to geting a snuffx plug-in i can feel it lol
Reply
#2
this is based on the plug in for ebaumsworld, i'm not sure what else i have to doHuh simple team xbox video browser
#===========================================================
#
# updates:
# o cloned from aqtbrowser by darkie update by mark hensler

import flexibrowser
import re

def repmultiwhitespace(s):
p = re.compile('\s{2,}')
return p.sub(' ', s)

def removetags(s):
p = re.compile('<.*?>')
return p.sub('', s)

def getmoviesfromstring(data, httphandler):

# remove leading whitespaces
p = re.compile('^\s+')
data = p.sub('', data)

# remove linebreaks
data = data.replace('\n', '')
data = data.replace('\r', '')

# <tr>
# <td><a href="weatherman.html"><img src="images/weatherman75.jpg" width="75" height="75" border="0" align="left" class="fotgal"></a>
# news anchor has a bad case of tourettes syndrome.
# <a href="weatherman.html">tourettes weatherman</a>
# </td>
# </tr>
# 0 = url; 1 = thumburl; 2 = description; 3=url; 4=caption
p = re.compile('<tr>\s*<td><a href="(.*?)"><img src="(.*?)".*?></a>(.*?)<a href="(.*?)">\s*(.*?)\s*</a>\s*</td>\s*</tr>', re.ignorecase)
movies = re.findall(p, data)

# print('found' + str(len(movies)))

subelems = []
for mov in movies:
desc = removetags(repmultiwhitespace(mov[2]))
desc = desc.strip()
caption = removetags(repmultiwhitespace(mov[4]))
caption = caption.strip()

caption = caption + ' - ' + desc

url = mov[0]
if (url.count(':') == 0):
url = 'http://www.snuffx.com/' + url

m = ebaumvideoelement(caption, url, desc)
m.sethttphandler(httphandler)
subelems.append(m)

return subelems

# ##########################################################
class ebaumvideoelement(flexibrowser.flexielement):
def (self, caption = '', url = '', description = '', date = '', size = '', thumburl = ''):
flexibrowser.flexielement.(self, caption, url, description, date, size, thumburl)

def geturl(self):
# retrieve page (do not use geturl this would result in an endless recursion!Wink
data = self.fetchhtmlpage(self.url)

# http://media.ebaumsworld.com/index.php?e=matrix.mpg
# http://media.ebaumsworld.com/matrix.mpg
m = re.search('<a href="(http://.*?/).*?\?e=(.*?\..*?)"', data, re.ignorecase)
if (m != none):
return m.group(1) + m.group(2)

print('could not find movie link')
return ''

class ebaumhilariousvideoselement(flexibrowser.flexielement):
def (self, caption = '', url = '', description = '', date = '', size = '', thumburl = ''):
flexibrowser.flexielement.(self, caption, url, description, date, size, thumburl)

def getsubelements(self):

subelems = []
i = 1 # start with page1
data = ''
while (data.find('404 - not found') == -1):
# format url
url = 'http://www.snuffx.com/clips.htm' % i

# get page (will return an empty string in case of an error)
data = self.fetchhtmlpage(url)

if (data.find('404 - not found') == -1):
# parse this page
subelems.extend(getmoviesfromstring(data, self.gethttphandler()))

# process next page
i = i + 1

return subelems

class ebaumvideoselement(flexibrowser.flexielement):
def (self, caption = '', url = '', description = '', date = '', size = '', thumburl = ''):
flexibrowser.flexielement.(self, caption, url, description, date, size, thumburl)

def getsubelements(self):

# get page (will return an empty string in case of an error)
data = self.fetchhtmlpage(self.geturl())

# parse this page
return getmoviesfromstring(data, self.gethttphandler())

class ebaumelement(flexibrowser.flexielement):
def (self, caption = "snuffx", url = '', description = '', date = '', size = '', thumburl = ''):
flexibrowser.flexielement.(self, caption, url, description, date, size, thumburl)

def getsubelements(self):

subelems = []

# add 'hilarious'
m = ebaumhilariousvideoselement('accidents', 'http://www.snuffx.com/accidents.htm', 'videos guaranteed to make you laugh.')
m.sethttphandler(self.gethttphandler())
subelems.append(m)
# add 'extreme'
m = ebaumvideoselement('executions', 'http://www.snuffx.com/executions.htm', 'prepare to be shocked.')
m.sethttphandler(self.gethttphandler())
subelems.append(m)
# add 'sports'
m = ebaumvideoselement('strange', 'http://www.snuffx.com/strange.htm', 'amazing sports footage from around the globe.')
m.sethttphandler(self.gethttphandler())
subelems.append(m)

# add 'cool'
m = ebaumvideoselement('celebrities', 'http://www.snuffx.com/celebrities.htm', "videos you won't want to miss.")
m.sethttphandler(self.gethttphandler())
subelems.append(m)

return subelems


# ######################################################################
def getflexibrowserelements(httphandler):
elems = []
m = ebaumelement("snuffx", 'http://www.snuffx.com', "media for the masses")
m.sethttphandler(httphandler)
elems.append(m)
return elems
Reply
#3
sorry about that i posted the wrong .py any this is based on the plugin for ebaumsworld, # simple team xbox video browser
#===========================================================
#
# updates:
# o cloned from aqtbrowser by darkie update by mark hensler

import flexibrowser
import re

def repmultiwhitespace(s):
p = re.compile('\s{2,}')
return p.sub(' ', s)

def removetags(s):
p = re.compile('<.*?>')
return p.sub('', s)

def getmoviesfromstring(data, httphandler):

# remove leading whitespaces
p = re.compile('^\s+')
data = p.sub('', data)

# remove linebreaks
data = data.replace('\n', '')
data = data.replace('\r', '')

# <tr>
# <td><a href="weatherman.html"><img src="images/weatherman75.jpg" width="75" height="75" border="0" align="left" class="fotgal"></a>
# news anchor has a bad case of tourettes syndrome.
# <a href="weatherman.html">tourettes weatherman</a>
# </td>
# </tr>
# 0 = url; 1 = thumburl; 2 = description; 3=url; 4=caption
p = re.compile('<tr>\s*<td><a href="(.*?)"><img src="(.*?)".*?></a>(.*?)<a href="(.*?)">\s*(.*?)\s*</a>\s*</td>\s*</tr>', re.ignorecase)
movies = re.findall(p, data)

# print('found' + str(len(movies)))

subelems = []
for mov in movies:
desc = removetags(repmultiwhitespace(mov[2]))
desc = desc.strip()
caption = removetags(repmultiwhitespace(mov[4]))
caption = caption.strip()

caption = caption + ' - ' + desc

url = mov[0]
if (url.count(':') == 0):
url = 'http://snuffx.com/main.htm' + url

m = ebaumvideoelement(caption, url, desc)
m.sethttphandler(httphandler)
subelems.append(m)

return subelems

# ##########################################################
class ebaumvideoelement(flexibrowser.flexielement):
def (self, caption = '', url = '', description = '', date = '', size = '', thumburl = ''):
flexibrowser.flexielement.(self, caption, url, description, date, size, thumburl)

def geturl(self):
# retrieve page (do not use geturl this would result in an endless recursion!Wink
data = self.fetchhtmlpage(self.url)

# http://media.snuffx.com/x/videoarchiqq/wmv/ahmed.wmv
m = re.search('<a href="(http://.*?/).*?\?e=(.*?\..*?)"', data, re.ignorecase)
if (m != none):
return m.group(1) + m.group(2)

print('could not find movie link')
return ''

class ebaumhilariousvideoselement(flexibrowser.flexielement):
def (self, caption = '', url = '', description = '', date = '', size = '', thumburl = ''):
flexibrowser.flexielement.(self, caption, url, description, date, size, thumburl)

def getsubelements(self):

subelems = []
i = 1 # start with page1
data = ''
while (data.find('404 - not found') == -1):
# format url
url = 'http://www.snuffx.com/clips.htm' % i

# get page (will return an empty string in case of an error)
data = self.fetchhtmlpage(url)

if (data.find('404 - not found') == -1):
# parse this page
subelems.extend(getmoviesfromstring(data, self.gethttphandler()))

# process next page
i = i + 1

return subelems

class ebaumvideoselement(flexibrowser.flexielement):
def (self, caption = '', url = '', description = '', date = '', size = '', thumburl = ''):
flexibrowser.flexielement.(self, caption, url, description, date, size, thumburl)

def getsubelements(self):

# get page (will return an empty string in case of an error)
data = self.fetchhtmlpage(self.geturl())

# parse this page
return getmoviesfromstring(data, self.gethttphandler())

class ebaumelement(flexibrowser.flexielement):
def (self, caption = "snuffx", url = '', description = '', date = '', size = '', thumburl = ''):
flexibrowser.flexielement.(self, caption, url, description, date, size, thumburl)

def getsubelements(self):

subelems = []

# add 'accidents'
m = ebaumhilariousvideoselement('accidents', 'http://www.snuffx.com/accidents.htm', 'videos guaranteed to make you laugh.')
m.sethttphandler(self.gethttphandler())
subelems.append(m)
# add 'executions'
m = ebaumvideoselement('executions', 'http://www.snuffx.com/executions.htm', 'prepare to be shocked.')
m.sethttphandler(self.gethttphandler())
subelems.append(m)
# add 'strange'
m = ebaumvideoselement('strange', 'http://www.snuffx.com/strange.htm', 'amazing sports footage from around the globe.')
m.sethttphandler(self.gethttphandler())
subelems.append(m)

# add 'celebrities'
m = ebaumvideoselement('celebrities', 'http://www.snuffx.com/celebrities.htm', "videos you won't want to miss.")
m.sethttphandler(self.gethttphandler())
subelems.append(m)

return subelems


# ######################################################################
def getflexibrowserelements(httphandler):
elems = []
m = ebaumelement("snuffx", 'http://www.snuffx.com', "media for the masses")
m.sethttphandler(httphandler)
elems.append(m)
return elems
Reply
#4
you could have edited your post instead of posting twice... also, please put code inside [.code.] tags ... and remember indentation.
Reply
#5
sorry about tht i didn't even see edit!!! and what do u mean by codes could u explain a little more please, this is my frist time making a plugin. ya your script :kickass: phunck !!! :bowdown: lol
Reply
#6
you are doing something weird with your geturl function.

it looks like that is supposed to parse the movie links out of a result page but the url's that are returned by it are being sent to the html parser.
Reply
#7
i have a small testscript which allows you to test/debug plugins on your pc even without the emulator.
i could share it if anyone is interested.  just need to find a place to host it.
i tried to post it here, but even with .code. the board strips whitespaces . Image
Reply
#8
the ebaumhilariousvideoselement is somehow special, since it reads several web pages in a loop. i think you should consider using the template file as a starting point.

normally i would gladly help with the regular exps . but i'm not willing to browse these tasteless sites .
so you can either post some html fragment or maybe someone else will dotlat and help you with the regexp .
Reply

Logout Mark Read Team Forum Stats Members Help
Help with making plugin for flexibrowers!0