Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #
- # simple d-busified pidgin message notifier
- #
- # displays a tray icon in the notification area
- # and will flash the icon when a new message comes in
- # until the tryicon is clicked
- #
- # Adapted from Thomas Perl <[email protected]> 2007-03-28
- #
- # See http://thpinfo.com/2007/hacks/ for updates
- #
- # See http://askubuntu.com/questions/108764/how-do-i-send-text-messages-to-the-notification-bubbles
- # for notes on python3
- #
- # See https://github.com/kholidfu/githon/blob/master/notifikasi_kurs.py for desktop notification
- import dbus
- import dbus.glib
- import dbus.decorators
- import pynotify
- import gobject
- import gtk
- import os
- import os.path
- import glob
- import random
- import time
- import sys
- pynotify.init('purple-imrecvd')
- notification = None
- flash_icon_timer = 0
- bus = dbus.SessionBus()
- icon = gtk.StatusIcon()
- icon.set_visible( True)
- icon.set_from_icon_name( 'user-invisible')
- icon.set_tooltip( 'No new messages')
- def update_tooltip(show_notification = True):
- global notification, icon, flash_icon_timer
- message = 'You have new IM messages'
- notification = pynotify.Notification( 'New IM received!', message)
- icon.set_from_icon_name('user-available')
- icon.set_blinking(True)
- icon.set_tooltip( 'New messages received')
- flash_icon_timer = gobject.timeout_add(5000, flash_icon)
- return False
- def flash_icon():
- global flash_icon_timer, icon
- gobject.source_remove(flash_icon_timer)
- icon.set_blinking(False)
- def messaeg_received(account, sender, message, conversation, flags):
- global notification
- gobject.idle_add(update_tooltip)
- def message_read(): # this code never run
- global notification, icon
- update_tooltip()
- gobject.idle_add( update_tooltip, False)
- def activate(icon):
- global notification
- if icon.get_tooltip_text() == 'New messages received':
- icon.set_blinking(False)
- icon.set_tooltip('No new messages')
- icon.set_from_icon_name( 'user-invisible')
- def destroyer(dialogobj, response_id, data=None):
- global loop, dialog
- if response_id == gtk.RESPONSE_OK:
- loop.quit()
- else:
- dialog.hide()
- def popup(button, widget, data=None):
- global icon, dialog
- dialog = gtk.MessageDialog(
- parent = None,
- flags = gtk.DIALOG_DESTROY_WITH_PARENT,
- type = gtk.MESSAGE_INFO,
- buttons = gtk.BUTTONS_OK_CANCEL,
- message_format = "Do you want to Exit?")
- dialog.set_title('Popup Window')
- dialog.connect('response', destroyer)
- dialog.show()
- icon.connect("activate", activate)
- icon.connect("popup_menu", popup)
- bus.add_signal_receiver( messaeg_received, dbus_interface="im.pidgin.purple.PurpleInterface", signal_name="ReceivedImMsg")
- bus.add_signal_receiver( messaeg_received, dbus_interface="im.pidgin.purple.PurpleInterface", signal_name="ReceivedChatMsg")
- loop = gobject.MainLoop()
- loop.run()
Add Comment
Please, Sign In to add comment