Example #1
0
    def getUpdate(self):
        service_time = self.oConfig.getSetting('service_time')
        VSlog("getUpdate")

        #Si pas d'heure indique = premiere install
        if not (service_time):
            #On memorise la date d'aujourdhui
            self.oConfig.setSetting('service_time',
                                    str(datetime.datetime.now()))
            #Mais on force la maj avec une date a la con
            service_time = '2000-09-23 10:59:50.877000'

        if (service_time):
            #delay mise a jour
            time_sleep = datetime.timedelta(minutes=1)
            time_now = datetime.datetime.now()
            time_service = self.__strptime(service_time,
                                           "%Y-%m-%d %H:%M:%S.%f")
            if (time_now - time_service > time_sleep):
                self.checkupdate()
            else:
                VSlog('Prochaine verification de MAJ le : ' +
                      str(time_sleep + time_service))
                #Pas besoin de memoriser la date, a cause du cache kodi > pas fiable.
        return
Example #2
0
    def createTables(self):
        # self.dropTables()
        try:
            self.lockDB()
            ''' Create table '''
            sql_create = "CREATE TABLE IF NOT EXISTS history ("" addon_id integer PRIMARY KEY AUTOINCREMENT, ""sItemUrl TEXT, ""mainUrl TEST, ""rawtitle TEXT, ""title TEXT, ""icon TEXT, ""type TEXT, ""quality TEXT, ""UNIQUE(rawtitle)"");"
            self.dbcur.execute(sql_create)

            sql_create = "CREATE TABLE IF NOT EXISTS resume ("" addon_id integer PRIMARY KEY AUTOINCREMENT, ""title TEXT, ""timepoint TEXT, ""UNIQUE(title)"");"
            self.dbcur.execute(sql_create)

            sql_create = "CREATE TABLE IF NOT EXISTS watched ("" addon_id integer PRIMARY KEY AUTOINCREMENT, ""title TEXT, ""site TEXT, ""UNIQUE(title, site)"");"
            self.dbcur.execute(sql_create)

            sql_create = "CREATE TABLE IF NOT EXISTS favorite ("" addon_id integer PRIMARY KEY AUTOINCREMENT, ""title TEXT, ""siteurl TEXT, ""site TEXT, ""fav TEXT, ""cat TEXT, ""icon TEXT, ""fanart TEXT, ""UNIQUE(title, site)"");"
            self.dbcur.execute(sql_create)

            sql_create = "CREATE TABLE IF NOT EXISTS downloaded ("" addon_id integer PRIMARY KEY AUTOINCREMENT, ""title TEXT, ""path TEXT, ""icon TEXT, ""status TEXT, ""mainUrl TEXT, ""UNIQUE(title)"");"
            self.dbcur.execute(sql_create)

            sql_create = "CREATE TABLE IF NOT EXISTS valide ("" addon_id integer PRIMARY KEY AUTOINCREMENT, ""url TEXT, ""ok TEXT, ""UNIQUE(url)"");"
            self.dbcur.execute(sql_create)

            VSlog('Table initialized')

            self.unlockDB()

        except Exception, e:
            VSlog('cDb ERROR in createTables: ' + str(e.message))
            if "database disk image is malformed" in str(e.message):
                os.remove(self.DB)
                self.db = sqlite.connect(self.DB)
                self.dbcur = self.db.cursor()
                self.createTables()
                cFtpManager().sendDb()
