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

« back to all changes in this revision

Viewing changes to quick_rss_reader.py

  • 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
#!/usr/bin/python
 
2
 
 
3
# This is the external applet quick_rss_reader.py for Cairo-Dock
 
4
# (based on the demo.py applet from Fabounet)
 
5
#
 
6
# Copyright : (C) 2009 by Yann Dulieu (Nochka85)
 
7
# E-mail : nochka85@cairo-dock.org
 
8
#
 
9
#
 
10
# This program is free software; you can redistribute it and/or
 
11
# modify it under the terms of the GNU General Public License
 
12
# as published by the Free Software Foundation; either version 2
 
13
# of the License, or (at your option) any later version.
 
14
#
 
15
# This program is distributed in the hope that it will be useful,
 
16
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 
17
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 
18
# GNU General Public License for more details.
 
19
# http://www.gnu.org/licenses/licenses.html#GPL
 
20
#
 
21
#
 
22
# Rev : 0.0.3
 
23
# Date : 09/09/06
 
24
 
 
25
 
 
26
### import ###
 
27
import sys
 
28
import gobject
 
29
import glib
 
30
import gtk
 
31
import dbus
 
32
import os.path
 
33
from dbus.mainloop.glib import DBusGMainLoop
 
34
 
 
35
 
 
36
### env variables ###
 
37
app_folder = os.path.dirname(sys.argv[0])       # name of the script folder
 
38
app_name = os.popen("TEMP=`basename " + sys.argv[0] +"` && echo $TEMP | cut -f1 -d '.' ").read().rstrip()       # name of the script without th '.py' extension AND without the './' if running as a script
 
39
if app_folder == "":
 
40
        app_folder = os.getcwd()
 
41
 
 
42
### let's connect to the dock.###
 
43
DBusGMainLoop(set_as_default=True)
 
44
bus = dbus.SessionBus()
 
45
try:
 
46
        dock_object = bus.get_object("org.cairodock.CairoDock",
 
47
                        "/org/cairodock/CairoDock")
 
48
except dbus.DBusException:
 
49
        print app_name + " applet : Cairo-Dock not found on bus (did you activate its 'DBus' plug-in ?)"
 
50
        sys.exit(1)
 
51
dock_iface = dbus.Interface(dock_object, "org.cairodock.CairoDock")
 
52
 
 
53
 
 
54
### let's register our applet !###
 
55
return_from_bash = os.popen("cd " + app_folder + " && ./" + app_name + ".sh " + " register_the_applet").read().rstrip()
 
56
try:
 
57
        applet_object = bus.get_object("org.cairodock.CairoDock",
 
58
                        "/org/cairodock/CairoDock/" + app_name)
 
59
except dbus.DBusException:
 
60
        print app_name + " applet : the module has not been registered"
 
61
        sys.exit(2)
 
62
applet_iface = dbus.Interface(applet_object, "org.cairodock.CairoDock.applet")
 
63
        
 
64
 
 
65
### init ###
 
66
def init():     
 
67
        # register to the notifications on our applet
 
68
        applet_iface.connect_to_signal("on_click_icon", action_on_click)
 
69
        applet_iface.connect_to_signal("on_middle_click_icon", action_on_middle_click)
 
70
        applet_iface.connect_to_signal("on_scroll_icon", action_on_scroll_icon)
 
71
        applet_iface.connect_to_signal("on_drop_data", action_on_drop_data)
 
72
        applet_iface.connect_to_signal("on_init_module", action_on_init)
 
73
        applet_iface.connect_to_signal("on_stop_module", action_on_stop)
 
74
        applet_iface.connect_to_signal("on_reload_module", action_on_reload)
 
75
        applet_iface.connect_to_signal("on_build_menu", action_on_build_menu)
 
76
        applet_iface.connect_to_signal("on_menu_select", action_on_menu_select)
 
77
        
 
78
 
 
79
 
 
80
### callbacks ###
 
81
def action_on_click(iState):
 
82
        return_from_bash = os.popen("cd " + app_folder + " && ./" + app_name + ".sh " + " action_on_click").read().rstrip()
 
83
        print return_from_bash
 
84
        
 
85
def action_on_middle_click():
 
86
        return_from_bash = os.popen("cd " + app_folder + " && ./" + app_name + ".sh " + " action_on_middle_click").read().rstrip()
 
87
        print return_from_bash
 
88
 
 
89
def action_on_scroll_icon(bUpOrDown):
 
90
        if bUpOrDown:
 
91
                return_from_bash = os.popen("cd " + app_folder + " && ./" + app_name + ".sh " + " action_on_scroll_icon 0").read().rstrip()
 
92
                print return_from_bash          
 
93
        else:
 
94
                return_from_bash = os.popen("cd " + app_folder + " && ./" + app_name + ".sh " + " action_on_scroll_icon 1").read().rstrip()
 
95
                print return_from_bash
 
96
                
 
97
def action_on_drop_data(sDataName):
 
98
        return_from_bash = os.popen("cd " + app_folder + " && ./" + app_name + ".sh " + " action_on_drop_data " + sDataName).read().rstrip()
 
99
        print return_from_bash
 
100
 
 
101
def action_on_init():
 
102
        return_from_bash = os.popen("cd " + app_folder + " && ./" + app_name + ".sh " + " action_on_init").read().rstrip()
 
103
        print return_from_bash
 
104
        
 
105
def action_on_stop():
 
106
        return_from_bash = os.popen("cd " + app_folder + " && ./" + app_name + ".sh " + " action_on_stop").read().rstrip()
 
107
        print return_from_bash
 
108
        
 
109
def action_on_reload(bConfigHasChanged):
 
110
        if bConfigHasChanged:
 
111
                return_from_bash = os.popen("cd " + app_folder + " && ./" + app_name + ".sh " + " action_on_reload").read().rstrip()
 
112
                print return_from_bash
 
113
 
 
114
def action_on_build_menu():
 
115
        return_from_bash = os.popen("cd " + app_folder + " && ./" + app_name + ".sh " + " action_on_build_menu").read().rstrip()
 
116
        print return_from_bash
 
117
        
 
118
def action_on_menu_select(iNumEntry):
 
119
        return_from_bash = os.popen("cd " + app_folder + " && ./" + app_name + ".sh " + " action_on_menu_select " + str(iNumEntry)).read().rstrip()
 
120
        print return_from_bash
 
121
 
 
122
 
 
123
### main ###
 
124
if __name__ == '__main__':
 
125
        init()
 
126
        gtk.main()
 
127
        stop()
 
128
        sys.exit(0)