rss-tools/bin/rsscount.py

61 lines
1.2 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# a at foo dot be - Alexandre Dulaunoy - http://www.foo.be/cgi-bin/wiki.pl/RssAny
#
# rsscount.py is a simple script to count how many items in a RSS feed per day
#
# The output is epoch + the number of changes separated with a tab.
#
# This is used to build statistic like the wiki creativity index.
#
import feedparser
import sys,os
import time
import datetime
from optparse import OptionParser
feedparser.USER_AGENT = "rsscount.py +http://www.foo.be/"
usage = "usage: %prog url(s)"
parser = OptionParser(usage)
(options, args) = parser.parse_args()
if args is None:
print usage
counteditem = {}
for url in args:
d = feedparser.parse(url)
for el in d.entries:
try:
eldatetime = datetime.datetime.fromtimestamp(time.mktime(el.modified_parsed))
except AttributeError:
# discard RSS without pubDate grrr...
break
eventdate = eldatetime.isoformat(' ').split(' ',1)
edate = eventdate[0].replace("-","")
if counteditem.has_key(edate):
counteditem[edate] = counteditem[edate] + 1
else:
counteditem[edate] = 1
for k in counteditem.keys():
print unicode(k).encode("utf-8")+"\t"+ unicode(counteditem[k]).encode("utf-8")