# -*- 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(" ([^>]+?)
') if len(data): del data[0] for item in data: phUrl = self.cm.ph.getSearchGroups(item, '''href=['"]([^"^']+?)['"].data''', 1, True)[0] if phUrl.startswith('/'): phUrl = self.MAIN_URL + phUrl phTitle = self.cm.ph.getSearchGroups(item, '''alt=["](.+?)["]''', 1, True)[0].replace('"','"') phImage = 'https://st.depositphotos.com/1008768/4671/i/450/depositphotos_46718835-stock-photo-play-video.jpg' 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 'BOUNDHUB' == name: printDBG( 'Host listsItems begin name='+name ) self.MAIN_URL = 'http://www.boundhub.com' COOKIEFILE = os_path.join(GetCookieDir(), 'boundhub.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 = self.cm.ph.getDataBeetwenMarkers(data, '