| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds a new Comment link table that is used to link between some
object and then the comment object, which can be more or less any
object in Mediagoblin. The MediaComment has been renamed to
TextComment as that more aptly describes what it is. There is
migrations for these changes.
There is also the conslidation of the Report tables into a single
Report table, the same with the Notification objects. This is because
both of them split out MediaEntry and Comment versions into their own
polymorphic versions from a base, this is no longer a meaningful
distinction as comments can be anything.
|
|
|
|
|
|
|
|
| |
This adds several things, mainly code which checks for the public id and
if it doesn't exist generating it where it can. This is to because we
need to keep the public_id to be able to effectively soft delete models.
This also adds a public_id field to the Activity along with a migration.
|
|
|
|
|
|
|
| |
- Adds a "type" column to the Collection object and allows the
CollectionItem model to contain any object.
- Changes "items" to "num_items" as per TODO
- Renames "uploader", "creator" and "user" to a common "actor" in most places
|
|
|
|
|
| |
Reading a file into memory resulted in depletion of memory. Now files
are read and written lazily, by chunks.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The .activity ForeignKey on several models such as MediaEntry expects
a ActivityIntmediatory ID not an Activity ID however in submit code the
activity attribute was being set the Activity, simply removing this
assignment should fix the issue as everything is set correctly at this point.
I have also moved the creation of the activity above the processing of media
to avoid race conditions.
|
| |
|
|\
| |
| |
| |
| |
| | |
Add Activity and Generator models which allow for
activities to be created. This now works with the
feed API.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
This creates the Activity and Genrator models from the Activity
Streams spec and. I then created a migration which retro-actively
create activities for media uploaded and comments created. Through
out the code I've added so automatically activties are created when
a user peforms an action (uploading media, commenting, etc.).
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Has some issues, will iteratively fix!
Conflicts:
mediagoblin/gmg_commands/__init__.py
mediagoblin/gmg_commands/deletemedia.py
mediagoblin/gmg_commands/users.py
mediagoblin/oauth/views.py
mediagoblin/plugins/api/views.py
mediagoblin/tests/test_api.py
mediagoblin/tests/test_edit.py
mediagoblin/tests/test_oauth1.py
mediagoblin/tests/test_util.py
mediagoblin/tools/mail.py
mediagoblin/webfinger/views.py
setup.py
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
- Add json_error and use inplace of json_response where appropriate.
- Add garbage_collection to config spec file.
- Fix bugs in both garbage collection task and test
- Handle /api/whoami when no user logged in and a test for such a case.
- Validate ID is correct and user has comment privilege to comment.
|
| | |
|
| | |
|
| |
| |
| |
| | |
(forgot to commit earlier)
|
|/
|
|
| |
I will be switch to use ``from __future__ import unicode_literals`` later.
|
|
|
|
| |
This commit sponsored by Zakkai Kauffman-Rogoff. Thanks! :)
|
|
|
|
| |
This commit sponsored by Mikael Nordfeldth. Thank you!
|
|
|
|
| |
This commit sponsored by Bruno Girin. Thank you!
|
|
|
|
|
|
|
|
| |
datastructure
Important, because that only makes sense for wsgi! :)
This commit sponsored by Geoff Lehr. Thank you!
|
|
|
|
| |
This commit sponsored by Benjamin Prager. Thank you!
|
|
|
|
|
| |
This commit sponsored by Joar Wandborg. Joar, thanks for the many
things you've done for MediaGoblin!
|
| |
|
|\
| |
| |
| |
| |
| | |
Conflicts:
mediagoblin/processing/task.py
mediagoblin/submit/lib.py
|
| | |
|
| |
| |
| |
| | |
This commit sponsored by Odin Hørthe Omdal. Thank you!
|
| | |
|
|/
|
|
|
|
| |
- have mg generate task_id
remove
|
|
|
|
|
|
| |
This tool creates an initial media entry for a given user.
No magic. It just prefills the license with the user's
default license and adds the user as uploader.
|
|
|
|
| |
Signed-off-by: Alon Levy <alon@pobox.com>
|
|
|
|
|
| |
When uploading, the file field needs some checks, it seems.
So refactor them into check_file_field and use around.
|
|
|
|
|
|
|
|
|
| |
People(tm) want to start run_process_media from the CLI and might not
have a request object handy. So pass in the feed_url into
run_process_media rather than the request object and allow the feed url
to be empty (resulting in no PuSH notification at all then).
Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Notifying the PuSH servers had 3 problems.
1) it was done immediately after sending of the processing task to celery. So if celery was run in a separate
process we would notify the PuSH servers before the new media was processed/
visible. (#436)
2) Notification code was called in submit/views.py, so submitting via the
API never resulted in notifications. (#585)
3) If Notifying the PuSH server failed, we would never retry.
The solution was to make the PuSH notification an asynchronous subtask. This
way: 1) it will only be called once async processing has finished, 2) it
is in the main processing code path, so even API calls will result in
notifications, and 3) We retry 3 times in case of failure before giving up.
If the server is in a separate process, we will wait 3x 2 minutes before
retrying the notification.
The only downside is that the celery server needs to have access to the internet
to ping the PuSH server. If that is a problem, we need to make the task belong
to a special group of celery servers that has access to the internet.
As a side effect, I believe I removed the limitation that prevented us from
upgrading celery.
Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
|
|
|
|
|
|
|
|
|
| |
First rename prepare_entry to prepare_queue_task, because
this is really more like what this thing does.
Thanks to Velmont for noting that we do not need a request
in here, but an "app" is good enough. Which means, that
this stuff can be called from tool scripts too.
|
|
|
|
|
| |
prepare_entry handles the task_id setup and generating a
queue filename and file. it returns the queue file.
|
|
|
|
|
|
| |
Calling the processing task and handling the exceptions is
easy, but has a bunch of caveats, so factor it out into an
easy callable function.
|
|
Start to refactor our upload handling in main submit and
the api. Start factoring out the handling of PuSH url
handling.
|