1f9fbebfc25be8d0e39fe9f7653e0d93394ed835
[feedingit] / src / test.py
1 import sys
2 from PyQt4 import QtGui
3 from PyQt4 import QtCore
4 from PyQt4.QtWebKit import QWebView
5 import feedparser
6
7 class Feed:
8     def __init__(self, url):
9         self.feed=feedparser.parse(url)
10     
11     def getTitles(self):
12         return self.feed["entries"]
13     
14     def getItem(self, index):
15         return self.feed["entries"][index]
16     
17     def getArticle(self,index):
18         entry = self.feed["entries"][index]
19         #text = "<h4><a href=\"" + entry["link"] + "\">" + entry["title"] + "</a></h4>"
20         text = "<small>" + entry["title"] + "</small>"
21         text = text + "<BR />"
22         text = text + entry["summary"]
23         return text    
24     
25 class Listing:
26     listOfFeeds = ["http://rss.slashdot.org/Slashdot/slashdot",]
27     
28     def downloadFeeds(self):
29         self.feeds = []
30         for item in self.listOfFeeds:
31             self.feeds.append(Feed(item))
32             
33     def getFeed(self, index):
34         return self.feeds[index]
35     
36     def getListOfFeeds(self):
37         return self.listOfFeeds
38
39
40 class ArticleDisplay(QtGui.QMainWindow):
41     def __init__(self, parent, feed, index):
42         QtGui.QMainWindow.__init__(self, parent)
43         #self.setWindowTitle('Feeding It')
44         
45         text = feed.getArticle(index)
46         web = QWebView()
47         web.set_html(text)
48         web.show()
49         
50         self.show()
51   
52 class ListingDisplay(QtGui.QMainWindow):  
53     def __init__(self, parent, feed):
54         QtGui.QMainWindow.__init__(self, parent)
55         
56         listWidget = QtGui.QListWidget(self)
57         index = 0
58         for item in feed.getTitles():
59             QtGui.QListWidgetItem(item["title"], listWidget)
60
61             #button.connect("clicked", self.button_clicked, self, self.window, currentfeed, index)
62             index=index+1
63         
64         #self.add(listWidget)
65         self.show()
66
67 class FeedingIt(QtGui.QMainWindow):    
68  
69     def __init__(self, parent=None):
70         QtGui.QMainWindow.__init__(self, parent)
71         self.setWindowTitle('Feeding It')
72
73         exit = QtGui.QAction(None, 'Exit', self)
74         exit.setStatusTip('Exit application')
75         self.connect(exit, QtCore.SIGNAL('triggered()'), QtCore.SLOT('close()'))
76
77         self.mainWidget=QtGui.QWidget(self) # dummy widget to contain the
78                                       # layout manager
79         self.setCentralWidget(self.mainWidget)
80         self.mainLayout=QtGui.QVBoxLayout(self.mainWidget)
81
82         # Create MenuBar
83         exitAction = QtGui.QAction('Exit', self)
84         self.connect(exitAction, QtCore.SIGNAL('triggered()'), self.close)
85         menubar = self.menuBar()
86         file = menubar.addAction(exitAction)
87         
88         self.listing=Listing()
89         self.displayListing() 
90         
91         listOfFeeds = QtGui.QListWidget(self.mainWidget)
92         
93         tmp = ["test","test1", "test2"]
94         #for item in self.listing.getListOfFeeds():
95         for item in tmp:
96             QtGui.QListWidgetItem(item, listOfFeeds)
97         
98         #layout = QtGui.QVBoxLayout()
99         #layout.addWidget(listOfFeeds) 
100         #self.setLayout(layout)
101  
102     def displayListing(self):
103         #try:
104         #    self.window.remove(self.pannableListing)
105         #except:
106         #    pass
107         #self.vboxListing = gtk.VBox(False,10)
108         #self.pannableListing = hildon.PannableArea()
109         #self.pannableListing.add_with_viewport(self.vboxListing)
110
111         for key in self.listing.getListOfFeeds():
112             #button = gtk.Button(item)
113             #button = hildon.Button(gtk.HILDON_SIZE_AUTO_WIDTH | gtk.HILDON_SIZE_FINGER_HEIGHT,
114             #                  hildon.BUTTON_ARRANGEMENT_VERTICAL)
115             #button.set_text(self.listing.getFeedTitle(key), self.listing.getFeedUpdateTime(key))
116             #button.set_alignment(0,0,1,1)
117             #button.connect("clicked", self.buttonFeedClicked, self, self.window, key)
118             #self.vboxListing.pack_start(button, expand=False)
119             pass
120         #self.window.add(self.pannableListing)
121         #self.window.show_all()
122         
123 if __name__ == '__main__': 
124
125     # Checking the configuration directory does exist
126     if not isdir(CONFIGDIR):
127         try:
128             mkdir(CONFIGDIR)
129         except:
130             print "Error: Can't create configuration directory"
131             sys.exit(1)
132  
133     #Creating Qt application
134     app = QtGui.QApplication(sys.argv)
135  
136     feedingIt = FeedingIt()
137     feedingIt.show()
138  
139     #Starting the application's main loop
140     sys.exit(app.exec_())