forked from axiom-team/astrXbian
149 lines
5.8 KiB
Python
149 lines
5.8 KiB
Python
|
# -*- coding: utf-8 -*-
|
||
|
# vStream https://github.com/Kodi-vStream/venom-xbmc-addons
|
||
|
import xbmc
|
||
|
import xbmcgui
|
||
|
|
||
|
from resources.lib.comaddon import progress, addon
|
||
|
from resources.lib.config import GestionCookie
|
||
|
from resources.lib.gui.gui import cGui
|
||
|
from resources.lib.gui.hoster import cHosterGui
|
||
|
from resources.lib.handler.inputParameterHandler import cInputParameterHandler
|
||
|
from resources.lib.handler.outputParameterHandler import cOutputParameterHandler
|
||
|
from resources.lib.handler.premiumHandler import cPremiumHandler
|
||
|
from resources.lib.parser import cParser
|
||
|
|
||
|
SITE_IDENTIFIER = 'siteonefichier'
|
||
|
SITE_NAME = '[COLOR %s]%s[/COLOR]' % ('dodgerblue', 'Compte1fichier')
|
||
|
|
||
|
SITE_DESC = 'Fichiers sur compte 1Fichier'
|
||
|
URL_MAIN = 'https://1fichier.com/'
|
||
|
URL_FILE = URL_MAIN + 'console/files.pl'
|
||
|
URL_REMOTE = URL_MAIN + 'console/remote.pl'
|
||
|
URL_VERIF = URL_MAIN + 'check_links.pl?links[]='
|
||
|
|
||
|
|
||
|
def load():
|
||
|
addons = addon()
|
||
|
|
||
|
if (addons.getSetting('hoster_onefichier_username') == '') and (addons.getSetting('hoster_onefichier_password') == ''):
|
||
|
oGui = cGui()
|
||
|
oGui.addText(SITE_IDENTIFIER, '[COLOR %s]%s[/COLOR]' % ('red', 'Nécessite un Compte 1Fichier Premium ou Gratuit'))
|
||
|
|
||
|
oOutputParameterHandler = cOutputParameterHandler()
|
||
|
oOutputParameterHandler.addParameter('siteUrl', 'http://venom/')
|
||
|
oGui.addDir(SITE_IDENTIFIER, 'opensetting', addons.VSlang(30023), 'none.png', oOutputParameterHandler)
|
||
|
oGui.setEndOfDirectory()
|
||
|
else:
|
||
|
if (GestionCookie().Readcookie('onefichier') != ''):
|
||
|
showFile(URL_FILE)
|
||
|
|
||
|
else:
|
||
|
oPremiumHandler = cPremiumHandler('onefichier')
|
||
|
Connection = oPremiumHandler.Authentificate()
|
||
|
if (Connection == False):
|
||
|
oGui = cGui()
|
||
|
oGui.addText(SITE_IDENTIFIER, '[COLOR %s]%s[/COLOR]' % ('red', 'Connexion refusée'))
|
||
|
oGui.setEndOfDirectory()
|
||
|
|
||
|
else:
|
||
|
showFile(URL_FILE)
|
||
|
|
||
|
|
||
|
def opensetting():
|
||
|
addon().openSettings()
|
||
|
|
||
|
|
||
|
def showFile(sFileTree=''):
|
||
|
oGui = cGui()
|
||
|
oInputParameterHandler = cInputParameterHandler()
|
||
|
# sUrl = oInputParameterHandler.getValue('siteUrl')
|
||
|
if (oInputParameterHandler.exist('siteUrl')):
|
||
|
sUrl = oInputParameterHandler.getValue('siteUrl')
|
||
|
|
||
|
if sFileTree:
|
||
|
sUrl = sFileTree
|
||
|
|
||
|
oPremiumHandler = cPremiumHandler('onefichier')
|
||
|
|
||
|
sHtmlContent = oPremiumHandler.GetHtml(sUrl)
|
||
|
|
||
|
oParser = cParser()
|
||
|
sPattern = '((?:|directory")) *rel="([^"]+)"><div class="dF"><a href="#" onclick="return false">(.+?)</a>'
|
||
|
aResult = oParser.parse(sHtmlContent, sPattern)
|
||
|
if (aResult[0] == True):
|
||
|
total = len(aResult[1])
|
||
|
progress_ = progress().VScreate(SITE_NAME)
|
||
|
|
||
|
for aEntry in aResult[1]:
|
||
|
progress_.VSupdate(progress_, total)
|
||
|
if progress_.iscanceled():
|
||
|
break
|
||
|
|
||
|
if aEntry[0]:
|
||
|
oOutputParameterHandler = cOutputParameterHandler()
|
||
|
oOutputParameterHandler.addParameter('siteUrl', '%s%s%s%s' % (URL_FILE, '?dir_id=', aEntry[1], '&oby=0&search='))
|
||
|
oOutputParameterHandler.addParameter('sTitle', aEntry[2])
|
||
|
oGui.addDir(SITE_IDENTIFIER, 'showFile', aEntry[2], 'genres.png', oOutputParameterHandler)
|
||
|
|
||
|
else:
|
||
|
oOutputParameterHandler = cOutputParameterHandler()
|
||
|
oOutputParameterHandler.addParameter('siteUrl', '%s%s' % (URL_MAIN, 'console/link.pl'))
|
||
|
oOutputParameterHandler.addParameter('sCode', aEntry[1])
|
||
|
oOutputParameterHandler.addParameter('sTitle', aEntry[2])
|
||
|
oGui.addDir(SITE_IDENTIFIER, 'showHosters', aEntry[2], 'genres.png', oOutputParameterHandler)
|
||
|
|
||
|
progress_.VSclose(progress_)
|
||
|
|
||
|
oGui.setEndOfDirectory()
|
||
|
|
||
|
|
||
|
def showHosters():
|
||
|
oGui = cGui()
|
||
|
oParser = cParser()
|
||
|
oInputParameterHandler = cInputParameterHandler()
|
||
|
sUrl = oInputParameterHandler.getValue('siteUrl')
|
||
|
sTitle = oInputParameterHandler.getValue('sTitle')
|
||
|
sCode = oInputParameterHandler.getValue('sCode')
|
||
|
|
||
|
oPremiumHandler = cPremiumHandler('onefichier')
|
||
|
sHtmlContent = oPremiumHandler.GetHtml(sUrl, 'selected%5B%5D=' + sCode)
|
||
|
|
||
|
sPattern = '<a href="([^"]+)">(.+?)</a></td>'
|
||
|
aResult = oParser.parse(sHtmlContent, sPattern)
|
||
|
if (aResult[0] == True):
|
||
|
sHosterUrl = aResult[1][0][0]
|
||
|
sTitle = aResult[1][0][1]
|
||
|
|
||
|
oHoster = cHosterGui().checkHoster(sHosterUrl)
|
||
|
if (oHoster != False):
|
||
|
oHoster.setDisplayName(sTitle)
|
||
|
oHoster.setFileName(sTitle)
|
||
|
cHosterGui().showHoster(oGui, oHoster, sHosterUrl, '')
|
||
|
|
||
|
oGui.setEndOfDirectory()
|
||
|
|
||
|
|
||
|
def UptomyAccount():
|
||
|
oInputParameterHandler = cInputParameterHandler()
|
||
|
sMediaUrl = oInputParameterHandler.getValue('sMediaUrl')
|
||
|
|
||
|
oPremiumHandler = cPremiumHandler('onefichier')
|
||
|
# verif du lien
|
||
|
sHtmlContent = oPremiumHandler.GetHtml('%s' % (URL_VERIF + sMediaUrl))
|
||
|
if (sHtmlContent):
|
||
|
sCheck = sHtmlContent.find('NOT FOUND')
|
||
|
if sCheck != -1:
|
||
|
# penible ce dialog auth
|
||
|
xbmc.executebuiltin('Dialog.Close(all,true)')
|
||
|
xbmcgui.Dialog().notification('Info upload', 'Fichier introuvable', xbmcgui.NOTIFICATION_INFO, 2000, False)
|
||
|
|
||
|
else:
|
||
|
# si liens ok >> requete
|
||
|
sHtmlContent = oPremiumHandler.GetHtml(URL_REMOTE, '%s%s%s' % ('links=', sMediaUrl, '&did=0'))
|
||
|
if (sHtmlContent):
|
||
|
sCheck = sHtmlContent.find('1 liens')
|
||
|
if sCheck != -1:
|
||
|
# penible ce dialog auth
|
||
|
xbmc.executebuiltin('Dialog.Close(all,true)')
|
||
|
xbmcgui.Dialog().notification('Info upload', 'Ajouter à votre compte', xbmcgui.NOTIFICATION_INFO, 2000, False)
|