├── 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