68
68
69
69
import os , sys , time
70
70
import datetime
71
-
71
+ from dateparser import parse
72
72
# ============================================================
73
73
# DECLARE TRICK for false self.poster
74
74
@@ -144,55 +144,6 @@ def check(self):
144
144
self .pulls [maskDir ].append (mask )
145
145
146
146
147
- def _file_date_exceed_limit (self , date , time_limit ):
148
- """comments:
149
- This method compares today's date to the file's date by creating a date time object
150
- Four formats are acceptd so far, more can be added if needed (format on https://strftime.org/ )
151
- Files with future dates are processed as long as the (future date - todays date) is < time_limit.
152
- FIXME: french input like Fev will not work - only Feb is accepted for the month
153
- If year is not provided, this means that the file is < 6 months old, so depending on todays date,
154
- assign appropriate year (for jan-jun -> assign prev year, for jul-dec assign current year)
155
- Note: is it possible for a file to be more than 6 months old and have the format Mo Day TIME ? (problematic)
156
- """
157
- time_limit = int (time_limit )
158
- current_date = datetime .datetime .now ()
159
- try :
160
- date_temp = datetime .datetime .strptime (date , '%d %b %H:%M' )
161
- if date_temp .month - current_date .month >= 6 :
162
- file_date = date_temp .replace (year = (current_date .year - 1 ))
163
- else :
164
- file_date = date_temp .replace (year = current_date .year )
165
- self .logger .debug ("File date is: " + str (file_date ) +
166
- " > File is " + str (abs ((file_date - current_date ).seconds ))+ " seconds old" )
167
- return abs ((file_date - current_date ).seconds ) < time_limit
168
- except Exception as e :
169
- try :
170
- date_temp = datetime .datetime .strptime (date , '%b %d %H:%M' )
171
- if date_temp .month - current_date .month >= 6 :
172
- file_date = date_temp .replace (year = (current_date .year - 1 ))
173
- else :
174
- file_date = date_temp .replace (year = current_date .year )
175
- self .logger .debug ("File date is: " + str (file_date ) +
176
- " > File is " + str (abs ((file_date - current_date ).seconds ))+ " seconds old" )
177
- return abs ((file_date - current_date ).seconds ) < time_limit
178
- except Exception as e :
179
- try :
180
- file_date = datetime .datetime .strptime (date , '%b %d %Y' )
181
- self .logger .debug ("File date is: " + str (file_date ) +
182
- " > File is " + str (abs ((file_date - current_date ).seconds )) + " seconds old" )
183
- return abs ((file_date - current_date ).seconds ) < time_limit
184
- except Exception as e :
185
- try :
186
- file_date = datetime .datetime .strptime (date , '%d %b %Y' )
187
- self .logger .debug ("File date is: " + str (file_date ) + " > File is " +
188
- str (abs ((file_date - current_date ).seconds )) + " seconds old" )
189
- return abs ((file_date - current_date ).seconds ) < time_limit
190
- except Exception as e :
191
- warning_msg = str (e )
192
- # self.logger.error("%s, assuming ok" % warning_msg)
193
- self .logger .error ("Assuming ok, unrecognized date format, %s" % date )
194
- return True
195
-
196
147
# find differences between current ls and last ls
197
148
# only the newer or modified files will be kept...
198
149
@@ -207,6 +158,7 @@ def differ_ls_file(self, ls, lspath):
207
158
208
159
old_ls = self .load_ls_file (lspath )
209
160
161
+ file_within_date_limit = True
210
162
# compare
211
163
212
164
filelst = []
@@ -215,34 +167,33 @@ def differ_ls_file(self, ls, lspath):
215
167
for f in new_lst :
216
168
# self.logger.debug("checking %s (%s)" % (f,ls[f]))
217
169
try :
218
- str1 = ls [f ]
219
- str2 = str1 .split ()
220
- # specify input for this routine.
221
- # ls[f] format controlled by online plugin (line_mode.py)
222
- # this format could change depending on plugin
223
- # line_mode.py format "-rwxrwxr-x 1 1000 1000 8123 24 Mar 22:54 2017-03-25-0254-CL2D-AUTO-minute-swob.xml"
224
- date = str2 [5 ] + " " + str2 [6 ] + " " + str2 [7 ]
225
- if self ._file_date_exceed_limit (date , self .file_time_limit ):
226
- self .logger .debug ("File should be processed" )
227
- # execute rest of code
228
- # keep a newer entry
229
- if not f in old_ls :
230
- # self.logger.debug("IS NEW %s" % f)
231
- filelst .append (f )
232
- desclst [f ] = ls [f ]
233
- continue
234
-
235
- # keep a modified entry
236
- if ls [f ] != old_ls [f ]:
237
- # self.logger.debug("IS DIFFERENT %s from (%s,%s)" % (f,old_ls[f],ls[f]))
238
- filelst .append (f )
239
- desclst [f ] = ls [f ]
240
- continue
241
- else :
242
- self .logger .debug ("File should be skipped" )
243
- # ignore rest of code and re iterate
170
+ line_split = ls [f ].split ()
171
+ date = line_split [5 ] + " " + line_split [6 ]
172
+ file_date = parse (date )
173
+ current_date = datetime .datetime .now ()
174
+ file_within_date_limit = abs ((file_date - current_date ).seconds ) < self .file_time_limit
244
175
except :
176
+ self .logger .error ("Assuming ok, incorrect date format for line: %s" % ls [f ])
245
177
pass
178
+ if file_within_date_limit :
179
+ self .logger .debug ("File should be processed" )
180
+ # execute rest of code
181
+ # keep a newer entry
182
+ if not f in old_ls :
183
+ # self.logger.debug("IS NEW %s" % f)
184
+ filelst .append (f )
185
+ desclst [f ] = ls [f ]
186
+ continue
187
+
188
+ # keep a modified entry
189
+ if ls [f ] != old_ls [f ]:
190
+ # self.logger.debug("IS DIFFERENT %s from (%s,%s)" % (f,old_ls[f],ls[f]))
191
+ filelst .append (f )
192
+ desclst [f ] = ls [f ]
193
+ continue
194
+ else :
195
+ self .logger .debug ("File should be skipped" )
196
+ # ignore rest of code and re iterate
246
197
# self.logger.debug("IS IDENTICAL %s" % f)
247
198
248
199
return filelst , desclst
0 commit comments