Skip to content

Commit

Permalink
tumblr_backup: refactor the path joining operations
Browse files Browse the repository at this point in the history
  • Loading branch information
bbolli committed Mar 18, 2012
1 parent f3d6512 commit 2178e47
Showing 1 changed file with 14 additions and 10 deletions.
24 changes: 14 additions & 10 deletions tumblr_backup.py
Expand Up @@ -67,10 +67,13 @@ def mkdir(dir, recursive=False):
else:
os.mkdir(dir)

def path_to(*parts):
return join(save_folder, *parts)

def open_text(*parts):
if len(parts) > 1:
mkdir(join(save_folder, *parts[:-1]))
return codecs.open(join(save_folder, *parts), 'w', 'utf-8')
mkdir(path_to(*parts[:-1]))
return codecs.open(path_to(*parts), 'w', 'utf-8')

def save_image(image_url):
"""saves an image if not saved yet"""
Expand Down Expand Up @@ -135,10 +138,10 @@ def save_style(self):
''')

def build_index(self):
for f in glob(join(save_folder, post_dir, '*.html')):
for f in glob(path_to(post_dir, '*.html')):
post = LocalPost(f)
self.index[post.tm.tm_year][post.tm.tm_mon].append(post)
for f in glob(join(save_folder, theme_dir, avatar_base + '.*')):
for f in glob(path_to(theme_dir, avatar_base + '.*')):
self.avatar = os.path.split(f)[1]
break

Expand Down Expand Up @@ -176,7 +179,8 @@ def save_month(self, year, month, tm):
return file_name

def get_theme(self, account, host, user, password):
subprocess.call(['/bin/rm', '-rf', join(save_folder, theme_dir)])
theme_folder = path_to(theme_dir)
subprocess.call(['/bin/rm', '-rf', theme_folder])
try:
info = urllib2.urlopen('http://%s/api/authenticate' % host,
urllib.urlencode({
Expand All @@ -200,10 +204,10 @@ def get_theme(self, account, host, user, password):
f.write(log['theme-source'][0])
avatar_url = attrs.get('avatar-url')
if avatar_url:
mkdir(join(save_folder, theme_dir))
mkdir(theme_folder)
avatar = urllib2.urlopen(avatar_url)
avatar_file = avatar_base + '.' + avatar_url.split('.')[-1]
with open(join(save_folder, theme_dir, avatar_file), 'wb') as f:
with open(join(theme_folder, avatar_file), 'wb') as f:
f.write(avatar.read())
self.avatar = avatar_file

Expand All @@ -225,7 +229,7 @@ def backup(self, account):
post_class = BlosxomPost
else:
save_folder = join(root_folder, account)
image_folder = join(save_folder, image_dir)
image_folder = path_to(image_dir)
post_class = TumblrPost
mkdir(save_folder, True)

Expand Down Expand Up @@ -257,7 +261,7 @@ def backup(self, account):
try:
ident_max = max(
long(os.path.splitext(os.path.split(f)[1])[0])
for f in glob(join(save_folder, post_dir, '*' + post_ext))
for f in glob(path_to(post_dir, '*' + post_ext))
)
log('Backing up posts after %d\n' % ident_max)
except ValueError: # max() arg is an empty sequence
Expand Down Expand Up @@ -432,7 +436,7 @@ def save_post(self):
"""saves this post locally"""
with open_text(post_dir, self.file_name) as f:
f.write(self.get_post())
os.utime(join(save_folder, post_dir, self.file_name),
os.utime(path_to(post_dir, self.file_name),
(self.date, self.date)
)
if options.xml:
Expand Down

0 comments on commit 2178e47

Please sign in to comment.