~nochka85/cairo-dock-plug-ins/quick_rss_reader

« back to all changes in this revision

Viewing changes to quick_rss_reader.sh

  • Committer: nochka85 at cairo-dock
  • Date: 2009-09-07 10:04:34 UTC
  • Revision ID: nochka85@cairo-dock.org-20090907100434-60jlrl03m4be6ai3
Création de la branche

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/bin/bash
 
2
 
 
3
# This is a part of the external applet quick_rss_reader.py for Cairo-Dock
 
4
#
 
5
# Copyright : (C) 2009 by Yann Dulieu (Nochka85)
 
6
# E-mail : nochka85@cairo-dock.org
 
7
#
 
8
#
 
9
# This program is free software; you can redistribute it and/or
 
10
# modify it under the terms of the GNU General Public License
 
11
# as published by the Free Software Foundation; either version 2
 
12
# of the License, or (at your option) any later version.
 
13
#
 
14
# This program is distributed in the hope that it will be useful,
 
15
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 
16
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 
17
# GNU General Public License for more details.
 
18
# http://www.gnu.org/licenses/licenses.html#GPL
 
19
#
 
20
#
 
21
# Rev : 0.0.3
 
22
# Date : 09/09/06
 
23
 
 
24
APP_FOLDER=$(pwd)
 
25
 
 
26
DBUS_NAME="org.cairodock.CairoDock"
 
27
DBUS_PATH="/org/cairodock/CairoDock"
 
28
DBUS_INTERFACE="org.cairodock.CairoDock"
 
29
COMMAND=$0
 
30
SCRIPT_NAME=`basename $COMMAND`
 
31
APP_NAME="`echo $SCRIPT_NAME | cut -f1 -d '.' `"
 
32
ACTION=$1
 
33
DROP_DATA=$2
 
34
MENU_SELECT=$2
 
35
SCROLL_UP=$2
 
36
CURRENT_FEED="1"
 
37
 
 
38
CONF_FILE="/home/$USER/.config/cairo-dock/current_theme/plug-ins/$APP_NAME/$APP_NAME.conf"
 
39
TEMP_FILE_PATH="/tmp"
 
40
TEMP_FILE_NAME="cd-$APP_NAME"
 
41
 
 
42
POSITION_IN_CONF="2"
 
43
DESCRIPTION="This applet allows you to simply read RSS feeds.
 
44
Usage :
 
45
Scroll UP/DOWN = switch between the rss feeds.
 
46
Left click = Display the current rss feed infos in an info-bubble.
 
47
Middle click = Display the current rss feed name.
 
48
'Open this rss feed' in menu = Open the current rss feed in your web browser.
 
49
by Yann Dulieu (Nochka85)
 
50
(contact : nochka85@cairo-dock.org)"
 
51
 
 
52
 
 
53
#############################################################################################################
 
54
register_the_applet() {
 
55
dbus-send --session --dest=$DBUS_NAME $DBUS_PATH $DBUS_INTERFACE.RegisterNewModule string:"$APP_NAME" int32:$POSITION_IN_CONF string:"$DESCRIPTION" string:"$APP_FOLDER"
 
56
exit
 
57
}
 
58
 
 
59
#############################################################################################################
 
60
get_conf_param() {
 
61
LIGNE=`cat $CONF_FILE | grep "$1"`
 
62
PARAM="`echo $LIGNE | cut -f2 -d '=' `"
 
63
}
 
64
 
 
65
#############################################################################################################
 
66
get_temp_file_info() {
 
67
LIGNE=`cat "$TEMP_FILE_PATH/$TEMP_FILE_NAME" | grep "$1"`
 
68
PARAM="`echo $LIGNE | cut -f2 -d '=' `"
 
69
}
 
70
 
 
71
#############################################################################################################
 
72
get_common_conf_params() {
 
73
 
 
74
get_conf_param "specific_web_browser"
 
75
specific_web_browser="$PARAM"
 
76
get_conf_param "specific_rss_reader_full_path"
 
77
specific_rss_reader_full_path="$PARAM"
 
78
get_conf_param "dialogs_duration"
 
79
dialogs_duration="$PARAM"
 
80
 
 
81
}
 
