+++ /dev/null
-#!/usr/bin/env python2.5
-
-'''
- Setup script, setup.py, is used to create installable packet from Python project.
- For more information see http://docs.python.org/distutils/setupscript.html
-
- This script with Makefile is used to generate the Debian package.
-'''
-
-from distutils.core import setup
-import os, os.path;
-
-
-# Source directory.
-source_dir = 'src';
-
-# Executables. These files will be installed into bin folder (example /usr/local/bin).
-scripts = ['src/FeedingIt']
-
-data_files = []
-
-# Included packages from source directory.
-packages = ['']
-
-package_dir = {'' : source_dir}
-
-def path_to_package(base_dir, path):
- '''
- Convert directory path to package name.
- '''
- head, tail = os.path.split(path)
-
- if head == '' or head == base_dir:
- return tail
- else:
- return path_to_package(base_dir, head) + "." + tail
-
-
-'''
- Append all packages from source_dir ('src').
-'''
-for dirpath, dirnames, filenames in os.walk(source_dir):
- if "__init__.py" in filenames:
- packages.append(path_to_package(source_dir, dirpath))
-
-
-setup(
- name = 'feedingit',
- version = '0.1',
-
- packages = packages,
- package_dir = package_dir,
- scripts = scripts,
- data_files = data_files
-)
-
from PyQt4 import QtCore
from PyQt4.QtWebKit import QWebView
import feedparser
-from QtGui import SIGNAL
-
-class Feed:
- def __init__(self, url):
- self.feed=feedparser.parse(url)
-
- def getTitles(self):
- return self.feed["entries"]
-
- def getItem(self, index):
- return self.feed["entries"][index]
-
- def getArticle(self,index):
- entry = self.feed["entries"][index]
- #text = "<h4><a href=\"" + entry["link"] + "\">" + entry["title"] + "</a></h4>"
- text = "<small>" + entry["title"] + "</small>"
- text = text + "<BR />"
- text = text + entry["summary"]
- return text
-
-class Listing:
- listOfFeeds = ["http://rss.slashdot.org/Slashdot/slashdot",]
-
- def downloadFeeds(self):
- self.feeds = []
- for item in self.listOfFeeds:
- self.feeds.append(Feed(item))
-
- def getFeed(self, index):
- return self.feeds[index]
-
- def getListOfFeeds(self):
- return self.listOfFeeds
+import rss
+from rss import *
+from os.path import isfile, isdir
+from os import mkdir
class ArticleDisplay(QtGui.QMainWindow):
def __init__(self, parent, feed, index):
#self.add(listWidget)
self.show()
+class FeedDisplay(QtGui.QMainWindow):
+ def __init__(self, feed, title, parent=None):
+ self.feed = feed
+ self.title = title
+ QtGui.QMainWindow.__init__(self, parent)
+ self.setWindowTitle(self.title)
+
+ self.mainWidget=QtGui.QWidget(self) # dummy widget to contain the
+ # layout manager
+ self.setCentralWidget(self.mainWidget)
+ self.mainLayout=QtGui.QVBoxLayout(self.mainWidget)
+ self.mainLayout.setSizeConstraint(1)
+ self.displayFeed()
+ print self.mainLayout.resizeMode
+ self.show()
+
+ def displayFeed(self):
+ index = 0
+ for item in self.feed.getEntries():
+ button = QtGui.QPushButton(item["title"], self)
+ button.setObjectName(str(index))
+ self.mainLayout.addWidget(button)
+ button.setFixedHeight(button.sizeHint().height())
+ self.connect(button, QtCore.SIGNAL("clicked()"), self.buttonArticleClicked)
+ index = index + 1
+ self.setFixedHeight(self.sizeHint().height())
+
+ def buttonArticleClicked(self):
+ index = int(self.sender().objectName())
+
+
class FeedingIt(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self, parent)
self.setWindowTitle('Feeding It')
- exit = QtGui.QAction(None, 'Exit', self)
+ exit = QtGui.QAction('Exit', self)
exit.setStatusTip('Exit application')
self.connect(exit, QtCore.SIGNAL('triggered()'), QtCore.SLOT('close()'))
#self.setLayout(layout)
def displayListing(self):
- #try:
- # self.window.remove(self.pannableListing)
- #except:
- # pass
- #self.vboxListing = gtk.VBox(False,10)
- #self.pannableListing = hildon.PannableArea()
- #self.pannableListing.add_with_viewport(self.vboxListing)
-
for key in self.listing.getListOfFeeds():
# Create the button for the feed
- button = QtGui.QPushButton(self.listing.getFeedTitle(key), self)
- button.setObjectName(key)
- self.connect(button, SIGNAL("clicked()"), self.buttonFeedClicked)
-
- #button = gtk.Button(item)
+ button = QtGui.QPushButton(self.listing.getFeedTitle(key), self)
+ button.setObjectName(key)
+ self.mainLayout.addWidget(button)
+ self.connect(button, QtCore.SIGNAL("clicked()"), self.buttonFeedClicked)
+
+
+ def displayFeed(self, qtKey):
+ key = str(qtKey)
+ self.feedDisplay = FeedDisplay(self.listing.getFeed(key), self.listing.getFeedTitle(key), self)
+ # Initialize the feed panel
+ #self.vboxFeed = gtk.VBox(False, 10)
+ #self.pannableFeed = hildon.PannableArea()
+ #self.pannableFeed.add_with_viewport(self.vboxFeed)
+
+ #index = 0
+ #for item in self.listing.getFeed(key).getEntries():
+
#button = hildon.Button(gtk.HILDON_SIZE_AUTO_WIDTH | gtk.HILDON_SIZE_FINGER_HEIGHT,
- # hildon.BUTTON_ARRANGEMENT_VERTICAL)
- #button.set_text(self.listing.getFeedTitle(key), self.listing.getFeedUpdateTime(key))
+ # hildon.BUTTON_ARRANGEMENT_HORIZONTAL)
+ #button.set_text(item["title"], time.strftime("%a, %d %b %Y %H:%M:%S",item["updated_parsed"]))
+ #button.set_text(item["title"], time.asctime(item["updated_parsed"]))
+ #button.set_text(item["title"],"")
#button.set_alignment(0,0,1,1)
- #button.connect("clicked", self.buttonFeedClicked, self, self.window, key)
- #self.vboxListing.pack_start(button, expand=False)
- pass
- #self.window.add(self.pannableListing)
- #self.window.show_all()
+ #button.set_markup(True)
+ #button = gtk.Button(item["title"])
+ #button.set_alignment(0,0)
+ #label = button.child
+ #label.set_markup(item["title"])
+ #label.modify_font(pango.FontDescription("sans 16"))
+ #button.connect("clicked", self.button_clicked, self, self.window, key, index)
+ #self.vboxFeed.pack_start(button, expand=False)
+ #index=index+1
def buttonFeedClicked(self):
- key = self.sender().objectName()
+ key = self.sender().objectName()
self.displayFeed(key)
if __name__ == '__main__':