[Tutor] Q&D Uselessness: crossover.py
Tesla Coil
tescoil@irtc.net
Tue, 14 Aug 2001 02:03:40 -0500
Remarkably, this returned accurate results. I don't
expect this to last, as the reduce2songs function
is rather crocky. Inviting modifications to make
it more reliable in view of rronline's html (and/or
improvements in any other respects).
# crossover.py -- Grabs the Top 30 "Alternative,"
# "Active Rock" and "Rock" airplay charts from
# *Radio & Records*, and compares them to see
# how alternative "Alternative Rock" is lately.
import urllib, re, sys
def reduce2songs(rawchart):
songs = []
for line in rawchart:
if re.search('quot', line):
songs.append(line)
return songs
def grabcharts():
radiorec = 'http://www.rronline.com/chartbytes/'
charts = ['alt.htm', 'ar.htm', 'rock.htm']
[alt, ar, rock] = [[],[],[]]
collected = [alt, ar, rock]
try:
for grab in range(3):
collected[grab] = urllib.urlopen(radiorec+charts[grab])
collected[grab] = collected[grab].readlines()
collected[grab] = reduce2songs(collected[grab])
except IOError, e:
print e
print "Maybe you're not connected to the internet (?)"
sys.exit()
return collected
def comparecharts(reduced):
[armatch, rockmatch, allmatch] = [0,0,0]
for line in reduced[0]:
if line in reduced[1]:
armatch = armatch + 1
if line in reduced[2]:
rockmatch = rockmatch + 1
if line in reduced[1] and line in reduced[2]:
allmatch = allmatch + 1
print
print "*Radio & Records* currently reports that:"
print "Of the Top 30 songs on US Alternative radio"
print armatch, "are Top 30 songs on US Active Rock radio,"
print rockmatch, "are Top 30 songs on US Rock radio, and"
print allmatch, "are Top 30 songs in all three formats."
print
charts = grabcharts()
comparecharts(charts)
sys.exit()