Example #3
0
 def checkupdate(self):
     VSlog("checkupdate")
     version = self.oConfig.getAddonVersion()
     try:
         sRequest = '?client_id=' + self.client_id + '&client_secret=' + self.client_secret
         sUrl = 'https://raw.githubusercontent.com/tvwatch-kodi/TvWatch/master/source/changelog.txt'
         oRequest =  urllib2.Request(sUrl + sRequest)
         oResponse = urllib2.urlopen(oRequest)
         sContent = oResponse.read()
         if "Current Version" in sContent:
             sContent = sContent[sContent.find("Current Version"):]
             if " - " in sContent:
                 sContent = sContent[:sContent.find(" - ")]
                 sContent = sContent.replace("Current Version","")
                 sContent = sContent.replace(" ","")
                 sContent = sContent.replace(".","")
                 newVersion = int(sContent)
                 currentVersion = int(version.replace(".",""))
                 VSlog("checkupdate New Version: " + str(newVersion))
                 VSlog("checkupdate Current Version: " + str(currentVersion))
                 self.oConfig.setSetting('service_time', str(datetime.datetime.now()))
                 if newVersion > currentVersion:
                     WriteSingleDatabase('home_update', "true")
                     dialog = self.oConfig.showInfo("TvWatch", VSlang(30418))
                     VSupdate()
                     return True
                 else:
                     #self.oConfig.showInfo('TvWatch', 'Fichier a jour')
                     WriteSingleDatabase('home_update', "false")
     except Exception, e:
         self.oConfig.error(self.oConfig.getlanguage(30205))
         VSlog("checkupdate ERROR: " + e.message)
Example #4
0
    def StartDownloadOneFile(self, meta=[]):
        VSlog('StartDownloadOneFile')
        self.__oConfig.showInfo("TvWatch", VSlang(30514), 5)
        if ReadSingleDatabase('download_status') == "InProgress":
            self.__oConfig.showInfo('TvWatch', VSlang(30509))
            return
        oInputParameterHandler = cInputParameterHandler()

        meta = {}
        meta['sMovieTitle'] = oInputParameterHandler.getValue('sMovieTitle')
        meta['sMainUrl'] = oInputParameterHandler.getValue('sMainUrl')
        meta['sItemUrl'] = oInputParameterHandler.getValue('sItemUrl')
        meta['sThumbnail'] = oInputParameterHandler.getValue('sThumbnail')
        meta['sNextUrl'] = oInputParameterHandler.getValue('sNextUrl')
        meta['sType'] = oInputParameterHandler.getValue('sType')
        meta['sQual'] = oInputParameterHandler.getValue('sQual')
        meta['refresh'] = oInputParameterHandler.getValue('refresh')
        meta['sEncodeUrl'] = oInputParameterHandler.getValue('sEncodeUrl')
        meta['sBaseUrl'] = oInputParameterHandler.getValue('sBaseUrl')

        needShowHosters = oInputParameterHandler.getValue('needShowHosters')

        if needShowHosters == 'True':
            try:
                from resources.sites.server import showHosters
                params = showHosters(meta, False)
            except Exception, e:
                VSlog("StartDownloadOneFile showHosters ERROR: " + e.message)
Example #5
0
    def __getMediaLinkForGuest(self):
    
        api_call = ''
    
        id = self.__getIdFromUrl()
        
        self.__sUrl = 'http://hqq.tv/player/embed_player.php?vid=' + id + '&autoplay=no'

        headers = {'User-Agent': UA ,
                   #'Host' : 'hqq.tv',
                   'Referer': 'http://hqq.tv/',
                   'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
                   #'Accept-Encoding':'gzip, deflate, br',
                   #'Content-Type': 'text/html; charset=utf-8'
                   }
        
        player_url = self.__sUrl
        
        req = urllib2.Request(player_url, None, headers)
        try:
            response = urllib2.urlopen(req)
            html = response.read()
            response.close()
        except urllib2.URLError, e:
            VSlog(e.read())
            VSlog(e.reason)
            html = e.read()
