Fix #1017 - Exception caused by activity being set on incorrect foreign key
[mediagoblin.git] / mediagoblin / submit / task.py
1 # GNU MediaGoblin -- federated, autonomous media hosting
2 # Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS.
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
17 import celery
18 import datetime
19 import pytz
20
21 from mediagoblin.db.models import MediaEntry
22
23 @celery.task()
24 def collect_garbage():
25 """
26 Garbage collection to clean up media
27
28 This will look for all critera on models to clean
29 up. This is primerally written to clean up media that's
30 entered a erroneous state.
31 """
32 cuttoff = datetime.datetime.now(pytz.UTC) - datetime.timedelta(days=1)
33
34 garbage = MediaEntry.query.filter(MediaEntry.created < cuttoff)
35 garbage = garbage.filter(MediaEntry.state == "unprocessed")
36
37 for entry in garbage.all():
38 entry.delete()