-
Notifications
You must be signed in to change notification settings - Fork 0
/
script.sh
152 lines (136 loc) · 4.35 KB
/
script.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
# Author : Łukasz Nowakowski
# Created on : 06.05.2022
# Last Modified By : Łukasz Nowakowski
# Last Modified On : 13.05.2022
# Version : 1.0.1
#
# Description : Script generates html report based on found key words in mozilla firefox browser history.
#
# Licensed under GPL (see /usr/share/common-licenses/GPL for more details or contact the Free Software Foundation for a copy)
version="1.0.1"
menu=("Generuj raport" "Dodaj słowa kluczowe" "Statystyki i monitoring" "Ustawienia raportu")
addKeyWordMenu=("Dodaj kategorię" "Wyświetl kategorie" "Dodaj słowo kluczowe do kategorii" "Usuń słowo kluczowe z kategorii" "Usuń kategorię")
flag="1"
while getopts ":hv" option;
do
case $option in
"h")
flag="0"
echo "Script does not support any parameters yet";;
"v")
flag="0"
echo $version;;
esac
done
sed -i '/^$/d' keyWordCategories.txt
readarray -t keyWordCategories < keyWordCategories.txt
ls /home > /tmp/allUsers.txt
printPrimaryMenu(){
option=`zenity --list --column=Menu "${menu[@]}" --height 250 --width 400`
case $option in
"Generuj raport") generateReport;;
"Dodaj słowa kluczowe") addKeyWord;;
"Statystyki i monitoring") statistics;;
"Ustawienia raportu") reportSettings;;
*)
if [[ -f /tmp/report.html ]]; then
rm /tmp/report.html
fi
if [[ -f /tmp/data.dat ]]; then
rm /tmp/data.dat
fi
if [[ -f /tmp/allUsers.txt ]]; then
rm /tmp/allUsers.txt
fi
;;
esac
}
generateReport(){
./generateReport.sh
firefox /tmp/report.html
printPrimaryMenu
}
addKeyWord(){
option=`zenity --list --column=Menu "${addKeyWordMenu[@]}" --height 300 --width 350`
case $option in
"Dodaj kategorię")
value=`zenity --entry --text "Podaj nazwę nowej kategorii"`
echo $value >> keyWordCategories.txt
touch "keyWordCategories/${value}.txt"
readarray -t keyWordCategories < keyWordCategories.txt
addKeyWord
;;
"Wyświetl kategorie")
value=`zenity --list --column=Kategorie "${keyWordCategories[@]}"`
cat "keyWordCategories/${value}.txt" | zenity --text-info --height 700 --width 400 --title "Słowa kluczowe"
addKeyWord
;;
"Dodaj słowo kluczowe do kategorii")
value=`zenity --list --column=Kategorie "${keyWordCategories[@]}"`
word=`zenity --entry --text "Podaj słowo kluczowe"`
echo $word >> "keyWordCategories/${value}.txt"
addKeyWord
;;
"Usuń słowo kluczowe z kategorii")
value=`zenity --list --column=Kategorie "${keyWordCategories[@]}"`
readarray -t words < keyWordCategories/${value}.txt
word=`zenity --list --column=Slowo "${words[@]}"`
sed "/${word}/d" keyWordCategories/${value}.txt > temp.txt
cat temp.txt > keyWordCategories/${value}.txt
rm temp.txt
addKeyWord
;;
"Usuń kategorię")
value=`zenity --list --column=Kategorie "${keyWordCategories[@]}"`
rm "keyWordCategories/${value}.txt"
sed "/${value}/d" keyWordCategories.txt > temp.txt
cat temp.txt > keyWordCategories.txt
rm temp.txt
readarray -t keyWordCategories < keyWordCategories.txt
addKeyWord
;;
*) printPrimaryMenu
esac
}
statistics(){
./generateReport.sh
dayRange=`cat config.txt | cut -d "," -f 1`
totalKeyWords=0
column=("Wartość")
totalSearch=(`wc -l /tmp/data.dat | cut -d " " -f 1`)
column+=("Ilość wyszukiwań")
column+=($totalSearch)
column+=("Ilość kategorii")
column+=(`wc -l keyWordCategories.txt | cut -d " " -f 1`)
column+=("Ilość słów kluczowych")
readarray -t categories < keyWordCategories.txt
for i in "${categories[@]}"
do
count=`wc -l keyWordCategories/$i.txt | cut -d " " -f 1`
sum=$(($totalKeyWords + $count))
totalKeyWords=$sum
done
column+=($totalKeyWords)
totalKeyWordOccurs=`cat /tmp/keyWords.txt`
column+=("Łącznie znalezionych słów kluczowych")
column+=($totalKeyWordOccurs)
column+=("Średnia ilość słów kluczowych na ilość wyszukań")
value="0"`bc <<< "scale=3; $totalKeyWordOccurs/$totalSearch"`
column+=($value)
zenity --list --multiple --column=Nazwa --column="${column[@]}" --height 300 --width 500
rm /tmp/keyWords.txt
printPrimaryMenu
}
reportSettings(){
config=$(zenity --forms --title="Ustawienia raportu" \
--separator="," \
--add-entry="Zakres dni obejmujący raport" \
--add-entry="Zapisz raport [T/N]" \
--add-entry="Lokalizacja pliku raportu" \
--add-entry="Uwzględniaj tylko słowa kluczowe [T/N]");
echo $config > config.txt
printPrimaryMenu
}
if [[ $flag == "1" ]]; then
printPrimaryMenu
fi