src/ldtplatform/management/commands/replacedelete.py
changeset 331 509b57af708d
parent 330 61a9b0c4dac4
child 332 324717f075f9
equal deleted inserted replaced
330:61a9b0c4dac4 331:509b57af708d
   126                         "0"
   126                         "0"
   127                         ]]
   127                         ]]
   128             ldtproj = models.Project.objects.filter\
   128             ldtproj = models.Project.objects.filter\
   129             (content=models.Content.objects.filter(media_obj_id=elem1.id)[0])
   129             (content=models.Content.objects.filter(media_obj_id=elem1.id)[0])
   130             if elem1.src.lower() == tohttps(elem1.src, elem1.videopath).lower():
   130             if elem1.src.lower() == tohttps(elem1.src, elem1.videopath).lower():
   131                 for numproject in xrange(len(ldtproj)):
   131                 if options['f']:
   132                     root = etree.XML(ldtproj[numproject].ldt.encode('utf-8'), parser)
   132                     elem1.videopath = ''
       
   133                     elem1.save()
       
   134                 for singleproject in ldtproj:
       
   135                     root = etree.XML(singleproject.ldt.encode('utf-8'), parser)
   133                     mediapathlen = len(root.xpath('medias/media'))
   136                     mediapathlen = len(root.xpath('medias/media'))
   134                     if mediapathlen == 0:
   137                     if mediapathlen == 0:
   135                         self.stdout.write(" .ldt has no media", ending='')
   138                         self.stdout.write(" .ldt has no media", ending='')
   136                         continue
   139                         continue
   137                     if options['f'] and\
   140                     if options['f']:
   138                     re.match(r"rtmp://media.iri.centrepompidou.fr/ddc_player/.*",elem1.videopath) != None:
       
   139                         root.xpath('medias/media')[0].set("video", '')
   141                         root.xpath('medias/media')[0].set("video", '')
   140                         ldtproj[numproject].ldt = etree.tostring(root)
   142                         singleproject.ldt = etree.tostring(root)
   141                         ldtproj[numproject].save()
   143                         singleproject.save()
   142                         self.stdout.write(" Project videopath modified!")
   144                         self.stdout.write(" Project videopath modified!")
   143                         infos.write(" Project videopath modified ")
   145                         infos.write(" Project videopath modified ")
   144             if re.match(r".*\.youtube\.com.*", elem1.src) != None\
   146             if re.match(r".*\.youtube\.com.*", elem1.src) != None\
   145             or re.match(r".*youtu\.be.+", elem1.src) != None:
   147             or re.match(r".*youtu\.be.+", elem1.src) != None:
   146                 if re.match(r".*feature=player_embedded.+", elem1.src) != None:
   148                 if re.match(r".*feature=player_embedded.+", elem1.src) != None:
   182             models.Media.objects.filter(src__iregex=r".*.mp4$").exclude(src__iregex=r"^https://.*"),
   184             models.Media.objects.filter(src__iregex=r".*.mp4$").exclude(src__iregex=r"^https://.*"),
   183             models.Media.objects.filter(src__iregex=r"^mp4:.*").exclude(src__iregex=r".*\..{3}$")
   185             models.Media.objects.filter(src__iregex=r"^mp4:.*").exclude(src__iregex=r".*\..{3}$")
   184         ))
   186         ))
   185 
   187 
   186         for elem in files:
   188         for elem in files:
   187             self.stdout.write("%s"%elem.src)
       
   188             self.stdout.write(" \n%s/%s files done"%(i+1, len(files)), ending='')
   189             self.stdout.write(" \n%s/%s files done"%(i+1, len(files)), ending='')
   189             i += 1
   190             i += 1
   190             if numberofcontents(elem) == 0:
   191             if numberofcontents(elem) == 0:
   191                 self.stdout.write(" no content", ending='')
   192                 self.stdout.write(" no content", ending='')
   192                 continue
   193                 continue
   193             mysrc = elem.src
   194             mysrc = elem.src
   194             newsource = tohttps(elem.src, elem.videopath)
   195             newsource = tohttps(elem.src, elem.videopath)
   195             self.stdout.write("%s"%newsource)
       
   196             try:
   196             try:
   197                 res = requests.head(newsource, timeout=10).status_code
   197                 res = requests.head(newsource, timeout=10).status_code
   198             except requests.ConnectionError:
   198             except requests.ConnectionError:
   199                 self.stdout.write(" connection error", ending='')
   199                 self.stdout.write(" connection error", ending='')
   200                 logger.error("CONNECTION ERROR FOR %s", elem.title)
   200                 logger.error("CONNECTION ERROR FOR %s", elem.title)
   367                     numberofcontents(elem),
   367                     numberofcontents(elem),
   368                     numberofproject(elem)
   368                     numberofproject(elem)
   369                 ]]
   369                 ]]
   370                 continue
   370                 continue
   371             infos.write("\nProjects : \n")
   371             infos.write("\nProjects : \n")
   372             for numproject in xrange(numberofproject(elem)):
   372             for singleproject in ldtproj:
   373                 base_url = Site.objects.get_current().domain + settings.BASE_URL
   373                 base_url = Site.objects.get_current().domain + settings.BASE_URL
   374                 ldt_id = ldtproj[numproject].ldt_id
   374                 ldt_id = singleproject.ldt_id
   375                 embedurl = "http://{base_url}ldtplatform/ldt/embed/v3/config?json_url=" \
   375                 embedurl = "http://{base_url}ldtplatform/ldt/embed/v3/config?json_url=" \
   376                            "http://{base_url}ldtplatform/ldt/cljson/id/{ldt_id}&" \
   376                            "http://{base_url}ldtplatform/ldt/cljson/id/{ldt_id}&" \
   377                            "player_id=player_project_{ldt_id}&" \
   377                            "player_id=player_project_{ldt_id}&" \
   378                            "ldt_id={ldt_id}".format(base_url=base_url, ldt_id=ldt_id)
   378                            "ldt_id={ldt_id}".format(base_url=base_url, ldt_id=ldt_id)
   379                 infos.write("%s \n"%(embedurl))
   379                 infos.write("%s \n"%(embedurl))
   380             infos.write("having as old media %s \nAs new media %s \nAs content %s \n"\
   380             infos.write("having as old media %s \nAs new media %s \nAs content %s \n"\
   381             % (elem.src, newsource, models.Content.objects.filter(media_obj_id=elem.id)[0].iri_id))
   381             % (elem.src, newsource, models.Content.objects.filter(media_obj_id=elem.id)[0].iri_id))
   382             if options['f']:
   382             if options['f']:
   383                 for numproject in xrange(len(ldtproj)):
   383                 for singleproject in ldtproj:
   384                     root = etree.XML(ldtproj[numproject].ldt.encode('utf-8'), parser)
   384                     root = etree.XML(singleproject.ldt.encode('utf-8'), parser)
   385                     mediapathlen = len(root.xpath('medias/media'))
   385                     mediapathlen = len(root.xpath('medias/media'))
   386                     if mediapathlen == 0:
   386                     if mediapathlen == 0:
   387                         self.stdout.write(" le .ldt ne contient pas de media", ending='')
   387                         self.stdout.write(" le .ldt ne contient pas de media", ending='')
   388                         infos.write("le .ldt ne contient pas de media")
   388                         infos.write("le .ldt ne contient pas de media")
   389                         continue
   389                         continue
   390                     root.xpath('medias/media')[0].set("video", '')
   390                     root.xpath('medias/media')[0].set("video", '')
   391                     ldtproj[numproject].ldt = etree.tostring(root)
   391                     singleproject.ldt = etree.tostring(root)
   392                     ldtproj[numproject].save()
   392                     singleproject.save()
   393                     infos.write("\nSuccessful !\n")
   393                     infos.write("\nSuccessful !\n")
   394                     logger.info("%s DONE\n", embedurl)
   394                     logger.info("%s DONE\n", embedurl)
   395             self.stdout.write(" done", ending='')
   395             self.stdout.write(" done", ending='')
   396             forcsv += [[
   396             forcsv += [[
   397                 mysrc,
   397                 mysrc,