forked from lucjon/Py-StackExchange
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathso_mon.py
62 lines (46 loc) · 1.28 KB
/
so_mon.py
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
#!/usr/bin/env python
# Quick 'n' Dirty SO Monitor
import sys
sys.path.append('..')
import stackexchange, gtk, gobject, webkit
class SOMonitor(object):
def __init__(self):
self.window = gtk.Window()
self.site = stackexchange.Site(stackexchange.StackOverflow)
self.questions = []
self.prepare_gui()
self.ontick()
def main(self):
self.window.show_all()
self.sw_holder.hide()
gtk.main()
def prepare_gui(self):
gobject.timeout_add(300000, self.ontick)
# VBox 1: VBox|Webkit (hidden)
vb_pri = gtk.VBox()
self.window.add(vb_pri)
self.vb_pri = vb_pri
vb_sec = gtk.VBox()
vb_pri.pack_start(vb_sec)
self.vb_sec = vb_sec
sw_holder = gtk.ScrolledWindow()
wk_browse = webkit.WebView()
sw_holder.add(wk_browse)
vb_pri.pack_start(sw_holder)
self.sw_holder = sw_holder
def questions_update(self):
self.vb_sec = gtk.VBox()
for q in self.questions:
text = q.title
btn = gtk.Button(text)
self.vb_sec.pack_start(btn)
btn._question = q
btn.connect('clicked', self.qbtn_clicked)
def qbtn_clicked(self, btn):
self.wk_browse.open('http://stackoverflow.com/questions/' + str(btn._question.id))
self.sw_holder.show()
def ontick(self):
self.questions = self.site.recent_questions()
self.questions_update()
return True
SOMonitor().main()