Merge remote-tracking branch 'gsoc2016/Subtitle-1'
[mediagoblin.git] / mediagoblin / tools / files.py
CommitLineData
03ae172a 1# GNU MediaGoblin -- federated, autonomous media hosting
cf29e8a8 2# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS.
03ae172a
AW
3#
4# This program is free software: you can redistribute it and/or modify
5# it under the terms of the GNU Affero General Public License as published by
6# the Free Software Foundation, either version 3 of the License, or
7# (at your option) any later version.
8#
9# This program is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12# GNU Affero General Public License for more details.
13#
14# You should have received a copy of the GNU Affero General Public License
15# along with this program. If not, see <http://www.gnu.org/licenses/>.
16
90c083aa 17import six
18
03ae172a
AW
19from mediagoblin import mg_globals
20
fb2fbe2c 21
03ae172a
AW
22def delete_media_files(media):
23 """
24 Delete all files associated with a MediaEntry
25
26 Arguments:
27 - media: A MediaEntry document
28 """
6d539afd 29 no_such_files = []
90c083aa 30 for listpath in six.itervalues(media.media_files):
fb2fbe2c
JAN
31 try:
32 mg_globals.public_store.delete_file(
33 listpath)
34 except OSError:
1ec85bb3 35 no_such_files.append("/".join(listpath))
03ae172a 36
35029581 37 for attachment in media.attachment_files:
fb2fbe2c
JAN
38 try:
39 mg_globals.public_store.delete_file(
40 attachment['filepath'])
41 except OSError:
df5b142a 42 no_such_files.append("/".join(attachment['filepath']))
fb2fbe2c 43
19ba17d9 44 for subtitle in media.subtitle_files:
45 try:
46 mg_globals.public_store.delete_file(
47 subtitle['filepath'])
48 except OSError:
49 no_such_files.append("/".join(subtitle['filepath']))
50
6d539afd 51 if no_such_files:
118bafbd 52 raise OSError(", ".join(no_such_files))