Example #6
0
 def insert_download(self, meta):
     mainUrl = meta['sMainUrl']
     title = meta['title']
     path = meta['path']
     sIcon = meta['icon']
     status = meta['status']
     # sRawtitle = title
     title = self.str_conv(title)
     path = self.str_conv(path)
     # if sType == 'tvshow' and 'Saison' in sRawtitle:
     #     sRawtitle = sRawtitle[:sRawtitle.find('Saison')]
     # sRawtitle = self.str_conv(sRawtitle)
     try:
         self.lockDB()
         ex = "INSERT INTO downloaded (title, path, icon, status, mainUrl) VALUES (?, ?, ?, ?, ?)"
         self.dbcur.execute(ex, (title, path, sIcon, status, mainUrl))
         self.db.commit()
         VSlog('SQL INSERT downloaded Successfully')
         self.unlockDB()
     except Exception, e:
         VSlog('SQL ERROR INSERT downloaded: ' + str(e.message))
         if 'UNIQUE constraint failed' in str(e.message):
             self.update_download(meta)
         elif 'malformed' in str(e.message).lower():
             self.dropTables()
Example #7
0
 def insert_history(self, meta):
     title = meta['title']
     sItemUrl = meta['sItemUrl']
     sMainUrl = meta['mainUrl']
     sIcon = meta['icon']
     sType = meta['type']
     sQuality = meta['quality']
     sRawtitle = title
     title = self.str_conv(title)
     if sType == 'tvshow' and 'Saison' in sRawtitle:
         sRawtitle = sRawtitle[:sRawtitle.find('Saison')]
     sRawtitle = self.str_conv(sRawtitle)
     try:
         self.lockDB()
         ex = "INSERT INTO history (title, sItemUrl, mainUrl, icon, type, rawtitle, quality) VALUES (?, ?, ?, ?, ?, ?, ?)"
         self.dbcur.execute(ex, (title, sItemUrl, sMainUrl, sIcon, sType, sRawtitle, sQuality))
         self.db.commit()
         VSlog('SQL INSERT history Successfully')
         self.unlockDB()
     except Exception, e:
         VSlog('SQL ERROR INSERT history: ' + str(e.message))
         if 'UNIQUE constraint failed' in str(e.message):
             self.update_history(meta)
         elif 'malformed' in str(e.message).lower():
             self.dropTables()
Example #8
0
    def __getMediaLinkForGuest(self):

        oRequest = cRequestHandler(self.__sUrl)
        oRequest.addHeaderEntry(
            'User-Agent',
            'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0'
        )
        sHtmlContent = oRequest.request()

        oParser = cParser()

        aResult = re.search('(゚ω゚.+?\(\'_\'\);)', sHtmlContent,
                            re.DOTALL | re.UNICODE)
        if (aResult):
            VSlog('AA encryption')
            sHtmlContent = AADecoder(aResult.group(1)).decode()

            #recuperation de l'url
            Url = re.findall('href *= *["\'](.+?)["\']', sHtmlContent)[0]
            if not 'speedvid' in Url:
                Url = 'http://www.speedvid.net/' + Url
            if not 'http' in Url:
                if Url.startswith('//'):
                    Url = 'http:' + Url
                else:
                    Url = 'http://' + Url

        VSlog("Connexion: " + Url)
        oRequest = cRequestHandler(Url)
        oRequest.addHeaderEntry(
            'User-Agent',
            'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0'
        )
        oRequest.addHeaderEntry('Referer', self.__sUrl)
        sHtmlContent = oRequest.request()

        api_call = ''

        sPattern = '(eval\(function\(p,a,c,k,e(?:.|\s)+?\)\))<'
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            for packed in aResult[1]:

                sHtmlContent = cPacker().unpack(packed)
                sHtmlContent = sHtmlContent.replace('\\', '')

                sPattern2 = "{file:.([^']+.mp4)"
                aResult2 = oParser.parse(sHtmlContent, sPattern2)
                if (aResult2[0] == True):
                    # tris des faux liens
                    if not 'speedvid' in aResult2[1][0]:
                        api_call = aResult2[1][0]

        if (api_call):
            api_call = api_call + '|User-Agent=Mozilla/5.0 (Windows NT 6.1; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0'
            return True, api_call

        return False, False
