Elrond [Thu, 29 Mar 2012 19:45:05 +0000 (21:45 +0200)]
Audio: Add models and disable media_data.
1. Add a super-minimal media_data table for audio.
It currently contains nothing.
Like the ascii one.
2. To avoid media_data trouble -- for now -- disable the
creation of media_data completrly.
Joar Wandborg [Thu, 29 Mar 2012 14:19:11 +0000 (16:19 +0200)]
Merge branch 'master' of gitorious.org:mediagoblin/mediagoblin
Joar Wandborg [Thu, 29 Mar 2012 14:06:36 +0000 (16:06 +0200)]
Seeking works in firefox
- Added support for indicating multiple buffered
ranges (Firefox)
- Added volume slider (Chromium)
- Replaced stop button with faux pause button
- Added 'ended' event handler
Elrond [Thu, 29 Mar 2012 11:15:38 +0000 (13:15 +0200)]
The video media_type needs pygtk/gtk.
Note in the docs, that the video media_type needs the gtk
and pygtk modules and where to get them on debian.
Elrond [Wed, 28 Mar 2012 11:19:11 +0000 (13:19 +0200)]
411: Add relationship and backrefs to media_data tables.
Adding proper relationship()s and especially backref()s
will delete media_data rows along with the main MediaEntry.
This fixes #411.
Joar Wandborg [Tue, 27 Mar 2012 21:43:15 +0000 (23:43 +0200)]
Changed audio.* Image* imports
so that they no longer import from PIL explicitly.
This is due to explicit PIL.Image* imports failing
on a Ubuntu machine within virtualenv.
PIL is a mystery I have yet to find the energy to unravel.
The 'implicit' approach works both for the affected
machine and my local machine and I've seen it more often
out in the wild, so I'm assuming it is the right way.
Joar Wandborg [Tue, 27 Mar 2012 14:38:41 +0000 (16:38 +0200)]
Fixed test_submission -> test_evil_file test
Joar Wandborg [Tue, 27 Mar 2012 10:05:09 +0000 (12:05 +0200)]
Merge remote-tracking branch 'joar/audio+sniffing'
Conflicts:
mediagoblin/media_types/image/processing.py
mediagoblin/media_types/video/__init__.py
mediagoblin/media_types/video/processing.py
mediagoblin/tests/test_submission.py
Christopher Allan Webber [Mon, 26 Mar 2012 20:11:05 +0000 (15:11 -0500)]
Removing superfluous whitespace
Christopher Allan Webber [Mon, 26 Mar 2012 20:09:35 +0000 (15:09 -0500)]
Merge remote-tracking branch 'remotes/slikdigit/bassam'
Conflicts:
mediagoblin/media_types/image/processing.py
Christopher Allan Webber [Mon, 26 Mar 2012 19:33:12 +0000 (14:33 -0500)]
Merge remote-tracking branch 'remotes/bretts/bug261-resized-filenames'
Jef van Schendel [Mon, 26 Mar 2012 18:23:49 +0000 (20:23 +0200)]
Add comment in JavaScript file about duplicating the password field
Brett Smith [Mon, 26 Mar 2012 18:10:22 +0000 (14:10 -0400)]
Merge remote branch 'origin/master' into bug261-resized-filenames
This merge involved moving the new FilenameBuilder class to
processing/__init__.py, and putting the comment deletion tests back into
test_submission.py using the refactored functions.
Brett Smith [Mon, 26 Mar 2012 17:40:35 +0000 (13:40 -0400)]
Rename to FilenameBuilder, with a main method named fill.
I think these names better convey what's actually going on. I updated the
documentation a bit while I was at it.
Joar Wandborg [Mon, 26 Mar 2012 15:44:08 +0000 (17:44 +0200)]
Media type refractors, pep8, lint
- Removed THUMB_SIZE, MEDIUM_SIZE constants, depend on
configuration values instead.
- pep8 refractoring
Jef van Schendel [Sun, 25 Mar 2012 19:34:00 +0000 (21:34 +0200)]
Merge branch 'master' of gitorious.org:mediagoblin/mediagoblin
Elrond [Sun, 25 Mar 2012 19:34:05 +0000 (21:34 +0200)]
Merge remote-tracking branch 'gandaro/forgot-password-autofillin'
* gandaro/forgot-password-autofillin:
set username default server-side
Fill username automatically in (Forget Password)
Jakob Kramer [Sun, 25 Mar 2012 19:51:09 +0000 (21:51 +0200)]
set username default server-side
Jef van Schendel [Sun, 25 Mar 2012 19:33:52 +0000 (21:33 +0200)]
Header style change
Brett Smith [Sun, 25 Mar 2012 17:32:25 +0000 (13:32 -0400)]
Refactor video processing to use FilenameMunger.
Brett Smith [Sun, 25 Mar 2012 17:26:57 +0000 (13:26 -0400)]
Use FilenameMunger.
Brett Smith [Sun, 25 Mar 2012 16:16:19 +0000 (12:16 -0400)]
Add documentation to the FilenameMunger class.
Brett Smith [Sun, 25 Mar 2012 16:11:13 +0000 (12:11 -0400)]
Add FilenameMunger class to processing, with tests.
Munging filenames is something all media type processors want to be able to
do, so I'm refactoring it out into a nice bite-sized class.
Elrond [Sun, 25 Mar 2012 12:56:24 +0000 (14:56 +0200)]
Drop debug from migration.
Elrond [Sat, 24 Mar 2012 09:55:34 +0000 (10:55 +0100)]
Cleanup mongo->sql converter.
1. No need to drop media_data['exif'], we only have and
want media_data['exif_all'].
2. Use media['_id'] instead of media._id (better not use
dot-notation on mongo objects in such a low level tool).
Elrond [Fri, 23 Mar 2012 18:42:02 +0000 (19:42 +0100)]
Do not fill media_data['exif'] any more.
Elrond [Sat, 24 Mar 2012 10:43:12 +0000 (11:43 +0100)]
Migration fixup: Drop empty exif_all.
If the exif info is totally empty, do not add it at all to
the media_data dict in mongo.
Elrond [Thu, 22 Mar 2012 19:59:28 +0000 (20:59 +0100)]
Create migration to move exif data around in media_data.
Move media_data['exif']['clean'] to media_data['exif_all']
drop media_data['exif']['useful']
drop media_data['exif']
Elrond [Fri, 23 Mar 2012 17:35:43 +0000 (18:35 +0100)]
Use exif_display_iter in the template.
As the newly created entries have media_data.exif_all use
the exif_display_iter method to calculate the exif entries
for displaying on the fly.
After the mongo migration all the old entries will also
have exif_all and will work again.
Elrond [Sun, 25 Mar 2012 12:12:53 +0000 (14:12 +0200)]
Start to fill media_data.exif_all in addition.
In addition to filling the normal slot media_data['exif'],
now also fill media_data.exif_all. This is the new slot
used by SQL.
For a few moments this will create duplicated entries in
the mongo db. But this shouldn't hurt.
Jakob Kramer [Sat, 24 Mar 2012 16:36:12 +0000 (17:36 +0100)]
Fill username automatically in (Forget Password)
Fill the username automatically in the "Forget Password" form
if the user already entered his username on the login page
Christopher Allan Webber [Sat, 24 Mar 2012 14:58:26 +0000 (09:58 -0500)]
Merge remote-tracking branch 'remotes/gandaro/wipealldata-from-db_name'
Jakob Kramer [Sat, 24 Mar 2012 14:33:36 +0000 (15:33 +0100)]
Wipe the configured database, not the default one
Jakob Kramer [Sat, 24 Mar 2012 13:49:43 +0000 (14:49 +0100)]
Allow arrow keys in input fields and textareas
If you pressed an arrow key in a textarea before, the next/previous media
was opened.
Jakob Kramer [Fri, 23 Mar 2012 21:13:48 +0000 (22:13 +0100)]
remove unused `mg.submit.security' module
Elrond [Fri, 23 Mar 2012 19:20:02 +0000 (20:20 +0100)]
Fix cyclic import issue.
Oh well:
tools.exif -> processing -> db.util -> db.models -> db.mixin -> tools.exif
So import tools.exif locally in exif_display_iter()
Elrond [Fri, 23 Mar 2012 19:16:42 +0000 (20:16 +0100)]
Create MediaEntry.exif_display_iter()
MediaEntry.media_data.exif_all will contain all the
"clean" EXIF data.
MediaEntry.exif_display_iter() is an iterator that fetches
the most interesting entries for display from that data.
Elrond [Thu, 22 Mar 2012 12:16:00 +0000 (13:16 +0100)]
image_mediadata: Add exif_all column
Elrond [Thu, 22 Mar 2012 12:15:27 +0000 (13:15 +0100)]
Add copyright header to image/models.py
Jakob Kramer [Fri, 23 Mar 2012 17:14:55 +0000 (18:14 +0100)]
correct wrong version number
(`-dev' instead of `.dev')
Elrond [Thu, 22 Mar 2012 20:19:47 +0000 (21:19 +0100)]
New media_data row needs to know its MediaEntry's id.
When creating a new media_data row, the new row needs to
know the MediaEntry it is associated with. I have no idea,
why this worked before at all. Maybe some implicit tricks
by sqlalchemy?
Joar Wandborg [Thu, 22 Mar 2012 00:27:19 +0000 (01:27 +0100)]
Faster sniffing
- Sniffing now goes through the old extension-based filter before
doing it the bitsniffing way.
- Refractored get_media_type_and_manager(filename).
- Removed ogg extension from video accepted extensions, audio
will take care of that.
- Added custom audio player, still WIP,but working.
- Added test for sniffing. This only tests for the
mediagoblin.media_types.image type, as that is the only
one enabled from start.
Elrond [Wed, 21 Mar 2012 21:46:38 +0000 (22:46 +0100)]
Add index=True for some columns.
These are the columns that seem to make the most sense to
have an index on them.
Elrond [Wed, 21 Mar 2012 20:46:07 +0000 (21:46 +0100)]
Finally load all models.
Load all models for the media_types. This was stopped by a
celery problem. But that is now fixed.
Elrond [Wed, 21 Mar 2012 11:08:53 +0000 (12:08 +0100)]
Panel: Find "unprocessed" not "processing" entries.
Our entries in the queue are marked as "unprocessed" and
not as "processing" as the panel code wanted it to be. So
search for the correct string.
Elrond [Wed, 21 Mar 2012 10:55:42 +0000 (11:55 +0100)]
And fix the in-celeryd import.
So that celeryd also loads the task.
Elrond [Wed, 21 Mar 2012 10:39:52 +0000 (11:39 +0100)]
Move celery task into own task.py
Move the actual celery task from processing/__init__.py
into its own .../task.py. That way it can be imported as
needed.
Elrond [Wed, 21 Mar 2012 10:24:16 +0000 (11:24 +0100)]
Turn processing.py into a submodule.
processing.py -> processing/__init__.py
This is in preparation for splitting processing a bit.
The main reason for the split is celery setup: celery needs
to be setup before even importing and importing and
subclassing some of its parts. So it's better to move the
critical parts into their own submodule and import it as
late as needed.
Christopher Allan Webber [Wed, 21 Mar 2012 04:24:43 +0000 (23:24 -0500)]
Merge remote-tracking branch 'refs/remotes/brett/bug270-lazycelery-script'
Brett Smith [Wed, 21 Mar 2012 03:59:28 +0000 (23:59 -0400)]
Add tests for image processing. Check filenames and image sizes.
This test helps verify that bug #261 is actually fixed.
In order to test that all the processed images are smaller, I needed to add
an image that's bigger than processing.MEDIUM_SIZE, hence bigblue.png.
Brett Smith [Wed, 21 Mar 2012 03:03:11 +0000 (23:03 -0400)]
Make a function to generate test image filenames.
Brett Smith [Wed, 21 Mar 2012 02:40:32 +0000 (22:40 -0400)]
Prefer nose assert_* methods to the assert built-in.
Brett Smith [Wed, 21 Mar 2012 02:36:56 +0000 (22:36 -0400)]
Refactor false image tests.
Brett Smith [Wed, 21 Mar 2012 02:30:57 +0000 (22:30 -0400)]
Refactor normal upload tests.
This is nice because it means we do *all* the normal sanity tests for *all*
the normal uploads. check_url() can be used in other tests too.
Brett Smith [Wed, 21 Mar 2012 02:16:28 +0000 (22:16 -0400)]
Refactor MediaEntry fetches/checks into check_media().
Brett Smith [Wed, 21 Mar 2012 02:07:32 +0000 (22:07 -0400)]
Refactor data posts into one do_post function.
All the data posts in these tests had a lot of common code. Putting all
that into a function makes it easier to write more tests (which I'll be
doing in a bit) and see what's really being tested.
Elrond [Tue, 20 Mar 2012 22:55:28 +0000 (23:55 +0100)]
More standard media_data model for ascii.
ascii doesn't use media_data at all. So it needs the most
basic media_data model. Fix it to take the current form.
Elrond [Tue, 20 Mar 2012 11:39:15 +0000 (12:39 +0100)]
Create load_models().
So all models are ready when connecting to the db and so
our "db" object has all models listed on it, create a
function to load all models from the media_types, etc. Call
it in setup_database()
Problem: This gives celery warnings, because celery is
imported before being setup properly. No idea how to fix
this now. So media-type loading is excluded from
load_models for now.
Elrond [Tue, 20 Mar 2012 11:32:11 +0000 (12:32 +0100)]
Import "Base" from base instead of models.
Import the "Base" class for models from db.sql.base instead
of db.sql.models.
Elrond [Tue, 20 Mar 2012 11:43:09 +0000 (12:43 +0100)]
Disable query logging for now, so we get nicer logs
As the queries are quite verbose, disable them for now.
Reenabling them should be done in the central logging
config, which is another story for celery and bin/gmg.
Jakob Kramer [Sun, 18 Mar 2012 21:28:22 +0000 (22:28 +0100)]
500 error because of subscripting instead of using attributes
Christopher Allan Webber [Sun, 18 Mar 2012 20:16:37 +0000 (15:16 -0500)]
Committing extracted and compiled translations
Christopher Allan Webber [Sun, 18 Mar 2012 20:16:03 +0000 (15:16 -0500)]
Committing present MediaGoblin translations before pushing extracted messages
Christopher Allan Webber [Sun, 18 Mar 2012 19:39:35 +0000 (14:39 -0500)]
Fixing manual tyop: MediaGoblin, not MediaGobiin (thanks gandaro!)
Christopher Allan Webber [Sun, 18 Mar 2012 17:07:13 +0000 (12:07 -0500)]
Removing print statements from convert_gps_media_data migration
Kind of useful to see but... I don't think they're needed, and I'm not
super comfortable with print statements being in migrations. Seems
semi bloated!
Brett Smith [Sun, 18 Mar 2012 13:35:14 +0000 (09:35 -0400)]
small readability improvements in resize_image
Brett Smith [Sun, 18 Mar 2012 03:43:46 +0000 (23:43 -0400)]
Refactor image resize code, with better filenames (#261)
The code to make thumbnail- and medium-sized images in processing.py is
pretty similar, so I rolled that out into a separate function that we call
with different arguments as appropriate.
The new function should work identically to the old code, except it saves
images with filenames based on the original filename, like
`foobar.medium.jpg` instead of just `medium.jpg`. This fixes bug #261.
Brett Smith [Sun, 18 Mar 2012 02:33:08 +0000 (22:33 -0400)]
Refactor lazyserver.sh to lazystarter.sh and provide lazycelery.sh (#270)
Bug #270 asks for a lazycelery.sh script much like lazyserver.sh. Rather
than duplicate the code, I consolidated them into a single script,
lazystarter.sh. The script reconfigures itself a bit, and runs a
particular server, based on the name that's used to call it, but no matter
what it uses the same code to offer help and find configuration files and
server launchers. Hopefully this will make it easy to add other
features/fix bugs as needed in the future, and have them stay in sync.
Elrond [Sat, 17 Mar 2012 21:30:48 +0000 (22:30 +0100)]
Let convert_mongo_to_sql add Migration Records
The mongosql tool is really dumping directly into the sql
database and is trying not to use too much logic that might
change later.
So this means, it needs to create the migration records on
its own!
So add a bunch of records with version=0.
Christopher Allan Webber [Sat, 17 Mar 2012 22:18:15 +0000 (17:18 -0500)]
Merge remote-tracking branch 'brett/bug264-delete-comments-with-media'
Christopher Allan Webber [Sat, 17 Mar 2012 22:09:26 +0000 (17:09 -0500)]
Merge branch 'master' of gitorious.org:mediagoblin/mediagoblin
Christopher Allan Webber [Sat, 17 Mar 2012 22:08:46 +0000 (17:08 -0500)]
mongo->sql conversion script now runs mongo migrations first, just in case
Jef van Schendel [Sat, 17 Mar 2012 21:58:33 +0000 (22:58 +0100)]
Remove sidedata class from html pages
Christopher Allan Webber [Sat, 17 Mar 2012 21:57:18 +0000 (16:57 -0500)]
Also ignore the /share/ directory
Jef van Schendel [Sat, 17 Mar 2012 21:56:25 +0000 (22:56 +0100)]
Small styling change for sidebar data
Christopher Allan Webber [Sat, 17 Mar 2012 21:48:28 +0000 (16:48 -0500)]
Make mediagoblin SQL models all use a consistent table naming scheme
Brett Smith [Sat, 17 Mar 2012 21:53:00 +0000 (17:53 -0400)]
When media is deleted, delete associated comments too.
The actual code is just a simple for loop; there might be a better
implementation but this is a fine start. I also extended test_delete to
check this too.
Christopher Allan Webber [Sat, 17 Mar 2012 17:31:11 +0000 (12:31 -0500)]
Mongosql imports made celery get set up before we wanted it via ./bin/gmg commands
Just moved the import into the actual function. That resolved the issue!
Elrond [Sat, 17 Mar 2012 12:18:43 +0000 (13:18 +0100)]
More/better translation.
- Try to preserve some translations (somehow).
- Mark "Tagged with" again for translation.
- Do not translate the empty string
Jef van Schendel [Fri, 16 Mar 2012 22:05:30 +0000 (23:05 +0100)]
Small formatting changes to footer text.
Elrond [Fri, 16 Mar 2012 17:13:46 +0000 (18:13 +0100)]
Create function to search media by slug.
Searching media by slug is easy on mongo. But doing the
joins in sqlalchemy is not as nice. So created a function
for doing it.
Well, and create the same function for mongo, so that it
also works.
Elrond [Fri, 16 Mar 2012 19:59:44 +0000 (20:59 +0100)]
Fix for mongo.
pymongo does not rewind a cursor after leaving a for loop.
So let us do it by hand. Well.
Elrond [Fri, 16 Mar 2012 16:57:27 +0000 (17:57 +0100)]
More efficient first element fetching and Dot-Notation.
_get_tag_name_from_entries:
1) Replace:
if q.count():
elem = q[0]
by:
for element in q:
...
break
this doesn't do two db queries but only one.
2) And another dose of Dot-Notation as usual.
Elrond [Fri, 16 Mar 2012 20:18:04 +0000 (21:18 +0100)]
Fix _get_tag_name_from_entries().
Replace == by =.
Bassam [Thu, 15 Mar 2012 16:13:44 +0000 (12:13 -0400)]
fix for ticket #404
Elrond [Thu, 15 Mar 2012 11:38:09 +0000 (12:38 +0100)]
Fix uploading of images (sql: media_data, exif).
When uploading a new image the processing code wants to set
the media_data['exif'] part. As exif is not yet in sql,
there is no way to make this work now. So the workaround is
to check for "no row exists yet" and just ignore exif.
Elrond [Thu, 15 Mar 2012 11:35:58 +0000 (12:35 +0100)]
Fix media display for no media_data row in sql.
If there is no media_data row for the current media (for
whatever reason, there might be good ones), let
MediaEntry.media_data not raise an exception but just
return None.
The exif display part now handles this by checking whether
.media_data.exif is defined (None has no attribute exif, so
it's undefined, all fine).
Christopher Allan Webber [Wed, 14 Mar 2012 23:28:06 +0000 (18:28 -0500)]
Implemented the MediaEntry .media_data type fields for SQL
Christopher Allan Webber [Wed, 14 Mar 2012 21:03:09 +0000 (16:03 -0500)]
Removing an unnecessary line of whitespace AND crediting Hugo Boyer for the ipython code!
Thanks Hugo Boyer! I forgot to credit you in my last commit.
Christopher Allan Webber [Wed, 14 Mar 2012 21:00:53 +0000 (16:00 -0500)]
Merge branch 'master' of gitorious.org:mediagoblin/mediagoblin
Christopher Allan Webber [Wed, 14 Mar 2012 21:00:34 +0000 (16:00 -0500)]
ipython support in ./bin/gmg shell!
Elrond [Wed, 14 Mar 2012 20:17:50 +0000 (21:17 +0100)]
Add gps_altitude and gps_direction to image media_data.
Elrond [Wed, 14 Mar 2012 20:17:07 +0000 (21:17 +0100)]
Convert (gps) image media_data.
Add mongo_to_sql convert part for converting the media_data
for images. This currently drops the exif data and thus
only converts gps data.
Elrond [Wed, 14 Mar 2012 19:15:04 +0000 (20:15 +0100)]
Change image processing to create new .gps_*.
The processing should also create .gps_* instead of the old
['gps']['x']. To ease forward porting, use the new
media.media_data_init() to set the gps data in the media.
Elrond [Wed, 14 Mar 2012 19:13:42 +0000 (20:13 +0100)]
Use .gps_* in the template and add translations.
Instead of .gps.x use .gps_x and add some "is defined" and
stuff.
Also mark some strings for translation in here.
Elrond [Wed, 14 Mar 2012 18:35:48 +0000 (19:35 +0100)]
Migration to move gps data around
Move media_data["gps"]["*"] to media_data["gps_*"].
In preparation for media_data.gps_*
Christopher Allan Webber [Wed, 14 Mar 2012 19:04:05 +0000 (14:04 -0500)]
Merge branch 'elrond-sql-convert_video_data'
Christopher Allan Webber [Wed, 14 Mar 2012 19:03:49 +0000 (14:03 -0500)]
Fix VideoData insertion
Christopher Allan Webber [Wed, 14 Mar 2012 17:44:19 +0000 (12:44 -0500)]
Preserve existing translation
Christopher Allan Webber [Wed, 14 Mar 2012 17:38:55 +0000 (12:38 -0500)]
Provide a source link so we can comply with the AGPL