You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.5 KiB
Python
52 lines
1.5 KiB
Python
#!/usr/bin/python
|
|
|
|
import sys, urllib, urllib2, re, os, random, string
|
|
|
|
url = raw_input("Stylesheet URL: ")
|
|
|
|
def random_string(length):
|
|
return ''.join(random.choice(string.letters) for i in xrange(length))
|
|
|
|
def create_dir():
|
|
target_dir = "fonts/%s" % random_string(10)
|
|
|
|
try:
|
|
os.makedirs(target_dir + "/fonts")
|
|
os.makedirs(target_dir + "/stylesheets")
|
|
except OSError:
|
|
return create_dir()
|
|
else:
|
|
return target_dir
|
|
|
|
def retrieve_page(url, useragent):
|
|
request = urllib2.Request(url, None, {'User-Agent': useragent})
|
|
return urllib2.urlopen(request).read()
|
|
|
|
def get_links(url, useragent):
|
|
contents = retrieve_page(url, useragent)
|
|
return re.findall('https?://([^\)]+)', contents)
|
|
|
|
target_dir = create_dir()
|
|
font_files = []
|
|
|
|
#for font_file in get_links(url, "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"):
|
|
# font_files.append(font_file)
|
|
|
|
#for font_file in get_links(url, "Mozilla/5.0 (X11; U; Linux i686) Gecko/20071127 Firefox/2.0.0.11"):
|
|
# font_files.append(font_file)
|
|
|
|
for font_file in get_links(url, "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1190.0 Safari/537.1 SUSE/22.0.1190.0"):
|
|
font_files.append(font_file)
|
|
|
|
total = len(font_files)
|
|
done = 0
|
|
|
|
for result in font_files:
|
|
file_url = "http://%s" % result
|
|
filename = os.path.basename(file_url)
|
|
urllib.urlretrieve(file_url, "%s/fonts/%s" % (target_dir, filename))
|
|
done += 1
|
|
print "[%d/%d] Downloaded %s" % (done, total, filename)
|
|
|
|
print "The font files and stylesheet can be found in %s" % target_dir
|