Example #9
0
 def updateXFSS(self, xfss, oldXfss):
     if xfss:
         try:
             ex = """UPDATE serverTable
                     SET xfss = %s
                     WHERE xfss = %s"""
             self.dbcur.execute(ex, (xfss, oldXfss))
             self.db.commit()
             VSlog('SQL UPDATE table Successfully: xfss with ' + xfss)
         except Exception, e:
             VSlog('SQL ERROR UPDATE table xfss: ' + e.message)
Example #10
0
 def updateIP(self, ip, clientID):
     if ip:
         try:
             ex = """UPDATE mainTable
                     SET ip = %s
                     WHERE id = %s"""
             self.dbcur.execute(ex, (ip, clientID))
             self.db.commit()
             VSlog('SQL UPDATE table Successfully: ip with ' + ip)
         except Exception, e:
             VSlog('SQL ERROR UPDATE table ip: ' + e.message)
Example #11
0
    def download(self,
                 sDBUrl,
                 sTitle,
                 sDownloadPath,
                 sThumbnail,
                 sMainUrl,
                 FastMode=True):
        VSlog("Telechargement " + str(sDBUrl))
        # if self.isDownloading():
        #     self.__oConfig.showInfo('TvWatch', VSlang(30509))
        #     return False

        #resolve url
        oHoster = cHosterGui().checkHoster(sDBUrl)
        oHoster.setUrl(sDBUrl)
        aLink = oHoster.getMediaLink()

        if (aLink[0] == True):
            sUrl = aLink[1]
        else:
            VSlog('Lien non resolvable')
            self.__oConfig.showInfo('TvWatch', VSlang(30510))
            return False

        if (not sUrl.startswith('http')
            ) or sUrl.split('|')[0].endswith('.m3u8'):
            return False

        try:
            if '.' in sUrl:
                a = sUrl.rfind('.')
                sDownloadPath += sUrl[a:]

            #background download task
            if FastMode:
                cDownloadProgressBar(title=sTitle,
                                     url=sUrl,
                                     Dpath=sDownloadPath,
                                     icon=sThumbnail,
                                     mainUrl=sMainUrl,
                                     FastMode=True).start()
            else:
                cDownloadProgressBar(title=sTitle,
                                     url=sUrl,
                                     Dpath=sDownloadPath,
                                     icon=sThumbnail,
                                     mainUrl=sMainUrl).start()

            VSlog("Telechargement ok")

        except Exception, e:
            VSlog("Telechargement impossible " + e.message)
            self.__oConfig.showInfo('TvWatch', VSlang(30508))
            return False
Example #12
0
 def __del__(self):
     ''' Cleanup db when object destroyed '''
     try:
         self.dbcur.close()
         self.db.close()
         if self.enableFtp:
             self.lockDB()
             VSlog("sendDb to server")
             cFtpManager().sendDb()
             self.unlockDB()
     except Exception, e:
         VSlog('cDb ERROR in Destructor: ' + str(e.message))
Example #13
0
 def updateIP(self, isPlaying, clientID):
     if isPlaying:
         try:
             ex = """UPDATE mainTable
                     SET isPlaying = %s
                     WHERE id = %s"""
             self.dbcur.execute(ex, (isPlaying, clientID))
             self.db.commit()
             VSlog('SQL UPDATE table Successfully: isPlaying with ' +
                   isPlaying)
         except Exception, e:
             VSlog('SQL ERROR UPDATE table isPlaying: ' + e.message)
Example #14
0
 def del_downloadByStatus(self, status):
     sql_delete = "DELETE FROM downloaded WHERE status = '%s'" % (status)
     try:
         self.lockDB()
         self.dbcur.execute(sql_delete)
         self.db.commit()
         VSlog('SQL DELETE downloaded Successfully')
         self.unlockDB()
     except Exception, e:
         VSlog('SQL ERROR DELETE downloaded: ' + str(e.message))
         if 'malformed' in str(e.message).lower():
             self.dropTables()
