- Use str.split(None) not str.split(' ')
(Collapses multiple whitespace, splits on all whitespace instead of only <SP>)
- Don't test lines against regex unless the line has spotify in it
(`str in str` is much faster than doing multiple regex)
import urllib2
from BeautifulSoup import BeautifulSoup
import urllib2
from BeautifulSoup import BeautifulSoup
hostmask_regex = re.compile('^(.*)!(.*)@(.*)$')
spotify_regex = ( re.compile(r'spotify:(?P<type>\w+):(?P<track_id>\w{22})'),
re.compile(r'http://open.spotify.com/(?P<type>\w+)/(?P<track_id>\w{22})') )
hostmask_regex = re.compile('^(.*)!(.*)@(.*)$')
spotify_regex = ( re.compile(r'spotify:(?P<type>\w+):(?P<track_id>\w{22})'),
re.compile(r'http://open.spotify.com/(?P<type>\w+)/(?P<track_id>\w{22})') )
sender = parser_hostmask(line[1:line.find(' ')])
try:
sender = parser_hostmask(line[1:line.find(' ')])
try:
- linetx = line.split(' ', 3)[3][1:]
+ linetx = line.split(None, 3)[3][1:]
except IndexError:
linetx = ''
except IndexError:
linetx = ''
+ if checkfor not in line:
+ return # doesn't concern us
+
for r in spotify_regex:
for type, track in r.findall(linetx):
for r in spotify_regex:
for type, track in r.findall(linetx):
- url = '%s?uri=spotify:%s:%s' %(spotify_gateway, type, track)
+ url = '%s?uri=spotify:%s:%s' % (spotify_gateway, type, track)
xml = urllib2.urlopen(url).read()
soup = BeautifulSoup(xml)
lookup_type = soup.contents[2].name
xml = urllib2.urlopen(url).read()
soup = BeautifulSoup(xml)
lookup_type = soup.contents[2].name