82
 
 
83
#############################################################################################################
 
84
display_rss_feed() {
 
85
 
 
86
NAME="$1"
 
87
URL="$2"
 
88
LINES="$3"
 
89
TITLE_NUM="$4"
 
90
TIME="$5"
 
91
USER_RSS_READER_FULL_PATH="$6"
 
92
 
 
93
echo "$APP_NAME applet -> Script Name : $SCRIPT_NAME -> $NAME"
 
94
echo "$APP_NAME applet -> Script Name : $SCRIPT_NAME -> $URL"
 
95
echo "$APP_NAME applet -> Script Name : $SCRIPT_NAME -> $LINES"
 
96
echo "$APP_NAME applet -> Script Name : $SCRIPT_NAME -> $TITLE_NUM"
 
97
echo "$APP_NAME applet -> Script Name : $SCRIPT_NAME -> $TIME"
 
98
echo "$APP_NAME applet -> Script Name : $SCRIPT_NAME -> $USER_RSS_READER_FULL_PATH"
 
99
 
 
100
if [ "`echo $URL`" == "" ]; then        # no defined URL
 
101
        echo "$APP_NAME applet -> Script Name : $SCRIPT_NAME -> NO URL DEFINED FOR THIS ACTION -> No action !"
 
102
else
 
103
        if [ "`echo $USER_RSS_READER_PATH`" == "" ]; then       # no specific user rss reader defined
 
104
                echo "$APP_NAME applet -> Script Name : $SCRIPT_NAME -> NO USER RSS READER SCRIPT -> Use the default one !"
 
105
                READER_TO_USE="$APP_FOLDER/rss_reader.sh"
 
106
        else
 
107
                echo "$APP_NAME applet -> Script Name : $SCRIPT_NAME -> SPECIFIC USER RSS READER DEFINED -> $USER_RSS_READER_FULL_PATH"
 
108
                # We test that the script exists :
 
109
                USER_READER_NAME="`basename $USER_RSS_READER_FULL_PATH`"
 
110
                USER_READER_DIR="`echo "$USER_RSS_READER_FULL_PATH" | sed -e "s/[^\/]*$//"`"
 
111
                if [ "`ls "$USER_READER_DIR" | grep "$USER_READER_NAME"`" = "$USER_READER_NAME" ]; then # the script exists
 
112
                        READER_TO_USE="$USER_RSS_READER_FULL_PATH"
 
113
                        echo "$APP_NAME applet -> Script Name : $SCRIPT_NAME -> THE SCRIPT EXISTS !"
 
114
                else
 
115
                        echo "$APP_NAME applet -> Script Name : $SCRIPT_NAME -> THE SCRIPT DOESN'T EXIST !"
 
116
                        exit
 
117
                fi
 
118
        fi
 
119
OUTPUT="`echo "$NAME" && $READER_TO_USE $URL $LINES $TITLE_NUM`"
 
120
dbus-send --session --dest=$DBUS_NAME $DBUS_PATH/$APP_NAME $DBUS_INTERFACE.applet.ShowDialog string:"$OUTPUT" int32:$TIME
 
121
 
 
122
fi
 
123
 
 
124
}
 
125
 
 
126
#############################################################################################################
 
127
action_on_click() {
 
128
get_common_conf_params
 
129
get_temp_file_info "CURRENT_FEED"
 
130
CURRENT_FEED="$PARAM"
 
131
 
 
132
if [ $CURRENT_FEED -eq "1" ]; then
 
133
        TEMP_CURRENT_FEED="01"
 
134
else
 
135
        TEMP_CURRENT_FEED="$CURRENT_FEED"
 
136
fi
 
137
 
 
138
echo "$APP_NAME applet -> Script Name : $SCRIPT_NAME -> Left clic !"
 
139
 
 
140
get_conf_param "url_rss_feed_$TEMP_CURRENT_FEED"
 
141
url_rss_feed="$PARAM"
 
142
 
 
143
get_conf_param "name_rss_feed_$TEMP_CURRENT_FEED"
 
144
name_rss_feed="$PARAM"
 
145
 
 
146
get_conf_param "lines_rss_feed_$TEMP_CURRENT_FEED"
 
147
lines_rss_feed="$PARAM"
 
148
 
 
149
get_conf_param "title_num_rss_feed_$TEMP_CURRENT_FEED"
 
150
title_num_rss_feed="$PARAM"
 
151
 
 
152
display_rss_feed "$name_rss_feed" "$url_rss_feed" "$lines_rss_feed" "$title_num_rss_feed" "$dialogs_duration" "$specific_rss_reader_full_path"
 
153
 
 
154
exit
 
155
}
 
