forked from Kodi-vStream/venom-xbmc-addons
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ajouter_un_hebergeur.py
149 lines (120 loc) · 4.54 KB
/
ajouter_un_hebergeur.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
#-*- coding: utf-8 -*-
#Auteur
from resources.lib.handler.requestHandler import cRequestHandler #requete url
from resources.lib.parser import cParser #recherche de code
from resources.lib.config import cConfig #config
from resources.lib.gui.gui import cGui #systeme d'affichage pour xbmc
from resources.hosters.hoster import iHoster
#from resources.lib.util import cUtil #Autres fonctions utiles
#AAdecoder
#from resources.lib.aadecode import AADecoder
#Cpaker decoder
#from resources.lib.packer import cPacker
#Jdecoder
#from resources.lib.jjdecode import JJDecoder
#Si premium
#from resources.lib.handler.premiumHandler import cPremiumHandler
#Ne garder que celles qui vous servent
import re,urllib2,urllib
import xbmcgui,xbmc
class cHoster(iHoster):
def __init__(self):
#Nom a afficher dans Vstream
self.__sDisplayName = 'Nouvel hebergeur'
self.__sFileName = self.__sDisplayName
self.__sHD = ''
def getDisplayName(self):
return self.__sDisplayName
def setDisplayName(self, sDisplayName):
self.__sDisplayName = sDisplayName + ' [COLOR skyblue]'+self.__sDisplayName+'[/COLOR]'
#facultatif mais a laisser pour compatibilitee
def setFileName(self, sFileName):
self.__sFileName = sFileName
#facultatif mais a laisser pour compatibilitee
def getFileName(self):
return self.__sFileName
def getPluginIdentifier(self):
#Nom du fichier exact sans .py
return 'ajouter_un_hebergeur'
#facultatif mais a laisser pour compatibilitee
def setHD(self, sHD):
self.__sHD = ''
#facultatif mais a laisser pour compatibilitee
def getHD(self):
return self.__sHD
#Telechargement possible ou pas sur ce host ?
def isDownloadable(self):
return True
#Ne sert plus
def isJDownloaderable(self):
return True
#facultatif mais a laisser pour compatibilitee
def getPattern(self):
return ''
#facultatif mais a laisser pour compatibilitee
def __getIdFromUrl(self, sUrl):
sPattern = "id=([^<]+)"
oParser = cParser()
aResult = oParser.parse(sUrl, sPattern)
if (aResult[0] == True):
return aResult[1][0]
return ''
#premiere fonction utilisee, memorise le lien
def setUrl(self, sUrl):
self.__sUrl = str(sUrl)
#self.__sUrl = self.__sUrl.replace('https://', 'http://')
#facultatif mais a laisser pour compatibilitee
def checkUrl(self, sUrl):
return True
#facultatif mais a laisser pour compatibilitee
def __getUrl(self, media_id):
return
#Fonction appelle par Vstream pour avoir le lien decode
def getMediaLink(self):
return self.__getMediaLinkForGuest()
#Extraction du lien et decodage si besoin
def __getMediaLinkForGuest(self):
oRequest = cRequestHandler(self.__sUrl)
#oRequest.addHeaderEntry('Referer','http://www.google.fr/') #Rajoute un header
sHtmlContent = oRequest.request()
oParser = cParser()
sPattern = 'file: *"([^<>"]+?mp4)"'
aResult = oParser.parse(sHtmlContent, sPattern)
api_call = ''
if (aResult[0]):
api_call = aResult[1][0]
if (api_call):
#Rajout d'un header ?
#api_call = api_call + '|User-Agent=Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0'
return True, api_call
else:
cGui().showInfo(self.__sDisplayName, 'Fichier introuvable' , 5)
return False, False
#Attention : Pour fonctionner le nouvel hebergeur doit etre rajoute dans le corps de Vstream, fichier Hosters.py.
#----------------------------------------------------------------------------------------------------------------
#
#Code pour selection de plusieurs liens
#--------------------------------------
#
# url=[]
# qua=[]
#
# for aEntry in aResult[1]:
# url.append(aEntry[0])
# qua.append(aEntry[1])
#
# #Si une seule url
# if len(url) == 1:
# stream_url = url[0]
# #si plus de une
# elif len(url) > 1:
# #Afichage du tableau
# dialog2 = xbmcgui.Dialog()
# ret = dialog2.select('Select Quality',qua)
# if (ret > -1):
# stream_url = url[ret]
# else:
# return False, False
# else:
# return False, False
#