예제 #1
0
 def AdulteSources(
         self, Url='aHR0cHM6Ly93d3cubXJzZXhlLmNvbS9jYXQvNjIvc29kb21pZS8='):
     print "Recherche de la liste de chaine..."
     Page = str(cDL().TelechargPage(url=b64decode(Url)))
     ret = []
     if not Page.startswith("Erreur"):
         match = re.compile('thumb-list(.*?)<ul class="right pagination">',
                            re.DOTALL | re.IGNORECASE).findall(Page)
         #xbmc.log("Resulta 1 tri: "+str(match))
         match1 = re.compile(
             r'<li class="[^"]*">\s<a class="thumbnail" href="([^"]+)">\n<script.+?([^;]+);</script>\n<figure>\n<img  id=".+?" src="([^"]+)".+?/>\n<figcaption>\n<span class="video-icon"><i class="fa fa-play"></i></span>\n<span class="duration"><i class="fa fa-clock-o"></i>([^<]+)</span>\n(.+?)\n',
             re.DOTALL | re.IGNORECASE).findall(match[0])
         for url, Timage, image, Temp, Descript in match1:
             ret.append(
                 (url, "https:" + image, Timage.split("(")[1][:-1].replace(
                     "'", "").split(","), Descript + " " + Temp))
         print "Recherche OK..."
         try:
             nextp = re.compile(
                 r'<li class="arrow"><a href="(.+?)">suivant</li>').findall(
                     Page)
             ret.append(('https://www.mrsexe.com' + nextp[0], "", [],
                         "Page Suivante..."))
         except:
             pass
     else:
         dialog = Dialog()
         ok = dialog.ok("Telechargement impossible...", Page)
     return ret
예제 #2
0
    def ListTv(self, Adress, Re1, Re2, NumM3u, TelLien, CheminxAmAx=""):
        Cmp = 0
        ListeRet = []
        try:
            #print Adress
            ret2 = cDL().TelechargPage(url=Adress)
            #print ret2
            TabLien = re.compile(Re1, re.I + re.M + re.S).findall(
                self.ConvText(ret2))
            print TabLien
            TabLien2 = []
            for Url, Nom in TabLien:
                if (("France" in Nom)):  # or ("French" in Nom)):
                    ret2 = cDL().TelechargPage(url=Url)
                    #print ret2
                    TabLien2 = re.compile(Re2, re.I + re.M + re.S).findall(
                        self.ConvText(ret2))
                    break
            if len(TabLien2) > 0:
                print str(TabLien2)
                if TelLien:
                    if TabLien2[0][1][-4:] == ".zip":
                        udata = os.path.join(CheminxAmAx, "Telecharg")
                        dest = os.path.join(udata, 'm3u.zip')
                        if not os.path.exists(udata):
                            os.makedirs(udata)
                        cDL().TelechargementZip(TabLien2[0][1],
                                                dest,
                                                DPAff=False,
                                                Nom="Téléchargement Liste")

                        from resources.ziptools import ziptools
                        unzipper = ziptools()
                        unzipper.extract(dest, udata)

                        os.remove(dest)

                        dir = os.listdir(udata)

                        for a in dir:
                            if a.endswith('.m3u'):
                                print "Ouverture de :" + os.path.join(udata, a)
                                with open(os.path.join(udata, a), 'r') as fm3u:
                                    ListM3u = fm3u.read()
                                ListeRet = self.TabM3u(ListM3u, True, True)
                                os.remove(os.path.join(udata, a))
                    else:
                        ret2 = cDL().TelechargPage(url=TabLien2[0][NumM3u])
                        print ret2
                        ListeRet = self.TabM3u(ret2, F4m=True, cvNom=True)
                else:
                    #print TabLien2[0]
                    ret2 = TabLien2[0].replace('<br />', '')
                    ListeRet = self.TabM3u(
                        ret2,
                        F4m=True,
                        cvNom=True,
                        reComp='EXTINF.+?:-?[0-9]*(.*?),FR(.*?)http:(.*?).ts',
                        AjoutHttp="http:",
                        AjoutFin=".ts")
            #print str(TabLien2[0][1])
        except:
            return ListeRet, "Erreur de Recherche des chaines de la liste!"
        return ListeRet, "OK"
