aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/submit/lib.py
diff options
context:
space:
mode:
Diffstat (limited to 'mediagoblin/submit/lib.py')
-rw-r--r--mediagoblin/submit/lib.py17
1 files changed, 12 insertions, 5 deletions
diff --git a/mediagoblin/submit/lib.py b/mediagoblin/submit/lib.py
index 2edea70f..08a603e9 100644
--- a/mediagoblin/submit/lib.py
+++ b/mediagoblin/submit/lib.py
@@ -27,11 +27,12 @@ from mediagoblin import mg_globals
from mediagoblin.tools.response import json_response
from mediagoblin.tools.text import convert_to_tag_list_of_dicts
from mediagoblin.tools.federation import create_activity, create_generator
-from mediagoblin.db.models import MediaEntry, ProcessingMetaData
+from mediagoblin.db.models import Collection, MediaEntry, ProcessingMetaData
from mediagoblin.processing import mark_entry_failed
from mediagoblin.processing.task import ProcessMedia
from mediagoblin.notifications import add_comment_subscription
from mediagoblin.media_types import sniff_media
+from mediagoblin.user_pages.lib import add_media_to_collection
_log = logging.getLogger(__name__)
@@ -101,9 +102,8 @@ class UserPastUploadLimit(UploadLimitError):
def submit_media(mg_app, user, submitted_file, filename,
- title=None, description=None,
+ title=None, description=None, collection_slug=None,
license=None, metadata=None, tags_string=u"",
- upload_limit=None, max_file_size=None,
callback_url=None, urlgen=None,):
"""
Args:
@@ -116,15 +116,15 @@ def submit_media(mg_app, user, submitted_file, filename,
one on disk being referenced by submitted_file.
- title: title for this media entry
- description: description for this media entry
+ - collection_slug: collection for this media entry
- license: license for this media entry
- tags_string: comma separated string of tags to be associated
with this entry
- - upload_limit: size in megabytes that's the per-user upload limit
- - max_file_size: maximum size each file can be that's uploaded
- callback_url: possible post-hook to call after submission
- urlgen: if provided, used to do the feed_url update and assign a public
ID used in the API (very important).
"""
+ upload_limit, max_file_size = get_upload_file_limits(user)
if upload_limit and user.uploaded >= upload_limit:
raise UserPastUploadLimit()
@@ -205,6 +205,13 @@ def submit_media(mg_app, user, submitted_file, filename,
create_activity("post", entry, entry.actor)
entry.save()
+ # add to collection
+ if collection_slug:
+ collection = Collection.query.filter_by(slug=collection_slug,
+ actor=user.id).first()
+ if collection:
+ add_media_to_collection(collection, entry)
+
# Pass off to processing
#
# (... don't change entry after this point to avoid race