# -*- coding: utf-8 -*- # vStream https://github.com/Kodi-vStream/venom-xbmc-addons import re from resources.lib.gui.hoster import cHosterGui from resources.lib.gui.gui import cGui from resources.lib.handler.inputParameterHandler import cInputParameterHandler from resources.lib.handler.outputParameterHandler import cOutputParameterHandler from resources.lib.handler.requestHandler import cRequestHandler from resources.lib.parser import cParser from resources.lib.comaddon import progress SITE_IDENTIFIER = 'adkami_com' SITE_NAME = 'ADKami' SITE_DESC = 'Bienvenue sur ADKami un site Animés Manga & Série en streaming.' URL_MAIN = 'https://www.adkami.com/' ANIM_ANIMS = ('http://', 'load') ANIM_NEWS = (URL_MAIN + 'anime', 'showMovies') ANIM_LIST = (URL_MAIN + 'video?search=&n=&g=&s=&v=&t=0&p=&order=&d1=&d2=&e=&m=&q=&l=', 'showAZ') ANIM_VIEWS = (URL_MAIN + 'video?search=&t=0&order=3', 'showMovies') SERIE_SERIES = ('http://', 'load') SERIE_NEWS = (URL_MAIN + 'serie', 'showMovies') SERIE_LIST = (URL_MAIN + 'video?search=&n=&g=&s=&v=&t=1&p=&order=&d1=&d2=&e=&m=&q=&l=', 'showAZ') SERIE_VIEWS = (URL_MAIN + 'video?search=&t=1&order=3', 'showMovies') SERIE_DRAMAS = (URL_MAIN + 'drama', 'showMovies') DRAMA_LIST = (URL_MAIN + 'video?search=&n=&g=&s=&v=&t=5&p=&order=&d1=&d2=&e=&m=&q=&l=', 'showAZ') DRAMA_VIEWS = (URL_MAIN + 'video?search=&t=5&order=3', 'showMovies') URL_SEARCH = (URL_MAIN + 'video?search=', 'showMovies') URL_SEARCH_SERIES = (URL_SEARCH[0], 'showMovies') FUNCTION_SEARCH = 'showMovies' def load(): oGui = cGui() oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom/') oGui.addDir(SITE_IDENTIFIER, 'showSearch', 'Recherche', 'search.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', ANIM_LIST[0]) oGui.addDir(SITE_IDENTIFIER, ANIM_LIST[1], 'Animés (Liste)', 'animes.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', ANIM_VIEWS[0]) oGui.addDir(SITE_IDENTIFIER, ANIM_VIEWS[1], 'Animés (Les plus vus)', 'views.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', SERIE_LIST[0]) oGui.addDir(SITE_IDENTIFIER, SERIE_LIST[1], 'Séries (Liste)', 'az.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', SERIE_VIEWS[0]) oGui.addDir(SITE_IDENTIFIER, SERIE_VIEWS[1], 'Séries (Les plus vues)', 'views.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', DRAMA_LIST[0]) oGui.addDir(SITE_IDENTIFIER, DRAMA_LIST[1], 'Dramas (Liste)', 'az.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', DRAMA_VIEWS[0]) oGui.addDir(SITE_IDENTIFIER, DRAMA_VIEWS[1], 'Dramas (Les plus vues)', 'dramas.png', oOutputParameterHandler) oGui.setEndOfDirectory() def showSearch(): oGui = cGui() sSearchText = oGui.showKeyBoard() if (sSearchText != False): sUrl = URL_SEARCH[0] + sSearchText showMovies(sUrl) oGui.setEndOfDirectory() return def showGenre(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sType2 = oInputParameterHandler.getValue('type2') liste = [] liste.append(['Action', URL_MAIN + 'video?recherche=&genre3=1&type2=' + sType2]) liste.append(['Aventure', URL_MAIN + 'video?recherche=&genre3=2&type2=' + sType2]) liste.append(['Amour & Amitié', URL_MAIN + 'video?recherche=&genre3=3&type2=' + sType2]) liste.append(['Combat', URL_MAIN + 'video?recherche=&genre3=4&type2=' + sType2]) liste.append(['Comédie', URL_MAIN + 'video?recherche=&genre3=5&type2=' + sType2]) liste.append(['Contes & Récits', URL_MAIN + 'video?recherche=&genre3=6&type2=' + sType2]) liste.append(['Cyber & Mecha', URL_MAIN + 'video?recherche=&genre3=7&type2=' + sType2]) liste.append(['Dark Fantasy', URL_MAIN + 'video?recherche=&genre3=8&type2=' + sType2]) liste.append(['Drame', URL_MAIN + 'video?recherche=&genre3=9&type2=' + sType2]) liste.append(['Ecchi', URL_MAIN + 'video?recherche=&genre3=10&type2=' + sType2]) liste.append(['Éducatif', URL_MAIN + 'video?recherche=&genre3=11&type2=' + sType2]) liste.append(['Énigme & Policier', URL_MAIN + 'video?recherche=&genre3=12&type2=' + sType2]) liste.append(['Épique & Héroique', URL_MAIN + 'video?recherche=&genre3=13&type2=' + sType2]) liste.append(['Espace & Sci-Fiction', URL_MAIN + 'video?recherche=&genre3=14&type2=' + sType2]) liste.append(['Familial & Jeunesse', URL_MAIN + 'video?recherche=&genre3=15&type2=' + sType2]) liste.append(['Fantastique & Mythe', URL_MAIN + 'video?recherche=&genre3=16&type2=' + sType2]) liste.append(['Hentai', URL_MAIN + 'video?recherche=&genre3=17&type2=' + sType2]) liste.append(['Historique', URL_MAIN + 'video?recherche=&genre3=18&type2=' + sType2]) liste.append(['Horreur', URL_MAIN + 'video?recherche=&genre3=19&type2=' + sType2]) liste.append(['Magical Girl', URL_MAIN + 'video?recherche=&genre3=20&type2=' + sType2]) liste.append(['Musical', URL_MAIN + 'video?recherche=&genre3=21&type2=' + sType2]) liste.append(['Psychologique', URL_MAIN + 'video?recherche=&genre3=22&type2=' + sType2]) liste.append(['Sport', URL_MAIN + 'video?recherche=&genre3=23&type2=' + sType2]) liste.append(['Tranche de vie', URL_MAIN + 'video?recherche=&genre3=24&type2=' + sType2]) liste.append(['Shôjo-Ai', URL_MAIN + 'video?recherche=&genre3=25&type2=' + sType2]) liste.append(['Shônen-Ai', URL_MAIN + 'video?recherche=&genre3=26&type2=' + sType2]) liste.append(['Yaoi/BL', URL_MAIN + 'video?recherche=&genre3=27&type2=' + sType2]) for sTitle, sUrl in liste: oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oGui.addDir(SITE_IDENTIFIER, 'showMovies', sTitle, 'genres.png', oOutputParameterHandler) oGui.setEndOfDirectory() def showAZ(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') # pas d'url pour les non alpha, on utilise l'ancienne méthode épurée. oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oGui.addDir(SITE_IDENTIFIER, 'showNoAlpha', '[COLOR teal] Lettre [COLOR red]123[/COLOR]', 'az.png', oOutputParameterHandler) import string for i in string.ascii_lowercase: sUrl2 = sUrl + str(i) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl2) oGui.addDir(SITE_IDENTIFIER, 'showMovies', '[COLOR teal] Lettre [COLOR red]' + str(i).upper() + '[/COLOR]', 'az.png', oOutputParameterHandler) oGui.setEndOfDirectory() def showNoAlpha(): oGui = cGui() oParser = cParser() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() # Decoupage pour cibler la partie non alpha sPattern = 'class="video-item-list-days">
Lettre 123
(.+?)
>>[/COLOR]', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory() def __checkForNextPage(sHtmlContent): oParser = cParser() sPattern = '', '') except: pass sPattern = 'line-height:200px;font-size:26px;text-align:center;">L.anime est licencié<.p>' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): oGui.addText(SITE_IDENTIFIER, '[COLOR red]Animé licencié[/COLOR]') else: sPattern = '
  • ([^<]+)
  • |
    ]+>([^<]+)' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): for aEntry in aResult[1]: if aEntry[0]: oGui.addText(SITE_IDENTIFIER, '[COLOR red]' + aEntry[0].capitalize() + '[/COLOR]') else: sUrl = aEntry[1] sTitle = sMovieTitle + ' ' + aEntry[2] sTitle = re.sub(' vf', ' (VF)', sTitle, re.IGNORECASE) sDisplayTitle = re.sub(' vostfr', ' (VOSTFR)', sTitle, re.IGNORECASE) sTitle = sDisplayTitle.replace(' (VF)', '').replace(' (VOSTFR)', '') oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sDesc', sDesc) oGui.addEpisode(SITE_IDENTIFIER, 'showLinks', sDisplayTitle, 'series.png', sThumb, sDesc, oOutputParameterHandler) oGui.setEndOfDirectory() def showLinks(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumb = oInputParameterHandler.getValue('sThumb') sDesc = oInputParameterHandler.getValue('sDesc') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern = 'video-iframe" data-url="([^"]+)"' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if not aResult[0]: sPattern = ' len(r) - 2 else a + 1 return t