diff options
Diffstat (limited to 'mediagoblin/submit/lib.py')
-rw-r--r-- | mediagoblin/submit/lib.py | 17 |
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 |