예제 #3
0
    def RechercheChaine(self, CheminxAmAx):
        i = 0
        j = 0
        ListeEffacer = False
        dbxAmAx = os.path.join(CheminxAmAx, "xAmAx.db")
        M3uxAmAx = os.path.join(CheminxAmAx, "M3uTV.m3u")
        print "Ouverture de la Base de donnée xAmAx: " + dbxAmAx
        DBxAmAx = db(dbxAmAx)
        IdLP = 0

        liste = []
        liste.append([
            'Iptv4Sat', "https://www.iptv4sat.com/dl-iptv-french/",
            '"https://www.iptv4sat.com/download-attachment/([^"]+)".+?class="attachment-caption">([^<]+)<',
            '', 0, False
        ])
        """liste.append( ['Iptv Gratuit',
                       'https://iptvgratuit.com/iptv-france/',
                       '<h2 class="entry-title"><a href="(.+?)" rel="bookmark">(.+?)</a>',
                       '<a class="more-link" title="(.+?)".+?href="(.+?)"',
                       0,
                       False])"""

        NbMaj = len(liste)

        self.MajDiv = 100 / NbMaj
        self.TotMaj = 0
        self.dp = DialogProgress()
        sleep(0.5)
        self.dp.create("Telechargement de la liste de chaine:")
        sleep(0.5)
        NbMajEc = 1

        NbRecherche = 0
        print "Liste de chaine 1 a afficher"
        ListeEffacer = True
        DivisionRech = (self.MajDiv - self.TotMaj)
        TxtFinal = ""

        for Nom, Url, Re1, Re2, NumM3u, TelLien in liste:
            NbRecherche += 1
            if self.adn.getSetting(id="MajList" + str(NbRecherche)) == "true":
                log(
                    '\t[PLUGIN] xAmAx-Mod: Recherche Liste de chaine ' +
                    str(Nom), LOGNOTICE)
                #print "Recherche Liste de chaine "+str(Nom)
                self.dp.update(self.TotMaj,
                               "Recherche Liste de chaine " + str(NbRecherche))
                sleep(0.5)
                if Nom != "Iptv4Sat":
                    Retour2, Erreur2 = self.ListTv(Url, Re1, Re2, NumM3u,
                                                   TelLien, CheminxAmAx)
                    log(
                        '\t[PLUGIN] xAmAx-Mod: Nombre de résultat de la Liste de chaine '
                        + str(len(Retour2)), LOGNOTICE)
                    #print "Nombre de résultat de la Liste de chaine "+str(len(Retour2))
                    if len(Retour2) > 0 and Erreur2 == "OK":
                        try:
                            DBxAmAx.Delete(Table="List" + str(NbRecherche))
                        except:
                            pass
                        DBxAmAx.CreerTable(
                            Table="List" + str(NbRecherche),
                            colonnes=
                            "`IDLP` INTEGER PRIMARY KEY AUTOINCREMENT, `Nom` TEXT, `Url` TEXT, `Entete` TEXT"
                        )
                        for NomTv, UrlTV in Retour2:
                            IdLP += 1
                            DBxAmAx.Insert(
                                Table="List" + str(NbRecherche),
                                Colonnes="IDLP,Nom,Url",
                                Valeurs=(IdLP, NomTv + " [COLOR gold](" +
                                         str(NbRecherche) + ")[/COLOR]",
                                         UrlTV))  #+"&name="+NomTv))
                    elif Erreur2 != "OK":
                        executebuiltin(
                            "XBMC.Notification(Mise à jour Liste TV " +
                            str(NbRecherche) + " Impossible!!! ," + Erreur2 +
                            ",5000,'')")
                else:
                    Page = cDL().TelechargPage2(url=Url)
                    #print Page
                    try:
                        part = re.compile(Re1, re.I + re.M + re.S).findall(
                            self.ConvText(Page))
                    except:
                        part = ''
                    log('\t[PLUGIN] xAmAx-Mod: part = ' + str(part), LOGNOTICE)
                    try:
                        zip = 'https://www.iptv4sat.com/download-attachment/' + str(
                            part[0][0][:-1])  #).group(1)
                    except:
                        zip = ''
                    #Page = cDL().TelechargPage2(url=Url)
                    #log('\t[PLUGIN] xAmAx-Mod: page = '+self.ConvText(Page), LOGNOTICE)
                    try:
                        udata = os.path.join(CheminxAmAx, "Telecharg")
                        dest = os.path.join(udata, 'iptv4sat.zip')
                        if not os.path.exists(udata):
                            os.makedirs(udata)
                        cDL().TelechargementZip(zip,
                                                dest,
                                                DPAff=False,
                                                Nom="Téléchargement Liste 1")
                        #Page = cDL().TelechargPage2(url=Url)
                        #log('\t[PLUGIN] xAmAx-Mod: page = '+self.ConvText(Page), LOGNOTICE)
                        from resources.ziptools import ziptools
                        unzipper = ziptools()
                        unzipper.extract(dest, udata)

                        os.remove(dest)

                        dir = os.listdir(udata)

                        for a in dir:
                            if a.endswith('.m3u'):
                                print "Ouverture de :" + os.path.join(udata, a)
                                with open(os.path.join(udata, a), 'r') as fm3u:
                                    ListM3u = fm3u.read()
                                Retour3 = self.TabM3u(ListM3u, True, True)
                                os.remove(os.path.join(udata, a))
                                log(
                                    '\t[PLUGIN] xAmAx-Mod: Nombre de résultat de la Liste de chaine '
                                    + str(len(Retour3)), LOGNOTICE)
                                #print "Nombre de résultat de la Liste de chaine "+str(len(Retour3))
                                if len(Retour3) > 0:
                                    try:
                                        DBxAmAx.Delete(Table="List" +
                                                       str(NbRecherche))
                                    except:
                                        pass
                                    DBxAmAx.CreerTable(
                                        Table="List" + str(NbRecherche),
                                        colonnes=
                                        "`IDLP` INTEGER PRIMARY KEY AUTOINCREMENT, `Nom` TEXT, `Url` TEXT, `Entete` TEXT"
                                    )
                                    for NomTv, UrlTV in Retour3:
                                        IdLP += 1
                                        DBxAmAx.Insert(
                                            Table="List" + str(NbRecherche),
                                            Colonnes="IDLP,Nom,Url",
                                            Valeurs=(
                                                IdLP,
                                                NomTv + " [COLOR gold](" +
                                                str(NbRecherche) + ")[/COLOR]",
                                                UrlTV))  #+"&name="+NomTv))
                                else:
                                    executebuiltin(
                                        "XBMC.Notification(Mise à jour Liste TV "
                                        + str(NbRecherche) +
                                        " Impossible!!! ," +
                                        "Pas fichier dans la liste!" +
                                        ",5000,'')")
                            else:
                                os.remove(os.path.join(udata, a))

                    except:
                        executebuiltin(
                            "XBMC.Notification(Mise à jour Liste TV " +
                            str(NbRecherche) + " Impossible!!! ," +
                            "Pas fichier dans la liste!" + ", ,5000,'')")
            else:
                DBxAmAx.Delete(Table="List" + str(NbRecherche))
                DBxAmAx.CreerTable(
                    Table="List" + str(NbRecherche),
                    colonnes=
                    "`IDLP` INTEGER PRIMARY KEY AUTOINCREMENT, `Nom` TEXT, `Url` TEXT, `Entete` TEXT"
                )
            DBxAmAx.FinEnregistrement()
            self.TotMaj = self.MajDiv * NbRecherche
            print "Telechargement de la liste de chaine:" + str(
                self.TotMaj) + "%"
        if NbRecherche < 4:
            for i in range(NbRecherche + 1, 5):
                DBxAmAx.Delete(Table="List" + str(i))
                DBxAmAx.CreerTable(
                    Table="List" + str(i),
                    colonnes=
                    "`IDLP` INTEGER PRIMARY KEY AUTOINCREMENT, `Nom` TEXT, `Url` TEXT, `Entete` TEXT"
                )
            DBxAmAx.FinEnregistrement()
        self.dp.update(
            100, "Nombre de résultat sur les " + str(NbRecherche) +
            " listes de chaines: " + str(IdLP))
        sleep(1)
        self.dp.close()
        executebuiltin("XBMC.Notification(" + str(IdLP) +
                       " Chaînes à jour,,,5000,'')")
        return "OK"