├── core ├── platform_name.py ├── item.pyc ├── samba.py ├── __init__.pyc ├── anotador.py ├── config.pyc ├── descargas.py ├── favoritos.py ├── logger.pyc ├── stormlib.py ├── updater.pyc ├── jsontools.pyc ├── unpackerjs2.py ├── configuracion.py ├── configuracion.pyc ├── downloadtools.pyc ├── platform_name.pyc ├── subtitletools.py ├── trailertools.py ├── __init__.py ├── logger.py ├── ClientCookie │ ├── _Debug.py │ ├── COPYING │ ├── __init__.py │ └── _Request.py ├── pyload_client.py ├── ziptools.py ├── database.py └── jsontools.py ├── platformcode ├── xbmc │ ├── platform_name.py │ ├── __init__.py │ └── logger.py ├── xbmcgotham │ ├── platform_name.py │ ├── config.pyc │ ├── logger.pyc │ ├── __init__.pyc │ ├── __init__.py │ ├── addon.xml │ └── logger.py ├── __init__.pyc └── __init__.py ├── lib ├── bencode │ └── BTL.py ├── mechanize │ ├── _version.py │ ├── _sockettimeout.py │ ├── _debug.py │ ├── _urllib2.py │ └── _request.py ├── __init__.pyc ├── simplejson │ ├── __init__.pyc │ ├── decoder.pyc │ ├── encoder.pyc │ ├── scanner.pyc │ ├── tool.py │ └── scanner.py ├── elementtree │ ├── TidyHTMLTreeBuilder.py │ └── __init__.py ├── __init__.py ├── gdata │ ├── tlslite │ │ ├── utils │ │ │ ├── RC4.py │ │ │ ├── PyCrypto_RC4.py │ │ │ ├── PyCrypto_AES.py │ │ │ ├── OpenSSL_RC4.py │ │ │ ├── PyCrypto_TripleDES.py │ │ │ ├── TripleDES.py │ │ │ ├── __init__.py │ │ │ ├── Cryptlib_RC4.py │ │ │ ├── AES.py │ │ │ ├── ASN1Parser.py │ │ │ ├── Python_RC4.py │ │ │ ├── win32prng.c │ │ │ ├── Cryptlib_AES.py │ │ │ ├── Cryptlib_TripleDES.py │ │ │ ├── OpenSSL_TripleDES.py │ │ │ ├── OpenSSL_AES.py │ │ │ ├── PyCrypto_RSAKey.py │ │ │ ├── Python_AES.py │ │ │ └── dateFuncs.py │ │ ├── integration │ │ │ ├── __init__.py │ │ │ ├── IntegrationHelper.py │ │ │ └── TLSSocketServerMixIn.py │ │ ├── __init__.py │ │ └── SharedKeyDB.py │ └── oauth │ │ └── CHANGES.txt └── atom │ └── auth.py ├── icon.png ├── resources ├── wiideoteca.xml ├── subtitle.mp4 ├── images │ ├── noimage.gif │ ├── documaniatv │ │ ├── next.png │ │ ├── tag.png │ │ ├── tipo.png │ │ ├── top.png │ │ ├── deldia.png │ │ ├── nuevos.png │ │ ├── viendose.png │ │ └── search_icon.png │ └── copia.sh ├── skins │ └── default │ │ └── media │ │ ├── DialogBack.png │ │ ├── GlassTitleBar.png │ │ ├── KeyboardKey.png │ │ ├── KeyboardKeyNF.png │ │ ├── DialogCloseButton.png │ │ ├── KeyboardCornerTop.png │ │ ├── KeyboardEditArea.png │ │ ├── KeyboardCornerBottom.png │ │ ├── KeyboardCornerTopNF.png │ │ ├── DialogCloseButton-focus.png │ │ └── KeyboardCornerBottomNF.png └── advancedsettings.xml ├── fanart.jpg ├── readme.txt ├── servers ├── vk.py ├── backin.py ├── ovfile.py ├── rutube.py ├── tutv.py ├── veoh.py ├── vidbux.py ├── vimeo.py ├── yahoo.py ├── bayfiles.py ├── movshare.py ├── stagevu.py ├── videozed.py ├── vidxden.py ├── wupload.py ├── youtube.py ├── __init__.pyc ├── adnstream.py ├── fourshared.py ├── googlevideo.py ├── linkbucks.py ├── modovideo.py ├── putlocker.py ├── rapidtube.py ├── royalvids.py ├── sockshare.py ├── speedvideo.py ├── streamcloud.py ├── videoweed.py ├── xmltoplaylist.py ├── gigabyteupload.py ├── __init__.py ├── safelinking.py ├── uploaz.py ├── oboom.py ├── uptobox.py ├── lumfile.py ├── filejungle.py ├── filesonic.py ├── uploading.py ├── ultramegabit.py ├── filesmonster.py ├── uploadstation.py ├── cramit.py ├── onefichier.py ├── fiberupload.py ├── vidhog.py ├── filereactor.py ├── turbobit.py ├── shareflare.py ├── rapidgator.py ├── sharpfile.py ├── vureel.py ├── rapidshare.py ├── zinwa.py ├── alldebrid.py ├── netload.py ├── tunepk.py ├── twitvid.py ├── cloudzer.py ├── watchfreeinhd.py ├── extabit.py ├── fooget.py ├── videott.py ├── zippyshare.py ├── depositfiles.py ├── hdplay.py ├── adfly.py ├── veevr.py ├── fileflyer.py ├── gigasize.py ├── rapidvideo.py ├── hotfile.py ├── hulkshare.py ├── junkyvideo.py ├── jumbofiles.py └── hugefiles.py ├── pelisalacarta ├── __init__.pyc ├── buscador.py ├── channels │ ├── ayuda.py │ ├── stormtv.py │ ├── tutvsite.py │ ├── __init__.pyc │ ├── cineblog01.py │ ├── nolomires.py │ ├── sonolatino.py │ ├── stagevusite.py │ ├── mejortorrent.py │ ├── peliculaseroticas.py │ ├── pornhub.xml │ ├── robinfilm.xml │ ├── italiafilm.xml │ ├── oranline.xml │ ├── pelis24.xml │ ├── pelispekes.xml │ ├── bajui.xml │ ├── cineblog01.xml │ ├── filmpertutti.xml │ ├── nolomires.xml │ ├── unsoloclic.xml │ ├── cinetux.xml │ ├── filmsenzalimiti.xml │ ├── peliculasonlineflv.xml │ ├── cinetemagay.xml │ ├── gnula.xml │ ├── malvin.xml │ ├── mocosoftx.xml │ ├── pordede.xml │ ├── seriesyonkis.xml │ ├── tengourl.xml │ ├── xhamster.xml │ ├── yaske.xml │ ├── animeflv.xml │ ├── animeid.xml │ ├── cuevana.xml │ ├── divxatope.xml │ ├── newhd.xml │ ├── newpct.xml │ ├── newpct1.xml │ ├── peliculaseroticas.xml │ ├── seriesflv.xml │ ├── tutvsite.xml │ ├── cinemax_rs.xml │ ├── discoverymx.xml │ ├── jkanime.xml │ ├── serieonline.xml │ ├── seriesadicto.xml │ ├── seriesdanko.xml │ ├── shurweb.xml │ ├── beeg.xml │ ├── tumejortv.xml │ ├── megahd.xml │ ├── veranime.xml │ ├── megaspain.xml │ ├── cinetube.xml │ ├── documaniatv.xml │ ├── gaypornshare.xml │ ├── seriesly.xml │ ├── peliculasaudiolatino.xml │ ├── seriespepito.xml │ ├── peliculaspepito.xml │ ├── peliculasyonkis.xml │ ├── peliculasyonkis_generico.xml │ ├── __init__.py │ ├── tengourl.py │ ├── cuevana.py │ └── xo.py └── __init__.py ├── channelselector.xml ├── version.xml ├── __init__.py ├── default.py └── addon.xml /core/platform_name.py: -------------------------------------------------------------------------------- 1 | PLATFORM_NAME = "xbmceden" -------------------------------------------------------------------------------- /platformcode/xbmc/platform_name.py: -------------------------------------------------------------------------------- 1 | PLATFORM_NAME = "xbmc" -------------------------------------------------------------------------------- /lib/bencode/BTL.py: -------------------------------------------------------------------------------- 1 | class BTFailure(Exception): 2 | pass 3 | -------------------------------------------------------------------------------- /platformcode/xbmcgotham/platform_name.py: -------------------------------------------------------------------------------- 1 | PLATFORM_NAME = "xbmcgotham" -------------------------------------------------------------------------------- /lib/mechanize/_version.py: -------------------------------------------------------------------------------- 1 | "0.2.5" 2 | __version__ = (0, 2, 5, None, None) 3 | -------------------------------------------------------------------------------- /icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/icon.png -------------------------------------------------------------------------------- /resources/wiideoteca.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /fanart.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/fanart.jpg -------------------------------------------------------------------------------- /readme.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/readme.txt -------------------------------------------------------------------------------- /core/item.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/core/item.pyc -------------------------------------------------------------------------------- /core/samba.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/core/samba.py -------------------------------------------------------------------------------- /servers/vk.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/servers/vk.py -------------------------------------------------------------------------------- /core/__init__.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/core/__init__.pyc -------------------------------------------------------------------------------- /core/anotador.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/core/anotador.py -------------------------------------------------------------------------------- /core/config.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/core/config.pyc -------------------------------------------------------------------------------- /core/descargas.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/core/descargas.py -------------------------------------------------------------------------------- /core/favoritos.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/core/favoritos.py -------------------------------------------------------------------------------- /core/logger.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/core/logger.pyc -------------------------------------------------------------------------------- /core/stormlib.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/core/stormlib.py -------------------------------------------------------------------------------- /core/updater.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/core/updater.pyc -------------------------------------------------------------------------------- /lib/__init__.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/lib/__init__.pyc -------------------------------------------------------------------------------- /servers/backin.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/servers/backin.py -------------------------------------------------------------------------------- /servers/ovfile.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/servers/ovfile.py -------------------------------------------------------------------------------- /servers/rutube.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/servers/rutube.py -------------------------------------------------------------------------------- /servers/tutv.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/servers/tutv.py -------------------------------------------------------------------------------- /servers/veoh.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/servers/veoh.py -------------------------------------------------------------------------------- /servers/vidbux.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/servers/vidbux.py -------------------------------------------------------------------------------- /servers/vimeo.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/servers/vimeo.py -------------------------------------------------------------------------------- /servers/yahoo.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/servers/yahoo.py -------------------------------------------------------------------------------- /core/jsontools.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/core/jsontools.pyc -------------------------------------------------------------------------------- /core/unpackerjs2.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/core/unpackerjs2.py -------------------------------------------------------------------------------- /servers/bayfiles.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/servers/bayfiles.py -------------------------------------------------------------------------------- /servers/movshare.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/servers/movshare.py -------------------------------------------------------------------------------- /servers/stagevu.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/servers/stagevu.py -------------------------------------------------------------------------------- /servers/videozed.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/servers/videozed.py -------------------------------------------------------------------------------- /servers/vidxden.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/servers/vidxden.py -------------------------------------------------------------------------------- /servers/wupload.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/servers/wupload.py -------------------------------------------------------------------------------- /servers/youtube.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/servers/youtube.py -------------------------------------------------------------------------------- /core/configuracion.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/core/configuracion.py -------------------------------------------------------------------------------- /core/configuracion.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/core/configuracion.pyc -------------------------------------------------------------------------------- /core/downloadtools.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/core/downloadtools.pyc -------------------------------------------------------------------------------- /core/platform_name.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/core/platform_name.pyc -------------------------------------------------------------------------------- /core/subtitletools.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/core/subtitletools.py -------------------------------------------------------------------------------- /core/trailertools.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/core/trailertools.py -------------------------------------------------------------------------------- /resources/subtitle.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/resources/subtitle.mp4 -------------------------------------------------------------------------------- /servers/__init__.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/servers/__init__.pyc -------------------------------------------------------------------------------- /servers/adnstream.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/servers/adnstream.py -------------------------------------------------------------------------------- /servers/fourshared.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/servers/fourshared.py -------------------------------------------------------------------------------- /servers/googlevideo.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/servers/googlevideo.py -------------------------------------------------------------------------------- /servers/linkbucks.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/servers/linkbucks.py -------------------------------------------------------------------------------- /servers/modovideo.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/servers/modovideo.py -------------------------------------------------------------------------------- /servers/putlocker.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/servers/putlocker.py -------------------------------------------------------------------------------- /servers/rapidtube.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/servers/rapidtube.py -------------------------------------------------------------------------------- /servers/royalvids.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/servers/royalvids.py -------------------------------------------------------------------------------- /servers/sockshare.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/servers/sockshare.py -------------------------------------------------------------------------------- /servers/speedvideo.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/servers/speedvideo.py -------------------------------------------------------------------------------- /servers/streamcloud.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/servers/streamcloud.py -------------------------------------------------------------------------------- /servers/videoweed.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/servers/videoweed.py -------------------------------------------------------------------------------- /servers/xmltoplaylist.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/servers/xmltoplaylist.py -------------------------------------------------------------------------------- /lib/simplejson/__init__.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/lib/simplejson/__init__.pyc -------------------------------------------------------------------------------- /lib/simplejson/decoder.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/lib/simplejson/decoder.pyc -------------------------------------------------------------------------------- /lib/simplejson/encoder.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/lib/simplejson/encoder.pyc -------------------------------------------------------------------------------- /lib/simplejson/scanner.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/lib/simplejson/scanner.pyc -------------------------------------------------------------------------------- /pelisalacarta/__init__.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/pelisalacarta/__init__.pyc -------------------------------------------------------------------------------- /pelisalacarta/buscador.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/pelisalacarta/buscador.py -------------------------------------------------------------------------------- /platformcode/__init__.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/platformcode/__init__.pyc -------------------------------------------------------------------------------- /servers/gigabyteupload.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/servers/gigabyteupload.py -------------------------------------------------------------------------------- /resources/images/noimage.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/resources/images/noimage.gif -------------------------------------------------------------------------------- /pelisalacarta/channels/ayuda.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/pelisalacarta/channels/ayuda.py -------------------------------------------------------------------------------- /pelisalacarta/channels/stormtv.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/pelisalacarta/channels/stormtv.py -------------------------------------------------------------------------------- /pelisalacarta/channels/tutvsite.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/pelisalacarta/channels/tutvsite.py -------------------------------------------------------------------------------- /platformcode/xbmcgotham/config.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/platformcode/xbmcgotham/config.pyc -------------------------------------------------------------------------------- /platformcode/xbmcgotham/logger.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/platformcode/xbmcgotham/logger.pyc -------------------------------------------------------------------------------- /pelisalacarta/channels/__init__.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/pelisalacarta/channels/__init__.pyc -------------------------------------------------------------------------------- /pelisalacarta/channels/cineblog01.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/pelisalacarta/channels/cineblog01.py -------------------------------------------------------------------------------- /pelisalacarta/channels/nolomires.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/pelisalacarta/channels/nolomires.py -------------------------------------------------------------------------------- /pelisalacarta/channels/sonolatino.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/pelisalacarta/channels/sonolatino.py -------------------------------------------------------------------------------- /pelisalacarta/channels/stagevusite.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/pelisalacarta/channels/stagevusite.py -------------------------------------------------------------------------------- /platformcode/xbmcgotham/__init__.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/platformcode/xbmcgotham/__init__.pyc -------------------------------------------------------------------------------- /resources/images/documaniatv/next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/resources/images/documaniatv/next.png -------------------------------------------------------------------------------- /resources/images/documaniatv/tag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/resources/images/documaniatv/tag.png -------------------------------------------------------------------------------- /resources/images/documaniatv/tipo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/resources/images/documaniatv/tipo.png -------------------------------------------------------------------------------- /resources/images/documaniatv/top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/resources/images/documaniatv/top.png -------------------------------------------------------------------------------- /pelisalacarta/channels/mejortorrent.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/pelisalacarta/channels/mejortorrent.py -------------------------------------------------------------------------------- /resources/images/documaniatv/deldia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/resources/images/documaniatv/deldia.png -------------------------------------------------------------------------------- /resources/images/documaniatv/nuevos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/resources/images/documaniatv/nuevos.png -------------------------------------------------------------------------------- /resources/images/documaniatv/viendose.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/resources/images/documaniatv/viendose.png -------------------------------------------------------------------------------- /pelisalacarta/channels/peliculaseroticas.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/pelisalacarta/channels/peliculaseroticas.py -------------------------------------------------------------------------------- /resources/images/documaniatv/search_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/resources/images/documaniatv/search_icon.png -------------------------------------------------------------------------------- /resources/skins/default/media/DialogBack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/resources/skins/default/media/DialogBack.png -------------------------------------------------------------------------------- /resources/skins/default/media/GlassTitleBar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/resources/skins/default/media/GlassTitleBar.png -------------------------------------------------------------------------------- /resources/skins/default/media/KeyboardKey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/resources/skins/default/media/KeyboardKey.png -------------------------------------------------------------------------------- /resources/skins/default/media/KeyboardKeyNF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/resources/skins/default/media/KeyboardKeyNF.png -------------------------------------------------------------------------------- /resources/skins/default/media/DialogCloseButton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/resources/skins/default/media/DialogCloseButton.png -------------------------------------------------------------------------------- /resources/skins/default/media/KeyboardCornerTop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/resources/skins/default/media/KeyboardCornerTop.png -------------------------------------------------------------------------------- /resources/skins/default/media/KeyboardEditArea.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/resources/skins/default/media/KeyboardEditArea.png -------------------------------------------------------------------------------- /resources/skins/default/media/KeyboardCornerBottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/resources/skins/default/media/KeyboardCornerBottom.png -------------------------------------------------------------------------------- /resources/skins/default/media/KeyboardCornerTopNF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/resources/skins/default/media/KeyboardCornerTopNF.png -------------------------------------------------------------------------------- /resources/skins/default/media/DialogCloseButton-focus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/resources/skins/default/media/DialogCloseButton-focus.png -------------------------------------------------------------------------------- /resources/skins/default/media/KeyboardCornerBottomNF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/conejoninja/plugin.video.pelisalacarta/HEAD/resources/skins/default/media/KeyboardCornerBottomNF.png -------------------------------------------------------------------------------- /lib/elementtree/TidyHTMLTreeBuilder.py: -------------------------------------------------------------------------------- 1 | # 2 | # ElementTree 3 | # $Id: TidyHTMLTreeBuilder.py 2304 2005-03-01 17:42:41Z fredrik $ 4 | # 5 | 6 | from elementtidy.TidyHTMLTreeBuilder import * 7 | -------------------------------------------------------------------------------- /lib/mechanize/_sockettimeout.py: -------------------------------------------------------------------------------- 1 | import socket 2 | 3 | try: 4 | _GLOBAL_DEFAULT_TIMEOUT = socket._GLOBAL_DEFAULT_TIMEOUT 5 | except AttributeError: 6 | _GLOBAL_DEFAULT_TIMEOUT = object() 7 | -------------------------------------------------------------------------------- /pelisalacarta/channels/pornhub.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | pornhub 4 | 1 5 | 28/01/15 6 | Primera version 7 | -------------------------------------------------------------------------------- /pelisalacarta/channels/robinfilm.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | robinfilm 4 | 3 5 | 17/05/2012 6 | fixed 7 | 8 | -------------------------------------------------------------------------------- /channelselector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | channelselector 4 | 43 5 | 17/02/2015 6 | Añadidos nuevos canales 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/italiafilm.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | italiafilm 4 | 4 5 | 17/03/2015 6 | Actualizado 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/oranline.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | tucinecom 4 | 2 5 | 23/08/2013 6 | Actualizado 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/pelis24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | pelis24 4 | 5 5 | 29/08/2013 6 | Arreglado pelis24 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/pelispekes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | pelispekes 4 | 4 5 | 24/08/2013 6 | Actualizado 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/bajui.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | bajui 4 | 5 5 | 05/06/2013 6 | Arreglada obtención de enlaces 7 | -------------------------------------------------------------------------------- /pelisalacarta/channels/cineblog01.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | cineblog01 4 | 12 5 | 16/03/2015 6 | URL changed 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/filmpertutti.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | filmpertutti 4 | 3 5 | 17/03/2015 6 | Actualizado 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/nolomires.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | nolomires 4 | 1 5 | 01/11/2011 6 | Website changed 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/unsoloclic.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | unsoloclic 4 | 2 5 | 25/08/2013 6 | Primera version 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/cinetux.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | cinetux 4 | 3 5 | 16/02/2015 6 | Añadida la funcion Buscar 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/filmsenzalimiti.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | filmsenzalimiti 4 | 2 5 | 23/08/2013 6 | Actualizado 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/peliculasonlineflv.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | peliculasonlineflv 4 | 4 5 | 27/06/2011 6 | Test 7 | 8 | -------------------------------------------------------------------------------- /version.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | pelisalacarta 4 | 3.9.99 5 | 3999 6 | 19/03/2015 7 | Last release of 3.X 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/cinetemagay.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | cinetemagay 4 | 6 5 | 19/06/2012 6 | Actualizado por sdfasd 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/gnula.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | gnula 4 | 2 5 | 05/06/2013 6 | Actualizado GNULA por cambios en la web 7 | -------------------------------------------------------------------------------- /pelisalacarta/channels/malvin.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | malvin 4 | 3 5 | 09/08/2014 6 | Cambiado de malvin.biz a malvin.tv 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/mocosoftx.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | mocosoftx 4 | 3 5 | 19/06/2012 6 | Arreglado listado completo 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/pordede.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | pordede 4 | 6 5 | 22/04/2015 6 | Arreglo de siguientes capítulos 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/seriesyonkis.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | seriesyonkis 4 | 26 5 | 20/04/2014 6 | Uso del dominio sx 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/tengourl.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | tengourl 4 | 1 5 | 22/02/2012 6 | Ya puedes poner una url cualquiera! 7 | -------------------------------------------------------------------------------- /pelisalacarta/channels/xhamster.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | xhamster 4 | 4 5 | 19/06/2012 6 | Ya salen de nuevo los enlaces. 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/yaske.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | yaske 4 | 9 5 | 31/10/2014 6 | Actualizado por cambios en la web 7 | 8 | -------------------------------------------------------------------------------- /__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: iso-8859-1 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta 4 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 5 | #------------------------------------------------------------ 6 | -------------------------------------------------------------------------------- /pelisalacarta/channels/animeflv.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | animeflv 4 | 8 5 | 28/07/2013 6 | Actualizado por cambio en el canal 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/animeid.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | animeid 4 | 3 5 | 05/06/2013 6 | Actualizado por cambios en la web 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/cuevana.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | cuevana 4 | 26 5 | 05/05/2012 6 | Actualizado por cambios en el canal 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/divxatope.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | divxatope 4 | 4 5 | 11/10/2014 6 | Actualizado por cambios en la web 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/newhd.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | newhd 4 | 3 5 | 02/02/2012 6 | Añadidos el resto de idiomas por bandavi 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/newpct.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | newpct 4 | 5 5 | 07/09/2014 6 | Cambio de URL a newpct.com de nuevo 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/newpct1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | newpct1 4 | 7 5 | 10/03/15 6 | Corregido BUG (lista vacia) en Buscar... 7 | -------------------------------------------------------------------------------- /pelisalacarta/channels/peliculaseroticas.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | peliculaseroticas 4 | 1 5 | 01/11/2011 6 | Website changed 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/seriesflv.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | seriesflv 4 | 2 5 | 14/12/2014 6 | Arreglada la búsqueda de enlaces 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/tutvsite.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | tutvsite 4 | 3 5 | 17/10/2011 6 | Actualizado por cambios en la web 7 | 8 | -------------------------------------------------------------------------------- /lib/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: iso-8859-1 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta 4 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 5 | #------------------------------------------------------------ 6 | -------------------------------------------------------------------------------- /pelisalacarta/channels/cinemax_rs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | cinemaxx_rs 4 | 2 5 | 09/08/2014 6 | Actualizado por cambios en la web 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/discoverymx.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | discoverymx 4 | 2 5 | 11/06/2012 6 | Mejorada extracción de patrones 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/jkanime.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | jkanime 4 | 2 5 | 16/10/2011 6 | Arreglado fallo al buscar los episodios 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/serieonline.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | serieonline 4 | 2 5 | 05/06/2012 6 | Arreglado por cambios en la web 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/seriesadicto.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | seriesadicto 4 | 2 5 | 29/12/2014 6 | Arreglado por cambios en la web 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/seriesdanko.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | seriesdanko 4 | 3 5 | 24/07/2012 6 | Actualizado por cambios en la web 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/shurweb.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | shurweb 4 | 6 5 | 16/02/2014 6 | Corregido para funcionar con el nuevo dominio 7 | -------------------------------------------------------------------------------- /pelisalacarta/channels/beeg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | beeg 4 | 2 5 | 16/02/2015 6 | Actualizado lista de categorias y corregido algun fallo 7 | -------------------------------------------------------------------------------- /pelisalacarta/channels/tumejortv.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | tumejortv 4 | 8 5 | 05/06/2013 6 | Mejorado proceso de obtención de enlaces 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: iso-8859-1 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta 4 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 5 | #------------------------------------------------------------ 6 | -------------------------------------------------------------------------------- /pelisalacarta/channels/megahd.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | megahd 4 | 2 5 | 30/07/2013 6 | Implementado mega-streamer.net como servidor de video 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/veranime.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | veranime 4 | 3 5 | 10/07/2012 6 | Canal veranime actualizado por cambios en la web 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/megaspain.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | megaspain 4 | 5 5 | 30/07/2013 6 | Implementado mega-streamer.net como servidor de video 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/cinetube.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | cinetube 4 | 16 5 | 19/05/2013 6 | Añadidas series, documentales y anime a cinetube (Gracias a prunk) 7 | -------------------------------------------------------------------------------- /resources/images/copia.sh: -------------------------------------------------------------------------------- 1 | scp squares/$1 root@hetzner04:/var/www/pelisalacarta.mimediacenter.info/squares/ 2 | scp posters/$1 root@hetzner04:/var/www/pelisalacarta.mimediacenter.info/posters/ 3 | scp banners/$1 root@hetzner04:/var/www/pelisalacarta.mimediacenter.info/banners/ 4 | 5 | -------------------------------------------------------------------------------- /pelisalacarta/channels/documaniatv.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | documaniatv 4 | 6 5 | 11/10/2014 6 | Actualizado por cambios en la web (Gracias a prunk) 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/gaypornshare.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | gaypornshare 4 | 3 5 | 23/08/2013 6 | Actualizado por cambios en la web (gracias a sdfasd sdf sdfas) 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/seriesly.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | seriesly 4 | 31 5 | 12/10/2014 6 | Corrige el que no se pueda acceder a algunas webs (gracias a prunk) 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/peliculasaudiolatino.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | peliculasaudiolatino 4 | 7 5 | 10/11/2014 6 | Añadido patrón para netu, powvideo y streaminto 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/seriespepito.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | seriespepito 4 | 12 5 | 30/05/2014 6 | Arreglado el problema al elegir el vídeo (gracias a chopchop de nuevo) 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/peliculaspepito.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | peliculaspepito 4 | 12 5 | 30/05/2014 6 | Arreglado el problema al elegir el vídeo (gracias a chopchop de nuevo) 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/peliculasyonkis.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | peliculasyonkis 4 | 2 5 | 02/05/2011 6 | Arreglado un problema con la expresión regular de los listados de pelis. Ahora salen muchas más :) 7 | 8 | -------------------------------------------------------------------------------- /pelisalacarta/channels/peliculasyonkis_generico.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | peliculasyonkis_generico 4 | 10 5 | 02/01/2013 6 | Arreglado el buscador. Como tienen el mismo código, usa el buscador de seriesyonkis, así solo se ha de mantener uno 7 | 8 | -------------------------------------------------------------------------------- /lib/gdata/tlslite/utils/RC4.py: -------------------------------------------------------------------------------- 1 | """Abstract class for RC4.""" 2 | 3 | from compat import * #For False 4 | 5 | class RC4: 6 | def __init__(self, keyBytes, implementation): 7 | if len(keyBytes) < 16 or len(keyBytes) > 256: 8 | raise ValueError() 9 | self.isBlockCipher = False 10 | self.name = "rc4" 11 | self.implementation = implementation 12 | 13 | def encrypt(self, plaintext): 14 | raise NotImplementedError() 15 | 16 | def decrypt(self, ciphertext): 17 | raise NotImplementedError() -------------------------------------------------------------------------------- /lib/gdata/tlslite/integration/__init__.py: -------------------------------------------------------------------------------- 1 | """Classes for integrating TLS Lite with other packages.""" 2 | 3 | __all__ = ["AsyncStateMachine", 4 | "HTTPTLSConnection", 5 | "POP3_TLS", 6 | "IMAP4_TLS", 7 | "SMTP_TLS", 8 | "XMLRPCTransport", 9 | "TLSSocketServerMixIn", 10 | "TLSAsyncDispatcherMixIn", 11 | "TLSTwistedProtocolWrapper"] 12 | 13 | try: 14 | import twisted 15 | del twisted 16 | except ImportError: 17 | del __all__[__all__.index("TLSTwistedProtocolWrapper")] 18 | -------------------------------------------------------------------------------- /lib/gdata/tlslite/utils/PyCrypto_RC4.py: -------------------------------------------------------------------------------- 1 | """PyCrypto RC4 implementation.""" 2 | 3 | from cryptomath import * 4 | from RC4 import * 5 | 6 | if pycryptoLoaded: 7 | import Crypto.Cipher.ARC4 8 | 9 | def new(key): 10 | return PyCrypto_RC4(key) 11 | 12 | class PyCrypto_RC4(RC4): 13 | 14 | def __init__(self, key): 15 | RC4.__init__(self, key, "pycrypto") 16 | self.context = Crypto.Cipher.ARC4.new(key) 17 | 18 | def encrypt(self, plaintext): 19 | return self.context.encrypt(plaintext) 20 | 21 | def decrypt(self, ciphertext): 22 | return self.context.decrypt(ciphertext) -------------------------------------------------------------------------------- /core/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta - XBMC Plugin 4 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 5 | #------------------------------------------------------------ 6 | 7 | import os,sys 8 | 9 | # Appends the main plugin dir to the PYTHONPATH if an internal package cannot be imported. 10 | # Examples: In Plex Media Server all modules are under "Code.*" package, and in Enigma2 under "Plugins.Extensions.*" 11 | try: 12 | #from core import logger 13 | import core 14 | except: 15 | sys.path.append( os.path.abspath( os.path.join( os.path.dirname(__file__) , ".." ) ) ) 16 | -------------------------------------------------------------------------------- /servers/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta - XBMC Plugin 4 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 5 | #------------------------------------------------------------ 6 | 7 | import os,sys 8 | 9 | # Appends the main plugin dir to the PYTHONPATH if an internal package cannot be imported. 10 | # Examples: In Plex Media Server all modules are under "Code.*" package, and in Enigma2 under "Plugins.Extensions.*" 11 | try: 12 | #from core import logger 13 | import core 14 | except: 15 | sys.path.append( os.path.abspath( os.path.join( os.path.dirname(__file__) , ".." ) ) ) 16 | -------------------------------------------------------------------------------- /platformcode/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta - XBMC Plugin 4 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 5 | #------------------------------------------------------------ 6 | 7 | import os,sys 8 | 9 | # Appends the main plugin dir to the PYTHONPATH if an internal package cannot be imported. 10 | # Examples: In Plex Media Server all modules are under "Code.*" package, and in Enigma2 under "Plugins.Extensions.*" 11 | try: 12 | #from core import logger 13 | import core 14 | except: 15 | sys.path.append( os.path.abspath( os.path.join( os.path.dirname(__file__) , ".." ) ) ) 16 | -------------------------------------------------------------------------------- /lib/gdata/tlslite/utils/PyCrypto_AES.py: -------------------------------------------------------------------------------- 1 | """PyCrypto AES implementation.""" 2 | 3 | from cryptomath import * 4 | from AES import * 5 | 6 | if pycryptoLoaded: 7 | import Crypto.Cipher.AES 8 | 9 | def new(key, mode, IV): 10 | return PyCrypto_AES(key, mode, IV) 11 | 12 | class PyCrypto_AES(AES): 13 | 14 | def __init__(self, key, mode, IV): 15 | AES.__init__(self, key, mode, IV, "pycrypto") 16 | self.context = Crypto.Cipher.AES.new(key, mode, IV) 17 | 18 | def encrypt(self, plaintext): 19 | return self.context.encrypt(plaintext) 20 | 21 | def decrypt(self, ciphertext): 22 | return self.context.decrypt(ciphertext) -------------------------------------------------------------------------------- /platformcode/xbmc/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta - XBMC Plugin 4 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 5 | #------------------------------------------------------------ 6 | 7 | import os,sys 8 | 9 | # Appends the main plugin dir to the PYTHONPATH if an internal package cannot be imported. 10 | # Examples: In Plex Media Server all modules are under "Code.*" package, and in Enigma2 under "Plugins.Extensions.*" 11 | try: 12 | #from core import logger 13 | import core 14 | except: 15 | sys.path.append( os.path.abspath( os.path.join( os.path.dirname(__file__) , ".." , ".." ) ) ) 16 | -------------------------------------------------------------------------------- /pelisalacarta/channels/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta - XBMC Plugin 4 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 5 | #------------------------------------------------------------ 6 | 7 | import os,sys 8 | 9 | # Appends the main plugin dir to the PYTHONPATH if an internal package cannot be imported. 10 | # Examples: In Plex Media Server all modules are under "Code.*" package, and in Enigma2 under "Plugins.Extensions.*" 11 | try: 12 | #from core import logger 13 | import core 14 | except: 15 | sys.path.append( os.path.abspath( os.path.join( os.path.dirname(__file__) , ".." , ".." ) ) ) 16 | -------------------------------------------------------------------------------- /platformcode/xbmcgotham/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta - XBMC Plugin 4 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 5 | #------------------------------------------------------------ 6 | 7 | import os,sys 8 | 9 | # Appends the main plugin dir to the PYTHONPATH if an internal package cannot be imported. 10 | # Examples: In Plex Media Server all modules are under "Code.*" package, and in Enigma2 under "Plugins.Extensions.*" 11 | try: 12 | #from core import logger 13 | import core 14 | except: 15 | sys.path.append( os.path.abspath( os.path.join( os.path.dirname(__file__) , ".." , ".." ) ) ) 16 | -------------------------------------------------------------------------------- /lib/gdata/tlslite/utils/OpenSSL_RC4.py: -------------------------------------------------------------------------------- 1 | """OpenSSL/M2Crypto RC4 implementation.""" 2 | 3 | from cryptomath import * 4 | from RC4 import RC4 5 | 6 | if m2cryptoLoaded: 7 | 8 | def new(key): 9 | return OpenSSL_RC4(key) 10 | 11 | class OpenSSL_RC4(RC4): 12 | 13 | def __init__(self, key): 14 | RC4.__init__(self, key, "openssl") 15 | self.rc4 = m2.rc4_new() 16 | m2.rc4_set_key(self.rc4, key) 17 | 18 | def __del__(self): 19 | m2.rc4_free(self.rc4) 20 | 21 | def encrypt(self, plaintext): 22 | return m2.rc4_update(self.rc4, plaintext) 23 | 24 | def decrypt(self, ciphertext): 25 | return self.encrypt(ciphertext) 26 | -------------------------------------------------------------------------------- /lib/gdata/tlslite/utils/PyCrypto_TripleDES.py: -------------------------------------------------------------------------------- 1 | """PyCrypto 3DES implementation.""" 2 | 3 | from cryptomath import * 4 | from TripleDES import * 5 | 6 | if pycryptoLoaded: 7 | import Crypto.Cipher.DES3 8 | 9 | def new(key, mode, IV): 10 | return PyCrypto_TripleDES(key, mode, IV) 11 | 12 | class PyCrypto_TripleDES(TripleDES): 13 | 14 | def __init__(self, key, mode, IV): 15 | TripleDES.__init__(self, key, mode, IV, "pycrypto") 16 | self.context = Crypto.Cipher.DES3.new(key, mode, IV) 17 | 18 | def encrypt(self, plaintext): 19 | return self.context.encrypt(plaintext) 20 | 21 | def decrypt(self, ciphertext): 22 | return self.context.decrypt(ciphertext) -------------------------------------------------------------------------------- /default.py: -------------------------------------------------------------------------------- 1 | # -*- coding: iso-8859-1 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta 4 | # XBMC entry point 5 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 6 | #------------------------------------------------------------ 7 | 8 | # Constants 9 | __plugin__ = "pelisalacarta" 10 | __author__ = "pelisalacarta" 11 | __url__ = "http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/" 12 | __date__ = "19/03/2015" 13 | __version__ = "3.9.99" 14 | 15 | import os 16 | import sys 17 | from core import config 18 | from core import logger 19 | 20 | logger.info("[default.py] pelisalacarta init...") 21 | 22 | librerias = xbmc.translatePath( os.path.join( config.get_runtime_path(), 'lib' ) ) 23 | sys.path.append (librerias) 24 | 25 | # Runs xbmc launcher 26 | from platformcode.xbmc import launcher 27 | launcher.run() -------------------------------------------------------------------------------- /lib/gdata/oauth/CHANGES.txt: -------------------------------------------------------------------------------- 1 | 1. Moved oauth.py to __init__.py 2 | 3 | 2. Refactored __init__.py for compatibility with python 2.2 (Issue 59) 4 | 5 | 3. Refactored rsa.py for compatibility with python 2.2 (Issue 59) 6 | 7 | 4. Refactored OAuthRequest.from_token_and_callback since the callback url was 8 | getting double url-encoding the callback url in place of single. (Issue 43) 9 | 10 | 5. Added build_signature_base_string method to rsa.py since it used the 11 | implementation of this method from oauth.OAuthSignatureMethod_HMAC_SHA1 which 12 | was incorrect since it enforced the presence of a consumer secret and a token 13 | secret. Also, changed its super class from oauth.OAuthSignatureMethod_HMAC_SHA1 14 | to oauth.OAuthSignatureMethod (Issue 64) 15 | 16 | 6. Refactored .to_header method since it returned non-oauth params 17 | as well which was incorrect. (Issue 31) -------------------------------------------------------------------------------- /lib/gdata/tlslite/utils/TripleDES.py: -------------------------------------------------------------------------------- 1 | """Abstract class for 3DES.""" 2 | 3 | from compat import * #For True 4 | 5 | class TripleDES: 6 | def __init__(self, key, mode, IV, implementation): 7 | if len(key) != 24: 8 | raise ValueError() 9 | if mode != 2: 10 | raise ValueError() 11 | if len(IV) != 8: 12 | raise ValueError() 13 | self.isBlockCipher = True 14 | self.block_size = 8 15 | self.implementation = implementation 16 | self.name = "3des" 17 | 18 | #CBC-Mode encryption, returns ciphertext 19 | #WARNING: *MAY* modify the input as well 20 | def encrypt(self, plaintext): 21 | assert(len(plaintext) % 8 == 0) 22 | 23 | #CBC-Mode decryption, returns plaintext 24 | #WARNING: *MAY* modify the input as well 25 | def decrypt(self, ciphertext): 26 | assert(len(ciphertext) % 8 == 0) 27 | -------------------------------------------------------------------------------- /servers/safelinking.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta - XBMC Plugin 4 | # Conector para safelinking (ocultador de url) 5 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 6 | #------------------------------------------------------------ 7 | 8 | import urlparse,urllib2,urllib,re 9 | import os 10 | 11 | from core import scrapertools 12 | from core import logger 13 | from core import config 14 | 15 | def get_long_url( short_url ): 16 | logger.info("[safelinking.py] get_long_url(short_url='%s')" % short_url) 17 | 18 | location = scrapertools.get_header_from_response(short_url,header_to_get="location") 19 | logger.info("location="+location) 20 | 21 | return location 22 | 23 | def test(): 24 | 25 | location = get_long_url("https://safelinking.net/d/b038a2ed6e") 26 | ok = ("http://played.to" in location) 27 | 28 | return ok -------------------------------------------------------------------------------- /lib/gdata/tlslite/utils/__init__.py: -------------------------------------------------------------------------------- 1 | """Toolkit for crypto and other stuff.""" 2 | 3 | __all__ = ["AES", 4 | "ASN1Parser", 5 | "cipherfactory", 6 | "codec", 7 | "Cryptlib_AES", 8 | "Cryptlib_RC4", 9 | "Cryptlib_TripleDES", 10 | "cryptomath: cryptomath module", 11 | "dateFuncs", 12 | "hmac", 13 | "JCE_RSAKey", 14 | "compat", 15 | "keyfactory", 16 | "OpenSSL_AES", 17 | "OpenSSL_RC4", 18 | "OpenSSL_RSAKey", 19 | "OpenSSL_TripleDES", 20 | "PyCrypto_AES", 21 | "PyCrypto_RC4", 22 | "PyCrypto_RSAKey", 23 | "PyCrypto_TripleDES", 24 | "Python_AES", 25 | "Python_RC4", 26 | "Python_RSAKey", 27 | "RC4", 28 | "rijndael", 29 | "RSAKey", 30 | "TripleDES", 31 | "xmltools"] 32 | -------------------------------------------------------------------------------- /resources/advancedsettings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 30 4 | 60 5 | 60 6 | 2 7 | true 8 | 0 9 | 10 | -------------------------------------------------------------------------------- /lib/mechanize/_debug.py: -------------------------------------------------------------------------------- 1 | import logging 2 | 3 | from _response import response_seek_wrapper 4 | from _urllib2_fork import BaseHandler 5 | 6 | 7 | class HTTPResponseDebugProcessor(BaseHandler): 8 | handler_order = 900 # before redirections, after everything else 9 | 10 | def http_response(self, request, response): 11 | if not hasattr(response, "seek"): 12 | response = response_seek_wrapper(response) 13 | info = logging.getLogger("mechanize.http_responses").info 14 | try: 15 | info(response.read()) 16 | finally: 17 | response.seek(0) 18 | info("*****************************************************") 19 | return response 20 | 21 | https_response = http_response 22 | 23 | class HTTPRedirectDebugProcessor(BaseHandler): 24 | def http_request(self, request): 25 | if hasattr(request, "redirect_dict"): 26 | info = logging.getLogger("mechanize.http_redirects").info 27 | info("redirecting to %s", request.get_full_url()) 28 | return request 29 | -------------------------------------------------------------------------------- /lib/gdata/tlslite/utils/Cryptlib_RC4.py: -------------------------------------------------------------------------------- 1 | """Cryptlib RC4 implementation.""" 2 | 3 | from cryptomath import * 4 | from RC4 import RC4 5 | 6 | if cryptlibpyLoaded: 7 | 8 | def new(key): 9 | return Cryptlib_RC4(key) 10 | 11 | class Cryptlib_RC4(RC4): 12 | 13 | def __init__(self, key): 14 | RC4.__init__(self, key, "cryptlib") 15 | self.context = cryptlib_py.cryptCreateContext(cryptlib_py.CRYPT_UNUSED, cryptlib_py.CRYPT_ALGO_RC4) 16 | cryptlib_py.cryptSetAttribute(self.context, cryptlib_py.CRYPT_CTXINFO_KEYSIZE, len(key)) 17 | cryptlib_py.cryptSetAttributeString(self.context, cryptlib_py.CRYPT_CTXINFO_KEY, key) 18 | 19 | def __del__(self): 20 | cryptlib_py.cryptDestroyContext(self.context) 21 | 22 | def encrypt(self, plaintext): 23 | bytes = stringToBytes(plaintext) 24 | cryptlib_py.cryptEncrypt(self.context, bytes) 25 | return bytesToString(bytes) 26 | 27 | def decrypt(self, ciphertext): 28 | return self.encrypt(ciphertext) -------------------------------------------------------------------------------- /lib/simplejson/tool.py: -------------------------------------------------------------------------------- 1 | r"""Command-line tool to validate and pretty-print JSON 2 | 3 | Usage:: 4 | 5 | $ echo '{"json":"obj"}' | python -m simplejson.tool 6 | { 7 | "json": "obj" 8 | } 9 | $ echo '{ 1.2:3.4}' | python -m simplejson.tool 10 | Expecting property name: line 1 column 2 (char 2) 11 | 12 | """ 13 | import sys 14 | import simplejson 15 | 16 | def main(): 17 | if len(sys.argv) == 1: 18 | infile = sys.stdin 19 | outfile = sys.stdout 20 | elif len(sys.argv) == 2: 21 | infile = open(sys.argv[1], 'rb') 22 | outfile = sys.stdout 23 | elif len(sys.argv) == 3: 24 | infile = open(sys.argv[1], 'rb') 25 | outfile = open(sys.argv[2], 'wb') 26 | else: 27 | raise SystemExit(sys.argv[0] + " [infile [outfile]]") 28 | try: 29 | obj = simplejson.load(infile) 30 | except ValueError, e: 31 | raise SystemExit(e) 32 | simplejson.dump(obj, outfile, sort_keys=True, indent=4) 33 | outfile.write('\n') 34 | 35 | 36 | if __name__ == '__main__': 37 | main() 38 | -------------------------------------------------------------------------------- /lib/gdata/tlslite/utils/AES.py: -------------------------------------------------------------------------------- 1 | """Abstract class for AES.""" 2 | 3 | class AES: 4 | def __init__(self, key, mode, IV, implementation): 5 | if len(key) not in (16, 24, 32): 6 | raise AssertionError() 7 | if mode != 2: 8 | raise AssertionError() 9 | if len(IV) != 16: 10 | raise AssertionError() 11 | self.isBlockCipher = True 12 | self.block_size = 16 13 | self.implementation = implementation 14 | if len(key)==16: 15 | self.name = "aes128" 16 | elif len(key)==24: 17 | self.name = "aes192" 18 | elif len(key)==32: 19 | self.name = "aes256" 20 | else: 21 | raise AssertionError() 22 | 23 | #CBC-Mode encryption, returns ciphertext 24 | #WARNING: *MAY* modify the input as well 25 | def encrypt(self, plaintext): 26 | assert(len(plaintext) % 16 == 0) 27 | 28 | #CBC-Mode decryption, returns plaintext 29 | #WARNING: *MAY* modify the input as well 30 | def decrypt(self, ciphertext): 31 | assert(len(ciphertext) % 16 == 0) -------------------------------------------------------------------------------- /lib/gdata/tlslite/utils/ASN1Parser.py: -------------------------------------------------------------------------------- 1 | """Class for parsing ASN.1""" 2 | from compat import * 3 | from codec import * 4 | 5 | #Takes a byte array which has a DER TLV field at its head 6 | class ASN1Parser: 7 | def __init__(self, bytes): 8 | p = Parser(bytes) 9 | p.get(1) #skip Type 10 | 11 | #Get Length 12 | self.length = self._getASN1Length(p) 13 | 14 | #Get Value 15 | self.value = p.getFixBytes(self.length) 16 | 17 | #Assuming this is a sequence... 18 | def getChild(self, which): 19 | p = Parser(self.value) 20 | for x in range(which+1): 21 | markIndex = p.index 22 | p.get(1) #skip Type 23 | length = self._getASN1Length(p) 24 | p.getFixBytes(length) 25 | return ASN1Parser(p.bytes[markIndex : p.index]) 26 | 27 | #Decode the ASN.1 DER length field 28 | def _getASN1Length(self, p): 29 | firstLength = p.get(1) 30 | if firstLength<=127: 31 | return firstLength 32 | else: 33 | lengthLength = firstLength & 0x7F 34 | return p.get(lengthLength) 35 | -------------------------------------------------------------------------------- /addon.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | video 11 | 12 | 13 | Películas y series a la carta 14 | Películas, series, documentales, anime, ... todo lo que puedas encontrar en Internet ahora desde tu media center. Incluye canales en Español, Italiano, Inglés y Rumano. 15 | Movies and TV Shows on demand 16 | Movies, Series, Documentaries, Anime, ... everything you can find on Internet now on your media center. Includes channels in Spanish, Italian, English and Romanian. 17 | all 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /platformcode/xbmcgotham/addon.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | video 11 | 12 | 13 | Películas y series a la carta 14 | Películas, series, documentales, anime, ... todo lo que puedas encontrar en Internet ahora desde tu media center. Incluye canales en Español, Italiano, Inglés y Rumano. 15 | Movies and TV Shows on demand 16 | Movies, Series, Documentaries, Anime, ... everything you can find on Internet now on your media center. Includes channels in Spanish, Italian, English and Romanian. 17 | all 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /lib/gdata/tlslite/utils/Python_RC4.py: -------------------------------------------------------------------------------- 1 | """Pure-Python RC4 implementation.""" 2 | 3 | from RC4 import RC4 4 | from cryptomath import * 5 | 6 | def new(key): 7 | return Python_RC4(key) 8 | 9 | class Python_RC4(RC4): 10 | def __init__(self, key): 11 | RC4.__init__(self, key, "python") 12 | keyBytes = stringToBytes(key) 13 | S = [i for i in range(256)] 14 | j = 0 15 | for i in range(256): 16 | j = (j + S[i] + keyBytes[i % len(keyBytes)]) % 256 17 | S[i], S[j] = S[j], S[i] 18 | 19 | self.S = S 20 | self.i = 0 21 | self.j = 0 22 | 23 | def encrypt(self, plaintext): 24 | plaintextBytes = stringToBytes(plaintext) 25 | S = self.S 26 | i = self.i 27 | j = self.j 28 | for x in range(len(plaintextBytes)): 29 | i = (i + 1) % 256 30 | j = (j + S[i]) % 256 31 | S[i], S[j] = S[j], S[i] 32 | t = (S[i] + S[j]) % 256 33 | plaintextBytes[x] ^= S[t] 34 | self.i = i 35 | self.j = j 36 | return bytesToString(plaintextBytes) 37 | 38 | def decrypt(self, ciphertext): 39 | return self.encrypt(ciphertext) 40 | -------------------------------------------------------------------------------- /lib/atom/auth.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # 3 | # Copyright (C) 2009 Google Inc. 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | 18 | # This module is used for version 2 of the Google Data APIs. 19 | 20 | 21 | __author__ = 'j.s@google.com (Jeff Scudder)' 22 | 23 | 24 | import base64 25 | 26 | 27 | class BasicAuth(object): 28 | """Sets the Authorization header as defined in RFC1945""" 29 | 30 | def __init__(self, user_id, password): 31 | self.basic_cookie = base64.encodestring( 32 | '%s:%s' % (user_id, password)).strip() 33 | 34 | def modify_request(self, http_request): 35 | http_request.headers['Authorization'] = 'Basic %s' % self.basic_cookie 36 | 37 | ModifyRequest = modify_request 38 | -------------------------------------------------------------------------------- /lib/gdata/tlslite/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | TLS Lite is a free python library that implements SSL v3, TLS v1, and 3 | TLS v1.1. TLS Lite supports non-traditional authentication methods 4 | such as SRP, shared keys, and cryptoIDs, in addition to X.509 5 | certificates. TLS Lite is pure python, however it can access OpenSSL, 6 | cryptlib, pycrypto, and GMPY for faster crypto operations. TLS Lite 7 | integrates with httplib, xmlrpclib, poplib, imaplib, smtplib, 8 | SocketServer, asyncore, and Twisted. 9 | 10 | To use, do:: 11 | 12 | from tlslite.api import * 13 | 14 | Then use the L{tlslite.TLSConnection.TLSConnection} class with a socket, 15 | or use one of the integration classes in L{tlslite.integration}. 16 | 17 | @version: 0.3.8 18 | """ 19 | __version__ = "0.3.8" 20 | 21 | __all__ = ["api", 22 | "BaseDB", 23 | "Checker", 24 | "constants", 25 | "errors", 26 | "FileObject", 27 | "HandshakeSettings", 28 | "mathtls", 29 | "messages", 30 | "Session", 31 | "SessionCache", 32 | "SharedKeyDB", 33 | "TLSConnection", 34 | "TLSRecordLayer", 35 | "VerifierDB", 36 | "X509", 37 | "X509CertChain", 38 | "integration", 39 | "utils"] 40 | -------------------------------------------------------------------------------- /servers/uploaz.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta - XBMC Plugin 4 | # Conector para uploaz 5 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 6 | #------------------------------------------------------------ 7 | 8 | import urlparse,urllib2,urllib,re 9 | import os 10 | 11 | from core import scrapertools 12 | from core import logger 13 | from core import config 14 | 15 | def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): 16 | logger.info("[uploaz.py] get_video_url(page_url='%s')" % page_url) 17 | video_urls = [] 18 | return video_urls 19 | 20 | # Encuentra vídeos del servidor en el texto pasado 21 | def find_videos(data): 22 | encontrados = set() 23 | devuelve = [] 24 | 25 | # http://uploaz.com/file/ 26 | patronvideos = '(uploaz.com/file/[a-zA-Z0-9]+)' 27 | logger.info("[uploaz.py] find_videos #"+patronvideos+"#") 28 | matches = re.compile(patronvideos,re.DOTALL).findall(data) 29 | 30 | for match in matches: 31 | titulo = "[uploaz]" 32 | url = "http://"+match 33 | if url not in encontrados: 34 | logger.info(" url="+url) 35 | devuelve.append( [ titulo , url , 'uploaz' ] ) 36 | encontrados.add(url) 37 | else: 38 | logger.info(" url duplicada="+url) 39 | 40 | return devuelve 41 | -------------------------------------------------------------------------------- /servers/oboom.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta - XBMC Plugin 4 | # Conector para uploaz 5 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 6 | #------------------------------------------------------------ 7 | 8 | import urlparse,urllib2,urllib,re 9 | import os 10 | 11 | from core import scrapertools 12 | from core import logger 13 | from core import config 14 | 15 | def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): 16 | logger.info("[oboom.py] get_video_url(page_url='%s')" % page_url) 17 | video_urls = [] 18 | return video_urls 19 | 20 | # Encuentra vídeos del servidor en el texto pasado 21 | def find_videos(data): 22 | encontrados = set() 23 | devuelve = [] 24 | 25 | # http://uploaz.com/file/ 26 | 27 | patronvideos = '(oboom.com/[a-zA-Z0-9]+)' 28 | logger.info("[oboom.py] find_videos #"+patronvideos+"#") 29 | matches = re.compile(patronvideos,re.DOTALL).findall(data) 30 | 31 | for match in matches: 32 | titulo = "[oboom]" 33 | url = "https://www."+match 34 | if url not in encontrados: 35 | logger.info(" url="+url) 36 | devuelve.append( [ titulo , url , 'oboom' ] ) 37 | encontrados.add(url) 38 | else: 39 | logger.info(" url duplicada="+url) 40 | 41 | return devuelve 42 | -------------------------------------------------------------------------------- /servers/uptobox.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta - XBMC Plugin 4 | # Conector para uptobox 5 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 6 | #------------------------------------------------------------ 7 | 8 | import urlparse,urllib2,urllib,re 9 | import os 10 | 11 | from core import scrapertools 12 | from core import logger 13 | from core import config 14 | 15 | def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): 16 | logger.info("[uptobox.py] get_video_url(page_url='%s')" % page_url) 17 | video_urls = [] 18 | return video_urls 19 | 20 | # Encuentra vídeos del servidor en el texto pasado 21 | def find_videos(data): 22 | encontrados = set() 23 | devuelve = [] 24 | 25 | # http://uptobox.com/q7asuktfrh4x 26 | patronvideos = '(uptobox.com/[a-z0-9]+)' 27 | logger.info("[uptobox.py] find_videos #"+patronvideos+"#") 28 | matches = re.compile(patronvideos,re.DOTALL).findall(data) 29 | 30 | for match in matches: 31 | titulo = "[uptobox]" 32 | url = "http://"+match 33 | if url not in encontrados: 34 | logger.info(" url="+url) 35 | devuelve.append( [ titulo , url , 'uptobox' ] ) 36 | encontrados.add(url) 37 | else: 38 | logger.info(" url duplicada="+url) 39 | 40 | return devuelve 41 | -------------------------------------------------------------------------------- /servers/lumfile.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta - XBMC Plugin 4 | # Conector para lumfile 5 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 6 | #------------------------------------------------------------ 7 | 8 | import urlparse,urllib2,urllib,re 9 | import os 10 | 11 | from core import scrapertools 12 | from core import logger 13 | from core import config 14 | 15 | def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): 16 | logger.info("[lumfile.py] get_video_url(page_url='%s')" % page_url) 17 | video_urls = [] 18 | return video_urls 19 | 20 | # Encuentra vídeos del servidor en el texto pasado 21 | def find_videos(data): 22 | encontrados = set() 23 | devuelve = [] 24 | 25 | # http://lumfile.com/cwdddpi2d/aaa.html 26 | patronvideos = '(lumfile.com/[a-z0-9]+/.*?\.html)' 27 | logger.info("[lumfile.py] find_videos #"+patronvideos+"#") 28 | matches = re.compile(patronvideos,re.DOTALL).findall(data) 29 | 30 | for match in matches: 31 | titulo = "[lumfile]" 32 | url = "http://"+match 33 | if url not in encontrados: 34 | logger.info(" url="+url) 35 | devuelve.append( [ titulo , url , 'lumfile' ] ) 36 | encontrados.add(url) 37 | else: 38 | logger.info(" url duplicada="+url) 39 | 40 | return devuelve 41 | -------------------------------------------------------------------------------- /servers/filejungle.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta - XBMC Plugin 4 | # Conector para filejungle 5 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 6 | #------------------------------------------------------------ 7 | 8 | import urlparse,urllib2,urllib,re 9 | import os 10 | 11 | from core import scrapertools 12 | from core import logger 13 | from core import config 14 | 15 | def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): 16 | logger.info("[filejungle.py] get_video_url(page_url='%s')" % page_url) 17 | video_urls = [] 18 | return video_urls 19 | 20 | # Encuentra vídeos del servidor en el texto pasado 21 | def find_videos(data): 22 | encontrados = set() 23 | devuelve = [] 24 | 25 | # http://www.filejungle.com/f/3Q7apX 26 | patronvideos = '(http://www.filejungle.com/f/[a-zA-Z0-9]+)' 27 | logger.info("[filejungle.py] find_videos #"+patronvideos+"#") 28 | matches = re.compile(patronvideos,re.DOTALL).findall(data) 29 | 30 | for match in matches: 31 | titulo = "[filejungle]" 32 | url = match 33 | if url not in encontrados: 34 | logger.info(" url="+url) 35 | devuelve.append( [ titulo , url , 'filejungle' ] ) 36 | encontrados.add(url) 37 | else: 38 | logger.info(" url duplicada="+url) 39 | 40 | return devuelve 41 | -------------------------------------------------------------------------------- /servers/filesonic.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta - XBMC Plugin 4 | # Conector para filesonic 5 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 6 | #------------------------------------------------------------ 7 | 8 | import urlparse,urllib2,urllib,re 9 | import os 10 | 11 | from core import scrapertools 12 | from core import logger 13 | from core import config 14 | 15 | def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): 16 | logger.info("[filesonic.py] get_video_url(page_url='%s')" % page_url) 17 | video_urls = [] 18 | return video_urls 19 | 20 | # Encuentra vídeos del servidor en el texto pasado 21 | def find_videos(data): 22 | encontrados = set() 23 | devuelve = [] 24 | 25 | # http://www.filesonic.es/file/4300755655 26 | patronvideos = '(http://www.filesonic.es/file/[0-9a-zA-Z]+)' 27 | logger.info("[filesonic.py] find_videos #"+patronvideos+"#") 28 | matches = re.compile(patronvideos,re.DOTALL).findall(data) 29 | 30 | for match in matches: 31 | titulo = "[filesonic]" 32 | url = match 33 | if url not in encontrados: 34 | logger.info(" url="+url) 35 | devuelve.append( [ titulo , url , 'filesonic' ] ) 36 | encontrados.add(url) 37 | else: 38 | logger.info(" url duplicada="+url) 39 | 40 | return devuelve 41 | -------------------------------------------------------------------------------- /servers/uploading.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta - XBMC Plugin 4 | # Conector para uploading 5 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 6 | #------------------------------------------------------------ 7 | 8 | import urlparse,urllib2,urllib,re 9 | import os 10 | 11 | from core import scrapertools 12 | from core import logger 13 | from core import config 14 | 15 | def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): 16 | logger.info("[uploading.py] get_video_url(page_url='%s')" % page_url) 17 | video_urls = [] 18 | return video_urls 19 | 20 | # Encuentra vídeos del servidor en el texto pasado 21 | def find_videos(data): 22 | encontrados = set() 23 | devuelve = [] 24 | 25 | # http://uploading.com/files/get/686bm1b2 26 | patronvideos = '(uploading.com/files/get/[a-z0-9]+)' 27 | logger.info("[uploading.py] find_videos #"+patronvideos+"#") 28 | matches = re.compile(patronvideos,re.DOTALL).findall(data) 29 | 30 | for match in matches: 31 | titulo = "[uploading]" 32 | url = "http://"+match 33 | if url not in encontrados: 34 | logger.info(" url="+url) 35 | devuelve.append( [ titulo , url , 'uploading' ] ) 36 | encontrados.add(url) 37 | else: 38 | logger.info(" url duplicada="+url) 39 | 40 | return devuelve 41 | -------------------------------------------------------------------------------- /servers/ultramegabit.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta - XBMC Plugin 4 | # Conector para ultramegabit 5 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 6 | #------------------------------------------------------------ 7 | 8 | import urlparse,urllib2,urllib,re 9 | import os 10 | 11 | from core import scrapertools 12 | from core import logger 13 | from core import config 14 | 15 | def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): 16 | logger.info("[ultramegabit.py] get_video_url(page_url='%s')" % page_url) 17 | video_urls = [] 18 | return video_urls 19 | 20 | # Encuentra vídeos del servidor en el texto pasado 21 | def find_videos(data): 22 | encontrados = set() 23 | devuelve = [] 24 | 25 | # http://ultramegabit.com/file/ 26 | patronvideos = '(ultramegabit.com/file/details/[^"]+)' 27 | logger.info("[ultramegabit.py] find_videos #"+patronvideos+"#") 28 | matches = re.compile(patronvideos,re.DOTALL).findall(data) 29 | 30 | for match in matches: 31 | titulo = "[ultramegabit]" 32 | url ='http://'+match 33 | if url not in encontrados: 34 | logger.info(" url="+url) 35 | devuelve.append( [ titulo , url , 'ultramegabit' ] ) 36 | encontrados.add(url) 37 | else: 38 | logger.info(" url duplicada="+url) 39 | 40 | return devuelve 41 | -------------------------------------------------------------------------------- /servers/filesmonster.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta - XBMC Plugin 4 | # Conector para uploaz 5 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 6 | #------------------------------------------------------------ 7 | 8 | import urlparse,urllib2,urllib,re 9 | import os 10 | 11 | from core import scrapertools 12 | from core import logger 13 | from core import config 14 | 15 | def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): 16 | logger.info("[filesmonster.py] get_video_url(page_url='%s')" % page_url) 17 | video_urls = [] 18 | return video_urls 19 | 20 | # Encuentra vídeos del servidor en el texto pasado 21 | def find_videos(data): 22 | encontrados = set() 23 | devuelve = [] 24 | 25 | # http://uploaz.com/file/ 26 | patronvideos = '"filesmonster.com/download(.*?)"' 27 | logger.info("[filemonster.py] find_videos #"+patronvideos+"#") 28 | matches = re.compile(patronvideos,re.DOTALL).findall(data) 29 | 30 | for match in matches: 31 | titulo = "[filesmonster]" 32 | url = "http://filesmonster.com/download"+match 33 | if url not in encontrados: 34 | logger.info(" url="+url) 35 | devuelve.append( [ titulo , url , 'filemonster' ] ) 36 | encontrados.add(url) 37 | else: 38 | logger.info(" url duplicada="+url) 39 | 40 | return devuelve 41 | -------------------------------------------------------------------------------- /servers/uploadstation.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta - XBMC Plugin 4 | # Conector para uploadstation 5 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 6 | #------------------------------------------------------------ 7 | 8 | import urlparse,urllib2,urllib,re 9 | import os 10 | 11 | from core import scrapertools 12 | from core import logger 13 | from core import config 14 | 15 | def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): 16 | logger.info("[uploadstation.py] get_video_url(page_url='%s')" % page_url) 17 | video_urls = [] 18 | return video_urls 19 | 20 | # Encuentra vídeos del servidor en el texto pasado 21 | def find_videos(data): 22 | encontrados = set() 23 | devuelve = [] 24 | 25 | # http://uploaded.to/file/1haty8nt 26 | patronvideos = '(http://www.uploadstation.com/file/[a-zA-Z0-9]+)' 27 | logger.info("[uploadstation.py] find_videos #"+patronvideos+"#") 28 | matches = re.compile(patronvideos,re.DOTALL).findall(data) 29 | 30 | for match in matches: 31 | titulo = "[uploadstation]" 32 | url = match 33 | if url not in encontrados: 34 | logger.info(" url="+url) 35 | devuelve.append( [ titulo , url , 'uploadstation' ] ) 36 | encontrados.add(url) 37 | else: 38 | logger.info(" url duplicada="+url) 39 | 40 | return devuelve 41 | -------------------------------------------------------------------------------- /servers/cramit.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta - XBMC Plugin 4 | # Conector para cramit 5 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 6 | #------------------------------------------------------------ 7 | 8 | import urlparse,urllib2,urllib,re 9 | import os 10 | 11 | from core import scrapertools 12 | from core import logger 13 | from core import config 14 | 15 | def test_video_exists( page_url ): 16 | return True,"" 17 | 18 | def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): 19 | logger.info("[cramit.py] get_video_url(page_url='%s')" % page_url) 20 | video_urls = [] 21 | return video_urls 22 | 23 | # Encuentra vídeos del servidor en el texto pasado 24 | def find_videos(data): 25 | encontrados = set() 26 | devuelve = [] 27 | 28 | #http://cramit.in/4nvhv61fcay3 29 | patronvideos = '(cramit.in/[a-z0-9]+)' 30 | logger.info("[cramit.py] find_videos #"+patronvideos+"#") 31 | matches = re.compile(patronvideos,re.DOTALL).findall(data) 32 | 33 | for match in matches: 34 | titulo = "[cramit]" 35 | url = "http://"+match 36 | if url not in encontrados: 37 | logger.info(" url="+url) 38 | devuelve.append( [ titulo , url , 'cramit' ] ) 39 | encontrados.add(url) 40 | else: 41 | logger.info(" url duplicada="+url) 42 | 43 | return devuelve 44 | -------------------------------------------------------------------------------- /lib/gdata/tlslite/utils/win32prng.c: -------------------------------------------------------------------------------- 1 | 2 | #include "Python.h" 3 | #define _WIN32_WINNT 0x0400 /* Needed for CryptoAPI on some systems */ 4 | #include 5 | 6 | 7 | static PyObject* getRandomBytes(PyObject *self, PyObject *args) 8 | { 9 | int howMany; 10 | HCRYPTPROV hCryptProv; 11 | unsigned char* bytes = NULL; 12 | PyObject* returnVal = NULL; 13 | 14 | 15 | /* Read Arguments */ 16 | if (!PyArg_ParseTuple(args, "i", &howMany)) 17 | return(NULL); 18 | 19 | /* Get Context */ 20 | if(CryptAcquireContext( 21 | &hCryptProv, 22 | NULL, 23 | NULL, 24 | PROV_RSA_FULL, 25 | CRYPT_VERIFYCONTEXT) == 0) 26 | return Py_BuildValue("s#", NULL, 0); 27 | 28 | 29 | /* Allocate bytes */ 30 | bytes = malloc(howMany); 31 | 32 | 33 | /* Get random data */ 34 | if(CryptGenRandom( 35 | hCryptProv, 36 | howMany, 37 | bytes) == 0) 38 | returnVal = Py_BuildValue("s#", NULL, 0); 39 | else 40 | returnVal = Py_BuildValue("s#", bytes, howMany); 41 | 42 | free(bytes); 43 | CryptReleaseContext(hCryptProv, 0); 44 | 45 | return returnVal; 46 | } 47 | 48 | 49 | 50 | /* List of functions exported by this module */ 51 | 52 | static struct PyMethodDef win32prng_functions[] = { 53 | {"getRandomBytes", (PyCFunction)getRandomBytes, METH_VARARGS}, 54 | {NULL, NULL} /* Sentinel */ 55 | }; 56 | 57 | 58 | /* Initialize this module. */ 59 | 60 | DL_EXPORT(void) initwin32prng(void) 61 | { 62 | Py_InitModule("win32prng", win32prng_functions); 63 | } 64 | -------------------------------------------------------------------------------- /servers/onefichier.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta - XBMC Plugin 4 | # Conector para 1fichier 5 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 6 | #------------------------------------------------------------ 7 | 8 | import urlparse,urllib2,urllib,re 9 | import os 10 | 11 | from core import scrapertools 12 | from core import logger 13 | from core import config 14 | 15 | def test_video_exists( page_url ): 16 | return True,"" 17 | 18 | def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): 19 | logger.info("[onefichier.py] get_video_url(page_url='%s')" % page_url) 20 | video_urls = [] 21 | return video_urls 22 | 23 | # Encuentra vídeos del servidor en el texto pasado 24 | def find_videos(data): 25 | encontrados = set() 26 | devuelve = [] 27 | 28 | #http://kzu0y3.1fichier.com/ 29 | patronvideos = '([a-z0-9]+.1fichier.com)' 30 | logger.info("[onefichier.py] find_videos #"+patronvideos+"#") 31 | matches = re.compile(patronvideos,re.DOTALL).findall(data) 32 | 33 | for match in matches: 34 | titulo = "[onefichier]" 35 | url = "http://"+match 36 | if url not in encontrados: 37 | logger.info(" url="+url) 38 | devuelve.append( [ titulo , url , 'onefichier' ] ) 39 | encontrados.add(url) 40 | else: 41 | logger.info(" url duplicada="+url) 42 | 43 | return devuelve 44 | -------------------------------------------------------------------------------- /core/logger.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # Logger multiplataforma 4 | #------------------------------------------------------------ 5 | # pelisalacarta 6 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 7 | #------------------------------------------------------------ 8 | # Creado por: Jesús (tvalacarta@gmail.com) 9 | # Licencia: GPL (http://www.gnu.org/licenses/gpl-3.0.html) 10 | #------------------------------------------------------------ 11 | # Historial de cambios: 12 | #------------------------------------------------------------ 13 | 14 | try: 15 | from core import config 16 | except: 17 | import config 18 | 19 | try: 20 | exec "import platformcode."+config.get_platform()+".logger as platformlogger" 21 | default = False 22 | except: 23 | default = True 24 | 25 | loggeractive = (config.get_setting("debug")=="true") 26 | 27 | def log_enable(active): 28 | global loggeractive 29 | loggeractive = active 30 | 31 | def info(texto): 32 | if loggeractive: 33 | if not default: 34 | platformlogger.info(texto) 35 | else: 36 | print texto 37 | 38 | def debug(texto): 39 | if loggeractive: 40 | if not default: 41 | platformlogger.info(texto) 42 | else: 43 | print texto 44 | 45 | def error(texto): 46 | if loggeractive: 47 | if not default: 48 | platformlogger.info(texto) 49 | else: 50 | print texto 51 | -------------------------------------------------------------------------------- /lib/gdata/tlslite/utils/Cryptlib_AES.py: -------------------------------------------------------------------------------- 1 | """Cryptlib AES implementation.""" 2 | 3 | from cryptomath import * 4 | from AES import * 5 | 6 | if cryptlibpyLoaded: 7 | 8 | def new(key, mode, IV): 9 | return Cryptlib_AES(key, mode, IV) 10 | 11 | class Cryptlib_AES(AES): 12 | 13 | def __init__(self, key, mode, IV): 14 | AES.__init__(self, key, mode, IV, "cryptlib") 15 | self.context = cryptlib_py.cryptCreateContext(cryptlib_py.CRYPT_UNUSED, cryptlib_py.CRYPT_ALGO_AES) 16 | cryptlib_py.cryptSetAttribute(self.context, cryptlib_py.CRYPT_CTXINFO_MODE, cryptlib_py.CRYPT_MODE_CBC) 17 | cryptlib_py.cryptSetAttribute(self.context, cryptlib_py.CRYPT_CTXINFO_KEYSIZE, len(key)) 18 | cryptlib_py.cryptSetAttributeString(self.context, cryptlib_py.CRYPT_CTXINFO_KEY, key) 19 | cryptlib_py.cryptSetAttributeString(self.context, cryptlib_py.CRYPT_CTXINFO_IV, IV) 20 | 21 | def __del__(self): 22 | cryptlib_py.cryptDestroyContext(self.context) 23 | 24 | def encrypt(self, plaintext): 25 | AES.encrypt(self, plaintext) 26 | bytes = stringToBytes(plaintext) 27 | cryptlib_py.cryptEncrypt(self.context, bytes) 28 | return bytesToString(bytes) 29 | 30 | def decrypt(self, ciphertext): 31 | AES.decrypt(self, ciphertext) 32 | bytes = stringToBytes(ciphertext) 33 | cryptlib_py.cryptDecrypt(self.context, bytes) 34 | return bytesToString(bytes) 35 | -------------------------------------------------------------------------------- /lib/mechanize/_urllib2.py: -------------------------------------------------------------------------------- 1 | # urllib2 work-alike interface 2 | # ...from urllib2... 3 | from urllib2 import \ 4 | URLError, \ 5 | HTTPError 6 | # ...and from mechanize 7 | from _auth import \ 8 | HTTPProxyPasswordMgr, \ 9 | HTTPSClientCertMgr 10 | from _debug import \ 11 | HTTPResponseDebugProcessor, \ 12 | HTTPRedirectDebugProcessor 13 | # crap ATM 14 | ## from _gzip import \ 15 | ## HTTPGzipProcessor 16 | from _urllib2_fork import \ 17 | AbstractBasicAuthHandler, \ 18 | AbstractDigestAuthHandler, \ 19 | BaseHandler, \ 20 | CacheFTPHandler, \ 21 | FileHandler, \ 22 | FTPHandler, \ 23 | HTTPBasicAuthHandler, \ 24 | HTTPCookieProcessor, \ 25 | HTTPDefaultErrorHandler, \ 26 | HTTPDigestAuthHandler, \ 27 | HTTPErrorProcessor, \ 28 | HTTPHandler, \ 29 | HTTPPasswordMgr, \ 30 | HTTPPasswordMgrWithDefaultRealm, \ 31 | HTTPRedirectHandler, \ 32 | ProxyBasicAuthHandler, \ 33 | ProxyDigestAuthHandler, \ 34 | ProxyHandler, \ 35 | UnknownHandler 36 | from _http import \ 37 | HTTPEquivProcessor, \ 38 | HTTPRefererProcessor, \ 39 | HTTPRefreshProcessor, \ 40 | HTTPRobotRulesProcessor, \ 41 | RobotExclusionError 42 | import httplib 43 | if hasattr(httplib, 'HTTPS'): 44 | from _urllib2_fork import HTTPSHandler 45 | del httplib 46 | from _opener import OpenerDirector, \ 47 | SeekableResponseOpener, \ 48 | build_opener, install_opener, urlopen 49 | from _request import \ 50 | Request 51 | -------------------------------------------------------------------------------- /platformcode/xbmcgotham/logger.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # Logger multiplataforma 4 | #------------------------------------------------------------ 5 | # pelisalacarta 6 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 7 | #------------------------------------------------------------ 8 | # Creado por: Jesús (tvalacarta@gmail.com) 9 | # Licencia: GPL (http://www.gnu.org/licenses/gpl-3.0.html) 10 | #------------------------------------------------------------ 11 | # Historial de cambios: 12 | #------------------------------------------------------------ 13 | 14 | try: 15 | from core import config 16 | except: 17 | import config 18 | 19 | try: 20 | exec "import platformcode."+config.get_platform()+".logger as platformlogger" 21 | default = False 22 | except: 23 | default = True 24 | 25 | loggeractive = (config.get_setting("debug")=="true") 26 | 27 | def log_enable(active): 28 | global loggeractive 29 | loggeractive = active 30 | 31 | def info(texto): 32 | if loggeractive: 33 | if not default: 34 | platformlogger.info(texto) 35 | else: 36 | print texto 37 | 38 | def debug(texto): 39 | if loggeractive: 40 | if not default: 41 | platformlogger.info(texto) 42 | else: 43 | print texto 44 | 45 | def error(texto): 46 | if loggeractive: 47 | if not default: 48 | platformlogger.info(texto) 49 | else: 50 | print texto 51 | -------------------------------------------------------------------------------- /servers/fiberupload.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta - XBMC Plugin 4 | # Conector para fiberupload 5 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 6 | #------------------------------------------------------------ 7 | 8 | import urlparse,urllib2,urllib,re 9 | import os 10 | 11 | from core import scrapertools 12 | from core import logger 13 | from core import config 14 | 15 | def test_video_exists( page_url ): 16 | return True,"" 17 | 18 | def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): 19 | logger.info("[fiberupload.py] get_video_url(page_url='%s')" % page_url) 20 | video_urls = [] 21 | return video_urls 22 | 23 | # Encuentra vídeos del servidor en el texto pasado 24 | def find_videos(data): 25 | encontrados = set() 26 | devuelve = [] 27 | 28 | #http://fiberupload.com/3jsvp7bm2lcw/Emergo.DVDRip.avi 29 | patronvideos = '(fiberupload.com/[a-z0-9]+)' 30 | logger.info("[fiberupload.py] find_videos #"+patronvideos+"#") 31 | matches = re.compile(patronvideos,re.DOTALL).findall(data) 32 | 33 | for match in matches: 34 | titulo = "[fiberupload]" 35 | url = "http://"+match 36 | if url not in encontrados: 37 | logger.info(" url="+url) 38 | devuelve.append( [ titulo , url , 'fiberupload' ] ) 39 | encontrados.add(url) 40 | else: 41 | logger.info(" url duplicada="+url) 42 | 43 | return devuelve 44 | -------------------------------------------------------------------------------- /servers/vidhog.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta - XBMC Plugin 4 | # Conector para vidhog 5 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 6 | #------------------------------------------------------------ 7 | # TODO: Este no tiene captcha, podría funcionar en free 8 | 9 | import urlparse,urllib2,urllib,re 10 | import os 11 | 12 | from core import scrapertools 13 | from core import logger 14 | from core import config 15 | 16 | def test_video_exists( page_url ): 17 | return True,"" 18 | 19 | def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): 20 | logger.info("[vidhog.py] get_video_url(page_url='%s')" % page_url) 21 | video_urls = [] 22 | return video_urls 23 | 24 | # Encuentra vídeos del servidor en el texto pasado 25 | def find_videos(data): 26 | encontrados = set() 27 | devuelve = [] 28 | 29 | #http://www.vidhog.com/66le51cs9uln 30 | patronvideos = '(vidhog.com/[a-z0-9]+)' 31 | logger.info("[vidhog.py] find_videos #"+patronvideos+"#") 32 | matches = re.compile(patronvideos,re.DOTALL).findall(data) 33 | 34 | for match in matches: 35 | titulo = "[vidhog]" 36 | url = "http://www."+match 37 | if url not in encontrados: 38 | logger.info(" url="+url) 39 | devuelve.append( [ titulo , url , 'vidhog' ] ) 40 | encontrados.add(url) 41 | else: 42 | logger.info(" url duplicada="+url) 43 | 44 | return devuelve 45 | -------------------------------------------------------------------------------- /servers/filereactor.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta - XBMC Plugin 4 | # Conector para filereactor 5 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 6 | #------------------------------------------------------------ 7 | 8 | import urlparse,urllib2,urllib,re 9 | import os 10 | 11 | from core import scrapertools 12 | from core import logger 13 | from core import config 14 | 15 | def test_video_exists( page_url ): 16 | return True,"" 17 | 18 | def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): 19 | logger.info("[filereactor.py] get_video_url(page_url='%s')" % page_url) 20 | video_urls = [] 21 | return video_urls 22 | 23 | # Encuentra vídeos del servidor en el texto pasado 24 | def find_videos(data): 25 | encontrados = set() 26 | devuelve = [] 27 | 28 | #http://www.filereactor.com/zs8ob7o2lix6/Copito.Nieve.HDR.Rodri.part1.rar.html 29 | patronvideos = '(filereactor.com/[a-z0-9]+)' 30 | logger.info("[filereactor.py] find_videos #"+patronvideos+"#") 31 | matches = re.compile(patronvideos,re.DOTALL).findall(data) 32 | 33 | for match in matches: 34 | titulo = "[filereactor]" 35 | url = "http://www."+match 36 | if url not in encontrados: 37 | logger.info(" url="+url) 38 | devuelve.append( [ titulo , url , 'filereactor' ] ) 39 | encontrados.add(url) 40 | else: 41 | logger.info(" url duplicada="+url) 42 | 43 | return devuelve 44 | -------------------------------------------------------------------------------- /lib/gdata/tlslite/utils/Cryptlib_TripleDES.py: -------------------------------------------------------------------------------- 1 | """Cryptlib 3DES implementation.""" 2 | 3 | from cryptomath import * 4 | 5 | from TripleDES import * 6 | 7 | if cryptlibpyLoaded: 8 | 9 | def new(key, mode, IV): 10 | return Cryptlib_TripleDES(key, mode, IV) 11 | 12 | class Cryptlib_TripleDES(TripleDES): 13 | 14 | def __init__(self, key, mode, IV): 15 | TripleDES.__init__(self, key, mode, IV, "cryptlib") 16 | self.context = cryptlib_py.cryptCreateContext(cryptlib_py.CRYPT_UNUSED, cryptlib_py.CRYPT_ALGO_3DES) 17 | cryptlib_py.cryptSetAttribute(self.context, cryptlib_py.CRYPT_CTXINFO_MODE, cryptlib_py.CRYPT_MODE_CBC) 18 | cryptlib_py.cryptSetAttribute(self.context, cryptlib_py.CRYPT_CTXINFO_KEYSIZE, len(key)) 19 | cryptlib_py.cryptSetAttributeString(self.context, cryptlib_py.CRYPT_CTXINFO_KEY, key) 20 | cryptlib_py.cryptSetAttributeString(self.context, cryptlib_py.CRYPT_CTXINFO_IV, IV) 21 | 22 | def __del__(self): 23 | cryptlib_py.cryptDestroyContext(self.context) 24 | 25 | def encrypt(self, plaintext): 26 | TripleDES.encrypt(self, plaintext) 27 | bytes = stringToBytes(plaintext) 28 | cryptlib_py.cryptEncrypt(self.context, bytes) 29 | return bytesToString(bytes) 30 | 31 | def decrypt(self, ciphertext): 32 | TripleDES.decrypt(self, ciphertext) 33 | bytes = stringToBytes(ciphertext) 34 | cryptlib_py.cryptDecrypt(self.context, bytes) 35 | return bytesToString(bytes) -------------------------------------------------------------------------------- /core/ClientCookie/_Debug.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | import ClientCookie 4 | 5 | try: 6 | import warnings 7 | except ImportError: 8 | def warn(text): 9 | ClientCookie.WARNINGS_STREAM.write("WARNING: "+text) 10 | else: 11 | def warn(text): 12 | warnings.warn(text, stacklevel=2) 13 | 14 | try: 15 | import logging 16 | except: 17 | NOTSET = None 18 | INFO = 20 19 | DEBUG = 10 20 | class NullHandler: 21 | def write(self, data): pass 22 | class Logger: 23 | def __init__(self): 24 | self.level = NOTSET 25 | self.handler = NullHandler() 26 | def log(self, level, text, *args): 27 | if args: 28 | text = text % args 29 | if self.level is not None and level <= self.level: 30 | self.handler.write(text+"\n") 31 | def debug(self, text, *args): 32 | apply(self.log, (DEBUG, text)+args) 33 | def info(self, text, *args): 34 | apply(self.log, (INFO, text)+args) 35 | def setLevel(self, lvl): 36 | self.level = lvl 37 | def addHandler(self, handler): 38 | self.handler = handler 39 | LOGGER = Logger() 40 | def getLogger(name): return LOGGER 41 | class StreamHandler: 42 | def __init__(self, strm=None): 43 | if not strm: 44 | strm = sys.stderr 45 | self.stream = strm 46 | def write(self, data): 47 | self.stream.write(data) 48 | else: 49 | from logging import getLogger, StreamHandler, INFO, DEBUG, NOTSET 50 | -------------------------------------------------------------------------------- /platformcode/xbmc/logger.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # Módulo de logging - xbmc 4 | #------------------------------------------------------------ 5 | # pelisalacarta 6 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 7 | #------------------------------------------------------------ 8 | # Creado por: Jesús (tvalacarta@gmail.com) 9 | # Licencia: GPL (http://www.gnu.org/licenses/gpl-3.0.html) 10 | #------------------------------------------------------------ 11 | # Historial de cambios: 12 | #------------------------------------------------------------ 13 | 14 | import xbmc 15 | 16 | def info(texto): 17 | try: 18 | xbmc.output(texto) 19 | except: 20 | validchars = " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890!#$%&'()-@[]^_`{}~." 21 | stripped = ''.join(c for c in texto if c in validchars) 22 | xbmc.output("(stripped) "+stripped) 23 | 24 | def debug(texto): 25 | try: 26 | xbmc.output(texto) 27 | except: 28 | validchars = " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890!#$%&'()-@[]^_`{}~." 29 | stripped = ''.join(c for c in texto if c in validchars) 30 | xbmc.output("(stripped) "+stripped) 31 | 32 | def error(texto): 33 | try: 34 | xbmc.output(texto) 35 | except: 36 | validchars = " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890!#$%&'()-@[]^_`{}~." 37 | stripped = ''.join(c for c in texto if c in validchars) 38 | xbmc.output("(stripped) "+stripped) 39 | -------------------------------------------------------------------------------- /servers/turbobit.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta - XBMC Plugin 4 | # Conector para turbobit 5 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 6 | #------------------------------------------------------------ 7 | 8 | import urlparse,urllib2,urllib,re 9 | import os 10 | 11 | from core import scrapertools 12 | from core import logger 13 | from core import config 14 | 15 | def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): 16 | logger.info("[turbobit.py] get_video_url(page_url='%s')" % page_url) 17 | video_urls = [] 18 | return video_urls 19 | 20 | # Encuentra vídeos del servidor en el texto pasado 21 | def find_videos(data): 22 | encontrados = set() 23 | devuelve = [] 24 | 25 | # http://turbobit.net/scz8lxrrgllr.html 26 | # http://www.turbobit.net/uzo3gcyfmt4b.html 27 | # http://turbobit.net/eaz9ha3gop65/deadliest.catch.s08e09-killers.mp4.html 28 | patronvideos = '(turbobit.net/[0-9a-z]+)' 29 | logger.info("[turbobit.py] find_videos #"+patronvideos+"#") 30 | matches = re.compile(patronvideos,re.DOTALL).findall(data) 31 | 32 | for match in matches: 33 | titulo = "[turbobit]" 34 | url = "http://"+match+".html" 35 | if url not in encontrados: 36 | logger.info(" url="+url) 37 | devuelve.append( [ titulo , url , 'turbobit' ] ) 38 | encontrados.add(url) 39 | else: 40 | logger.info(" url duplicada="+url) 41 | 42 | return devuelve 43 | -------------------------------------------------------------------------------- /servers/shareflare.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta - XBMC Plugin 4 | # Conector para shareflare 5 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 6 | #------------------------------------------------------------ 7 | 8 | import urlparse,urllib2,urllib,re 9 | import os 10 | 11 | from core import scrapertools 12 | from core import logger 13 | from core import config 14 | 15 | def test_video_exists( page_url ): 16 | return True,"" 17 | 18 | def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): 19 | logger.info("[shareflare.py] get_video_url(page_url='%s')" % page_url) 20 | video_urls = [] 21 | return video_urls 22 | 23 | # Encuentra vídeos del servidor en el texto pasado 24 | def find_videos(data): 25 | encontrados = set() 26 | devuelve = [] 27 | 28 | #http://shareflare.net/download/99094.9feafdcc1fa511c89ea775cd862f/Emergo.dvdrip.avi.html 29 | patronvideos = '(shareflare.net/download/[a-zA-Z0-9\.\/]+\.html)' 30 | logger.info("[shareflare.py] find_videos #"+patronvideos+"#") 31 | matches = re.compile(patronvideos,re.DOTALL).findall(data) 32 | 33 | for match in matches: 34 | titulo = "[shareflare]" 35 | url = "http://"+match 36 | if url not in encontrados: 37 | logger.info(" url="+url) 38 | devuelve.append( [ titulo , url , 'shareflare' ] ) 39 | encontrados.add(url) 40 | else: 41 | logger.info(" url duplicada="+url) 42 | 43 | return devuelve 44 | -------------------------------------------------------------------------------- /servers/rapidgator.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta - XBMC Plugin 4 | # Conector para rapidgator 5 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 6 | #------------------------------------------------------------ 7 | 8 | import urlparse,urllib2,urllib,re 9 | import os 10 | 11 | from core import scrapertools 12 | from core import logger 13 | from core import config 14 | 15 | def test_video_exists( page_url ): 16 | return True,"" 17 | 18 | def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): 19 | logger.info("[rapidgator.py] get_video_url(page_url='%s')" % page_url) 20 | video_urls = [] 21 | return video_urls 22 | 23 | # Encuentra vídeos del servidor en el texto pasado 24 | def find_videos(data): 25 | encontrados = set() 26 | devuelve = [] 27 | 28 | #http://rapidgator.net/file/10126555/ElBatallon-byjerobien.avi.html 29 | #http://rapidgator.net/file/15437757 30 | patronvideos = '(rapidgator.net/file/.*?\.html)' 31 | logger.info("[rapidgator.py] find_videos #"+patronvideos+"#") 32 | matches = re.compile(patronvideos,re.DOTALL).findall(data) 33 | 34 | for match in matches: 35 | titulo = "[rapidgator]" 36 | url = "http://"+match 37 | if url not in encontrados: 38 | logger.info(" url="+url) 39 | devuelve.append( [ titulo , url , 'rapidgator' ] ) 40 | encontrados.add(url) 41 | else: 42 | logger.info(" url duplicada="+url) 43 | 44 | return devuelve 45 | -------------------------------------------------------------------------------- /lib/elementtree/__init__.py: -------------------------------------------------------------------------------- 1 | # $Id: __init__.py 1821 2004-06-03 16:57:49Z fredrik $ 2 | # elementtree package 3 | 4 | # -------------------------------------------------------------------- 5 | # The ElementTree toolkit is 6 | # 7 | # Copyright (c) 1999-2004 by Fredrik Lundh 8 | # 9 | # By obtaining, using, and/or copying this software and/or its 10 | # associated documentation, you agree that you have read, understood, 11 | # and will comply with the following terms and conditions: 12 | # 13 | # Permission to use, copy, modify, and distribute this software and 14 | # its associated documentation for any purpose and without fee is 15 | # hereby granted, provided that the above copyright notice appears in 16 | # all copies, and that both that copyright notice and this permission 17 | # notice appear in supporting documentation, and that the name of 18 | # Secret Labs AB or the author not be used in advertising or publicity 19 | # pertaining to distribution of the software without specific, written 20 | # prior permission. 21 | # 22 | # SECRET LABS AB AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD 23 | # TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANT- 24 | # ABILITY AND FITNESS. IN NO EVENT SHALL SECRET LABS AB OR THE AUTHOR 25 | # BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY 26 | # DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 27 | # WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS 28 | # ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 29 | # OF THIS SOFTWARE. 30 | # -------------------------------------------------------------------- 31 | -------------------------------------------------------------------------------- /servers/sharpfile.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta - XBMC Plugin 4 | # Conector para sharpfile 5 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 6 | #------------------------------------------------------------ 7 | 8 | import urlparse,urllib2,urllib,re 9 | import os 10 | 11 | from core import scrapertools 12 | from core import logger 13 | from core import config 14 | 15 | def test_video_exists( page_url ): 16 | logger.info("[sharpfile.py] test_video_exists(page_url='%s')" % page_url) 17 | 18 | return True,"" 19 | 20 | def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): 21 | logger.info("[sharpfile.py] get_video_url(page_url='%s')" % page_url) 22 | video_urls = [] 23 | return video_urls 24 | 25 | # Encuentra vídeos del servidor en el texto pasado 26 | def find_videos(data): 27 | encontrados = set() 28 | devuelve = [] 29 | 30 | #http://www.sharpfile.com/8fgbj6dtq4xc/house.05x19.pionnerdj.avi.html 31 | patronvideos = "http://(www.sharpfile.com/.*?\.html)" 32 | logger.info("[sharpfile.py] find_videos #"+patronvideos+"#") 33 | matches = re.compile(patronvideos,re.DOTALL).findall(data) 34 | for match in matches: 35 | titulo = "[sharpfile]" 36 | url = "http://"+match 37 | if url not in encontrados: 38 | logger.info(" url="+url) 39 | devuelve.append( [ titulo , url , 'sharpfile' ] ) 40 | encontrados.add(url) 41 | else: 42 | logger.info(" url duplicada="+url) 43 | 44 | return devuelve 45 | -------------------------------------------------------------------------------- /core/ClientCookie/COPYING: -------------------------------------------------------------------------------- 1 | Copyright (c) 2002-2004 John J. Lee 2 | Copyright (c) 1997-1999 Gisle Aas 3 | Copyright (c) 1997-1999 Johnny Lee 4 | 5 | All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without 8 | modification, are permitted provided that the following conditions are 9 | met: 10 | 11 | Redistributions of source code must retain the above copyright notice, 12 | this list of conditions and the following disclaimer. 13 | 14 | Redistributions in binary form must reproduce the above copyright 15 | notice, this list of conditions and the following disclaimer in the 16 | documentation and/or other materials provided with the distribution. 17 | 18 | Neither the name of the contributors nor the names of their employers 19 | may be used to endorse or promote products derived from this software 20 | without specific prior written permission. 21 | 22 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 23 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 24 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 25 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 26 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 27 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 28 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 29 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 30 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 31 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 32 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 33 | -------------------------------------------------------------------------------- /pelisalacarta/channels/tengourl.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta - XBMC Plugin 4 | # Canal para ver un vídeo conociendo su URL 5 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 6 | #------------------------------------------------------------ 7 | import urlparse,urllib2,urllib,re 8 | import os 9 | import sys 10 | 11 | from core import scrapertools 12 | from core import config 13 | from core import logger 14 | from core.item import Item 15 | from servers import servertools 16 | 17 | __channel__ = "tengourl" 18 | __category__ = "G" 19 | __type__ = "generic" 20 | __title__ = "tengourl" 21 | __language__ = "" 22 | 23 | DEBUG = config.get_setting("debug") 24 | 25 | def isGeneric(): 26 | return True 27 | 28 | def mainlist(item): 29 | logger.info("[tengourl.py] mainlist") 30 | 31 | itemlist = [] 32 | itemlist.append( Item(channel=__channel__, action="search", title="Entra aquí y teclea la URL")) 33 | 34 | return itemlist 35 | 36 | # Al llamarse "search" la función, el launcher pide un texto a buscar y lo añade como parámetro 37 | def search(item,texto): 38 | logger.info("[tengourl.py] search texto="+texto) 39 | 40 | if not texto.startswith("http://"): 41 | texto = "http://"+texto 42 | 43 | itemlist = [] 44 | 45 | itemlist = servertools.find_video_items(data=texto) 46 | for item in itemlist: 47 | item.channel=__channel__ 48 | item.action="play" 49 | 50 | if len(itemlist)==0: 51 | itemlist.append( Item(channel=__channel__, action="search", title="No hay ningún vídeo compatible en esa URL")) 52 | 53 | return itemlist 54 | 55 | def test(): 56 | return True -------------------------------------------------------------------------------- /lib/mechanize/_request.py: -------------------------------------------------------------------------------- 1 | """Integration with Python standard library module urllib2: Request class. 2 | 3 | Copyright 2004-2006 John J Lee 4 | 5 | This code is free software; you can redistribute it and/or modify it 6 | under the terms of the BSD or ZPL 2.1 licenses (see the file 7 | COPYING.txt included with the distribution). 8 | 9 | """ 10 | 11 | import logging 12 | 13 | import _rfc3986 14 | import _sockettimeout 15 | import _urllib2_fork 16 | 17 | warn = logging.getLogger("mechanize").warning 18 | 19 | 20 | class Request(_urllib2_fork.Request): 21 | def __init__(self, url, data=None, headers={}, 22 | origin_req_host=None, unverifiable=False, visit=None, 23 | timeout=_sockettimeout._GLOBAL_DEFAULT_TIMEOUT): 24 | # In mechanize 0.2, the interpretation of a unicode url argument will 25 | # change: A unicode url argument will be interpreted as an IRI, and a 26 | # bytestring as a URI. For now, we accept unicode or bytestring. We 27 | # don't insist that the value is always a URI (specifically, must only 28 | # contain characters which are legal), because that might break working 29 | # code (who knows what bytes some servers want to see, especially with 30 | # browser plugins for internationalised URIs). 31 | if not _rfc3986.is_clean_uri(url): 32 | warn("url argument is not a URI " 33 | "(contains illegal characters) %r" % url) 34 | _urllib2_fork.Request.__init__(self, url, data, headers) 35 | self.selector = None 36 | self.visit = visit 37 | self.timeout = timeout 38 | 39 | def __str__(self): 40 | return "" % self.get_full_url() 41 | -------------------------------------------------------------------------------- /servers/vureel.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta - XBMC Plugin 4 | # Conector para vureel 5 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 6 | #------------------------------------------------------------ 7 | # TODO: Este no tiene captcha, podría funcionar en free 8 | 9 | import urlparse,urllib2,urllib,re 10 | import os 11 | 12 | from core import scrapertools 13 | from core import logger 14 | from core import config 15 | 16 | def test_video_exists( page_url ): 17 | return True,"" 18 | 19 | def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): 20 | logger.info("[vureel.py] get_video_url(page_url='%s')" % page_url) 21 | 22 | data = scrapertools.cache_page(page_url) 23 | location = scrapertools.get_match(data,'file\: "([^"]+)"') 24 | 25 | video_urls = [] 26 | video_urls.append( [ scrapertools.get_filename_from_url(location)[-4:] + " [vureel]",location ] ) 27 | 28 | return video_urls 29 | 30 | # Encuentra vídeos del servidor en el texto pasado 31 | def find_videos(data): 32 | encontrados = set() 33 | devuelve = [] 34 | 35 | #hhttp://www.vureel.com/video/49204 36 | patronvideos = '(vureel.com/video/\d+)' 37 | logger.info("[vureel.py] find_videos #"+patronvideos+"#") 38 | matches = re.compile(patronvideos,re.DOTALL).findall(data) 39 | 40 | for match in matches: 41 | titulo = "[vureel]" 42 | url = "http://www."+match 43 | if url not in encontrados: 44 | logger.info(" url="+url) 45 | devuelve.append( [ titulo , url , 'vureel' ] ) 46 | encontrados.add(url) 47 | else: 48 | logger.info(" url duplicada="+url) 49 | 50 | return devuelve 51 | -------------------------------------------------------------------------------- /servers/rapidshare.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta - XBMC Plugin 4 | # Conector para rapidshare 5 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 6 | #------------------------------------------------------------ 7 | 8 | import urlparse,urllib2,urllib,re 9 | import os 10 | 11 | from core import scrapertools 12 | from core import logger 13 | from core import config 14 | 15 | def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): 16 | logger.info("[rapidshare.py] get_video_url(page_url='%s')" % page_url) 17 | video_urls = [] 18 | return video_urls 19 | 20 | # Encuentra vídeos del servidor en el texto pasado 21 | def find_videos(data): 22 | encontrados = set() 23 | devuelve = [] 24 | 25 | # https://rapidshare.com/files/3346009389/_BiW__Last_Exile_Ginyoku_no_Fam_-_Episodio_09__A68583B1_.mkv 26 | # "https://rapidshare.com/files/3346009389/_BiW__Last_Exile_Ginyoku_no_Fam_-_Episodio_09__A68583B1_.mkv" 27 | # http://rapidshare.com/files/2327495081/Camino.Sangriento.4.HDR.Proper.200Ro.dri.part5.rar 28 | # https://rapidshare.com/files/715435909/Salmon.Fishing.in.the.Yemen.2012.720p.UNSOLOCLIC.INFO.mkv 29 | patronvideos = '(rapidshare.com/files/[0-9]+/.*?)["|<]' 30 | logger.info("[rapidshare.py] find_videos #"+patronvideos+"#") 31 | matches = re.compile(patronvideos,re.DOTALL).findall(data+'"') 32 | 33 | for match in matches: 34 | titulo = "[rapidshare]" 35 | url = "http://"+match 36 | if url not in encontrados: 37 | logger.info(" url="+url) 38 | devuelve.append( [ titulo , url , 'rapidshare' ] ) 39 | encontrados.add(url) 40 | else: 41 | logger.info(" url duplicada="+url) 42 | 43 | return devuelve 44 | -------------------------------------------------------------------------------- /servers/zinwa.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta - XBMC Plugin 4 | # Conector para zinwa 5 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 6 | #------------------------------------------------------------ 7 | 8 | import urlparse,urllib2,urllib,re 9 | import os 10 | 11 | from core import scrapertools 12 | from core import logger 13 | from core import config 14 | 15 | def test_video_exists( page_url ): 16 | return True,"" 17 | 18 | def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): 19 | logger.info("[zinwa.py] get_video_url(page_url='%s')" % page_url) 20 | video_urls = [] 21 | 22 | data = scrapertools.cache_page(page_url) 23 | mediaurl = scrapertools.get_match(data,'file\: "([^"]+)"') 24 | extension = scrapertools.get_filename_from_url(mediaurl)[-4:] 25 | 26 | video_urls.append( [ extension + " [zinwa]",mediaurl ] ) 27 | 28 | return video_urls 29 | 30 | # Encuentra vídeos del servidor en el texto pasado 31 | def find_videos(data): 32 | encontrados = set() 33 | devuelve = [] 34 | 35 | #http://zinwa.com/frap5b3uhesl 36 | patronvideos = '(zinwa.com/[a-z0-9]+)' 37 | logger.info("[zinwa.py] find_videos #"+patronvideos+"#") 38 | matches = re.compile(patronvideos,re.DOTALL).findall(data) 39 | 40 | for match in matches: 41 | titulo = "[zinwa]" 42 | url = "http://"+match 43 | if url not in encontrados: 44 | logger.info(" url="+url) 45 | devuelve.append( [ titulo , url , 'zinwa' ] ) 46 | encontrados.add(url) 47 | else: 48 | logger.info(" url duplicada="+url) 49 | 50 | return devuelve 51 | 52 | def test(): 53 | video_urls = get_video_url("http://zinwa.com/frap5b3uhesl") 54 | return len(video_urls)>0 -------------------------------------------------------------------------------- /lib/gdata/tlslite/utils/OpenSSL_TripleDES.py: -------------------------------------------------------------------------------- 1 | """OpenSSL/M2Crypto 3DES implementation.""" 2 | 3 | from cryptomath import * 4 | from TripleDES import * 5 | 6 | if m2cryptoLoaded: 7 | 8 | def new(key, mode, IV): 9 | return OpenSSL_TripleDES(key, mode, IV) 10 | 11 | class OpenSSL_TripleDES(TripleDES): 12 | 13 | def __init__(self, key, mode, IV): 14 | TripleDES.__init__(self, key, mode, IV, "openssl") 15 | self.key = key 16 | self.IV = IV 17 | 18 | def _createContext(self, encrypt): 19 | context = m2.cipher_ctx_new() 20 | cipherType = m2.des_ede3_cbc() 21 | m2.cipher_init(context, cipherType, self.key, self.IV, encrypt) 22 | return context 23 | 24 | def encrypt(self, plaintext): 25 | TripleDES.encrypt(self, plaintext) 26 | context = self._createContext(1) 27 | ciphertext = m2.cipher_update(context, plaintext) 28 | m2.cipher_ctx_free(context) 29 | self.IV = ciphertext[-self.block_size:] 30 | return ciphertext 31 | 32 | def decrypt(self, ciphertext): 33 | TripleDES.decrypt(self, ciphertext) 34 | context = self._createContext(0) 35 | #I think M2Crypto has a bug - it fails to decrypt and return the last block passed in. 36 | #To work around this, we append sixteen zeros to the string, below: 37 | plaintext = m2.cipher_update(context, ciphertext+('\0'*16)) 38 | 39 | #If this bug is ever fixed, then plaintext will end up having a garbage 40 | #plaintext block on the end. That's okay - the below code will ignore it. 41 | plaintext = plaintext[:len(ciphertext)] 42 | m2.cipher_ctx_free(context) 43 | self.IV = ciphertext[-self.block_size:] 44 | return plaintext -------------------------------------------------------------------------------- /pelisalacarta/channels/cuevana.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #------------------------------------------------------------ 3 | # pelisalacarta - XBMC Plugin 4 | # Canal para cuevana 5 | # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ 6 | #------------------------------------------------------------ 7 | import urlparse,urllib2,urllib,re 8 | import os, sys 9 | 10 | from core import logger 11 | from core import config 12 | from core import scrapertools 13 | from core.item import Item 14 | from servers import servertools 15 | 16 | __channel__ = "cuevana" 17 | __category__ = "F,S" 18 | __type__ = "generic" 19 | __title__ = "Cuevana" 20 | __language__ = "ES" 21 | 22 | DEBUG = config.get_setting("debug") 23 | 24 | def isGeneric(): 25 | return True 26 | 27 | def mainlist(item): 28 | logger.info("pelisalacarta.channels.cuevana mainlist") 29 | itemlist = [] 30 | 31 | item.url = "http://cuevana3.com.ar/" 32 | 33 | # Descarga la pagina 34 | data = scrapertools.cache_page(item.url) 35 | #logger.info("data="+data) 36 | 37 | # Extrae las entradas 38 | patron = '