# -*- coding: utf-8 -*- # Modified by Blindspot - 2024.02.09. # Added new host: TEENXY ################################################### # LOCAL import ################################################### from Plugins.Extensions.IPTVPlayer.components.ihost import IHost, CDisplayListItem, RetHost, CUrlItem, CHostBase, CBaseHostClass import Plugins.Extensions.IPTVPlayer.libs.pCommon as pCommon from Plugins.Extensions.IPTVPlayer.libs import ph from Plugins.Extensions.IPTVPlayer.tools.iptvtypes import strwithmeta from Plugins.Extensions.IPTVPlayer.tools.iptvtools import printDBG, printExc, CSearchHistoryHelper, CSelOneLink, GetTmpDir, GetCookieDir, iptv_system, GetPluginDir, byteify, rm, GetLogoDir from Plugins.Extensions.IPTVPlayer.iptvdm.iptvdh import DMHelper from Plugins.Extensions.IPTVPlayer.libs.urlparser import urlparser from Plugins.Extensions.IPTVPlayer.tools.iptvfilehost import IPTVFileHost from Plugins.Extensions.IPTVPlayer.components.iptvplayerinit import TranslateTXT as _, SetIPTVPlayerLastHostError, GetIPTVSleep, GetIPTVNotify from Plugins.Extensions.IPTVPlayer.libs.youtube_dl.utils import clean_html from Plugins.Extensions.IPTVPlayer.libs.urlparserhelper import decorateUrl, getDirectM3U8Playlist, unpackJSPlayerParams, TEAMCASTPL_decryptPlayerParams, getF4MLinksWithMeta, getMPDLinksWithMeta from Plugins.Extensions.IPTVPlayer.iptvdm.ffmpegdownloader import FFMPEGDownloader ################################################### # FOREIGN import ################################################### import re, urllib, urllib2, base64, math, hashlib, random try: import simplejson except: import json as simplejson from Tools.Directories import resolveFilename, SCOPE_PLUGINS from Components.config import config, ConfigSelection, ConfigYesNo, ConfigText, ConfigInteger, getConfigListEntry, ConfigPIN, ConfigDirectory from time import sleep, time as time_time from datetime import datetime from os import remove as os_remove, path as os_path, system as os_system import urlparse ################################################### # E2 GUI COMMPONENTS ################################################### from Plugins.Extensions.IPTVPlayer.tools.e2ijs import js_execute from Screens.MessageBox import MessageBox from Plugins.Extensions.IPTVPlayer.components.asynccall import MainSessionWrapper ################################################### # Config options for HOST ################################################### config.plugins.iptvplayer.xxxwymagajpin = ConfigYesNo(default = True) config.plugins.iptvplayer.xxxlist = ConfigDirectory(default = "/hdd/") config.plugins.iptvplayer.xxxsortuj = ConfigYesNo(default = True) config.plugins.iptvplayer.xxxsearch = ConfigYesNo(default = False) config.plugins.iptvplayer.xxxsortmfc = ConfigYesNo(default = False) config.plugins.iptvplayer.xxxsortall = ConfigYesNo(default = True) config.plugins.iptvplayer.xhamstertag = ConfigYesNo(default = False) config.plugins.iptvplayer.chaturbate = ConfigSelection(default="", choices = [("",_("all")), ("female/",_("female")), ("couple/",_("couple")), ("trans/",_("trans")), ("male/",_("male"))]) config.plugins.iptvplayer.cam4 = ConfigSelection(default="0", choices = [("0",_("https")), ("1",_("rtmp"))]) config.plugins.iptvplayer.fotka = ConfigSelection(default="0", choices = [("0",_("https")), ("1",_("rtmp"))]) config.plugins.iptvplayer.xxxupdate = ConfigYesNo(default = True) config.plugins.iptvplayer.xxxzbiornik = ConfigYesNo(default = False) config.plugins.iptvplayer.xxx4k = ConfigYesNo(default = False) config.plugins.iptvplayer.yourporn = ConfigInteger(4, (1, 99)) def GetConfigList(): optionList = [] optionList.append( getConfigListEntry(_("Pin protection for plugin")+" :", config.plugins.iptvplayer.xxxwymagajpin ) ) optionList.append( getConfigListEntry(_("Path to xxxlist.txt :"), config.plugins.iptvplayer.xxxlist) ) optionList.append( getConfigListEntry(_("Sort xxxlist :"), config.plugins.iptvplayer.xxxsortuj) ) optionList.append( getConfigListEntry(_("Sort Myfreecams :"), config.plugins.iptvplayer.xxxsortmfc) ) optionList.append( getConfigListEntry(_("Global search :"), config.plugins.iptvplayer.xxxsearch) ) optionList.append( getConfigListEntry(_("Global sort :"), config.plugins.iptvplayer.xxxsortall) ) optionList.append( getConfigListEntry(_("CHATURBATE preferences :"), config.plugins.iptvplayer.chaturbate) ) #optionList.append( getConfigListEntry(_("Cam4 stream :"), config.plugins.iptvplayer.cam4) ) #optionList.append( getConfigListEntry(_("Fotka.pl stream :"), config.plugins.iptvplayer.fotka) ) optionList.append( getConfigListEntry(_("Add tags to XHAMSTER :"), config.plugins.iptvplayer.xhamstertag) ) optionList.append( getConfigListEntry(_("Show Profiles in ZBIORNIK MINI :"), config.plugins.iptvplayer.xxxzbiornik) ) optionList.append( getConfigListEntry(_("YOURPORN Server :"), config.plugins.iptvplayer.yourporn) ) optionList.append( getConfigListEntry(_("Show changelog :"), config.plugins.iptvplayer.xxxupdate) ) optionList.append( getConfigListEntry(_("Playback UHD :"), config.plugins.iptvplayer.xxx4k) ) return optionList ################################################### ################################################### # Title of HOST ################################################### def gettytul(): return 'XXX' class IPTVHost(IHost): LOGO_NAME = 'XXXlogo.png' PATH_TO_LOGO = resolveFilename(SCOPE_PLUGINS, 'Extensions/IPTVPlayer/icons/logos/' + LOGO_NAME ) def __init__(self): printDBG( "init begin" ) self.host = Host() self.prevIndex = [] self.currList = [] self.prevList = [] printDBG( "init end" ) def isProtectedByPinCode(self): return config.plugins.iptvplayer.xxxwymagajpin.value def getLogoPath(self): return RetHost(RetHost.OK, value = [self.PATH_TO_LOGO]) def getInitList(self): printDBG( "getInitList begin" ) self.prevIndex = [] self.currList = self.host.getInitList() self.host.setCurrList(self.currList) self.prevList = [] printDBG( "getInitList end" ) return RetHost(RetHost.OK, value = self.currList) def getListForItem(self, Index = 0, refresh = 0, selItem = None): printDBG( "getListForItem begin" ) self.prevIndex.append(Index) self.prevList.append(self.currList) self.currList = self.host.getListForItem(Index, refresh, selItem) printDBG( "getListForItem end" ) return RetHost(RetHost.OK, value = self.currList) def getPrevList(self, refresh = 0): printDBG( "getPrevList begin" ) if(len(self.prevList) > 0): self.prevIndex.pop() self.currList = self.prevList.pop() self.host.setCurrList(self.currList) printDBG( "getPrevList end OK" ) return RetHost(RetHost.OK, value = self.currList) else: printDBG( "getPrevList end ERROR" ) return RetHost(RetHost.ERROR, value = []) def getCurrentList(self, refresh = 0): printDBG( "getCurrentList begin" ) printDBG( "getCurrentList end" ) return RetHost(RetHost.OK, value = self.currList) def getLinksForVideo(self, Index = 0, item = None): return RetHost(RetHost.NOT_IMPLEMENTED, value = []) def getResolvedURL(self, url): printDBG( "getResolvedURL begin" ) if url != None and url != '': ret = self.host.getResolvedURL(url) if ret != None and ret != '': printDBG( "getResolvedURL ret: "+str(ret)) list = [] list.append(ret) printDBG( "getResolvedURL end OK" ) return RetHost(RetHost.OK, value = list) else: printDBG( "getResolvedURL end" ) return RetHost(RetHost.NOT_IMPLEMENTED, value = []) else: printDBG( "getResolvedURL end" ) return RetHost(RetHost.NOT_IMPLEMENTED, value = []) def getSearchResults(self, pattern, searchType = None): printDBG( "getSearchResults begin" ) printDBG( "getSearchResults pattern: " +pattern) self.prevIndex.append(0) self.prevList.append(self.currList) self.currList = self.host.getSearchResults(pattern, searchType) printDBG( "getSearchResults end" ) return RetHost(RetHost.OK, value = self.currList) ################################################### # Additional functions on class IPTVHost ################################################### class Host: XXXversion = "2024.02.09.1" XXXremote = "0.0.0.0" currList = [] MAIN_URL = '' SEARCH_proc = '' def __init__(self): printDBG( 'Host __init__ begin' ) self.cm = pCommon.common() self.up = urlparser() self.history = CSearchHistoryHelper('xxx') self.sessionEx = MainSessionWrapper() self.currList = [] printDBG( 'Host __init__ end' ) def setCurrList(self, list): printDBG( 'Host setCurrList begin' ) self.currList = list printDBG( 'Host setCurrList end' ) return def getInitList(self): printDBG( 'Host getInitList begin' ) _url = 'http://www.blindspot.nhely.hu/hosts/hostXXX.py' query_data = { 'url': _url, 'use_host': False, 'use_cookie': False, 'use_post': False, 'return_data': True } try: data = self.cm.getURLRequestData(query_data) #printDBG( 'Host init data: '+data ) r=self.cm.ph.getSearchGroups(data, '''XXXversion = ['"]([^"^']+?)['"]''', 1, True)[0] if r: printDBG( 'XXXremote = '+r ) self.XXXremote=r except: printDBG( 'Host init query error' ) self.currList = self.listsItems(-1, '', 'main-menu') printDBG( 'Host getInitList end' ) return self.currList def getListForItem(self, Index = 0, refresh = 0, selItem = None): printDBG( 'Host getListForItem begin' ) valTab = [] if len(self.currList[Index].urlItems) == 0: return valTab valTab = self.listsItems(Index, self.currList[Index].urlItems[0], self.currList[Index].urlSeparateRequest) self.currList = valTab printDBG( 'Host getListForItem end' ) return self.currList def getSearchResults(self, pattern, searchType = None): printDBG( "Host getSearchResults begin" ) printDBG( "Host getSearchResults pattern: " +pattern) valTab = [] valTab = self.listsItems(-1, pattern, 'SEARCH') self.currList = valTab printDBG( "Host getSearchResults end" ) return self.currList def _cleanHtmlStr(self, str): str = str.replace('<', ' <').replace('\n', ' ').replace('\r', ' ').replace('\t', ' ') return clean_html(str).strip() def FullUrl(self, url): if url.startswith('//'): url = 'http:' + url return url def getPage(self, baseUrl, cookie_domain, cloud_domain, params={}, post_data=None): COOKIEFILE = os_path.join(GetCookieDir(), cookie_domain) self.USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36' self.HEADER = {'User-Agent': self.USER_AGENT, 'Accept': 'text/html'} params['cloudflare_params'] = {'domain':cloud_domain, 'cookie_file':COOKIEFILE, 'User-Agent':self.USER_AGENT} return self.cm.getPageCFProtection(baseUrl, params, post_data) def getPage4k(self, baseUrl, cookie_domain, cloud_domain, params={}, post_data=None): COOKIEFILE = os_path.join(GetCookieDir(), cookie_domain) self.USER_AGENT = 'Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:21.0) Gecko/20100101 Firefox/21.0' def _getFullUrl(url): if self.cm.isValidUrl(url): return url else: return urlparse.urljoin(baseUrl, url) if params == {}: params = dict(self.defaultParams) params['cookie_items'] = {'xxx':'ok'} params['cloudflare_params'] = {'domain':cloud_domain, 'cookie_file':COOKIEFILE, 'User-Agent':self.USER_AGENT, 'full_url_handle':_getFullUrl} return self.cm.getPageCFProtection(baseUrl, params, post_data) def _getPage(self, url, addParams = {}, post_data = None): try: import httplib def patch_http_response_read(func): def inner(*args): try: return func(*args) except httplib.IncompleteRead, e: return e.partial return inner prev_read = httplib.HTTPResponse.read httplib.HTTPResponse.read = patch_http_response_read(httplib.HTTPResponse.read) except Exception: printExc() sts, data = self.cm.getPage(url, addParams, post_data) try: httplib.HTTPResponse.read = prev_read except Exception: printExc() return sts, data def get_Page(self, baseUrl, addParams={}, post_data=None): if addParams == {}: addParams = dict(self.defaultParams) return self.cm.getPage(baseUrl, addParams, post_data) def listsItems(self, Index, url, name = ''): printDBG( 'Host listsItems begin' ) printDBG( 'Host listsItems url: '+url ) valTab = [] self.format4k = config.plugins.iptvplayer.xxx4k.value if name == 'main-menu': printDBG( 'Host listsItems begin name='+name ) valTab.append(CDisplayListItem(_('- From February 10, 2024, only our supporters can access the updates of this host. -'), 'Paypal: echosmart76@gmail.com Thank You!', CDisplayListItem.TYPE_ARTICLE, [''], '', 'https://www.thisisaustralia.com/wp-content/uploads/2019/01/red-sign-hi.png', None)) if self.XXXversion <> self.XXXremote and self.XXXremote <> "0.0.0.0": valTab.append(CDisplayListItem('---UPDATE---','UPDATE MENU', CDisplayListItem.TYPE_CATEGORY, [''], 'UPDATE', 'https://cdn-icons-png.flaticon.com/512/5278/5278658.png', None)) valTab.append(CDisplayListItem('XHAMSTER', 'xhamster.com', CDisplayListItem.TYPE_CATEGORY, ['https://xhamster.com/categories'], 'xhamster','https://1000logos.net/wp-content/uploads/2018/12/xHamster-Logo-768x432.png', None)) valTab.append(CDisplayListItem('HELLMOMS', 'https://hellmoms.com', CDisplayListItem.TYPE_CATEGORY, ['https://hellmoms.com'], 'HELLMOMS','https://hellmoms.com/highres.png', None)) valTab.append(CDisplayListItem('MUSTJAV', 'https://mustjav.com', CDisplayListItem.TYPE_CATEGORY, ['https://mustjav.com/'], 'MUSTJAV','https://mustjav.com/upload/site/20230309-1/d037a65018ea2ccfcca5e0feeb8b29d4.png', None)) valTab.append(CDisplayListItem('FULLXCINEMA', 'https://fullxcinema.com', CDisplayListItem.TYPE_CATEGORY, ['https://fullxcinema.com'], 'FULLXCINEMA','https://res.9appsinstall.com/group1/M00/AD/6B/poYBAFeQnbaAbeoMAAB4mtH3O8A941.png', None)) valTab.append(CDisplayListItem('TEENXY', 'https://teenxy.com', CDisplayListItem.TYPE_CATEGORY, ['https://teenxy.com/categories/'], 'TEENXY','https://10611-28.s.cdn13.com/static/favicon/android-chrome-192x192.png', None)) valTab.append(CDisplayListItem('BOUNDHUB', 'https://www.boundhub.com', CDisplayListItem.TYPE_CATEGORY, ['https://www.boundhub.com/categories/'], 'BOUNDHUB','https://findbestporno.com/public/uploads/image/2021/9/BoundHub.jpg', None)) valTab.append(CDisplayListItem('SHAMELESS', 'https://www.shameless.com/', CDisplayListItem.TYPE_CATEGORY, ['https://www.shameless.com/categories/'], 'SHAMELESS','https://onepornlist.com/img/screenshots/shameless.jpg', None)) valTab.append(CDisplayListItem('XXXBULE', 'https://www.xxxbule.com/', CDisplayListItem.TYPE_CATEGORY, ['https://www.xxxbule.com/streams/'], 'XXXBULE','https://ph-static.com/xxxbule/css/logo.png', None)) valTab.append(CDisplayListItem('PORNDIG', 'https://www.porndig.com', CDisplayListItem.TYPE_CATEGORY, ['https://www.porndig.com'], 'PORNDIG','https://assets.porndig.com/assets/porndig/img/logo_dark/logo_desktop_1.png', None)) valTab.append(CDisplayListItem('HOME MOVIES TUBE', 'http://www.homemoviestube.com', CDisplayListItem.TYPE_CATEGORY, ['http://www.homemoviestube.com/channels/'],'HomeMoviesTube', 'http://www.homemoviestube.com/images/logo.png', None)) valTab.append(CDisplayListItem('ZBIORNIK MINI', 'https://mini.zbiornik.com', CDisplayListItem.TYPE_CATEGORY, ['https://mini.zbiornik.com/filmy'],'ZBIORNIKMINI', 'https://niebezpiecznik.pl/wp-content/uploads/2016/04/Zbiornik.jpg', None)) valTab.append(CDisplayListItem('HCLIPS', 'http://www.hclips.com', CDisplayListItem.TYPE_CATEGORY, ['http://www.hclips.com/categories/'],'hclips', 'https://i.pinimg.com/474x/d3/16/78/d31678f3c99564740ab5b097e7792927.jpg', None)) valTab.append(CDisplayListItem('4TUBE', 'www.4tube.com', CDisplayListItem.TYPE_CATEGORY, ['https://www.4tube.com/tags'], '4TUBE', 'https://www.4tube.com/assets/img/layout/4tube-logo-1f503fd81c.png', None)) valTab.append(CDisplayListItem('EPORNER', 'www.eporner.com', CDisplayListItem.TYPE_CATEGORY, ['https://www.eporner.com/cats/'], 'eporner', 'http://static.eporner.com/new/logo.png', None)) valTab.append(CDisplayListItem('TUBE8', 'www.tube8.com', CDisplayListItem.TYPE_CATEGORY, ['http://www.tube8.com/categories.html'], 'tube8', 'http://cdn1.static.tube8.phncdn.com/images/t8logo.png', None)) valTab.append(CDisplayListItem('YOUPORN', 'wwww.youporn.com', CDisplayListItem.TYPE_CATEGORY, ['https://www.youporn.com/categories/'],'youporn', 'https://fs.ypncdn.com/cb/bundles/youpornwebfront/images/l_youporn_black.png?v=9b34af679da9f8f8279fb875c7bcea555a784ec3', None)) valTab.append(CDisplayListItem('PORNHUB', 'www.pornhub.com', CDisplayListItem.TYPE_CATEGORY, ['https://www.pornhub.com/categories'], 'pornhub', 'https://ei.phncdn.com/pics/logos/8831.png', None)) valTab.append(CDisplayListItem('HDPORN', 'www.hdporn.net', CDisplayListItem.TYPE_CATEGORY, ['http://www.hdporn.net'], 'hdporn', 'http://www.hdporn.com/gfx/logo.jpg', None)) valTab.append(CDisplayListItem('REDTUBE', 'https://www.redtube.com', CDisplayListItem.TYPE_CATEGORY, ['https://www.redtube.com/categories'], 'redtube', 'https://pornox.hu/contents/content_sources/15/s1_redtube.jpg', None)) valTab.append(CDisplayListItem('HENTAIGASM', 'hentaigasm.com', CDisplayListItem.TYPE_CATEGORY, ['http://hentaigasm.com'], 'hentaigasm','http://hentaigasm.com/wp-content/themes/detube/images/logo.png', None)) valTab.append(CDisplayListItem('XVIDEOS', 'www.xvideos.com', CDisplayListItem.TYPE_CATEGORY, ['http://www.xvideos.com'], 'xvideos', 'http://emblemsbf.com/img/31442.jpg', None)) valTab.append(CDisplayListItem('XNXX', 'www.xnxx.com', CDisplayListItem.TYPE_CATEGORY, ['http://www.xnxx.com'], 'xnxx', 'http://www.naughtyalysha.com/tgp/xnxx/xnxx-porn-recip.jpg', None)) valTab.append(CDisplayListItem('PORNRABBIT', 'www.pornrabbit.com', CDisplayListItem.TYPE_CATEGORY, ['https://www.pornrabbit.com/'],'pornrabbit','https://www.ismytube.com/media/channels/24.png', None)) valTab.append(CDisplayListItem('PORNWHITE', 'https://www.pornwhite.com', CDisplayListItem.TYPE_CATEGORY, ['https://www.pornwhite.com/categories/'],'PORNWHITE','https://cdni.pornwhite.com/images_new/og-logo.png', None)) valTab.append(CDisplayListItem('AH-ME', 'www.ah-me.com', CDisplayListItem.TYPE_CATEGORY, ['https://www.ah-me.com/tags/'],'AH-ME','https://www.ah-me.com/static/images/am-logo-m.png', None)) valTab.append(CDisplayListItem('AMATEURPORN', 'https://www.amateurporn.me', CDisplayListItem.TYPE_CATEGORY, ['https://www.amateurporn.me/categories/'],'AMATEURPORN', 'https://www.amateurporn.me/images/logo.png', None)) valTab.append(CDisplayListItem('YOUJIZZ', 'http://www.youjizz.com', CDisplayListItem.TYPE_CATEGORY, ['http://www.youjizz.com/categories'],'YOUJIZZ', 'https://cdne-static.cdn1122.com/app/1/images/youjizz-default-logo-4.png', None)) valTab.append(CDisplayListItem('PORNHAT', 'https://www.pornhat.com/', CDisplayListItem.TYPE_CATEGORY, ['https://www.pornhat.com/'],'PORNHAT', 'https://trademarks.justia.com/media/og_image.php?serial=90479360', None)) valTab.append(CDisplayListItem('DRTUBER', 'http://www.drtuber.com', CDisplayListItem.TYPE_CATEGORY, ['http://www.drtuber.com/categories'],'DRTUBER', 'http://static.drtuber.com/templates/frontend/mobile/images/logo.png', None)) valTab.append(CDisplayListItem('TNAFLIX', 'https://www.tnaflix.com', CDisplayListItem.TYPE_CATEGORY, ['https://www.tnaflix.com/categories'],'TNAFLIX', 'https://pbs.twimg.com/profile_images/1109542593/logo_400x400.png', None)) valTab.append(CDisplayListItem('MEGATUBE', 'https://www.megatube.xxx', CDisplayListItem.TYPE_CATEGORY, ['https://www.megatube.xxx/categories'],'MEGATUBE', 'http://www.blindspot.nhely.hu/Thumbnails/megatube.png', None)) valTab.append(CDisplayListItem('RUS.PORN', 'https://rusvidos.tv', CDisplayListItem.TYPE_CATEGORY, ['http://rus.porn/'],'RUSPORN', 'http://mixporn24.com/images/logo.png', None)) valTab.append(CDisplayListItem('PORNTREX', 'http://www.porntrex.com', CDisplayListItem.TYPE_CATEGORY, ['https://www.porntrex.com/categories/'],'PORNTREX', 'https://www.porntrex.com/images/logo.png', None)) valTab.append(CDisplayListItem('GLAVMATURES', 'https://glavmatures.com', CDisplayListItem.TYPE_CATEGORY, ['https://glavmatures.com/tags/'],'GLAVMATURES', 'https://momporn.xxx/contents/content_sources/9/s2_908.jpg', None)) valTab.append(CDisplayListItem('WATCHMYGF', 'https://www.watchmygf.me', CDisplayListItem.TYPE_CATEGORY, ['https://www.watchmygf.me/categories/'],'WATCHMYGF', 'http://www.dinoreviews.com/img/watchmygf/watchmygf.jpg', None)) valTab.append(CDisplayListItem('FILMYPORNO', 'http://www.filmyporno.tv', CDisplayListItem.TYPE_CATEGORY, ['http://www.filmyporno.tv/channels/'],'FILMYPORNO', 'http://www.filmyporno.tv/templates/default_tube2016/images/logo.png', None)) valTab.append(CDisplayListItem('WANKOZ', 'https://www.wankoz.com', CDisplayListItem.TYPE_CATEGORY, ['https://www.wankoz.com/categories/'],'WANKOZ', 'https://www.wankoz.com/images_new/no_avatar_user_big.png', None)) valTab.append(CDisplayListItem('PORNMAKI', 'https://pornmaki.com', CDisplayListItem.TYPE_CATEGORY, ['https://pornmaki.com/channels/'],'PORNMAKI', 'https://images.pornmaki.com/resources/pornmaki.com/rwd_beta/default/images/logo.png', None)) valTab.append(CDisplayListItem('THUMBZILLA', 'http://www.thumbzilla.com', CDisplayListItem.TYPE_CATEGORY, ['http://www.thumbzilla.com/'],'THUMBZILLA', 'https://ei.phncdn.com/www-static/thumbzilla/images/pc/logo.png?cache=2022042804', None)) valTab.append(CDisplayListItem('YUVUTU', 'http://www.yuvutu.com', CDisplayListItem.TYPE_CATEGORY, ['http://www.yuvutu.com/categories/'],'YUVUTU', 'http://www.yuvutu.com/themes/yuvutu_v2/images/yuvutu_logo.png', None)) valTab.append(CDisplayListItem('PORNICOM', 'http://pornicom.com', CDisplayListItem.TYPE_CATEGORY, ['http://pornicom.com/categories/'],'PORNICOM', 'http://pornicom.com/images/logo.png', None)) valTab.append(CDisplayListItem('SEXVID', 'https://www.sexvid.xxx', CDisplayListItem.TYPE_CATEGORY, ['https://www.sexvid.xxx/c/'],'SEXVID', 'http://www.blindspot.nhely.hu/Thumbnails/sexvid.png', None)) valTab.append(CDisplayListItem('PERFECTGIRLS', 'https://www.perfectgirls.xxx/', CDisplayListItem.TYPE_CATEGORY, ['https://www.perfectgirls.xxx/'],'PERFECTGIRLS', 'https://m.perfectgirls.net/images/no-sprite/logo.png', None)) valTab.append(CDisplayListItem('ZIPORN', 'https://ziporn.com/', CDisplayListItem.TYPE_CATEGORY, ['https://ziporn.com/categories/'],'ZIPORN', 'https://ziporn.com/wp-content/uploads/2020/03/zipornlogogood.png', None)) valTab.append(CDisplayListItem('TUBEPORNCLASSIC', 'http://tubepornclassic.com/', CDisplayListItem.TYPE_CATEGORY, ['http://tubepornclassic.com/categories/'],'TUBEPORNCLASSIC', 'https://tubepornclassic.com/static/images/favicons/android-icon-192x192.png', None)) valTab.append(CDisplayListItem('KOLOPORNO', 'https://www.koloporno.com/', CDisplayListItem.TYPE_CATEGORY, ['https://www.koloporno.com/kategoriach/'],'KOLOPORNO', 'https://pbs.twimg.com/profile_images/638608521072934912/sqy78GQm.png', None)) valTab.append(CDisplayListItem('MOTHERLESS', 'https://motherless.com', CDisplayListItem.TYPE_CATEGORY, ['https://motherless.com'],'MOTHERLESS', 'https://motherless.com/images/logo.jpg', None)) valTab.append(CDisplayListItem('PLAYVIDS', 'https://www.playvids.com/', CDisplayListItem.TYPE_CATEGORY, ['https://www.playvids.com/categories&jsclick=1'],'PLAYVIDS', 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS9PrWdcYR2t0pJjXg_Wi02ZyiP6E1PJ0mmilizp745_fazgzxu&s', None)) valTab.append(CDisplayListItem('FUX', 'http://www.fux.com', CDisplayListItem.TYPE_CATEGORY, ['https://www.fux.com'],'fux', 'http://asian-porn-clips.com/files/screens/608c37e40bf59.jpg', None)) valTab.append(CDisplayListItem('PORNTUBE', 'http://www.porntube.com', CDisplayListItem.TYPE_CATEGORY, ['https://www.porntube.com'],'PORNTUBE', 'https://backend.videosolo.org/uploads/images/16384328154740135-porntube.jpg', None)) valTab.append(CDisplayListItem('PORNERBROS', 'http://www.pornerbros.com', CDisplayListItem.TYPE_CATEGORY, ['https://www.pornerbros.com'],'pornerbros', 'https://cdn-assets.pornerbros.com/PornerBros.png', None)) valTab.append(CDisplayListItem('MOVIEFAP', 'https://www.moviefap.com', CDisplayListItem.TYPE_CATEGORY, ['https://www.moviefap.com/browse/'],'MOVIEFAP', 'https://www.moviefap.com/images/logo.gif', None)) valTab.append(CDisplayListItem('YOURPORN.SEXY', 'https://sxyprn.com', CDisplayListItem.TYPE_CATEGORY, ['https://sxyprn.com'],'yourporn', 'http://cdn.itsyourporn.com/assets/images/logo.jpg', None)) valTab.append(CDisplayListItem('FREEOMOVIE', 'https://www.freeomovie.to', CDisplayListItem.TYPE_CATEGORY, ['https://www.freeomovie.to'],'freeomovie', 'https://www.freeomovie.to/wp-content/uploads/2013/04/logo.png', None)) valTab.append(CDisplayListItem('KATESTUBE', 'http://www.katestube.com', CDisplayListItem.TYPE_CATEGORY, ['https://www.katestube.com/categories/'],'KATESTUBE', 'https://www.katestube.com/images/logo.png', None)) valTab.append(CDisplayListItem('PORNONE', 'https://pornone.com', CDisplayListItem.TYPE_CATEGORY, ['https://pornone.com/categories/'],'pornone', 'https://cdn.dribbble.com/users/1461209/screenshots/14183589/pornone_dribble.png?compress=1&resize=400x300', None)) valTab.append(CDisplayListItem('ZBPORN', 'https://zbporn.com', CDisplayListItem.TYPE_CATEGORY, ['https://zbporn.com/categories/'],'zbporn', 'http://www.blindspot.nhely.hu/Thumbnails/zbporn.png', None)) valTab.append(CDisplayListItem('PORNOXO', 'https://www.pornoxo.com', CDisplayListItem.TYPE_CATEGORY, ['https://www.pornoxo.com'],'pornoxo', 'http://www.web-tv-sexe.fr/logo/pornoxo.jpg', None)) valTab.append(CDisplayListItem('PORNID', 'https://www.pornid.xxx', CDisplayListItem.TYPE_CATEGORY, ['https://www.pornid.xxx/categories/'],'PORNID', 'https://cdn.pornid.xxx/img/logos/logo.png', None)) valTab.append(CDisplayListItem('XBABE', 'https://xbabe.com', CDisplayListItem.TYPE_CATEGORY, ['https://xbabe.com/categories/'],'xbabe', 'https://i.pinimg.com/280x280_RS/18/0f/69/180f69f035f1e949ec8cccd4ea9af29c.jpg', None)) valTab.append(CDisplayListItem('TXXX', 'http://www.txxx.com', CDisplayListItem.TYPE_CATEGORY, ['http://www.txxx.com/categories/'],'txxx', 'https://txxx.asia/wr7fe/movie/32/159_cum-twice.jpg', None)) valTab.append(CDisplayListItem('SUNPORNO', 'https://www.sunporno.com', CDisplayListItem.TYPE_CATEGORY, ['https://www.sunporno.com/channels/'],'sunporno', 'https://sunstatic.fuckandcdn.com/sunstatic/v31/common/sunporno/img/logo_top.png', None)) valTab.append(CDisplayListItem('SEXU', 'http://sexu.com', CDisplayListItem.TYPE_CATEGORY, ['http://sexu.com/'],'sexu', 'https://images-platform.99static.com/-xYD7Tguk14AOVySxG_bMkoJodU=/500x500/top/smart/99designs-contests-attachments/41/41945/attachment_41945457', None)) valTab.append(CDisplayListItem('TUBEWOLF', 'http://www.tubewolf.com', CDisplayListItem.TYPE_CATEGORY, ['https://www.tubewolf.com'],'tubewolf', 'http://images.tubewolf.com/logo.png', None)) valTab.append(CDisplayListItem('ALPHAPORNO', 'https://www.alphaporno.com', CDisplayListItem.TYPE_CATEGORY, ['https://www.alphaporno.com/categories/'],'ALPHAPORNO', 'http://images.alphaporno.com/logo.png', None)) valTab.append(CDisplayListItem('ZEDPORN', 'http://zedporn.com', CDisplayListItem.TYPE_CATEGORY, ['https://zedporn.com'],'tubewolf', 'http://images.zedporn.com/new-logo.png', None)) valTab.append(CDisplayListItem('CROCOTUBE', 'https://crocotube.com/', CDisplayListItem.TYPE_CATEGORY, ['https://crocotube.com/categories/'],'CROCOTUBE', 'http://crocotube.com/images/logo.png', None)) valTab.append(CDisplayListItem('ASHEMALETUBE', 'https://www.ashemaletube.com/', CDisplayListItem.TYPE_CATEGORY, ['https://www.ashemaletube.com/'],'ASHEMALETUBE', 'https://adminex.ashemaletube.com/images/logo/ast.png', None)) valTab.append(CDisplayListItem('MOMPORNONLY', 'https://mompornonly.com', CDisplayListItem.TYPE_CATEGORY, ['https://mompornonly.com/categories/'],'MOMPORNONLY', 'https://mompornonly.com/wp-content/themes/mompornonly/assets/img/logo.png', None)) valTab.append(CDisplayListItem('LECOINPORNO', 'https://lecoinporno.fr/', CDisplayListItem.TYPE_CATEGORY, ['https://lecoinporno.fr/categories/'],'LECOINPORNO', 'https://lecoinporno.fr/wp-content/themes/lecoinporno/assets/img/logo.png', None)) valTab.append(CDisplayListItem('STREAMPORN', 'https://streamporn.pw', CDisplayListItem.TYPE_CATEGORY, ['https://streamporn.pw'],'streamporn', 'https://static-ca-cdn.eporner.com/gallery/5K/Oo/wxT1T22Oo5K/501600-beautiful-island-in-the-stream.jpg', None)) valTab.append(CDisplayListItem('PORNVIDEOS 4K', 'http://pornvideos4k.com/en/', CDisplayListItem.TYPE_CATEGORY, ['http://pornvideos4k.com/en/'],'pornvideos4k', 'https://www.pornvideos4k.net/img/logo_desktop_v4@2x.png', None)) valTab.append(CDisplayListItem('PORNBURST', 'https://www.pornburst.xxx/', CDisplayListItem.TYPE_CATEGORY, ['https://www.pornburst.xxx/categories/'],'PORNBURST', 'https://cdn.fleshbot.com/data/images/straight/006/003/662/pornburst_web.png?1409241449', None)) valTab.append(CDisplayListItem('RULEPORN', 'https://ruleporn.com', CDisplayListItem.TYPE_CATEGORY, ['https://ruleporn.com/categories/'],'ruleporn', 'https://ruleporn.com/templates/ruleporn/images/logo.png?v=1', None)) valTab.append(CDisplayListItem('PANDAMOVIE', 'https://pandamovie.info', CDisplayListItem.TYPE_CATEGORY, ['https://pandamovie.info'],'123PANDAMOVIE', 'https://pandamovie.info/wp-content/uploads/2023/04/pandamovie-new-clolor.png', None)) valTab.append(CDisplayListItem('DANSMOVIES', 'http://dansmovies.com', CDisplayListItem.TYPE_CATEGORY, ['http://dansmovies.com/'],'DANSMOVIES', 'http://cdn1.photos.dansmovies.com/templates/dansmovies/images/logo.png', None)) valTab.append(CDisplayListItem('PORNREWIND', 'https://www.pornrewind.com', CDisplayListItem.TYPE_CATEGORY, ['https://www.pornrewind.com/categories/'],'PORNREWIND', 'https://www.pornrewind.com/static/images/logo-light-pink.png', None)) valTab.append(CDisplayListItem('BALKANJIZZ', 'https://www.balkanjizz.com/', CDisplayListItem.TYPE_CATEGORY, ['https://www.balkanjizz.com/kategorije-pornica'],'BALKANJIZZ', 'https://www.balkanjizz.com/images/logo/logo.png', None)) valTab.append(CDisplayListItem('PORNORUSSIA', 'https://pornorussia.mobi', CDisplayListItem.TYPE_CATEGORY, ['https://pornorussia.mobi'],'PORNORUSSIA', 'https://pornorussia.mobi/images/logo.png', None)) valTab.append(CDisplayListItem('LETMEJERK', 'https://www.letmejerk.com', CDisplayListItem.TYPE_CATEGORY, ['https://www.letmejerk.com/porn-categories'],'LETMEJERK', 'https://letmejerksite.com/icons/android-chrome-512x512.png', None)) valTab.append(CDisplayListItem('SEXTUBEFUN', 'https://sextubefun.com/', CDisplayListItem.TYPE_CATEGORY, ['https://sextubefun.com/channels/'],'SEXTUBEFUN', 'https://sextubefun.com/templates/default_tube2019/images/logo.png', None)) valTab.append(CDisplayListItem('3MOVS', 'https://www.3movs.com', CDisplayListItem.TYPE_CATEGORY, ['https://www.3movs.com/categories/'],'3MOVS', 'https://1000logos.net/wp-content/uploads/2019/02/3Movs-Logo-500x281.png', None)) valTab.append(CDisplayListItem('ANALDIN', 'https://www.analdin.com', CDisplayListItem.TYPE_CATEGORY, ['https://www.analdin.com/categories/'],'ANALDIN', 'https://www.analdin.com/images/logo-retina.png', None)) valTab.append(CDisplayListItem('NETFLIXPORNO', 'https://netflixporno.net/', CDisplayListItem.TYPE_CATEGORY, ['https://netflixporno.net/'],'NETFLIXPORNO', 'https://netflixporno.net/adult/wp-content/uploads/2021/04/netflixporno-1.png', None)) valTab.append(CDisplayListItem('FAPSET', 'https://fapset.com', CDisplayListItem.TYPE_CATEGORY, ['https://fapset.com'],'fapset', 'https://fapset.com/templates/Default/images/logo.png', None)) valTab.append(CDisplayListItem('PORNDROIDS', 'https://www.porndroids.com', CDisplayListItem.TYPE_CATEGORY, ['https://www.porndroids.com/categories/'],'PORNDROIDS', 'https://tse4.mm.bing.net/th?id=OIP.rb8yENwb5VouvKNGjlk9CwHaFx&pid=15.1', None)) valTab.append(CDisplayListItem('LOVE HOME PORN', 'https://lovehomeporn.com', CDisplayListItem.TYPE_CATEGORY, ['https://lovehomeporn.com/videos'],'lovehomeporn', 'https://cdn.static.lovehomeporn.com/templates/frontend/purple/new_images/logo-helloween.png', None)) valTab.append(CDisplayListItem('HELLPORNO', 'https://hellporno.com/', CDisplayListItem.TYPE_CATEGORY, ['https://hellporno.com/categories/'],'HELLPORNO', 'https://hellporno.com/highres.png', None)) valTab.append(CDisplayListItem('EROPROFILE', 'http://www.eroprofile.com', CDisplayListItem.TYPE_CATEGORY, ['http://www.eroprofile.com'],'EROPROFILE', 'https://static.eroprofile.com/img/v1/header_logo.png', None)) valTab.append(CDisplayListItem('ABSOLUPORN', 'http://www.absoluporn.com', CDisplayListItem.TYPE_CATEGORY, ['http://www.absoluporn.com/en/lettre-tag.html'],'absoluporn', 'http://www.absoluporn.com/image/deco/logo.gif', None)) valTab.append(CDisplayListItem('PORNGO', 'https://porngo.com', CDisplayListItem.TYPE_CATEGORY, ['https://porngo.com/categories/'],'porngo', 'https://cdn6.f-cdn.com/contestentries/1524870/34599086/5d1936269c415_thumb900.jpg', None)) valTab.append(CDisplayListItem('ANYBUNNY', 'http://anybunny.com', CDisplayListItem.TYPE_CATEGORY, ['http://anybunny.com'],'anybunny', 'http://anybunny.com/images/logo.png', None)) valTab.append(CDisplayListItem('XCAFE', 'https://xcafe.com/', CDisplayListItem.TYPE_CATEGORY, ['https://xcafe.com/categories/'],'XCAFE', 'https://xcafe.com/images/logo.png', None)) valTab.append(CDisplayListItem('HQPORNER', 'https://hqporner.com', CDisplayListItem.TYPE_CATEGORY, ['https://hqporner.com/categories'],'hqporner', 'https://www.filmyporno.blog/wp-content/uploads/2018/12/channel-hqporner.jpg', None)) valTab.append(CDisplayListItem('SPANKBANG', 'https://spankbang.com', CDisplayListItem.TYPE_CATEGORY, ['https://spankbang.com/categories'],'spankbang', 'https://assets.sb-cd.com/static/desktop/Images/logo_v5@2x.png', None)) valTab.append(CDisplayListItem('CUMLOUDER', 'https://www.cumlouder.com', CDisplayListItem.TYPE_CATEGORY, ['https://www.cumlouder.com/categories'],'cumlouder', 'https://1000logos.net/wp-content/uploads/2019/02/CumLouder-Logo.png', None)) valTab.append(CDisplayListItem('PORN00', 'http://www.porn00.org', CDisplayListItem.TYPE_CATEGORY, ['http://www.porn00.org/categories/'],'porn00', 'https://www.porn00.org/static/images/logo.png', None)) valTab.append(CDisplayListItem('WATCHPORNX', 'https://watchpornx.com/', CDisplayListItem.TYPE_CATEGORY, ['https://watchpornx.com/'],'watchpornx', 'https://watchpornfree.info/adult/wp-content/uploads/2021/04/watchpornfreews-1-e1525276673535.png', None)) valTab.append(CDisplayListItem('PORN300', 'https://www.porn300.com', CDisplayListItem.TYPE_CATEGORY, ['https://www.porn300.com/categories/'],'PORN300', 'https://www.topporntubesites.com/img/0/8/c/f/d/6/Porn300-Logo.png', None)) valTab.append(CDisplayListItem('PORNHEED', 'https://www.pornheed.com', CDisplayListItem.TYPE_CATEGORY, ['https://www.pornheed.com/categories/recently-added/1'],'PORNHEED', 'https://i.pornheed.com/image/1.jpg', None)) valTab.append(CDisplayListItem('JIZZBUNKER', 'https://jizzbunker.com', CDisplayListItem.TYPE_CATEGORY, ['https://jizzbunker.com/channels/alphabetically'],'JIZZBUNKER', 'https://s0.cdn3x.com/jb/i/apple-touch-ipad-retina.png', None)) valTab.append(CDisplayListItem('ANYPORN', 'https://anyporn.com', CDisplayListItem.TYPE_CATEGORY, ['https://anyporn.com/categories/'],'ANYPORN', 'https://anyporn.com/images/logo.png', None)) valTab.append(CDisplayListItem('ANON-V', 'https://anon-v.com', CDisplayListItem.TYPE_CATEGORY, ['https://anon-v.com/categories/'],'ANON-V', 'https://anon-v.com/logo350.png', None)) valTab.append(CDisplayListItem('BRAVOPORN', 'https://www.bravoporn.com', CDisplayListItem.TYPE_CATEGORY, ['https://www.bravoporn.com/c/'],'bravoporn', 'https://www.bravoporn.com/v/images/logo.png', None)) valTab.append(CDisplayListItem('BRAVOTEENS', 'https://www.bravoteens.com/', CDisplayListItem.TYPE_CATEGORY, ['https://www.bravoteens.com//cats/'],'bravoteens', 'https://www.bravoteens.com/tb/images/logo.png', None)) valTab.append(CDisplayListItem('SLEAZYNEASY', 'https://www.sleazyneasy.com', CDisplayListItem.TYPE_CATEGORY, ['https://www.sleazyneasy.com/categories/'],'sleazyneasy', 'https://cdni.sleazyneasy.com/images/favicon-152.png', None)) valTab.append(CDisplayListItem('HOMEPORNKING', 'https://www.homepornking.com', CDisplayListItem.TYPE_CATEGORY, ['https://www.homepornking.com/categories/'],'homepornking', 'http://www.blindspot.nhely.hu/Thumbnails/homepornking.png', None)) valTab.append(CDisplayListItem('FULLPORNER', 'https://fullporner.com', CDisplayListItem.TYPE_CATEGORY, ['https://fullporner.com/category'],'FULLPORNER', 'https://static.xiaoshenke.net/img/logo.png?v=2', None)) valTab.append(CDisplayListItem('FREEONES', 'https://www.freeones.com/', CDisplayListItem.TYPE_CATEGORY, [ 'https://www.freeones.com/categories?l=96&f%5Bstatus%5D%5B0%5D=active&p=1'],'freeones', 'https://assets.freeones.com/static-assets/freeones/favicons/apple-touch-icon.png', None)) valTab.append(CDisplayListItem('XCUM', 'https://xcum.com', CDisplayListItem.TYPE_CATEGORY, ['https://xcum.com'],'XCUM', 'https://xcum.com/apple-touch-icon-152x152.png', None)) valTab.append(CDisplayListItem('FAMILYPORN', 'https://familyporn.tv', CDisplayListItem.TYPE_CATEGORY, ['https://familyporn.tv/categories/'],'familyporn', 'https://familyporn.tv/images/logo-alt.png', None)) valTab.append(CDisplayListItem('BITPORNO', 'https://bitporno.to', CDisplayListItem.TYPE_CATEGORY, ['https://bitporno.to'],'bitporno', 'https://bitporno.de/assets/logobt.png', None)) valTab.append(CDisplayListItem('PERVCLIPS', 'https://www.pervclips.com/tube', CDisplayListItem.TYPE_CATEGORY, ['https://www.pervclips.com/tube/categories/'],'PERVCLIPS', 'https://cdn.pervclips.com/tube/static_new/images/og-logo.jpg', None)) if config.plugins.iptvplayer.xxxsortall.value: valTab.sort(key=lambda poz: poz.name) if config.plugins.iptvplayer.xxxsearch.value: self.SEARCH_proc=name valTab.insert(0,CDisplayListItem(_('Search history'), _('Search history'), CDisplayListItem.TYPE_CATEGORY, [''], 'HISTORY', 'https://img2.thejournal.ie/inline/2398415/original/?width=630&version=2398415', None)) valTab.insert(0,CDisplayListItem(_('Search'), _('Search'), CDisplayListItem.TYPE_SEARCH, [''], '', 'https://www.hyperpoolgroup.co.za/wp-content/uploads/2018/07/Product-Search.jpg', None)) valTab.append(CDisplayListItem('FOTKA-PL-KAMERKI', 'http://www.fotka.pl/kamerki', CDisplayListItem.TYPE_CATEGORY, ['http://api.fotka.pl/v2/cams/get?page=1&limit=100&gender=f'],'FOTKA-PL-KAMERKI', 'https://pbs.twimg.com/profile_images/3086758992/6fb5cc2ee2735c334d0363bcb01a52ca_400x400.png', None)) url = 'https://chaturbate.com/tags/%s' % config.plugins.iptvplayer.chaturbate.value valTab.append(CDisplayListItem('CHATURBATE', 'chaturbate.com', CDisplayListItem.TYPE_CATEGORY, [url],'CHATURBATE','https://static-assets.highwebmedia.com/images/logo-square.png', None)) valTab.append(CDisplayListItem('XHAMSTERLIVE', "Kamerki", CDisplayListItem.TYPE_CATEGORY,['http://xhamsterlive.com'], 'xhamsterlive', 'https://cdn.stripst.com/assets/icons/favicon-196x196_xhamsterlive.com.png',None)) valTab.append(CDisplayListItem('BONGACAMS', 'https://bongacams.com/', CDisplayListItem.TYPE_CATEGORY, ['https://en.bongacams.com/'],'BONGACAMS', 'http://i.bongacams.com/images/bongacams_logo3_header.png', None)) valTab.append(CDisplayListItem('SHOWUP - live cams', 'showup.tv', CDisplayListItem.TYPE_CATEGORY, ['http://showup.tv'], 'showup', 'https://i.pinimg.com/originals/cd/73/1d/cd731d0be3bb2cabcecd6d7bdfe50ae9.png', None)) #valTab.append(CDisplayListItem(_('Our software is free and we want to keep it that way.'), 'If you use our application and want to show your appreciation, support us on Paypal: echosmart76@gmail.com Thank You!', CDisplayListItem.TYPE_ARTICLE, [''], '', 'https://tdc.pl/thumb_product/1745/456/500/0/ra_012.jpg', None)) valTab.append(CDisplayListItem('+++ XXXLIST +++ XXXversion = '+str(self.XXXversion), '+++ XXXLIST +++ XXXversion = '+str(self.XXXversion), CDisplayListItem.TYPE_MARKER, [''],'XXXLIST', '', None)) if config.plugins.iptvplayer.xxxupdate.value: valTab.append(CDisplayListItem('CHANGELOG', 'CHANGELOG', CDisplayListItem.TYPE_CATEGORY, ['http://www.blindspot.nhely.hu/hosts/changelog'], 'UPDATE-ZMIANY', 'https://cdn.imgbin.com/5/5/11/imgbin-computer-icons-wiki-inventory-history-drawing-nP3RsgFUsrSqYQBRUycesLNKp.jpg', None)) self.yourporn = config.plugins.iptvplayer.yourporn.value return valTab # ########## # if 'HISTORY' == name: printDBG( 'Host listsItems begin name='+name ) for histItem in self.history.getHistoryList(): valTab.append(CDisplayListItem(histItem['pattern'], 'Search ', CDisplayListItem.TYPE_CATEGORY, [histItem['pattern'],histItem['type']], 'SEARCH', '', None)) return valTab # ########## # if 'SEARCH' == name: printDBG( 'Host listsItems begin name='+name ) pattern = url if Index==-1: self.history.addHistoryItem( pattern, 'video') if self.SEARCH_proc == '': return [] if self.SEARCH_proc == 'main-menu': valTab=[] self.MAIN_URL = 'https://www.4tube.com' valtemp = self.listsItems(-1, url, '4TUBE-search') for item in valtemp: item.name='4TUBE - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://www.ah-me.com' valtemp = self.listsItems(-1, url, 'ahme-search') for item in valtemp: item.name='AH-ME - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://www.alphaporno.com' valtemp = self.listsItems(-1, url, 'ALPHAPORNO-search') for item in valtemp: item.name='ALPHAPORNO - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://crocotube.com/' valtemp = self.listsItems(-1, url, 'CROCOTUBE-search') for item in valtemp: item.name='CROCOTUBE - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://www.wankoz.com' valtemp = self.listsItems(-1, url, 'WANKOZ-search') for item in valtemp: item.name='WANKOZ - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://www.pornhat.com/' valtemp = self.listsItems(-1, url, 'PORNHAT-search') for item in valtemp: item.name='PORNHAT - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'http://www.drtuber.com' valtemp = self.listsItems(-1, url, 'DRTUBER-search') for item in valtemp: item.name='DRTUBER - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'http://www.eporner.com' valtemp = self.listsItems(-1, url, 'eporner-search') for item in valtemp: item.name='EPORNER - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://www.fux.com' valtemp = self.listsItems(-1, url, '4TUBE-search') for item in valtemp: item.name='FUX - '+item.name valTab = valTab + valtemp valtemp = self.listsItems(-1, url, 'alohatube-search') for item in valtemp: item.name='ALOHATUBE - '+item.name valTab = valTab + valtemp valtemp = self.listsItems(-1, url, 'SEXVID-search') for item in valtemp: item.name='SEXVID - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'http://www.homemoviestube.com' valtemp = self.listsItems(-1, url, 'HomeMoviesTube-search') for item in valtemp: item.name='HomeMoviesTube - '+item.name valTab = valTab + valtemp valtemp = self.listsItems(-1, url, 'KATESTUBE-search') for item in valtemp: item.name='KATESTUBE - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://www.koloporno.com' valtemp = self.listsItems(-1, url, 'KOLOPORNO-search') for item in valtemp: item.name='KOLOPORNO - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://www.moviefap.com' valtemp = self.listsItems(-1, url, 'MOVIEFAP-search') for item in valtemp: item.name='MOVIEFAP - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://hellporno.com/' valtemp = self.listsItems(-1, url, 'HELLPORNO-search') for item in valtemp: item.name='HELLPORNO - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://sextubefun.com/' valtemp = self.listsItems(-1, url, 'SEXTUBEFUN-search') for item in valtemp: item.name='SEXTUBEFUN - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://www.3movs.com' valtemp = self.listsItems(-1, url, '3MOVS-search') for item in valtemp: item.name='3MOVS - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://www.pornid.xxx' valtemp = self.listsItems(-1, url, 'PORNID-search') for item in valtemp: item.name='PORNID - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://www.pervclips.com/tube' valtemp = self.listsItems(-1, url, 'PERVCLIPS-search') for item in valtemp: item.name='PERVCLIPS - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://www.pornwhite.com' valtemp = self.listsItems(-1, url, 'PORNWHITE-search') for item in valtemp: item.name='PORNWHITE - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://www.pornburst.xxx/' valtemp = self.listsItems(-1, url, 'PORNBURST-search') for item in valtemp: item.name='PORNBURST - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://www.xxxbule.com/' valtemp = self.listsItems(-1, url, 'XXXBULE-search') for item in valtemp: item.name='XXXBULE - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://www.porndig.com' valtemp = self.listsItems(-1, url, 'PORNDIG-search') for item in valtemp: item.name='PORNDIG - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://glavmatures.com' valtemp = self.listsItems(-1, url, 'glavmatures-search') for item in valtemp: item.name='GLAVMATURES - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://xcafe.com' valtemp = self.listsItems(-1, url, 'XCAFE-search') for item in valtemp: item.name='XCAFE - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://www.pornheed.com' valtemp = self.listsItems(-1, url, 'PORNHEED-search') for item in valtemp: item.name='PORNHEED - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://xcum.com' valtemp = self.listsItems(-1, url, 'XCUM-search') for item in valtemp: item.name='XCUM - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://fullporner.com' valtemp = self.listsItems(-1, url, 'FULLPORNER-search') for item in valtemp: item.name='FULLPORNER - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://www.watchmygf.me' valtemp = self.listsItems(-1, url, 'WATCHMYGF-search') for item in valtemp: item.name='WATCHMYGF - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://www.homepornking.com' valtemp = self.listsItems(-1, url, 'homepornking-search') for item in valtemp: item.name='HOMEPORNKING - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://www.freeones.com' valtemp = self.listsItems(-1, url, 'freeones-search') for item in valtemp: item.name='FREEONES - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://www.porndroids.com' valtemp = self.listsItems(-1, url, 'porndroid-search') for item in valtemp: item.name='PORNDROIDS - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://www.pornerbros.com' valtemp = self.listsItems(-1, url, '4TUBE-search') for item in valtemp: item.name='PORNERBROS - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'http://www.pornhub.com' valtemp = self.listsItems(-1, url, 'pornhub-search') for item in valtemp: item.name='PORNHUB - '+item.name valTab = valTab + valtemp valtemp = self.listsItems(-1, url, 'pornicom-search') for item in valtemp: item.name='PORNICOM - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://www.porntube.com' valtemp = self.listsItems(-1, url, '4TUBE-search') for item in valtemp: item.name='PORNTUBE - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://www.perfectgirls.xxx' valtemp = self.listsItems(-1, url, 'PERFECTGIRLS-search') for item in valtemp: item.name='PERFECTGIRLS - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://ziporn.com/' valtemp = self.listsItems(-1, url, 'ZIPORN-search') for item in valtemp: item.name='ZIPORN - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://www.redtube.com' valtemp = self.listsItems(-1, url, 'redtube-search') for item in valtemp: item.name='REDTUBE - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'http://www.thumbzilla.com' valtemp = self.listsItems(-1, url, 'THUMBZILLA-search') for item in valtemp: item.name='THUMBZILLA - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'http://www.tube8.com' valtemp = self.listsItems(-1, url, 'tube8-search') for item in valtemp: item.name='TUBE8 - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://sextubefun.com/' valtemp = self.listsItems(-1, url, 'SEXTUBEFUN-search') for item in valtemp: item.name='SEXTUBEFUN - '+item.name valTab = valTab + valtemp valtemp = self.listsItems(-1, url, 'xhamster-search') for item in valtemp: item.name='XHAMSTER - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'http://www.xnxx.com' valtemp = self.listsItems(-1, url, 'xnxx-search') for item in valtemp: item.name='XNXX - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://hellmoms.com' valtemp = self.listsItems(-1, url, 'HELLMOMS-search') for item in valtemp: item.name='HELLMOMS - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://mustjav.com' valtemp = self.listsItems(-1, url, 'MUSTJAV-search') for item in valtemp: item.name='MUSTJAV - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://fullxcinema.com' valtemp = self.listsItems(-1, url, 'FULLXCINEMA-search') for item in valtemp: item.name='FULLXCINEMA - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://teenxy.com' valtemp = self.listsItems(-1, url, 'TEENXY-search') for item in valtemp: item.name='TEENXY - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'http://www.boundhub.com' valtemp = self.listsItems(-1, url, 'BOUNDHUB-search') for item in valtemp: item.name='BOUNDHUB - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://www.shameless.com/' valtemp = self.listsItems(-1, url, 'SHAMELESS-search') for item in valtemp: item.name='SHAMELESS - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'http://www.xvideos.com' valtemp = self.listsItems(-1, url, 'xvideos-search') for item in valtemp: item.name='XVIDEOS - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'http://www.youjizz.com' valtemp = self.listsItems(-1, url, 'YOUJIZZ-search') for item in valtemp: item.name='YOUJIZZ - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://www.youporn.com' valtemp = self.listsItems(-1, url, 'youporn-search') for item in valtemp: item.name='YOUPORN - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://jizzbunker.com' valtemp = self.listsItems(-1, url, 'JIZZBUNKER-search') for item in valtemp: item.name='JIZZBUNKER - '+item.name valTab = valTab + valtemp self.MAIN_URL = 'https://yourporn.sexy' valtemp = self.listsItems(-1, url, 'yourporn-search') for item in valtemp: item.name='YOURPORN.SEXY - '+item.name valTab = valTab + valtemp self.MAIN_URL = '' return valTab valTab = self.listsItems(-1, url, self.SEARCH_proc) return valTab if 'UPDATE' == name: printDBG( 'Host listsItems begin name='+name ) valTab.append(CDisplayListItem(self.XXXversion+' - Local version', 'Local XXXversion', CDisplayListItem.TYPE_CATEGORY, [''], '', '', None)) valTab.append(CDisplayListItem(self.XXXremote+ ' - Remote version', 'Remote XXXversion', CDisplayListItem.TYPE_CATEGORY, [''], '', '', None)) valTab.append(CDisplayListItem('Changelog', 'Changelog', CDisplayListItem.TYPE_CATEGORY, ['http://www.blindspot.nhely.hu/hosts/changelog'], 'UPDATE-ZMIANY', '', None)) valTab.append(CDisplayListItem('Update Now', 'Update Now', CDisplayListItem.TYPE_CATEGORY, [''], 'UPDATE-NOW', '', None)) valTab.append(CDisplayListItem('Update Now & Restart Enigma2', 'Update Now & Restart Enigma2', CDisplayListItem.TYPE_CATEGORY, ['restart'], 'UPDATE-NOW', '', None)) return valTab if 'UPDATE-ZMIANY' == name: printDBG( 'Host listsItems begin name='+name ) try: data = self.cm.getURLRequestData({ 'url': url, 'use_host': False, 'use_cookie': False, 'use_post': False, 'return_data': True }) except: printDBG( 'Host listsItems query error' ) return valTab #printDBG( 'Host listsItems data: '+data ) phCats = re.findall(".*?(.*?).*?(.*?).*?(.*?)", data, re.S) if phCats: for (phTitle, phUpdated, phName ) in phCats: phUpdated = phUpdated.replace('T', ' ') phUpdated = phUpdated.replace('Z', ' ') phUpdated = phUpdated.replace('+01:00', ' ') phUpdated = phUpdated.replace('+02:00', ' ') printDBG( 'Host listsItems phTitle: '+phTitle ) printDBG( 'Host listsItems phUpdated: '+phUpdated ) printDBG( 'Host listsItems phName: '+phName ) valTab.append(CDisplayListItem(phUpdated+' '+phName+' >> '+decodeHtml(phTitle),decodeHtml(phTitle),CDisplayListItem.TYPE_CATEGORY, [''],'', '', None)) return valTab if 'UPDATE-NOW' == name: printDBG( 'HostXXX listsItems begin name='+name ) _url = 'http://www.blindspot.nhely.hu/hosts/changelog' query_data = { 'url': _url, 'use_host': False, 'use_cookie': False, 'use_post': False, 'return_data': True } try: data = self.cm.getURLRequestData(query_data) printDBG( 'Host init data: '+data ) crc=self.cm.ph.getSearchGroups(data, '''log/([^"^']+?)[<]''', 1, True)[0] printDBG( 'crc = '+crc ) if not crc: error except: printDBG( 'Host init query error' ) valTab.append(CDisplayListItem('ERROR - Błąd init: '+_url, 'ERROR', CDisplayListItem.TYPE_CATEGORY, [''], '', '', None)) return valTab tmpDir = GetTmpDir() source = os_path.join(tmpDir, 'iptv-host-xxx.tar.gz') dest = os_path.join(tmpDir , '') _url = 'http://www.blindspot.nhely.hu/hosts/iptv-host-xxx-master.tar.gz' output = open(source,'wb') query_data = { 'url': _url, 'use_host': False, 'use_cookie': False, 'use_post': False, 'return_data': True } try: output.write(self.cm.getURLRequestData(query_data)) output.close() os_system ('sync') printDBG( 'Letöltés iptv-host-xxx.tar.gz' ) except: if os_path.exists(source): os_remove(source) printDBG( 'Letöltési hiba iptv-host-xxx.tar.gz' ) valTab.append(CDisplayListItem('ERROR - Download Error: '+_url, 'ERROR', CDisplayListItem.TYPE_CATEGORY, [''], '', '', None)) return valTab if os_path.exists(source): printDBG( 'Létező XXX fájl '+source ) else: printDBG( 'Nincs XXX fájl '+source ) cmd = 'tar -xzf "%s" -C "%s" 2>&1' % ( source, dest ) try: os_system (cmd) os_system ('sync') printDBG( 'HostXXX kicsomagolása ' + cmd ) except: printDBG( 'HostXXX Kicsomagolási Hiba iptv-host-xxx.tar.gz' ) os_system ('rm -f %s' % source) os_system ('rm -rf %siptv-host-xxx-%s' % (dest, crc)) valTab.append(CDisplayListItem('ERROR - Unzipping Error %s' % source, 'ERROR', CDisplayListItem.TYPE_CATEGORY, [''], '', '', None)) return valTab try: od = '%siptv-host-xxx-master/'% (dest) printDBG('Innen: '+ od) do = resolveFilename(SCOPE_PLUGINS, 'Extensions/') printDBG('Ide: '+ do) cmd = 'cp -rf "%s"/* "%s"/ 2>&1' % (os_path.join(od, 'IPTVPlayer'), os_path.join(do, 'IPTVPlayer')) printDBG('HostXXX Másolás[%s]' % cmd) os_system (cmd) #printDBG('HostXXX kopiowanie2 cmd[%s]' % cmd) #iptv_system(cmd) os_system ('sync') except: printDBG( 'Másolási Hiba' ) os_system ('rm -f %s' % source) os_system ('rm -rf %siptv-host-xxx-master-%s' % (dest, crc)) valTab.append(CDisplayListItem('ERROR - Error in Copy', 'ERROR', CDisplayListItem.TYPE_CATEGORY, [''], '', '', None)) return valTab ikony = GetPluginDir('icons/PlayerSelector/') if os_path.exists('%sXXX100' % ikony): printDBG( 'HostXXX Jest '+ ikony + 'XXX100 ' ) os_system('mv %sXXX100 %sXXX100.png' % (ikony, ikony)) if os_path.exists('%sXXX120' % ikony): printDBG( 'HostXXX Jest '+ ikony + 'XXX120 ' ) os_system('mv %sXXX120 %sXXX120.png' % (ikony, ikony)) if os_path.exists('%sXXX135' % ikony): printDBG( 'HostXXX Jest '+ ikony + 'XXX135 ' ) os_system('mv %sXXX135 %sXXX135.png' % (ikony, ikony)) try: cmd = GetPluginDir('hosts/hostXXX.py') with open(cmd, 'r') as f: data = f.read() f.close() wersja = re.search('XXXversion = "(.*?)"', data, re.S) aktualna = wersja.group(1) printDBG( 'Actual Version: '+aktualna ) except: printDBG( 'HostXXX error openfile ' ) printDBG( 'Ideiglenes fájlok törlése' ) os_system ('rm -f %s' % source) os_system ('rm -rf %siptv-host-xxx-master-%s' % (dest, crc)) if url: try: msg = '\n\nActual Version: %s' % aktualna self.sessionEx.open(MessageBox, _("Update completed successfully. For the moment, the system will reboot.")+ msg, type = MessageBox.TYPE_INFO, timeout = 10) sleep (10) from enigma import quitMainloop quitMainloop(3) except: pass valTab.append(CDisplayListItem('Update End. Please manual restart enigma2', 'Restart', CDisplayListItem.TYPE_CATEGORY, [''], '', '', None)) printDBG( 'HostXXX listsItems end' ) return valTab ################################################################## if 'tube8' == name: printDBG( 'Host listsItems begin name='+name ) self.MAIN_URL = 'http://www.tube8.com' COOKIEFILE = os_path.join(GetCookieDir(), 'tube8.cookie') self.HTTP_HEADER = self.cm.getDefaultHeader(browser='chrome') self.defaultParams = {'header':self.HTTP_HEADER, 'use_cookie': True, 'load_cookie': True, 'save_cookie': True, 'cookiefile': COOKIEFILE} sts, data = self.get_Page(url) if not sts: return #printDBG( 'Host listsItems data: '+data ) data = self.cm.ph.getDataBeetwenMarkers(data, 'categories-subnav', '', False)[1] printDBG( 'Host listsItems data: '+data ) data = self.cm.ph.getAllItemsBeetwenMarkers(data, '
  • ', '
  • ') for item in data: phTitle = self.cm.ph.getSearchGroups(item, '''alt=['"]([^"^']+?)['"]''', 1, True)[0] if not phTitle: phTitle = self._cleanHtmlStr(item).strip() phUrl = self.cm.ph.getSearchGroups(item, '''href=['"]([^"^']+?)['"]''', 1, True)[0] phImage = self.cm.ph.getSearchGroups(item, '''data-thumb=['"]([^"^']+?)['"]''', 1, True)[0] valTab.append(CDisplayListItem(phTitle,phTitle,CDisplayListItem.TYPE_CATEGORY, [phUrl],'tube8-clips', phImage, None)) valTab.sort(key=lambda poz: poz.name) valTab.insert(0,CDisplayListItem('--- Most Viewed ---', 'Most Viewed', CDisplayListItem.TYPE_CATEGORY, [self.MAIN_URL+'/most-viewed/page/1/'], 'tube8-clips', '', None)) valTab.insert(0,CDisplayListItem('--- Top Rated ---', 'Top Rated', CDisplayListItem.TYPE_CATEGORY, [self.MAIN_URL+'/top/page/1/'], 'tube8-clips', '', None)) valTab.insert(0,CDisplayListItem('--- Longest ---', 'Longest', CDisplayListItem.TYPE_CATEGORY, [self.MAIN_URL+'/longest/page/1/'], 'tube8-clips', '', None)) valTab.insert(0,CDisplayListItem('--- New Videos ---', 'New Videos', CDisplayListItem.TYPE_CATEGORY, [self.MAIN_URL+'/newest/page/1/'], 'tube8-clips', '', None)) self.SEARCH_proc='tube8-search' valTab.insert(0,CDisplayListItem(_('Search history'), _('Search history'), CDisplayListItem.TYPE_CATEGORY, [''], 'HISTORY', '', None)) valTab.insert(0,CDisplayListItem(_('Search'), _('Search'), CDisplayListItem.TYPE_SEARCH, [''], '', '', None)) return valTab if 'tube8-search' == name: printDBG( 'Host listsItems begin name='+name ) valTab = self.listsItems(-1, 'http://www.tube8.com/searches.html?q='+url.replace(' ','+'), 'tube8-clips') return valTab if 'tube8-clips' == name: printDBG( 'Host listsItems begin name='+name ) self.MAIN_URL = 'http://www.tube8.com' COOKIEFILE = os_path.join(GetCookieDir(), 'tube8.cookie') self.HTTP_HEADER = self.cm.getDefaultHeader(browser='chrome') self.defaultParams = {'header':self.HTTP_HEADER, 'use_cookie': True, 'load_cookie': True, 'save_cookie': True, 'cookiefile': COOKIEFILE} sts, data = self.get_Page(url) if not sts: return printDBG( 'Host listsItems data: '+data ) nextPage = self.cm.ph.getSearchGroups(data, '''rel="next"\shref=['"]([^"^']+?)['"]''', 1, True)[0].replace('&','&') data2 = self.cm.ph.getDataBeetwenMarkers(data, 'id="category_video_list', 'footer', False)[1] if '' == data2: data2 = self.cm.ph.getDataBeetwenMarkers(data, 'Video Results For', 'footer', False)[1] data = self.cm.ph.getAllItemsBeetwenMarkers(data2, '') for item in data: phTitle = self.cm.ph.getSearchGroups(item, '''title=['"]([^"^']+?)['"]''', 1, True)[0] phUrl = self.cm.ph.getSearchGroups(item, '''data-video_url=['"]([^"^']+?)['"]''', 1, True)[0] phImage = self.cm.ph.getSearchGroups(item, '''data-thumb=['"]([^"^']+?)['"]''', 1, True)[0] phTime = self.cm.ph.getSearchGroups(item, '''video-duration">([^>]+?)<''', 1, True)[0] if phUrl and not 'title]' in phTitle: valTab.append(CDisplayListItem(decodeHtml(phTitle),'['+phTime+'] '+decodeHtml(phTitle),CDisplayListItem.TYPE_VIDEO, [CUrlItem('', phUrl, 1)], 0, phImage, None)) if nextPage: valTab.append(CDisplayListItem('Next', 'Page: '+nextPage, CDisplayListItem.TYPE_CATEGORY, [nextPage], name, '', None)) return valTab if 'showup' == name: self.MAIN_URL = 'http://showup.tv' COOKIEFILE = os_path.join(GetCookieDir(), 'showup.cookie') #url = 'https://showup.tv/site/accept_rules?ref=https://showup.tv/' url = 'https://showup.tv' self.HTTP_HEADER = self.cm.getDefaultHeader(browser='chrome') self.defaultParams = {'header':self.HTTP_HEADER, 'use_cookie': True, 'load_cookie': True, 'save_cookie': True, 'cookiefile': COOKIEFILE} #accept_rules.showup.tv/ self.defaultParams['cookie_items'] = {'accept_rules':'true'} sts, data = self.get_Page(url) if not sts: return printDBG( 'Host listsItems data: '+data ) data = self.cm.ph.getAllItemsBeetwenMarkers(data, '
  • ') for item in data: phUrl = self.cm.ph.getSearchGroups(item, '''href=['"]([^"^']+?)['"]''', 1, True)[0] phTitle = phUrl[1:] phImage = self.cm.ph.getSearchGroups(item, '''data-src=['"]([^"^']+?)['"]''', 1, True)[0] phDesc = self.cm.ph.getSearchGroups(item, '''

    ([^>]+?)

    ''', 1, True)[0] transcoderaddr = self.cm.ph.getSearchGroups(item, '''transcoderaddr=['"]([^"^']+?)['"]''', 1, True)[0] streamid = self.cm.ph.getSearchGroups(item, '''streamid=['"]([^"^']+?)['"]''', 1, True)[0] uid = self.cm.ph.getSearchGroups(item, '''uid=['"]([^"^']+?)['"]''', 1, True)[0] phUrl = 'rtmp://'+transcoderaddr+':1935/webrtc/'+streamid+'_aac' phImage = 'http://showup.tv/'+phImage valTab.append(CDisplayListItem(phTitle,phTitle+' '+decodeHtml(phDesc),CDisplayListItem.TYPE_VIDEO, [CUrlItem('', phUrl, 0)], 0, phImage, None)) return valTab if 'xnxx' == name: printDBG( 'Host listsItems begin name='+name ) self.MAIN_URL = 'http://www.xnxx.com' COOKIEFILE = os_path.join(GetCookieDir(), 'xnxx.cookie') self.defaultParams = {'use_cookie': True, 'load_cookie': True, 'save_cookie': True, 'cookiefile': COOKIEFILE, 'return_data': True} sts, data = self.cm.getPage(url, self.defaultParams) if not sts: return valTab #printDBG( 'Host listsItems data: '+data ) parse = re.search('"categories":(.*?),"more_links"', data, re.S) if not parse: return valTab #printDBG( 'Host listsItems parse.group(1): '+parse.group(1) ) result = simplejson.loads(parse.group(1)) if result: for item in result: phUrl = str(item["url"].replace('\/','/')) phTitle = str(item["label"]) if not 'jpg' in phTitle: valTab.append(CDisplayListItem(phTitle,phTitle,CDisplayListItem.TYPE_CATEGORY, [self.MAIN_URL+phUrl],'xnxx-clips', '', None)) valTab.sort(key=lambda poz: poz.name) valTab.insert(0,CDisplayListItem('--- Hits ---', 'Hits', CDisplayListItem.TYPE_CATEGORY, [self.MAIN_URL+'/hits/'], 'xnxx-clips', '', None)) valTab.insert(0,CDisplayListItem('--- Best Videos ---', 'Best Videos', CDisplayListItem.TYPE_CATEGORY, [self.MAIN_URL+'/best/'], 'xnxx-clips', '', None)) valTab.insert(0,CDisplayListItem('--- New Videos ---', 'New Videos', CDisplayListItem.TYPE_CATEGORY, [self.MAIN_URL], 'xnxx-clips', '', None)) self.SEARCH_proc='xnxx-search' valTab.insert(0,CDisplayListItem(_('Search history'), _('Search history'), CDisplayListItem.TYPE_CATEGORY, [''], 'HISTORY', '', None)) valTab.insert(0,CDisplayListItem(_('Search'),_('Search'), CDisplayListItem.TYPE_SEARCH, [''], '', '', None)) return valTab if 'xnxx-search' == name: printDBG( 'Host listsItems begin name='+name ) valTab = self.listsItems(-1, 'http://www.xnxx.com/?k='+url.replace(' ','+'), 'xnxx-clips') return valTab if 'xnxx-clips' == name: printDBG( 'Host listsItems begin name='+name ) self.MAIN_URL = 'http://www.xnxx.com' COOKIEFILE = os_path.join(GetCookieDir(), 'xnxx.cookie') self.defaultParams = {'use_cookie': True, 'load_cookie': True, 'save_cookie': True, 'cookiefile': COOKIEFILE, 'return_data': True} sts, data = self.cm.getPage(url, self.defaultParams) if not sts: return valTab printDBG( 'Host listsItems XNXX data: '+data ) match = re.search("pagination(.*?)Next", data, re.S) #printDBG( 'Következő oldal: '+str(match[-1]) ) data = self.cm.ph.getAllItemsBeetwenMarkers(data, 'id="video', '

    ') for item in data: phTitle = self.cm.ph.getSearchGroups(item, '''title=['"]([^"^']+?)['"]''', 1, True)[0] phUrl = self.cm.ph.getSearchGroups(item, '''href=['"](/video[^"^']+?)['"]''', 1, True)[0] phImage = self.cm.ph.getSearchGroups(item, '''data-src=['"]([^"^']+?)['"]''', 1, True)[0] phTime = self.cm.ph.getSearchGroups(item, '''([^>]+?)<''', 1, True)[0].strip() if not phTime: phTime = self.cm.ph.getSearchGroups(item, '''
  • ') if len(data): del data[0] for item in data: phTitle = self.cm.ph.getSearchGroups(item, '''"[>]([^"^']+?)[<]/''', 1, True)[0] phUrl = self.cm.ph.getSearchGroups(item, '''href=['"]([^"^']+?)['"]''', 1, True)[0] phImage = 'https://cdni.pornpics.com/460/7/500/77394548/77394548_099_512f.jpg' valTab.append(CDisplayListItem(phTitle,phTitle,CDisplayListItem.TYPE_CATEGORY, [phUrl],'HELLMOMS-clips', phImage, None)) valTab.sort(key=lambda poz: poz.name) valTab.insert(0,CDisplayListItem('--- Recently Added ---', 'Recently Added Videos', CDisplayListItem.TYPE_CATEGORY, [self.MAIN_URL], 'HELLMOMS-clips', 'https://cdni.pornpics.com/1280/1/181/25977073/25977073_013_edfb.jpg', None)) self.SEARCH_proc='HELLMOMS-search' valTab.insert(0,CDisplayListItem(_('Search history'), _('Search history'), CDisplayListItem.TYPE_CATEGORY, [''], 'HISTORY', 'https://img2.thejournal.ie/inline/2398415/original/?width=630&version=2398415', None)) valTab.insert(0,CDisplayListItem(_('Search'),_('Search'), CDisplayListItem.TYPE_SEARCH, [''], '', 'https://www.hyperpoolgroup.co.za/wp-content/uploads/2018/07/Product-Search.jpg', None)) return valTab if 'HELLMOMS-search' == name: printDBG( 'Host listsItems begin name='+name ) valTab = self.listsItems(-1, 'https://hellmoms.com/q/'+url.replace(' ','+'), 'HELLMOMS-clips') return valTab if 'HELLMOMS-clips' == name: printDBG( 'Host listsItems begin name='+name ) self.MAIN_URL = 'https://hellmoms.com' COOKIEFILE = os_path.join(GetCookieDir(), 'hellmoms.cookie') self.defaultParams = {'use_cookie': True, 'load_cookie': True, 'save_cookie': True, 'cookiefile': COOKIEFILE, 'return_data': True} sts, data = self.cm.getPage(url, self.defaultParams) if not sts: return valTab #printDBG( 'Host listsItems data: '+data ) next = self.cm.ph.getSearchGroups(data, '''rel="next".href=["]([^"^']+?)["]><''', 1, True)[0] data = data.split('class="thumb">') if len(data): del data[0] for item in data: phUrl = self.cm.ph.getSearchGroups(item, '''href=['"]([^"^']+?)['"]''', 1, True)[0] phTitle = self.cm.ph.getSearchGroups(item, '''title"[>]([^"]+?)[<]/''', 1, True)[0] phImage = self.cm.ph.getSearchGroups(item, '''img.src=['"]([^"^']+?)['"]''', 1, True)[0] if not phImage: phImage = self.cm.ph.getSearchGroups(item, '''data-original=['"]([^"^']+?)['"]''', 1, True)[0] phTime = self.cm.ph.getSearchGroups(item, '''duration">([^>]+?)<''', 1, True)[0] valTab.append(CDisplayListItem(decodeHtml(phTitle),'['+phTime+'] '+decodeHtml(phTitle),CDisplayListItem.TYPE_VIDEO, [CUrlItem('', phUrl, 1)], 0, phImage, None)) if next: valTab.append(CDisplayListItem('Next', 'Page: '+ next.split('/')[-2], CDisplayListItem.TYPE_CATEGORY, [next], name, 'http://www.clker.com/cliparts/n/H/d/S/N/j/green-next-page-button-hi.png', None)) return valTab if 'MUSTJAV' == name: printDBG( 'Host listsItems begin name='+name ) self.MAIN_URL = 'https://mustjav.com/' COOKIEFILE = os_path.join(GetCookieDir(), 'mustjav.cookie') self.defaultParams = {'use_cookie': True, 'load_cookie': True, 'save_cookie': True, 'cookiefile': COOKIEFILE, 'return_data': True} sts, data = self.cm.getPage(url, self.defaultParams) if not sts: return valTab printDBG( 'Host listsItems data: '+data ) data = data.split('class="nav-item ">') if len(data): del data[0] for item in data: phTitle = self.cm.ph.getSearchGroups(item, '''"[>]([^"^']+?)[<]/a''', 1, True)[0] printDBG( 'Címek: '+phTitle ) phTitle = phTitle.strip() if '虚拟实景' in phTitle: phTitle = 'Virtual Reality' if 'VIP' in phTitle: continue phUrl = self.cm.ph.getSearchGroups(item, '''href=['"]([^"^']+?)['"]''', 1, True)[0] if phUrl.startswith('/'): phUrl = self.MAIN_URL + phUrl phImage = 'https://cdni.pornpics.com/1280/1/239/46434519/46434519_005_4bbc.jpg' valTab.append(CDisplayListItem(phTitle,phTitle,CDisplayListItem.TYPE_CATEGORY, [phUrl],'MUSTJAV-clips', phImage, None)) valTab.sort(key=lambda poz: poz.name) valTab.insert(0,CDisplayListItem('--- Recently Added ---', 'Recently Added Videos', CDisplayListItem.TYPE_CATEGORY, [self.MAIN_URL], 'MUSTJAV-clips', 'https://cdni.pornpics.com/460/7/443/53721457/53721457_001_325f.jpg', None)) self.SEARCH_proc='MUSTJAV-search' valTab.insert(0,CDisplayListItem(_('Search history'), _('Search history'), CDisplayListItem.TYPE_CATEGORY, [''], 'HISTORY', 'https://img2.thejournal.ie/inline/2398415/original/?width=630&version=2398415', None)) valTab.insert(0,CDisplayListItem(_('Search'),_('Search'), CDisplayListItem.TYPE_SEARCH, [''], '', 'https://www.hyperpoolgroup.co.za/wp-content/uploads/2018/07/Product-Search.jpg', None)) return valTab if 'MUSTJAV-search' == name: printDBG( 'Host listsItems begin name='+name ) valTab = self.listsItems(-1, 'https://mustjav.com/index.php/vod/search.html?wd='+url.replace(' ','+'), 'MUSTJAV-clips') return valTab if 'MUSTJAV-clips' == name: printDBG( 'Host listsItems begin name='+name ) self.MAIN_URL = 'https://mustjav.com' COOKIEFILE = os_path.join(GetCookieDir(), 'mustjav.cookie') self.defaultParams = {'use_cookie': True, 'load_cookie': True, 'save_cookie': True, 'cookiefile': COOKIEFILE, 'return_data': True} sts, data = self.cm.getPage(url, self.defaultParams) if not sts: return valTab printDBG( 'Host listsItems data: '+data ) next = self.cm.ph.getSearchGroups(data, '''href=['"]([^"^']+?)['"].{6}next''', 1, True)[0] if next.startswith('/'): next = self.MAIN_URL + next data = data.split('
    ') if len(data): del data[0] for item in data: phUrl = self.cm.ph.getSearchGroups(item, '''href=['"]([^"^']+?)['"]''', 1, True)[0] if phUrl.startswith('/'): phUrl = self.MAIN_URL + phUrl phTitle = self.cm.ph.getSearchGroups(item, '''html"[>]([^"]+?)[<]/a''', 1, True)[0] phImage = self.cm.ph.getSearchGroups(item, '''url.['"]([^"]+?)['"]''', 1, True)[0] phTime = self.cm.ph.getSearchGroups(item, '''layer.+([^>]+?)]([^"^']+?)[<]/a''', 1, True)[0].capitalize() printDBG( 'Címek: '+phTitle ) phUrl = self.cm.ph.getSearchGroups(item, '''href=['"]([^"^']+?)['"]''', 1, True)[0] phImage = 'https://cdni.pornpics.com/460/7/696/84117330/84117330_018_2698.jpg' valTab.append(CDisplayListItem(phTitle,phTitle,CDisplayListItem.TYPE_CATEGORY, [phUrl],'FULLXCINEMA-clips', phImage, None)) valTab.sort(key=lambda poz: poz.name) valTab.insert(0,CDisplayListItem('--- Latest ---', 'Latest Videos', CDisplayListItem.TYPE_CATEGORY, [self.MAIN_URL+'/?filter=latest'], 'FULLXCINEMA-clips', 'https://cdni.pornpics.com/460/7/696/15398698/15398698_047_d3d8.jpg', None)) valTab.insert(0,CDisplayListItem('--- Most Viewed ---', 'Most Viewed Videos', CDisplayListItem.TYPE_CATEGORY, [self.MAIN_URL+'/?filter=most-viewed'], 'FULLXCINEMA-clips', 'https://cdni.pornpics.com/460/1/376/64394703/64394703_001_5a85.jpg', None)) valTab.insert(0,CDisplayListItem('--- Most Popular ---', 'Most Popular Videos', CDisplayListItem.TYPE_CATEGORY, [self.MAIN_URL+'/?filter=popular'], 'FULLXCINEMA-clips', 'https://cdni.pornpics.com/460/7/694/27622413/27622413_067_8441.jpg', None)) valTab.insert(0,CDisplayListItem('--- Random ---', 'Random Videos', CDisplayListItem.TYPE_CATEGORY, [self.MAIN_URL+'/?filter=random'], 'FULLXCINEMA-clips', 'https://cdni.pornpics.com/460/7/691/88152181/88152181_021_5470.jpg', None)) self.SEARCH_proc='FULLXCINEMA-search' valTab.insert(0,CDisplayListItem(_('Search history'), _('Search history'), CDisplayListItem.TYPE_CATEGORY, [''], 'HISTORY', 'https://img2.thejournal.ie/inline/2398415/original/?width=630&version=2398415', None)) valTab.insert(0,CDisplayListItem(_('Search'),_('Search'), CDisplayListItem.TYPE_SEARCH, [''], '', 'https://www.hyperpoolgroup.co.za/wp-content/uploads/2018/07/Product-Search.jpg', None)) return valTab if 'FULLXCINEMA-search' == name: printDBG( 'Host listsItems begin name='+name ) valTab = self.listsItems(-1, 'https://fullxcinema.com/?s=%s'+url.replace(' ','+'), 'FULLXCINEMA-clips') return valTab if 'FULLXCINEMA-clips' == name: printDBG( 'Host listsItems begin name='+name ) self.MAIN_URL = 'https://fullxcinema.com' COOKIEFILE = os_path.join(GetCookieDir(), 'fullxcinema.cookie') self.defaultParams = {'use_cookie': True, 'load_cookie': True, 'save_cookie': True, 'cookiefile': COOKIEFILE, 'return_data': True} sts, data = self.cm.getPage(url, self.defaultParams) if not sts: return valTab printDBG( 'Host listsItems data: '+data ) next = self.cm.ph.getSearchGroups(data, '''next".href=['"]([^"^']+?)['"]''', 1, True)[0] if next.startswith('/'): next = self.MAIN_URL + next data = self.cm.ph.getDataBeetwenMarkers(data, 'videos-list', 'pagination">
    ', False)[1] next = self.cm.ph.getSearchGroups(next, '''href=['"](/[^"^']+?)['"]''', 1, True)[0].replace('&','&').replace(' ','+') data = self.cm.ph.getAllItemsBeetwenMarkers(data, 'id="video', '

    ') for item in data: phTitle = re.compile('''title=['"]([^'^"]+?)['"]''').findall(item) for titel in phTitle: if not 'Verified' in titel: phTitle = titel break if not phTitle: phTitle = 'VIDEO' phUrl = self.cm.ph.getSearchGroups(item, '''href=['"](/video[^"^']+?)['"]''', 1, True)[0] if not phUrl: phUrl = self.cm.ph.getSearchGroups(item, '''href=['"](/search-video[^"^']+?)['"]''', 1, True)[0] #printDBG( 'Video oldala: '+phUrl ) phImage = self.cm.ph.getSearchGroups(item, '''data-src=['"]([^"^']+?)['"]''', 1, True)[0] phTime = self.cm.ph.getSearchGroups(item, '''duration">([^>]+?)<''', 1, True)[0] valTab.append(CDisplayListItem(decodeHtml(phTitle),'['+phTime.strip()+'] '+decodeHtml(phTitle),CDisplayListItem.TYPE_VIDEO, [CUrlItem('', self.MAIN_URL+phUrl, 1)], 0, phImage, None)) if next: valTab.append(CDisplayListItem('Next', 'Page: '+self.MAIN_URL+next, CDisplayListItem.TYPE_CATEGORY, [self.MAIN_URL+next], name, '', None)) return valTab if 'hentaigasm' == name: printDBG( 'Host listsItems begin name='+name ) self.MAIN_URL = 'http://hentaigasm.com' COOKIEFILE = os_path.join(GetCookieDir(), 'hentaigasm.cookie') self.HTTP_HEADER = self.cm.getDefaultHeader(browser='chrome') self.defaultParams = {'header':self.HTTP_HEADER, 'use_cookie': True, 'load_cookie': True, 'save_cookie': True, 'cookiefile': COOKIEFILE} sts, data = self.get_Page(url) if not sts: return printDBG( 'Host listsItems data: '+data ) parse = re.search('Genres(.*?)', data, re.S|re.I) if not parse: return valTab phCats = re.findall("
    (.*?)<", parse.group(1), re.S) if phCats: for (phUrl, phTitle) in phCats: valTab.append(CDisplayListItem(phTitle,phTitle,CDisplayListItem.TYPE_CATEGORY, [phUrl],'hentaigasm-clips', '', None)) valTab.sort(key=lambda poz: poz.name) valTab.insert(0,CDisplayListItem("--- New ---", "New", CDisplayListItem.TYPE_CATEGORY, [self.MAIN_URL], 'hentaigasm-clips', '',None)) return valTab if 'hentaigasm-clips' == name: printDBG( 'Host listsItems begin name='+name ) sts, data = self.get_Page(url) if not sts: return #printDBG( 'Host listsItems data: '+data ) phMovies = re.findall('
    .*?title="(.*?)" href="(.*?)".*?(.*?)
    ", data, re.S) if match: match = re.findall("href='(.*?)'", match.group(1), re.S) if match: phUrl = match[-1] valTab.append(CDisplayListItem('Next', 'Page: '+phUrl, CDisplayListItem.TYPE_CATEGORY, [phUrl], name, '', None)) return valTab if 'youporn' == name: printDBG( 'Host listsItems begin name='+name ) self.MAIN_URL = 'https://www.youporn.com' COOKIEFILE = os_path.join(GetCookieDir(), 'youporn.cookie') self.HTTP_HEADER = self.cm.getDefaultHeader(browser='chrome') self.defaultParams = {'header':self.HTTP_HEADER, 'use_cookie': True, 'load_cookie': True, 'save_cookie': True, 'cookiefile': COOKIEFILE} sts, data = self.get_Page(url) if not sts: return valTab printDBG( 'Host getResolvedURL data: '+data ) #data = self.cm.ph.getAllItemsBeetwenMarkers(data, '
    ') data2 = self.cm.ph.getDataBeetwenMarkers(data, 'categories_list porn-categories action', 'footer', False)[1] if not data2: data2 = data data = self.cm.ph.getAllItemsBeetwenMarkers(data2, '([^>]+?)<''', 1, True)[0] phUrl = self.cm.ph.getSearchGroups(item, '''href=['"](/category/[^"^']+?)['"]''', 1, True)[0] phImage = self.cm.ph.getSearchGroups(item, '''data-original=['"]([^"^']+?)['"]''', 1, True)[0] if phUrl.startswith('/'): phUrl = self.MAIN_URL + phUrl + 'time/?' if phTitle and phUrl: valTab.append(CDisplayListItem(phTitle,phTitle,CDisplayListItem.TYPE_CATEGORY, [phUrl],'youporn-clips', phImage, None)) valTab.sort(key=lambda poz: poz.name) valTab.insert(0,CDisplayListItem("--- Most Discussed ---", "Most Discussed", CDisplayListItem.TYPE_CATEGORY,["https://www.youporn.com/most_discussed/"], 'youporn-clips', '',None)) valTab.insert(0,CDisplayListItem("--- Most Favorited ---", "Most Favorited", CDisplayListItem.TYPE_CATEGORY,["https://www.youporn.com/most_favorited/"], 'youporn-clips', '',None)) valTab.insert(0,CDisplayListItem("--- Most Viewed ---", "Most Viewed", CDisplayListItem.TYPE_CATEGORY,["https://www.youporn.com/most_viewed/"], 'youporn-clips', '',None)) valTab.insert(0,CDisplayListItem("--- Top Rated ---", "Top Rated", CDisplayListItem.TYPE_CATEGORY,["https://www.youporn.com/top_rated/"], 'youporn-clips', '',None)) valTab.insert(0,CDisplayListItem("--- New ---", "New", CDisplayListItem.TYPE_CATEGORY,["https://www.youporn.com/"], 'youporn-clips', '',None)) self.SEARCH_proc='youporn-search' valTab.insert(0,CDisplayListItem(_('Search history'), _('Search history'), CDisplayListItem.TYPE_CATEGORY, [''], 'HISTORY', '', None)) valTab.insert(0,CDisplayListItem(_('Search'), _('Search'), CDisplayListItem.TYPE_SEARCH, [''], '', '', None)) return valTab if 'youporn-search' == name: printDBG( 'Host listsItems begin name='+name ) valTab = self.listsItems(-1, 'https://www.youporn.com/search/?query=%s' % url.replace(' ','+'), 'youporn-clips') return valTab if 'youporn-clips' == name: printDBG( 'Host listsItems begin name='+name ) self.MAIN_URL = 'https://www.youporn.com' COOKIEFILE = os_path.join(GetCookieDir(), 'youporn.cookie') self.HTTP_HEADER = self.cm.getDefaultHeader(browser='chrome') self.defaultParams = {'header':self.HTTP_HEADER, 'use_cookie': True, 'load_cookie': True, 'save_cookie': True, 'cookiefile': COOKIEFILE} sts, data = self.get_Page(url) if not sts: return valTab printDBG( 'Host getResolvedURL data: '+data ) next = self.cm.ph.getSearchGroups(data, '''rel=['"]next['"]\s*href=['"]([^"^']+?)['"]''', 1, True)[0] #data = self.cm.ph.getAllItemsBeetwenMarkers(data, 'data-video-id', '') data2 = self.cm.ph.getDataBeetwenMarkers(data, 'data-espnode="videolist', 'footer', False)[1] if len(data2): data = data2 data = data.split('data-video-id=') if len(data): del data[0] for item in data: phTitle = self.cm.ph.getSearchGroups(item, '''alt=['"]([^"^']+?)['"]''', 1, True)[0] phImage = self.cm.ph.getSearchGroups(item, '''src=['"]([^"^']+?jpg)['"]''', 1, True)[0] if not phImage: phImage = self.cm.ph.getSearchGroups(item, '''data-original=['"]([^"^']+?)['"]''', 1, True)[0].replace("&","&") phUrl = self.cm.ph.getSearchGroups(item, '''href=['"]([^"^']+?)['"]''', 1, True)[0].replace("&","&") phRuntime = self.cm.ph.getSearchGroups(item, '''duration">([^>]+?)<''', 1, True)[0] if phUrl.startswith('/'): phUrl = 'https://www.youporn.com' + phUrl if len(phUrl)>5 and phTitle: valTab.append(CDisplayListItem(decodeHtml(phTitle),'['+phRuntime.strip()+'] '+decodeHtml(phTitle),CDisplayListItem.TYPE_VIDEO, [CUrlItem('', phUrl, 1)], 0, phImage, None)) if next: next = next.replace("&","&") if next.startswith('/'): next = 'https://www.youporn.com' + next valTab.append(CDisplayListItem('Next', 'Next: '+next, CDisplayListItem.TYPE_CATEGORY, [next], name, '', None)) self.MAIN_URL = '' return valTab if 'redtube' == name: printDBG( 'Host listsItems begin name='+name ) self.MAIN_URL = 'https://www.redtube.com' COOKIEFILE = os_path.join(GetCookieDir(), 'redtube.cookie') self.HTTP_HEADER = self.cm.getDefaultHeader(browser='chrome') self.defaultParams = {'header':self.HTTP_HEADER, 'use_cookie': True, 'load_cookie': True, 'save_cookie': True, 'cookiefile': COOKIEFILE} sts, data = self.get_Page(url) if not sts: return valTab #printDBG( 'Host listsItems data: '+data ) data = self.cm.ph.getAllItemsBeetwenMarkers(data, '
  • ') for item in data: phTitle = self.cm.ph.getSearchGroups(item, '''alt=['"]([^"^']+?)['"]''', 1, True)[0] phUrl = self.cm.ph.getSearchGroups(item, '''player..content=['"]([^"^']+?)['"]''', 1, True)[0] if not phUrl: phUrl = self.cm.ph.getSearchGroups(item, '''href=['"]([^"^']+?)['"]''', 1, True)[0] phImage = self.cm.ph.getSearchGroups(item, '''data-mediumthumb=['"]([^"^']+?)['"]''', 1, True)[0] if not phImage: phImage = self.cm.ph.getSearchGroups(item, '''data-thumb_url=['"]([^"^']+?)['"]''', 1, True)[0] if not phImage: phImage = self.cm.ph.getSearchGroups(item, '''data-src=['"]([^"^']+?)['"]''', 1, True)[0] if not phImage: phImage = self.cm.ph.getSearchGroups(item, '''src=['"]([^"^']+?)['"]''', 1, True)[0] phRuntime = self.cm.ph.getSearchGroups(item, '''video_duration">([^>]+?)<''', 1, True)[0].strip() #phRuntime = self.cm.ph.getDataBeetwenMarkers(item, '', '', False)[1] #phRuntime = self._cleanHtmlStr(phRuntime).strip() if phUrl.startswith('/'): phUrl = self.MAIN_URL + phUrl printDBG( 'Video oldala: '+phUrl ) if phImage.startswith('//'): phImage = 'https:' + phImage if phRuntime and not '/premium/' in phUrl: valTab.append(CDisplayListItem(decodeHtml(phTitle),'['+phRuntime+'] '+decodeHtml(phTitle),CDisplayListItem.TYPE_VIDEO, [CUrlItem('', phUrl, 1)], 0, phImage, None)) if next: valTab.append(CDisplayListItem('Next', next, CDisplayListItem.TYPE_CATEGORY, [next], name, 'http://www.clker.com/cliparts/n/H/d/S/N/j/green-next-page-button-hi.png', None)) return valTab if 'xhamster' == name: printDBG( 'Host listsItems begin name='+name ) self.MAIN_URL = 'http://xhamster.com' COOKIEFILE = os_path.join(GetCookieDir(), 'xhamster.cookie') self.HTTP_HEADER = self.cm.getDefaultHeader(browser='chrome') self.defaultParams = {'header':self.HTTP_HEADER, 'use_cookie': True, 'load_cookie': True, 'save_cookie': True, 'cookiefile': COOKIEFILE} sts, data = self.get_Page(url) if not sts: return valTab printDBG( 'Host listsItems data: '+data ) data = self.cm.ph.getDataBeetwenMarkers(data, '{"id":"production","items', 'letterLinks', False)[1] data = data.split('"id"') if len(data): del data[0] #data = self.cm.ph.getAllItemsBeetwenMarkers(data, 'name', '"id"') for item in data: phTitle = self.cm.ph.getSearchGroups(item, '''name":['"]([^"^']+?)['"]''', 1, True)[0] phUrl = self.cm.ph.getSearchGroups(item, '''url":['"]([^"^']+?)['"]''', 1, True)[0].replace("\/","/") phImage = self.cm.ph.getSearchGroups(item, '''url":['"]([^"^']+?)['"]''', 1, True)[0].replace("\/","/") if config.plugins.iptvplayer.xhamstertag.value and not phUrl: phUrl = self.cm.ph.getSearchGroups(item, '''href=['"](https://xhamster.com/tags/[^"^']+?)['"]''', 1, True)[0] if phUrl and phTitle: phTitle = phTitle+' (tags)' if phUrl and phTitle: valTab.append(CDisplayListItem(phTitle.strip(),phTitle.strip(),CDisplayListItem.TYPE_CATEGORY, [phUrl],'xhamster-clips', 'phImage', None)) valTab.insert(0,CDisplayListItem("--- HD ---", "HD", CDisplayListItem.TYPE_CATEGORY,["http://xhamster.com/categories/hd-videos"], 'xhamster-clips', '',None)) valTab.insert(0,CDisplayListItem("--- Best monthly ---", "Best monthly", CDisplayListItem.TYPE_CATEGORY,["http://xhamster.com/best/monthly"], 'xhamster-clips', '',None)) valTab.insert(0,CDisplayListItem("--- Pornstars ---", "Pornstars", CDisplayListItem.TYPE_CATEGORY,["http://xhamster.com/pornstars"], 'xhamster-pornostars', '',None)) valTab.insert(0,CDisplayListItem("--- New ---", "New", CDisplayListItem.TYPE_CATEGORY,["http://xhamster.com/"], 'xhamster-clips', '',None)) self.SEARCH_proc='xhamster-search' valTab.insert(0,CDisplayListItem(_('Search history'), _('Search history'), CDisplayListItem.TYPE_CATEGORY, [''], 'HISTORY', '', None)) valTab.insert(0,CDisplayListItem(_('Search'), _('Search'), CDisplayListItem.TYPE_SEARCH, [''], '', '', None)) return valTab if 'xhamster-search' == name: printDBG( 'Host listsItems begin name='+name ) valTab = self.listsItems(-1, 'http://www.xhamster.com/search.php?from=suggestion&q=%s&qcat=video' % url.replace(' ','+'), 'xhamster-clips') return valTab if 'xhamster-clips' == name: printDBG( 'Host listsItems begin name='+name ) COOKIEFILE = os_path.join(GetCookieDir(), 'xhamster.cookie') self.HTTP_HEADER = self.cm.getDefaultHeader(browser='firefox') self.defaultParams = {'header':self.HTTP_HEADER, 'use_cookie': True, 'load_cookie': True, 'save_cookie': True, 'cookiefile': COOKIEFILE} sts, data = self.get_Page(url) if not sts: return valTab printDBG( 'Host listsItems data: '+data ) next = self.cm.ph.getSearchGroups(data, '''data-page="next"\shref=['"]([^"^']+?)['"]''', 1, True)[0] if not next: next = self.cm.ph.getSearchGroups(data, '''rel="next"\shref=['"]([^"^']+?)['"]''', 1, True)[0] data = data.split('video-id=') if len(data): del data[0] #printDBG('Adatok: '+str(data)) for item in data: phTitle = self.cm.ph.getSearchGroups(item, '''alt=['"]([^"^']+?)['"]''', 1, True)[0] phUrl = self.cm.ph.getSearchGroups(item, '''href=['"]([^"^']+?)['"]''', 1, True)[0] phImage = self.cm.ph.getSearchGroups(item, '''src=['"]([^"^']+?)['"]''', 1, True)[0].replace('webp', 'jpg') #phImage = strwithmeta(phImage, {'Referer':self.MAIN_URL}) phRuntime = self.cm.ph.getSearchGroups(item, '''duration"[>]([^"^']+?)[<]/span>''', 1, True)[0] views =self.cm.ph.getSearchGroups(item, '''text">([^>^%]+?)([^>^K^.]+?)<''', 1, True)[0].strip() printDBG('Kedvelés: '+str(like)) valTab.append(CDisplayListItem(decodeHtml(phTitle),'['+phRuntime+'] '+decodeHtml(phTitle)+'\nViews: '+views+'\nLike(s): '+like,CDisplayListItem.TYPE_VIDEO, [CUrlItem('', phUrl, 1)], 0, phImage, None)) if next: next = next.replace('&','&') if next.startswith('/'): next = 'https://xhamster.com' + next next = decodeUrl(next) valTab.append(CDisplayListItem('Next', 'Page: '+next.split('/')[-1], CDisplayListItem.TYPE_CATEGORY, [next], name, '', None)) return valTab if 'xhamster-pornostars' == name: printDBG( 'Host listsItems begin name='+name ) COOKIEFILE = os_path.join(GetCookieDir(), 'xhamster.cookie') self.HTTP_HEADER = self.cm.getDefaultHeader(browser='iphone_3_0') self.defaultParams = {'header':self.HTTP_HEADER, 'use_cookie': True, 'load_cookie': True, 'save_cookie': True, 'cookiefile': COOKIEFILE} sts, data = self.get_Page(url) if not sts: return valTab printDBG( 'Host listsItems data: '+data ) data = self.cm.ph.getDataBeetwenMarkers(data, 'letter-block', 'footer', False)[1] data = self.cm.ph.getAllItemsBeetwenMarkers(data, '') for item in data: phTitle = self._cleanHtmlStr(item).strip() phUrl = self.cm.ph.getSearchGroups(item, '''href=['"](https://xhamster.com/pornstars/[^"^']+?)['"]''', 1, True)[0] if phUrl: valTab.append(CDisplayListItem(phTitle.strip(),phTitle.strip(),CDisplayListItem.TYPE_CATEGORY, [phUrl],'xhamster-clips', '', None)) return valTab if 'xhamsterlive' == name: printDBG( 'Host listsItems begin name='+name ) self.MAIN_URL = 'http://xhamsterlive.com' #url='http://xhamsterlive.com/api/front/models' url='https://go.hpyrdr.com/api/models?limit=9999' COOKIEFILE = os_path.join(GetCookieDir(), 'xhamsterlive.cookie') self.HTTP_HEADER = self.cm.getDefaultHeader(browser='iphone_3_0') self.defaultParams = {'header':self.HTTP_HEADER, 'use_cookie': True, 'load_cookie': True, 'save_cookie': True, 'cookiefile': COOKIEFILE} sts, data = self.get_Page(url) if not sts: return valTab printDBG( 'Host listsItems data: '+data ) country = '' Url = '' result = simplejson.loads(data) try: for item in result["models"]: ID = str(item["id"]) Name = str(item["username"]) try: Url = str(item["stream"]['url']) #printDBG( 'Host Url: '+Url ) except Exception: printExc() Image = str(item["snapshotUrl"].replace('\/','/')) status = str(item["status"]) try: country = ' [Country: '+str(item["modelsCountry"]).upper()+']' except Exception: printExc() if status == "public": valTab.append(CDisplayListItem(Name,Name+country,CDisplayListItem.TYPE_VIDEO, [CUrlItem('', Url, 0)], 0, Image, None)) except Exception: printExc() return valTab if 'eporner' == name: printDBG( 'Host listsItems begin name='+name ) self.MAIN_URL = 'http://www.eporner.com' COOKIEFILE = os_path.join(GetCookieDir(), 'eporner.cookie') self.HTTP_HEADER = self.cm.getDefaultHeader(browser='chrome') self.defaultParams = {'header':self.HTTP_HEADER, 'use_cookie': True, 'load_cookie': True, 'save_cookie': True, 'cookiefile': COOKIEFILE} sts, data = self.get_Page(url) if not sts: return valTab printDBG( 'Host listsItems data: '+data ) #data = self.cm.ph.getAllItemsBeetwenMarkers(data, 'div class="categoriesbox', ' ') data = data.split('class="categoriesbox') if len(data): del data[0] for item in data: phTitle = self.cm.ph.getSearchGroups(item, '''alt=['"]([^"^']+?)['"]''', 1, True)[0] phImage = self.cm.ph.getSearchGroups(item, '''src=['"]([^"^']+?)['"]''', 1, True)[0] phUrl = self.cm.ph.getSearchGroups(item, '''href=['"]([^"^']+?)['"]''', 1, True)[0] phTitle = phTitle.replace(' movies', '').replace('Porn Videos', '') if phUrl.startswith('/'): phUrl = self.MAIN_URL + phUrl valTab.append(CDisplayListItem(phTitle,phTitle,CDisplayListItem.TYPE_CATEGORY, [phUrl],'eporner-clips', phImage, phUrl)) valTab.sort(key=lambda poz: poz.name) valTab.insert(0,CDisplayListItem("--- 4k ---", "4k", CDisplayListItem.TYPE_CATEGORY,["https://www.eporner.com/category/4k-porn/"], 'eporner-clips', '','/4k/')) valTab.insert(0,CDisplayListItem("--- HD ---", "HD", CDisplayListItem.TYPE_CATEGORY,["http://www.eporner.com/hd/"], 'eporner-clips', '','/hd/')) valTab.insert(0,CDisplayListItem("--- Top Rated ---", "Top Rated", CDisplayListItem.TYPE_CATEGORY,["http://www.eporner.com/top_rated/"], 'eporner-clips', '','/top_rated/')) valTab.insert(0,CDisplayListItem("--- Popular ---", "Popular", CDisplayListItem.TYPE_CATEGORY,["http://www.eporner.com/weekly_top/"], 'eporner-clips', '','/weekly_top/')) valTab.insert(0,CDisplayListItem("--- On Air ---", "On Air", CDisplayListItem.TYPE_CATEGORY,["http://www.eporner.com/currently/"], 'eporner-clips', '','/currently/')) valTab.insert(0,CDisplayListItem("--- New ---", "New", CDisplayListItem.TYPE_CATEGORY,["http://www.eporner.com/"], 'eporner-clips', '','')) self.SEARCH_proc='eporner-search' valTab.insert(0,CDisplayListItem(_('Search history'), _('Search history'), CDisplayListItem.TYPE_CATEGORY, [''], 'HISTORY', '', None)) valTab.insert(0,CDisplayListItem(_('Search'), _('Search'), CDisplayListItem.TYPE_SEARCH, [''], '', '', None)) return valTab if 'eporner-search' == name: printDBG( 'Host listsItems begin name='+name ) valTab = self.listsItems(-1, 'https://www.eporner.com/search/%s/' % url.replace(' ','+'), 'eporner-clips') return valTab if 'eporner-clips' == name: printDBG( 'Host listsItems begin name='+name ) catUrl = self.currList[Index].possibleTypesOfSearch self.MAIN_URL = 'http://www.eporner.com' COOKIEFILE = os_path.join(GetCookieDir(), 'eporner.cookie') self.HTTP_HEADER = self.cm.getDefaultHeader(browser='chrome') self.defaultParams = {'header':self.HTTP_HEADER, 'use_cookie': True, 'load_cookie': True, 'save_cookie': True, 'cookiefile': COOKIEFILE} sts, data = self.get_Page(url) if not sts: return valTab printDBG( 'Host listsItems data: '+data ) next = self.cm.ph.getSearchGroups(data, '''([^>]+?)<''', 1, True)[0] mbrate = self.cm.ph.getSearchGroups(item, '''mbrate".+?>([^>]+?)<''', 1, True)[0] mbvie = self.cm.ph.getSearchGroups(item, '''mbvie".+?>([^>]+?)<''', 1, True)[0] if mbrate: mbrate = '['+mbrate+'] ' if mbvie: mbvie = '[Views: '+mbvie+'] ' size = self.cm.ph.getSearchGroups(item, '''([^>]+?)''', 1, True)[0] if phUrl.startswith('//'): phUrl = 'http:' + phUrl if phUrl.startswith('/'): phUrl = self.MAIN_URL + phUrl if phImage.startswith('//'): phImage = 'http:' + phImage valTab.append(CDisplayListItem(decodeHtml(phTitle)+' '+size,'['+phRuntime+'] '+decodeHtml(phTitle)+' '+size+'\n'+mbrate+mbvie,CDisplayListItem.TYPE_VIDEO, [CUrlItem('', phUrl, 1)], 0, phImage, None)) if next: if next.startswith('/'): next = self.MAIN_URL + next valTab.append(CDisplayListItem('Next', 'Next: '+ next, CDisplayListItem.TYPE_CATEGORY, [next], name, '', catUrl)) return valTab if 'pornhub' == name: printDBG( 'Host listsItems begin name='+name ) self.MAIN_URL = 'http://www.pornhub.com' COOKIEFILE = os_path.join(GetCookieDir(), 'pornhub.cookie') self.defaultParams = {'use_cookie': True, 'load_cookie': True, 'save_cookie': True, 'cookiefile': COOKIEFILE} sts, data = self._getPage(url, self.defaultParams) if not sts: return valTab #printDBG( 'Host listsItems data: '+data ) data = self.cm.ph.getAllItemsBeetwenMarkers(data, '
  • ''')[0].replace('&','&') if not next: next = self.cm.ph.getSearchGroups(data, '''"') #printDBG( 'Host2 getResolvedURL data: '+str(data) ) for item in data: phTitle = self.cm.ph.getSearchGroups(item, '''title=['"]([^"^']+?)['"]''', 1, True)[0].replace('&','&') phImage = self.cm.ph.getSearchGroups(item, '''data-mediumthumb=['"]([^"^']+?)['"]''', 1, True)[0] phUrl = self.cm.ph.getSearchGroups(item, '''href=['"]([^"^']+?)['"]''', 1, True)[0] phRuntime = self.cm.ph.getSearchGroups(item, '''"duration">([^"^']+?)<''', 1, True)[0] phAdded = self.cm.ph.getSearchGroups(item, '''class="added">([^"^']+?)<''', 1, True)[0] OldImage = self.cm.ph.getSearchGroups(item, '''data-image=['"]([^"^']+?)['"]''', 1, True)[0] phUrl = self.MAIN_URL+phUrl if not OldImage: valTab.append(CDisplayListItem(decodeHtml(phTitle),'['+phRuntime+'] '+decodeHtml(phTitle)+ '\n[Added: '+phAdded+'] ',CDisplayListItem.TYPE_VIDEO, [CUrlItem('', phUrl, 1)], 0, phImage, None)) if next: valTab.append(CDisplayListItem('Next', 'Next '+re.sub('.+page=', '', next), CDisplayListItem.TYPE_CATEGORY, [next], name, 'http://www.clker.com/cliparts/n/H/d/S/N/j/green-next-page-button-hi.png', None)) return valTab if 'hdporn' == name: printDBG( 'Host listsItems begin name='+name ) self.MAIN_URL = 'http://www.hdporn.net' COOKIEFILE = os_path.join(GetCookieDir(), 'hdporn.cookie') self.HTTP_HEADER = self.cm.getDefaultHeader(browser='chrome') self.defaultParams = {'header':self.HTTP_HEADER, 'use_cookie': True, 'load_cookie': True, 'save_cookie': True, 'cookiefile': COOKIEFILE} sts, data = self.get_Page(url) if not sts: return printDBG( 'HD Porn adatok: '+data ) data = self.cm.ph.getDataBeetwenMarkers(data, 'ul id="channel_box">', '', False)[1] data = self.cm.ph.getAllItemsBeetwenMarkers(data, '
  • ', '') phImage = 'https://cdni.pornpics.com/460/1/256/72714917/72714917_004_404a.jpg' for item in data: phTitle = self.cm.ph.getSearchGroups(item, '''title=['"]([^"^']+?)['"]''', 1, True)[0].replace('&','&') phUrl = self.cm.ph.getSearchGroups(item, '''href=['"]([^"^']+?)['"]''', 1, True)[0] phUrl = self.cm.getFullUrl(phUrl, self.MAIN_URL) valTab.append(CDisplayListItem(phTitle,phTitle,CDisplayListItem.TYPE_CATEGORY, [phUrl],'hdporn-clips', phImage, None)) valTab.sort(key=lambda poz: poz.name) valTab.insert(0,CDisplayListItem("--- Top Rated ---","Top Rated", CDisplayListItem.TYPE_CATEGORY,[self.MAIN_URL+"/top-rated/"] , 'hdporn-clips','https://cdni.pornpics.com/1280/7/487/89451786/89451786_015_f08f.jpg', None)) valTab.insert(0,CDisplayListItem("--- Home ---","Home", CDisplayListItem.TYPE_CATEGORY,[self.MAIN_URL] , 'hdporn-clips','https://cdni.pornpics.com/1280/7/514/55629529/55629529_044_dae9.jpg', None)) return valTab if 'hdporn-clips' == name: printDBG( 'Host listsItems begin name='+name ) COOKIEFILE = os_path.join(GetCookieDir(), 'hdporn.cookie') self.HTTP_HEADER = self.cm.getDefaultHeader(browser='chrome') self.defaultParams = {'header':self.HTTP_HEADER, 'use_cookie': True, 'load_cookie': True, 'save_cookie': True, 'cookiefile': COOKIEFILE} sts, data = self.get_Page(url) if not sts: return printDBG( 'Host listsItems data: '+data ) next = re.findall('', data, re.S) data = self.cm.ph.getAllItemsBeetwenMarkers(data, 'class="content', '') for item in data: phTitle = self.cm.ph.getSearchGroups(item, '''alt="([^"]+?)"''', 1, True)[0] phImage = self.cm.ph.getSearchGroups(item, '''src=['"]([^"^']+?)['"]''', 1, True)[0] phUrl = self.cm.ph.getSearchGroups(item, '''href=['"]([^"^']+?)['"]''', 1, True)[0].replace('&','&') phRuntime = self.cm.ph.getSearchGroups(item, '''TIME:([^"^']+?)<''', 1, True)[0].strip() phUrl = self.cm.getFullUrl(phUrl, self.MAIN_URL) valTab.append(CDisplayListItem(phTitle,'['+phRuntime+'] '+phTitle,CDisplayListItem.TYPE_VIDEO, [CUrlItem('', phUrl, 1)], 0, phImage, None)) if next: next = re.findall("", next[0], re.S) if len(next)>0: #next = self.cm.getFullUrl(next[0], self.MAIN_URL) valTab.append(CDisplayListItem('Next', next[0].replace('.html',''), CDisplayListItem.TYPE_CATEGORY, [self.cm.getFullUrl(next[0], url)], name, 'http://www.clker.com/cliparts/n/H/d/S/N/j/green-next-page-button-hi.png', None)) return valTab if 'pornrabbit' == name: printDBG( 'Host listsItems begin name='+name ) self.MAIN_URL = 'http://www.pornrabbit.com' COOKIEFILE = os_path.join(GetCookieDir(), 'pornrabbit.cookie') self.defaultParams = {'use_cookie': True, 'load_cookie': True, 'save_cookie': True, 'cookiefile': COOKIEFILE} sts, data = self.getPage(url, 'pornrabbit.cookie', 'pornrabbit.com', self.defaultParams) if not sts: return valTab next_page = self.cm.ph.getDataBeetwenMarkers(data, 'next">') if len(data): del data[0] for item in data: phTitle = self.cm.ph.getSearchGroups(item, '''title=["]([^"]+?)["]>''', 1, True)[0] if not phTitle: phTitle = self.cm.ph.getSearchGroups(item, '''alt=["]([^"]+?)["]''', 1, True)[0] phUrl = self.cm.ph.getSearchGroups(item, '''href=['"]([^"^']+?)['"]''', 1, True)[0] phImage = self.cm.ph.getSearchGroups(item, '''original=['"]([^"^']+?)['"]''', 1, True)[0] phTime = self.cm.ph.getSearchGroups(item, '''duration"[>]([^"^']+?)[<]''', 1, True)[0] if phImage.startswith('//'): phImage = 'https:' + phImage if phUrl.startswith('/'): phUrl = self.MAIN_URL + phUrl valTab.append(CDisplayListItem(decodeHtml(phTitle),'['+phTime+'] '+decodeHtml(phTitle),CDisplayListItem.TYPE_VIDEO, [CUrlItem('', phUrl, 1)], 0, phImage, None)) valTab.sort(key=lambda poz: poz.name) if next_page: next_number = self.cm.ph.getSearchGroups(item, '''[/]([^a-z]+?)[/]''', 1, True)[0] valTab.append(CDisplayListItem('Next Page', 'Next Page: '+next_number, CDisplayListItem.TYPE_CATEGORY, [next_page], name, '', None)) printDBG( 'Kövi lapszám='+next_page ) valTab.sort(key=lambda poz: poz.name) valTab.insert(0,CDisplayListItem("--- Most Viewed ---","Most Viewed", CDisplayListItem.TYPE_CATEGORY,['https://www.pornrabbit.com/most-popular/'], 'pornrabbit', '', None)) valTab.insert(0,CDisplayListItem("--- Top Rated ---","Top Rated", CDisplayListItem.TYPE_CATEGORY,['https://www.pornrabbit.com/top-rated/'], 'pornrabbit', '', None)) valTab.insert(0,CDisplayListItem("--- New ---","New", CDisplayListItem.TYPE_CATEGORY,['https://www.pornrabbit.com/latest-updates/'], 'pornrabbit', '', None)) self.SEARCH_proc='pornrabbit-search' valTab.insert(0,CDisplayListItem(_('Search history'), _('Search history'), CDisplayListItem.TYPE_CATEGORY, [''], 'HISTORY', '', None)) valTab.insert(0,CDisplayListItem(_('Search'), _('Search'), CDisplayListItem.TYPE_SEARCH, [''], '', '', None)) return valTab if 'pornrabbit-search' == name: printDBG( 'Host listsItems begin name='+name ) valTab = self.listsItems(-1, 'https://www.pornrabbit.com/%s/' % url.replace(' ','-'), 'pornrabbit') return valTab if 'pornrabbit-clips' == name: printDBG( 'Host listsItems begin name='+name ) catUrl = self.currList[Index].possibleTypesOfSearch COOKIEFILE = os_path.join(GetCookieDir(), 'pornrabbit.cookie') self.defaultParams = {'use_cookie': True, 'load_cookie': True, 'save_cookie': True, 'cookiefile': COOKIEFILE} sts, data = self.getPage(url, 'pornrabbit.cookie', 'pornrabbit.com', self.defaultParams) if not sts: return valTab printDBG( 'Host listsItems data: '+data ) next = self.cm.ph.getDataBeetwenMarkers(data, 'pagination', 'Next', False)[1] #data = self.cm.ph.getAllItemsBeetwenMarkers(data, '', '') data = data.split('data-video=') if len(data): del data[0] for item in data: phTitle = self.cm.ph.getSearchGroups(item, '''title=['"]([^"^']+?)['"]''', 1, True)[0].replace(' Porn Videos','') phUrl = self.cm.ph.getSearchGroups(item, '''href=['"]([^"^']+?)['"]''', 1, True)[0] if phUrl.startswith('/'): phUrl = self.MAIN_URL + phUrl phImage = self.cm.ph.getSearchGroups(item, '''data-original=['"]([^"^']+?)['"]''', 1, True)[0] if not phImage: phImage = self.cm.ph.getSearchGroups(item, '''src=['"]([^"^']+?)['"]''', 1, True)[0] Runtime = self.cm.ph.getSearchGroups(item, '''([^>]+?)<''', 1, True)[0] if Runtime: valTab.append(CDisplayListItem(decodeHtml(phTitle),'['+Runtime+'] '+decodeHtml(phTitle),CDisplayListItem.TYPE_VIDEO, [CUrlItem('', phUrl, 1)], 0, phImage, None)) if next: next = re.compile('''href=['"]([^'^"]+?)['"]''').findall(next) if next: next = next[-1] if next.startswith('/'): next = 'https://www.pornrabbit.com' + next if next.startswith('page'): next = re.sub('page.+', '', url) + next valTab.append(CDisplayListItem('Next', next, CDisplayListItem.TYPE_CATEGORY, [next], name, '', None)) return valTab if 'PORNWHITE' == name: printDBG( 'Host listsItems begin name='+name ) self.MAIN_URL = 'https://www.pornwhite.com' COOKIEFILE = os_path.join(GetCookieDir(), 'pornwhite.cookie') self.defaultParams = {'use_cookie': True, 'load_cookie': True, 'save_cookie': True, 'cookiefile': COOKIEFILE} sts, data = self.getPage(url, 'pornwhite.cookie', 'pornwhite.com', self.defaultParams) if not sts: return valTab data = self.cm.ph.getDataBeetwenMarkers(data, '
    ', '
    ', False)[1] data = self.cm.ph.getAllItemsBeetwenMarkers(data, '
    ', '', False) for item in data: phUrl = self.cm.ph.getSearchGroups(item, '''href=['"]([^"^']+?)['"]''', 1, True)[0] phTitle = self.cm.ph.getSearchGroups(item, '''title=['"]([^"^']+?)['"]''', 1, True)[0].strip() if not phTitle: phTitle = self.cm.ph.getSearchGroups(item, '''alt=['"]([^"^']+?)['"]''', 1, True)[0].strip() phImage = self.cm.ph.getSearchGroups(item, '''src=['"]([^"^']+?)['"]''', 1, True)[0] if 'gif' in phImage: phImage = self.cm.ph.getSearchGroups(item, '''data-original=['"]([^"^']+?)['"]''', 1, True)[0] if phTitle: valTab.append(CDisplayListItem(decodeHtml(phTitle),decodeHtml(phTitle),CDisplayListItem.TYPE_CATEGORY, [phUrl],'PORNWHITE-clips', phImage, phUrl)) valTab.sort(key=lambda poz: poz.name) valTab.insert(0,CDisplayListItem("--- Newest Videos ---", "Newest Videos", CDisplayListItem.TYPE_CATEGORY,["https://www.pornwhite.com/latest-updates/"], 'PORNWHITE-clips', 'https://cdni.pornpics.com/1280/7/263/69569468/69569468_112_2a10.jpg',None)) valTab.insert(0,CDisplayListItem("--- Top Rated Videos ---", "Top Rated Videos", CDisplayListItem.TYPE_CATEGORY,["https://www.pornwhite.com/top-rated/"], 'PORNWHITE-clips', 'https://cdni.pornpics.com/1280/7/465/98051221/98051221_018_558d.jpg',None)) valTab.insert(0,CDisplayListItem("--- Popular Videos ---", "Popular Videos", CDisplayListItem.TYPE_CATEGORY,["https://www.pornwhite.com/most-popular/"], 'PORNWHITE-clips', 'https://cdni.pornpics.com/1280/7/583/71891242/71891242_034_0b65.jpg',None)) self.SEARCH_proc='PORNWHITE-search' valTab.insert(0,CDisplayListItem(_('Search history'), _('Search history'), CDisplayListItem.TYPE_CATEGORY, [''], 'HISTORY', 'https://img2.thejournal.ie/inline/2398415/original/?width=630&version=2398415', None)) valTab.insert(0,CDisplayListItem(_('Search'), _('Search'), CDisplayListItem.TYPE_SEARCH, [''], '', 'https://www.hyperpoolgroup.co.za/wp-content/uploads/2018/07/Product-Search.jpg', None)) return valTab if 'PORNWHITE-search' == name: printDBG( 'Host listsItems begin name='+name ) valTab = self.listsItems(-1, 'https://www.pornwhite.com/search/?q=%s' % url.replace(' ','+'), 'PORNWHITE-clips') return valTab if 'PORNWHITE-clips' == name: printDBG( 'Host listsItems begin name='+name ) catUrl = self.currList[Index].possibleTypesOfSearch COOKIEFILE = os_path.join(GetCookieDir(), 'pornwhite.cookie') self.HTTP_HEADER = self.cm.getDefaultHeader(browser='iphone_3_0') self.defaultParams = {'header':self.HTTP_HEADER, 'use_cookie': True, 'load_cookie': True, 'save_cookie': True, 'cookiefile': COOKIEFILE} sts, data = self.getPage(url, 'pornwhite.cookie', 'pornwhite.com', self.defaultParams) if not sts: return '' printDBG( 'Host listsItems data: '+str(data) ) next = self.cm.ph.getSearchGroups(data, '''"next".href=['"]([^"^']+?)['"].title="Next">''', 1, True)[0] data = self.cm.ph.getAllItemsBeetwenMarkers(data, '
    ', False) for item in data: Url = self.cm.ph.getSearchGroups(item, '''href=['"]([^"^']+?)['"]''', 1, True)[0] Title = self.cm.ph.getSearchGroups(item, '''alt=['"]([^"^']+?)['"]''', 1, True)[0] Image = self.cm.ph.getSearchGroups(item, '''data-original=['"]([^"^']+?)['"]''', 1, True)[0] Runtime = self.cm.ph.getSearchGroups(item, '''length">([^"^']+?)<''', 1, True)[0] valTab.append(CDisplayListItem(decodeHtml(Title),'['+Runtime+'] '+decodeHtml(Title),CDisplayListItem.TYPE_VIDEO, [CUrlItem('', Url, 1)], 0, Image, None)) if next: next = self.MAIN_URL + next printDBG( 'Következő oldal: '+next ) valTab.append(CDisplayListItem('Next', 'Page : '+next.split('=')[-1], CDisplayListItem.TYPE_CATEGORY, [next], name, 'http://www.clker.com/cliparts/n/H/d/S/N/j/green-next-page-button-hi.png', None)) return valTab if 'AH-ME' == name: printDBG( 'Host listsItems begin name='+name ) self.MAIN_URL = 'http://www.ah-me.com' host = "Mozilla/5.0 (Linux; U; Android 4.1.1; en-us; androVM for VirtualBox ('Tablet' version with phone caps) Build/JRO03S) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30" header = {'Referer':url, 'User-Agent': host, 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'} query_data = { 'url': url, 'use_host': False, 'use_cookie': False, 'use_post': False, 'return_data': True } try: data = self.cm.getURLRequestData(query_data) except Exception as e: printExc() msg = _("Last error:\n%s" % str(e)) GetIPTVNotify().push('%s' % msg, 'error', 20) printDBG( 'Host listsItems query error url:'+url ) return valTab printDBG( 'Host listsItems data: '+data ) data = self.cm.ph.getDataBeetwenMarkers(data, '
    ', 'footer-margin">
    ', False)[1] data = data.split(']([^"^']+?)[<]''', 1, True)[0].capitalize() phImage = 'https://www.ah-me.com/static/images/am-logo-m.png' phUrl = self.cm.ph.getSearchGroups(item, '''=['"]([^"^']+?)['"]''', 1, True)[0] valTab.append(CDisplayListItem(phTitle,phUrl,CDisplayListItem.TYPE_CATEGORY, [phUrl],'AH-ME-clips', phImage, phUrl)) valTab.sort(key=lambda poz: poz.name) valTab.insert(0,CDisplayListItem("--- Last Updates ---", "Last Updates", CDisplayListItem.TYPE_CATEGORY,["https://www.ah-me.com/latest-updates/"], 'AH-ME-clips', '',None)) valTab.insert(0,CDisplayListItem("--- Trending ---", "Trending", CDisplayListItem.TYPE_CATEGORY,["https://www.ah-me.com/popular.porn-video/"], 'AH-ME-clips', '',None)) valTab.insert(0,CDisplayListItem("--- Hot Porn Videos ---", "Hot Porn Videos", CDisplayListItem.TYPE_CATEGORY,["https://www.ah-me.com/"], 'AH-ME-clips', '',None)) valTab.insert(0,CDisplayListItem("--- Most Favorited ---", "Most Favorited", CDisplayListItem.TYPE_CATEGORY,["https://www.ah-me.com/mostfavorites/page1.html"], 'AH-ME-clips', '',None)) self.SEARCH_proc='ahme-search' valTab.insert(0,CDisplayListItem(_('Search history'), _('Search history'), CDisplayListItem.TYPE_CATEGORY, [''], 'HISTORY', 'https://img2.thejournal.ie/inline/2398415/original/?width=630&version=2398415', None)) valTab.insert(0,CDisplayListItem(_('Search'), _('Search'), CDisplayListItem.TYPE_SEARCH, [''], '', 'https://www.hyperpoolgroup.co.za/wp-content/uploads/2018/07/Product-Search.jpg', None)) return valTab if 'ahme-search' == name: printDBG( 'Host listsItems begin name='+name ) valTab = self.listsItems(-1, 'https://www.ah-me.com/search/%s/' % url.replace(' ','+'), 'AH-ME-clips') return valTab if 'AH-ME-clips' == name: printDBG( 'Host listsItems begin name='+name ) catUrl = self.currList[Index].possibleTypesOfSearch self.MAIN_URL = 'http://www.ah-me.com' query_data = { 'url': url, 'use_host': False, 'use_cookie': False, 'use_post': False, 'return_data': True } try: data = self.cm.getURLRequestData(query_data) except: printDBG( 'Host listsItems query error url: '+url ) return valTab printDBG( 'Host listsItems data: '+data ) next = self.cm.ph.getSearchGroups(data, '''next">([^"^']+?)<''', 1, True)[0] valTab.append(CDisplayListItem(decodeHtml(Title),'['+Runtime+'] '+decodeHtml(Title),CDisplayListItem.TYPE_VIDEO, [CUrlItem('', Url, 1)], 0, Image, None)) if next: printDBG( 'Host next: '+next ) valTab.append(CDisplayListItem('Next', 'Next', CDisplayListItem.TYPE_CATEGORY, [next], name, 'http://www.clker.com/cliparts/n/H/d/S/N/j/green-next-page-button-hi.png', None)) return valTab if 'CHATURBATE' == name: printDBG( 'Host listsItems begin name='+name ) self.MAIN_URL = 'https://chaturbate.com' COOKIEFILE = os_path.join(GetCookieDir(), 'chaturbate.cookie') self.HTTP_HEADER = self.cm.getDefaultHeader(browser='Firefox') self.defaultParams = {'header':self.HTTP_HEADER} sts, data = self.getPage4k(url, 'chaturbate.cookie', 'chaturbate.com', self.defaultParams) #sts, data = self.get_Page(url) if not sts: return printDBG( 'Host listsItems data: '+data ) next_page = self.cm.ph.getDataBeetwenMarkers(data, '
      ', '
    ', False)[1] catUrl = self.currList[Index].possibleTypesOfSearch if catUrl<>'next': valTab.append(CDisplayListItem('Female', 'Female',CDisplayListItem.TYPE_CATEGORY, [self.MAIN_URL+'/female-cams/'],'CHATURBATE-clips', '', None)) valTab.append(CDisplayListItem('Featured', 'Featured',CDisplayListItem.TYPE_CATEGORY, [self.MAIN_URL],'CHATURBATE-clips', '', None)) valTab.append(CDisplayListItem('Couple', 'Couple',CDisplayListItem.TYPE_CATEGORY, [self.MAIN_URL+'/couple-cams/'],'CHATURBATE-clips', '', None)) valTab.append(CDisplayListItem('Transsexual', 'Transsexual',CDisplayListItem.TYPE_CATEGORY, [self.MAIN_URL+'/transsexual-cams/'],'CHATURBATE-clips', '', None)) valTab.append(CDisplayListItem('HD', 'HD',CDisplayListItem.TYPE_CATEGORY, [self.MAIN_URL+'/hd-cams/'],'CHATURBATE-clips', '', None)) valTab.append(CDisplayListItem('Teen (18+)', 'Teen',CDisplayListItem.TYPE_CATEGORY, [self.MAIN_URL+'/teen-cams/'],'CHATURBATE-clips', '', None)) valTab.append(CDisplayListItem('18 to 21', '18 to 21',CDisplayListItem.TYPE_CATEGORY, [self.MAIN_URL+'/18to21-cams/'],'CHATURBATE-clips', '', None)) valTab.append(CDisplayListItem('20 to 30', '20 to 30',CDisplayListItem.TYPE_CATEGORY, [self.MAIN_URL+'/20to30-cams/'],'CHATURBATE-clips', '', None)) valTab.append(CDisplayListItem('30 to 50', '30 to 50',CDisplayListItem.TYPE_CATEGORY, [self.MAIN_URL+'/30to50-cams/'],'CHATURBATE-clips', '', None)) valTab.append(CDisplayListItem('Euro Russian', 'Euro Russian',CDisplayListItem.TYPE_CATEGORY, [self.MAIN_URL+'/euro-russian-cams/'],'CHATURBATE-clips', '', None)) valTab.append(CDisplayListItem('Exhibitionist', 'Exhibitionist',CDisplayListItem.TYPE_CATEGORY, [self.MAIN_URL+'/exhibitionist-cams/'],'CHATURBATE-clips', '', None)) data = self.cm.ph.getDataBeetwenMarkers(data, 'Available Private Shows', 'Footer-Meta', False)[1] data = self.cm.ph.getAllItemsBeetwenMarkers(data, '
    ', '
    ') for item in data: phUrl = self.cm.ph.getSearchGroups(item, '''href=['"]([^"^']+?)['"]''', 1, True)[0] if phUrl == '/': continue phTitle = self.cm.ph.getSearchGroups(item, '''nav[>]([^"^']+?)[<]''', 1, True)[0].strip() phUrl = self.MAIN_URL + phUrl valTab.append(CDisplayListItem(phTitle,phTitle,CDisplayListItem.TYPE_CATEGORY, [phUrl],'CHATURBATE-clips', '', None)) if next_page: next_page = self.cm.ph.getAllItemsBeetwenMarkers(next_page, '') for item in next_page: next = self.cm.ph.getSearchGroups(item, '''href=['"]([^"^']+?)['"]''', 1, True)[0].replace('&','&') if next.startswith('/'): next = self.MAIN_URL + next if next == '#': return valTab valTab.append(CDisplayListItem('Next', next, CDisplayListItem.TYPE_CATEGORY, [next], name, '', 'next')) return valTab if 'CHATURBATE-clips' == name: printDBG( 'Host listsItems begin name='+name ) COOKIEFILE = os_path.join(GetCookieDir(), 'chaturbate.cookie') self.HTTP_HEADER = self.cm.getDefaultHeader(browser='chrome') self.defaultParams = {'header':self.HTTP_HEADER, 'use_cookie': True, 'load_cookie': True, 'save_cookie': True, 'cookiefile': COOKIEFILE} sts, data = self.getPage4k(url, 'chaturbate.cookie', 'chaturbate.com', self.defaultParams) #sts, data = self.get_Page(url) #sts, data = self._getPage(url, self.defaultParams) if not sts: return printDBG( 'Host listsItems data: '+data ) cookieHeader = self.cm.getCookieHeader(COOKIEFILE) match = re.search('class="endless_separator".*?
  • ([^>]+?)<''', 1, True)[0] Description='' Location=self.cm.ph.getSearchGroups(item, '''location">([^>]+?)<''', 1, True)[0] Viewers=self.cm.ph.getSearchGroups(item, '''viewers">([^>]+?)v''', 1, True)[0] phTime = self.cm.ph.getSearchGroups(item, '''time">([^>]+?)<''', 1, True)[0] if Url.startswith('/'): Url = self.MAIN_URL + Url printDBG( 'Lekért szoba: '+Url ) Image = strwithmeta(Image, {'Referer':url, 'Cookie':cookieHeader}) valTab.append(CDisplayListItem(decodeHtml(Title),decodeHtml(Title)+' * [Age: '+decodeHtml(Age)+'] * [Location: '+decodeHtml(Location)+'] * [Time: '+phTime+'] * [Viewers: '+Viewers+']' ,CDisplayListItem.TYPE_VIDEO, [CUrlItem('', Url, 1)], 0, Image, None)) if match: printDBG( 'Host listsItems Next: ' +match.group(1) ) if match.group(1).startswith('/'): Url = self.MAIN_URL + match.group(1) valTab.append(CDisplayListItem('Next', self.MAIN_URL +match.group(1), CDisplayListItem.TYPE_CATEGORY, [Url], name, '', None)) return valTab if 'AMATEURPORN' == name: printDBG( 'Host listsItems begin name='+name ) self.MAIN_URL = 'https://www.amateurporn.me' COOKIEFILE = os_path.join(GetCookieDir(), 'amateurporn.cookie') self.HTTP_HEADER = self.cm.getDefaultHeader(browser='chrome') self.defaultParams = {'header':self.HTTP_HEADER, 'use_cookie': True, 'load_cookie': True, 'save_cookie': True, 'cookiefile': COOKIEFILE} sts, data = self.get_Page(url) if not sts: return valTab printDBG( 'Host listsItems data: '+data ) cookieHeader = self.cm.getCookieHeader(COOKIEFILE) match = re.search('class="endless_separator".*?
  • ') #printDBG( 'Host2 data: '+str(data) ) for item in data: Title = self.cm.ph.getSearchGroups(item, '''title=['"]([^"^']+?)['"]''', 1, True)[0] Image = self.cm.ph.getSearchGroups(item, '''src=['"]([^"^']+?)['"]''', 1, True)[0] Url = self.cm.ph.getSearchGroups(item, '''href=['"]([^"^']+?)['"]''', 1, True)[0] Gender='' Age=self.cm.ph.getSearchGroups(item, '''([^>]+?)<''', 1, True)[0] Description='' Location=self.cm.ph.getSearchGroups(item, '''location" style="display: none;">([^>]+?)<''', 1, True)[0] Viewers='' bitrate = self.cm.ph.getSearchGroups(item, '''thumbnail_label.*?>([^>]+?)<''', 1, True)[0] if Url.startswith('/'): Url = self.MAIN_URL + Url valTab.append(CDisplayListItem(Title,Url,CDisplayListItem.TYPE_CATEGORY, [Url],'AMATEURPORN-clips', '', None)) valTab.sort(key=lambda poz: poz.name) self.SEARCH_proc='AMATEURPORN-search' valTab.insert(0,CDisplayListItem(_('Search history'), _('Search history'), CDisplayListItem.TYPE_CATEGORY, [''], 'HISTORY', '', None)) valTab.insert(0,CDisplayListItem(_('Search'), _('Search'), CDisplayListItem.TYPE_SEARCH, [''], '', '', None)) return valTab if 'AMATEURPORN-search' == name: printDBG( 'Host listsItems begin name='+name ) valTab = self.listsItems(-1, 'https://www.amateurporn.me/search/%s/' % url.replace(' ','+'), 'AMATEURPORN-clips') return valTab if 'AMATEURPORN-clips' == name: printDBG( 'Host listsItems begin name='+name ) COOKIEFILE = os_path.join(GetCookieDir(), 'amateurporn.cookie') self.HTTP_HEADER = self.cm.getDefaultHeader(browser='chrome') self.defaultParams = {'header':self.HTTP_HEADER, 'use_cookie': True, 'load_cookie': True, 'save_cookie': True, 'cookiefile': COOKIEFILE} sts, data = self.get_Page(url) if not sts: return valTab printDBG( 'Host listsItems data: '+data ) next = self.cm.ph.getDataBeetwenMarkers(data, '
  • ', False)[1] data = data.split('
    ') if len(data): del data[0] for item in data: phTitle = self.cm.ph.getSearchGroups(item, '''alt=['"]([^"^']+?)['"]''', 1, True)[0].replace('Model ','') phUrl = self.cm.ph.getSearchGroups(item, '''href=['"]([^"^']+?)['"]''', 1, True)[0] phImage = self.cm.ph.getSearchGroups(item, '''data-original=['"]([^"^']+?)['"]''', 1, True)[0] Runtime = self.cm.ph.getSearchGroups(item, '''duration">([^>]+?)<''', 1, True)[0] Added = self.cm.ph.getSearchGroups(item, '''added">([^>]+?)<''', 1, True)[0] if Added: Added = 'Added: '+ Added if phUrl.startswith('/'): phUrl = self.MAIN_URL + phUrl if phImage.startswith('//'): phImage = 'http:' + phImage valTab.append(CDisplayListItem(decodeHtml(phTitle),'['+Runtime+'] '+phTitle+'\n'+Added,CDisplayListItem.TYPE_VIDEO, [CUrlItem('', phUrl, 1)], 0, phImage, None)) if next: page = self.cm.ph.getSearchGroups(str(next), '''from:([^"^']+?)['"]''')[0] next = url + '?mode=async&function=get_block&block_id=list_videos_common_videos_list&sort_by=post_date&from='+page valTab.append(CDisplayListItem('Next', 'Page : '+page, CDisplayListItem.TYPE_CATEGORY, [next], name, '', 'Next')) return valTab if 'FOTKA-PL-KAMERKI' == name: printDBG( 'Host listsItems begin name='+name ) self.MAIN_URL = url query_data = { 'url': url, 'use_host': False, 'use_cookie': False, 'use_post': False, 'return_data': True } try: data = self.cm.getURLRequestData(query_data) except Exception as e: printExc() msg = _("Last error:\n%s" % str(e)) GetIPTVNotify().push('%s' % msg, 'error', 20) printDBG( 'Host listsItems query error url: '+url ) return valTab printDBG( 'Host listsItems data: '+data ) parse = re.search('"rooms":(.*?),"status":"OK"', data, re.S) if not parse: return valTab #printDBG( 'Host listsItems parse.group(1): '+parse.group(1) ) result = simplejson.loads(parse.group(1)) if result: for item in result: try: Name = str(item["name"]) Age = str(item["age"]) Url = str(item["streamUrl"].replace('\/','/'))+' live=1' Title = str(item["title"]) Viewers = str(item["viewers"]) Image = str(item["av_126"].replace('\/','/')) hls = str(item["streamMPEGHLSUrl"].replace('\/','/')) try: Image = str(item["av_640"].replace('\/','/')) except Exception: printExc() if config.plugins.iptvplayer.fotka.value == '0': Url = hls.replace('https','http').replace('manifest.hls','index.m3u8') valTab.append(CDisplayListItem(Name,'[Age : '+Age+']'+' [Views: '+Viewers+'] '+Title, CDisplayListItem.TYPE_VIDEO, [CUrlItem('', Url, 0)], 0, Image, None)) except Exception: printExc() return valTab if 'FULLPORNER' == name: printDBG( 'Host listsItems begin name='+name ) self.MAIN_URL = 'https://fullporner.com' COOKIEFILE = os_path.join(GetCookieDir(), 'fullporner.cookie') self.HTTP_HEADER = self.cm.getDefaultHeader(browser='chrome') self.HTTP_HEADER['Referer'] = url self.defaultParams = {'header':self.HTTP_HEADER, 'use_cookie': True, 'load_cookie': True, 'save_cookie': True, 'cookiefile': COOKIEFILE} sts, data = self.getPage(url, 'fullporner.cookie', 'fullporner.com', self.defaultParams) printDBG( 'Host listsItems data: '+data ) data = self.cm.ph.getAllItemsBeetwenMarkers(data, '
    ', '
    ') for item in data: phUrl = self.cm.ph.getSearchGroups(item, '''href=['"]([^"^']+?)['"]''', 1, True)[0] if phUrl.startswith('/'): phUrl = self.MAIN_URL + phUrl phImage = self.cm.ph.getSearchGroups(item, '''src=["']([^"^']+?)["'] alt''', 1, True)[0] if phImage.startswith('//'): phImage = 'https:' + phImage if not phImage: phImage = 'https://cdni.pornpics.com/1280/1/99/62508200/62508200_008_b228.jpg' phTitle = self.cm.ph.getSearchGroups(item, '''alt=["']([^"^']+?)["']>Next''', 1, True)[0] printDBG( 'Lekert info: ' +data) data = self.cm.ph.getDataBeetwenMarkers(data, '
    ', '