some stylistic modifications
authorymh <ymh.work@gmail.com>
Fri, 31 Mar 2017 17:15:17 +0200
changeset 334 0ddcaaf893e9
parent 333 77b56a7aaa7e
child 335 c7a01f03c19c
some stylistic modifications
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()