156
 
 
157
#############################################################################################################
 
158
action_on_middle_click() {
 
159
get_common_conf_params
 
160
get_temp_file_info "CURRENT_FEED"
 
161
CURRENT_FEED="$PARAM"
 
162
 
 
163
if [ $CURRENT_FEED -eq "1" ]; then
 
164
        TEMP_CURRENT_FEED="01"
 
165
else
 
166
        TEMP_CURRENT_FEED="$CURRENT_FEED"
 
167
fi
 
168
 
 
169
echo "$APP_NAME applet -> Script Name : $SCRIPT_NAME -> Middle clic !"
 
170
 
 
171
get_conf_param "name_rss_feed_$TEMP_CURRENT_FEED"
 
172
name_rss_feed="$PARAM"
 
173
 
 
174
dbus-send --session --dest=$DBUS_NAME $DBUS_PATH/$APP_NAME $DBUS_INTERFACE.applet.ShowDialog string:"$name_rss_feed" int32:2
 
175
dbus-send --session --dest=$DBUS_NAME $DBUS_PATH/$APP_NAME $DBUS_INTERFACE.applet.Animate string:default int32:2
 
176
 
 
177
exit
 
178
}
 
179
 
 
180
#############################################################################################################
 
181
action_on_scroll_icon() {
 
182
 
 
183
if [ "`echo $SKIP`" != "YES" ]; then
 
184
        get_temp_file_info "CURRENT_FEED"
 
185
        CURRENT_FEED="$PARAM"
 
186
fi
 
187
 
 
188
if [ $SCROLL_UP -eq "0" ]; then
 
189
        echo "$APP_NAME applet -> Script Name : $SCRIPT_NAME -> Scroll UP !"
 
190
        CURRENT_FEED=$((CURRENT_FEED + 1))
 
191
 
 
192
        if [ $CURRENT_FEED -eq "11" ]; then
 
193
                CURRENT_FEED=1
 
194
        fi
 
195
 
 
196
        if [ $CURRENT_FEED -eq "1" ]; then
 
197
                TEMP_CURRENT_FEED="01"
 
198
        else
 
199
                TEMP_CURRENT_FEED="$CURRENT_FEED"
 
200
        fi
 
201
        echo "$APP_NAME applet -> Script Name : $SCRIPT_NAME -> Current feed = $CURRENT_FEED"
 
202
 
 
203
        get_conf_param "url_rss_feed_$TEMP_CURRENT_FEED"
 
204
        url_rss_feed="$PARAM"
 
205
 
 
206
        echo "$APP_NAME applet -> Script Name : $SCRIPT_NAME -> URL = $url_rss_feed"
 
207
 
 
208
        get_conf_param "url_rss_feed_$TEMP_CURRENT_FEED"
 
209
        url_rss_feed="$PARAM"
 
210
 
 
211
        LAST_SCROLL="0"
 
212
 
 
213
else
 
214
        echo "$APP_NAME applet -> Script Name : $SCRIPT_NAME -> Scroll DOWN !"
 
215
        CURRENT_FEED=$((CURRENT_FEED - 1))
 
216
 
 
217
        if [ $CURRENT_FEED -eq "0" ]; then
 
218
                CURRENT_FEED=10
 
219
        fi
 
220
 
 
221
        if [ $CURRENT_FEED -eq "1" ]; then
 
222
                TEMP_CURRENT_FEED="01"
 
223
        else
 
224
                TEMP_CURRENT_FEED="$CURRENT_FEED"
 
225
        fi
 
226
        echo "$APP_NAME applet -> Script Name : $SCRIPT_NAME -> Current feed = $CURRENT_FEED"
 
227
 
 
228
        get_conf_param "url_rss_feed_$TEMP_CURRENT_FEED"
 
229
        url_rss_feed="$PARAM"
 
230
 
 
231
        echo "$APP_NAME applet -> Script Name : $SCRIPT_NAME -> URL = $url_rss_feed"
 
232
 
 
233
 
 
234
        get_conf_param "url_rss_feed_$TEMP_CURRENT_FEED"
 
235
        url_rss_feed="$PARAM"
 
236
        
 
237
        LAST_SCROLL="1"
 
238
 
 
239
fi
 
240
 
 
241
echo "CURRENT_FEED=$CURRENT_FEED" > $TEMP_FILE_PATH/$TEMP_FILE_NAME   # writing temp file to retrieve informations
 
242
 
 
243
if [ "`echo $url_rss_feed`" == "" ]; then
 
244
        SKIP="YES"
 
245
        if [ "`echo $LAST_SCROLL`" == "0" ]; then
 
246
                SCROLL_UP="0"
 
247
                action_on_scroll_icon
 
248
        else
 
249
                SCROLL_UP="1"
 
250
                action_on_scroll_icon
 
251
        fi
 
252
else
 
253
        SKIP="NO"
 
254
        get_conf_param "name_rss_feed_$TEMP_CURRENT_FEED"
 
255
        name_rss_feed="$PARAM"
 
256
        if [ "`echo $name_rss_feed`" == "" ]; then
 
257
                name_rss_feed="(no name defined)"
 
258
        fi
 
259
fi
 
260
 
 
261
echo "$APP_NAME applet -> Script Name : $SCRIPT_NAME -> NAME = $name_rss_feed"
 
262
 
 
263
dbus-send --session --dest=$DBUS_NAME $DBUS_PATH/$APP_NAME $DBUS_INTERFACE.applet.ShowDialog string:"$name_rss_feed" int32:1
 
264
dbus-send --session --dest=$DBUS_NAME $DBUS_PATH/$APP_NAME $DBUS_INTERFACE.applet.Animate string:default int32:2
 
265
 
 
266
exit
 
267
}
 
