Browse Source

Merge pull request #19 from host505/master

 sources_ lambdascrapers: replaced/added some scrapers by jewbmx
pull/21/head
I-A-C 1 year ago
parent
commit
de68ede792
No account linked to committer's email address

+ 8
- 8
lib/default.py View File

@@ -49,7 +49,7 @@ if mode == "toggleAll":
toggleAll(params['setting'], open_id, sourceList=sourcelist)

if mode == "toggleAllDebrid":
sourcelist = ['300mbfilms','bestmoviez','ddls','ddlvalley','directdl','gomovies','hevcfilm',
sourcelist = ['2ddl','300mbfilms','bestmoviez','ddls','ddlvalley','directdl','gomovies','hevcfilm',
'moviesonline','myvideolink','phazeddl','power','releasebb','RLSB','rlsbb','rlsmovies','rlsscn',
'scenerls','sceper','seriescr','tvbmoviez','tvrelease','ultrahd','ultrahdindir','wrzcraft']
toggleAll(params['setting'], params['open_id'], sourcelist)
@@ -78,13 +78,13 @@ if mode == "toggleAllForeign":
toggleAll(params['setting'], params['open_id'], sourcelist)

if mode == "Defaults":
sourcelist = ['1080P','123movies','123moviesgold','123netflix','1movie','2ddl',
'4kmovieto','Hdmto','afdah','allrls','allucen','animeultima','bmoviez','bnwmovies','bob',
'cmovies','coolmoviezone','cooltv','darewatch','divxcrawler','dltube','einthusan',
'filmxy','flenix','flixanity','freefmovies','freeputlockers','furk','genvideos','gogoanime',
'gowatchseries','hdpopcorns','icefilms','icouchtuner','kattv','l23movies','library',
'm4ufree','megahd','movie4uch','moviesplanet','myputlock','mywatchseries','ororo',
'plocker','primewire','projectfree','pron','rajahoki88','seehd','series9','seriesfree',
sourcelist = ['1080P','123movies','123moviesgold','123netflix','1movie',
'4kmovieto','Hdmto','afdah','allrls','animeultima','bmoviez','bnwmovies','bob',
'cartoonhd','cmovies','coolmoviezone','cooltv','darewatch','divxcrawler','dltube','einthusan',
'filmxy','flenix','flixanity','fmovies','freefmovies','freeputlockers','furk','genvideos','gogoanime',
'gowatchseries','hackimdb','hdpopcorns','icefilms','icouchtuner','iwatchflixxyz','kattv','l23movies','library',
'm4ufree','megahd','movie4uch','moviesplanet','myputlock','myvideolink','mywatchseries','odb','openloadmovie','ororo',
'plocker','popcorn','primewire','projectfree','pron','putlocker','rajahoki88','reddit','seehd','series9','seriesfree',
'seriesonline','sezonlukdizi','showbox','solarmoviez','streamlord','tvbox','videoscraper',
'vodly','watch32','watchonline','watchseries','xmovies','xwatchseries','ymovies']
toggleAll(params['setting'], params['open_id'], sourcelist)

+ 222
- 0
lib/lambdascrapers/sources_ lambdascrapers/en/cartoonhd.py View File

@@ -0,0 +1,222 @@
# -*- coding: UTF-8 -*-
#######################################################################
# ----------------------------------------------------------------------------
# "THE BEER-WARE LICENSE" (Revision 42):
# @tantrumdev wrote this file. As long as you retain this notice you
# can do whatever you want with this stuff. If we meet some day, and you think
# this stuff is worth it, you can buy me a beer in return. - Muad'Dib
# ----------------------------------------------------------------------------
#######################################################################
# -Cleaned and Checked on 10-10-2018 by JewBMX in Yoda.

import re,traceback,urllib,urlparse,json,base64,time,xbmc

from resources.lib.modules import cleantitle
from resources.lib.modules import client
from resources.lib.modules import cache
from resources.lib.modules import directstream
from resources.lib.modules import source_utils

class source:
def __init__(self):
self.priority = 1
self.language = ['en']
self.domains = ['cartoonhd.care']
self.base_link = 'https://cartoonhd.care'

def movie(self, imdb, title, localtitle, aliases, year):
try:
aliases.append({'country': 'us', 'title': title})
url = {'imdb': imdb, 'title': title, 'year': year, 'aliases': aliases}
url = urllib.urlencode(url)
return url
except:
failure = traceback.format_exc()
log_utils.log('CartoonHD - Exception: \n' + str(failure))
return

def tvshow(self, imdb, tvdb, tvshowtitle, localtvshowtitle, aliases, year):
try:
aliases.append({'country': 'us', 'title': tvshowtitle})
url = {'imdb': imdb, 'tvdb': tvdb, 'tvshowtitle': tvshowtitle, 'year': year, 'aliases': aliases}
url = urllib.urlencode(url)
return url
except:
failure = traceback.format_exc()
log_utils.log('CartoonHD - Exception: \n' + str(failure))
return

def episode(self, url, imdb, tvdb, title, premiered, season, episode):
try:
if url == None: return
url = urlparse.parse_qs(url)
url = dict([(i, url[i][0]) if url[i] else (i, '') for i in url])
url['title'], url['premiered'], url['season'], url['episode'] = title, premiered, season, episode
url = urllib.urlencode(url)
return url
except:
failure = traceback.format_exc()
log_utils.log('CartoonHD - Exception: \n' + str(failure))
return

def searchShow(self, title, season, episode, aliases, headers):
try:
for alias in aliases:
url = '%s/show/%s/season/%01d/episode/%01d' % (self.base_link, cleantitle.geturl(title), int(season), int(episode))
url = client.request(url, headers=headers,output='geturl', timeout='10')
if not url == None and url != self.base_link: break
return url
except:
failure = traceback.format_exc()
log_utils.log('CartoonHD - Exception: \n' + str(failure))
return

def searchMovie(self, title, year, aliases, headers):
try:
for alias in aliases:
url = '%s/full-movie/%s' % (self.base_link, cleantitle.geturl(alias['title']))
url = client.request(url, headers=headers, output='geturl', timeout='10')
if not url == None and url != self.base_link: break
if url == None:
for alias in aliases:
url = '%s/full-movie/%s-%s' % (self.base_link, cleantitle.geturl(alias['title']), year)
url = client.request(url, headers=headers, output='geturl', timeout='10')
if not url == None and url != self.base_link: break

return url
except:
failure = traceback.format_exc()
log_utils.log('CartoonHD - Exception: \n' + str(failure))
return

def sources(self, url, hostDict, hostprDict):
try:
sources = []

if url == None: return sources

data = urlparse.parse_qs(url)
data = dict([(i, data[i][0]) if data[i] else (i, '') for i in data])
title = data['tvshowtitle'] if 'tvshowtitle' in data else data['title']
imdb = data['imdb']
aliases = eval(data['aliases'])
headers = {}

if 'tvshowtitle' in data:
url = self.searchShow(title, int(data['season']), int(data['episode']), aliases, headers)
else:
url = self.searchMovie(title, data['year'], aliases, headers)

r = client.request(url, headers=headers, output='extended', timeout='10')

if not imdb in r[0]: raise Exception()

cookie = r[4] ; headers = r[3] ; result = r[0]

try:
r = re.findall('(https:.*?redirector.*?)[\'\"]', result)
for i in r:
try:
sources.append(
{'source': 'gvideo', 'quality': directstream.googletag(i)[0]['quality'], 'language': 'en',
'url': i, 'direct': True, 'debridonly': False})
except:
pass
except:
pass

try: auth = re.findall('__utmx=(.+)', cookie)[0].split(';')[0]
except: auth = 'false'
auth = 'Bearer %s' % urllib.unquote_plus(auth)
headers['Authorization'] = auth
headers['Referer'] = url

u = '/ajax/vsozrflxcw.php'
self.base_link = client.request(self.base_link, headers=headers, output='geturl')
u = urlparse.urljoin(self.base_link, u)

action = 'getEpisodeEmb' if '/episode/' in url else 'getMovieEmb'

elid = urllib.quote(base64.encodestring(str(int(time.time()))).strip())

token = re.findall("var\s+tok\s*=\s*'([^']+)", result)[0]

idEl = re.findall('elid\s*=\s*"([^"]+)', result)[0]

post = {'action': action, 'idEl': idEl, 'token': token, 'nopop': '', 'elid': elid}
post = urllib.urlencode(post)
cookie += ';%s=%s'%(idEl,elid)
headers['Cookie'] = cookie

r = client.request(u, post=post, headers=headers, cookie=cookie, XHR=True)
r = str(json.loads(r))

r = re.findall('\'(http.+?)\'', r) + re.findall('\"(http.+?)\"', r)

for i in r:
try:
if 'google' in i:
quality = 'SD'

if 'googleapis' in i:
try:
quality = source_utils.check_sd_url(i)
except Exception:
pass

if 'googleusercontent' in i:
i = directstream.googleproxy(i)
try:
quality = directstream.googletag(i)[0]['quality']
except Exception:
pass

sources.append({
'source': 'gvideo',
'quality': quality,
'language': 'en',
'url': i,
'direct': True,
'debridonly': False
})

elif 'llnwi.net' in i or 'vidcdn.pro' in i:
try:
quality = source_utils.check_sd_url(i)

sources.append({
'source': 'CDN',
'quality': quality,
'language': 'en',
'url': i,
'direct': True,
'debridonly': False
})

except Exception:
pass
else:
valid, hoster = source_utils.is_host_valid(i, hostDict)
if not valid: continue

sources.append({
'source': hoster,
'quality': '720p',
'language': 'en',
'url': i,
'direct': False,
'debridonly': False
})
except Exception:
pass
return sources
except:
failure = traceback.format_exc()
log_utils.log('CartoonHD - Exception: \n' + str(failure))
return sources

def resolve(self, url):
if 'google' in url and not 'googleapis' in url:
return directstream.googlepass(url)
else:
return url

+ 101
- 0
lib/lambdascrapers/sources_ lambdascrapers/en/fmovies.py View File

@@ -0,0 +1,101 @@
# -*- coding: UTF-8 -*-
#######################################################################
# ----------------------------------------------------------------------------
# "THE BEER-WARE LICENSE" (Revision 42):
# @tantrumdev wrote this file. As long as you retain this notice you
# can do whatever you want with this stuff. If we meet some day, and you think
# this stuff is worth it, you can buy me a beer in return. - Muad'Dib
# ----------------------------------------------------------------------------
#######################################################################
# -Cleaned and Checked on 10-10-2018 by JewBMX in Yoda.

import re,urllib,urlparse,json,base64,time

from resources.lib.modules import cleantitle
from resources.lib.modules import dom_parser2
from resources.lib.modules import client
from resources.lib.modules import debrid

class source:
def __init__(self):
self.priority = 1
self.language = ['en']
self.domains = ['fmovies.sc']
self.base_link = 'http://fmovies.sc'
self.search_link = '/watch/%s-%s-online.html'
def movie(self, imdb, title, localtitle, aliases, year):
try:
clean_title = cleantitle.geturl(title)
url = urlparse.urljoin(self.base_link, (self.search_link %(clean_title,year)))
return url
except:
return

def tvshow(self, imdb, tvdb, tvshowtitle, localtvshowtitle, aliases, year):
try:
aliases.append({'country': 'us', 'title': tvshowtitle})
url = {'imdb': imdb, 'tvdb': tvdb, 'tvshowtitle': tvshowtitle, 'year': year, 'aliases': aliases}
url = urllib.urlencode(url)
return url
except:
return

def episode(self, url, imdb, tvdb, title, premiered, season, episode):
try:
if url == None: return
url = urlparse.parse_qs(url)
url = dict([(i, url[i][0]) if url[i] else (i, '') for i in url])
clean_title = cleantitle.geturl(url['tvshowtitle'])+'-s%02d' % int(season)
url = urlparse.urljoin(self.base_link, (self.search_link %(clean_title,url['year'])))
r = client.request(url)
r = dom_parser2.parse_dom(r, 'div', {'id': 'ip_episode'})
r = [dom_parser2.parse_dom(i, 'a', req=['href']) for i in r if i]
for i in r[0]:
if i.content == 'Episode %s'%episode:
url = i.attrs['href']
return url
except:
return

def sources(self, url, hostDict, hostprDict):
try:
sources = []
if url == None: return sources
r = client.request(url)
quality = re.findall(">(\w+)<\/p",r)
if quality[0] == "HD":
quality = "720p"
else:
quality = "SD"
r = dom_parser2.parse_dom(r, 'div', {'id': 'servers-list'})
r = [dom_parser2.parse_dom(i, 'a', req=['href']) for i in r if i]

for i in r[0]:
url = {'url': i.attrs['href'], 'data-film': i.attrs['data-film'], 'data-server': i.attrs['data-server'], 'data-name' : i.attrs['data-name']}
url = urllib.urlencode(url)
sources.append({'source': i.content, 'quality': quality, 'language': 'en', 'url': url, 'direct': False, 'debridonly': False})
return sources
except:
return sources

def resolve(self, url):
try:
urldata = urlparse.parse_qs(url)
urldata = dict((i, urldata[i][0]) for i in urldata)
post = {'ipplugins': 1,'ip_film': urldata['data-film'], 'ip_server': urldata['data-server'], 'ip_name': urldata['data-name'],'fix': "0"}
p1 = client.request('http://fmovies.sc/ip.file/swf/plugins/ipplugins.php', post=post, referer=urldata['url'], XHR=True)
p1 = json.loads(p1)
p2 = client.request('http://fmovies.sc/ip.file/swf/ipplayer/ipplayer.php?u=%s&s=%s&n=0' %(p1['s'],urldata['data-server']))
p2 = json.loads(p2)
p3 = client.request('http://fmovies.sc/ip.file/swf/ipplayer/api.php?hash=%s' %(p2['hash']))
p3 = json.loads(p3)
n = p3['status']
if n == False:
p2 = client.request('http://fmovies.sc/ip.file/swf/ipplayer/ipplayer.php?u=%s&s=%s&n=1' %(p1['s'],urldata['data-server']))
p2 = json.loads(p2)
url = "https:%s" %p2["data"].replace("\/","/")
return url
except:
return

+ 79
- 81
lib/lambdascrapers/sources_ lambdascrapers/en/hdpopcorns.py View File

@@ -1,81 +1,79 @@
# -*- coding: UTF-8 -*-
#######################################################################
# ----------------------------------------------------------------------------
# "THE BEER-WARE LICENSE" (Revision 42):
# @tantrumdev wrote this file. As long as you retain this notice you
# can do whatever you want with this stuff. If we meet some day, and you think
# this stuff is worth it, you can buy me a beer in return. - Muad'Dib
# ----------------------------------------------------------------------------
#######################################################################
# Addon Name: Yoda
# Addon id: plugin.video.Yoda
# Addon Provider: Supremacy
import re,requests,traceback,base64,urllib,urlparse
from resources.lib.modules import cleantitle
from resources.lib.modules import client
from resources.lib.modules import log_utils
from resources.lib.modules import debrid
class source:
def __init__(self):
self.priority = 1
self.language = ['en']
self.domains = ['hdpopcorns.com']
self.base_link = 'http://hdpopcorns.co/'
self.search_link = '/?s=%s'
def movie(self, imdb, title, localtitle, aliases, year):
try:
search_id = title.replace(':', ' ').replace(' ', '+').lower()
start_url = urlparse.urljoin(self.base_link, self.search_link % (search_id))
search_results = client.request(start_url)
match = re.compile('<header>.+?href="(.+?)" title="(.+?)"',re.DOTALL).findall(search_results)
for item_url,item_title in match:
movie_name, movie_year = re.findall("(.*?)(\d+)", item_title)[0]
if not cleantitle.get(title) == cleantitle.get(movie_name):
continue
if not year in movie_year:
continue
return item_url
except:
failure = traceback.format_exc()
log_utils.log('Popcorn - Exception: \n' + str(failure))
return
def sources(self, url, hostDict, hostprDict):
sources = []
if url == None: return
try:
OPEN = client.request(url)
headers = {'Origin':'http://hdpopcorns.co', 'Referer':url,
'X-Requested-With':'XMLHttpRequest', 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
try:
params = re.compile('FileName1080p.+?value="(.+?)".+?FileSize1080p.+?value="(.+?)".+?value="(.+?)"',re.DOTALL).findall(OPEN)
for param1, param2,param3 in params:
request_url = '%s/select-movie-quality.php' %(self.base_link)
form_data = {'FileName1080p':param1,'FileSize1080p':param2,'FSID1080p':param3}
link = requests.post(request_url, data=form_data, headers=headers,timeout=3).content
final_url = re.compile('<strong>1080p</strong>.+?href="(.+?)"',re.DOTALL).findall(link)[0]
sources.append({'source': 'DirectLink', 'quality': '1080p', 'language': 'en', 'url': final_url, 'direct': True, 'debridonly': False})
except:pass
try:
params = re.compile('FileName720p.+?value="(.+?)".+?FileSize720p".+?value="(.+?)".+?value="(.+?)"',re.DOTALL).findall(OPEN)
for param1, param2,param3 in params:
request_url = '%s/select-movie-quality.php' %(self.base_link)
form_data = {'FileName720p':param1,'FileSize720p':param2,'FSID720p':param3}
link = requests.post(request_url, data=form_data, headers=headers,timeout=3).content
final_url = re.compile('<strong>720p</strong>.+?href="(.+?)"',re.DOTALL).findall(link)[0]
sources.append({'source': 'DirectLink', 'quality': '720p', 'language': 'en', 'url': final_url, 'direct': True, 'debridonly': False})
except:pass
return sources
except:
failure = traceback.format_exc()
log_utils.log('Popcorn - Exception: \n' + str(failure))
return sources
def resolve(self, url):
return url
# -*- coding: UTF-8 -*-
#######################################################################
# ----------------------------------------------------------------------------
# "THE BEER-WARE LICENSE" (Revision 42):
# @tantrumdev wrote this file. As long as you retain this notice you
# can do whatever you want with this stuff. If we meet some day, and you think
# this stuff is worth it, you can buy me a beer in return. - Muad'Dib
# ----------------------------------------------------------------------------
#######################################################################
# -Cleaned and Checked on 10-10-2018 by JewBMX in Yoda.

import re,requests,traceback,base64,urllib,urlparse

from resources.lib.modules import cleantitle
from resources.lib.modules import client
from resources.lib.modules import log_utils
from resources.lib.modules import debrid

class source:
def __init__(self):
self.priority = 1
self.language = ['en']
self.domains = ['hdpopcorns.co','hdpopcorns.eu']
self.base_link = 'https://hdpopcorns.co'
self.search_link = '/?s=%s'

def movie(self, imdb, title, localtitle, aliases, year):
try:
search_id = title.replace(':', ' ').replace(' ', '+').lower()
start_url = urlparse.urljoin(self.base_link, self.search_link % (search_id))

search_results = client.request(start_url)
match = re.compile('<header>.+?href="(.+?)" title="(.+?)"',re.DOTALL).findall(search_results)
for item_url,item_title in match:
movie_name, movie_year = re.findall("(.*?)(\d+)", item_title)[0]
if not cleantitle.get(title) == cleantitle.get(movie_name):
continue
if not year in movie_year:
continue
return item_url
except:
failure = traceback.format_exc()
log_utils.log('HDPopcorn - Exception: \n' + str(failure))
return

def sources(self, url, hostDict, hostprDict):
sources = []
if url == None: return
try:
OPEN = client.request(url)
headers = {'Origin':'https://hdpopcorns.co', 'Referer':url,
'X-Requested-With':'XMLHttpRequest', 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
try:
params = re.compile('FileName1080p.+?value="(.+?)".+?FileSize1080p.+?value="(.+?)".+?value="(.+?)"',re.DOTALL).findall(OPEN)
for param1, param2,param3 in params:
request_url = '%s/select-movie-quality.php' %(self.base_link)
form_data = {'FileName1080p':param1,'FileSize1080p':param2,'FSID1080p':param3}
link = requests.post(request_url, data=form_data, headers=headers,timeout=3).content
final_url = re.compile('<strong>1080p</strong>.+?href="(.+?)"',re.DOTALL).findall(link)[0]
sources.append({'source': 'DirectLink', 'quality': '1080p', 'language': 'en', 'url': final_url, 'direct': True, 'debridonly': False})
except:pass
try:
params = re.compile('FileName720p.+?value="(.+?)".+?FileSize720p".+?value="(.+?)".+?value="(.+?)"',re.DOTALL).findall(OPEN)
for param1, param2,param3 in params:
request_url = '%s/select-movie-quality.php' %(self.base_link)
form_data = {'FileName720p':param1,'FileSize720p':param2,'FSID720p':param3}
link = requests.post(request_url, data=form_data, headers=headers,timeout=3).content
final_url = re.compile('<strong>720p</strong>.+?href="(.+?)"',re.DOTALL).findall(link)[0]
sources.append({'source': 'DirectLink', 'quality': '720p', 'language': 'en', 'url': final_url, 'direct': True, 'debridonly': False})
except:pass
return sources
except:
failure = traceback.format_exc()
log_utils.log('HDPopcorn - Exception: \n' + str(failure))
return sources

def resolve(self, url):
return url

+ 62
- 0
lib/lambdascrapers/sources_ lambdascrapers/en/iwatchflixxyz.py View File

@@ -0,0 +1,62 @@
# -*- coding: UTF-8 -*-
# -Cleaned and Checked on 10-10-2018 by JewBMX in Yoda.

import re
import urllib
import urlparse
from resources.lib.modules import cleantitle
from resources.lib.modules import client
from resources.lib.modules import proxy


class source:
def __init__(self):
self.priority = 1
self.language = ['en']
self.domains = ['iwatchflix.xyz']
self.base_link = 'https://iwatchflix.xyz'
self.movie_link = '/%s'
self.tv_link = '/episode/%s-season-%s-episode-%s'

def movie(self, imdb, title, localtitle, aliases, year):
try:
title = cleantitle.geturl(title)
url = self.base_link + self.movie_link % title
return url
except:
return
def tvshow(self, imdb, tvdb, tvshowtitle, localtvshowtitle, aliases, year):
try:
url = cleantitle.geturl(tvshowtitle)
return url
except:
return
def episode(self, url, imdb, tvdb, title, premiered, season, episode):
try:
if not url: return
title = url
url = self.base_link + self.tv_link % (title,season,episode)
return url
except:
return


def sources(self, url, hostDict, hostprDict):
try:
sources = []
r = client.request(url)
try:
match = re.compile('vidoza(.+?)"').findall(r)
for url in match:
url = 'https://vidoza%s' % url
sources.append({'source': 'Vidoza','quality': 'HD','language': 'en','url': url,'direct': False,'debridonly': False})
except:
return
except Exception:
return
return sources

def resolve(self, url):
return url

+ 161
- 0
lib/lambdascrapers/sources_ lambdascrapers/en/myvideolink.py View File

@@ -0,0 +1,161 @@
# -*- coding: UTF-8 -*-
#######################################################################
# ----------------------------------------------------------------------------
# "THE BEER-WARE LICENSE" (Revision 42):
# @tantrumdev wrote this file. As long as you retain this notice you
# can do whatever you want with this stuff. If we meet some day, and you think
# this stuff is worth it, you can buy me a beer in return. - Muad'Dib
# ----------------------------------------------------------------------------
#######################################################################
# -Cleaned and Checked on 10-10-2018 by JewBMX in Yoda.


import re,urllib,urlparse

from resources.lib.modules import cleantitle
from resources.lib.modules import client
from resources.lib.modules import debrid

class source:
def __init__(self):
self.priority = 1
self.language = ['en']
self.domains = ['iwantmyshow.tk','myvideolinks.net']
self.base_link = 'http://iwantmyshow.tk'
self.search_link = '/?s=%s'


def movie(self, imdb, title, localtitle, aliases, year):
try:
url = {'imdb': imdb, 'title': title, 'year': year}
url = urllib.urlencode(url)
return url
except:
return


def sources(self, url, hostDict, hostprDict):
try:
sources = []

if url == None: return sources

if debrid.status() == False: raise Exception()

data = urlparse.parse_qs(url)
data = dict([(i, data[i][0]) if data[i] else (i, '') for i in data])

title = data['tvshowtitle'] if 'tvshowtitle' in data else data['title']

hdlr = 'S%02dE%02d' % (int(data['season']), int(data['episode'])) if 'tvshowtitle' in data else data['year']

query = '%s S%02dE%02d' % (data['tvshowtitle'], int(data['season']), int(data['episode'])) if 'tvshowtitle' in data else '%s %s' % (data['title'], data['year'])
query = re.sub('(\\\|/| -|:|;|\*|\?|"|\'|<|>|\|)', ' ', query)

s = client.request(self.base_link)
s = re.findall('\'(http.+?)\'', s) + re.findall('\"(http.+?)\"', s)
s = [i for i in s if urlparse.urlparse(self.base_link).netloc in i and len(i.strip('/').split('/')) > 3]
s = s[0] if s else urlparse.urljoin(self.base_link, 'posts')
s = s.strip('/')

url = s + self.search_link % urllib.quote_plus(query)

r = client.request(url)

r = client.parseDOM(r, 'h2', attrs = {'class': 'post-title'})
r = zip(client.parseDOM(r, 'a', ret='href'), client.parseDOM(r, 'a', ret='title'))
r = [(i[0], i[1], re.sub('(\.|\(|\[|\s)(\d{4}|3D)(\.|\)|\]|\s|)(.+|)', '', i[1]), re.findall('[\.|\(|\[|\s](\d{4}|)([\.|\)|\]|\s|].+)', i[1])) for i in r]
r = [(i[0], i[1], i[2], i[3][0][0], i[3][0][1]) for i in r if i[3]]
r = [(i[0], i[1], i[2], i[3], re.split('\.|\(|\)|\[|\]|\s|\-', i[4])) for i in r]
r = [i for i in r if cleantitle.get(title) == cleantitle.get(i[2]) and data['year'] == i[3]]
r = [i for i in r if not any(x in i[4] for x in ['HDCAM', 'CAM', 'DVDR', 'DVDRip', 'DVDSCR', 'HDTS', 'TS', '3D'])]
r = [i for i in r if '1080p' in i[4]][:1] + [i for i in r if '720p' in i[4]][:1]

posts = [(i[1], i[0]) for i in r]

hostDict = hostprDict + hostDict

items = []

for post in posts:
try:
t = post[0]

u = client.request(post[1])
u = re.findall('\'(http.+?)\'', u) + re.findall('\"(http.+?)\"', u)
u = [i for i in u if not '/embed/' in i]
u = [i for i in u if not 'youtube' in i]

items += [(t, i) for i in u]
except:
pass

for item in items:
try:
name = item[0]
name = client.replaceHTMLCodes(name)

t = re.sub('(\.|\(|\[|\s)(\d{4}|S\d*E\d*|S\d*|3D)(\.|\)|\]|\s|)(.+|)', '', name)

if not cleantitle.get(t) == cleantitle.get(title): raise Exception()

y = re.findall('[\.|\(|\[|\s](\d{4}|S\d*E\d*|S\d*)[\.|\)|\]|\s]', name)[-1].upper()

if not y == hdlr: raise Exception()

fmt = re.sub('(.+)(\.|\(|\[|\s)(\d{4}|S\d*E\d*|S\d*)(\.|\)|\]|\s)', '', name.upper())
fmt = re.split('\.|\(|\)|\[|\]|\s|\-', fmt)
fmt = [i.lower() for i in fmt]

if any(i.endswith(('subs', 'sub', 'dubbed', 'dub')) for i in fmt): raise Exception()
if any(i in ['extras'] for i in fmt): raise Exception()

if '1080p' in fmt: quality = '1080p'
elif '720p' in fmt: quality = 'HD'
else: quality = 'SD'
if any(i in ['dvdscr', 'r5', 'r6'] for i in fmt): quality = 'SCR'
elif any(i in ['camrip', 'tsrip', 'hdcam', 'hdts', 'dvdcam', 'dvdts', 'cam', 'telesync', 'ts'] for i in fmt): quality = 'CAM'

info = []

if '3d' in fmt: info.append('3D')

try:
size = re.findall('((?:\d+\.\d+|\d+\,\d+|\d+) (?:GB|GiB|MB|MiB))', item[2])[-1]
div = 1 if size.endswith(('GB', 'GiB')) else 1024
size = float(re.sub('[^0-9|/.|/,]', '', size))/div
size = '%.2f GB' % size
info.append(size)
except:
pass

if any(i in ['hevc', 'h265', 'x265'] for i in fmt): info.append('HEVC')

info = ' | '.join(info)

url = item[1]
if any(x in url for x in ['.rar', '.zip', '.iso']): raise Exception()
url = client.replaceHTMLCodes(url)
url = url.encode('utf-8')

host = re.findall('([\w]+[.][\w]+)$', urlparse.urlparse(url.strip().lower()).netloc)[0]
if not host in hostDict: raise Exception()
host = client.replaceHTMLCodes(host)
host = host.encode('utf-8')

sources.append({'source': host, 'quality': quality, 'language': 'en', 'url': url, 'info': info, 'direct': False, 'debridonly': True})
except:
pass

check = [i for i in sources if not i['quality'] == 'CAM']
if check: sources = check

return sources
except:
return sources


def resolve(self, url):
return url



+ 68
- 0
lib/lambdascrapers/sources_ lambdascrapers/en/odb.py View File

@@ -0,0 +1,68 @@
# -*- coding: UTF-8 -*-
# -Cleaned and Checked on 10-10-2018 by JewBMX in Yoda.
# Note: anyone that reads this should take a second and visit https://odb.to its pretty cool compared to most lol.

import re
import urllib
import urlparse
from resources.lib.modules import cleantitle
from resources.lib.modules import client
from resources.lib.modules import proxy


class source:
def __init__(self):
self.priority = 1
self.language = ['en']
self.domains = ['odb.to']
self.base_link = 'https://api.odb.to'
self.movie_link = '/embed?imdb_id=%s'
self.tv_link = '/embed?imdb_id=%s&s=%s&e=%s'

def movie(self, imdb, title, localtitle, aliases, year):
try:
url = self.base_link + self.movie_link % imdb
return url
except:
return
def tvshow(self, imdb, tvdb, tvshowtitle, localtvshowtitle, aliases, year):
try:
url = imdb
return url
except:
return
def episode(self, url, imdb, tvdb, title, premiered, season, episode):
try:
if not url: return
imdb = url
url = self.base_link + self.tv_link % (imdb,season,episode)
return url
except:
return

def sources(self, url, hostDict, hostprDict):
try:
sources = []
r = client.request(url)
try:
match = re.compile('<iframe src="(.+?)" width').findall(r)
for url in match:
host = url.replace('https://','').replace('http://','').replace('www.','')
sources.append({
'source': host,
'quality': 'HD',
'language': 'en',
'url': url,
'direct': False,
'debridonly': False
})
except:
return
except Exception:
return
return sources

def resolve(self, url):
return url

+ 40
- 0
lib/lambdascrapers/sources_ lambdascrapers/en/openloadmovie.py View File

@@ -0,0 +1,40 @@
# -*- coding: UTF-8 -*-
# -Cleaned and Checked on 10-10-2018 by JewBMX in Yoda.

import re
import urllib
import urlparse
from resources.lib.modules import cleantitle
from resources.lib.modules import client
from resources.lib.modules import proxy
# openloadmovie.ws opens to openloadmovie.org always.
# could remove it but o well it can go down first.

class source:
def __init__(self):
self.priority = 1
self.language = ['en']
self.domains = ['openloadmovie.org','openloadmovie.ws']
self.base_link = 'https://openloadmovie.org'

def movie(self, imdb, title, localtitle, aliases, year):
try:
title = cleantitle.geturl(title)
url = self.base_link + '/movies/%s-%s' % (title,year)
return url
except:
return
def sources(self, url, hostDict, hostprDict):
try:
sources = []
r = client.request(url)
match = re.compile('<iframe class="metaframe rptss" src="(.+?)"').findall(r)
for url in match:
sources.append({'source': 'Openload','quality': 'HD','language': 'en','url': url,'direct': False,'debridonly': False})
except Exception:
return
return sources

def resolve(self, url):
return url

+ 80
- 0
lib/lambdascrapers/sources_ lambdascrapers/en/popcorn.py View File

@@ -0,0 +1,80 @@
# -*- coding: UTF-8 -*-
#######################################################################
# ----------------------------------------------------------------------------
# "THE BEER-WARE LICENSE" (Revision 42):
# @tantrumdev wrote this file. As long as you retain this notice you
# can do whatever you want with this stuff. If we meet some day, and you think
# this stuff is worth it, you can buy me a beer in return. - Muad'Dib
# ----------------------------------------------------------------------------
#######################################################################
# -Cleaned and Checked on 10-10-2018 by JewBMX in Yoda.

import re,requests,traceback,base64,urllib,urlparse

from resources.lib.modules import cleantitle
from resources.lib.modules import client
from resources.lib.modules import log_utils
# hdpopcorns.com goes to hdpopcorns.co always

class source:
def __init__(self):
self.priority = 1
self.language = ['en']
self.domains = ['hdpopcorns.com','hdpopcorns.co']
self.base_link = 'http://hdpopcorns.co'
self.search_link = '/search/%s'
# also can use self.search_link = '/?s=%s' both work for hdpopcorns.co
# tested the alt search link on a browser and in this scraper, both work fine.

def movie(self, imdb, title, localtitle, aliases, year):
try:
search_id = title.replace(':', ' ').replace(' ', '+').lower()
start_url = urlparse.urljoin(self.base_link, self.search_link % (search_id))

search_results = client.request(start_url)
match = re.compile('<header>.+?href="(.+?)" title="(.+?)"',re.DOTALL).findall(search_results)
for item_url,item_title in match:
movie_name, movie_year = re.findall("(.*?)(\d+)", item_title)[0]
if not cleantitle.get(title) == cleantitle.get(movie_name):
continue
if not year in movie_year:
continue
return item_url
except:
failure = traceback.format_exc()
log_utils.log('Popcorn - Exception: \n' + str(failure))
return

def sources(self, url, hostDict, hostprDict):
sources = []
if url == None: return
try:
OPEN = client.request(url)
headers = {'Origin':'http://hdpopcorns.co', 'Referer':url,
'X-Requested-With':'XMLHttpRequest', 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
try:
params = re.compile('FileName1080p.+?value="(.+?)".+?FileSize1080p.+?value="(.+?)".+?value="(.+?)"',re.DOTALL).findall(OPEN)
for param1, param2,param3 in params:
request_url = '%s/select-movie-quality.php' %(self.base_link)
form_data = {'FileName1080p':param1,'FileSize1080p':param2,'FSID1080p':param3}
link = requests.post(request_url, data=form_data, headers=headers,timeout=3).content
final_url = re.compile('<strong>1080p</strong>.+?href="(.+?)"',re.DOTALL).findall(link)[0]
sources.append({'source': 'DirectLink', 'quality': '1080p', 'language': 'en', 'url': final_url, 'direct': True, 'debridonly': False})
except:pass
try:
params = re.compile('FileName720p.+?value="(.+?)".+?FileSize720p".+?value="(.+?)".+?value="(.+?)"',re.DOTALL).findall(OPEN)
for param1, param2,param3 in params:
request_url = '%s/select-movie-quality.php' %(self.base_link)
form_data = {'FileName720p':param1,'FileSize720p':param2,'FSID720p':param3}
link = requests.post(request_url, data=form_data, headers=headers,timeout=3).content
final_url = re.compile('<strong>720p</strong>.+?href="(.+?)"',re.DOTALL).findall(link)[0]
sources.append({'source': 'DirectLink', 'quality': '720p', 'language': 'en', 'url': final_url, 'direct': True, 'debridonly': False})
except:pass
return sources
except:
failure = traceback.format_exc()
log_utils.log('Popcorn - Exception: \n' + str(failure))
return sources

def resolve(self, url):
return url

+ 51
- 0
lib/lambdascrapers/sources_ lambdascrapers/en/putlocker.py View File

@@ -0,0 +1,51 @@
# -*- coding: UTF-8 -*-
#######################################################################
# ----------------------------------------------------------------------------
# "THE BEER-WARE LICENSE" (Revision 42):
# @tantrumdev wrote this file. As long as you retain this notice you
# can do whatever you want with this stuff. If we meet some day, and you think
# this stuff is worth it, you can buy me a beer in return. - Muad'Dib
# ----------------------------------------------------------------------------
#######################################################################
# -Cleaned and Checked on 10-11-2018 by JewBMX in Yoda.

import re
import urllib
import urlparse
from resources.lib.modules import cleantitle
from resources.lib.modules import client
from resources.lib.modules import proxy


class source:
def __init__(self):
self.priority = 1
self.language = ['en']
self.domains = ['putlockerr.is','putlockers.movie']
self.base_link = 'https://putlockerr.is'
self.search_link = '/embed/%s/'

def movie(self, imdb, title, localtitle, aliases, year):
try:
url = self.base_link + self.search_link % imdb
return url
except:
return
def sources(self, url, hostDict, hostprDict):
try:
sources = []
r = client.request(url)
try:
match = re.compile('<iframe src="(.+?)://(.+?)/(.+?)"').findall(r)
for http,host,url in match:
url = '%s://%s/%s' % (http,host,url)
sources.append({'source': host,'quality': 'HD','language': 'en','url': url,'direct': False,'debridonly': False})
except:
return
except Exception:
return
return sources

def resolve(self, url):
return url

+ 63
- 0
lib/lambdascrapers/sources_ lambdascrapers/en/reddit.py View File

@@ -0,0 +1,63 @@
# -*- coding: UTF-8 -*-
# -Cleaned and Checked on 10-11-2018 by JewBMX in Yoda.

import re
import urllib
import urlparse
from resources.lib.modules import cleantitle
from resources.lib.modules import client
from resources.lib.modules import proxy


class source:
def __init__(self):
self.priority = 1
self.language = ['en']
self.domains = ['reddit.com']
self.base_link = 'https://www.reddit.com/user/nbatman/m/streaming2/search?q=%s&restrict_sr=on'

def movie(self, imdb, title, localtitle, aliases, year):
try:
title = cleantitle.geturl(title)
title = title.replace('-','+')
query = '%s+%s' % (title,year)
url = self.base_link % query
return url
except:
return

def sources(self, url, hostDict, hostprDict):
try:
sources = []
r = client.request(url)
try:
match = re.compile('class="search-title may-blank" >(.+?)</a>.+?<span class="search-result-icon search-result-icon-external"></span><a href="(.+?)://(.+?)/(.+?)" class="search-link may-blank" >').findall(r)
for info,http,host,ext in match:
if '2160' in info: quality = '4K'
elif '1080' in info: quality = '1080p'
elif '720' in info: quality = 'HD'
elif '480' in info: quality = 'SD'
else: quality = 'SD'
url = '%s://%s/%s' % (http,host,ext)
if 'google' in host: host = 'GDrive'
if 'Google' in host: host = 'GDrive'
if 'GOOGLE' in host: host = 'GDrive'
sources.append({
'source': host,
'quality': quality,
'language': 'en',
'url': url,
'info': info,
'direct': False,
'debridonly': False
})
except:
return
except Exception:
return
return sources

def resolve(self, url):
return url

lib/lambdascrapers/sources_ lambdascrapers/en/2ddl.py → lib/lambdascrapers/sources_ lambdascrapers/en_DebridOnly/2ddl.py View File

@@ -1,113 +1,155 @@
# -*- coding: UTF-8 -*-
#######################################################################
# ----------------------------------------------------------------------------
# "THE BEER-WARE LICENSE" (Revision 42):
# @tantrumdev wrote this file. As long as you retain this notice you
# can do whatever you want with this stuff. If we meet some day, and you think
# this stuff is worth it, you can buy me a beer in return. - Muad'Dib
# ----------------------------------------------------------------------------
#######################################################################
# Addon Name: Placenta
# Addon id: plugin.video.placenta
# Addon Provider: MuadDib
import re,traceback,urllib,urlparse
from resources.lib.modules import cleantitle
from resources.lib.modules import client
from resources.lib.modules import debrid
from resources.lib.modules import source_utils
from resources.lib.modules import log_utils
class source:
def __init__(self):
self.priority = 1
self.language = ['en']
self.domains = ['2ddl.io']
self.base_link = 'http://2ddl.io/'
self.search_link = '/?s=%s'
def movie(self, imdb, title, localtitle, aliases, year):
try:
url = {'imdb': imdb, 'title': title, 'year': year}
url = urllib.urlencode(url)
return url
except:
failure = traceback.format_exc()
log_utils.log('2DDL - Exception: \n' + str(failure))
return
def tvshow(self, imdb, tvdb, tvshowtitle, localtvshowtitle, aliases, year):
try:
url = {'imdb': imdb, 'tvdb': tvdb, 'tvshowtitle': tvshowtitle, 'year': year}
url = urllib.urlencode(url)
return url
except:
failure = traceback.format_exc()
log_utils.log('2DDL - Exception: \n' + str(failure))
return
def episode(self, url, imdb, tvdb, title, premiered, season, episode):
try:
if url == None: return
url = urlparse.parse_qs(url)
url = dict([(i, url[i][0]) if url[i] else (i, '') for i in url])
url['title'], url['premiered'], url['season'], url['episode'] = title, premiered, season, episode
url = urllib.urlencode(url)
return url
except:
failure = traceback.format_exc()
log_utils.log('2DDL - Exception: \n' + str(failure))
return
def sources(self, url, hostDict, hostprDict):
try:
sources = []
if url == None: return sources
data = urlparse.parse_qs(url)
data = dict([(i, data[i][0]) if data[i] else (i, '') for i in data])
title = data['tvshowtitle'] if 'tvshowtitle' in data else data['title']
hdlr = 'S%02dE%02d' % (int(data['season']), int(data['episode'])) if 'tvshowtitle' in data else data['year']
query = '%s S%02dE%02d' % (data['tvshowtitle'], int(data['season']), int(data['episode'])) if 'tvshowtitle' in data else '%s %s' % (data['title'], data['year'])
query = re.sub('(\\\|/| -|:|;|\*|\?|"|<|>|\|)', ' ', query).replace('\'', '')
url = self.search_link % urllib.quote_plus(query)
url = urlparse.urljoin(self.base_link, url)
log_utils.log('2DDL - sources - url: ' + str(url))
html = client.request(url)
url_list = re.compile('<h2><a href="([^"]+)"',re.DOTALL).findall(html)
hostDict = hostprDict + hostDict
for url in url_list:
if cleantitle.get(title) in cleantitle.get(url):
html = client.request(url)
links = re.compile('href="([^"]+)" rel="nofollow"',re.DOTALL).findall(html)
for vid_url in links:
if 'ouo.io' in vid_url:
continue
if 'sh.st' in vid_url:
continue
if 'linx' in vid_url:
continue
if '.rar' not in vid_url:
if '.srt' not in vid_url:
quality,info = source_utils.get_release_quality(url, vid_url)
host = vid_url.split('//')[1].replace('www.','')
host = host.split('/')[0].lower()
sources.append({'source': host, 'quality': quality, 'language': 'en', 'url': vid_url, 'info': info, 'direct': False, 'debridonly': False})
return sources
except:
failure = traceback.format_exc()
log_utils.log('2DDL - Exception: \n' + str(failure))
return sources
def resolve(self, url):
# -*- coding: UTF-8 -*-
#######################################################################
# ----------------------------------------------------------------------------
# "THE BEER-WARE LICENSE" (Revision 42):
# @tantrumdev wrote this file. As long as you retain this notice you
# can do whatever you want with this stuff. If we meet some day, and you think
# this stuff is worth it, you can buy me a beer in return. - Muad'Dib
# ----------------------------------------------------------------------------
#######################################################################
# -Cleaned and Checked on 10-10-2018 by JewBMX in Yoda.

import re,traceback,urllib,urlparse

from resources.lib.modules import cleantitle
from resources.lib.modules import client
from resources.lib.modules import debrid
from resources.lib.modules import source_utils
from resources.lib.modules import log_utils

class source:
def __init__(self):
self.priority = 1
self.language = ['en']
self.domains = ['2ddl.ws']
self.base_link = 'http://2ddl.ws'
self.search_link = '/search/%s/feed/rss2/'

def movie(self, imdb, title, localtitle, aliases, year):
try:
url = {'imdb': imdb, 'title': title, 'year': year}
url = urllib.urlencode(url)
return url
except:
failure = traceback.format_exc()
log_utils.log('2DDL - Exception: \n' + str(failure))
return


def tvshow(self, imdb, tvdb, tvshowtitle, localtvshowtitle, aliases, year):
try:
url = {'imdb': imdb, 'tvdb': tvdb, 'tvshowtitle': tvshowtitle, 'year': year}
url = urllib.urlencode(url)
return url
except:
failure = traceback.format_exc()
log_utils.log('2DDL - Exception: \n' + str(failure))
return

def episode(self, url, imdb, tvdb, title, premiered, season, episode):
try:
if url == None: return

url = urlparse.parse_qs(url)
url = dict([(i, url[i][0]) if url[i] else (i, '') for i in url])
url['title'], url['premiered'], url['season'], url['episode'] = title, premiered, season, episode
url = urllib.urlencode(url)
return url
except:
failure = traceback.format_exc()
log_utils.log('2DDL - Exception: \n' + str(failure))
return

def sources(self, url, hostDict, hostprDict):
try:
sources = []

if url == None: return sources

if debrid.status() is False: raise Exception()

data = urlparse.parse_qs(url)
data = dict([(i, data[i][0]) if data[i] else (i, '') for i in data])

title = data['tvshowtitle'] if 'tvshowtitle' in data else data['title']

hdlr = 'S%02dE%02d' % (int(data['season']), int(data['episode'])) if 'tvshowtitle' in data else data['year']

query = '%s S%02dE%02d' % (
data['tvshowtitle'], int(data['season']), int(data['episode'])) if 'tvshowtitle' in data else '%s %s' % (
data['title'], data['year'])
query = re.sub('(\\\|/| -|:|;|\*|\?|"|\'|<|>|\|)', ' ', query)

url = self.search_link % urllib.quote_plus(query)
url = urlparse.urljoin(self.base_link, url)

html = client.request(url)
posts = client.parseDOM(html, 'item')

hostDict = hostprDict + hostDict

items = []

for post in posts:
try:
t = client.parseDOM(post, 'title')[0]
u = client.parseDOM(post, 'a', ret='href')
s = re.search('((?:\d+\.\d+|\d+\,\d+|\d+)\s*(?:GB|GiB|MB|MiB))', post)
s = s.groups()[0] if s else '0'
items += [(t, i, s) for i in u]
except:
pass

for item in items:
try:

url = item[1]
if any(x in url for x in ['.rar', '.zip', '.iso']): raise Exception()
url = client.replaceHTMLCodes(url)
url = url.encode('utf-8')

valid, host = source_utils.is_host_valid(url, hostDict)
if not valid: raise Exception()
host = client.replaceHTMLCodes(host)
host = host.encode('utf-8')

name = item[0]
name = client.replaceHTMLCodes(name)

t = re.sub('(\.|\(|\[|\s)(\d{4}|S\d*E\d*|S\d*|3D)(\.|\)|\]|\s|)(.+|)', '', name, flags=re.I)

if not cleantitle.get(t) == cleantitle.get(title): raise Exception()

y = re.findall('[\.|\(|\[|\s](\d{4}|S\d*E\d*|S\d*)[\.|\)|\]|\s]', name)[-1].upper()

if not y == hdlr: raise Exception()

quality, info = source_utils.get_release_quality(name, url)

try:
size = re.findall('((?:\d+\.\d+|\d+\,\d+|\d+)\s*(?:GB|GiB|MB|MiB))', item[2])[-1]
div = 1 if size.endswith(('GB', 'GiB')) else 1024
size = float(re.sub('[^0-9|/.|/,]', '', size)) / div
size = '%.2f GB' % size
info.append(size)
except:
pass

info = ' | '.join(info)

sources.append({'source': host, 'quality': quality, 'language': 'en', 'url': url, 'info': info,
'direct': False, 'debridonly': True})
except:
pass

check = [i for i in sources if not i['quality'] == 'CAM']
if check: sources = check

return sources
except:
failure = traceback.format_exc()
log_utils.log('2DDL - Exception: \n' + str(failure))
return sources

def resolve(self, url):
return url

+ 3
- 2
resources/settings.xml View File

@@ -16,7 +16,6 @@
<setting label="Lambda Scrapers Default" type="action" option="close" action="RunPlugin(plugin://script.module.lambdascrapers/?mode=Defaults&amp;setting=true&amp;open_id='1.2')"/>
<setting type="sep" />
<setting id="provider.1movie" type="bool" label="$NUMBER[1]MOVIE" default="false" />
<setting id="provider.2ddl" type="bool" label="$NUMBER[2]DDL" default="false" />
<setting id="provider.4kmovieto" type="bool" label="$NUMBER[4]KMOVIETO" default="false" />
<setting id="provider.123fox" type="bool" label="$NUMBER[123]FOX" default="false" /> <!--Placenta-->
<setting id="provider.123hbo" type="bool" label="$NUMBER[123]HBO" default="false" /> <!--Placenta-->
@@ -67,7 +66,7 @@
<setting id="provider.hd" type="bool" label="HD" default="false" /> <!--Placenta-->
<setting id="provider.hdmega" type="bool" label="HDMEGA" default="false" /> <!--Placenta-->
<setting id="provider.hdmto" type="bool" label="HDMTO" default="false" />
<setting id="provider.hdpopcorns" type="bool" label="HDPOPCORNS" default="false" />
<setting id="provider.hdpopcorns" type="bool" label="HDPOPCORNS" default="false" /> <!--Jewbmx-->
<setting id="provider.hulufilm" type="bool" label="HULUFILM" default="false" /> <!--Yoda-->
<setting id="provider.huluvip" type="bool" label="HULUVIP" default="false" /> <!--Placenta-->
<setting id="provider.icefilms" type="bool" label="ICEFILMS" default="false" />
@@ -96,6 +95,7 @@
<setting id="provider.myputlock" type="bool" label="MYPUTLOCK" default="false" /> <!--Placenta-->
<setting id="provider.myputlocker" type="bool" label="MYPUTLOCKER" default="false" /> <!--Jewbmx-->
<setting id="provider.myseriesfree" type="bool" label="MYSERIESFREE" default="false" /> <!--Jewbmx-->
<setting id="provider.myvideolink" type="bool" label="MYVIDEOLINK" default="false" /> <!--Jewbmx-->
<setting id="provider.mywatchseries" type="bool" label="MYWATCHSERIES" default="false" />
<!-- <setting id="provider.mzmovies" type="bool" label="MZMOVIES" default="false" />--> <!--Yoda-->
<!-- <setting id="provider.onlinedizi" type="bool" label="ONLINEDIZI" default="false" />--> <!--Yoda-->
@@ -207,6 +207,7 @@
<setting label="Disable All Debrid Providers" type="action" option="close" action="RunPlugin(plugin://script.module.lambdascrapers/?mode=toggleAllDebrid&amp;setting=false&amp;open_id='1.1')"/>
<setting label="Enable All Debrid Providers" type="action" option="close" action="RunPlugin(plugin://script.module.lambdascrapers/?mode=toggleAllDebrid&amp;setting=true&amp;open_id='1.2')"/>
<setting type="sep" />
<setting id="provider.2ddl" type="bool" label="$NUMBER[2]DDL" default="false" /> <!--Jewbmx-->
<setting id="provider.300mbfilms" type="bool" label="$NUMBER[300]MBFILMS" default="false" />
<setting id="provider.bestmoviez" type="bool" label="BESTMOVIEZ" default="false" />
<!-- <setting id="provider.ddls" type="bool" label="DDLS" default="false" />--> <!--Yoda-->

Loading…
Cancel
Save