├── plugin.video.smr_link_tester ├── resources │ ├── __init__.py │ ├── lib │ │ └── __init__.py │ └── settings.xml ├── icon.png ├── addon.xml └── changelog.txt ├── script.module.resolveurl ├── lib │ └── resolveurl │ │ ├── lib │ │ ├── __init__.py │ │ ├── aesgcm │ │ │ ├── __init__.py │ │ │ ├── python_aesgcm.py │ │ │ ├── tlshashlib.py │ │ │ └── aes.py │ │ ├── jscrypto │ │ │ └── __init__.py │ │ ├── rc4.py │ │ └── websocket │ │ │ └── __init__.py │ │ └── plugins │ │ ├── __init__.py │ │ ├── vidhd.py │ │ ├── uptomega.py │ │ ├── goostream.py │ │ ├── gomoplayer.py │ │ ├── filerio.py │ │ ├── juxxi.py │ │ ├── vidbob.py │ │ ├── vkprime.py │ │ ├── darkibox.py │ │ ├── embedrise.py │ │ ├── streamdav.py │ │ ├── downace.py │ │ ├── itemfix.py │ │ ├── krakenfiles.py │ │ ├── myupload.py │ │ ├── vimeos.py │ │ ├── entervideo.py │ │ ├── oneupload.py │ │ ├── filesim.py │ │ ├── linkbox.py │ │ ├── fastream.py │ │ ├── vidello.py │ │ ├── vidfast.py │ │ ├── uploaddo.py │ │ ├── vido.py │ │ ├── larhu.py │ │ ├── gostream.py │ │ ├── uploady.py │ │ ├── sendvid.py │ │ ├── userscloud.py │ │ ├── voxzer.py │ │ ├── vidcloud.py │ │ ├── bigshare.py │ │ ├── kwik.py │ │ ├── mediacm.py │ │ ├── reviewtech.py │ │ ├── superitu.py │ │ ├── embedgram.py │ │ ├── film77.py │ │ ├── pkspeed.py │ │ ├── vidlook.py │ │ ├── vidpro.py │ │ ├── mightyupload.py │ │ ├── vidzstore.py │ │ ├── brighteon.py │ │ ├── dramacoolmen.py │ │ ├── fileone.py │ │ ├── justok.py │ │ ├── vkspeed.py │ │ ├── hxfile.py │ │ ├── hurrystream.py │ │ ├── vudeo.py │ │ ├── bitchute.py │ │ ├── fileved.py │ │ ├── gett.py │ │ ├── newtube.py │ │ ├── vidmx.py │ │ ├── abstream.py │ │ ├── solidfiles.py │ │ ├── dropload.py │ │ ├── streamoupload.py │ │ ├── yandex.py │ │ ├── bewab.py │ │ ├── maxstream.py │ │ ├── vidorg.py │ │ ├── allviid.py │ │ ├── anonymfile.py │ │ ├── myfeminist.py │ │ ├── anafast.py │ │ ├── videoapne.py │ │ ├── vidspeed.py │ │ ├── forafile.py │ │ ├── goodstream.py │ │ ├── streamhub.py │ │ ├── uqload.py │ │ ├── drkvid.py │ │ ├── up4stream.py │ │ ├── vtube.py │ │ ├── fileupload.py │ │ ├── liivideo.py │ │ ├── cloudb.py │ │ ├── asianload.py │ │ ├── turboviplay.py │ │ ├── amdahost.py │ │ ├── vidoza.py │ │ ├── vembx.py │ │ ├── fastplay.py │ │ ├── holavid.py │ │ ├── filegram.py │ │ ├── vcdnlare.py │ │ ├── gamovideo.py │ │ ├── bannedvideo.py │ │ └── lulustream.py ├── icon.png ├── fanart.jpg ├── resources │ ├── images │ │ ├── redx.png │ │ ├── border90.png │ │ ├── checked.png │ │ ├── DialogBack1.png │ │ ├── DialogBack2.png │ │ └── greeninch.png │ └── skins │ │ └── Default │ │ └── media │ │ ├── button-fo.png │ │ ├── DialogBack2.png │ │ ├── button-nofo.png │ │ ├── dialogheader.png │ │ ├── DialogCloseButton.png │ │ └── DialogCloseButton-focus.png └── changelog.txt └── script.module.resolveurl.xxx ├── icon.png ├── fanart.jpg ├── changelog.txt ├── addon.xml └── resources └── plugins ├── justporno.py ├── pornone.py ├── daftporn.py ├── clips4sale.py ├── gotporn.py ├── madthumbs.py ├── pornxs.py ├── iporntoo.py ├── trendyporn.py ├── vporn.py ├── perfectgirls.py ├── imperioporno.py ├── cumlouder.py ├── pornilly.py ├── pornhd.py ├── xnxx.py ├── gaygo.py ├── faphouse.py ├── heavyr.py ├── javtasty.py ├── manporn.py ├── porncom.py ├── trannyone.py ├── animeidhentai.py ├── motherless.py ├── xfreehd.py ├── mydaddy.py ├── vrporn.py ├── porngo.py ├── javclan.py ├── xtube.py ├── youjizz.py ├── tube8.py ├── ashemale.py ├── porntrex.py ├── spankbang.py ├── collectionofthebestporn.py └── xhamster.py /plugin.video.smr_link_tester/resources/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plugin.video.smr_link_tester/resources/lib/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/lib/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/lib/aesgcm/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/lib/jscrypto/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /script.module.resolveurl/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gujal00/ResolveURL/HEAD/script.module.resolveurl/icon.png -------------------------------------------------------------------------------- /plugin.video.smr_link_tester/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gujal00/ResolveURL/HEAD/plugin.video.smr_link_tester/icon.png -------------------------------------------------------------------------------- /script.module.resolveurl.xxx/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gujal00/ResolveURL/HEAD/script.module.resolveurl.xxx/icon.png -------------------------------------------------------------------------------- /script.module.resolveurl/fanart.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gujal00/ResolveURL/HEAD/script.module.resolveurl/fanart.jpg -------------------------------------------------------------------------------- /script.module.resolveurl.xxx/fanart.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gujal00/ResolveURL/HEAD/script.module.resolveurl.xxx/fanart.jpg -------------------------------------------------------------------------------- /script.module.resolveurl/resources/images/redx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gujal00/ResolveURL/HEAD/script.module.resolveurl/resources/images/redx.png -------------------------------------------------------------------------------- /script.module.resolveurl/resources/images/border90.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gujal00/ResolveURL/HEAD/script.module.resolveurl/resources/images/border90.png -------------------------------------------------------------------------------- /script.module.resolveurl/resources/images/checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gujal00/ResolveURL/HEAD/script.module.resolveurl/resources/images/checked.png -------------------------------------------------------------------------------- /script.module.resolveurl/resources/images/DialogBack1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gujal00/ResolveURL/HEAD/script.module.resolveurl/resources/images/DialogBack1.png -------------------------------------------------------------------------------- /script.module.resolveurl/resources/images/DialogBack2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gujal00/ResolveURL/HEAD/script.module.resolveurl/resources/images/DialogBack2.png -------------------------------------------------------------------------------- /script.module.resolveurl/resources/images/greeninch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gujal00/ResolveURL/HEAD/script.module.resolveurl/resources/images/greeninch.png -------------------------------------------------------------------------------- /script.module.resolveurl/resources/skins/Default/media/button-fo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gujal00/ResolveURL/HEAD/script.module.resolveurl/resources/skins/Default/media/button-fo.png -------------------------------------------------------------------------------- /script.module.resolveurl/resources/skins/Default/media/DialogBack2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gujal00/ResolveURL/HEAD/script.module.resolveurl/resources/skins/Default/media/DialogBack2.png -------------------------------------------------------------------------------- /script.module.resolveurl/resources/skins/Default/media/button-nofo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gujal00/ResolveURL/HEAD/script.module.resolveurl/resources/skins/Default/media/button-nofo.png -------------------------------------------------------------------------------- /script.module.resolveurl/resources/skins/Default/media/dialogheader.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gujal00/ResolveURL/HEAD/script.module.resolveurl/resources/skins/Default/media/dialogheader.png -------------------------------------------------------------------------------- /script.module.resolveurl/resources/skins/Default/media/DialogCloseButton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gujal00/ResolveURL/HEAD/script.module.resolveurl/resources/skins/Default/media/DialogCloseButton.png -------------------------------------------------------------------------------- /script.module.resolveurl/resources/skins/Default/media/DialogCloseButton-focus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gujal00/ResolveURL/HEAD/script.module.resolveurl/resources/skins/Default/media/DialogCloseButton-focus.png -------------------------------------------------------------------------------- /script.module.resolveurl.xxx/changelog.txt: -------------------------------------------------------------------------------- 1 | Version 2.1.44 (April 13, 2025) 2 | 3 | - Resolvers Added: 4 | - trendyporn 5 | 6 | - Resolvers Fixed/Updated: 7 | - None 8 | 9 | - Resolvers Removed 10 | - None 11 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/__init__.py: -------------------------------------------------------------------------------- 1 | import os 2 | import os.path 3 | files = os.listdir(os.path.dirname(__file__)) 4 | __all__ = [str(filename[:-3]) for filename in files if not filename.startswith('__') and filename.endswith('.py')] 5 | -------------------------------------------------------------------------------- /plugin.video.smr_link_tester/resources/settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /script.module.resolveurl/changelog.txt: -------------------------------------------------------------------------------- 1 | Version 5.1.188 (Dec 07, 2025) 2 | - Code Base Changes: 3 | - None 4 | 5 | - Resolvers Added: 6 | - bigshare 7 | 8 | - Resolvers Fixed/Updated: 9 | - doodstream 10 | - savefiles 11 | - streamup 12 | - voe 13 | 14 | - Resolvers Removed 15 | - None 16 | 17 | - Languages Added/Updated 18 | - None 19 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/lib/aesgcm/python_aesgcm.py: -------------------------------------------------------------------------------- 1 | # Author: Google 2 | # See the LICENSE file for legal information regarding use of this file. 3 | 4 | """Pure-Python AES-GCM implementation.""" 5 | 6 | from .aesgcm import AESGCM 7 | from .rijndael import Rijndael 8 | 9 | 10 | def new(key): 11 | return AESGCM(key, "python", Rijndael(key, 16).encrypt) 12 | -------------------------------------------------------------------------------- /script.module.resolveurl.xxx/addon.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Resolve adult video host URL's to be playable in XBMC/Kodi. 10 | Resolve adult video host URL's to be playable in XBMC/Kodi. 11 | all 12 | 13 | icon.png 14 | fanart.jpg 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/lib/rc4.py: -------------------------------------------------------------------------------- 1 | """ 2 | A pure python implementation of RC4 decryption 3 | """ 4 | 5 | import struct 6 | import base64 7 | import six 8 | 9 | 10 | def decrypt(cipher_text, key): 11 | def compat_ord(c): 12 | return c if isinstance(c, int) else ord(c) 13 | 14 | res = six.ensure_binary('') 15 | cipher_text = base64.b64decode(cipher_text) 16 | key_len = len(key) 17 | S = list(range(256)) 18 | 19 | j = 0 20 | for i in range(256): 21 | j = (j + S[i] + ord(key[i % key_len])) % 256 22 | S[i], S[j] = S[j], S[i] 23 | 24 | i = 0 25 | j = 0 26 | for m in range(len(cipher_text)): 27 | i = (i + 1) % 256 28 | j = (j + S[i]) % 256 29 | S[i], S[j] = S[j], S[i] 30 | k = S[(S[i] + S[j]) % 256] 31 | res += struct.pack('B', k ^ compat_ord(cipher_text[m])) 32 | 33 | return six.ensure_str(res) 34 | -------------------------------------------------------------------------------- /plugin.video.smr_link_tester/addon.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | video 12 | 13 | 14 | SMR Link Tester Addon 15 | 16 | all 17 | 18 | icon.png 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/vidhd.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2023 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | 21 | 22 | class VidHDResolver(ResolveGeneric): 23 | name = 'VidHD' 24 | domains = ['vidhd.best'] 25 | pattern = r'(?://|\.)(vidhd\.best)/(?:embed-)?([0-9a-zA-Z-]+)' 26 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/uptomega.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2024 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | 21 | 22 | class UptoMegaResolver(ResolveGeneric): 23 | name = 'UptoMega' 24 | domains = ['uptomega.net'] 25 | pattern = r'(?://|\.)(uptomega\.net)/(?:embed-)?([0-9a-zA-Z]+)' 26 | -------------------------------------------------------------------------------- /plugin.video.smr_link_tester/changelog.txt: -------------------------------------------------------------------------------- 1 | Version 1.1.19 (Nov 15, 2025) 2 | - Fix return_all playback bug introduced in the previous release 3 | 4 | Version 1.1.18 (Oct 24, 2025) 5 | - Report content-type of the resolved url 6 | 7 | Version 1.1.17 (Sep 29, 2025) 8 | - Bugfix: Fail gracefully when empty response from smr 9 | 10 | Version 1.1.16 (Apr 13, 2025) 11 | - Bugfix: Allow supported hoster playback using debrid providers 12 | 13 | Version 1.1.15 (Feb 7, 2025) 14 | - Allow disabling Adult resolvers in settings 15 | 16 | Version 1.1.14 (Feb 2, 2025) 17 | - Allow labels in non English characters 18 | - Resolve subtitles by default if available, no need for $$subs 19 | 20 | Version 1.1.13 (Jun 1, 2024) 21 | - Not set manifest_type on Kodi21 and above 22 | 23 | Version 1.1.12 (Jan 14, 2024) 24 | - add all found subtitles to listitem 25 | 26 | Version 1.1.11 (Jan 3, 2024) 27 | - add subtitle support 28 | - add inputstream adaptive support for hls 29 | 30 | Version 1.1.10 (Aug 1, 2022) 31 | - adjust setInfo for Kodi 20 and above 32 | 33 | Version 1.1.9 (Aug 1, 2022) 34 | - Add mpd playback support 35 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/goostream.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2022 shellc0de 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | 21 | 22 | class GooStreamResolver(ResolveGeneric): 23 | name = 'GooStream' 24 | domains = ['goostream.net'] 25 | pattern = r'(?://|\.)(goostream\.net)/(?:embed-|e/|d/)?([0-9a-zA-Z]+)' 26 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/gomoplayer.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2021 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | 21 | 22 | class GomoPlayerResolver(ResolveGeneric): 23 | 24 | name = 'GomoPlayer' 25 | domains = ['gomoplayer.com', 'tunestream.net', 'xvideosharing.com'] 26 | pattern = r'(?://|\.)((?:gomoplayer|tunestream|xvideosharing)\.(?:com|net))/(?:embed-)?([0-9a-zA-Z]+)' 27 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/lib/websocket/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | websocket - WebSocket client library for Python 3 | 4 | Copyright (C) 2010 Hiroki Ohtani(liris) 5 | 6 | This library is free software; you can redistribute it and/or 7 | modify it under the terms of the GNU Lesser General Public 8 | License as published by the Free Software Foundation; either 9 | version 2.1 of the License, or (at your option) any later version. 10 | 11 | This library is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | Lesser General Public License for more details. 15 | 16 | You should have received a copy of the GNU Lesser General Public 17 | License along with this library; if not, write to the Free Software 18 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | 20 | """ 21 | from ._abnf import * 22 | from ._app import WebSocketApp 23 | from ._core import * 24 | from ._exceptions import * 25 | from ._logging import * 26 | from ._socket import * 27 | 28 | __version__ = "0.59.0" 29 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/lib/aesgcm/tlshashlib.py: -------------------------------------------------------------------------------- 1 | # Author: Hubert Kario (c) 2015 2 | # see LICENCE file for legal information regarding use of this file 3 | 4 | """hashlib that handles FIPS mode.""" 5 | 6 | # Because we are extending the hashlib module, we need to import all its 7 | # fields to suppport the same uses 8 | # pylint: disable=unused-wildcard-import, wildcard-import 9 | from hashlib import * 10 | # pylint: enable=unused-wildcard-import, wildcard-import 11 | import hashlib 12 | 13 | 14 | def _fipsFunction(func, *args, **kwargs): 15 | """Make hash function support FIPS mode.""" 16 | try: 17 | return func(*args, **kwargs) 18 | except ValueError: 19 | return func(*args, usedforsecurity=False, **kwargs) 20 | 21 | 22 | # redefining the function is exactly what we intend to do 23 | # pylint: disable=function-redefined 24 | def md5(*args, **kwargs): 25 | """MD5 constructor that works in FIPS mode.""" 26 | return _fipsFunction(hashlib.md5, *args, **kwargs) 27 | 28 | 29 | def new(*args, **kwargs): 30 | """General constructor that works in FIPS mode.""" 31 | return _fipsFunction(hashlib.new, *args, **kwargs) 32 | # pylint: enable=function-redefined 33 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/filerio.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2021 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | 21 | 22 | class FilerIoResolver(ResolveGeneric): 23 | name = 'FilerIo' 24 | domains = ['filerio.in'] 25 | pattern = r'(?://|\.)(filerio\.in)/(?:embed-)?([0-9a-zA-Z]+)' 26 | 27 | def get_url(self, host, media_id): 28 | return self._default_get_url(host, media_id, template='https://{host}/embed-{media_id}.html') 29 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/juxxi.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveUrl 3 | Copyright (C) 2023 shellc0de 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | 21 | 22 | class Full30Resolver(ResolveGeneric): 23 | name = 'Full30' 24 | domains = ['juxxi.com'] 25 | pattern = r'(?://|\.)(juxxi\.com)/(?:v|video(?:Embed)?)/(\d+)' 26 | 27 | def get_url(self, host, media_id): 28 | return self._default_get_url(host, media_id, template='https://{host}/videoEmbed/{media_id}/') 29 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/vidbob.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2019 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | 21 | 22 | class VidBobResolver(ResolveGeneric): 23 | name = 'VidBob' 24 | domains = ['vidbob.com'] 25 | pattern = r'(?://|\.)(vidbob\.com)/(?:embed-)?([0-9a-zA-Z-]+)' 26 | 27 | def get_url(self, host, media_id): 28 | return self._default_get_url(host, media_id, template='https://{host}/embed-{media_id}.html') 29 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/vkprime.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2018 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | 21 | 22 | class VKPrimeResolver(ResolveGeneric): 23 | name = 'VKPrime' 24 | domains = ['vkprime.com'] 25 | pattern = r'(?://|\.)(vkprime\.com)/(?:embed-)?([a-zA-Z0-9]+)' 26 | 27 | def get_url(self, host, media_id): 28 | return self._default_get_url(host, media_id, template='https://{host}/embed-{media_id}.html') 29 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/darkibox.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2024 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | 21 | 22 | class DarkIBoxResolver(ResolveGeneric): 23 | name = 'DarkIBox' 24 | domains = ['darkibox.com'] 25 | pattern = r'(?://|\.)(darkibox\.com)/(?:embed-)?([0-9a-zA-Z]+)' 26 | 27 | def get_url(self, host, media_id): 28 | return self._default_get_url(host, media_id, template='https://{host}/embed-{media_id}.html') 29 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/embedrise.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2023 shellc0de 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | 21 | 22 | class EmbedRiseResolver(ResolveGeneric): 23 | name = 'EmbedRise' 24 | domains = ['embedrise.com'] 25 | pattern = r'(?://|\.)(embedrise\.com)/(?:v|d)/([0-9a-zA-Z]+)' 26 | 27 | def get_url(self, host, media_id): 28 | return self._default_get_url(host, media_id, template='https://{host}/v/{media_id}') 29 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/streamdav.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2023 shellc0de 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | 21 | 22 | class StreamDavResolver(ResolveGeneric): 23 | name = 'StreamDav' 24 | domains = ['streamdav.com'] 25 | pattern = r'(?://|\.)(streamdav\.com)/(?:e|f|v)/([0-9a-zA-Z]+)' 26 | 27 | def get_url(self, host, media_id): 28 | return self._default_get_url(host, media_id, template='https://{host}/e/{media_id}') 29 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/downace.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2016 script.module.resolveurl 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | 21 | 22 | class DownAceResolver(ResolveGeneric): 23 | name = 'DownAce' 24 | domains = ['downace.com'] 25 | pattern = r'(?://|\.)(downace\.com)/(?:embed/)?([0-9a-zA-Z]+)' 26 | 27 | def get_url(self, host, media_id): 28 | return self._default_get_url(host, media_id, 'https://{host}/embed/{media_id}') 29 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/itemfix.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2021 script.module.resolveurl 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | 21 | 22 | class ItemFixResolver(ResolveGeneric): 23 | name = 'ItemFix' 24 | domains = ['itemfix.com'] 25 | pattern = r'(?://|\.)(itemfix\.com)/(?:v\?t=|e/)([0-9A-Za-z_]+)' 26 | 27 | def get_url(self, host, media_id): 28 | return self._default_get_url(host, media_id, template='https://www.{host}/v?t={media_id}') 29 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/krakenfiles.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2023 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | 21 | 22 | class KrakenFilesResolver(ResolveGeneric): 23 | name = 'KrakenFiles' 24 | domains = ['krakenfiles.com'] 25 | pattern = r'(?://|\.)(krakenfiles\.com)/(?:view|embed-video)?/([0-9a-zA-Z]+)' 26 | 27 | def get_url(self, host, media_id): 28 | return self._default_get_url(host, media_id, template='https://{host}/embed-video/{media_id}') 29 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/myupload.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2018 jsergio 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | 21 | 22 | class MyUpload(ResolveGeneric): 23 | name = 'MyUpload' 24 | domains = ['myupload.co'] 25 | pattern = r'(?://|\.)(myupload\.co)/plugins/mediaplayer/site/_embed.php\?u=([0-9a-zA-Z]+)' 26 | 27 | def get_url(self, host, media_id): 28 | return self._default_get_url(host, media_id, 'https://{host}/plugins/mediaplayer/site/_embed.php?u={media_id}') 29 | -------------------------------------------------------------------------------- /script.module.resolveurl.xxx/resources/plugins/justporno.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2016 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | 21 | 22 | class JustPornoResolver(ResolveGeneric): 23 | name = 'justporno' 24 | domains = ['justporno.tv'] 25 | pattern = r'(?://|\.)(justporno\.tv)/(\w+/\d+)' 26 | 27 | def get_url(self, host, media_id): 28 | return self._default_get_url(host, media_id, template='https://{host}/{media_id}/') 29 | 30 | @classmethod 31 | def _is_enabled(cls): 32 | return True 33 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/vimeos.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2025 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.lib import helpers 20 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 21 | 22 | 23 | class VimeosResolver(ResolveGeneric): 24 | name = 'Vimeos' 25 | domains = ['vimeos.net'] 26 | 27 | def get_media_url(self, host, media_id): 28 | return helpers.get_media_url( 29 | self.get_url(host, media_id), 30 | patterns=[r'file:\s*"(?P[^"]+)'], 31 | generic_patterns=False 32 | ) 33 | -------------------------------------------------------------------------------- /script.module.resolveurl.xxx/resources/plugins/pornone.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2022 shellc0de 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | 21 | 22 | class PornOneResolver(ResolveGeneric): 23 | name = 'pornone' 24 | domains = ['pornone.com'] 25 | pattern = r'(?://|\.)(pornone\.com)/([\w\-/]+/\d+)' 26 | 27 | def get_url(self, host, media_id): 28 | return self._default_get_url(host, media_id, template='https://{host}/{media_id}/') 29 | 30 | @classmethod 31 | def _is_enabled(cls): 32 | return True 33 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/entervideo.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2020 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | 21 | 22 | class EnterVideoResolver(ResolveGeneric): 23 | name = 'EnterVideo' 24 | domains = ['entervideo.net', 'eplayvid.com', 'eplayvid.net'] 25 | pattern = r'(?://|\.)((?:entervideo|eplayvid)\.(?:com|net))/(?:watch/)?([0-9a-zA-Z]+)' 26 | 27 | def get_url(self, host, media_id): 28 | return self._default_get_url(host, media_id, template='http://eplayvid.net/watch/{media_id}') 29 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/oneupload.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2023 shellc0de 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.lib import helpers 20 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 21 | 22 | 23 | class OneUploadResolver(ResolveGeneric): 24 | name = 'OneUpload' 25 | domains = ['oneupload.to'] 26 | 27 | def get_media_url(self, host, media_id): 28 | return helpers.get_media_url( 29 | self.get_url(host, media_id), 30 | patterns=[r'''sources:\s*\[{(?:src|file):\s*["'](?P[^"']+)'''] 31 | ) 32 | -------------------------------------------------------------------------------- /script.module.resolveurl.xxx/resources/plugins/daftporn.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2016 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | 21 | 22 | class DaftpornResolver(ResolveGeneric): 23 | name = 'daftporn' 24 | domains = ['daftporn.com'] 25 | pattern = r'(?://|\.)(daftporn\.com)/([a-zA-Z-]+/[\w-]+\.php)' 26 | 27 | def get_url(self, host, media_id): 28 | return self._default_get_url(host, media_id, template='http://{host}/{media_id}') 29 | 30 | @classmethod 31 | def _is_enabled(cls): 32 | return True 33 | -------------------------------------------------------------------------------- /script.module.resolveurl.xxx/resources/plugins/clips4sale.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2023 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | 21 | 22 | class Clips4SaleResolver(ResolveGeneric): 23 | name = 'Clips4Sale' 24 | domains = ['clips4sale.com'] 25 | pattern = r'(?://|\.)(clips4sale\.com)/clip/(\d+)' 26 | 27 | def get_url(self, host, media_id): 28 | return self._default_get_url(host, media_id, template='https://l.{host}/clip/{media_id}/') 29 | 30 | @classmethod 31 | def _is_enabled(cls): 32 | return True 33 | -------------------------------------------------------------------------------- /script.module.resolveurl.xxx/resources/plugins/gotporn.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2016 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | 21 | 22 | class GotPornResolver(ResolveGeneric): 23 | name = 'gotporn' 24 | domains = ['gotporn.com'] 25 | pattern = r'(?://|\.)(gotporn\.com)/[\w-]+/(?:video-)?(\d+)' 26 | 27 | def get_url(self, host, media_id): 28 | return self._default_get_url(host, media_id, template='http://www.{host}/video/{media_id}/') 29 | 30 | @classmethod 31 | def _is_enabled(cls): 32 | return True 33 | -------------------------------------------------------------------------------- /script.module.resolveurl.xxx/resources/plugins/madthumbs.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2016 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | 21 | 22 | class MadThumbsResolver(ResolveGeneric): 23 | name = 'madthumbs' 24 | domains = ['madthumbs.com'] 25 | pattern = r'(?://|\.)(madthumbs\.com)/videos/(.+)' 26 | 27 | def get_url(self, host, media_id): 28 | return self._default_get_url(host, media_id, template='http://www.{host}/videos/{media_id}') 29 | 30 | @classmethod 31 | def _is_enabled(cls): 32 | return True 33 | -------------------------------------------------------------------------------- /script.module.resolveurl.xxx/resources/plugins/pornxs.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2016 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | 21 | 22 | class PornXSResolver(ResolveGeneric): 23 | name = 'pornxs' 24 | domains = ['pornxs.com'] 25 | pattern = r'(?://|\.)(pornxs\.com)/(?:[a-zA-Z-\.\?]+)?(?:/|=)?(\d+)' 26 | 27 | def get_url(self, host, media_id): 28 | return self._default_get_url(host, media_id, template='https://{host}/embed/{media_id}') 29 | 30 | @classmethod 31 | def _is_enabled(cls): 32 | return True 33 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/filesim.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2022 shellc0de 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.lib import helpers 20 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 21 | 22 | 23 | class FilesIMResolver(ResolveGeneric): 24 | name = 'FilesIM' 25 | domains = ['files.im'] 26 | pattern = r'(?://|\.)(files\.im)/(?:embed-)?([0-9a-zA-Z]+)' 27 | 28 | def get_media_url(self, host, media_id): 29 | return helpers.get_media_url( 30 | self.get_url(host, media_id), 31 | verifypeer=False 32 | ) 33 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/linkbox.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2022 shellc0de 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | 21 | 22 | class LinkBoxResolver(ResolveGeneric): 23 | name = 'LinkBox' 24 | domains = ['linkbox.to', 'sharezweb.com'] 25 | pattern = r'(?://|\.)((?:linkbox|sharezweb)\.(?:to|com))/(?:player\.html\?id=|file/)([0-9a-zA-Z]+)' 26 | 27 | def get_url(self, host, media_id): 28 | return self._default_get_url(host, media_id, template='https://www.linkbox.to/api/file/detail?itemId={media_id}') 29 | -------------------------------------------------------------------------------- /script.module.resolveurl.xxx/resources/plugins/iporntoo.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2023 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | 21 | 22 | class IPorntooResolver(ResolveGeneric): 23 | name = 'IPorntoo' 24 | domains = ['iporntoo.com'] 25 | pattern = r'(?://|\.)(iporntoo\.com)/video/([a-zA-Z0-9-]+)' 26 | 27 | def get_url(self, host, media_id): 28 | return self._default_get_url(host, media_id, template='https://{host}/video/{media_id}.html') 29 | 30 | @classmethod 31 | def _is_enabled(cls): 32 | return True 33 | -------------------------------------------------------------------------------- /script.module.resolveurl.xxx/resources/plugins/trendyporn.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2025 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | 21 | 22 | class TrendyPornResolver(ResolveGeneric): 23 | name = 'TrendyPorn' 24 | domains = ['trendyporn.com'] 25 | pattern = r'(?://|\.)(trendyporn\.com)/embed/(\d+)' 26 | 27 | def get_url(self, host, media_id): 28 | return self._default_get_url(host, media_id, template='https://www.{host}/embed/{media_id}') 29 | 30 | @classmethod 31 | def _is_enabled(cls): 32 | return True 33 | -------------------------------------------------------------------------------- /script.module.resolveurl.xxx/resources/plugins/vporn.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2016 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | 21 | 22 | class VPornResolver(ResolveGeneric): 23 | name = 'vporn' 24 | domains = ['vporn.com'] 25 | pattern = r'(?://|\.)(vporn\.com)/(?:[a-zA-Z-]+)(?:[a-zA-Z-/]+)/([\d]+)' 26 | 27 | def get_url(self, host, media_id): 28 | return self._default_get_url(host, media_id, template='https://www.{host}/embed/{media_id}/') 29 | 30 | @classmethod 31 | def _is_enabled(cls): 32 | return True 33 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/fastream.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2025 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.lib import helpers 20 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 21 | 22 | 23 | class FastreamResolver(ResolveGeneric): 24 | name = 'Fastream' 25 | domains = ['fastream.to'] 26 | 27 | def get_media_url(self, host, media_id): 28 | return helpers.get_media_url( 29 | self.get_url(host, media_id), 30 | patterns=[r'sources:\s*\[{\s*file:\s*"(?P[^"]+)'], 31 | generic_patterns=False 32 | ) 33 | -------------------------------------------------------------------------------- /script.module.resolveurl.xxx/resources/plugins/perfectgirls.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2016 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | 21 | 22 | class PerfectgirlsResolver(ResolveGeneric): 23 | name = 'perfectgirls' 24 | domains = ['perfectgirls.net'] 25 | pattern = r'(?://|\.)(perfectgirls\.net)/((?:[a-zA-Z]+/)?\d+)' 26 | 27 | def get_url(self, host, media_id): 28 | return self._default_get_url(host, media_id, template='http://{host}/{media_id}') 29 | 30 | @classmethod 31 | def _is_enabled(cls): 32 | return True 33 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/vidello.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2023 shellc0de 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.lib import helpers 20 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 21 | 22 | 23 | class VidelloResolver(ResolveGeneric): 24 | name = 'Vidello' 25 | domains = ['vidello.net'] 26 | 27 | def get_media_url(self, host, media_id): 28 | return helpers.get_media_url( 29 | self.get_url(host, media_id), 30 | patterns=[r'''sources:\s*\[{src:\s*["'](?P[^"']+)'''], 31 | generic_patterns=False 32 | ) 33 | -------------------------------------------------------------------------------- /script.module.resolveurl.xxx/resources/plugins/imperioporno.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2018 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | 21 | 22 | class ImperioPornoResolver(ResolveGeneric): 23 | name = 'imperioporno' 24 | domains = ['imperioporno.tv'] 25 | pattern = r'(?://|\.)(imperioporno\.tv)/wp-content/plugins/repro/video.php([0-9a-zA-Z?=.&]+)' 26 | 27 | def get_url(self, host, media_id): 28 | return self._default_get_url(host, media_id, template='https://www.{host}/wp-content/plugins/repro/video.php{media_id}') 29 | 30 | @classmethod 31 | def _is_enabled(cls): 32 | return True 33 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/vidfast.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2020 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | from resolveurl.lib import helpers 21 | 22 | 23 | class VidFastResolver(ResolveGeneric): 24 | name = 'VidFast' 25 | domains = ['vidfast.co'] 26 | pattern = r'(?://|\.)(vidfast\.co)/(?:embed-)?([a-zA-Z0-9]+)' 27 | 28 | def get_media_url(self, host, media_id): 29 | return helpers.get_media_url( 30 | self.get_url(host, media_id), 31 | patterns=[r'''sources:\s*\[{file:\s*"(?P[^"]+)'''], 32 | generic_patterns=False 33 | ) 34 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/uploaddo.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2023 shellc0de 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.lib import helpers 20 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 21 | 22 | 23 | class UploadDoResolver(ResolveGeneric): 24 | name = 'UploadDo' 25 | domains = ['upload.do'] 26 | pattern = r'(?://|\.)(upload\.do)/(?:embed-|e/|d/)?([0-9a-zA-Z]+)' 27 | 28 | def get_media_url(self, host, media_id): 29 | return helpers.get_media_url( 30 | self.get_url(host, media_id), 31 | patterns=[r'''sources:\s*\[{src:\s*["'](?P[^"']+)'''], 32 | generic_patterns=False 33 | ) 34 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/vido.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2022 shellc0de 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | from resolveurl.lib import helpers 21 | 22 | 23 | class VidoResolver(ResolveGeneric): 24 | name = 'Vido' 25 | domains = ['vido.lol', 'vido.cool'] 26 | pattern = r'(?://|\.)(vido\.(?:lol|cool))/(?:embed-|e/|d/)?([0-9a-zA-Z]+)' 27 | 28 | def get_media_url(self, host, media_id): 29 | return helpers.get_media_url( 30 | self.get_url(host, media_id), 31 | patterns=[r'''sources:\s*\[(?:{file:)?\s*["'](?P[^"']+)'''], 32 | generic_patterns=False 33 | ) 34 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/larhu.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2025 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | 20 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 21 | from resolveurl.lib import helpers 22 | 23 | 24 | class LarhuResolver(ResolveGeneric): 25 | name = 'Larhu' 26 | domains = ['larhu.com'] 27 | pattern = r'(?://|\.)(larhu\.com)/(?:embed-)?([0-9a-zA-Z]+)' 28 | 29 | def get_media_url(self, host, media_id): 30 | return helpers.get_media_url( 31 | self.get_url(host, media_id), 32 | patterns=[r'''sources\s*:\s*\[{file:"(?P[^"]+)'''], 33 | generic_patterns=False, 34 | referer=False 35 | ) 36 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/lib/aesgcm/aes.py: -------------------------------------------------------------------------------- 1 | # Author: Trevor Perrin 2 | # See the LICENSE file for legal information regarding use of this file. 3 | 4 | """Abstract class for AES.""" 5 | 6 | class AES(object): 7 | def __init__(self, key, mode, IV, implementation): 8 | if len(key) not in (16, 24, 32): 9 | raise AssertionError() 10 | if mode not in [2, 6]: 11 | raise AssertionError() 12 | if mode == 2: 13 | if len(IV) != 16: 14 | raise AssertionError() 15 | if mode == 6: 16 | if len(IV) > 16: 17 | raise AssertionError() 18 | self.isBlockCipher = True 19 | self.isAEAD = False 20 | self.block_size = 16 21 | self.implementation = implementation 22 | if len(key)==16: 23 | self.name = "aes128" 24 | elif len(key)==24: 25 | self.name = "aes192" 26 | elif len(key)==32: 27 | self.name = "aes256" 28 | else: 29 | raise AssertionError() 30 | 31 | #CBC-Mode encryption, returns ciphertext 32 | #WARNING: *MAY* modify the input as well 33 | def encrypt(self, plaintext): 34 | assert(len(plaintext) % 16 == 0) 35 | 36 | #CBC-Mode decryption, returns plaintext 37 | #WARNING: *MAY* modify the input as well 38 | def decrypt(self, ciphertext): 39 | assert(len(ciphertext) % 16 == 0) 40 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/gostream.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2023 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | from resolveurl.lib import helpers 21 | 22 | 23 | class GoStreamResolver(ResolveGeneric): 24 | name = 'GoStream' 25 | domains = ['gostream.pro'] 26 | pattern = r'(?://|\.)(gostream\.pro)/(?:embed-|e/|d/)?([0-9a-zA-Z]+)' 27 | 28 | def get_media_url(self, host, media_id): 29 | return helpers.get_media_url( 30 | self.get_url(host, media_id), 31 | patterns=[r'''file:\s*["'](?P[^"']+)'''], 32 | generic_patterns=False, 33 | referer=False, 34 | verifypeer=False 35 | ) 36 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/uploady.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2024 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | from resolveurl.lib import helpers 21 | 22 | 23 | class UploadYResolver(ResolveGeneric): 24 | name = 'UploadY' 25 | domains = ['uploady.io'] 26 | pattern = r'(?://|\.)(uploady\.io)/(?:embed-)?([0-9a-zA-Z]+)' 27 | 28 | def get_media_url(self, host, media_id): 29 | return helpers.get_media_url( 30 | self.get_url(host, media_id), 31 | verifypeer=False 32 | ) 33 | 34 | def get_url(self, host, media_id): 35 | return self._default_get_url(host, media_id, template='https://{host}/embed-{media_id}.html') 36 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/sendvid.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2019 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | from resolveurl.lib import helpers 21 | 22 | 23 | class SendVidResolver(ResolveGeneric): 24 | name = 'SendVid' 25 | domains = ['sendvid.com'] 26 | pattern = r'(?://|\.)(sendvid\.com)/(?:embed/)?([0-9a-zA-Z]+)' 27 | 28 | def get_media_url(self, host, media_id): 29 | return helpers.get_media_url( 30 | self.get_url(host, media_id), 31 | patterns=[r'''source\s*src="(?P[^"]+)'''] 32 | ) 33 | 34 | def get_url(self, host, media_id): 35 | return self._default_get_url(host, media_id, template='https://{host}/{media_id}') 36 | -------------------------------------------------------------------------------- /script.module.resolveurl.xxx/resources/plugins/cumlouder.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2020 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | from resolveurl.lib import helpers 21 | 22 | 23 | class CumLouderResolver(ResolveGeneric): 24 | name = 'cumlouder' 25 | domains = ['cumlouder.com'] 26 | pattern = r'(?://|\.)(cumlouder\.com)/(?:[a-z]+/)?(?:embed/)([0-9a-zA-Z]+)' 27 | 28 | def get_media_url(self, host, media_id): 29 | return helpers.get_media_url(self.get_url(host, media_id)) 30 | 31 | def get_url(self, host, media_id): 32 | return self._default_get_url(host, media_id, template='https://www.{host}/embed/{media_id}/') 33 | 34 | @classmethod 35 | def _is_enabled(cls): 36 | return True 37 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/userscloud.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2014 Lorka 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | from resolveurl.lib import helpers 21 | 22 | 23 | class UsersCloudResolver(ResolveGeneric): 24 | name = 'UsersCloud' 25 | domains = ['userscloud.com'] 26 | pattern = r'(?://|\.)(userscloud\.com)/(?:embed-|embed/)?([0-9a-zA-Z/]+)' 27 | 28 | def get_media_url(self, host, media_id): 29 | return helpers.get_media_url( 30 | self.get_url(host, media_id), 31 | patterns=[r'''file:\s*['"](?P[^'"]+)'''] 32 | ) 33 | 34 | def get_url(self, host, media_id): 35 | return self._default_get_url(host, media_id, template='https://{host}/{media_id}') 36 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/voxzer.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2022 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.lib import helpers 20 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 21 | 22 | 23 | class VoxzerResolver(ResolveGeneric): 24 | name = 'Voxzer' 25 | domains = ['voxzer.org'] 26 | pattern = r'(?://|\.)(voxzer.org)/view/([0-9a-zA-Z]+)' 27 | 28 | def get_media_url(self, host, media_id): 29 | return helpers.get_media_url( 30 | self.get_url(host, media_id), 31 | patterns=[r'''link":"(?P[^"]+)'''], 32 | generic_patterns=False 33 | ) 34 | 35 | def get_url(self, host, media_id): 36 | return self._default_get_url(host, media_id, 'https://player.{host}/list/{media_id}') 37 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/vidcloud.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2020 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.lib import helpers 20 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 21 | 22 | 23 | class VidCloudResolver(ResolveGeneric): 24 | name = 'VidCloud' 25 | domains = ['vidcloud.co', 'vidcloud.pro', 'vidcloud.is'] 26 | pattern = r'(?://|\.)(vidcloud\.(?:co|pro|is))/(?:embed\d/|v/|player\?fid=)([0-9a-zA-Z?&=]+)' 27 | 28 | def get_media_url(self, host, media_id): 29 | return helpers.get_media_url( 30 | self.get_url(host, media_id), 31 | referer=False 32 | ) 33 | 34 | def get_url(self, host, media_id): 35 | return self._default_get_url(host, media_id, 'https://{host}/embed5/{media_id}') 36 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/bigshare.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2025 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | from resolveurl.lib import helpers 21 | 22 | 23 | class BigShareResolver(ResolveGeneric): 24 | name = 'BigShare' 25 | domains = ['bigshare.io'] 26 | pattern = r'(?://|\.)(bigshare\.io)/watch/([a-zA-Z0-9]+)' 27 | 28 | def get_media_url(self, host, media_id): 29 | return helpers.get_media_url( 30 | self.get_url(host, media_id), 31 | patterns=[r'''url:\s*'(?P[^']+)'''], 32 | generic_patterns=False 33 | ) 34 | 35 | def get_url(self, host, media_id): 36 | return self._default_get_url(host, media_id, template='https://{host}/watch/{media_id}/e') 37 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/kwik.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2022 shellc0de 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | from resolveurl.lib import helpers 21 | 22 | 23 | class KwikResolver(ResolveGeneric): 24 | name = 'Kwik' 25 | domains = ['kwik.cx'] 26 | pattern = r'(?://|\.)(kwik\.cx)/(?:e/|d/|v/)?([0-9a-zA-Z]+)' 27 | 28 | def get_media_url(self, host, media_id): 29 | return helpers.get_media_url( 30 | self.get_url(host, media_id), 31 | patterns=[r'''const\s*source\s*=\s*'(?P[^']+)'''], 32 | generic_patterns=False 33 | ) 34 | 35 | def get_url(self, host, media_id): 36 | return self._default_get_url(host, media_id, template='https://{host}/e/{media_id}') 37 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/mediacm.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2023 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | from resolveurl.lib import helpers 21 | 22 | 23 | class MediaResolver(ResolveGeneric): 24 | name = 'Media' 25 | domains = ['media.cm'] 26 | pattern = r'(?://|\.)(media\.cm)/(?:e/|d/)?([0-9a-zA-Z]+)' 27 | 28 | def get_media_url(self, host, media_id): 29 | return helpers.get_media_url( 30 | self.get_url(host, media_id), 31 | patterns=[r'''sources:\s*\[{\s*src:\s*"(?P[^"]+)'''], 32 | generic_patterns=False 33 | ) 34 | 35 | def get_url(self, host, media_id): 36 | return self._default_get_url(host, media_id, template='https://{host}/{media_id}') 37 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/reviewtech.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2023 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | from resolveurl.lib import helpers 21 | 22 | 23 | class ReviewTechResolver(ResolveGeneric): 24 | name = 'ReviewTech' 25 | domains = ['reviewtech.me'] 26 | pattern = r'//(.*?\.reviewtech\.me)/(?:embed-embed-|embed-)?([0-9a-zA-Z]+)' 27 | 28 | def get_media_url(self, host, media_id): 29 | return helpers.get_media_url( 30 | self.get_url(host, media_id), 31 | referer=False, 32 | verifypeer=False 33 | ) 34 | 35 | def get_url(self, host, media_id): 36 | return self._default_get_url(host, media_id, template='https://{host}/embed-{media_id}.html') 37 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/superitu.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2018 gujal 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 20 | from resolveurl.lib import helpers 21 | 22 | 23 | class SuperITUResolver(ResolveGeneric): 24 | name = 'SuperITU' 25 | domains = ['superitu.com'] 26 | pattern = r'(?://|\.)(superitu\.com)/embed/redirector\.php\?id=([0-9a-zA-Z=]+)' 27 | 28 | def get_media_url(self, host, media_id): 29 | return helpers.get_media_url( 30 | self.get_url(host, media_id), 31 | patterns=[r'''file:\s*['"](?P[^'"]+)'''] 32 | ) 33 | 34 | def get_url(self, host, media_id): 35 | return self._default_get_url(host, media_id, 'http://%s/embed/redirector.php?id=%s' % (host, media_id)) 36 | -------------------------------------------------------------------------------- /script.module.resolveurl/lib/resolveurl/plugins/embedgram.py: -------------------------------------------------------------------------------- 1 | """ 2 | Plugin for ResolveURL 3 | Copyright (C) 2023 shellc0de 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | """ 18 | 19 | from resolveurl.lib import helpers 20 | from resolveurl.plugins.__resolve_generic__ import ResolveGeneric 21 | 22 | 23 | class EmbedGramResolver(ResolveGeneric): 24 | name = 'EmbedGram' 25 | domains = ['embedgram.com'] 26 | pattern = r'(?://|\.)(embedgram\.com)/(?:v|f)/([0-9a-zA-Z]+)' 27 | 28 | def get_media_url(self, host, media_id): 29 | return helpers.get_media_url( 30 | self.get_url(host, media_id), 31 | patterns=[r'''source\s*src=["']?(?P[^"']+)["']?\s+title=["'](?P