Kodi Community Forum
Adult channel collection for XOT-UZG - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Support (https://forum.kodi.tv/forumdisplay.php?fid=33)
+--- Forum: Add-on Support (https://forum.kodi.tv/forumdisplay.php?fid=27)
+--- Thread: Adult channel collection for XOT-UZG (/showthread.php?tid=28364)

Pages: 1 2 3 4 5 6


- Gamester17 - 2007-11-12

Gamester17 Wrote:How about converting all these adult channels to plugins? Cool

Good idea, bad idea, too hard/complicated? Huh
Any updates/progress on converting these channels into plugins?
...or any other XOT/Uitzendinggemist channel for that matter Cool

volunteer(s)?


- Basje - 2007-11-12

Gamester17 Wrote:Any updates/progress on converting these channels into plugins?
...or any other XOT/Uitzendinggemist channel for that matter Cool

volunteer(s)?

As of version 3.0 XOT-Uzg will also be available as Plugin! So NO need to convert the channels to a plugin! Just make the channel work with 3.0 (minor changes) and XOT-Uzg 3.0 will take care of displaying a channel as a plugin!

Release will be somewhere next weekend!


- athloni - 2007-12-15

XOT-UZG adult videos don't work anymore.
Also Version 3 of UZG is out.
Will the be an update to make Pr0nshare work again?


- sleepydutchboy - 2008-01-28

could someone fix this script?

Or should I just try to add the stuff from the old scipt into an other new script

Thnx anyone for trying


- Basje - 2008-01-28

sleepydutchboy Wrote:could someone fix this script?

Or should I just try to add the stuff from the old scipt into an other new script

Thnx anyone for trying
Just try to update only the channels to work with the latest version of XOT (http://www.rieter.net/uitzendinggemist/), which is version 3.0.0.


- sleepydutchboy - 2008-01-28

Basje Wrote:Just try to update only the channels to work with the latest version of XOT (http://www.rieter.net/uitzendinggemist/), which is version 3.0.0.

I Know that is the latest version. But it doesn't recordnise these channels

Think something is changed in the channel file layout

I'm going to have a try with it


- Basje - 2008-01-28

sleepydutchboy Wrote:I Know that is the latest version. But it doesn't recordnise these channels

Think something is changed in the channel file layout

I'm going to have a try with it
I am the author of XOT, so I can tell you that some minor things changed. For instance: update the maxXotVersion to "3.0.0" and check the logfile for other errrors.


- sleepydutchboy - 2008-01-28

Basje Wrote:I am the author of XOT, so I can tell you that some minor things changed. For instance: update the maxXotVersion to "3.0.0" and check the logfile for other errrors.

thnks for the help

Got them showing up but now they aren't showing any files. Got the categories already.

(1 step closer in getting these channels fixed)


- sleepydutchboy - 2008-01-28

can't get it fixed

i'm this far but can't fix the no files error
Code:
#===============================================================================
# Import the default modules
#===============================================================================
import xbmc, xbmcgui
import sys, re, os
#===============================================================================
# Make global object available
#===============================================================================
import common
import config
import controls
import contextmenu
import chn_class

logFile = sys.modules['__main__'].globalLogFile
uriHandler = sys.modules['__main__'].globalUriHandler

#===============================================================================
# register the channels
#===============================================================================
if (sys.modules.has_key('progwindow')):
    register = sys.modules['progwindow']
elif (sys.modules.has_key('plugin')):
    register = sys.modules['plugin']
#register.channelButtonRegister.append(108)
register.channelRegister.append('chn_ps.Channel("uzg-channelwindow.xml", config.rootDir, config.skinFolder, channelCode="pron")')

#===============================================================================
# main Channel Class
#===============================================================================
class Channel(chn_class.Channel):
    """
    main class from which all channels inherit
    """
    
    #===============================================================================
    def InitialiseVariables(self):
        """
        Used for the initialisation of user defined parameters. All should be
        present, but can be adjusted
        """
        # call base function first to ensure all variables are there
        chn_class.Channel.InitialiseVariables(self)
        
        self.icon = "psthumb.png"
        self.iconLarge = "pslarge.png"
        self.noImage = "psimage.png"
        self.channelName = "Pronshare.com"
    self.channelDescription = "A collection of adult videos from Stage6"
        self.moduleName = "chn_ps.py"
        self.maxXotVersion = "3.0.0"
        
        self.mainListUri = "http://pronshare.com"
        self.baseUrl = "http://pronshare.com"
    self.onUpDownUpdateEnabled = False
        
        self.requiresLogon = False
        
        self.episodeItemRegex = '<a href="(/Search\.aspx\?tag=\w+-\w+-\w+-\w+-\w+)">([^>]+)</a>' # used for the ParseMainList
        self.videoItemRegex = '<a href="(/Watch\.aspx\?id=\w+-\w+-\w+-\w+-\w+)">([^>]+)</a>'   # used for the CreateVideoItem
        self.folderItemRegex = ''  # used for the CreateFolderItem
        self.mediaUrlRegex = '<param name="src" value="([^"]+)" />'    # used for the UpdateVideoItem
        
        #==========================================================================
        # non standard items
    self.topDescription = ""
        
        return True
      
    #==============================================================================
    # ContextMenu functions
    #==============================================================================
    def onActionFromContextMenu(self):
        """
        Using of the ContextMenu. It is called
        """
        
        if not self.contextMenuEnabled:
            return None
        
        _position = self.getCurrentListPosition()
        _item = self.listItems[_position]
        
        if not _item.type == "video":
            logFile.warning("Cannot show contextmenu for folder")
            return None
        
        # build menuitems
        _menuItems = ("Download Item","Play using Mplayer","Play using DVDPlayer")
        _contextMenu = contextmenu.GUI(config.contextMenuSkin, config.rootDir, config.skinFolder, parent=self.getFocus(), menuItems = _menuItems)
        _selectedItem = _contextMenu.selectedItem
        del _contextMenu
        
        # handle function from items
        if ( _selectedItem is not None ):    
            logFile.debug("Selection from menu was %s", _selectedItem)
            if _selectedItem == 1:
                self.listItems[_position] = self.DownloadEpisode(_item)
            elif _selectedItem == 2:
                self.PlayVideoItem(_item)
            elif _selectedItem == 3:
                self.PlayVideoItem(_item,"dvdplayer")    
        return None
      
    #==============================================================================
    def CreateEpisodeItem(self, resultSet):
        """
        Accepts an arraylist of results. It returns an item.
        """
        logFile.debug('starting CreateEpisodeItem for %s', self.channelName)
        
        # dummy class
        _item = common.clistItem(resultSet[1], self.baseUrl + resultSet[0])
        _item.icon = self.folderIcon

        item.complete = True
        return _item
    
    #==============================================================================
    def PreProcessFolderList(self, data):
        """
        Accepts an data from the ProcessFolderList Methode, BEFORE the items are
        processed. Allows setting of parameters (like title etc). No return value!
        """
        
        _items = []
        #description
        _matches = common.DoRegexFindAll(' - ([^<]+)', data)
        
        #initialise description
        if len(self.folderHistory) == 1:
            self.progTitle = _matches[0]
            logFile.debug("ProgramTitle = %s", self.progTitle)
            self.folderHistory[0].description = self.progTitle
        
        # now remove everything above the sidebar HTML to prevent problems with new
        # links on the site
        data = common.DoRegexFindAll('<div class="right-col">(([\n\r]|.)*)', data)
        if len(data)>0:
            if len(data[0])>0:
                data = data[0][0]
        return (data, _items)
        
    
    #==============================================================================
    def CreateFolderItem(self, resultSet):
        """
        Accepts an arraylist of results. It returns an item.
        """
        logFile.debug('starting CreateFolderItem for %s', self.channelName)
        item = common.clistItem(resultSet[1], self.baseUrl + resultSet[0])
        item.description = "%s\n%s" % (self.folderHistory[-1].description, resultSet[1])
        item.icon = self.folderIcon
        item.thumb = self.noImage
        item.type = 'folder'
        
        item.complete = True
        return item
    
    #=============================================================================
    def CreateVideoItem(self, resultSet):
        """
        Accepts an arraylist of results. It returns an item.
        """
        logFile.debug('starting CreateVideoItem for %s', self.channelName)
        item = common.clistItem(resultSet[1], self.baseUrl + resultSet[0])
        item.description = "%s\n%s" % (self.folderHistory[-1].description, resultSet[1])
        item.icon = self.icon
        item.thumb = self.noImage
        item.type = 'video'
        
        # getting the URL is part of the PlayVideo
        item.complete = False
        return item
    
    #==============================================================================
    def DownloadEpisode(self, item):
        #check if data is already present and if video or folder
        if item.type == 'folder':
            logFile.warning("Cannot download a folder")
        elif item.type == 'video':
            if item.complete == False:
                logFile.info("Fetching MediaUrl for VideoItem")
                item = self.UpdateVideoItem(item)
            _destFilename = item.name + ".divx"
            if item.mediaurl=="":
                logFile.error("Cannot determine mediaurl")
                return item
            logFile.info("Going to download %s", _destFilename)
            _downLoader = uriHandler.Download(item.mediaurl, _destFilename)
            item.downloaded = True
            return item
        else:
            logFile.warning('Error determining folder/video type of selected item');
            
    def PlayVideoItem(self, item, player="dvdplayer"):
        """ NOT USER EDITABLE
        Accepts an item with or without MediaUrl and playback the item. If no
        MediaUrl is present, one will be retrieved.
        """
        logFile.info("Starting Video Playback using the %s", player)
        try:
            logFile.info('opening '+ item.mediaurl)
            if player=="dvdplayer":
                logFile.info("Playing using DVDPlayer")
                xbmc.Player(xbmc.PLAYER_CORE_DVDPLAYER).play(item.mediaurl)
            else:
                xbmc.Player().play(item.mediaurl)
        except:
            dialog = xbmcgui.Dialog()
            dialog.ok(config.appName,"Kan dit programma niet afspelen.")
            logFile.critical("Could not playback the url", exc_info=True)

Basje could you help me with this?


- Basje - 2008-01-28

sleepydutchboy Wrote:can't get it fixed

i'm this far but can't fix the no files error
Code:
#===============================================================================
# Import the default modules
#===============================================================================
import xbmc, xbmcgui
import sys, re, os
#===============================================================================
# Make global object available
#===============================================================================
import common
import config
import controls
import contextmenu
import chn_class

logFile = sys.modules['__main__'].globalLogFile
uriHandler = sys.modules['__main__'].globalUriHandler

#===============================================================================
# register the channels
#===============================================================================
if (sys.modules.has_key('progwindow')):
    register = sys.modules['progwindow']
elif (sys.modules.has_key('plugin')):
    register = sys.modules['plugin']
#register.channelButtonRegister.append(108)
register.channelRegister.append('chn_ps.Channel("uzg-channelwindow.xml", config.rootDir, config.skinFolder, channelCode="pron")')

#===============================================================================
# main Channel Class
#===============================================================================
class Channel(chn_class.Channel):
    """
    main class from which all channels inherit
    """
    
    #===============================================================================
    def InitialiseVariables(self):
        """
        Used for the initialisation of user defined parameters. All should be
        present, but can be adjusted
        """
        # call base function first to ensure all variables are there
        chn_class.Channel.InitialiseVariables(self)
        
        self.icon = "psthumb.png"
        self.iconLarge = "pslarge.png"
        self.noImage = "psimage.png"
        self.channelName = "Pronshare.com"
    self.channelDescription = "A collection of adult videos from Stage6"
        self.moduleName = "chn_ps.py"
        self.maxXotVersion = "3.0.0"
        
        self.mainListUri = "http://pronshare.com"
        self.baseUrl = "http://pronshare.com"
    self.onUpDownUpdateEnabled = False
        
        self.requiresLogon = False
        
        self.episodeItemRegex = '<a href="(/Search\.aspx\?tag=\w+-\w+-\w+-\w+-\w+)">([^>]+)</a>' # used for the ParseMainList
        self.videoItemRegex = '<a href="(/Watch\.aspx\?id=\w+-\w+-\w+-\w+-\w+)">([^>]+)</a>'   # used for the CreateVideoItem
        self.folderItemRegex = ''  # used for the CreateFolderItem
        self.mediaUrlRegex = '<param name="src" value="([^"]+)" />'    # used for the UpdateVideoItem
        
        #==========================================================================
        # non standard items
    self.topDescription = ""
        
        return True
      
    #==============================================================================
    # ContextMenu functions
    #==============================================================================
    def onActionFromContextMenu(self):
        """
        Using of the ContextMenu. It is called
        """
        
        if not self.contextMenuEnabled:
            return None
        
        _position = self.getCurrentListPosition()
        _item = self.listItems[_position]
        
        if not _item.type == "video":
            logFile.warning("Cannot show contextmenu for folder")
            return None
        
        # build menuitems
        _menuItems = ("Download Item","Play using Mplayer","Play using DVDPlayer")
        _contextMenu = contextmenu.GUI(config.contextMenuSkin, config.rootDir, config.skinFolder, parent=self.getFocus(), menuItems = _menuItems)
        _selectedItem = _contextMenu.selectedItem
        del _contextMenu
        
        # handle function from items
        if ( _selectedItem is not None ):    
            logFile.debug("Selection from menu was %s", _selectedItem)
            if _selectedItem == 1:
                self.listItems[_position] = self.DownloadEpisode(_item)
            elif _selectedItem == 2:
                self.PlayVideoItem(_item)
            elif _selectedItem == 3:
                self.PlayVideoItem(_item,"dvdplayer")    
        return None
      
    #==============================================================================
    def CreateEpisodeItem(self, resultSet):
        """
        Accepts an arraylist of results. It returns an item.
        """
        logFile.debug('starting CreateEpisodeItem for %s', self.channelName)
        
        # dummy class
        _item = common.clistItem(resultSet[1], self.baseUrl + resultSet[0])
        _item.icon = self.folderIcon

        item.complete = True
        return _item
    
    #==============================================================================
    def PreProcessFolderList(self, data):
        """
        Accepts an data from the ProcessFolderList Methode, BEFORE the items are
        processed. Allows setting of parameters (like title etc). No return value!
        """
        
        _items = []
        #description
        _matches = common.DoRegexFindAll(' - ([^<]+)', data)
        
        #initialise description
        if len(self.folderHistory) == 1:
            self.progTitle = _matches[0]
            logFile.debug("ProgramTitle = %s", self.progTitle)
            self.folderHistory[0].description = self.progTitle
        
        # now remove everything above the sidebar HTML to prevent problems with new
        # links on the site
        data = common.DoRegexFindAll('<div class="right-col">(([\n\r]|.)*)', data)
        if len(data)>0:
            if len(data[0])>0:
                data = data[0][0]
        return (data, _items)
        
    
    #==============================================================================
    def CreateFolderItem(self, resultSet):
        """
        Accepts an arraylist of results. It returns an item.
        """
        logFile.debug('starting CreateFolderItem for %s', self.channelName)
        item = common.clistItem(resultSet[1], self.baseUrl + resultSet[0])
        item.description = "%s\n%s" % (self.folderHistory[-1].description, resultSet[1])
        item.icon = self.folderIcon
        item.thumb = self.noImage
        item.type = 'folder'
        
        item.complete = True
        return item
    
    #=============================================================================
    def CreateVideoItem(self, resultSet):
        """
        Accepts an arraylist of results. It returns an item.
        """
        logFile.debug('starting CreateVideoItem for %s', self.channelName)
        item = common.clistItem(resultSet[1], self.baseUrl + resultSet[0])
        item.description = "%s\n%s" % (self.folderHistory[-1].description, resultSet[1])
        item.icon = self.icon
        item.thumb = self.noImage
        item.type = 'video'
        
        # getting the URL is part of the PlayVideo
        item.complete = False
        return item
    
    #==============================================================================
    def DownloadEpisode(self, item):
        #check if data is already present and if video or folder
        if item.type == 'folder':
            logFile.warning("Cannot download a folder")
        elif item.type == 'video':
            if item.complete == False:
                logFile.info("Fetching MediaUrl for VideoItem")
                item = self.UpdateVideoItem(item)
            _destFilename = item.name + ".divx"
            if item.mediaurl=="":
                logFile.error("Cannot determine mediaurl")
                return item
            logFile.info("Going to download %s", _destFilename)
            _downLoader = uriHandler.Download(item.mediaurl, _destFilename)
            item.downloaded = True
            return item
        else:
            logFile.warning('Error determining folder/video type of selected item');
            
    def PlayVideoItem(self, item, player="dvdplayer"):
        """ NOT USER EDITABLE
        Accepts an item with or without MediaUrl and playback the item. If no
        MediaUrl is present, one will be retrieved.
        """
        logFile.info("Starting Video Playback using the %s", player)
        try:
            logFile.info('opening '+ item.mediaurl)
            if player=="dvdplayer":
                logFile.info("Playing using DVDPlayer")
                xbmc.Player(xbmc.PLAYER_CORE_DVDPLAYER).play(item.mediaurl)
            else:
                xbmc.Player().play(item.mediaurl)
        except:
            dialog = xbmcgui.Dialog()
            dialog.ok(config.appName,"Kan dit programma niet afspelen.")
            logFile.critical("Could not playback the url", exc_info=True)

Basje could you help me with this?
Just have a look in the logfile of XOT first. It probably holds some info on where things go wrong. Post it on pastebin.com and we can discuss it.


- sleepydutchboy - 2008-01-30

Hello people

With some help I got the PS channel fixed.
you can download it at
http://sleepydutchboy.googlepages.com/home

Good luck every one

Ps. Got one version with and one without XOT.


- jochenz - 2008-01-30

THANKS, will try tomorrow...


- snaaps50 - 2008-09-30

will not work anymore, any updates avible?


- nuttypro69 - 2008-10-02

HI when i tryed to run it it tell me updated alvable then i click it goes back to scripts any help will be great.


- kemik - 2009-03-14

Not working for me either :-(