diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000..11775e5
Binary files /dev/null and b/.DS_Store differ
diff --git a/LICENSE.txt b/LICENSE.txt
new file mode 100644
index 0000000..4f8e8eb
--- /dev/null
+++ b/LICENSE.txt
@@ -0,0 +1,282 @@
+
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+-------------------------------------------------------------------------
diff --git a/addon.xml b/addon.xml
new file mode 100644
index 0000000..d41ff61
--- /dev/null
+++ b/addon.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+ video
+
+
+ Files Online
+ Soubory Online
+ Súbory Online
+ Get access to various czech filesharing services
+ Získejte přístup k různým file-sharingovým službám
+ Získajte prístup k rôznym file-sharingovým službám
+ all
+ https://github.com/kodi-czsk/plugin.video.online-files
+
+
diff --git a/changelog.txt b/changelog.txt
new file mode 100644
index 0000000..13020e8
--- /dev/null
+++ b/changelog.txt
@@ -0,0 +1,77 @@
+[B]1.4.1:[/B] 21.01.2022
+- fix import module
+
+[B]1.4.0:[/B] 20.01.2022
+- podpora pre Kodi 19
+- opravene setings pre vsetky jazyky
+
+- fix webshare
+ - funguje vyhladavanie
+ - funguje pozeranie vip
+
+- fix ulozto
+ - funguje vyhladavanie - z github zdroja
+
+- fix hellspy
+ - funguje vyhladavanie
+ - ?pozeranie netestovane - nemam vip
+
+- del bezvadata
+ - stranka neexistuje
+
+
+[B]1.3.4:[/B] 17. 07. 2016
+- ulozto: oprava prehravani a stahovani (jose1711)
+[B]1.3.3:[/B] 28. 12. 2015
+- oprava hledani ulozto
+[B]1.3.2:[/B] 24. 10. 2015
+- oprava ulozto captcha (biegleux)
+[B]1.3.1:[/B] 22. 7. 2015
+- oprava hledání na ulozto
+[B]1.3.0:[/B] 20. 5. 2015
+- přidána podpora přihlášení pro webshare.cz (sWski)
+[B]1.2.8:[/B]
+- #254 - ulozto: oprava prihlaseni
+- #262 - ulozto: oprava prehravani, vyhledavani
+[B]1.2.7:[/B]
+- #216 - opraveno nefunkční zobrazování captcha
+[B]1.2.5:[/B]
+- ulozto: oprava přehrávání a stahování (dle změn webu)
+[B]1.2.4:[/B]
+- oprava kompatibility s pythonem 2.6
+- oprava fastshare
+[B]1.2.3:[/B]
+- pokus o opravy #193 (nezobrazuje se captcha obrazek na win pokud je na ceste
+non-ascii znak)
+- globalni vyhledavani nyni dotazuje vsechny servery zaroven
+[B]1.2.2:[/B]
+- ulozto: přidáno cachování výsledků hledání (1h)
+- ulozto: oprava chyby, kdy se vůbec nezobrazí captcha
+[B]1.2.1:[/B]
+- další opravy ulozto hledani
+[B]1.2.0:[/B]
+- přidan server webshare.cz
+[B]1.1.2:[/B]
+- #170 vyhledavani na ulozto opet v provozu
+[B]1.1.1:[/B]
+- #155 přidána podpora oblíbených a uživatelských souborů (zatím pouze zobrazení)
+[B]1.1.0:[/B]
+- přidán fastshare.cz (zatím pouze FREE stahování)
+- přesunuty provider skripty
+[B]1.0.7:[/B]
+- ulozto nyní umožňuje vyhledávát všechny typy souborů a filtrovat dle přípony
+[B]1.0.4:[/B]
+- verze++ kvuli update v stream.resolveru
+[B]1.0.3:[/B]
+- přidáno nové nastavení pro hellspy pro možnost použití slovenského mirroru http://stiahnito.sk
+- oprava přehrávání/stahování y ulozto
+- oprava zobrazování captcha na windows (bezvadata)
+[B]1.0.2:[/B]
+- verze++ kvuli update v stream.resolveru
+[B]1.0.1:[/B]
+- oprava stahování z bezvadata (zatím bez přihlášení)
+- přidáno logování, hlavně na ulozto
+- oprava hromadného vyhledávání, kdy chyba na některém servru neblokuje
+vyhledávání na jiných
+[B]1.0.0:[/B]
+Initial version
diff --git a/default.py b/default.py
new file mode 100644
index 0000000..b8c6e32
--- /dev/null
+++ b/default.py
@@ -0,0 +1,274 @@
+# -*- coding: UTF-8 -*-
+#/*
+# * Copyright (C) 2012 Libor Zoubek
+# *
+# *
+# * This Program is free software; you can redistribute it and/or modify
+# * it under the terms of the GNU General Public License as published by
+# * the Free Software Foundation; either version 2, or (at your option)
+# * any later version.
+# *
+# * This Program is distributed in the hope that it will be useful,
+# * but WITHOUT ANY WARRANTY; without even the implied warranty of
+# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# * GNU General Public License for more details.
+# *
+# * You should have received a copy of the GNU General Public License
+# * along with this program; see the file COPYING. If not, write to
+# * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+# * http://www.gnu.org/copyleft/gpl.html
+# *
+# */
+
+
+import urllib
+
+#Python 2
+try:
+ # import cookielib
+ import urllib2
+ # import sys
+ # reload(sys) # Reload does the trick!
+ # sys.setdefaultencoding('UTF8')
+#Python 3
+except:
+ #import http.cookiejar
+ # cookielib = http.cookiejar
+ # urllib2 = urllib.request
+ pass
+
+import re,os,traceback,socket
+sys.path.append( os.path.join ( os.path.dirname(__file__),'resources','lib') )
+import xbmcaddon,xbmc,xbmcgui,xbmcplugin
+
+__scriptid__ = 'plugin.video.online-files'
+__scriptname__ = 'Soubory Online'
+__addon__ = xbmcaddon.Addon(id=__scriptid__)
+__language__ = __addon__.getLocalizedString
+__settings__ = __addon__.getSetting
+
+import util,search
+
+import xbmcutil, xbmcvfs
+# import bezvadata,
+import hellspy,ulozto,fastshare,webshare
+import xbmcprovider
+from threading import Lock
+from provider import ResolveException
+
+
+def search_cb(what):
+
+ def paralel_search(search):
+ def do_search(p,what):
+ res = []
+ try:
+ result = p.provider.search(what)
+ for item in result:
+ item['title'] = '[%s] %s' % (p.provider.name,item['title'])
+ if item['type'] == 'next':
+ item['type'] = 'dir'
+ item['title'] = '[%s] %s >>' % (p.provider.name,__language__(30063))
+ except:
+ traceback.print_exc()
+ try:
+ lock.acquire()
+ p.list(result)
+ finally:
+ lock.release()
+ lock = Lock()
+ util.run_parallel_in_threads(do_search, search)
+
+ searches = []
+ for key in providers.keys():
+ p = providers[key]
+ searches.append((p,what))
+ paralel_search(searches)
+ return xbmcplugin.endOfDirectory(int(sys.argv[1]))
+
+# def bezvadata_filter(item):
+# ext_filter = __settings__('bezvadata_ext-filter').split(',')
+# ext_filter = ['.'+f.strip() for f in ext_filter]
+# extension = os.path.splitext(item['title'])[1]
+# if extension in ext_filter:
+# return False
+# elif '18+' in item.keys() and __settings__('bezvadata_18+content') != 'true':
+# return False
+# return True
+
+def ulozto_filter(item):
+ ext_filter = __settings__('ulozto_ext-filter').split(',')
+ ext_filter = ['.'+f.strip() for f in ext_filter]
+ extension = os.path.splitext(item['title'])[1]
+ if extension in ext_filter:
+ return False
+ return True
+
+def webshare_filter(item):
+ ext_filter = __settings__('webshare_ext-filter').split(',')
+ ext_filter = ['.'+f.strip() for f in ext_filter]
+ extension = os.path.splitext(item['title'])[1]
+ if extension in ext_filter:
+ return False
+ return True
+
+class XBMCHellspyContentProvider(xbmcprovider.XBMCLoginRequiredContentProvider):
+
+ def render_default(self,item):
+ params = self.params()
+ if item['type'] == 'top':
+ params.update({'list':item['url']})
+ xbmcutil.add_dir(item['title'],params,xbmcutil.icon('top.png'))
+
+ def render_video(self,item):
+ params = self.params()
+ params.update({'to-downloads':item['url']})
+ item['menu'] = {__language__(30056):params}
+ return xbmcprovider.XBMCLoginRequiredContentProvider.render_video(self,item)
+
+ def run_custom(self,params):
+ if 'to-downloads' in params.keys():
+ self.provider.to_downloads(params['to-downloads'])
+
+class XBMCUloztoContentProvider(xbmcprovider.XBMCLoginOptionalContentProvider):
+
+ def __init__(self,provider,settings,addon):
+ xbmcprovider.XBMCLoginOptionalContentProvider.__init__(self,provider,settings,addon)
+ self.check_setting_keys(['vip','search-type'])
+ search_type = ''
+ #search_types = {'0':'','1':'media=video&','2':'media=image&','3':'media=music&','4':'media=document&'}
+ search_types = {'0':'','1':'type=videos&','2':'type=images&','3':'type=audios&','4':'type=documents&','5':'type=archives&'}
+ if settings['search-type'] in search_types.keys():
+ search_type = search_types[settings['search-type']]
+ provider.search_type = search_type
+
+ def resolve(self,url):
+ item = self.provider.video_item()
+ item.update({'url':url,'vip':True})
+ if not self.ask_for_account_type():
+ # user does not want to use VIP at this time
+ item.update({'vip':False})
+ else:
+ if not self.provider.login():
+ xbmcgui.Dialog().ok(self.provider.name,xbmcutil.__lang__(30011))
+ return
+ try:
+ if __settings__("ulozto_captcha_auto") == "true":
+ return self.provider.resolve(item,captcha_cb=self.solve_captcha)
+ else:
+ return self.provider.resolve(item,captcha_cb=self.ask_for_captcha)
+ except ResolveException as e:
+ self._handle_exc(e)
+
+ def solve_captcha(self,params):
+ #snd = os.path.join(unicode(xbmc.translatePath(self.addon.getAddonInfo('profile'))),'sound.wav')
+ snd = os.path.join(xbmcvfs.translatePath(self.addon.getAddonInfo('profile')),'sound.wav')
+ # snd = 'sound.wav'
+ print(self.addon.getAddonInfo('profile'))
+ util.save_to_file(params['snd'], snd)
+ sndfile = open(snd, 'rb').read()
+ url = 'http://m217-io.appspot.com/ulozto'
+ headers = {'Content-Type': 'audio/wav'}
+ req = urllib.request.Request(url, sndfile, headers)
+ response = None
+ try:
+ response = urllib.request.urlopen(req, timeout = int(__settings__("ulozto_captcha_timeout")))
+ data = response.read()
+ except (urllib.request.HTTPError, socket.timeout):
+ traceback.print_exc()
+ data = ''
+ finally:
+ response and response.close()
+ if not data:
+ return self.ask_for_captcha(params)
+ return data
+
+class XBMCWebshareContentProvider(xbmcprovider.XBMCLoginOptionalContentProvider):
+
+ def resolve(self,url):
+ item = self.provider.video_item(url=url)
+ if not self.provider.login():
+ xbmcgui.Dialog().ok(self.provider.name,xbmcutil.__lang__(30011))
+ return
+ try:
+ return self.provider.resolve(item)
+ except ResolveException as e:
+ self._handle_exc(e)
+
+
+settings = {
+ 'downloads':__settings__('downloads'),
+ 'download-notify':__settings__('download-notify'),
+ 'download-notify-every':__settings__('download-notify-every'),
+}
+
+providers = {}
+
+# if __settings__('bezvadata_enabled') == 'true':
+# p = bezvadata.BezvadataContentProvider(username='',password='',filter=bezvadata_filter,tmp_dir=xbmc.translatePath(__addon__.getAddonInfo('profile')))
+# extra = {
+# 'keep-searches':__settings__('bezvadata_keep-searches'),
+# 'vip':'0'
+# }
+# extra.update(settings)
+# providers[p.name] = xbmcprovider.XBMCLoginOptionalDelayedContentProvider(p,extra,__addon__)
+
+if __settings__('ulozto_enabled') == 'true':
+ p = ulozto.UloztoContentProvider(__settings__('ulozto_user'),__settings__('ulozto_pass'),filter=ulozto_filter)
+ extra = {
+ 'vip':__settings__('ulozto_usevip'),
+ 'keep-searches':__settings__('ulozto_keep-searches'),
+ 'search-type':__settings__('ulozto_search-type')
+ }
+ extra.update(settings)
+ providers[p.name] = XBMCUloztoContentProvider(p,extra,__addon__)
+if __settings__('hellspy_enabled') == 'true':
+ p = hellspy.HellspyContentProvider(__settings__('hellspy_user'),__settings__('hellspy_pass'),site_url=__settings__('hellspy_site_url'))
+ extra = {
+ 'keep-searches':__settings__('hellspy_keep-searches')
+ }
+ extra.update(settings)
+ providers[p.name] = XBMCHellspyContentProvider(p,extra,__addon__)
+
+if __settings__('fastshare_enabled') == 'true':
+ p = fastshare.FastshareContentProvider(__settings__('fastshare_user'),__settings__('fastshare_pass'),tmp_dir=xbmcvfs.translatePath(__addon__.getAddonInfo('profile')))
+ extra = {
+ 'vip':'0',
+ 'keep-searches':__settings__('fastshare_keep-searches')
+ }
+ extra.update(settings)
+ providers[p.name] = xbmcprovider.XBMCLoginOptionalContentProvider(p,extra,__addon__)
+
+if __settings__('webshare_enabled') == 'true':
+ p = webshare.WebshareContentProvider(__settings__('webshare_user'),__settings__('webshare_pass'),filter=webshare_filter)
+ extra = {
+ 'vip':'0',
+ 'keep-searches':__settings__('webshare_keep-searches')
+ }
+ extra.update(settings)
+ providers[p.name] = XBMCWebshareContentProvider(p,extra,__addon__)
+
+
+def icon(provider):
+ icon_file = os.path.join(__addon__.getAddonInfo('path'),'resources','icons',provider+'.png')
+ if not os.path.isfile(icon_file):
+ return 'DefaultFolder.png'
+ return icon_file
+
+def root():
+ search.item()
+ xbmcutil.add_local_dir(xbmcutil.__lang__(30006),settings['downloads'],xbmcutil.icon('download.png'))
+ for provider in providers.keys():
+ xbmcutil.add_dir(provider,{'cp':provider},icon(provider))
+ return xbmcplugin.endOfDirectory(int(sys.argv[1]))
+
+params = util.params()
+if params=={}:
+ xbmcutil.init_usage_reporting( __scriptid__)
+ root()
+elif 'cp' in params.keys():
+ cp = params['cp']
+ if cp in providers.keys():
+ providers[cp].run(params)
+else:
+ search.main(__addon__,'search_history',params,search_cb)
diff --git a/icon.png b/icon.png
new file mode 100644
index 0000000..8132783
Binary files /dev/null and b/icon.png differ
diff --git a/install.sh b/install.sh
new file mode 100644
index 0000000..a0b0c8f
--- /dev/null
+++ b/install.sh
@@ -0,0 +1,7 @@
+#/bin/sh
+# do NOT use this script from XBMC addons directory, it is intented for development only
+DESTDIR=~/.kodi/addons/plugin.video.online-files
+
+rm -rf ${DESTDIR}
+mkdir -p ${DESTDIR}
+cp -a * ${DESTDIR}
diff --git a/resources/icons/bezvadata.cz.png b/resources/icons/bezvadata.cz.png
new file mode 100644
index 0000000..7091b72
Binary files /dev/null and b/resources/icons/bezvadata.cz.png differ
diff --git a/resources/icons/hellspy.cz.png b/resources/icons/hellspy.cz.png
new file mode 100644
index 0000000..dd0f690
Binary files /dev/null and b/resources/icons/hellspy.cz.png differ
diff --git a/resources/icons/ulozto.cz.png b/resources/icons/ulozto.cz.png
new file mode 100644
index 0000000..736aa06
Binary files /dev/null and b/resources/icons/ulozto.cz.png differ
diff --git a/resources/icons/webshare.cz.png b/resources/icons/webshare.cz.png
new file mode 100644
index 0000000..086ac6d
Binary files /dev/null and b/resources/icons/webshare.cz.png differ
diff --git a/resources/language/Czech/strings.po b/resources/language/Czech/strings.po
new file mode 100644
index 0000000..381cced
--- /dev/null
+++ b/resources/language/Czech/strings.po
@@ -0,0 +1,167 @@
+# Kodi Media Center language file
+# Addon Name: Soubory Online
+# Addon id: plugin.video.online-files
+msgid ""
+msgstr ""
+
+"Language: cs_CZ\n"
+
+msgctxt "#30000"
+msgid "Size of search history"
+msgstr "Počet zapamatovaných hledání"
+
+msgctxt "#30001"
+msgid "Video is not available, check[CR]whether it works using web page."
+msgstr "Video není dostupné, zkontrolujte,[CR]zda funguje přehrávání na webu."
+
+msgctxt "#30002"
+msgid "Enable service"
+msgstr "Povolit službu"
+
+msgctxt "#30003"
+msgid "Download using VIP account"
+msgstr "Stahovat pomocí VIP účtu"
+
+msgctxt "#30004"
+msgid "Ask"
+msgstr "Zeptat se"
+
+msgctxt "#30005"
+msgid "Always"
+msgstr "Vždy"
+
+msgctxt "#30006"
+msgid "Never"
+msgstr "Nikdy"
+
+msgctxt "#30007"
+msgid "Username"
+msgstr "Uživ. jméno"
+
+msgctxt "#30008"
+msgid "Password"
+msgstr "Uživ. heslo"
+
+msgctxt "#30009"
+msgid "bezvadata.cz"
+msgstr "bezvadata.cz"
+
+msgctxt "#30010"
+msgid "ulozto.cz"
+msgstr "ulozto.cz"
+
+msgctxt "#30011"
+msgid "hellspy.cz"
+msgstr "hellspy.cz"
+
+msgctxt "#30012"
+msgid "Would you like to use VIP account to get this file?"
+msgstr "Chcete pro získání souboru použít VIP účet?"
+
+msgctxt "#30013"
+msgid "Server"
+msgstr "Server"
+
+msgctxt "#30014"
+msgid "fastshare.cz"
+msgstr "fastshare.cz"
+
+msgctxt "#30015"
+msgid "webshare.cz"
+msgstr "webshare.cz"
+
+msgctxt "#30030"
+msgid "Downloads"
+msgstr "Složka pro stahování"
+
+msgctxt "#30031"
+msgid "Please setup downloads folder"
+msgstr "Nastavte prosím složku pro stahování"
+
+msgctxt "#30032"
+msgid "Notify when downloading"
+msgstr "Zobrazovat stav stahování"
+
+msgctxt "#30033"
+msgid " - display notification every"
+msgstr " - zobrazit stav každých"
+
+msgctxt "#30034"
+msgid "10%"
+msgstr "10%"
+
+msgctxt "#30035"
+msgid "5%"
+msgstr "5%"
+
+msgctxt "#30036"
+msgid "1%"
+msgstr "1%"
+
+msgctxt "#30037"
+msgid "Downloads"
+msgstr "[B]Stažené soubory[/B]"
+
+msgctxt "#30050"
+msgid "Show adult only content"
+msgstr "Povolit zobrazování 18+ obsahu"
+
+msgctxt "#30051"
+msgid "Do not show files with extensions"
+msgstr "Nezobrazovat soubory s příponou"
+
+msgctxt "#30052"
+msgid "General"
+msgstr "Obecné"
+
+msgctxt "#30053"
+msgid "Most Downloaded"
+msgstr "Nejstahovanější"
+
+msgctxt "#30054"
+msgid "Downloading now"
+msgstr "Právě se stahuje"
+
+msgctxt "#30055"
+msgid "Saved to download later"
+msgstr "Ke stažení"
+
+msgctxt "#30056"
+msgid "Add to later downloads"
+msgstr "Přidat ke stažení"
+
+msgctxt "#30057"
+msgid "Search for files of type"
+msgstr "Hledat soubory typu"
+
+msgctxt "#30058"
+msgid "All"
+msgstr "Vše"
+
+msgctxt "#30059"
+msgid "Video"
+msgstr "Video"
+
+msgctxt "#30060"
+msgid "Images"
+msgstr "Obrázky"
+
+msgctxt "#30061"
+msgid "Audio"
+msgstr "Audio"
+
+msgctxt "#30062"
+msgid "Documents"
+msgstr "Dokumenty"
+
+msgctxt "#30063"
+msgid "Next Page"
+msgstr "Další stránka"
+
+msgctxt "#30064"
+msgid "Adult content"
+msgstr "Erotický obsah"
+
+msgctxt "#31000"
+msgid "Usage of plugin is tracked whenever you play or download video. We do NOT track what has been played"
+msgstr "Data o použití jsou zaslána v okamžiku, kdy spustíte přehrávání nebo stahování videa doplňkem. Není odesílána informace o tom, co přehráváte."
diff --git a/resources/language/English/strings.po b/resources/language/English/strings.po
new file mode 100644
index 0000000..52e51a8
--- /dev/null
+++ b/resources/language/English/strings.po
@@ -0,0 +1,175 @@
+# Kodi Media Center language file
+# Addon Name: Soubory Online
+# Addon id: plugin.video.online-files
+msgid ""
+msgstr ""
+
+"Language: en_GB\n"
+
+msgctxt "#30000"
+msgid "Size of search history"
+msgstr "Size of search history"
+
+msgctxt "#30001"
+msgid "Video is not available, check[CR]whether it works using web page."
+msgstr "Video is not available, check[CR]whether it works using web page."
+
+msgctxt "#30002"
+msgid "Enable service"
+msgstr "Enable service"
+
+msgctxt "#30003"
+msgid "Download using VIP account"
+msgstr "Download using VIP account"
+
+msgctxt "#30004"
+msgid "Ask"
+msgstr "Ask"
+
+msgctxt "#30005"
+msgid "Always"
+msgstr "Always"
+
+msgctxt "#30006"
+msgid "Never"
+msgstr "Never"
+
+msgctxt "#30007"
+msgid "Username"
+msgstr "Username"
+
+msgctxt "#30008"
+msgid "Password"
+msgstr "Password"
+
+msgctxt "#30009"
+msgid "bezvadata.cz"
+msgstr "bezvadata.cz"
+
+msgctxt "#30010"
+msgid "ulozto.cz"
+msgstr "ulozto.cz"
+
+msgctxt "#30011"
+msgid "hellspy.cz"
+msgstr "hellspy.cz"
+
+msgctxt "#30012"
+msgid "Would you like to use VIP account to get this file?"
+msgstr "Would you like to use VIP account to get this file?"
+
+msgctxt "#30013"
+msgid "Server"
+msgstr "Server"
+
+msgctxt "#30014"
+msgid "fastshare.cz"
+msgstr "fastshare.cz"
+
+msgctxt "#30015"
+msgid "webshare.cz"
+msgstr "webshare.cz"
+
+msgctxt "#30030"
+msgid "Downloads"
+msgstr "Downloads"
+
+msgctxt "#30031"
+msgid "Please setup downloads folder"
+msgstr "Please setup downloads folder"
+
+msgctxt "#30032"
+msgid "Notify when downloading"
+msgstr "Notify when downloading"
+
+msgctxt "#30033"
+msgid " - display notification every"
+msgstr " - display notification every"
+
+msgctxt "#30034"
+msgid "10%"
+msgstr "10%"
+
+msgctxt "#30035"
+msgid "5%"
+msgstr "5%"
+
+msgctxt "#30036"
+msgid "1%"
+msgstr "1%"
+
+msgctxt "#30037"
+msgid "Downloads"
+msgstr "Downloads"
+
+msgctxt "#30040"
+msgid "Auto-Captcha"
+msgstr "Auto-Captcha"
+
+msgctxt "#30041"
+msgid "Timeout"
+msgstr "Timeout"
+
+msgctxt "#30050"
+msgid "Show adult only content"
+msgstr "Show adult only content"
+
+msgctxt "#30051"
+msgid "Do not show files with extensions"
+msgstr "Do not show files with extensions"
+
+msgctxt "#30052"
+msgid "General"
+msgstr "General"
+
+msgctxt "#30053"
+msgid "Most Downloaded"
+msgstr "Most Downloaded"
+
+msgctxt "#30054"
+msgid "Downloading now"
+msgstr "Downloading now"
+
+msgctxt "#30055"
+msgid "Saved to download later"
+msgstr "Saved to download later"
+
+msgctxt "#30056"
+msgid "Add to later downloads"
+msgstr "Add to later downloads"
+
+msgctxt "#30057"
+msgid "Search for files of type"
+msgstr "Search for files of type"
+
+msgctxt "#30058"
+msgid "All"
+msgstr "All"
+
+msgctxt "#30059"
+msgid "Video"
+msgstr "Video"
+
+msgctxt "#30060"
+msgid "Images"
+msgstr "Images"
+
+msgctxt "#30061"
+msgid "Audio"
+msgstr "Audio"
+
+msgctxt "#30062"
+msgid "Documents"
+msgstr "Documents"
+
+msgctxt "#30063"
+msgid "Next Page"
+msgstr "Next Page"
+
+msgctxt "#30064"
+msgid "Adult content"
+msgstr "Adult content"
+
+msgctxt "#31000"
+msgid "Usage of plugin is tracked whenever you play or download video. We do NOT track what has been played"
+msgstr "Usage of plugin is tracked whenever you play or download video. We do NOT track what has been played"
diff --git a/resources/language/Slovak/strings.po b/resources/language/Slovak/strings.po
new file mode 100644
index 0000000..3931057
--- /dev/null
+++ b/resources/language/Slovak/strings.po
@@ -0,0 +1,167 @@
+# Kodi Media Center language file
+# Addon Name: Soubory Online
+# Addon id: plugin.video.online-files
+msgid ""
+msgstr ""
+
+"Language: sk_SK\n"
+
+msgctxt "#30000"
+msgid "Size of search history"
+msgstr "Počet zapamätaných hľadaní"
+
+msgctxt "#30001"
+msgid "Video is not available, check[CR]whether it works using web page."
+msgstr "Video nie je dostupné, skontrolujte,[CR]či funguje prehrávanie na webe."
+
+msgctxt "#30002"
+msgid "Enable service"
+msgstr "Povoliť službu"
+
+msgctxt "#30003"
+msgid "Download using VIP account"
+msgstr "Sťahovať pomocou VIP účtu"
+
+msgctxt "#30004"
+msgid "Ask"
+msgstr "Spýtať sa"
+
+msgctxt "#30005"
+msgid "Always"
+msgstr "Vždy"
+
+msgctxt "#30006"
+msgid "Never"
+msgstr "Nikdy"
+
+msgctxt "#30007"
+msgid "Username"
+msgstr "Login"
+
+msgctxt "#30008"
+msgid "Password"
+msgstr "Heslo"
+
+msgctxt "#30009"
+msgid "bezvadata.cz"
+msgstr "bezvadata.cz"
+
+msgctxt "#30010"
+msgid "ulozto.cz"
+msgstr "ulozto.cz"
+
+msgctxt "#30011"
+msgid "hellspy.cz"
+msgstr "hellspy.cz"
+
+msgctxt "#30012"
+msgid "Would you like to use VIP account to get this file?"
+msgstr "Chcete pre získanie súboru použiť VIP účet?"
+
+msgctxt "#30013"
+msgid "Server"
+msgstr "Server"
+
+msgctxt "#30014"
+msgid "fastshare.cz"
+msgstr "fastshare.cz"
+
+msgctxt "#30015"
+msgid "webshare.cz"
+msgstr "webshare.cz"
+
+msgctxt "#30030"
+msgid "Downloads"
+msgstr "Priečinok pre sťahovanie"
+
+msgctxt "#30031"
+msgid "Please setup downloads folder"
+msgstr "Nastavte prosím priečinok pre sťahovanie"
+
+msgctxt "#30032"
+msgid "Notify when downloading"
+msgstr "Zobrazovať stav sťahovania"
+
+msgctxt "#30033"
+msgid " - display notification every"
+msgstr " - zobraziť stav každých"
+
+msgctxt "#30034"
+msgid "10%"
+msgstr "10%"
+
+msgctxt "#30035"
+msgid "5%"
+msgstr "5%"
+
+msgctxt "#30036"
+msgid "1%"
+msgstr "1%"
+
+msgctxt "#30037"
+msgid "Downloads"
+msgstr "[B]Stiahnuté súbory[/B]"
+
+msgctxt "#30050"
+msgid "Show adult only content"
+msgstr "Povoliť zobrazovanie obsahu 18+"
+
+msgctxt "#30051"
+msgid "Do not show files with extensions"
+msgstr "Nezobrazovať súbory s príponou"
+
+msgctxt "#30052"
+msgid "General"
+msgstr "Všeobecné"
+
+msgctxt "#30053"
+msgid "Most Downloaded"
+msgstr "Najsťahovanejšie"
+
+msgctxt "#30054"
+msgid "Downloading now"
+msgstr "Práve sa sťahuje"
+
+msgctxt "#30055"
+msgid "Saved to download later"
+msgstr "Na stiahnutie"
+
+msgctxt "#30056"
+msgid "Add to later downloads"
+msgstr "Pridať ku stiahnutiu"
+
+msgctxt "#30057"
+msgid "Search for files of type"
+msgstr "Hľadať súbory typu"
+
+msgctxt "#30058"
+msgid "All"
+msgstr "Všetko"
+
+msgctxt "#30059"
+msgid "Video"
+msgstr "Video"
+
+msgctxt "#30060"
+msgid "Images"
+msgstr "Obrázky"
+
+msgctxt "#30061"
+msgid "Audio"
+msgstr "Audio"
+
+msgctxt "#30062"
+msgid "Documents"
+msgstr "Dokumenty"
+
+msgctxt "#30063"
+msgid "Next Page"
+msgstr "Ďalšia stránka"
+
+msgctxt "#30064"
+msgid "Adult content"
+msgstr "Erotický obsah"
+
+msgctxt "#31000"
+msgid "Usage of plugin is tracked whenever you play or download video. We do NOT track what has been played"
+msgstr "Údaje o použití sú zaslané iba v okamihu, keď spustíte prehrávanie alebo sťahovanie videa doplnkom."
diff --git a/resources/lib/__pycache__/bezvadata.cpython-38.opt-1.pyc b/resources/lib/__pycache__/bezvadata.cpython-38.opt-1.pyc
new file mode 100644
index 0000000..ab72771
Binary files /dev/null and b/resources/lib/__pycache__/bezvadata.cpython-38.opt-1.pyc differ
diff --git a/resources/lib/__pycache__/fastshare.cpython-38.opt-1.pyc b/resources/lib/__pycache__/fastshare.cpython-38.opt-1.pyc
new file mode 100644
index 0000000..878658e
Binary files /dev/null and b/resources/lib/__pycache__/fastshare.cpython-38.opt-1.pyc differ
diff --git a/resources/lib/__pycache__/hellspy.cpython-38.opt-1.pyc b/resources/lib/__pycache__/hellspy.cpython-38.opt-1.pyc
new file mode 100644
index 0000000..7a0ad41
Binary files /dev/null and b/resources/lib/__pycache__/hellspy.cpython-38.opt-1.pyc differ
diff --git a/resources/lib/__pycache__/ulozto.cpython-38.opt-1.pyc b/resources/lib/__pycache__/ulozto.cpython-38.opt-1.pyc
new file mode 100644
index 0000000..4d6e2bd
Binary files /dev/null and b/resources/lib/__pycache__/ulozto.cpython-38.opt-1.pyc differ
diff --git a/resources/lib/__pycache__/ulozto_search.cpython-38.opt-1.pyc b/resources/lib/__pycache__/ulozto_search.cpython-38.opt-1.pyc
new file mode 100644
index 0000000..c6fa4d0
Binary files /dev/null and b/resources/lib/__pycache__/ulozto_search.cpython-38.opt-1.pyc differ
diff --git a/resources/lib/__pycache__/webshare.cpython-38.opt-1.pyc b/resources/lib/__pycache__/webshare.cpython-38.opt-1.pyc
new file mode 100644
index 0000000..f544490
Binary files /dev/null and b/resources/lib/__pycache__/webshare.cpython-38.opt-1.pyc differ
diff --git a/resources/lib/bezvadata.py b/resources/lib/bezvadata.py
new file mode 100644
index 0000000..d4d34d7
--- /dev/null
+++ b/resources/lib/bezvadata.py
@@ -0,0 +1,156 @@
+# -*- coding: UTF-8 -*-
+#/*
+# * Copyright (C) 2012 Libor Zoubek
+# *
+# *
+# * This Program is free software; you can redistribute it and/or modify
+# * it under the terms of the GNU General Public License as published by
+# * the Free Software Foundation; either version 2, or (at your option)
+# * any later version.
+# *
+# * This Program is distributed in the hope that it will be useful,
+# * but WITHOUT ANY WARRANTY; without even the implied warranty of
+# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# * GNU General Public License for more details.
+# *
+# * You should have received a copy of the GNU General Public License
+# * along with this program; see the file COPYING. If not, write to
+# * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+# * http://www.gnu.org/copyleft/gpl.html
+# *
+# */
+import sys
+import urllib
+#Python 2
+try:
+ import cookielib
+ import urllib2
+ #import sys
+ reload(sys) # Reload does the trick!
+ sys.setdefaultencoding('UTF8')
+#Python 3
+except:
+ import http.cookiejar
+ cookielib = http.cookiejar
+ urllib2 = urllib.request
+
+import re,random,util,os,traceback,base64
+from provider import ContentProvider
+
+class BezvadataContentProvider(ContentProvider):
+
+ def __init__(self,username=None,password=None,filter=None,tmp_dir='.'):
+ ContentProvider.__init__(self,'bezvadata.cz','http://bezvadata.cz/',username,password,filter,tmp_dir)
+ opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookielib.LWPCookieJar()))
+ urllib2.install_opener(opener)
+
+ def capabilities(self):
+ return ['search','resolve','categories']
+
+ def search(self,keyword):
+ return self.list('vyhledavani/?s='+urllib.parse.quote(keyword))
+
+ def categories(self):
+ page = util.request(self.base_url)
+ page = util.substr(page,'