# HG changeset patch # User ymh # Date 1490973317 -7200 # Node ID 0ddcaaf893e99ac9b772b4b1ffe97423c48c46c4 # Parent 77b56a7aaa7eda7e0df2596653f05eb6419241c2 some stylistic modifications diff -r 77b56a7aaa7e -r 0ddcaaf893e9 src/ldtplatform/management/commands/replacedelete.py --- a/src/ldtplatform/management/commands/replacedelete.py Thu Mar 30 16:17:24 2017 +0200 +++ b/src/ldtplatform/management/commands/replacedelete.py Fri Mar 31 17:15:17 2017 +0200 @@ -67,7 +67,7 @@ ''' if re.match(r".*feature=player_embedded.+", source) != None: return "http://www.youtube.com/oembed?url=http://youtube.com/watch?v="\ - + source[len(source)-11:] +"&format=json" + + source[len(source)-11:] +"&format=json" return "http://www.youtube.com/oembed?url=" + source + "&format=json" class Command(BaseCommand): @@ -80,16 +80,18 @@ ''' add arguments ''' - parser.add_argument('-f', - '--force', - dest='force', - action='store_true' - ) - parser.add_argument('-p', - '--path', - dest='path', - default=None - ) + parser.add_argument( + '-f', + '--force', + dest='force', + action='store_true' + ) + parser.add_argument( + '-p', + '--path', + dest='path', + default=None + ) def construct_ldt_embed(self, ldtid): @@ -101,17 +103,17 @@ "player_id=player_project_{ldt_id}&" \ "ldt_id={ldt_id}".format(base_url=self.base_url, ldt_id=ldtid) - def clean_media_project(self, element, force, newsrc=None): + def clean_media_project(self, element, newsrc=None): ''' change media objects' videopath and source if necessary change project .ldt ''' basesrc = element.src - if force: + if self.force: element.videopath = '' element.save() if newsrc != None: - if force: + if self.force: element.src = newsrc element.save() self.mycsvfile.writerow([ @@ -128,7 +130,7 @@ "Yes", "initializing object(no project)" ]) - if force: + if self.force: mycontentid = models.Content.objects.filter(media_obj_id=element.id)[0].iri_id try: management.call_command('initfrontproject', mycontentid) @@ -144,8 +146,9 @@ else: self.stdout.write(" Project has to be initialized ", ending='') return - ldtproj = models.Project.objects.filter\ - (content=models.Content.objects.filter(media_obj_id=element.id)[0]) + ldtproj = models.Project.objects.filter( + content=models.Content.objects.filter(media_obj_id=element.id)[0] + ) for singleproject in ldtproj: root = etree.XML(singleproject.ldt.encode('utf-8'), self.parser) if root.xpath('medias/media') == []: @@ -153,7 +156,7 @@ continue if root.xpath('medias/media')[0].get("video") != '': embedurl = self.construct_ldt_embed(singleproject.ldt_id) - if force: + if self.force: root.xpath('medias/media')[0].set("video", '') self.stdout.write(" changing videopath arg in .ldt ", ending='') self.mycsvfile.writerow([ @@ -169,16 +172,21 @@ element.save() + def __init__(self, *args, **kwargs): + super(Command, self).__init__(*args, **kwargs) + self.base_url = Site.objects.get_current().domain + settings.BASE_URL + self.parser = etree.XMLParser(encoding='utf-8') + self.logger = logging.getLogger(__name__) + self.force = False + self.mycsvfile = None + def handle(self, *args, **options): ''' handle ''' - self.base_url = Site.objects.get_current().domain + settings.BASE_URL - self.parser = etree.XMLParser(encoding='utf-8') - self.logger = logging.getLogger(__name__) path = options['path'] - force = options['force'] + self.force = options['force'] if not path: path = 'mediaInformations.csv' try: @@ -199,7 +207,7 @@ files1 = models.Media.objects.all() #this list contains every media for elem1 in files1: if number_of_contents(elem1) == 0: - if force: + if self.force: elem1.delete() #if there is no content #linked to the media, the media is removed for the database self.stdout.write(" No content found, media has been removed") @@ -214,19 +222,23 @@ j += 1 continue if elem1.src.lower() == to_https(elem1.src, elem1.videopath).lower(): - self.clean_media_project(elem1, force) - if re.match(r".*\.youtube\.com.*", elem1.src) != None\ - or re.match(r".*youtu\.be.+", elem1.src) != None: + self.clean_media_project(elem1) + if re.match(r".*\.youtube\.com.*", elem1.src) != None \ + or re.match(r".*youtu\.be.+", elem1.src) != None: myembed = construct_youtube_embed(elem1.src) if requests.get(myembed).status_code == 404: self.stdout.write("%s : Video doesn't exists"% elem1.src) if number_of_projects(elem1) > 0: - ldtproj = models.Project.objects.get(id=models.Content.objects.filter\ - (media_obj_id=elem1.id)[0].front_project_id).ldt + ldtproj = models.Project.objects.get( + id=models.Content.objects.filter( + media_obj_id=elem1.id + )[0].front_project_id + ).ldt root = etree.XML(ldtproj.encode('utf-8'), self.parser) - if root.xpath('annotations/content/ensemble/decoupage/elements/element')\ - == []: - if force: + if root.xpath( + 'annotations/content/ensemble/decoupage/elements/element' + ) == []: + if self.force: elem1.delete() self.stdout.write("video doesn't exist anymore : media deleted") self.mycsvfile.writerow([ @@ -237,8 +249,8 @@ ]) j += 1 else: - self.clean_media_project(elem1, force) - if force: + self.clean_media_project(elem1) + if self.force: self.stdout.write("%s files deleted"%j) else: self.stdout.write("%s files to delete"%j) @@ -325,8 +337,10 @@ continue if res > 400: try: - ressrc = requests.head(to_https(elem.src, elem.videopath, 0),\ - timeout=10).status_code + ressrc = requests.head( + to_https(elem.src, elem.videopath, 0), + timeout=10 + ).status_code except (requests.exceptions.Timeout, requests.ConnectionError): self.stdout.write(" can't access source/new files", ending='') self.logger.warning("can't access %s", elem.title) @@ -352,7 +366,7 @@ elif ressrc == 200: self.stdout.write( " file not transcoded yet :" - "keep source extension or wait transcoding to be done",\ + "keep source extension or wait transcoding to be done", ending='') self.logger.warning("%s not transcoded yet", elem.title) self.mycsvfile.writerow([ @@ -379,5 +393,5 @@ "new source already in table" ]) continue - self.clean_media_project(elem, force, newsource) + self.clean_media_project(elem, newsource) csvfile.close()