Initial setup of the repository
[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 RSSReader(QtGui.QMainWindow):    
68  
69     def __init__(self, parent=None):
70         QtGui.QMainWindow.__init__(self, parent)
71         self.setWindowTitle('Feeding It')
72         self.setGeometry(100,100,300,300)
73
74
75         self.mainWidget=QtGui.QWidget(self) # dummy widget to contain the
76                                       # layout manager
77         self.setCentralWidget(self.mainWidget)
78         self.mainLayout=QtGui.QVBoxLayout(self.mainWidget)
79
80         # Create MenuBar
81         exitAction = QtGui.QAction('Exit', self)
82         self.connect(exitAction, QtCore.SIGNAL('triggered()'), self.close)
83         menubar = self.menuBar()
84         file = menubar.addAction(exitAction)
85         
86         self.listing=Listing()
87         self.listing.downloadFeeds()
88         
89         listOfFeeds = QtGui.QListWidget(self.mainWidget)
90         
91         tmp = ["test","test1", "test2"]
92         #for item in self.listing.getListOfFeeds():
93         for item in tmp:
94             QtGui.QListWidgetItem(item, listOfFeeds)
95         
96         #layout = QtGui.QVBoxLayout()
97         #layout.addWidget(listOfFeeds) 
98         #self.setLayout(layout)
99  
100 if __name__ == '__main__':    
101  
102     #Creating Qt application
103     app = QtGui.QApplication(sys.argv)
104  
105     myRSSReader = RSSReader()
106     myRSSReader.show()
107  
108     #Initing application
109     sys.exit(app.exec_())