Example #15
0
 def del_valide(self):
     sql_delete = "DELETE FROM valide"
     try:
         self.lockDB()
         self.dbcur.execute(sql_delete)
         self.db.commit()
         VSlog('SQL DELETE valide Successfully')
         self.unlockDB()
     except Exception, e:
         VSlog('SQL ERROR valide history: ' + str(e.message))
         if 'malformed' in str(e.message).lower():
             self.dropTables()
Example #16
0
 def dropTables(self):
     try:
         self.lockDB()
         self.dbcur.execute("DROP TABLE IF EXISTS %s" %('history'))
         self.dbcur.execute("DROP TABLE IF EXISTS %s" %('resume'))
         self.dbcur.execute("DROP TABLE IF EXISTS %s" %('watched'))
         self.dbcur.execute("DROP TABLE IF EXISTS %s" %('favorite'))
         self.dbcur.execute("DROP TABLE IF EXISTS %s" %('downloaded'))
         self.dbcur.execute("DROP TABLE IF EXISTS %s" %('valide'))
         VSlog('Tables dropped successfully')
         self.unlockDB()
     except:
         VSlog("deleteTable FAIL")
Example #17
0
 def del_resume(self, title):
     title = self.str_conv(title)
     sql_delete = "DELETE FROM resume WHERE title = '%s'" % (title)
     try:
         self.lockDB()
         self.dbcur.execute(sql_delete)
         self.db.commit()
         VSlog('SQL DELETE resume Successfully')
         self.unlockDB()
     except Exception, e:
         VSlog('SQL ERROR DELETE resume: ' + str(e.message))
         if 'malformed' in str(e.message).lower():
             self.dropTables()
Example #18
0
 def __init__(self, ftp = True):
     self.oConfig = cConfig()
     self.enableFtp = ftp
     try:
         if self.enableFtp:
             self.lockDB()
             VSlog("Retrieve DB from server")
             cFtpManager().getDb()
             self.unlockDB()
         self.DB = self.oConfig.getFileDB()
         self.db = sqlite.connect(self.DB)
         self.dbcur = self.db.cursor()
     except Exception, e:
         VSlog('cDb ERROR in Constructor: ' + str(e.message))
Example #19
0
 def insert_watched(self, meta):
     title = self.str_conv(meta['title'])
     site = urllib.quote_plus(meta['site'])
     ex = "INSERT INTO watched (title, site) VALUES (?, ?)"
     try:
         self.lockDB()
         self.dbcur.execute(ex, (title,site))
         self.db.commit()
         VSlog('SQL INSERT watched Successfully')
         self.unlockDB()
     except Exception, e:
         VSlog('SQL ERROR INSERT watched: ' + str(e.message))
         if 'malformed' in str(e.message).lower():
             self.dropTables()
Example #20
0
 def update_resume(self, meta):
     title = self.str_conv(meta['title'])
     timepoint = meta['timepoint']
     try:
         self.lockDB()
         ex = "UPDATE resume SET timepoint = '%s' WHERE title = '%s'" % (timepoint, title)
         self.dbcur.execute(ex)
         self.db.commit()
         VSlog('SQL UPDATE resume Successfully')
         self.unlockDB()
     except Exception, e:
         VSlog('SQL ERROR UPDATE resume: ' + str(e.message))
         if 'malformed' in str(e.message).lower():
             self.dropTables()
Example #21
0
 def createTable(self):
     sql_create = """CREATE TABLE IF NOT EXISTS mainTable (
                 id INT PRIMARY KEY AUTO_INCREMENT,
                 prenom VARCHAR(50) NOT NULL,
                 nom VARCHAR(50) NOT NULL,
                 code VARCHAR(73) NOT NULL UNIQUE,
                 expDate VARCHAR(10) NOT NULL,
                 isPlaying VARCHAR(5) NOT NULL
                 );"""
     try:
         self.dbcur.execute(sql_create)
         VSlog('Table mainTable MySQL initialized')
     except Exception, e:
         VSlog('MySQL ERROR _create_tables mainTable: ' + e.message)
