Compare commits
5 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6be78e7ea3 | ||
|
|
327e497a2f | ||
|
|
72f8d0a1c6 | ||
|
|
197574552f | ||
| ffd0bff316 |
8 changed files with 768 additions and 21 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
grnotify_1.1.2.tar.gz
|
||||
21
Makefile
21
Makefile
|
|
@ -1,21 +0,0 @@
|
|||
# Makefile for source rpm: grnotify
|
||||
# $Id$
|
||||
NAME := grnotify
|
||||
SPECFILE = $(firstword $(wildcard *.spec))
|
||||
|
||||
define find-makefile-common
|
||||
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
|
||||
endef
|
||||
|
||||
MAKEFILE_COMMON := $(shell $(find-makefile-common))
|
||||
|
||||
ifeq ($(MAKEFILE_COMMON),)
|
||||
# attept a checkout
|
||||
define checkout-makefile-common
|
||||
test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
|
||||
endef
|
||||
|
||||
MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
|
||||
endif
|
||||
|
||||
include $(MAKEFILE_COMMON)
|
||||
596
grnotify-1.1.2-fixurl.patch
Normal file
596
grnotify-1.1.2-fixurl.patch
Normal file
|
|
@ -0,0 +1,596 @@
|
|||
diff -up grnotify-1.1.2/grnotify.patch grnotify-1.1.2/grnotify
|
||||
--- grnotify-1.1.2/grnotify.patch 2009-01-31 22:32:30.000000000 +0100
|
||||
+++ grnotify-1.1.2/grnotify 2009-04-09 08:07:18.420146374 +0200
|
||||
@@ -37,13 +37,13 @@ VERSION = '1.1.2'
|
||||
|
||||
#########
|
||||
#Main class: the tray icon
|
||||
-#
|
||||
+#
|
||||
class grnotify(Thread):
|
||||
-
|
||||
+
|
||||
#--------------------------------------------
|
||||
# initialization
|
||||
#--------------------------------------------
|
||||
-
|
||||
+
|
||||
#configuration options if there is no config file
|
||||
def initialConfig(self):
|
||||
if not (os.path.exists(os.path.join(os.environ['HOME'], '.grnotify/'))):
|
||||
@@ -65,8 +65,8 @@ class grnotify(Thread):
|
||||
self.autoHide = False
|
||||
self.useKeyRing = True
|
||||
self.ok = False
|
||||
-
|
||||
-
|
||||
+
|
||||
+
|
||||
def saveConfig(self):
|
||||
CONFIGFILE = os.path.join(os.environ['HOME'], '.grnotify/config')
|
||||
config = ConfigParser.ConfigParser()
|
||||
@@ -87,7 +87,7 @@ class grnotify(Thread):
|
||||
config.set("Icons", "New items icon", self.iconNew)
|
||||
config.set("Icons", "No new items icon", self.iconNoNew)
|
||||
config.set("Icons", "Broken icon", self.iconBroken)
|
||||
-
|
||||
+
|
||||
config.write(open(CONFIGFILE, 'w'))
|
||||
|
||||
def readConfig(self):
|
||||
@@ -109,7 +109,7 @@ class grnotify(Thread):
|
||||
self.openReader = config.get("User settings", "open reader").lower() != "false"
|
||||
self.autoHide = config.get("User settings", "autohide").lower() != "false"
|
||||
self.useKeyRing = config.get("User settings", "useKeyRing").lower() != "false"
|
||||
-
|
||||
+
|
||||
self.iconNew = config.get("Icons", "New items icon")
|
||||
self.iconNoNew = config.get("Icons", "No new items icon")
|
||||
self.iconBroken = config.get("Icons", "Broken icon")
|
||||
@@ -119,17 +119,17 @@ class grnotify(Thread):
|
||||
os.remove(CONFIGFILE)
|
||||
else:
|
||||
self.newUser = True
|
||||
-
|
||||
+
|
||||
def saveKeyRing(self, passwd):
|
||||
keyring = "login"
|
||||
try:
|
||||
-
|
||||
+
|
||||
import gnomekeyring
|
||||
import gconf
|
||||
gnomekeyring.create_sync(keyring, None)
|
||||
except gnomekeyring.AlreadyExistsError:
|
||||
pass
|
||||
-
|
||||
+
|
||||
try:
|
||||
auth_token = gnomekeyring.item_create_sync(
|
||||
keyring,
|
||||
@@ -146,16 +146,16 @@ class grnotify(Thread):
|
||||
keyring = "login"
|
||||
password = ''
|
||||
try:
|
||||
-
|
||||
+
|
||||
import gnomekeyring
|
||||
import gconf
|
||||
- gnomekeyring.create_sync(keyring, None)
|
||||
- except gnomekeyring.AlreadyExistsError:
|
||||
- pass
|
||||
+ gnomekeyring.create_sync(keyring, None)
|
||||
+ except gnomekeyring.AlreadyExistsError:
|
||||
+ pass
|
||||
auth_token = gconf.client_get_default().get_int("/apps/grnotify/keyring_auth_token")
|
||||
if auth_token > 0:
|
||||
try:
|
||||
- password = gnomekeyring.item_get_info_sync(keyring,
|
||||
+ password = gnomekeyring.item_get_info_sync(keyring,
|
||||
auth_token).get_secret()
|
||||
except:
|
||||
pass
|
||||
@@ -165,8 +165,7 @@ class grnotify(Thread):
|
||||
url = "https://www.google.com/accounts/ServiceLoginAuth?" + \
|
||||
urllib.urlencode({'Email':grnotify_app.greader.email}) + "&" + \
|
||||
urllib.urlencode({'Passwd':grnotify_app.greader.passwd}) + \
|
||||
- "&service=reader&continue=" + \
|
||||
- "https://www.google.com/reader&nui=1"
|
||||
+ "&continue=https://www.google.com/reader&nui=1"
|
||||
webbrowser.open_new_tab(url)
|
||||
|
||||
def __init__(self):
|
||||
@@ -182,46 +181,46 @@ class grnotify(Thread):
|
||||
self.tray_icon = egg.trayicon.TrayIcon("grnotify")
|
||||
|
||||
# create a eventbox object which is going to be added to the trayicon object
|
||||
- self.grnotify_eventbox = gtk.EventBox()
|
||||
+ self.grnotify_eventbox = gtk.EventBox()
|
||||
|
||||
# add the eventbox object to the trayicon object for event handling (click, scroll)
|
||||
self.tray_icon.add(self.grnotify_eventbox)
|
||||
-
|
||||
+
|
||||
# connect "click" event to their handlers
|
||||
self.grnotify_eventbox.connect("button_press_event", self.clicked)
|
||||
-
|
||||
-
|
||||
+
|
||||
+
|
||||
# create container
|
||||
self.traycontainer = gtk.HBox()
|
||||
-
|
||||
+
|
||||
# create the image object
|
||||
self.icon = gtk.Image()
|
||||
# and the unread label
|
||||
self.unread_label = gtk.Label('? ')
|
||||
-
|
||||
+
|
||||
# set the image pixmap
|
||||
self.icon.set_from_file(self.iconBroken)
|
||||
# add the image object to the tray container
|
||||
self.traycontainer.pack_start(self.icon, False, False, padding = 0)
|
||||
self.traycontainer.pack_start(self.unread_label, False, False, padding = 0)
|
||||
self.grnotify_eventbox.add(self.traycontainer)
|
||||
-
|
||||
-
|
||||
+
|
||||
+
|
||||
# create the tooltip, pass it the actual information and add it to the grnotify_eventbox
|
||||
self.tooltip = gtk.Tooltips()
|
||||
self.tooltip_message = "Getting feed info"
|
||||
self.tooltip.set_tip(self.grnotify_eventbox,self.tooltip_message)
|
||||
self.tooltip.enable()
|
||||
-
|
||||
+
|
||||
# show the trayicon (+ etc.)
|
||||
- self.tray_icon.show_all()
|
||||
+ self.tray_icon.show_all()
|
||||
# self.properties = properties_dialog()
|
||||
self.menu = tray_menu(self)
|
||||
self.about = about_dialog()
|
||||
|
||||
#
|
||||
#---- clicked :the eventbox (from the trayicon) click event handler
|
||||
- #
|
||||
+ #
|
||||
def clicked(self,widget,event):
|
||||
# right click
|
||||
if event.button == 3:
|
||||
@@ -231,31 +230,31 @@ class grnotify(Thread):
|
||||
if event.button == 1:
|
||||
if self.ok and self.openReader:
|
||||
self.openGoogleReader()
|
||||
- else:
|
||||
+ else:
|
||||
self.getUnreadFeeds()
|
||||
-
|
||||
+
|
||||
def run(self):
|
||||
if self.newUser:
|
||||
configure_window()
|
||||
while not self.ok:
|
||||
self.refresh()
|
||||
time.sleep(30)
|
||||
- while (1):
|
||||
+ while (1):
|
||||
time.sleep(self.waitTime)
|
||||
self.refresh()
|
||||
-
|
||||
+
|
||||
def refresh(self, forced = False):
|
||||
- if self.broken:
|
||||
+ if self.broken:
|
||||
self.notification('Please fill in your info in preferences')
|
||||
self.broken = False
|
||||
self.refresher = updater(forced)
|
||||
self.refresher.start()
|
||||
-
|
||||
+
|
||||
def updateToolTip(self):
|
||||
gtk.gdk.threads_enter()
|
||||
if self.ok:
|
||||
message = str(self.greader.totalUnread) + ' unread item'
|
||||
- if self.greader.totalUnread != 1:
|
||||
+ if self.greader.totalUnread != 1:
|
||||
message += 's'
|
||||
i = 0
|
||||
for feed in self.feeds:
|
||||
@@ -266,7 +265,7 @@ class grnotify(Thread):
|
||||
message = 'Something went wrong.\nPlease check your internet connection and settings.'
|
||||
self.tooltip.set_tip(self.grnotify_eventbox, message)
|
||||
gtk.gdk.threads_leave()
|
||||
-
|
||||
+
|
||||
def updateIcon(self):
|
||||
gtk.gdk.threads_enter()
|
||||
if not self.ok:
|
||||
@@ -280,13 +279,13 @@ class grnotify(Thread):
|
||||
grnotify_app.unread_label.set_text(str(self.greader.totalUnread)+ ' ')
|
||||
grnotify_app.icon.show_all()
|
||||
grnotify_app.unread_label.show_all()
|
||||
-
|
||||
+
|
||||
if not self.showCounter or self.greader.totalUnread == 0:
|
||||
grnotify_app.unread_label.hide()
|
||||
if self.autoHide and self.greader.totalUnread == 0:
|
||||
grnotify_app.icon.hide()
|
||||
gtk.gdk.threads_leave()
|
||||
-
|
||||
+
|
||||
#shows the notification
|
||||
def notify(self, current, previous):
|
||||
try:
|
||||
@@ -297,7 +296,7 @@ class grnotify(Thread):
|
||||
self.notification("You have " + str(current-previous) + " new unread items")
|
||||
except:
|
||||
pass
|
||||
-
|
||||
+
|
||||
def notification(self, message):
|
||||
if self.showNotification:
|
||||
#try:
|
||||
@@ -308,7 +307,7 @@ class grnotify(Thread):
|
||||
bubble.show()
|
||||
#except:
|
||||
# pass
|
||||
-
|
||||
+
|
||||
######################### BEGIN CLASS TRAY MENU ##########################
|
||||
#Create the configure window
|
||||
#Written by Kristof Bamps @ Feb 5 2008
|
||||
@@ -323,10 +322,10 @@ class tray_menu:
|
||||
# create the menu separator menu item object
|
||||
menu_item_refresh = gtk.ImageMenuItem('gtk-refresh',None)
|
||||
menu_item_refresh.connect('activate',self.refresh_clicked)
|
||||
-
|
||||
+
|
||||
menu_google_reader = gtk.ImageMenuItem ('Open Google Reader', None)
|
||||
menu_google_reader.connect ('activate', self.openGoogleReader)
|
||||
-
|
||||
+
|
||||
menu_mark_read = gtk.ImageMenuItem ('Mark all as read', None)
|
||||
menu_mark_read.connect('activate', self.markAllRead)
|
||||
if (self.parent.greader.totalUnread == 0 ):
|
||||
@@ -354,71 +353,71 @@ class tray_menu:
|
||||
self.window.add(menu_item_feed)
|
||||
self.window.add(menu_item_preferences)
|
||||
self.window.add (gtk.SeparatorMenuItem())
|
||||
-
|
||||
+
|
||||
view_item = gtk.Menu()
|
||||
- menu_view_item = gtk.MenuItem ('View Items', None)
|
||||
+ menu_view_item = gtk.MenuItem ('View Items', None)
|
||||
menu_view_item.set_submenu (view_item)
|
||||
self.setTitels(view_item)
|
||||
if (self.parent.greader.totalUnread == 0 or self.parent.numberTitles == 0):
|
||||
menu_view_item.set_sensitive (0)
|
||||
self.window.add (menu_view_item)
|
||||
-
|
||||
+
|
||||
self.window.add (gtk.SeparatorMenuItem())
|
||||
# add the about menu item to the menu object
|
||||
self.window.add(menu_item_about)
|
||||
-
|
||||
+
|
||||
# create the quit menu item object with it's icon
|
||||
menu_item_quit = gtk.ImageMenuItem('gtk-quit',None)
|
||||
|
||||
# connect a handler to it
|
||||
menu_item_quit.connect('activate',self.exit)
|
||||
|
||||
- # add the quit menu item to the menu object
|
||||
+ # add the quit menu item to the menu object
|
||||
self.window.add(menu_item_quit)
|
||||
-
|
||||
+
|
||||
# show the menu
|
||||
- self.window.show_all()
|
||||
+ self.window.show_all()
|
||||
def exit(self,widget):
|
||||
- # quit menu item handler -> quit the application
|
||||
+ # quit menu item handler -> quit the application
|
||||
os.system("kill " + str (os.getpid()))
|
||||
-
|
||||
+
|
||||
def feed_clicked (self, widget):
|
||||
popup = feedPopup()
|
||||
-
|
||||
+
|
||||
def markAllRead (self, widget):
|
||||
self.parent.greader.markAllRead()
|
||||
self.parent.refresh()
|
||||
-
|
||||
+
|
||||
def refresh_clicked (self, widget):
|
||||
self.parent.refresh()
|
||||
-
|
||||
+
|
||||
def preferences_clicked (self, widget):
|
||||
configureWindow = configure_window()
|
||||
-
|
||||
+
|
||||
def about_clicked(self,widget):
|
||||
# about menu item handler -> create the about window
|
||||
grnotify_app.about.create()
|
||||
-
|
||||
+
|
||||
def popup(self,event):
|
||||
# popup-show the menu
|
||||
- self.window.popup( None, None, None, 0, event.time);
|
||||
-
|
||||
+ self.window.popup( None, None, None, 0, event.time);
|
||||
+
|
||||
def close(self,widget):
|
||||
# the warning close button has been clicked (or the window was closed else way)
|
||||
grnotify_app.warning_close_button = True
|
||||
-
|
||||
+
|
||||
# the window isn't opened
|
||||
grnotify_app.warning_window_opened = False
|
||||
self.window.destroy()
|
||||
-
|
||||
+
|
||||
def openGoogleReader(self, widget = None):
|
||||
url = "https://www.google.com/accounts/ServiceLoginAuth?" + \
|
||||
urllib.urlencode({'Email':grnotify_app.greader.email}) + "&" + \
|
||||
urllib.urlencode({'Passwd':grnotify_app.greader.passwd}) + \
|
||||
"&service=reader&continue=" + \
|
||||
- "https://www.google.com/reader&nui=1"
|
||||
+ "https://www.google.com/reader&nui=1"
|
||||
webbrowser.open_new_tab(url)
|
||||
-
|
||||
+
|
||||
def openlink(self, item):
|
||||
i = 0
|
||||
for item2 in self.items:
|
||||
@@ -427,18 +426,18 @@ class tray_menu:
|
||||
self.markRead(self.titles[i].id, self.titles[i].feed)
|
||||
self.parent.refresh(forced=True)
|
||||
i = i+1
|
||||
-
|
||||
+
|
||||
def markRead(self, id, feed):
|
||||
req = urllib2.Request ('http://www.google.com/reader/api/0/token')
|
||||
f = urllib2.urlopen (req)
|
||||
token = f.read()
|
||||
-
|
||||
+
|
||||
data = { 'i' : id, 's' : feed, 'T' : token, 'ac' : 'edit-tags' , 'a' : 'user/-/state/com.google/read' }
|
||||
data = urllib.urlencode (data)
|
||||
url = 'http://www.google.com/reader/api/0/edit-tag'
|
||||
req = urllib2.Request (url, data)
|
||||
f = urllib2.urlopen (req)
|
||||
-
|
||||
+
|
||||
def setTitels(self, menu) :
|
||||
self.items = []
|
||||
self.titles = []
|
||||
@@ -449,7 +448,7 @@ class tray_menu:
|
||||
self.items.append(gtk.MenuItem (title.title, None))
|
||||
self.items[-1].connect ('activate', self.openlink)
|
||||
menu.add (self.items[-1])
|
||||
-
|
||||
+
|
||||
else:
|
||||
self.menus = []
|
||||
self.feedMenus = []
|
||||
@@ -469,14 +468,14 @@ class tray_menu:
|
||||
menu.add(self.menus[-1])
|
||||
else:
|
||||
del self.menus[-1]
|
||||
-
|
||||
+
|
||||
class about_dialog:
|
||||
def create(self):
|
||||
CONFIG = '/usr/share/grnotify/'
|
||||
# set the glade file
|
||||
- self.gladefile = CONFIG + "about.glade"
|
||||
+ self.gladefile = CONFIG + "about.glade"
|
||||
|
||||
- # create the widget three
|
||||
+ # create the widget three
|
||||
self.wTree = gtk.glade.XML(self.gladefile, "window_about")
|
||||
self.wTree.signal_autoconnect(self)
|
||||
|
||||
@@ -495,7 +494,7 @@ class about_dialog:
|
||||
def on_close_button_clicked(self, button=None, data=None):
|
||||
#Close the dialog
|
||||
self.window.destroy()
|
||||
-
|
||||
+
|
||||
class updater (Thread):
|
||||
def __init__(self, forced = False):
|
||||
Thread.__init__(self)
|
||||
@@ -506,8 +505,8 @@ class updater (Thread):
|
||||
grnotify_app.greader.login(grnotify_app.user, grnotify_app.passwd)
|
||||
grnotify_app.feeds = grnotify_app.greader.getUnreadFeeds()
|
||||
grnotify_app.ok = True
|
||||
-
|
||||
-
|
||||
+
|
||||
+
|
||||
grnotify_app.updateToolTip()
|
||||
grnotify_app.updateIcon()
|
||||
if grnotify_app.unread != grnotify_app.greader.totalUnread or self.forced:
|
||||
@@ -519,31 +518,31 @@ class updater (Thread):
|
||||
grnotify_app.updateToolTip()
|
||||
grnotify_app.updateIcon()
|
||||
pass
|
||||
-
|
||||
-
|
||||
+
|
||||
+
|
||||
class feedPopup:
|
||||
def __init__(self):
|
||||
CONFIG = '/usr/share/grnotify/'
|
||||
|
||||
#Create the dialog
|
||||
self.gladefile = CONFIG + "feed.glade"
|
||||
- self.xml = gtk.glade.XML(self.gladefile)
|
||||
+ self.xml = gtk.glade.XML(self.gladefile)
|
||||
self.xml.signal_autoconnect(self)
|
||||
self.window = self.xml.get_widget('main_window')
|
||||
self.window.set_title('GrNotify: Add feed')
|
||||
def on_close_button_clicked(self, button=None, data=None):
|
||||
#Close the dialog
|
||||
self.window.destroy()
|
||||
-
|
||||
+
|
||||
def on_save_button_clicked(self, button=None, data=None):
|
||||
# try:
|
||||
-
|
||||
+
|
||||
feed = self.xml.get_widget('entry1').get_text()
|
||||
self.window.destroy()
|
||||
addFeed(feed).start()
|
||||
-
|
||||
+
|
||||
class addFeed(Thread):
|
||||
- def __init__(self, feed):
|
||||
+ def __init__(self, feed):
|
||||
self.feed = feed
|
||||
Thread.__init__(self)
|
||||
def run(self):
|
||||
@@ -551,7 +550,7 @@ class addFeed(Thread):
|
||||
req = urllib2.Request ('http://www.google.com/reader/api/0/token')
|
||||
f = urllib2.urlopen (req)
|
||||
token = f.read()
|
||||
-
|
||||
+
|
||||
data = { 's' : 'feed/' + self.feed, 'T' : token, 'ac' : 'subscribe'}
|
||||
data = urllib.urlencode (data)
|
||||
url = 'http://www.google.com/reader/api/0/subscription/edit?client=contact:' + grnotify_app.user
|
||||
@@ -560,16 +559,16 @@ class addFeed(Thread):
|
||||
grnotify_app.refresh()
|
||||
except:
|
||||
pass
|
||||
-
|
||||
+
|
||||
class DBusReader(dbus.service.Object):
|
||||
- @dbus.service.method("org.gnome.feed.Reader",
|
||||
+ @dbus.service.method("org.gnome.feed.Reader",
|
||||
in_signature="s", out_signature="b")
|
||||
def Subscribe(self, url):
|
||||
try:
|
||||
req = urllib2.Request('http://www.google.com/reader/api/0/token')
|
||||
f = urllib2.urlopen(req)
|
||||
token = f.read()
|
||||
-
|
||||
+
|
||||
data = {'s': 'feed/' + url, 'T': token, 'ac': 'subscribe'}
|
||||
data = urllib.urlencode(data)
|
||||
req = urllib2.Request('http://www.google.com/reader/api/0/subscription/edit?client=contact:' + grnotify_app.user, data)
|
||||
@@ -580,7 +579,7 @@ class DBusReader(dbus.service.Object):
|
||||
return True
|
||||
except:
|
||||
return False
|
||||
-
|
||||
+
|
||||
class configure_window:
|
||||
def __init__(self):
|
||||
#Set variables
|
||||
@@ -588,7 +587,7 @@ class configure_window:
|
||||
|
||||
#Create the dialog
|
||||
self.gladefile = CONFIG + "config.glade"
|
||||
- self.xml = gtk.glade.XML(self.gladefile)
|
||||
+ self.xml = gtk.glade.XML(self.gladefile)
|
||||
self.xml.signal_autoconnect(self)
|
||||
self.window = self.xml.get_widget('main_window')
|
||||
|
||||
@@ -602,11 +601,11 @@ class configure_window:
|
||||
self.xml.get_widget('spinbutton1').set_text( str( ( grnotify_app.waitTime - grnotify_app.waitTime % 60 ) / 60) )
|
||||
self.xml.get_widget('spinbutton2').set_text( str( grnotify_app.waitTime % 60 ) )
|
||||
self.xml.get_widget('spinbutton3').set_text( str( grnotify_app.numberFeeds ) )
|
||||
- if( grnotify_app.showCounter == True ):
|
||||
+ if( grnotify_app.showCounter == True ):
|
||||
self.xml.get_widget('showcounter1').set_active(1)
|
||||
if grnotify_app.showNotification == True:
|
||||
self.xml.get_widget('showpopups1').set_active(1)
|
||||
- #Set the appropriate images to the icon chosers!!!
|
||||
+ #Set the appropriate images to the icon chosers!!!
|
||||
self.xml.get_widget('imagechooseiconnew2').set_from_file(grnotify_app.iconNew)
|
||||
self.xml.get_widget('buttonchooseiconnew2').connect("clicked", self.iconclicked, "new")
|
||||
self.xml.get_widget('imagechooseiconnonew2').set_from_file(grnotify_app.iconNoNew)
|
||||
@@ -647,22 +646,22 @@ class configure_window:
|
||||
self.fileselect.add_filter(filter)
|
||||
|
||||
response = self.fileselect.run()
|
||||
-
|
||||
+
|
||||
if response == gtk.RESPONSE_OK:
|
||||
self.iconget(widget,data)
|
||||
elif response == gtk.RESPONSE_CANCEL:
|
||||
self.fileselect.destroy()
|
||||
-
|
||||
+
|
||||
def iconget(self, widget, data=None):
|
||||
filename = self.fileselect.get_filename()
|
||||
self.fileselect.destroy()
|
||||
-
|
||||
+
|
||||
if(not filename.endswith('.gif') and not filename.endswith('.png') and not filename.endswith('.xpm')):
|
||||
return
|
||||
-
|
||||
+
|
||||
if(not os.stat(filename).st_size > 0):
|
||||
return
|
||||
-
|
||||
+
|
||||
if ( data == 'new' ):
|
||||
gtk.gdk.pixbuf_new_from_file(filename).scale_simple(24, 24, gtk.gdk.INTERP_NEAREST).save(os.path.join(os.environ['HOME'], '.grnotify/newtemp.png'), "png", {})
|
||||
self.fileiconnew = 'changed'
|
||||
@@ -674,7 +673,7 @@ class configure_window:
|
||||
self.fileiconbroken = 'changed'
|
||||
self.xml.get_widget('imagechooseicon' + data + '2').set_from_file(os.path.join(os.environ['HOME'], '.grnotify/' + data + 'temp.png'))
|
||||
|
||||
- def get_info(self):
|
||||
+ def get_info(self):
|
||||
grnotify_app.user = self.xml.get_widget('username_entry2').get_text()
|
||||
grnotify_app.passwd = self.xml.get_widget('password_entry2').get_text()
|
||||
grnotify_app.waitTime =int( self.xml.get_widget('spinbutton1').get_text()) * 60
|
||||
@@ -695,8 +694,8 @@ class configure_window:
|
||||
grnotify_app.iconNoNew = '/usr/share/pixmaps/grnotify/nonew.gif'
|
||||
grnotify_app.iconBroken = '/usr/share/pixmaps/grnotify/broken.gif'
|
||||
grnotify_app.numberFeeds = int (self.xml.get_widget('spinbutton3').get_text())
|
||||
- grnotify_app.showCounter = self.xml.get_widget('showcounter1').get_active()
|
||||
- grnotify_app.showNotification = self.xml.get_widget('showpopups1').get_active()
|
||||
+ grnotify_app.showCounter = self.xml.get_widget('showcounter1').get_active()
|
||||
+ grnotify_app.showNotification = self.xml.get_widget('showpopups1').get_active()
|
||||
grnotify_app.openReader = not self.xml.get_widget('combobox2').get_active()
|
||||
grnotify_app.autoHide = self.xml.get_widget('autohide').get_active()
|
||||
grnotify_app.useKeyRing = self.xml.get_widget('gnomekeyring').get_active()
|
||||
@@ -705,7 +704,7 @@ class configure_window:
|
||||
def on_save_button_clicked(self, button=None, data=None):
|
||||
#Get global access to the config_changed variable
|
||||
#Aquire the new data
|
||||
- self.get_info()
|
||||
+ self.get_info()
|
||||
|
||||
#Save the new data to the config file
|
||||
grnotify_app.saveConfig()
|
||||
@@ -717,12 +716,12 @@ class configure_window:
|
||||
def on_close_button_clicked(self, button=None, data=None):
|
||||
#Close the dialog
|
||||
self.window.destroy()
|
||||
-
|
||||
+
|
||||
if __name__ == "__main__" :
|
||||
gtk.gdk.threads_init()
|
||||
-
|
||||
+
|
||||
# create the grnotify object (and icon)
|
||||
-
|
||||
+
|
||||
#readConfig() # fix by Eric Lembregts -> needed to know where the icon's are located!!
|
||||
grnotify_app = grnotify()
|
||||
grnotify_app.start()
|
||||
@@ -734,5 +733,5 @@ if __name__ == "__main__" :
|
||||
name = dbus.service.BusName("org.gnome.feed.Reader", session_bus)
|
||||
reader = DBusReader(session_bus, '/org/gnome/feed/Reader')
|
||||
mainloop = gobject.MainLoop()
|
||||
-
|
||||
+
|
||||
gtk.main()
|
||||
46
grnotify-setup.py
Normal file
46
grnotify-setup.py
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
#/usr/bin/python
|
||||
"""Copyright (C) 2009 Kristof Bamps
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
"""
|
||||
from distutils.core import setup
|
||||
from os import path
|
||||
import sys
|
||||
|
||||
DATA_DIR = path.join('share')
|
||||
PIXMAPS_DIR = path.join(DATA_DIR , 'pixmaps')
|
||||
APP_DIR = path.join(DATA_DIR , 'applications')
|
||||
|
||||
setup(
|
||||
name='grnotify',
|
||||
version='1.1.2',
|
||||
author='Kristof Bamps',
|
||||
author_email='bamps DOT kristof AT gmail.com',
|
||||
url='https://sourceforge.net/projects/grnotify/',
|
||||
license='GPLv2+',
|
||||
description='A Google Reader in python',
|
||||
platforms='Any',
|
||||
py_modules=['GoogleReader'],
|
||||
scripts=['grnotify'],
|
||||
data_files=[
|
||||
(PIXMAPS_DIR + "/grnotify",
|
||||
['pixmaps/broken.gif', 'pixmaps/new.gif', 'pixmaps/nonew.gif']),
|
||||
(PIXMAPS_DIR,
|
||||
['pixmaps/grnotify.xpm']),
|
||||
(DATA_DIR + "/grnotify",
|
||||
['share/about.glade', 'share/config.glade', 'share/feed.glade']),
|
||||
(APP_DIR,
|
||||
['share/grnotify.desktop'])
|
||||
]
|
||||
)
|
||||
14
grnotify.desktop
Normal file
14
grnotify.desktop
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
Type=Application
|
||||
Terminal=false
|
||||
Name[en_US]=GrNotify
|
||||
Name[fr_FR]=GrNotify
|
||||
Exec=grnotify
|
||||
Comment[en_US]=A Google Reader Notifier
|
||||
Comment[fr_FR]=Un notificateur pour Google Reader
|
||||
Name=GrNotify
|
||||
Comment=A Google Reader Notifier
|
||||
Icon=grnotify
|
||||
Categories=Network;
|
||||
GenericName=GrNotify
|
||||
110
grnotify.spec
Normal file
110
grnotify.spec
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
|
||||
|
||||
Name: grnotify
|
||||
Version: 1.1.2
|
||||
Release: 6%{?dist}
|
||||
Summary: Google Reader Notifier
|
||||
|
||||
Group: Applications/Internet
|
||||
License: GPLv2+
|
||||
URL: http://grnotify.sourceforge.net
|
||||
Source0: http://downloads.sourceforge.net/%{name}/%{name}_%{version}.tar.gz
|
||||
Source1: %{name}.desktop
|
||||
Source2: %{name}-setup.py
|
||||
Patch0: %{name}-%{version}-fixurl.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
BuildArch: noarch
|
||||
|
||||
BuildRequires: python
|
||||
BuildRequires: python-devel
|
||||
BuildRequires: desktop-file-utils
|
||||
|
||||
Requires: gtk2 > 2.0
|
||||
Requires: python >= 2.2
|
||||
Requires: pygtk2 >= 2.0
|
||||
Requires: PyXML >= 0.8.3
|
||||
Requires: gnome-python2-extras
|
||||
Requires: notify-python >= 0.1
|
||||
Requires: pygtk2-libglade
|
||||
|
||||
|
||||
%description
|
||||
GrNotify is a simple Python written tray application that will allow you to
|
||||
know when there are new items in the Google Reader.
|
||||
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch0 -p1 -b .fixurl
|
||||
cp -p %{SOURCE2} ./setup.py
|
||||
|
||||
# rpmlint : "grnotify.noarch: E: non-executable-script /usr/lib/python2.5/site-packages/grnotify/GoogleReader.py 0644"
|
||||
sed -i -e "s@#!/usr/bin/python@@" GoogleReader.py
|
||||
|
||||
|
||||
%build
|
||||
%{__python} setup.py build
|
||||
|
||||
|
||||
%install
|
||||
rm -rf %{buildroot}
|
||||
|
||||
%{__python} setup.py install -O1 --skip-build --root %{buildroot}
|
||||
rm %{buildroot}%{_datadir}/applications/*.desktop
|
||||
|
||||
install -d %{buildroot}%{_datadir}/applications
|
||||
desktop-file-install \
|
||||
--dir %{buildroot}%{_datadir}/applications \
|
||||
%{SOURCE1}
|
||||
desktop-file-install \
|
||||
--dir %{buildroot}%{_sysconfdir}/xdg/autostart \
|
||||
%{buildroot}%{_datadir}/applications/%{name}.desktop
|
||||
|
||||
|
||||
%clean
|
||||
rm -rf %{buildroot}
|
||||
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
%doc AUTHORS CREDITS LICENSE README
|
||||
%{_bindir}/%{name}
|
||||
%{python_sitelib}/GoogleReader.py
|
||||
%{python_sitelib}/GoogleReader.pyc
|
||||
%{python_sitelib}/GoogleReader.pyo
|
||||
%{python_sitelib}/%{name}-%{version}-*.egg-info
|
||||
%{_datadir}/%{name}/*.glade
|
||||
%{_datadir}/pixmaps/%{name}.xpm
|
||||
%{_datadir}/pixmaps/%{name}/*
|
||||
%{_datadir}/applications/%{name}.desktop
|
||||
%config(noreplace) %{_sysconfdir}/xdg/autostart/%{name}.desktop
|
||||
|
||||
|
||||
%changelog
|
||||
* Thu Apr 09 2009 Guillaume Kulakowski <guillaume DOT kulakowski AT fedoraproject DOT org> - 1.1.2-6
|
||||
- Add patch for fix GReader URL
|
||||
|
||||
* Sat Feb 22 2009 Guillaume Kulakowski <guillaume DOT kulakowski AT fedoraproject DOT org> - 1.1.2-5
|
||||
- Rename setup.py in grnotify-setup.py
|
||||
|
||||
* Sat Feb 22 2009 Guillaume Kulakowski <guillaume DOT kulakowski AT fedoraproject DOT org> - 1.1.2-4
|
||||
- Fix vendor tag in desktop file
|
||||
|
||||
* Wed Feb 18 2009 Guillaume Kulakowski <guillaume DOT kulakowski AT fedoraproject DOT org> - 1.1.2-3
|
||||
- New setup.py (Source2) proposed to the author
|
||||
|
||||
* Sat Feb 07 2009 Guillaume Kulakowski <guillaume DOT kulakowski AT fedoraproject DOT org> - 1.1.2-2
|
||||
- Fix in install.py
|
||||
|
||||
* Thu Feb 03 2009 Guillaume Kulakowski <guillaume DOT kulakowski AT fedoraproject DOT org> - 1.1.2-1
|
||||
- Update to 1.1.2
|
||||
- Use install.py
|
||||
|
||||
* Thu Jan 29 2009 Guillaume Kulakowski <guillaume DOT kulakowski AT fedoraproject DOT org> - 1.1.1-1
|
||||
- Update to 1.1.1
|
||||
|
||||
* Wed Jan 21 2009 Guillaume Kulakowski <guillaume DOT kulakowski AT fedoraproject DOT org> - 1.0.2-2
|
||||
- Add an autostart
|
||||
|
||||
* Sun Jan 18 2009 Guillaume Kulakowski <guillaume DOT kulakowski AT fedoraproject DOT org> - 1.0.2-1
|
||||
- Initial package
|
||||
1
sources
1
sources
|
|
@ -0,0 +1 @@
|
|||
1c3d4900dacc87c6e0c23edb515d0852 grnotify_1.1.2.tar.gz
|
||||
Loading…
Add table
Add a link
Reference in a new issue