268
 
 
269
#############################################################################################################
 
270
action_on_drop_data() {
 
271
get_common_conf_params
 
272
 
 
273
if [ "`echo $DROP_DATA |grep 'file://'`" != "" ]; then  # It's a file !
 
274
        DROP_DATA="`echo $DROP_DATA | cut -c 8-`"  # we remove 'file://' before the location
 
275
        echo "$APP_NAME applet -> Script Name : $SCRIPT_NAME -> FILE : $DROP_DATA has been dropped on applet : No specific action defined for dropped files !"
 
276
else    # It's an URL ! -> we keep the 'http://' in the name
 
277
        echo "$APP_NAME applet -> Script Name : $SCRIPT_NAME -> URL : $DROP_DATA has been dropped on applet : No specific action defined for dropped url !" 
 
278
fi
 
279
exit
 
280
}
 
281
 
 
282
#############################################################################################################
 
283
action_on_init() {
 
284
get_common_conf_params
 
285
 
 
286
echo "$APP_NAME applet -> Script Name : $SCRIPT_NAME -> Our module init -> DONE !"
 
287
rm -f $TEMP_FILE_PATH/$TEMP_FILE_NAME
 
288
echo "CURRENT_FEED=1" > $TEMP_FILE_PATH/$TEMP_FILE_NAME   # writing temp file to retrieve informations
 
289
 
 
290
exit
 
291
}
 
292
 
 
293
#############################################################################################################
 
294
action_on_stop() {
 
295
get_common_conf_params
 
296
 
 
297
echo "$APP_NAME applet -> Script Name : $SCRIPT_NAME -> Our module is stopped"
 
298
rm -f $TEMP_FILE_PATH/$TEMP_FILE_NAME
 
299
 
 
300
exit
 
301
}
 