Example #22
0
    def enable_addon(self, addon):
        #import json
        #sCheck = {'jsonrpc': '2.0','id': 1,'method': 'Addons.GetAddonDetails','params': {'addonid':'inputstream.adaptive','properties': ['enabled']}}
        #response = xbmc.executeJSONRPC(json.dumps(sCheck))
        #data = json.loads(response)
        #if not 'error' in data.keys():
        #if data['result']['addon']['enabled'] == False:

        if xbmc.getCondVisibility(
                'System.HasAddon(inputstream.adaptive)') == 0:
            do_json = '{"jsonrpc":"2.0","id":1,"method":"Addons.SetAddonEnabled","params":{"addonid":"inputstream.adaptive","enabled":true}}'
            query = xbmc.executeJSONRPC(do_json)
            VSlog("Activation d'inputstream.adaptive")
        else:
            VSlog('inputstream.adaptive déjà activé')
Example #23
0
    def ConnectWithXFSS(self, xfss):
        # url = 'https://uptobox.com/?op=login&referer=homepage/'
        url = 'https://uptobox.com'
        req = urllib2.Request(url, None, headers)
        cookie = "xfss=%s;" % (xfss)
        req.add_header('cookie', cookie)
        req.add_header('dnt', '1')
        req.add_header('upgrade-insecure-requests', '1')

        try:
            response = urllib2.urlopen(req)
        except urllib2.URLError, e:
            VSlog("debug ConnectWithXFSS " + str(getattr(e, "code", None)))
            VSlog("debug ConnectWithXFSS " + str(getattr(e, "reason", None)))
            return False
Example #24
0
 def del_download(self, title):
     # sRawtitle = title
     # if 'Saison' in title:
     #     sRawtitle = title[:title.find('Saison')]
     title = self.str_conv(title)
     sql_delete = "DELETE FROM downloaded WHERE title = '%s'" % (title)
     try:
         self.lockDB()
         self.dbcur.execute(sql_delete)
         self.db.commit()
         VSlog('SQL DELETE downloaded Successfully')
         self.unlockDB()
     except Exception, e:
         VSlog('SQL ERROR DELETE downloaded: ' + str(e.message))
         if 'malformed' in str(e.message).lower():
             self.dropTables()
Example #25
0
 def insert_resume(self, meta):
     title = self.str_conv(meta['title'])
     timepoint = meta['timepoint']
     try:
         self.lockDB()
         ex = "INSERT INTO resume (title, timepoint) VALUES (?, ?)"
         self.dbcur.execute(ex, (title, timepoint))
         self.db.commit()
         VSlog('SQL INSERT resume Successfully')
         self.unlockDB()
     except Exception, e:
         VSlog('SQL ERROR INSERT resume: ' + str(e.message))
         if 'UNIQUE constraint failed' in str(e.message):
             self.update_resume(meta)
         elif 'malformed' in str(e.message).lower():
             self.dropTables()
Example #26
0
    def setWatched(self, sId, sTitle):
        VSlog("setWatched")
        try:
            watched = {}
            #sTitle = self.getTitle()
            #sId = self.getSiteName()
            watched_db = os.path.join(cConfig().getSettingCache(),
                                      "watched.db").decode("utf-8")

            if not os.path.exists(watched_db):
                file(watched_db, "w").write("%r" % watched)

            if os.path.exists(watched_db):
                watched = eval(open(watched_db).read())
                watched[sId] = watched.get(sId) or []
                #add to watched
                if sTitle not in watched[sId]:
                    watched[sId].append(sTitle)
                else:
                    del watched[sId][watched[sId].index(sTitle)]

            file(watched_db, "w").write("%r" % watched)
            watched_db.close()
        except:
            return
