Skip to content

Commit bacf40e

Browse files
committed
added !num syntax for get_choice()
1 parent d92ed30 commit bacf40e

File tree

1 file changed

+52
-21
lines changed

1 file changed

+52
-21
lines changed

log.py

Lines changed: 52 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -93,10 +93,10 @@ def rules_pass(rules, currField=''):
9393

9494
return False
9595

96-
if filters.get('exclude') != None and rules_pass(filters['exclude']) == True:
96+
if bool(filters.get('exclude')) and rules_pass(filters['exclude']) == True:
9797
return False
9898

99-
if filters.get('include') != None and rules_pass(filters['include']) == False:
99+
if bool(filters.get('include')) and rules_pass(filters['include']) == False:
100100
return False
101101

102102
return True
@@ -203,7 +203,8 @@ def print_tree(tree, fields, pad="", level=0):
203203

204204

205205
def print_report(files, fields, filters={}):
206-
print('\n---------\nGroup by : ', fields)
206+
print('\n---------\nGroup by : ', fields, '\n---------\n')
207+
print('---------\nFilters : ', filters, '\n---------\n')
207208
print()
208209
sys.stdout.flush()
209210

@@ -223,30 +224,58 @@ def print_report(files, fields, filters={}):
223224

224225
print_tree(res['tree'], fields)
225226

227+
226228
def get_choice(choice_str, list_of_choices, default_num=None):
227229
choices = list(enumerate(list_of_choices, 1))
228-
num, choice = choices[default_num - 1] if default_num != None else (0, None)
230+
include, exclude = [], []
231+
232+
def parse_choice(inpt):
233+
user_unput = inpt.split('!')
234+
index = int(user_unput[1]) if len(user_unput) == 2 else int(user_unput[0])
235+
if index == '':
236+
raise Exception('Enter was pressed')
237+
if index <= len(choices) and index > -len(choices):
238+
if index > 0:
239+
index -= 1
240+
num, setlected_set = choices[index]
241+
# choice = setlected_set
242+
if len(user_unput) == 2:
243+
exclude.append(setlected_set)
244+
else:
245+
include.append(setlected_set)
246+
else:
247+
return False
248+
return True
249+
229250
while True:
230251
print(choice_str)
231-
print("\n\t(Default value is:", choice, ")")
252+
print("\n\t(Default num is:", default_num, ")")
232253
for num, name in choices:
233254
print("\t{}) {}".format(num, name))
234255
print("Press Enter for use default value...")
256+
235257
try:
236-
index = int(input())
237-
if index <= len(choices) and index > -len(choices):
238-
if index > 0:
239-
index -= 1
240-
num, setlected_set = choices[index]
241-
choice = setlected_set
258+
if parse_choice(input()) == True:
242259
break
243260
except:
261+
print("Default setting")
262+
if default_num != None:
263+
parse_choice(str(default_num))
244264
break
245-
print("\nValue is: ", choice)
265+
266+
print("\nValues is: exclude = ", exclude, "include=", include)
246267
print("\n\n")
247-
if type(list_of_choices) is dict and choice != None:
248-
choice = list_of_choices[choice]
249-
return choice
268+
269+
def list_cases(arr):
270+
if type(list_of_choices) is dict and len(arr) > 0:
271+
for i, v in enumerate(arr):
272+
arr[i] = list_of_choices[v]
273+
return arr
274+
275+
return {
276+
'include': list_cases(include),
277+
'exclude': list_cases(exclude),
278+
}
250279

251280

252281
if __name__ == '__main__':
@@ -351,6 +380,9 @@ def get_choice(choice_str, list_of_choices, default_num=None):
351380
{'uri': r'^/(?:bio|music|song|short_story)/[^\/?#\\]+(?:\.html|\/)?$'},
352381
{'uri': r'^/img/[a-z\d\-\_]+\.(?:png|jpg|gif)$'},
353382
],
383+
'hide bot': [
384+
{'ua': r'bot|scan'},
385+
],
354386
}
355387

356388
group_set = [
@@ -386,13 +418,12 @@ def get_choice(choice_str, list_of_choices, default_num=None):
386418
# sys.exit(0)
387419

388420
# Select filters
389-
filters = get_choice("=== Select set of exclude filters:", site)
421+
filters = get_choice(
422+
"=== Select set of exclude filters (!num for include):", site)
390423

391-
print_report(files, groups, {
392-
'exclude': [
393-
skip_my_ip,
394-
filters,
395-
],
424+
print_report(files, groups['include'][0], {
425+
'exclude': ([skip_my_ip] + filters['include']),
426+
'include': filters['exclude'],
396427
})
397428

398429
# Extract only important

0 commit comments

Comments
 (0)