302
 
 
303
#############################################################################################################
 
304
action_on_reload() {
 
305
get_common_conf_params
 
306
 
 
307
echo "$APP_NAME applet -> Script Name : $SCRIPT_NAME -> Our module is reloaded"
 
308
rm -f $TEMP_FILE_PATH/$TEMP_FILE_NAME
 
309
echo "CURRENT_FEED=1" > $TEMP_FILE_PATH/$TEMP_FILE_NAME   # writing temp file to retrieve informations
 
310
 
 
311
exit
 
312
}
 
313
 
 
314
#############################################################################################################
 
315
action_on_build_menu() {
 
316
get_common_conf_params
 
317
 
 
318
echo "$APP_NAME applet -> Script Name : $SCRIPT_NAME -> Build menu !"
 
319
dbus-send --session --dest=$DBUS_NAME $DBUS_PATH/$APP_NAME $DBUS_INTERFACE.applet.PopulateMenu array:string:"Open this rss feed"
 
320
 
 
321
exit
 
322
}
 
323
 
 
324
#############################################################################################################
 
325
action_on_menu_select() {
 
326
get_common_conf_params
 
327
get_temp_file_info "CURRENT_FEED"
 
328
CURRENT_FEED="$PARAM"
 
329
 
 
330
if [ $CURRENT_FEED -eq "1" ]; then
 
331
        TEMP_CURRENT_FEED="01"
 
332
else
 
333
        TEMP_CURRENT_FEED="$CURRENT_FEED"
 
334
fi
 
335
 
 
336
echo "$APP_NAME applet -> Script Name : $SCRIPT_NAME -> Choice $MENU_SELECT has been selected !"
 
337
 
 
338
get_conf_param "url_rss_feed_$TEMP_CURRENT_FEED"
 
339
url_rss_feed="$PARAM"
 
340
 
 
341
 
 
342
if [ "`echo $specific_web_browser`" == "" ]; then
 
343
        echo "$APP_NAME applet -> Script Name : $SCRIPT_NAME -> No browser defined -> Use firefox !"
 
344
        firefox $url_rss_feed > /dev/null 2>&1 &
 
345
        exit
 
346
else
 
347
        echo "$APP_NAME applet -> Script Name : $SCRIPT_NAME -> Specific web browser defined in conf : $specific_web_browser"
 
348
        $specific_web_browser $url_rss_feed > /dev/null 2>&1 &
 
349
fi
 
350
 
 
351
exit
 
352
}
 
353
 
 
354
#############################################################################################################
 
355
# START ### DO NOT CHANGE THIS SECTION
 
356
#############################################################################################################
 
357
 
 
358
if [ "`echo $ACTION |grep 'register_the_applet'`" != "" ]; then
 
359
        register_the_applet
 
360
elif [ "`echo $ACTION |grep 'action_on_click'`" != "" ]; then
 
361
        action_on_click
 
362
elif [ "`echo $ACTION |grep 'action_on_middle_click'`" != "" ]; then
 
363
        action_on_middle_click
 
364
elif [ "`echo $ACTION |grep 'action_on_scroll_icon'`" != "" ]; then
 
365
        action_on_scroll_icon
 
366
elif [ "`echo $ACTION |grep 'action_on_drop_data'`" != "" ]; then
 
367
        action_on_drop_data
 
368
elif [ "`echo $ACTION |grep 'action_on_init'`" != "" ]; then
 
369
        action_on_init
 
370
elif [ "`echo $ACTION |grep 'action_on_stop'`" != "" ]; then
 
371
        action_on_stop
 
372
elif [ "`echo $ACTION |grep 'action_on_reload'`" != "" ]; then
 
373
        action_on_reload
 
374
elif [ "`echo $ACTION |grep 'action_on_build_menu'`" != "" ]; then
 
375
        action_on_build_menu
 
376
elif [ "`echo $ACTION |grep 'action_on_menu_select'`" != "" ]; then
 
377
        action_on_menu_select
 
378
fi
 
379
 
 
380
exit
 
381