added videarn.com support to porn-center
authorNabil Hanna <ali@users.schwerkraft.elitedvb.net>
Sun, 25 Jul 2010 07:49:19 +0000 (07:49 +0000)
committerNabil Hanna <ali@users.schwerkraft.elitedvb.net>
Sun, 25 Jul 2010 07:49:19 +0000 (07:49 +0000)
porncenter/src/Additions/videarn.png [new file with mode: 0644]
porncenter/src/Additions/videarn.py [new file with mode: 0644]

diff --git a/porncenter/src/Additions/videarn.png b/porncenter/src/Additions/videarn.png
new file mode 100644 (file)
index 0000000..d2fc71a
Binary files /dev/null and b/porncenter/src/Additions/videarn.png differ
diff --git a/porncenter/src/Additions/videarn.py b/porncenter/src/Additions/videarn.py
new file mode 100644 (file)
index 0000000..6ee7ec8
--- /dev/null
@@ -0,0 +1,84 @@
+# videarn plugin by AliAbdul
+from Plugin import Movie, Plugin
+import re, urllib2
+
+##################################################
+
+class VidearnMovie(Movie):
+       def __init__(self, name, url, thumb):
+               Movie.__init__(self, name, url, thumb)
+
+       def getVideoUrl(self):
+               try:
+                       data = urllib2.urlopen(self.url).read()
+               except:
+                       data = ""
+               reonecat = re.compile(r"<source src='(.+?)' type='video/mp4;'>")
+               list = reonecat.findall(data)
+               if list and len(list) > 0:
+                       return list[0]
+               else:
+                       return None
+
+##################################################
+
+class VidearnSub(Plugin):
+       def __init__(self, name, url):
+               self.url = url
+               self.moreEntries = True
+               Plugin.__init__(self, name, "videarn.png")
+
+       def getEntries(self, callback, currPage=1):
+               self.currPage = currPage
+               self.callback = callback
+               self.getPage("http://videarn.com/%s&page=%d" % (self.url, self.currPage))
+
+       def getPageCallback(self, page):
+               movies = []
+               reonecat = re.compile(r'<div class="gal">(.+?)</font></div></div></div>', re.DOTALL)\r
+               divs = reonecat.findall(page)
+               for div in divs:
+                       reonecat = re.compile(r'<a href="(.+?)".+?<img src="(.+?)".+?class="galtitle">(.+?)</a>', re.DOTALL)
+                       for url, thumb, name in reonecat.findall(div):
+                               movies.append(VidearnMovie(name, "http://videarn.com/"+url, thumb))
+               self.callback(movies)
+
+       def getMoreEntries(self):
+               if self.moreEntries:
+                       self.getEntries(self.callback, self.currPage+1)
+
+       def getPageError(self, error=None):
+               if error and self.currPage == 1:
+                       print "[%s] Error: %s" % (self.name, error)
+               else:
+                       self.moreEntries = False
+
+##################################################
+
+class Videarn(Plugin):
+       def __init__(self):
+               Plugin.__init__(self, "videarn.com", "videarn.png")
+
+       def getEntries(self, callback):
+               self.callback = callback
+               self.getPage("http://videarn.com")
+
+       def getPageCallback(self, page):
+               plugins = []
+               start = "<span>Browse Videos</span>"
+               end = "</div>"
+               if start in page and end in page:
+                       page = page[page.index(start):]
+                       page = page[:page.index(end)]
+                       reonecat = re.compile(r'<a href="(.+?)">(.+?)</a>', re.DOTALL)\r
+                       for url, name in reonecat.findall(page):
+                               plugins.append(VidearnSub("videarn.com - "+name, url))
+               self.callback(plugins)
+
+       def getPageError(self, error=None):
+               if error: print "[%s] Error: %s" % (self.name, error)
+
+##################################################
+
+def getPlugin():
+       return Videarn()