Example #27
0
    def addToPlaylist(self):
        cConfig().log('addToPlaylist')
        oGui = cGui()
        oInputParameterHandler = cInputParameterHandler()

        sHosterIdentifier = oInputParameterHandler.getValue('sHosterIdentifier')
        sMediaUrl = oInputParameterHandler.getValue('sMediaUrl')
        bGetRedirectUrl = oInputParameterHandler.getValue('bGetRedirectUrl')
        sFileName = oInputParameterHandler.getValue('sFileName')

        if (bGetRedirectUrl == 'True'):
            sMediaUrl = self.__getRedirectUrl(sMediaUrl)

        VSlog("Hoster - play " + sMediaUrl)
        oHoster = self.getHoster(sHosterIdentifier)
        oHoster.setFileName(sFileName)

        oHoster.setUrl(sMediaUrl)
        aLink = oHoster.getMediaLink()

        if (aLink[0] == True):
            oGuiElement = cGuiElement()
            oGuiElement.setSiteName(self.SITE_NAME)
            oGuiElement.setMediaUrl(aLink[1])
            oGuiElement.setTitle(oHoster.getFileName())

            oPlayer = cPlayer()
            oPlayer.addItemToPlaylist(oGuiElement)
            oGui.showInfo('Playlist', str(oHoster.getFileName()), 5)
            return

        oGui.setEndOfDirectory()
Example #28
0
    def getDb(self):
        fileDb = self.oConfig.getFileDB()
        fileDbServer = 'db_' + self.oConfig.getSetting('clientID') + '.db'

        try:
            do = False
            if ((os.path.exists(fileDb))
                    and (fileDbServer in self.ftp.nlst())):
                timestamp_s = self.ftp.voidcmd('MDTM /htdocs/db/' +
                                               fileDbServer)[4:].strip()
                timestamp_l = self.getmTimeLocalDB(fileDb)
                if int(timestamp_l) < int(timestamp_s):
                    do = True
            else:
                do = True
            if do:
                command = 'RETR ' + fileDbServer
                f = open(fileDb, 'wb')
                self.ftp.cwd('/htdocs/db/')
                self.ftp.retrbinary(command, f.write)
                f.close()
                self.ftp.quit()
        except Exception, e:
            VSlog("FtpManager getDb ERROR: " + e.message)
            self.ftp.quit()
Example #29
0
    def del_favorite(self):
        oInputParameterHandler = cInputParameterHandler()
        if (oInputParameterHandler.exist('sCat')):
            sql_delete = "DELETE FROM favorite WHERE cat = '%s'" % (oInputParameterHandler.getValue('sCat'))

        if(oInputParameterHandler.exist('sMovieTitle')):
            siteUrl = oInputParameterHandler.getValue('siteUrl')
            sMovieTitle = oInputParameterHandler.getValue('sMovieTitle')
            siteUrl = urllib.quote_plus(siteUrl)
            title = self.str_conv(sMovieTitle)
            title = title.replace("'", r"''")
            sql_delete = "DELETE FROM favorite WHERE siteurl = '%s' AND title = '%s'" % (siteUrl,title)

        if(oInputParameterHandler.exist('sAll')):
            sql_delete = "DELETE FROM favorite;"

        try:
            self.lockDB()
            self.dbcur.execute(sql_delete)
            self.db.commit()
            self.oConfig.showInfo('TvWatch', 'Favoris supprimé')
            self.unlockDB()
            return False, False
        except Exception, e:
            VSlog('SQL ERROR EXECUTE favorite: ' + str(e.message))
            if 'malformed' in str(e.message).lower():
                self.dropTables()
            return False, False
Example #30
0
 def del_history(self, title):
     sRawtitle = title
     if 'Saison' in title:
         sRawtitle = title[:title.find('Saison')]
     sRawtitle = self.str_conv(sRawtitle)
     sql_delete = "DELETE FROM history WHERE rawtitle = '%s'" % (sRawtitle)
     try:
         self.lockDB()
         self.dbcur.execute(sql_delete)
         self.db.commit()
         VSlog('SQL DELETE history Successfully')
         self.unlockDB()
     except Exception, e:
         VSlog('SQL ERROR DELETE history: ' + str(e.message))
         if 'malformed' in str(e.message).lower():
             self.dropTables()