Changeset 7284


Ignore:
Timestamp:
May 18, 2018, 12:17:28 PM (15 months ago)
Author:
jrpelegrina
Message:

Improved performance of lliurexGdriveIndicator

File:
1 edited

Legend:

Unmodified
Added
Removed
  • lliurex-gdrive/trunk/fuentes/lliurex-gdrive-indicator.install/usr/bin/lliurexGdriveIndicator

    r7146 r7284  
    5050
    5151TIME_CHECK_STATUS=900000
     52DELTA_DATA=20
    5253
    5354class LliurexGdriveIndicator:
     
    143144               
    144145                wm=WatchManager()
    145                 mask= pyinotify.IN_CLOSE_WRITE
     146                mask= pyinotify.IN_CLOSE_WRITE | pyinotify.IN_MOVED_TO
    146147                     
    147148                       
     
    151152                               
    152153                                self.main=main
     154
     155                        #def __init__   
    153156                       
    154157                               
     
    230233                                                                       
    231234                                        else:   
    232                                                 time.sleep(2)
    233                                                 t=join(event.path,event.name)
    234                                                 if isfile(t):
    235                                                        
    236                                                         '''
    237                                                         for item in self.main.profiles_info:
    238                                                                 tmp_mount=self.main.profiles_info[item]["mountpoint"]
    239                                                                
    240                                                                 if event.path in tmp_mount:
    241                                                                         cmd="google-drive-ocamlfuse -cc -label %s"%item
    242                                                                         os.system(cmd)
    243                                                         '''             
    244                                                                                        
    245                                                         try:
    246                                                                
    247                                                                 state=os.stat(t)
    248                                                                
    249                                                         except Exception as e:
    250                                                                 print str(e)
    251                                                                 t=t.split('trashinfo')
    252                                                                 t=t[0]+'trashinfo'
    253                                                                 state=os.stat(t)
    254                                                                
    255                                                         t=t.decode("utf-8")                     
    256                                                         access=datetime.datetime.fromtimestamp(state.st_mtime)
    257                                                         self.main.local_changes[t]=access
    258                                                                                
    259                
     235                                                self.register_change(event)
     236
     237                        #def process_IN_CLOSE_WRITE                     
     238
     239                        def process_IN_MOVED_TO(self,event):
     240
     241                                self.register_change(event)
     242
     243                        #def process_IN_MOVED_TO       
     244                               
     245
     246                        def register_change(self,event):
     247                       
     248                                t=join(event.path,event.name)
     249                                if isfile(t):
     250                                       
     251                                        try:
     252                                                state=os.stat(t)
     253                                               
     254                                        except Exception as e:
     255                                                print str(e)
     256                                                t=t.split('trashinfo')
     257                                                t=t[0]+'trashinfo'
     258                                                state=os.stat(t)
     259                                               
     260
     261                                        t=t.decode("utf-8")     
     262                                        access=datetime.datetime.fromtimestamp(state.st_mtime)
     263                                        self.main.local_changes[t]=access
     264
     265                        #def register_change
     266
    260267                notifier=Notifier(wm,Process_handler(self))
    261268                wdd=wm.add_watch(LliurexGdriveIndicator.WATCH_DIR,mask,rec=True)
     
    265272                        wdd=wm.add_watch(path,mask,rec=True)
    266273
    267                
     274                trasfolder=os.path.expanduser("~/.local/share/Trash/files")
     275                wdd=wm.add_watch(trasfolder,mask,rec=False)
    268276                while True:
    269277                        try:
     
    821829                                                        data=item.split(":__")[1]
    822830                                                        for i in self.local_changes:
    823                                                                 if file==i:
     831                                                                if file ==i:
    824832                                                                        data=datetime.datetime.strptime(data,'%Y-%m-%d %H:%M:%S')
    825833                                                                        if data<=self.local_changes[i]:
    826834                                                                                toInfo_up.remove(item)
     835                                                                                break
     836                                                                        else:
     837                                                                                dif_data=(data-self.local_changes[i]).seconds
     838                                                                                if int(dif_data)<DELTA_DATA:
     839                                                                                        toInfo_up.remove(item)
     840                                                                                        break
     841                                                                                       
    827842                                                to_info['files_changes']=toInfo_up                             
    828843                                        if len(tmp_deletes)>0:
     
    836851                                                                        if data<=self.local_changes[i]:
    837852                                                                                toInfo_rm.remove(item)
     853                                                                                break
     854                                                                        else:
     855                                                                                dif_data=(data-self.local_changes[i]).seconds
     856                                                                                if int(dif_data)<DELTA_DATA:
     857                                                                                        toInfo_rm.remove(item) 
     858                                                                                        break
    838859                                                to_info['files_delete']=toInfo_rm                                       
    839860
     
    847868                                                                        if data<=self.local_changes[i]:
    848869                                                                                toInfo_add.remove(item)
     870                                                                                break
     871                                                                        else:
     872                                                                                dif_data=(data-self.local_changes[i]).seconds
     873                                                                                if int(dif_data)<DELTA_DATA:
     874                                                                                        toInfo_add.remove(item)
     875                                                                                        break   
    849876                                                to_info['files_add']=toInfo_add
    850877                                else:
     
    878905                                                        diff_changes=final_files.difference(original_files)
    879906                                                        diff_deletes=original_files.difference(final_files)
    880                                                        
    881907                                                        if len(diff_changes)>0:
    882908                                                                changes.append(info_changes)
    883 
    884909                                                                if len(diff_deletes)>0:
    885910                                                                                tmp_del=diff_deletes.copy()
     
    892917                                                                                                        tmp_del.remove(item)
    893918                                                                                                        tmp_add.remove(element)
    894 
     919                                                                                                        break
     920                                                                                                else:
     921                                                                                                        short_file_d=os.path.basename(file_d)
     922
     923                                                                                                        if short_file_d in file_c:
     924                                                                                                                tmp_del.remove(item)   
     925                                                                                                                break
    895926                                                                                if len(tmp_del)>0:
    896927                                                                                        info_changes['files_deletes']=tmp_del
Note: See TracChangeset for help on using the changeset viewer.