From 51fba99125c63a6a5e68480e7d4b1ea08f33a4db Mon Sep 17 00:00:00 2001 From: Elrond Date: Sat, 28 Jan 2012 00:33:23 +0100 Subject: [PATCH 01/42] Some small SQL model improvements - Add default for User.email_verified - Add default for MediaEntry.state - Let PathTupleWithSlashes store [] as "NULL", but not handling the reverse properly yet! - Add _id alias field to MediaEntry and MediaComment --- mediagoblin/db/sql/extratypes.py | 6 ++++-- mediagoblin/db/sql/models.py | 9 +++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/mediagoblin/db/sql/extratypes.py b/mediagoblin/db/sql/extratypes.py index 33c9edee..21c806ec 100644 --- a/mediagoblin/db/sql/extratypes.py +++ b/mediagoblin/db/sql/extratypes.py @@ -25,8 +25,10 @@ class PathTupleWithSlashes(TypeDecorator): def process_bind_param(self, value, dialect): if value is not None: - assert len(value), "Does not support empty lists" - value = '/'.join(value) + if len(value) == 0: + value = None + else: + value = '/'.join(value) return value def process_result_value(self, value, dialect): diff --git a/mediagoblin/db/sql/models.py b/mediagoblin/db/sql/models.py index 9abd8ec7..7ec05876 100644 --- a/mediagoblin/db/sql/models.py +++ b/mediagoblin/db/sql/models.py @@ -50,7 +50,7 @@ class User(Base, UserMixin): email = Column(Unicode, nullable=False) created = Column(DateTime, nullable=False, default=datetime.datetime.now) pw_hash = Column(Unicode, nullable=False) - email_verified = Column(Boolean) + email_verified = Column(Boolean, default=False) status = Column(Unicode, default=u"needs_email_verification", nullable=False) verification_key = Column(Unicode) is_admin = Column(Boolean, default=False, nullable=False) @@ -77,7 +77,8 @@ class MediaEntry(Base, MediaEntryMixin): description = Column(UnicodeText) # ?? description_html = Column(UnicodeText) # ?? media_type = Column(Unicode, nullable=False) - state = Column(Unicode, nullable=False) # or use sqlalchemy.types.Enum? + state = Column(Unicode, default=u'unprocessed', nullable=False) + # or use sqlalchemy.types.Enum? license = Column(Unicode) fail_error = Column(Unicode) @@ -113,6 +114,8 @@ class MediaEntry(Base, MediaEntryMixin): # attachment_files # fail_error + _id = SimpleFieldAlias("id") + def get_comments(self, ascending=False): order_col = MediaComment.created if not ascending: @@ -215,6 +218,8 @@ class MediaComment(Base): get_author = relationship(User) + _id = SimpleFieldAlias("id") + def show_table_init(): from sqlalchemy import create_engine From 95ff15d66e89d4aacc9a452410efa0b8e9c602dd Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 2 Feb 2012 09:29:25 -0600 Subject: [PATCH 02/42] Updating deployment guide so that it can handle the current virtualenv site-packages changes Now it should try using --system-site-packages and if that fails (older version) it tries it without the argument. --- docs/source/deploying.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/deploying.rst b/docs/source/deploying.rst index 4aded2e6..a8ee6ff1 100644 --- a/docs/source/deploying.rst +++ b/docs/source/deploying.rst @@ -118,7 +118,7 @@ Clone the MediaGoblin repository:: And setup the in-package virtualenv:: cd mediagoblin - virtualenv . && ./bin/python setup.py develop + (virtualenv --system-site-packages . || virtualenv .) && ./bin/python setup.py develop .. note:: From cf29e8a824e0ef4612f1144f079c80c1d20b89e5 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 2 Feb 2012 09:44:13 -0600 Subject: [PATCH 03/42] It's 2012 all up in here --- mediagoblin/__init__.py | 2 +- mediagoblin/_version.py | 2 +- mediagoblin/app.py | 2 +- mediagoblin/auth/__init__.py | 2 +- mediagoblin/auth/forms.py | 2 +- mediagoblin/auth/lib.py | 2 +- mediagoblin/auth/routing.py | 2 +- mediagoblin/auth/views.py | 2 +- mediagoblin/db/__init__.py | 2 +- mediagoblin/db/mongo/__init__.py | 2 +- mediagoblin/db/mongo/indexes.py | 2 +- mediagoblin/db/mongo/migrations.py | 2 +- mediagoblin/db/mongo/models.py | 2 +- mediagoblin/db/mongo/open.py | 2 +- mediagoblin/db/mongo/util.py | 2 +- mediagoblin/db/open.py | 2 +- mediagoblin/db/sql/__init__.py | 2 +- mediagoblin/db/util.py | 2 +- mediagoblin/decorators.py | 2 +- mediagoblin/edit/__init__.py | 2 +- mediagoblin/edit/forms.py | 2 +- mediagoblin/edit/lib.py | 2 +- mediagoblin/edit/routing.py | 2 +- mediagoblin/edit/views.py | 2 +- mediagoblin/errormiddleware.py | 2 +- mediagoblin/gmg_commands/__init__.py | 2 +- mediagoblin/gmg_commands/import_export.py | 2 +- mediagoblin/gmg_commands/migrate.py | 2 +- mediagoblin/gmg_commands/shell.py | 2 +- mediagoblin/gmg_commands/users.py | 2 +- mediagoblin/gmg_commands/util.py | 2 +- mediagoblin/gmg_commands/wipealldata.py | 2 +- mediagoblin/init/__init__.py | 2 +- mediagoblin/init/celery/__init__.py | 2 +- mediagoblin/init/celery/from_celery.py | 2 +- mediagoblin/init/celery/from_tests.py | 2 +- mediagoblin/init/config.py | 2 +- mediagoblin/listings/__init__.py | 2 +- mediagoblin/listings/routing.py | 2 +- mediagoblin/listings/views.py | 2 +- mediagoblin/meddleware/__init__.py | 2 +- mediagoblin/meddleware/csrf.py | 2 +- mediagoblin/meddleware/noop.py | 2 +- mediagoblin/media_types/__init__.py | 2 +- mediagoblin/media_types/ascii/__init__.py | 2 +- mediagoblin/media_types/ascii/asciitoimage.py | 2 +- mediagoblin/media_types/ascii/processing.py | 2 +- mediagoblin/media_types/image/__init__.py | 2 +- mediagoblin/media_types/image/processing.py | 2 +- mediagoblin/media_types/video/__init__.py | 2 +- mediagoblin/media_types/video/processing.py | 2 +- mediagoblin/media_types/video/transcoders.py | 2 +- mediagoblin/messages.py | 2 +- mediagoblin/mg_globals.py | 2 +- mediagoblin/processing.py | 2 +- mediagoblin/routing.py | 2 +- mediagoblin/static/js/comment_show.js | 2 +- mediagoblin/static/js/geolocation-map.js | 2 +- mediagoblin/static/js/show_password.js | 2 +- mediagoblin/staticdirect.py | 2 +- mediagoblin/storage/__init__.py | 2 +- mediagoblin/storage/cloudfiles.py | 2 +- mediagoblin/storage/filestorage.py | 2 +- mediagoblin/storage/mountstorage.py | 2 +- mediagoblin/submit/__init__.py | 2 +- mediagoblin/submit/forms.py | 2 +- mediagoblin/submit/routing.py | 2 +- mediagoblin/submit/security.py | 2 +- mediagoblin/submit/views.py | 2 +- mediagoblin/templates/mediagoblin/404.html | 2 +- mediagoblin/templates/mediagoblin/auth/login.html | 2 +- mediagoblin/templates/mediagoblin/auth/register.html | 2 +- mediagoblin/templates/mediagoblin/auth/verification_email.txt | 2 +- mediagoblin/templates/mediagoblin/base.html | 2 +- mediagoblin/templates/mediagoblin/edit/attachments.html | 2 +- mediagoblin/templates/mediagoblin/edit/edit.html | 2 +- mediagoblin/templates/mediagoblin/edit/edit_account.html | 2 +- mediagoblin/templates/mediagoblin/edit/edit_profile.html | 2 +- mediagoblin/templates/mediagoblin/listings/tag.html | 2 +- mediagoblin/templates/mediagoblin/media_displays/ascii.html | 2 +- mediagoblin/templates/mediagoblin/media_displays/image.html | 2 +- mediagoblin/templates/mediagoblin/media_displays/video.html | 2 +- mediagoblin/templates/mediagoblin/root.html | 2 +- mediagoblin/templates/mediagoblin/submit/start.html | 2 +- mediagoblin/templates/mediagoblin/test_submit.html | 2 +- mediagoblin/templates/mediagoblin/user_pages/gallery.html | 2 +- mediagoblin/templates/mediagoblin/user_pages/media.html | 2 +- .../templates/mediagoblin/user_pages/media_confirm_delete.html | 2 +- .../templates/mediagoblin/user_pages/processing_panel.html | 2 +- mediagoblin/templates/mediagoblin/user_pages/user.html | 2 +- mediagoblin/templates/mediagoblin/utils/exif.html | 2 +- mediagoblin/templates/mediagoblin/utils/feed_link.html | 2 +- mediagoblin/templates/mediagoblin/utils/geolocation_map.html | 2 +- mediagoblin/templates/mediagoblin/utils/license.html | 2 +- mediagoblin/templates/mediagoblin/utils/messages.html | 2 +- mediagoblin/templates/mediagoblin/utils/object_gallery.html | 2 +- mediagoblin/templates/mediagoblin/utils/pagination.html | 2 +- mediagoblin/templates/mediagoblin/utils/prev_next.html | 2 +- mediagoblin/templates/mediagoblin/utils/profile.html | 2 +- mediagoblin/templates/mediagoblin/utils/tags.html | 2 +- mediagoblin/templates/mediagoblin/utils/wtforms.html | 2 +- mediagoblin/templates/mediagoblin/webfinger/host-meta.xml | 2 +- mediagoblin/templates/mediagoblin/webfinger/xrd.xml | 2 +- mediagoblin/tests/__init__.py | 2 +- mediagoblin/tests/fake_celery_module.py | 2 +- mediagoblin/tests/test_auth.py | 2 +- mediagoblin/tests/test_celery_setup.py | 2 +- mediagoblin/tests/test_config.py | 2 +- mediagoblin/tests/test_csrf_middleware.py | 2 +- mediagoblin/tests/test_edit.py | 2 +- mediagoblin/tests/test_exif.py | 2 +- mediagoblin/tests/test_globals.py | 2 +- mediagoblin/tests/test_messages.py | 2 +- mediagoblin/tests/test_migrations.py | 2 +- mediagoblin/tests/test_misc.py | 2 +- mediagoblin/tests/test_storage.py | 2 +- mediagoblin/tests/test_submission.py | 2 +- mediagoblin/tests/test_tags.py | 2 +- mediagoblin/tests/test_tests.py | 2 +- mediagoblin/tests/test_util.py | 2 +- mediagoblin/tests/test_workbench.py | 2 +- mediagoblin/tests/tools.py | 2 +- mediagoblin/tools/exif.py | 2 +- mediagoblin/tools/files.py | 2 +- mediagoblin/tools/licenses.py | 2 +- mediagoblin/tools/mail.py | 2 +- mediagoblin/tools/pagination.py | 2 +- mediagoblin/tools/request.py | 2 +- mediagoblin/tools/response.py | 2 +- mediagoblin/tools/template.py | 2 +- mediagoblin/tools/testing.py | 2 +- mediagoblin/tools/text.py | 2 +- mediagoblin/tools/translate.py | 2 +- mediagoblin/user_pages/__init__.py | 2 +- mediagoblin/user_pages/forms.py | 2 +- mediagoblin/user_pages/routing.py | 2 +- mediagoblin/user_pages/views.py | 2 +- mediagoblin/views.py | 2 +- mediagoblin/webfinger/__init__.py | 2 +- mediagoblin/webfinger/routing.py | 2 +- mediagoblin/webfinger/views.py | 2 +- mediagoblin/workbench.py | 2 +- 142 files changed, 142 insertions(+), 142 deletions(-) diff --git a/mediagoblin/__init__.py b/mediagoblin/__init__.py index f9c7ccfb..88dedd28 100644 --- a/mediagoblin/__init__.py +++ b/mediagoblin/__init__.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/_version.py b/mediagoblin/_version.py index 5e69f21a..fc1a0f6e 100644 --- a/mediagoblin/_version.py +++ b/mediagoblin/_version.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 96b2c8ab..06627675 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/auth/__init__.py b/mediagoblin/auth/__init__.py index ba347c69..621845ba 100644 --- a/mediagoblin/auth/__init__.py +++ b/mediagoblin/auth/__init__.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/auth/forms.py b/mediagoblin/auth/forms.py index 5a707c7b..1b3e214c 100644 --- a/mediagoblin/auth/forms.py +++ b/mediagoblin/auth/forms.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/auth/lib.py b/mediagoblin/auth/lib.py index c0af3b5b..1136a252 100644 --- a/mediagoblin/auth/lib.py +++ b/mediagoblin/auth/lib.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/auth/routing.py b/mediagoblin/auth/routing.py index ea9388c5..15d8fc3c 100644 --- a/mediagoblin/auth/routing.py +++ b/mediagoblin/auth/routing.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index c04a49a7..9af89c2a 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/db/__init__.py b/mediagoblin/db/__init__.py index 27e8a90f..d149f62a 100644 --- a/mediagoblin/db/__init__.py +++ b/mediagoblin/db/__init__.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/db/mongo/__init__.py b/mediagoblin/db/mongo/__init__.py index ba347c69..621845ba 100644 --- a/mediagoblin/db/mongo/__init__.py +++ b/mediagoblin/db/mongo/__init__.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/db/mongo/indexes.py b/mediagoblin/db/mongo/indexes.py index 1dd73f2b..a63c24ae 100644 --- a/mediagoblin/db/mongo/indexes.py +++ b/mediagoblin/db/mongo/indexes.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/db/mongo/migrations.py b/mediagoblin/db/mongo/migrations.py index 168fa530..261e21a5 100644 --- a/mediagoblin/db/mongo/migrations.py +++ b/mediagoblin/db/mongo/migrations.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/db/mongo/models.py b/mediagoblin/db/mongo/models.py index 56ed7dcf..541086bc 100644 --- a/mediagoblin/db/mongo/models.py +++ b/mediagoblin/db/mongo/models.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/db/mongo/open.py b/mediagoblin/db/mongo/open.py index 48c909d9..bedc497b 100644 --- a/mediagoblin/db/mongo/open.py +++ b/mediagoblin/db/mongo/open.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/db/mongo/util.py b/mediagoblin/db/mongo/util.py index e2065693..4daf616a 100644 --- a/mediagoblin/db/mongo/util.py +++ b/mediagoblin/db/mongo/util.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/db/open.py b/mediagoblin/db/open.py index 6cd17869..0163469f 100644 --- a/mediagoblin/db/open.py +++ b/mediagoblin/db/open.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/db/sql/__init__.py b/mediagoblin/db/sql/__init__.py index ba347c69..621845ba 100644 --- a/mediagoblin/db/sql/__init__.py +++ b/mediagoblin/db/sql/__init__.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/db/util.py b/mediagoblin/db/util.py index fff71d06..1fc949a6 100644 --- a/mediagoblin/db/util.py +++ b/mediagoblin/db/util.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py index 4cf14a70..83602c70 100644 --- a/mediagoblin/decorators.py +++ b/mediagoblin/decorators.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/edit/__init__.py b/mediagoblin/edit/__init__.py index ba347c69..621845ba 100644 --- a/mediagoblin/edit/__init__.py +++ b/mediagoblin/edit/__init__.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/edit/forms.py b/mediagoblin/edit/forms.py index 3e3612fe..46ee02e2 100644 --- a/mediagoblin/edit/forms.py +++ b/mediagoblin/edit/forms.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/edit/lib.py b/mediagoblin/edit/lib.py index a199cbf7..b4715134 100644 --- a/mediagoblin/edit/lib.py +++ b/mediagoblin/edit/lib.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/edit/routing.py b/mediagoblin/edit/routing.py index 5216f7ca..5bcafeac 100644 --- a/mediagoblin/edit/routing.py +++ b/mediagoblin/edit/routing.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index a637d699..a7245517 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/errormiddleware.py b/mediagoblin/errormiddleware.py index ccfe4d03..c6789f32 100644 --- a/mediagoblin/errormiddleware.py +++ b/mediagoblin/errormiddleware.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/gmg_commands/__init__.py b/mediagoblin/gmg_commands/__init__.py index 04187ff2..db944b3c 100644 --- a/mediagoblin/gmg_commands/__init__.py +++ b/mediagoblin/gmg_commands/__init__.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/gmg_commands/import_export.py b/mediagoblin/gmg_commands/import_export.py index 7f699429..20cc8fe4 100644 --- a/mediagoblin/gmg_commands/import_export.py +++ b/mediagoblin/gmg_commands/import_export.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/gmg_commands/migrate.py b/mediagoblin/gmg_commands/migrate.py index 0a8ee7dc..cacf5d19 100644 --- a/mediagoblin/gmg_commands/migrate.py +++ b/mediagoblin/gmg_commands/migrate.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/gmg_commands/shell.py b/mediagoblin/gmg_commands/shell.py index 910560a0..fe15e9f7 100644 --- a/mediagoblin/gmg_commands/shell.py +++ b/mediagoblin/gmg_commands/shell.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/gmg_commands/users.py b/mediagoblin/gmg_commands/users.py index 4bfe30a5..70e591c9 100644 --- a/mediagoblin/gmg_commands/users.py +++ b/mediagoblin/gmg_commands/users.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/gmg_commands/util.py b/mediagoblin/gmg_commands/util.py index 3e26c53f..6a6853d5 100644 --- a/mediagoblin/gmg_commands/util.py +++ b/mediagoblin/gmg_commands/util.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/gmg_commands/wipealldata.py b/mediagoblin/gmg_commands/wipealldata.py index cddbab38..3081bbc0 100644 --- a/mediagoblin/gmg_commands/wipealldata.py +++ b/mediagoblin/gmg_commands/wipealldata.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/init/__init__.py b/mediagoblin/init/__init__.py index 23c1c26d..7ac59db1 100644 --- a/mediagoblin/init/__init__.py +++ b/mediagoblin/init/__init__.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/init/celery/__init__.py b/mediagoblin/init/celery/__init__.py index 1eb21d7a..fb958909 100644 --- a/mediagoblin/init/celery/__init__.py +++ b/mediagoblin/init/celery/__init__.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/init/celery/from_celery.py b/mediagoblin/init/celery/from_celery.py index 05669b67..5a44efe3 100644 --- a/mediagoblin/init/celery/from_celery.py +++ b/mediagoblin/init/celery/from_celery.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/init/celery/from_tests.py b/mediagoblin/init/celery/from_tests.py index 059d829f..3149e1ba 100644 --- a/mediagoblin/init/celery/from_tests.py +++ b/mediagoblin/init/celery/from_tests.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/init/config.py b/mediagoblin/init/config.py index ae232e91..ac4ab9bf 100644 --- a/mediagoblin/init/config.py +++ b/mediagoblin/init/config.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/listings/__init__.py b/mediagoblin/listings/__init__.py index 0c53acf5..3f873e0c 100644 --- a/mediagoblin/listings/__init__.py +++ b/mediagoblin/listings/__init__.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/listings/routing.py b/mediagoblin/listings/routing.py index 234f2595..d228a727 100644 --- a/mediagoblin/listings/routing.py +++ b/mediagoblin/listings/routing.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/listings/views.py b/mediagoblin/listings/views.py index ca8e8229..48320cb2 100644 --- a/mediagoblin/listings/views.py +++ b/mediagoblin/listings/views.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/meddleware/__init__.py b/mediagoblin/meddleware/__init__.py index 7ba70d87..a9c712d7 100644 --- a/mediagoblin/meddleware/__init__.py +++ b/mediagoblin/meddleware/__init__.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/meddleware/csrf.py b/mediagoblin/meddleware/csrf.py index a4e4e5c6..ea8372bf 100644 --- a/mediagoblin/meddleware/csrf.py +++ b/mediagoblin/meddleware/csrf.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/meddleware/noop.py b/mediagoblin/meddleware/noop.py index f5376494..98477706 100644 --- a/mediagoblin/meddleware/noop.py +++ b/mediagoblin/meddleware/noop.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/media_types/__init__.py b/mediagoblin/media_types/__init__.py index e7eb1dde..5128826b 100644 --- a/mediagoblin/media_types/__init__.py +++ b/mediagoblin/media_types/__init__.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/media_types/ascii/__init__.py b/mediagoblin/media_types/ascii/__init__.py index 21b31d0e..e54427b1 100644 --- a/mediagoblin/media_types/ascii/__init__.py +++ b/mediagoblin/media_types/ascii/__init__.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/media_types/ascii/asciitoimage.py b/mediagoblin/media_types/ascii/asciitoimage.py index 39c75a19..da1a3bcc 100644 --- a/mediagoblin/media_types/ascii/asciitoimage.py +++ b/mediagoblin/media_types/ascii/asciitoimage.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/media_types/ascii/processing.py b/mediagoblin/media_types/ascii/processing.py index a74690c1..ec530df6 100644 --- a/mediagoblin/media_types/ascii/processing.py +++ b/mediagoblin/media_types/ascii/processing.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/media_types/image/__init__.py b/mediagoblin/media_types/image/__init__.py index 3b63d8eb..98e0c32a 100644 --- a/mediagoblin/media_types/image/__init__.py +++ b/mediagoblin/media_types/image/__init__.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/media_types/image/processing.py b/mediagoblin/media_types/image/processing.py index 78f64be0..769de89b 100644 --- a/mediagoblin/media_types/image/processing.py +++ b/mediagoblin/media_types/image/processing.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/media_types/video/__init__.py b/mediagoblin/media_types/video/__init__.py index a970ab01..ed542f16 100644 --- a/mediagoblin/media_types/video/__init__.py +++ b/mediagoblin/media_types/video/__init__.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/media_types/video/processing.py b/mediagoblin/media_types/video/processing.py index 49a50647..9dc23c55 100644 --- a/mediagoblin/media_types/video/processing.py +++ b/mediagoblin/media_types/video/processing.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/media_types/video/transcoders.py b/mediagoblin/media_types/video/transcoders.py index 7071b887..6137c3bf 100644 --- a/mediagoblin/media_types/video/transcoders.py +++ b/mediagoblin/media_types/video/transcoders.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/messages.py b/mediagoblin/messages.py index 054d46c0..80d8ece7 100644 --- a/mediagoblin/messages.py +++ b/mediagoblin/messages.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/mg_globals.py b/mediagoblin/mg_globals.py index 2d304111..3bd2070d 100644 --- a/mediagoblin/mg_globals.py +++ b/mediagoblin/mg_globals.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/processing.py b/mediagoblin/processing.py index cbac8030..4f1bf61b 100644 --- a/mediagoblin/processing.py +++ b/mediagoblin/processing.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/routing.py b/mediagoblin/routing.py index bd727db5..2ca18cc7 100644 --- a/mediagoblin/routing.py +++ b/mediagoblin/routing.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/static/js/comment_show.js b/mediagoblin/static/js/comment_show.js index 71466a8d..c5ccee66 100644 --- a/mediagoblin/static/js/comment_show.js +++ b/mediagoblin/static/js/comment_show.js @@ -1,6 +1,6 @@ /** * GNU MediaGoblin -- federated, autonomous media hosting - * Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. + * Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/static/js/geolocation-map.js b/mediagoblin/static/js/geolocation-map.js index 35083d4f..a2c62045 100644 --- a/mediagoblin/static/js/geolocation-map.js +++ b/mediagoblin/static/js/geolocation-map.js @@ -1,6 +1,6 @@ /** * GNU MediaGoblin -- federated, autonomous media hosting - * Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. + * Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/static/js/show_password.js b/mediagoblin/static/js/show_password.js index 513fe327..e42d44ea 100644 --- a/mediagoblin/static/js/show_password.js +++ b/mediagoblin/static/js/show_password.js @@ -1,6 +1,6 @@ /** * GNU MediaGoblin -- federated, autonomous media hosting - * Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. + * Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/staticdirect.py b/mediagoblin/staticdirect.py index 2bddb160..7477de68 100644 --- a/mediagoblin/staticdirect.py +++ b/mediagoblin/staticdirect.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/storage/__init__.py b/mediagoblin/storage/__init__.py index 0840614b..e7ea1aa5 100644 --- a/mediagoblin/storage/__init__.py +++ b/mediagoblin/storage/__init__.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/storage/cloudfiles.py b/mediagoblin/storage/cloudfiles.py index 51b73579..46843274 100644 --- a/mediagoblin/storage/cloudfiles.py +++ b/mediagoblin/storage/cloudfiles.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/storage/filestorage.py b/mediagoblin/storage/filestorage.py index a904865f..00d6335e 100644 --- a/mediagoblin/storage/filestorage.py +++ b/mediagoblin/storage/filestorage.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/storage/mountstorage.py b/mediagoblin/storage/mountstorage.py index 7239931f..3fdf4ef0 100644 --- a/mediagoblin/storage/mountstorage.py +++ b/mediagoblin/storage/mountstorage.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/submit/__init__.py b/mediagoblin/submit/__init__.py index ba347c69..621845ba 100644 --- a/mediagoblin/submit/__init__.py +++ b/mediagoblin/submit/__init__.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/submit/forms.py b/mediagoblin/submit/forms.py index 1ff59c18..7d9e8fcf 100644 --- a/mediagoblin/submit/forms.py +++ b/mediagoblin/submit/forms.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/submit/routing.py b/mediagoblin/submit/routing.py index 03e01f45..8ce23cd9 100644 --- a/mediagoblin/submit/routing.py +++ b/mediagoblin/submit/routing.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/submit/security.py b/mediagoblin/submit/security.py index 6708baf7..5dbc0db4 100644 --- a/mediagoblin/submit/security.py +++ b/mediagoblin/submit/security.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 0efee803..cdd097ec 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/404.html b/mediagoblin/templates/mediagoblin/404.html index 392c14f5..5e58d191 100644 --- a/mediagoblin/templates/mediagoblin/404.html +++ b/mediagoblin/templates/mediagoblin/404.html @@ -1,6 +1,6 @@ {# # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/auth/login.html b/mediagoblin/templates/mediagoblin/auth/login.html index 993790eb..39f07d33 100644 --- a/mediagoblin/templates/mediagoblin/auth/login.html +++ b/mediagoblin/templates/mediagoblin/auth/login.html @@ -1,6 +1,6 @@ {# # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/auth/register.html b/mediagoblin/templates/mediagoblin/auth/register.html index afcfcda9..39c9efff 100644 --- a/mediagoblin/templates/mediagoblin/auth/register.html +++ b/mediagoblin/templates/mediagoblin/auth/register.html @@ -1,6 +1,6 @@ {# # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/auth/verification_email.txt b/mediagoblin/templates/mediagoblin/auth/verification_email.txt index c54ca353..969ef96a 100644 --- a/mediagoblin/templates/mediagoblin/auth/verification_email.txt +++ b/mediagoblin/templates/mediagoblin/auth/verification_email.txt @@ -1,6 +1,6 @@ {# # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index 5335ebe3..f3ebc3fa 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -1,6 +1,6 @@ {# # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/edit/attachments.html b/mediagoblin/templates/mediagoblin/edit/attachments.html index bd972b2a..580127fb 100644 --- a/mediagoblin/templates/mediagoblin/edit/attachments.html +++ b/mediagoblin/templates/mediagoblin/edit/attachments.html @@ -1,6 +1,6 @@ {# # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/edit/edit.html b/mediagoblin/templates/mediagoblin/edit/edit.html index fc6b1605..0c4d5bb1 100644 --- a/mediagoblin/templates/mediagoblin/edit/edit.html +++ b/mediagoblin/templates/mediagoblin/edit/edit.html @@ -1,6 +1,6 @@ {# # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/edit/edit_account.html b/mediagoblin/templates/mediagoblin/edit/edit_account.html index e8a968e6..1d80debc 100644 --- a/mediagoblin/templates/mediagoblin/edit/edit_account.html +++ b/mediagoblin/templates/mediagoblin/edit/edit_account.html @@ -1,6 +1,6 @@ {# # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/edit/edit_profile.html b/mediagoblin/templates/mediagoblin/edit/edit_profile.html index 97c03e37..90862a4f 100644 --- a/mediagoblin/templates/mediagoblin/edit/edit_profile.html +++ b/mediagoblin/templates/mediagoblin/edit/edit_profile.html @@ -1,6 +1,6 @@ {# # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/listings/tag.html b/mediagoblin/templates/mediagoblin/listings/tag.html index a7cbe241..4d502201 100644 --- a/mediagoblin/templates/mediagoblin/listings/tag.html +++ b/mediagoblin/templates/mediagoblin/listings/tag.html @@ -1,6 +1,6 @@ {# # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/media_displays/ascii.html b/mediagoblin/templates/mediagoblin/media_displays/ascii.html index 6b40bf08..6330595b 100644 --- a/mediagoblin/templates/mediagoblin/media_displays/ascii.html +++ b/mediagoblin/templates/mediagoblin/media_displays/ascii.html @@ -1,6 +1,6 @@ {# # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/media_displays/image.html b/mediagoblin/templates/mediagoblin/media_displays/image.html index 94420e89..7dfecb11 100644 --- a/mediagoblin/templates/mediagoblin/media_displays/image.html +++ b/mediagoblin/templates/mediagoblin/media_displays/image.html @@ -1,6 +1,6 @@ {# # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/media_displays/video.html b/mediagoblin/templates/mediagoblin/media_displays/video.html index 6b5e7a0e..ec4338fa 100644 --- a/mediagoblin/templates/mediagoblin/media_displays/video.html +++ b/mediagoblin/templates/mediagoblin/media_displays/video.html @@ -1,6 +1,6 @@ {# # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/root.html b/mediagoblin/templates/mediagoblin/root.html index 3f834572..bb12fe4f 100644 --- a/mediagoblin/templates/mediagoblin/root.html +++ b/mediagoblin/templates/mediagoblin/root.html @@ -1,6 +1,6 @@ {# # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/submit/start.html b/mediagoblin/templates/mediagoblin/submit/start.html index afae2f1f..31163384 100644 --- a/mediagoblin/templates/mediagoblin/submit/start.html +++ b/mediagoblin/templates/mediagoblin/submit/start.html @@ -1,6 +1,6 @@ {# # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/test_submit.html b/mediagoblin/templates/mediagoblin/test_submit.html index 38be8efc..0771a0c7 100644 --- a/mediagoblin/templates/mediagoblin/test_submit.html +++ b/mediagoblin/templates/mediagoblin/test_submit.html @@ -1,6 +1,6 @@ {# # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/user_pages/gallery.html b/mediagoblin/templates/mediagoblin/user_pages/gallery.html index b0bfacf8..e234914f 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/gallery.html +++ b/mediagoblin/templates/mediagoblin/user_pages/gallery.html @@ -1,6 +1,6 @@ {# # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index dec443cd..d2503a4e 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -1,6 +1,6 @@ {# # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html b/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html index dcb148e0..e64845e7 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html @@ -1,6 +1,6 @@ {# # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/user_pages/processing_panel.html b/mediagoblin/templates/mediagoblin/user_pages/processing_panel.html index a14b0123..65549860 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/processing_panel.html +++ b/mediagoblin/templates/mediagoblin/user_pages/processing_panel.html @@ -1,6 +1,6 @@ {# # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index d3b4021d..c74535d7 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -1,6 +1,6 @@ {# # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/utils/exif.html b/mediagoblin/templates/mediagoblin/utils/exif.html index 9962dd65..0dd187f2 100644 --- a/mediagoblin/templates/mediagoblin/utils/exif.html +++ b/mediagoblin/templates/mediagoblin/utils/exif.html @@ -1,6 +1,6 @@ {# # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/utils/feed_link.html b/mediagoblin/templates/mediagoblin/utils/feed_link.html index 3afcc844..6a41cef5 100644 --- a/mediagoblin/templates/mediagoblin/utils/feed_link.html +++ b/mediagoblin/templates/mediagoblin/utils/feed_link.html @@ -1,6 +1,6 @@ {# # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/utils/geolocation_map.html b/mediagoblin/templates/mediagoblin/utils/geolocation_map.html index ce1edc39..c1909ae5 100644 --- a/mediagoblin/templates/mediagoblin/utils/geolocation_map.html +++ b/mediagoblin/templates/mediagoblin/utils/geolocation_map.html @@ -1,6 +1,6 @@ {# # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/utils/license.html b/mediagoblin/templates/mediagoblin/utils/license.html index 5a268e39..2438ed4e 100644 --- a/mediagoblin/templates/mediagoblin/utils/license.html +++ b/mediagoblin/templates/mediagoblin/utils/license.html @@ -1,6 +1,6 @@ {# # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/utils/messages.html b/mediagoblin/templates/mediagoblin/utils/messages.html index 9d4dc58a..cb45f59a 100644 --- a/mediagoblin/templates/mediagoblin/utils/messages.html +++ b/mediagoblin/templates/mediagoblin/utils/messages.html @@ -1,6 +1,6 @@ {# # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/utils/object_gallery.html b/mediagoblin/templates/mediagoblin/utils/object_gallery.html index 5f628dc7..81506a84 100644 --- a/mediagoblin/templates/mediagoblin/utils/object_gallery.html +++ b/mediagoblin/templates/mediagoblin/utils/object_gallery.html @@ -1,6 +1,6 @@ {# # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/utils/pagination.html b/mediagoblin/templates/mediagoblin/utils/pagination.html index caa79fcc..2ac990ae 100644 --- a/mediagoblin/templates/mediagoblin/utils/pagination.html +++ b/mediagoblin/templates/mediagoblin/utils/pagination.html @@ -1,6 +1,6 @@ {# # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/utils/prev_next.html b/mediagoblin/templates/mediagoblin/utils/prev_next.html index 66766555..d0cf3f8c 100644 --- a/mediagoblin/templates/mediagoblin/utils/prev_next.html +++ b/mediagoblin/templates/mediagoblin/utils/prev_next.html @@ -1,6 +1,6 @@ {# # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/utils/profile.html b/mediagoblin/templates/mediagoblin/utils/profile.html index 9a134e5f..945bd0bb 100644 --- a/mediagoblin/templates/mediagoblin/utils/profile.html +++ b/mediagoblin/templates/mediagoblin/utils/profile.html @@ -1,6 +1,6 @@ {# # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/utils/tags.html b/mediagoblin/templates/mediagoblin/utils/tags.html index 1f587411..6408102d 100644 --- a/mediagoblin/templates/mediagoblin/utils/tags.html +++ b/mediagoblin/templates/mediagoblin/utils/tags.html @@ -1,6 +1,6 @@ {# # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/utils/wtforms.html b/mediagoblin/templates/mediagoblin/utils/wtforms.html index 44b27bb8..a85a3d96 100644 --- a/mediagoblin/templates/mediagoblin/utils/wtforms.html +++ b/mediagoblin/templates/mediagoblin/utils/wtforms.html @@ -1,6 +1,6 @@ {# # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/webfinger/host-meta.xml b/mediagoblin/templates/mediagoblin/webfinger/host-meta.xml index 95a1a176..0f5fa7a3 100644 --- a/mediagoblin/templates/mediagoblin/webfinger/host-meta.xml +++ b/mediagoblin/templates/mediagoblin/webfinger/host-meta.xml @@ -1,5 +1,5 @@ {# GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/templates/mediagoblin/webfinger/xrd.xml b/mediagoblin/templates/mediagoblin/webfinger/xrd.xml index 1fe34577..bb2c5905 100644 --- a/mediagoblin/templates/mediagoblin/webfinger/xrd.xml +++ b/mediagoblin/templates/mediagoblin/webfinger/xrd.xml @@ -1,5 +1,5 @@ {# GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/tests/__init__.py b/mediagoblin/tests/__init__.py index eac3dff4..15a5add0 100644 --- a/mediagoblin/tests/__init__.py +++ b/mediagoblin/tests/__init__.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/tests/fake_celery_module.py b/mediagoblin/tests/fake_celery_module.py index ba347c69..621845ba 100644 --- a/mediagoblin/tests/fake_celery_module.py +++ b/mediagoblin/tests/fake_celery_module.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/tests/test_auth.py b/mediagoblin/tests/test_auth.py index 411b4539..3a33c66c 100644 --- a/mediagoblin/tests/test_auth.py +++ b/mediagoblin/tests/test_auth.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/tests/test_celery_setup.py b/mediagoblin/tests/test_celery_setup.py index 19a9b899..c9c77821 100644 --- a/mediagoblin/tests/test_celery_setup.py +++ b/mediagoblin/tests/test_celery_setup.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/tests/test_config.py b/mediagoblin/tests/test_config.py index 0764e12d..c596f6a6 100644 --- a/mediagoblin/tests/test_config.py +++ b/mediagoblin/tests/test_config.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/tests/test_csrf_middleware.py b/mediagoblin/tests/test_csrf_middleware.py index c8fca23a..f49dc94e 100644 --- a/mediagoblin/tests/test_csrf_middleware.py +++ b/mediagoblin/tests/test_csrf_middleware.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/tests/test_edit.py b/mediagoblin/tests/test_edit.py index 55f34b42..398a5d25 100644 --- a/mediagoblin/tests/test_edit.py +++ b/mediagoblin/tests/test_edit.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/tests/test_exif.py b/mediagoblin/tests/test_exif.py index 9f2219c0..bfafe129 100644 --- a/mediagoblin/tests/test_exif.py +++ b/mediagoblin/tests/test_exif.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/tests/test_globals.py b/mediagoblin/tests/test_globals.py index 84f1c74a..98f6a436 100644 --- a/mediagoblin/tests/test_globals.py +++ b/mediagoblin/tests/test_globals.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/tests/test_messages.py b/mediagoblin/tests/test_messages.py index 2635f4d7..d3b84828 100644 --- a/mediagoblin/tests/test_messages.py +++ b/mediagoblin/tests/test_messages.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/tests/test_migrations.py b/mediagoblin/tests/test_migrations.py index 8e573f5a..f6e6c1a8 100644 --- a/mediagoblin/tests/test_migrations.py +++ b/mediagoblin/tests/test_migrations.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/tests/test_misc.py b/mediagoblin/tests/test_misc.py index 09623355..94ae5a51 100644 --- a/mediagoblin/tests/test_misc.py +++ b/mediagoblin/tests/test_misc.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/tests/test_storage.py b/mediagoblin/tests/test_storage.py index eab4d032..6fc2e57c 100644 --- a/mediagoblin/tests/test_storage.py +++ b/mediagoblin/tests/test_storage.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/tests/test_submission.py b/mediagoblin/tests/test_submission.py index b3c11249..e31a7783 100644 --- a/mediagoblin/tests/test_submission.py +++ b/mediagoblin/tests/test_submission.py @@ -1,6 +1,6 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/tests/test_tags.py b/mediagoblin/tests/test_tags.py index 583c1a55..79f925aa 100644 --- a/mediagoblin/tests/test_tags.py +++ b/mediagoblin/tests/test_tags.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/tests/test_tests.py b/mediagoblin/tests/test_tests.py index 25bb52b3..20832ac7 100644 --- a/mediagoblin/tests/test_tests.py +++ b/mediagoblin/tests/test_tests.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/tests/test_util.py b/mediagoblin/tests/test_util.py index 48fa8669..452090e1 100644 --- a/mediagoblin/tests/test_util.py +++ b/mediagoblin/tests/test_util.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/tests/test_workbench.py b/mediagoblin/tests/test_workbench.py index 977d64b9..b5243a9b 100644 --- a/mediagoblin/tests/test_workbench.py +++ b/mediagoblin/tests/test_workbench.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/tests/tools.py b/mediagoblin/tests/tools.py index 49a3d33e..7cf355b0 100644 --- a/mediagoblin/tests/tools.py +++ b/mediagoblin/tests/tools.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/tools/exif.py b/mediagoblin/tools/exif.py index 3c1aebe5..de6dd128 100644 --- a/mediagoblin/tools/exif.py +++ b/mediagoblin/tools/exif.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/tools/files.py b/mediagoblin/tools/files.py index 10f1d994..b2f316b2 100644 --- a/mediagoblin/tools/files.py +++ b/mediagoblin/tools/files.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/tools/licenses.py b/mediagoblin/tools/licenses.py index 0ff6453b..48cb442b 100644 --- a/mediagoblin/tools/licenses.py +++ b/mediagoblin/tools/licenses.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/tools/mail.py b/mediagoblin/tools/mail.py index 9e00be7d..655d5b99 100644 --- a/mediagoblin/tools/mail.py +++ b/mediagoblin/tools/mail.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/tools/pagination.py b/mediagoblin/tools/pagination.py index 5ebc3c5a..ff7d4cad 100644 --- a/mediagoblin/tools/pagination.py +++ b/mediagoblin/tools/pagination.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/tools/request.py b/mediagoblin/tools/request.py index 7e193125..a45f716a 100644 --- a/mediagoblin/tools/request.py +++ b/mediagoblin/tools/request.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/tools/response.py b/mediagoblin/tools/response.py index c905097c..a54c32fb 100644 --- a/mediagoblin/tools/response.py +++ b/mediagoblin/tools/response.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/tools/template.py b/mediagoblin/tools/template.py index 54a40de6..72c87a99 100644 --- a/mediagoblin/tools/template.py +++ b/mediagoblin/tools/template.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/tools/testing.py b/mediagoblin/tools/testing.py index 39435ca5..7f2bcbfb 100644 --- a/mediagoblin/tools/testing.py +++ b/mediagoblin/tools/testing.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/tools/text.py b/mediagoblin/tools/text.py index d576224d..82de8a48 100644 --- a/mediagoblin/tools/text.py +++ b/mediagoblin/tools/text.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/tools/translate.py b/mediagoblin/tools/translate.py index b99c4aa4..33ee889a 100644 --- a/mediagoblin/tools/translate.py +++ b/mediagoblin/tools/translate.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/user_pages/__init__.py b/mediagoblin/user_pages/__init__.py index ba347c69..621845ba 100644 --- a/mediagoblin/user_pages/__init__.py +++ b/mediagoblin/user_pages/__init__.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/user_pages/forms.py b/mediagoblin/user_pages/forms.py index e04fd559..acfbadab 100644 --- a/mediagoblin/user_pages/forms.py +++ b/mediagoblin/user_pages/forms.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/user_pages/routing.py b/mediagoblin/user_pages/routing.py index 3586d9cd..f9780edc 100644 --- a/mediagoblin/user_pages/routing.py +++ b/mediagoblin/user_pages/routing.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 29360e23..ba499731 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -1,5 +1,5 @@ # MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/views.py b/mediagoblin/views.py index 1e1db6c3..9d34750b 100644 --- a/mediagoblin/views.py +++ b/mediagoblin/views.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/webfinger/__init__.py b/mediagoblin/webfinger/__init__.py index ec7ec884..126e6ea2 100644 --- a/mediagoblin/webfinger/__init__.py +++ b/mediagoblin/webfinger/__init__.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/webfinger/routing.py b/mediagoblin/webfinger/routing.py index effb2bf2..7e84a00a 100644 --- a/mediagoblin/webfinger/routing.py +++ b/mediagoblin/webfinger/routing.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/webfinger/views.py b/mediagoblin/webfinger/views.py index 22086396..97fc3ef7 100644 --- a/mediagoblin/webfinger/views.py +++ b/mediagoblin/webfinger/views.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/workbench.py b/mediagoblin/workbench.py index 9578494c..2331b551 100644 --- a/mediagoblin/workbench.py +++ b/mediagoblin/workbench.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by From 3f1dc64ed15a8f1f9141338561028efc6758bdf2 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Thu, 2 Feb 2012 19:54:47 +0100 Subject: [PATCH 04/42] Added extensions 'asc' and 'nfo' to ASCII media type --- mediagoblin/media_types/ascii/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/media_types/ascii/__init__.py b/mediagoblin/media_types/ascii/__init__.py index e54427b1..1c8ca562 100644 --- a/mediagoblin/media_types/ascii/__init__.py +++ b/mediagoblin/media_types/ascii/__init__.py @@ -24,4 +24,4 @@ MEDIA_MANAGER = { "display_template": "mediagoblin/media_displays/ascii.html", "default_thumb": "images/media_thumbs/ascii.jpg", "accepted_extensions": [ - "txt"]} + "txt", "asc", "nfo"]} From 010d28b4f0a39103949692209106a1b47fceeaf2 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Thu, 2 Feb 2012 21:28:21 +0100 Subject: [PATCH 05/42] ASCII art support - Fixes - Improved(?) character set detection, chardet will not win over UTF-8 unless it is >= 90% sure. - Changed the unicode.txt to ascii-portable.txt, since there is no unicode in the file. - etc. --- mediagoblin/media_types/ascii/asciitoimage.py | 26 +++++-------------- mediagoblin/media_types/ascii/processing.py | 22 +++++++++++++--- 2 files changed, 25 insertions(+), 23 deletions(-) diff --git a/mediagoblin/media_types/ascii/asciitoimage.py b/mediagoblin/media_types/ascii/asciitoimage.py index da1a3bcc..186d8066 100644 --- a/mediagoblin/media_types/ascii/asciitoimage.py +++ b/mediagoblin/media_types/ascii/asciitoimage.py @@ -65,7 +65,8 @@ class AsciiToImage(object): self._if = ImageFont.truetype( self._font, - self._font_size) + self._font_size, + encoding='unic') # ,-,-^-'-^'^-^'^-'^-. # ( I am a wall socket )Oo, ___ @@ -91,6 +92,9 @@ class AsciiToImage(object): - Character set detection and decoding, http://pypi.python.org/pypi/chardet ''' + # Convert the input from str to unicode + text = text.decode('utf-8') + # TODO: Account for alternative line endings lines = text.split('\n') @@ -123,7 +127,7 @@ class AsciiToImage(object): px_pos = self._px_pos(char_pos) - _log.debug('Writing character "{0}" at {1} (px pos {2}'.format( + _log.debug('Writing character "{0}" at {1} (px pos {2})'.format( char, char_pos, px_pos)) @@ -152,21 +156,3 @@ class AsciiToImage(object): px_pos[index] = char_pos[index] * self._if_dims[index] return px_pos - - -if __name__ == "__main__": - import urllib - txt = urllib.urlopen('file:///home/joar/Dropbox/ascii/install-all-the-dependencies.txt') - - _log.setLevel(logging.DEBUG) - logging.basicConfig() - - converter = AsciiToImage() - - converter.convert(txt.read(), '/tmp/test.png') - - ''' - im, x, y, duration = renderImage(h, 10) - print "Rendered image in %.5f seconds" % duration - im.save('tldr.png', "PNG") - ''' diff --git a/mediagoblin/media_types/ascii/processing.py b/mediagoblin/media_types/ascii/processing.py index ec530df6..96dfce80 100644 --- a/mediagoblin/media_types/ascii/processing.py +++ b/mediagoblin/media_types/ascii/processing.py @@ -17,10 +17,12 @@ import asciitoimage import chardet import os import Image +import logging from mediagoblin import mg_globals as mgg from mediagoblin.processing import create_pub_filepath, THUMB_SIZE +_log = logging.getLogger(__name__) def process_ascii(entry): ''' @@ -42,6 +44,17 @@ def process_ascii(entry): with queued_file: queued_file_charset = chardet.detect(queued_file.read()) + # Only select a non-utf-8 charset if chardet is *really* sure + # Tested with "Feli\x0109an superjaron", which was detecte + if queued_file_charset['confidence'] < 0.9: + interpreted_charset = 'utf-8' + else: + interpreted_charset = queued_file_charset['encoding'] + + _log.info('Charset detected: {0}\nWill interpret as: {1}'.format( + queued_file_charset, + interpreted_charset)) + queued_file.seek(0) # Rewind the queued file thumb_filepath = create_pub_filepath( @@ -73,13 +86,16 @@ def process_ascii(entry): queued_file.seek(0) # Rewind *again* - unicode_filepath = create_pub_filepath(entry, 'unicode.txt') + unicode_filepath = create_pub_filepath(entry, 'ascii-portable.txt') with mgg.public_store.get_file(unicode_filepath, 'wb') \ as unicode_file: + # Decode the original file from its detected charset (or UTF8) + # Encode the unicode instance to ASCII and replace any non-ASCII + # with an HTML entity (&# unicode_file.write( - unicode(queued_file.read().decode( - queued_file_charset['encoding'])).encode( + unicode(queued_file.read().decode( + interpreted_charset)).encode( 'ascii', 'xmlcharrefreplace')) From 64da09e86a755e49832e3c324582c65d352632d4 Mon Sep 17 00:00:00 2001 From: Joar Wandborg Date: Sat, 4 Feb 2012 20:51:05 +0100 Subject: [PATCH 06/42] ASCII media support - Fixes - Added debug logging in - mediagoblin.processing - mediagoblin.media_types.ascii.processing - mediagoblin.media_types.ascii.asciitoimage --- mediagoblin/media_types/ascii/asciitoimage.py | 11 ++++++----- mediagoblin/media_types/ascii/processing.py | 1 + mediagoblin/processing.py | 12 +++++++++++- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/mediagoblin/media_types/ascii/asciitoimage.py b/mediagoblin/media_types/ascii/asciitoimage.py index 186d8066..e1c4fb44 100644 --- a/mediagoblin/media_types/ascii/asciitoimage.py +++ b/mediagoblin/media_types/ascii/asciitoimage.py @@ -59,15 +59,15 @@ class AsciiToImage(object): if kw.get('font_size'): self._font_size = kw.get('font_size') - _log.info('Setting font to {0}, size {1}'.format( - self._font, - self._font_size)) - self._if = ImageFont.truetype( self._font, self._font_size, encoding='unic') + _log.info('Font set to {0}, size {1}'.format( + self._font, + self._font_size)) + # ,-,-^-'-^'^-^'^-'^-. # ( I am a wall socket )Oo, ___ # `-.,.-.,.-.-.,.-.--' ' ` @@ -92,6 +92,7 @@ class AsciiToImage(object): - Character set detection and decoding, http://pypi.python.org/pypi/chardet ''' + _log.debug('Drawing image') # Convert the input from str to unicode text = text.decode('utf-8') @@ -128,7 +129,7 @@ class AsciiToImage(object): px_pos = self._px_pos(char_pos) _log.debug('Writing character "{0}" at {1} (px pos {2})'.format( - char, + char.encode('ascii', 'replace'), char_pos, px_pos)) diff --git a/mediagoblin/media_types/ascii/processing.py b/mediagoblin/media_types/ascii/processing.py index 96dfce80..837b9830 100644 --- a/mediagoblin/media_types/ascii/processing.py +++ b/mediagoblin/media_types/ascii/processing.py @@ -72,6 +72,7 @@ def process_ascii(entry): thumb.thumbnail(THUMB_SIZE, Image.ANTIALIAS) thumb.save(thumb_file) + _log.debug('Copying local file to public storage') mgg.public_store.copy_local_to_storage( tmp_thumb_filename, thumb_filepath) diff --git a/mediagoblin/processing.py b/mediagoblin/processing.py index 4f1bf61b..9e57380d 100644 --- a/mediagoblin/processing.py +++ b/mediagoblin/processing.py @@ -14,6 +14,8 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . +import logging + from celery.task import Task from mediagoblin.db.util import ObjectId @@ -23,6 +25,7 @@ from mediagoblin.tools.translate import lazy_pass_to_ugettext as _ from mediagoblin.media_types import get_media_manager +_log = logging.getLogger(__name__) THUMB_SIZE = 180, 180 MEDIUM_SIZE = 640, 640 @@ -57,12 +60,19 @@ class ProcessMedia(Task): try: #__import__(entry.media_type) manager = get_media_manager(entry.media_type) + _log.debug('Processing {0}'.format(entry)) manager['processor'](entry) except BaseProcessingFail, exc: mark_entry_failed(entry._id, exc) return except ImportError, exc: - mark_entry_failed(entry[u'_id'], exc) + _log.error( + 'Entry {0} failed to process due to an import error: {1}'\ + .format( + entry.title, + exc)) + + mark_entry_failed(entry._id, exc) entry.state = u'processed' entry.save() From ccca39f1d8a397f20d56406540785931ef7c419f Mon Sep 17 00:00:00 2001 From: Elrond Date: Sat, 4 Feb 2012 20:54:14 +0100 Subject: [PATCH 07/42] Fix EXIF based image rotation test The test checks for a pixel value after rotation (good idea!). But the value seems to be a bit different on some platforms, so use a list of seen values. Not the perfect solution, but it works. --- mediagoblin/tests/test_exif.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/mediagoblin/tests/test_exif.py b/mediagoblin/tests/test_exif.py index bfafe129..ed95045c 100644 --- a/mediagoblin/tests/test_exif.py +++ b/mediagoblin/tests/test_exif.py @@ -21,6 +21,11 @@ import Image from mediagoblin.tools.exif import exif_fix_image_orientation, \ extract_exif, clean_exif, get_gps_data, get_useful + +def assert_in(a, b): + assert a in b, "%r not in %r" % (a, b) + + GOOD_JPG = pkg_resources.resource_filename( 'mediagoblin.tests', os.path.join( @@ -42,6 +47,7 @@ GPS_JPG = pkg_resources.resource_filename( 'test_exif', 'has-gps.jpg')) + def test_exif_extraction(): ''' Test EXIF extraction from a good image @@ -130,6 +136,7 @@ def test_exif_extraction(): 32, 32, 32], 'field_length': 44}} + def test_exif_image_orientation(): ''' Test image reorientation based on EXIF data @@ -144,7 +151,10 @@ def test_exif_image_orientation(): assert image.size == (428, 640) # If this pixel looks right, the rest of the image probably will too. - assert image.getdata()[10000] == (41, 28, 11) + assert_in(image.getdata()[10000], + ((41, 28, 11), (43, 27, 11)) + ) + def test_exif_no_exif(): ''' @@ -160,6 +170,7 @@ def test_exif_no_exif(): assert gps == {} assert useful == {} + def test_exif_bad_image(): ''' Test EXIF extraction from a faithful, but bad image @@ -174,6 +185,7 @@ def test_exif_bad_image(): assert gps == {} assert useful == {} + def test_exif_gps_data(): ''' Test extractiion of GPS data @@ -186,4 +198,3 @@ def test_exif_gps_data(): 'direction': 25.674046740467404, 'altitude': 37.64365671641791, 'longitude': 18.016166666666667} - From 1eb0bd71c54e9552116c02b40667ef2b05f805ff Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 5 Feb 2012 16:21:14 -0600 Subject: [PATCH 08/42] Committing present MediaGoblin translations before pushing extracted messages --- .../i18n/de/LC_MESSAGES/mediagoblin.po | 73 +++++++++++-------- .../i18n/eo/LC_MESSAGES/mediagoblin.po | 41 +++++++---- .../i18n/nl/LC_MESSAGES/mediagoblin.po | 19 +++-- .../i18n/ru/LC_MESSAGES/mediagoblin.po | 52 ++++++++----- 4 files changed, 114 insertions(+), 71 deletions(-) diff --git a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po index 381005a8..e435971a 100644 --- a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.po @@ -8,7 +8,7 @@ # Elrond , 2011, 2012. # , 2011, 2012. # Jan-Christoph Borchardt , 2011. -# Jan-Christoph Borchardt , 2011. +# Jan-Christoph Borchardt , 2011, 2012. # , 2011. # , 2011. # Rafael Maguiña , 2011. @@ -16,10 +16,10 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" -"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2012-01-29 13:31-0600\n" -"PO-Revision-Date: 2012-01-29 19:44+0000\n" -"Last-Translator: Elrond \n" +"Report-Msgid-Bugs-To: http://issues.mediagoblin.org/\n" +"POT-Creation-Date: 2012-01-29 13:47-0600\n" +"PO-Revision-Date: 2012-02-05 20:23+0000\n" +"Last-Translator: Jan-Christoph Borchardt \n" "Language-Team: German (http://www.transifex.net/projects/p/mediagoblin/team/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -84,6 +84,8 @@ msgstr "Bestätigungs-E-Mail wurde erneut versandt." msgid "" "An email has been sent with instructions on how to change your password." msgstr "" +"Es wurde eine Email mit Anweisungen für die Änderung des Passwortes an dich " +"gesendet." #: mediagoblin/auth/views.py:270 msgid "" @@ -96,11 +98,11 @@ msgstr "" #: mediagoblin/auth/views.py:282 msgid "Couldn't find someone with that username or email." -msgstr "" +msgstr "Es konnte niemand mit diesem Nutzernamen oder Email gefunden werden." #: mediagoblin/auth/views.py:330 msgid "You can now log in using your new password." -msgstr "" +msgstr "Du kannst dich jetzt mit deinem neuen Passwort anmelden." #: mediagoblin/edit/forms.py:25 mediagoblin/submit/forms.py:28 msgid "Title" @@ -117,10 +119,13 @@ msgid "" " \n" " Markdown for formatting." msgstr "" +"Für Formatierung kannst du\n" +" \n" +" Markdown benutzen." #: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:36 msgid "Tags" -msgstr "Markierungen" +msgstr "Schlagworte" #: mediagoblin/edit/forms.py:35 mediagoblin/submit/forms.py:38 msgid "Separate tags by commas." @@ -161,6 +166,7 @@ msgstr "Altes Passwort" #: mediagoblin/edit/forms.py:65 msgid "Enter your old password to prove you own this account." msgstr "" +"Gib dein altes Passwort ein, um zu bestätigen dass du dieses Konto besitzt." #: mediagoblin/edit/forms.py:68 msgid "New password" @@ -188,15 +194,15 @@ msgstr "Falsches Passwort" #: mediagoblin/edit/views.py:222 msgid "Account settings saved" -msgstr "" +msgstr "Kontoeinstellungen gespeichert" #: mediagoblin/media_types/__init__.py:77 msgid "Could not extract any file extension from \"{filename}\"" -msgstr "" +msgstr "Es konnten keine Dateierweiterungen von »{filename}« gelesen werden." #: mediagoblin/media_types/__init__.py:88 msgid "Sorry, I don't support that file type :(" -msgstr "" +msgstr "Entschuldigung, dieser Dateityp wird nicht unterstützt." #: mediagoblin/submit/forms.py:26 msgid "File" @@ -306,11 +312,11 @@ msgstr "Neuste Medien" #: mediagoblin/templates/mediagoblin/auth/change_fp.html:32 msgid "Set your new password" -msgstr "" +msgstr "Dein neues Passwort" #: mediagoblin/templates/mediagoblin/auth/change_fp.html:35 msgid "Set password" -msgstr "" +msgstr "Passwort setzen" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" @@ -400,7 +406,7 @@ msgstr "Änderungen speichern" #: mediagoblin/templates/mediagoblin/edit/edit_account.html:34 #, python-format msgid "Changing %(username)s's account settings" -msgstr "" +msgstr "%(username)s's Kontoeinstellungen werden geändert" #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 #, python-format @@ -411,7 +417,7 @@ msgstr "%(username)ss Profil bearbeiten" #: mediagoblin/templates/mediagoblin/listings/tag.html:35 #, python-format msgid "Media tagged with: %(tag_name)s" -msgstr "Medien markiert mit: %(tag_name)s" +msgstr "Medien mit Schlagwort: %(tag_name)s" #: mediagoblin/templates/mediagoblin/media_displays/ascii.html:34 #: mediagoblin/templates/mediagoblin/media_displays/video.html:46 @@ -424,6 +430,9 @@ msgid "" "\t your web browser does not support HTML5 \n" "\t video." msgstr "" +"Entschuldige, dieses Video wird nicht funktionieren weil \n" +"» dein Webbrowser kein HTML5 \n" +"» Video unterstützt." #: mediagoblin/templates/mediagoblin/media_displays/video.html:36 msgid "" @@ -431,14 +440,17 @@ msgid "" "\t can play this video at \n" "\t http://getfirefox.com!" msgstr "" +"Hol dir einen modernen Webbrowser, der \n" +"» dieses Video abspielen kann, \n" +"» Firefox!" #: mediagoblin/templates/mediagoblin/submit/start.html:26 msgid "Add your media" -msgstr "" +msgstr "Deine Medien" #: mediagoblin/templates/mediagoblin/submit/start.html:30 msgid "Add" -msgstr "" +msgstr "Hinzufügen" #: mediagoblin/templates/mediagoblin/user_pages/gallery.html:30 #, python-format @@ -453,7 +465,7 @@ msgstr "%(username)ss Medien" #: mediagoblin/templates/mediagoblin/user_pages/media.html:72 #, python-format msgid "Added on %(date)s." -msgstr "" +msgstr "Hinzugefügt am %(date)s." #: mediagoblin/templates/mediagoblin/user_pages/media.html:81 msgid "Edit" @@ -475,11 +487,11 @@ msgstr "%(comment_count)s Kommentare" #: mediagoblin/templates/mediagoblin/user_pages/media.html:95 msgid "No comments yet." -msgstr "" +msgstr "Bisher keine Kommentare." #: mediagoblin/templates/mediagoblin/user_pages/media.html:103 msgid "Add one" -msgstr "" +msgstr "Kommentiere etwas" #: mediagoblin/templates/mediagoblin/user_pages/media.html:112 msgid "" @@ -487,10 +499,13 @@ msgid "" "href=\"http://daringfireball.net/projects/markdown/basics\">Markdown for" " formatting." msgstr "" +"Für Formatierung kannst du Markdown " +"benutzen." #: mediagoblin/templates/mediagoblin/user_pages/media.html:116 msgid "Add this comment" -msgstr "" +msgstr "Kommentar absenden" #: mediagoblin/templates/mediagoblin/user_pages/media.html:138 msgid "at" @@ -499,7 +514,7 @@ msgstr "bei" #: mediagoblin/templates/mediagoblin/user_pages/media.html:153 #, python-format msgid "

❖ Browsing media by %(username)s

" -msgstr "" +msgstr "

❖ Medien von %(username)s

" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format @@ -600,7 +615,7 @@ msgstr "Dieser Benutzer hat (noch) keine Daten in seinem Profil." #: mediagoblin/templates/mediagoblin/user_pages/user.html:125 msgid "Change account settings" -msgstr "" +msgstr "Kontoeinstellungen ändern" #: mediagoblin/templates/mediagoblin/user_pages/user.html:138 #, python-format @@ -628,11 +643,11 @@ msgstr "Atom-Feed" #: mediagoblin/templates/mediagoblin/utils/license.html:21 msgid "License:" -msgstr "" +msgstr "Lizenz:" #: mediagoblin/templates/mediagoblin/utils/license.html:25 msgid "All rights reserved" -msgstr "" +msgstr "Alle Rechte vorbehalten" #: mediagoblin/templates/mediagoblin/utils/pagination.html:39 msgid "← Newer" @@ -649,16 +664,16 @@ msgstr "Zu Seite:" #: mediagoblin/templates/mediagoblin/utils/prev_next.html:27 #: mediagoblin/templates/mediagoblin/utils/prev_next.html:32 msgid "newer" -msgstr "" +msgstr "neuer" #: mediagoblin/templates/mediagoblin/utils/prev_next.html:38 #: mediagoblin/templates/mediagoblin/utils/prev_next.html:43 msgid "older" -msgstr "" +msgstr "älter" #: mediagoblin/templates/mediagoblin/utils/tags.html:20 msgid "View more media tagged with" -msgstr "" +msgstr "Mehr Medien anschauen mit dem Schlagwort" #: mediagoblin/templates/mediagoblin/utils/tags.html:25 msgid "or" @@ -666,7 +681,7 @@ msgstr "oder" #: mediagoblin/tools/exif.py:68 msgid "Could not read the image file." -msgstr "" +msgstr "Die Bilddatei konnte nicht gelesen werden." #: mediagoblin/user_pages/forms.py:30 msgid "I am sure I want to delete this" diff --git a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po index a98409ac..49626556 100644 --- a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.po @@ -9,10 +9,10 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" -"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2012-01-29 13:31-0600\n" -"PO-Revision-Date: 2012-01-29 19:29+0000\n" -"Last-Translator: cwebber \n" +"Report-Msgid-Bugs-To: http://issues.mediagoblin.org/\n" +"POT-Creation-Date: 2012-01-29 13:47-0600\n" +"PO-Revision-Date: 2012-02-05 21:07+0000\n" +"Last-Translator: aleksejrs \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -109,6 +109,9 @@ msgid "" " \n" " Markdown for formatting." msgstr "" +"Vi povas uzi por markado la lingvon\n" +" «\n" +" Markdown»." #: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:36 msgid "Tags" @@ -136,7 +139,7 @@ msgstr "" #: mediagoblin/edit/forms.py:44 mediagoblin/submit/forms.py:41 msgid "License" -msgstr "" +msgstr "Permesilo" #: mediagoblin/edit/forms.py:50 msgid "Bio" @@ -184,7 +187,7 @@ msgstr "Kontagordoj estis konservitaj" #: mediagoblin/media_types/__init__.py:77 msgid "Could not extract any file extension from \"{filename}\"" -msgstr "" +msgstr "Ne eblis eltrovi finaĵon de la dosiernomo «{filename}»" #: mediagoblin/media_types/__init__.py:88 msgid "Sorry, I don't support that file type :(" @@ -289,6 +292,9 @@ msgid "" " or\n" " Set up MediaGoblin on your own server" msgstr "" +"Kreu konton en ĉi tiu retejo\n" +" aŭ\n" +" ekfunkciigu MediaGoblin’on en via propra servilo" #: mediagoblin/templates/mediagoblin/root.html:40 msgid "Most recent media" @@ -296,11 +302,11 @@ msgstr "Laste aldonitaj dosieroj" #: mediagoblin/templates/mediagoblin/auth/change_fp.html:32 msgid "Set your new password" -msgstr "" +msgstr "Enigu vian novan pasvorton" #: mediagoblin/templates/mediagoblin/auth/change_fp.html:35 msgid "Set password" -msgstr "" +msgstr "Difini pasvorton" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" @@ -475,7 +481,7 @@ msgstr "Estas neniom da komentoj." #: mediagoblin/templates/mediagoblin/user_pages/media.html:103 msgid "Add one" -msgstr "Aldoni sian." +msgstr "Komenti" #: mediagoblin/templates/mediagoblin/user_pages/media.html:112 msgid "" @@ -483,6 +489,8 @@ msgid "" "href=\"http://daringfireball.net/projects/markdown/basics\">Markdown for" " formatting." msgstr "" +"Vi povas uzi por markado la lingvon «<a " +"href=\"http://daringfireball.net/projects/markdown/basics\">Markdown</a>»." #: mediagoblin/templates/mediagoblin/user_pages/media.html:116 msgid "Add this comment" @@ -496,6 +504,7 @@ msgstr "je" #, python-format msgid "

❖ Browsing media by %(username)s

" msgstr "" +"

❖ Foliumado de dosieraro de %(username)s

" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format @@ -623,19 +632,19 @@ msgstr "Atom-a informfluo" #: mediagoblin/templates/mediagoblin/utils/license.html:21 msgid "License:" -msgstr "" +msgstr "Permesilo:" #: mediagoblin/templates/mediagoblin/utils/license.html:25 msgid "All rights reserved" -msgstr "" +msgstr "Ĉiuj rajtoj estas rezervitaj" #: mediagoblin/templates/mediagoblin/utils/pagination.html:39 msgid "← Newer" -msgstr "" +msgstr "← Pli novaj" #: mediagoblin/templates/mediagoblin/utils/pagination.html:45 msgid "Older →" -msgstr "" +msgstr "Malpli novaj →" #: mediagoblin/templates/mediagoblin/utils/pagination.html:48 msgid "Go to page:" @@ -644,12 +653,12 @@ msgstr "Iri al paĝo:" #: mediagoblin/templates/mediagoblin/utils/prev_next.html:27 #: mediagoblin/templates/mediagoblin/utils/prev_next.html:32 msgid "newer" -msgstr "" +msgstr "pli nova" #: mediagoblin/templates/mediagoblin/utils/prev_next.html:38 #: mediagoblin/templates/mediagoblin/utils/prev_next.html:43 msgid "older" -msgstr "" +msgstr "malpli nova" #: mediagoblin/templates/mediagoblin/utils/tags.html:20 msgid "View more media tagged with" @@ -661,7 +670,7 @@ msgstr "aŭ" #: mediagoblin/tools/exif.py:68 msgid "Could not read the image file." -msgstr "" +msgstr "Malsukcesis lego de la bildodosiero" #: mediagoblin/user_pages/forms.py:30 msgid "I am sure I want to delete this" diff --git a/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po index c70bb19e..c40671e6 100644 --- a/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/nl/LC_MESSAGES/mediagoblin.po @@ -7,10 +7,10 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" -"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2012-01-29 13:31-0600\n" -"PO-Revision-Date: 2012-01-29 19:29+0000\n" -"Last-Translator: cwebber \n" +"Report-Msgid-Bugs-To: http://issues.mediagoblin.org/\n" +"POT-Creation-Date: 2012-01-29 13:47-0600\n" +"PO-Revision-Date: 2012-02-05 20:14+0000\n" +"Last-Translator: schendje \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -140,7 +140,7 @@ msgstr "" #: mediagoblin/edit/forms.py:44 mediagoblin/submit/forms.py:41 msgid "License" -msgstr "" +msgstr "Licentie" #: mediagoblin/edit/forms.py:50 msgid "Bio" @@ -488,6 +488,9 @@ msgid "" "href=\"http://daringfireball.net/projects/markdown/basics\">Markdown for" " formatting." msgstr "" +"Voor opmaak kun je <a " +"href=\"http://daringfireball.net/projects/markdown/basics\">Markdown</a>" +" gebruiken." #: mediagoblin/templates/mediagoblin/user_pages/media.html:116 msgid "Add this comment" @@ -630,11 +633,11 @@ msgstr "Atom feed" #: mediagoblin/templates/mediagoblin/utils/license.html:21 msgid "License:" -msgstr "" +msgstr "Licentie:" #: mediagoblin/templates/mediagoblin/utils/license.html:25 msgid "All rights reserved" -msgstr "" +msgstr "Alle rechten voorbehouden" #: mediagoblin/templates/mediagoblin/utils/pagination.html:39 msgid "← Newer" @@ -668,7 +671,7 @@ msgstr "of" #: mediagoblin/tools/exif.py:68 msgid "Could not read the image file." -msgstr "" +msgstr "Kon het afbeeldingsbestand niet lezen." #: mediagoblin/user_pages/forms.py:30 msgid "I am sure I want to delete this" diff --git a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po index 91329920..d895f3bf 100644 --- a/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/ru/LC_MESSAGES/mediagoblin.po @@ -7,10 +7,10 @@ msgid "" msgstr "" "Project-Id-Version: GNU MediaGoblin\n" -"Report-Msgid-Bugs-To: http://bugs.foocorp.net/projects/mediagoblin/issues\n" -"POT-Creation-Date: 2012-01-29 13:31-0600\n" -"PO-Revision-Date: 2012-01-29 19:29+0000\n" -"Last-Translator: cwebber \n" +"Report-Msgid-Bugs-To: http://issues.mediagoblin.org/\n" +"POT-Creation-Date: 2012-01-29 13:47-0600\n" +"PO-Revision-Date: 2012-02-05 21:04+0000\n" +"Last-Translator: aleksejrs \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -76,7 +76,7 @@ msgstr "Переслать сообщение с подтверждением а #: mediagoblin/auth/views.py:260 msgid "" "An email has been sent with instructions on how to change your password." -msgstr "" +msgstr "Вам отправлено электронное письмо с инструкциями по смене пароля." #: mediagoblin/auth/views.py:270 msgid "" @@ -90,10 +90,11 @@ msgstr "" #: mediagoblin/auth/views.py:282 msgid "Couldn't find someone with that username or email." msgstr "" +"Не найдено никого с таким именем пользователя или адресом электронной почты." #: mediagoblin/auth/views.py:330 msgid "You can now log in using your new password." -msgstr "" +msgstr "Теперь вы можете войти, используя ваш новый пароль." #: mediagoblin/edit/forms.py:25 mediagoblin/submit/forms.py:28 msgid "Title" @@ -110,6 +111,9 @@ msgid "" " \n" " Markdown for formatting." msgstr "" +"Для разметки можете использовать язык\n" +" \n" +" Markdown." #: mediagoblin/edit/forms.py:33 mediagoblin/submit/forms.py:36 msgid "Tags" @@ -137,7 +141,7 @@ msgstr "" #: mediagoblin/edit/forms.py:44 mediagoblin/submit/forms.py:41 msgid "License" -msgstr "" +msgstr "Лицензия" #: mediagoblin/edit/forms.py:50 msgid "Bio" @@ -154,6 +158,8 @@ msgstr "Старый пароль" #: mediagoblin/edit/forms.py:65 msgid "Enter your old password to prove you own this account." msgstr "" +"Введите свой старый пароль в качестве доказательства, что это ваша учётная " +"запись." #: mediagoblin/edit/forms.py:68 msgid "New password" @@ -174,7 +180,7 @@ msgstr "Вы редактируете профиль пользователя. #: mediagoblin/edit/views.py:180 msgid "Profile changes saved" -msgstr "" +msgstr "Изменения профиля сохранены" #: mediagoblin/edit/views.py:206 msgid "Wrong password" @@ -182,15 +188,15 @@ msgstr "Неправильный пароль" #: mediagoblin/edit/views.py:222 msgid "Account settings saved" -msgstr "" +msgstr "Настройки учётной записи записаны" #: mediagoblin/media_types/__init__.py:77 msgid "Could not extract any file extension from \"{filename}\"" -msgstr "" +msgstr "Не удалось найти расширение в имени файла «{filename}»" #: mediagoblin/media_types/__init__.py:88 msgid "Sorry, I don't support that file type :(" -msgstr "" +msgstr "Увы, я не поддерживаю этот тип файлов :(" #: mediagoblin/submit/forms.py:26 msgid "File" @@ -289,6 +295,9 @@ msgid "" " or\n" " Set up MediaGoblin on your own server" msgstr "" +"<a class=\"button_action_highlight\" href=\"%(register_url)s\">Создайте учётную запись на этом сайте</a>\n" +" или\n" +" <a class=\"button_action\" href=\"http://wiki.mediagoblin.org/HackingHowto\">установите MediaGoblin на собственный сервер</a>" #: mediagoblin/templates/mediagoblin/root.html:40 msgid "Most recent media" @@ -296,11 +305,11 @@ msgstr "Самые новые файлы" #: mediagoblin/templates/mediagoblin/auth/change_fp.html:32 msgid "Set your new password" -msgstr "" +msgstr "Введите свой новый пароль" #: mediagoblin/templates/mediagoblin/auth/change_fp.html:35 msgid "Set password" -msgstr "" +msgstr "Установить пароль" #: mediagoblin/templates/mediagoblin/auth/forgot_password.html:27 msgid "Recover password" @@ -392,7 +401,7 @@ msgstr "Сохранить изменения" #: mediagoblin/templates/mediagoblin/edit/edit_account.html:34 #, python-format msgid "Changing %(username)s's account settings" -msgstr "" +msgstr "Настройка учётной записи %(username)s" #: mediagoblin/templates/mediagoblin/edit/edit_profile.html:29 #, python-format @@ -416,6 +425,9 @@ msgid "" "\t your web browser does not support HTML5 \n" "\t video." msgstr "" +"Сожалеем, этот ролик не проиграется, ⏎\n" +"» потому что ваш браузер не поддерживает ⏎\n" +"» видео в соответствии со стандартом HTML5." #: mediagoblin/templates/mediagoblin/media_displays/video.html:36 msgid "" @@ -474,7 +486,7 @@ msgstr "Комментариев пока нет." #: mediagoblin/templates/mediagoblin/user_pages/media.html:103 msgid "Add one" -msgstr "Добавить свой" +msgstr "Комментировать" #: mediagoblin/templates/mediagoblin/user_pages/media.html:112 msgid "" @@ -482,6 +494,8 @@ msgid "" "href=\"http://daringfireball.net/projects/markdown/basics\">Markdown for" " formatting." msgstr "" +"Для разметки можете использовать язык Markdown." #: mediagoblin/templates/mediagoblin/user_pages/media.html:116 msgid "Add this comment" @@ -495,6 +509,8 @@ msgstr "в" #, python-format msgid "

❖ Browsing media by %(username)s

" msgstr "" +"

❖ Просмотр файлов пользователя %(username)s

" #: mediagoblin/templates/mediagoblin/user_pages/media_confirm_delete.html:30 #, python-format @@ -620,11 +636,11 @@ msgstr "лента в формате Atom" #: mediagoblin/templates/mediagoblin/utils/license.html:21 msgid "License:" -msgstr "" +msgstr "Лицензия:" #: mediagoblin/templates/mediagoblin/utils/license.html:25 msgid "All rights reserved" -msgstr "" +msgstr "Все права сохранены" #: mediagoblin/templates/mediagoblin/utils/pagination.html:39 msgid "← Newer" @@ -658,7 +674,7 @@ msgstr "или" #: mediagoblin/tools/exif.py:68 msgid "Could not read the image file." -msgstr "" +msgstr "Не удалось прочитать файл с изображением." #: mediagoblin/user_pages/forms.py:30 msgid "I am sure I want to delete this" From 56d1ebdf2968bd5888296bee43d9640ec4b1c5e5 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 5 Feb 2012 16:23:18 -0600 Subject: [PATCH 09/42] Committing present MediaGoblin translations before pushing extracted messages --- mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po index eca38526..23225ed8 100644 --- a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2012-01-29 13:47-0600\n" +"POT-Creation-Date: 2012-02-05 16:21-0600\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 0.9.6\n" -#: mediagoblin/processing.py:143 +#: mediagoblin/processing.py:153 msgid "Invalid file given for media type." msgstr "" From 110b4acc3d1e10931b3464f37d5f3bec08d64ede Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 5 Feb 2012 16:23:29 -0600 Subject: [PATCH 10/42] Committing extracted and compiled translations --- .../i18n/de/LC_MESSAGES/mediagoblin.mo | Bin 13630 -> 14018 bytes .../i18n/en/LC_MESSAGES/mediagoblin.po | 2 +- .../i18n/eo/LC_MESSAGES/mediagoblin.mo | Bin 13752 -> 13840 bytes .../i18n/nl/LC_MESSAGES/mediagoblin.mo | Bin 13516 -> 13526 bytes .../i18n/ru/LC_MESSAGES/mediagoblin.mo | Bin 17134 -> 18051 bytes 5 files changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/de/LC_MESSAGES/mediagoblin.mo index a63886d81a4e4282b655b5d1f5f1633eef75be50..e3ba1606fd69140cf2713eda46e467b0b323c550 100644 GIT binary patch delta 2690 zcmbW%TWl0n7{KvULB#?p3ZfL`w6$8KTee#PgQZ+76$RwhXheOO-97CN%%#qpp<1JB z;w>?nVCG2$6-7^)}Yk)bCqgRO1*QbQZ&^uoQc0>o;_cw-+7*ki*SZkYB{b#x~M8n z#i#KCd>LopyV>(moW}DByaa#6*?3N~s;aALG&d`CGj78Hd;_ntd1#HBg?D;yJ z!}De=pojhV49d74aSzUDRjLnPLkZw_lmHqoQ|cmYx~!_y6dDCyT!`18M79wx#vxpY z_n`#v3d+t7q6F{>k`(m=o{N*)l$wVZ;(F{tng3oq6CXxd=P{Ix?XA*~9qh*xzrmj| zy1f4W_A8W{#q%zF0$;=;u57O_{5(p)<0waR9M8f_7LYyEI0f5Lj;ae~zD+1cRUM>3 zR@7a1KJLNk_$tbd4x?n^Gn5+nA$u=*mNP#OWuYdN+G#~uaAoH8=<~bRA8`i$iTya80_nwp%oI=X{3Xhc-|ALs zEB=DJaW&fw@mrJ)ZCuPd^ifiO0NI=R9Q&mx{-QCAO-q!TgpcA>+=UX@Zj>FpfKpuh zaWcMvjd*a$*ppKpnK|2y7@ zy0IGuxjx65Wx9~>D&+F~E~dGx(7iCvPvd$gwz+}G31ZK&VYE!&-~_pAE0G)9aJZsZ zhf%5GL}jacwmZSfB&dY3HRZA6^Bz2-aRULEK<^BL^bVb?t_uSj8aJSW=Ow`q{~9v! zuyIQj6Ir#^4Mvl}@x#1V*~rQ%uhxaWZvyL@$Y^6noLFUVoJc#x*aT(9^)bEC_0jbS zhm1^Vwd1$ww)QeRT@ZJwRi0<`7E`KNLwHfqR2m9XNEjR*IiGCFvFBP>G~95VTO?_2pe6PH1JHF4lQYvL~ ztILUGJ*ImtLDIpsqhqt$UYay{)C8mHhwZmcRqPIMacJ(b6@6jZ2lpE4xD+cSk*rNY`?1?;6%4ZdA^) zmT)E!ksr3BHtp=_N-ym=R6S+9$wtTeCbw+DQ-_kL9hN&OWiIKW_8NQQVXCR*k$~kb zBNYyp7bT-Z%dT3qb**QXw+uMNmfjM}xi_0)F$zcG!7KrK?ZAfhi%);j zdc>#huv1NB+nTYpxt){RH<(J4-9jz`X>$^GBbTU5k^Iv={VM-Qb#3U8%&2zV=pt7fd~Hz7)eQ_0N@Y0_v>CNoN-3S5G&^{cdCi!#jHxIlaxQFR4u$ zvrD=8+o>m;ZJIBMUn{C$qNqrWZ#*sq7cjlAuyt;~d{g?v$amx;C!Z7vQD#dT)9(s1 z(~swr+KMKSE5@Mz>7L%vy>80Mo@1YOZ)<2uOr*y5anT|r305Z_+NE!#$Rnfv2H{%7 Af&c&j delta 1458 zcmYk*O>9(E6u|M*mP$Jvh`>OoC}Pugr&1 z4Vi_}h0z4PB&eiSqd^xgYNsyz2#GYfv59GLV>hNWY#`OBP1KeCk24Er@qXvtnRoBG z=iIrOym5Z+%%A^3ApVG3@hbMiDu^;zi1P|aP zBzIZB8N7|1c%ezeiyvbxevX>>_f0vG3W7UKXh!!@7ybupu=-(Q@ZLS64ZYAbRj0kR_Sq4w$kZo$V;Pc&MbA4k0- z+2Z_LSjG4Q)LwsvdUqDE0+)-fV3P3~YGp>~tNzYKT9K1C2(*;fQA_*opf6VXVYaoWQflq2xOp!e8+bY;WV@;yLWY8Pp2?gkJWS{vhRJViZYZgLY3<2qi%Ab$`Ztn z<({`=nRGa5k0+vWcWg4@gcIp>)=rzghQ`va4s*6)_i#tBv)AhAJ=ERZ+Rn%GR5YCl zMp98HJsHiosYBM$$&~AiTmANbw*GImkeiARrK8EQXfWf%^NS6ymYQ16>Fvka&~~hI z3FoEk#Nsz`+c7VDP8z?z*OXQbn|c5HX0__7+14~`{_u9?H<|`YOnB?Td~WYYW#uv3 zN!w;$;8{;J^?brkWvpbvycrm*KH*w1H<`4ZOxl{ZGa-4>PB^w@P6l?(w|rP)mUlFn zTdfz&h%aE~+QMeG?Q7GrGv+;BSSRa{M}9E$LYbMbvCL}6Z)UD`&iv99F`w4`oqxLL anUcB}?UcBa\n" "Language-Team: LANGUAGE \n" diff --git a/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo b/mediagoblin/i18n/eo/LC_MESSAGES/mediagoblin.mo index 63cf7739d9030c8a8e2b3652d4807dd897e93b15..25ab5836993f0bb91534be72c3a2cdc95b9325e1 100644 GIT binary patch delta 1831 zcma*mU2IfE6u|LWKq(7|Kou&Mjs^K>*^icw#yf`ssZ;=oQfclYj{=H9zo zEaLX5h)QVK5F#2)B+&P z+p}8IvK5J89d=dSjW&Q^{e28)GCzqn;LA7%C$I)D;4of9iG58%@EVCUQsJT)s|>`e z)gRtR+nY;hGyAc+{x{kS)zJ^zq9(K#?ZwCONo>V;u@k??>B_FF#M_QNtf%lRd=qPI z%|~NG46twn6LmZ)fDMzKvKG*T$#!n|o1NDu?4Q;XHrercY@K|hzE;xZ>yx3+H>UPJI5Kqd(kEKR zbS6|+R8~Lg!rP_24Le$Ob};W{_d8BHFSpvf9-hwY>gY?A5CuocA>R!7N(S05IIbyO zZs@M-Gp>`*sg#i^EmJ0Nw6A@6mzz0fJ0kbU)2&pG*w^i?J_8L5L% z1zc&wh6`1u{Hxp>d19NEnt}#WyPFFD>VV~osOyy>#{CeX@w=EvfevYSHBW{k$Lu(?Dc|;g;9qE|@ zw<)YW9BJO{aJ(ajR8TNJ#T31sEfB@ctSt{W z;WbGYjCZs2H(F3}@=WQ)^-skoC*tCN1R?oVZrD*ey1rxSs&v?~m19z7*t3fXWmhIA c%4)-dk<~Xc61iL13A!$>j*ZKK8|jMw07im*`2YX_ delta 1361 zcmXZbO=whC6u|K_#@NXajn=41bSBRvTJtq=qA^S&ZTwu=*wz?}wAMPAc?}cCdHUXj zpjixx8Y&btPhDi8f(m{RKROi^MB*adv&{w6O#a zVljS?8s{u7z?+`qIG_21Az6tq_>YD4xOAyVCnm51Z{s|Ci3K>bD*qxsmNGBF6>*vwW`c)jjAJM?Nx_pa1MJk+?zWhLrct4Dw_U1lnX1{vt zf1&nn8a0yuebIv&xE-U|j6dL797C<_G-|wthWs7-1fMWJf_|;}*Nq}yu#mteyo1~D zDQdu0qO@TjuEfizfq&<#6ARfif?cTlpYx^vh9D0QVhtAI1*EHT4JocX#v1MU6a(E5 zisUn1hI-;w)J(SEY8=8=e1Na<6_SKJls^TwmKUF;}Ea^0ZfdJet-Cg{t8;17q*F*+SD3>wV^?bNVH4d=b4;$iy?5l^ zbVE1dRs?lyg9R!bjG+h<5&RQhgei;(N>$j)%9ITs=F1)&!xx9>w(n09LO$pG?#Vg7 z^E>C>bmp9MyXwm`bs~SP7I{%bK3OBO3XkD3tl|os#ReURDf)lDB(fdbED=I7j*WN} z7hwgT#}n9s7f|EZa5>JQuJ@NEW$C5SxK?B<4&X2zLS1MMn=sNYG7no&`zx>w+i?R9 zVgg<4z;CgHS8)K-QIQ4s5w_w%T#VDvvPd(HQ?&;dQ8SyZc@JNq|1atU>tiBIum^SA z7SsiI<3c=Ci+_!S^v|Fsd>{4y4^b=fA8LhK%Iicn(TL&4xC?LLZS2JFnSDL}jEC_N z?!>8=pT+N>PF&C6Bre28d>wV+w`%(e-M|N^M_itwL6zkjd;xzzJ*!)_{%@#v z;y$j#CbH4zG1LW8*nk75&)=xUcVmQp0gqsSdRLxc99L6Tj-o7Y(_jnth!67_?^I2bhrLlv+ zUDO?+s3kp*oADk}1c@@6PMG1x#sjEF_dDvicgaF4GJ{k29WKHs+31}~qHZXI zYgk`=8hVCbqV9aU=4sqY|4PmIJD`dv z6Uo>?7#}U#Uf|lHUrbxUSiyL?ea7maupM`BpV>Rf!>2*xc6sh*{^I3JcHYECjXjaJ zJlE>aWCmSFlc@gP);e#Qv5ID_5E{>#^!;Mi6#P=oc-7Xm({<~%`JPoUp=IyQ8sp|1 zFCS!05ZYeO@*Lu>+0W4H?VmL?hmMhqGiJQdsqW}J6{%E`OY1w_u&;7sWuMiN5Bs*; b#qpf~p{K!aTO(H9WQ!$doH_QSChGnNR~+HI delta 1274 zcmXZbOGuPa6u|N0tH#kZt*o@MQOmJ>jN?S2J(w0Dl$w|bK_v6|l1ZD9`DTbBnj+{y zwWuL_P;R0Jh!zbM2!%x?L_sYQqA0@_;jV&ORM7w6=fdAT_q*JC?m2g+!mq;jc4sF? zGel-qh%6V8^W`FCID#cOiOcX4=CJNJdWrw76zM>ZQ-mo=q78?!0B>UCwGwYEXK^iY_NuuJ+*nN9jJj?cR$~bB@r*Tp8GXd} zQ4{`&n!rEQisY=Gt59i@K{FF;@h}GPHGak#9A)=4IEANBTq3=28g+gebz?h=o3I!) z-ikKtupx0<~9ft#}&sO?<~vT)?UNy#{l!8FO$8>i0Hl zK7e-OK|GBIP+OBhIqT7hv?3{;47h}ZP)m6h^>L(8do+o(QQo6w{ug<#Qb^;ou@3vt zgKj*J`lg3#SVmIBe zi+_GhqPFe}>bgB-p%uA~$MFUhpo?tu&8$bgP#2bSzL*TOXBSX!e${de+lZf8+C6iL zcH=STZy`BJ4Owo)UhKyd8u$mb+p{sXt_@4J+G1<{L{cnR%z6?5?> zYJzuBZ}tdv-DAwdiS!lQnZ=50C)MXD_j&4@TAZGi)~1%)M*i&WeluR*6Z1#RL4Q0NYjp+>7=eHh zb8fT-zEHx99}Esg6QPD^tUvw4;mt~o+l$h+ii;VkUHL21&nu7S3$w6o$_bP^bolSSn)mwiGPVX@@SLZ7o!#kXq1~CaAbD$fb^!mdvyW5i^tu zE`^SIMGZ!cHZdxH2BxJ$m#Gpp#%TO*qEVx`$G9iP7$e5zIrmO0ivF{ZdA{{5?>XQ7 zepjG-ZykQ*k-f}syg+0+{1%d%{0cR|bBg2s#uCzJO&XwP z+y>QgUv~a7RL95R0(crfno$+J2(Hi0AA`%8zX~6L(~(o}Jp-r0K}c@$LYAM$8Pu^b zb)m=ya0T2)g!`C)FU$WO2dZh@DUiChkkz}fJ3xCow&-s-Rs&VXxS4%`HB zC0k(y?1P#>{2c})C6l>*HVi@wHbCux7DzG@hxm}^pgMdHYOQ~SQ{WlpzH+(nOy-U7 zbhs97g|}q)Kgn_yQD8qVS1{Pcft%qP_!XplQcoSUBrQ-KC7_n%0MtO z;3!-UzkwR?B0BILcrR23;aXpTVOT&ZUx!+P?=SIR&o59DSWex`@h_bWv^k!IJODWe zRe`sl26h~_z}uIKMBzv9Vhmrs%nxi&z5iOih8gzTE){tI1}_uIhhuOXJO*hWSwrJ! z;JaaiM)DzpFX433ngoA_dGI(afHToG7gj=DZ-l47^>8+fG^F-Vz3;5NNG#TA$4WQZ z8zSMB_Vuliw$k=!OPO<3eqp?FNieiH6w0~k%HY-ZmPjnp-WI$(++kN+<)KC8!4Ute ztnx+Gp~{6J{&Jeav5sJKG~5y`c2Xtad(;l%k6gWb{}9k%Ba_3FKNb1+U;`pSZ35DEq5=Q88c$JUE`P3 zYFSv#C?<}>CHzBGr#fb`N?d519eZj=DYOh(GfqfX!*P3@Qwz%G?ALVphf_jJt5N(VF}cTCU9i2#Jg7lf zW{jPr?r2aMcb7LE^{(|e#|k#iF%PmoVreuJhljmfGEQ&(tQBg*ms&%{iiL=ynzFmY z?KVU1ZgvywrS+g5@T2ma6OaZr>?Tt86}o|$=5bcMtE?U|Lni6e6`dQm<`s9w>}Xqf zlf58D-d@SQ`XdYH{VIFSkhU}f*6#6=R?XAu>X3%z$w43!nkKEI2kzJyX|>h#okxfN z-S%P?DdXOaMJlcmPFTq1J4m<(J?Rd6(%{mJq~0y62-JAdY7>%AzptD2Mw;X@Cgm%p zW|9{7gO|O;03(H zYdX{)R~x<119iy>gB;?z#r=#f>hob~fU@k#ZYE1CUKmd(`;xfNnR~QrczVt)^YT*r zil3QMU>+lc-CmZ1j1uzCg;ZndmPwW7QGEEt@CxK6{6@@B7_w!0axRA#;zmDGhfz}>3&q5w_Yu-NUe9xHXxxXlk~S%r#M4fa zOq5ukCVF#@4tpV}_GZNG9xsEhzvVX_&umcR8@I;M{&jy3S&dHE<8!6ERFgLF`bi(R zevQ>@=-uM&9Ofj8cSMWd*Y1gGWrn`t$sy{Zo~fu|lb cm7n}c?P&5f;pRt9UwpTWRE91;X2{y|yW>#|XINpA-% zPAW{IGspu6f*~P1NC=`NgR6p=ATxW>gxDF-M2#`oiw`=oC?R{&?@7Bf{hV{|c7Ffv zMn5!WjvM2z&dWYBM5dn-d0Iq%T`JOq^OlKJU=UYfH%{XSK8yQ&BAf9uEXP?~gl@k` zHCAFJwqXc&U^Bjhgp#XRir@PsD@hi=bFdY=YDFgT1dig)IuRbpeS8uhp$_C(F0uiu zQ78TiuEuwf8suvX86v-6EBlgqk%hP(_4Dnh6G_!)^AE;2XyD)@)D_=B9r$5kU%^8i zxCa|?FY1ck!*=|Tvku&*L3ozOnie|Hw$cp0fdt`)qWWwD-vIs6UVx%~{8dzr(_ z>_1(Zzo>|4581E7gBWSakKhXGRzJWn76(Kg#}0I37kaP<^=S8C1dpLEAp0c?V#_ox z!39APAFe?C4m^Xp;@6Omyw8^ocoX%kf5iDXgSvD7qOQ0x#9bJ}!`O{pyo37penRfg zN(pHn=b#Sv;3v2O4F*Ryr2%!I9jGtdkNTp+$VX1{HH;Ie3+bS|k1>e@=qB2BwDBdJ zz&KX7>CQ0!BP>QZ7{hKXVsIDmIW%zw_u}p~B6L}<;}-k_b;9+$06*gq)B#?M<~uNs zenvTgdIZz4{D033(jPyq2|fQ6pbdE~{HOQ<{W9qPm$U>~N|ilp%#M!C3qod~ao z9OVTX#jAJci+a4WZKKGaIE*fgZ_3Z!L_hntQMdd; z;rt6MVt*Ga@!lrqocn{a=J-&b9eBgC5?1;^V9?A252URDGm)`_Z<@*e-aady>K_dD z+xC!YtB#slS0t=nuUXm|ZfTAB!qHf3bY+MiPfxF%Y1y6b9kf%u87m$0B@UVKxS95? zEi5{dLw063k+O!80W00-Ow?R4lvP}zyv29bE#EFx>3Kno`vXf(=Wge&<;HW@b2q1s zO`Y&f9c6ht_m!ISkEk1-GIg%jRIZY3&T!oihMFtMIxY2KL;bTL;{4T6>r%mmYn)3> z7w13G)1NR0ZBq(5`$Gp^YFTNyQyw{EsHxIAwK&?Uf^Bc9on?*AY}*Y(HF*=xSo>qe ZYE@OUdcM=E{@ZA&%T;sEH(isi{{gt8`IrCz From 473a4431c2632891e152913c7b4eed6fe7ba8bb3 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Tue, 7 Feb 2012 21:25:41 -0600 Subject: [PATCH 11/42] Added CC0 header to all MediaGoblin docs in docs/source/ --- docs/source/about.rst | 13 +++++++++++++ docs/source/codebase.rst | 13 +++++++++++++ docs/source/configuration.rst | 13 +++++++++++++ docs/source/deploying.rst | 13 +++++++++++++ docs/source/foreword.rst | 13 +++++++++++++ docs/source/help.rst | 13 +++++++++++++ docs/source/index.rst | 13 +++++++++++++ docs/source/media-types.rst | 13 +++++++++++++ docs/source/production-deployments.rst | 13 +++++++++++++ docs/source/theming.rst | 13 +++++++++++++ 10 files changed, 130 insertions(+) diff --git a/docs/source/about.rst b/docs/source/about.rst index 1a2df809..7a6aa510 100644 --- a/docs/source/about.rst +++ b/docs/source/about.rst @@ -1,3 +1,16 @@ +.. MediaGoblin Documentation + + Written in 2011, 2012 by MediaGoblin contributors + + To the extent possible under law, the author(s) have dedicated all + copyright and related and neighboring rights to this software to + the public domain worldwide. This software is distributed without + any warranty. + + You should have received a copy of the CC0 Public Domain + Dedication along with this software. If not, see + . + ======================= About GNU MediaGoblin ======================= diff --git a/docs/source/codebase.rst b/docs/source/codebase.rst index 28d73802..2518e48f 100644 --- a/docs/source/codebase.rst +++ b/docs/source/codebase.rst @@ -1,3 +1,16 @@ +.. MediaGoblin Documentation + + Written in 2011, 2012 by MediaGoblin contributors + + To the extent possible under law, the author(s) have dedicated all + copyright and related and neighboring rights to this software to + the public domain worldwide. This software is distributed without + any warranty. + + You should have received a copy of the CC0 Public Domain + Dedication along with this software. If not, see + . + .. _codebase-chapter: ======================== diff --git a/docs/source/configuration.rst b/docs/source/configuration.rst index 1e22ad2d..6596cef4 100644 --- a/docs/source/configuration.rst +++ b/docs/source/configuration.rst @@ -1,3 +1,16 @@ +.. MediaGoblin Documentation + + Written in 2011, 2012 by MediaGoblin contributors + + To the extent possible under law, the author(s) have dedicated all + copyright and related and neighboring rights to this software to + the public domain worldwide. This software is distributed without + any warranty. + + You should have received a copy of the CC0 Public Domain + Dedication along with this software. If not, see + . + .. _configuration-chapter: ======================== diff --git a/docs/source/deploying.rst b/docs/source/deploying.rst index a8ee6ff1..ce39dc4e 100644 --- a/docs/source/deploying.rst +++ b/docs/source/deploying.rst @@ -1,3 +1,16 @@ +.. MediaGoblin Documentation + + Written in 2011, 2012 by MediaGoblin contributors + + To the extent possible under law, the author(s) have dedicated all + copyright and related and neighboring rights to this software to + the public domain worldwide. This software is distributed without + any warranty. + + You should have received a copy of the CC0 Public Domain + Dedication along with this software. If not, see + . + ===================== Deploying MediaGoblin ===================== diff --git a/docs/source/foreword.rst b/docs/source/foreword.rst index aa27647f..be0c84b8 100644 --- a/docs/source/foreword.rst +++ b/docs/source/foreword.rst @@ -1,3 +1,16 @@ +.. MediaGoblin Documentation + + Written in 2011, 2012 by MediaGoblin contributors + + To the extent possible under law, the author(s) have dedicated all + copyright and related and neighboring rights to this software to + the public domain worldwide. This software is distributed without + any warranty. + + You should have received a copy of the CC0 Public Domain + Dedication along with this software. If not, see + . + ======== Foreword ======== diff --git a/docs/source/help.rst b/docs/source/help.rst index 34d4f37e..4b584ac1 100644 --- a/docs/source/help.rst +++ b/docs/source/help.rst @@ -1,3 +1,16 @@ +.. MediaGoblin Documentation + + Written in 2011, 2012 by MediaGoblin contributors + + To the extent possible under law, the author(s) have dedicated all + copyright and related and neighboring rights to this software to + the public domain worldwide. This software is distributed without + any warranty. + + You should have received a copy of the CC0 Public Domain + Dedication along with this software. If not, see + . + ================================== How to Get Help with MediaGoblin ================================== diff --git a/docs/source/index.rst b/docs/source/index.rst index f9c9285d..444ed688 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -1,3 +1,16 @@ +.. MediaGoblin Documentation + + Written in 2011, 2012 by MediaGoblin contributors + + To the extent possible under law, the author(s) have dedicated all + copyright and related and neighboring rights to this software to + the public domain worldwide. This software is distributed without + any warranty. + + You should have received a copy of the CC0 Public Domain + Dedication along with this software. If not, see + . + .. GNU MediaGoblin documentation master file, created by sphinx-quickstart on Thu Apr 7 20:10:27 2011. You can adapt this file completely to your liking, but it should at least diff --git a/docs/source/media-types.rst b/docs/source/media-types.rst index 76478143..86409b55 100644 --- a/docs/source/media-types.rst +++ b/docs/source/media-types.rst @@ -1,3 +1,16 @@ +.. MediaGoblin Documentation + + Written in 2011, 2012 by MediaGoblin contributors + + To the extent possible under law, the author(s) have dedicated all + copyright and related and neighboring rights to this software to + the public domain worldwide. This software is distributed without + any warranty. + + You should have received a copy of the CC0 Public Domain + Dedication along with this software. If not, see + . + .. _media-types-chapter: ==================== diff --git a/docs/source/production-deployments.rst b/docs/source/production-deployments.rst index ef0bcad6..1e6631db 100644 --- a/docs/source/production-deployments.rst +++ b/docs/source/production-deployments.rst @@ -1,3 +1,16 @@ +.. MediaGoblin Documentation + + Written in 2011, 2012 by MediaGoblin contributors + + To the extent possible under law, the author(s) have dedicated all + copyright and related and neighboring rights to this software to + the public domain worldwide. This software is distributed without + any warranty. + + You should have received a copy of the CC0 Public Domain + Dedication along with this software. If not, see + . + ========================================= Considerations for Production Deployments ========================================= diff --git a/docs/source/theming.rst b/docs/source/theming.rst index 2f4fcb4c..7584b688 100644 --- a/docs/source/theming.rst +++ b/docs/source/theming.rst @@ -1,3 +1,16 @@ +.. MediaGoblin Documentation + + Written in 2011, 2012 by MediaGoblin contributors + + To the extent possible under law, the author(s) have dedicated all + copyright and related and neighboring rights to this software to + the public domain worldwide. This software is distributed without + any warranty. + + You should have received a copy of the CC0 Public Domain + Dedication along with this software. If not, see + . + .. _theming-chapter: ===================== From c2dfe1dd4090ef40eeb615d09c4607e6d5853994 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Wed, 8 Feb 2012 09:29:24 -0600 Subject: [PATCH 12/42] Fully qualify the import of asciitoimage --- mediagoblin/media_types/ascii/processing.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/media_types/ascii/processing.py b/mediagoblin/media_types/ascii/processing.py index 837b9830..7ece866e 100644 --- a/mediagoblin/media_types/ascii/processing.py +++ b/mediagoblin/media_types/ascii/processing.py @@ -13,7 +13,6 @@ # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . -import asciitoimage import chardet import os import Image @@ -21,6 +20,7 @@ import logging from mediagoblin import mg_globals as mgg from mediagoblin.processing import create_pub_filepath, THUMB_SIZE +from mediagoblin.media_types.ascii import asciitoimage _log = logging.getLogger(__name__) From 7f4ebeed7677a229f539bd2eaa78f9783dfc1477 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Wed, 8 Feb 2012 10:46:33 -0500 Subject: [PATCH 13/42] Fix copyright statements; add LICENSE for EXIF.py --- extlib/exif/LICENSE | 1 + mediagoblin/db/mixin.py | 2 +- mediagoblin/db/sql/base.py | 2 +- mediagoblin/db/sql/convert.py | 2 +- mediagoblin/db/sql/extratypes.py | 2 +- mediagoblin/db/sql/fake.py | 2 +- mediagoblin/db/sql/models.py | 2 +- mediagoblin/db/sql/open.py | 2 +- mediagoblin/tests/test_cache.py | 2 +- mediagoblin/tests/test_submission.py | 1 - mediagoblin/tools/common.py | 2 +- mediagoblin/tools/url.py | 2 +- mediagoblin/user_pages/views.py | 2 +- runtests.sh | 2 +- setup.py | 2 +- 15 files changed, 14 insertions(+), 14 deletions(-) create mode 100644 extlib/exif/LICENSE diff --git a/extlib/exif/LICENSE b/extlib/exif/LICENSE new file mode 100644 index 00000000..3bd77141 --- /dev/null +++ b/extlib/exif/LICENSE @@ -0,0 +1 @@ +See top of EXIF.py for license and copyright. diff --git a/mediagoblin/db/mixin.py b/mediagoblin/db/mixin.py index 254dbcff..beaff9b0 100644 --- a/mediagoblin/db/mixin.py +++ b/mediagoblin/db/mixin.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011,2012 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/db/sql/base.py b/mediagoblin/db/sql/base.py index f1affc83..6ed24a03 100644 --- a/mediagoblin/db/sql/base.py +++ b/mediagoblin/db/sql/base.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011,2012 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/db/sql/convert.py b/mediagoblin/db/sql/convert.py index 260328c6..f6575be9 100644 --- a/mediagoblin/db/sql/convert.py +++ b/mediagoblin/db/sql/convert.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011,2012 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/db/sql/extratypes.py b/mediagoblin/db/sql/extratypes.py index 21c806ec..3a594728 100644 --- a/mediagoblin/db/sql/extratypes.py +++ b/mediagoblin/db/sql/extratypes.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011,2012 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/db/sql/fake.py b/mediagoblin/db/sql/fake.py index 482b85da..0fd0cc41 100644 --- a/mediagoblin/db/sql/fake.py +++ b/mediagoblin/db/sql/fake.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011,2012 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/db/sql/models.py b/mediagoblin/db/sql/models.py index 7ec05876..36f94b25 100644 --- a/mediagoblin/db/sql/models.py +++ b/mediagoblin/db/sql/models.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011,2012 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/db/sql/open.py b/mediagoblin/db/sql/open.py index 3c06c676..1bfc5538 100644 --- a/mediagoblin/db/sql/open.py +++ b/mediagoblin/db/sql/open.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011,2012 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/tests/test_cache.py b/mediagoblin/tests/test_cache.py index cbffeb84..48fa1386 100644 --- a/mediagoblin/tests/test_cache.py +++ b/mediagoblin/tests/test_cache.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 Free Software Foundation, Inc +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/tests/test_submission.py b/mediagoblin/tests/test_submission.py index e31a7783..217926a4 100644 --- a/mediagoblin/tests/test_submission.py +++ b/mediagoblin/tests/test_submission.py @@ -1,4 +1,3 @@ - # GNU MediaGoblin -- federated, autonomous media hosting # Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # diff --git a/mediagoblin/tools/common.py b/mediagoblin/tools/common.py index 12d8309e..0b29087c 100644 --- a/mediagoblin/tools/common.py +++ b/mediagoblin/tools/common.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 Free Software Foundation, Inc +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/tools/url.py b/mediagoblin/tools/url.py index 78b5dd63..7477173a 100644 --- a/mediagoblin/tools/url.py +++ b/mediagoblin/tools/url.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 Free Software Foundation, Inc +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index ba499731..82791278 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -1,4 +1,4 @@ -# MediaGoblin -- federated, autonomous media hosting +# GNU MediaGoblin -- federated, autonomous media hosting # Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify diff --git a/runtests.sh b/runtests.sh index 4265326c..94e77da2 100755 --- a/runtests.sh +++ b/runtests.sh @@ -1,7 +1,7 @@ #!/bin/sh # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 Free Software Foundation, Inc +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/setup.py b/setup.py index ca7d4ae2..9dd8964a 100644 --- a/setup.py +++ b/setup.py @@ -1,5 +1,5 @@ # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS. +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by From 0c8e20cf13db50f2e51ade41e204ae5e0501e4e5 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Wed, 8 Feb 2012 11:07:19 -0500 Subject: [PATCH 14/42] Minor rewording Tried to address confusion I had when I read the document and tweaked some formatting. --- docs/source/configuration.rst | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/docs/source/configuration.rst b/docs/source/configuration.rst index 6596cef4..a3dafa4c 100644 --- a/docs/source/configuration.rst +++ b/docs/source/configuration.rst @@ -20,6 +20,7 @@ Configuring MediaGoblin So! You've got MediaGoblin up and running, but you need to adjust some configuration parameters. Well you've come to the right place! + MediaGoblin's config files ========================== @@ -84,16 +85,20 @@ Common changes Enabling email notifications ---------------------------- -You'll almost certainly want to enable sending emails. By default, +You'll almost certainly want to enable sending email. By default, MediaGoblin doesn't really do this... for the sake of developer -convenience, it runs in "email debug mode". Change this:: +convenience, it runs in "email debug mode". + +To make MediaGoblin send email, you need a mailer daemon. + +Change this in your ``mediagoblin.ini`` file:: email_debug_mode = false -You can (and should) change the "from" email address by setting -``email_sender_address``. +You should also change the "from" email address by setting +``email_sender_address``. For example:: -Note that you need a mailer daemon running for this to work. + email_sender_address = "foo@example.com" If you have more custom SMTP settings, you also have the following options at your disposal, which are all optional, and do exactly what @@ -104,17 +109,19 @@ they sound like. - email_smtp_user - email_smtp_pass + All other configuration changes ------------------------------- To be perfectly honest, there are quite a few options and we haven't had -time to document them all +time to document them all. So here's a cop-out section saying that if you get into trouble, hop onto IRC and we'll help you out:: #mediagoblin on irc.freenode.net + Celery ====== From 973f37e9c39a8784f21f97a256890509eefb6f31 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 9 Feb 2012 09:10:08 -0600 Subject: [PATCH 15/42] Updating codebase.rst to reflect the modern mediagoblin world - adding/removing libraries listed as appropriate - buildout->virtualenv references - Updating directory structure description to reflect current reality --- docs/source/codebase.rst | 53 +++++++++++++++++++++++++++++++--------- 1 file changed, 42 insertions(+), 11 deletions(-) diff --git a/docs/source/codebase.rst b/docs/source/codebase.rst index 2518e48f..e784c9e5 100644 --- a/docs/source/codebase.rst +++ b/docs/source/codebase.rst @@ -48,8 +48,10 @@ Software Stack * `Nose `_: for unit tests - * `buildout `_: for getting dependencies, - building a runtime environment, ... + * `virtualenv `_: for setting up an + isolated environment to keep mediagoblin and related packages + (potentially not required if MediaGoblin is packaged for your + distro) * Data storage @@ -67,21 +69,47 @@ Software Stack * `Routes `_: for URL routing - * `Beaker `_: for handling sessions + * `Beaker `_: for handling sessions and + caching * `Jinja2 `_: the templating engine - * `MongoKit `_: the lightweight - ORM for MongoDB we're using which will make it easier to define - structures and all that - * `WTForms `_: for handling, validation, and abstraction from HTML forms * `Celery `_: for task queuing (resizing images, encoding video, ...) - * `RabbitMQ `_: for sending tasks to celery + * `MongoKit `_: the lightweight + ORM for MongoDB we're using which will make it easier to define + structures and all that (will be swapped out soon...) + + * `SQLAlchemy `_: SQL ORM and database + interaction library for Python. We'll be moving to this in the + upcoming move to SQL. + + * `Babel `_: Used to extract and compile + translations. + + * `Markdown (for python) `_: + implementation of `Markdown `_ + text-to-html tool to make it easy for people to write richtext + comments, descriptions, and etc. + + * `lxml `_: nice xml and html processing for + python. + +* Media processing libraries + + * `Python Imaging Library `_: + used to resize and otherwise convert images for display. + + * `GStreamer `_: (Optional, for + video hosting sites only) Used to transcode video, and in the + future, probably audio too. + + * `chardet `_: (Optional, for + ascii art hosting sites only) Used to make ascii art thumbnails. * Front end @@ -92,7 +120,8 @@ Software Stack What's where ============ -After you've run buildout, you're faced with the following directory +After you've run checked out mediagoblin and followed the virtualenv +instantiation instructions, you're faced with the following directory tree:: mediagoblin/ @@ -102,12 +131,14 @@ tree:: | |- auth/ | \- submit/ |- docs/ # documentation + |- devtools/ # some scripts for developer convenience | - | # the below directories are generated by buildout. + | # the below directories are installed into your virtualenv checkout | |- bin/ # scripts |- develop-eggs/ - |- eggs/ + |- lib/ # python libraries installed into your virtualenv + |- include/ |- mediagoblin.egg-info/ |- parts/ |- user_dev/ # sessions, etc From efd69313d0a1ab01d96795d4dd098d6c30844e50 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 9 Feb 2012 09:15:23 -0600 Subject: [PATCH 16/42] Added info on how to enable ascii art --- docs/source/media-types.rst | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/docs/source/media-types.rst b/docs/source/media-types.rst index 86409b55..ec068422 100644 --- a/docs/source/media-types.rst +++ b/docs/source/media-types.rst @@ -45,3 +45,22 @@ Note that you almost certainly want to separate Celery from the normal paste process or your users will probably find that their connections time out as the video transcodes. To set that up, check out the ":doc:`production-deployments`" section of this manual. + + +Ascii art +========= + +To enable ascii art support, first install the +`chardet `_ +library, which is necessary for creating thumbnails of ascii art:: + + ./bin/easy_install chardet + + +Next, modify (and possibly copy over from ``mediagoblin.ini``) your +``mediagoblin_local.ini``. Uncomment or add to the media_types line +'mediagoblin.media_types.ascii' like so:: + + media_types = mediagoblin.media_types.image, mediagoblin.media_types.ascii + +Now any .txt file you uploaded will be processed as ascii art! From df900eed1718d9bb83c3289f00fdb539fa9b5063 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Thu, 9 Feb 2012 10:20:42 -0500 Subject: [PATCH 17/42] Update copyright headers for shell scripts --- devtools/maketarball.sh | 2 +- devtools/update_translations.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/devtools/maketarball.sh b/devtools/maketarball.sh index 5f17e578..5a25faea 100755 --- a/devtools/maketarball.sh +++ b/devtools/maketarball.sh @@ -1,7 +1,7 @@ #!/bin/bash # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 Free Software Foundation, Inc +# Copyright (C) 2011, 2012 GNU MediaGoblin Contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by diff --git a/devtools/update_translations.sh b/devtools/update_translations.sh index 527bd274..7fcb3d49 100755 --- a/devtools/update_translations.sh +++ b/devtools/update_translations.sh @@ -1,7 +1,7 @@ #!/bin/bash # GNU MediaGoblin -- federated, autonomous media hosting -# Copyright (C) 2011 Free Software Foundation, Inc +# Copyright (C) 2011, 2012 GNU MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by From 1da5052ff7b415efa6e523ed21a6a0a98c391432 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Thu, 9 Feb 2012 10:23:03 -0500 Subject: [PATCH 18/42] Removing youcanhelp stuff This was never used. It doesn't support Texinfo files. It was only half completed. Best to remove it. --- devtools/maketarball.sh | 2 -- docs/source/conf.py | 2 +- docs/source/mgext/__init__.py | 0 docs/source/mgext/youcanhelp.py | 44 --------------------------------- 4 files changed, 1 insertion(+), 47 deletions(-) delete mode 100644 docs/source/mgext/__init__.py delete mode 100644 docs/source/mgext/youcanhelp.py diff --git a/devtools/maketarball.sh b/devtools/maketarball.sh index 5a25faea..7d88c6fd 100755 --- a/devtools/maketarball.sh +++ b/devtools/maketarball.sh @@ -154,13 +154,11 @@ then mv docs/build/texinfo/ docs/texinfo/ rm -rf docs/build/ - rm -rf docs/source/mgext/*.pyc else # this is the old directory structure pre-0.0.4 mv docs/_build/html/ docs/html/ rm -rf docs/_build/ - rm -rf docs/mgext/*.pyc fi popd diff --git a/docs/source/conf.py b/docs/source/conf.py index 3014e592..16fd22a9 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -25,7 +25,7 @@ sys.path.insert(0, os.path.abspath('.')) # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = ["mgext.youcanhelp"] +extensions = [] # Add any paths that contain templates here, relative to this directory. templates_path = ['source/_templates'] diff --git a/docs/source/mgext/__init__.py b/docs/source/mgext/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/source/mgext/youcanhelp.py b/docs/source/mgext/youcanhelp.py deleted file mode 100644 index a99d0e4d..00000000 --- a/docs/source/mgext/youcanhelp.py +++ /dev/null @@ -1,44 +0,0 @@ -from docutils import nodes - -from sphinx.util.compat import Directive, make_admonition - -class youcanhelp_node(nodes.Admonition, nodes.Element): - pass - -class YouCanHelp(Directive): - has_content = True - required_arguments = 0 - optional_arguments = 0 - final_argument_whitespace = False - option_spec = {} - - def run(self): - ad = make_admonition( - youcanhelp_node, - self.name, - ["You Can Help!"], - self.options, - self.content, - self.lineno, - self.content_offset, - self.block_text, - self.state, - self.state_machine) - ad[0].line = self.lineno - return ad - -def visit_youcanhelp_node(self, node): - self.visit_admonition(node) - -def depart_youcanhelp_node(self, node): - self.depart_admonition(node) - -def setup(app): - app.add_node( - youcanhelp_node, - html=(visit_youcanhelp_node, depart_youcanhelp_node), - latex=(visit_youcanhelp_node, depart_youcanhelp_node), - text=(visit_youcanhelp_node, depart_youcanhelp_node) - ) - - app.add_directive('youcanhelp', YouCanHelp) From 39edc73cb076db5c1c7ed5256763e082590fb755 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Thu, 9 Feb 2012 09:30:26 -0600 Subject: [PATCH 19/42] Committing extracted and compiled translations --- mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po index 57dd7eb0..b5832fe4 100644 --- a/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po +++ b/mediagoblin/i18n/en/LC_MESSAGES/mediagoblin.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2012-02-05 16:23-0600\n" +"POT-Creation-Date: 2012-02-09 09:30-0600\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" From 58301e093c7b99dc66b1e9255e34ef2e90e48d4d Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Thu, 9 Feb 2012 10:44:36 -0500 Subject: [PATCH 20/42] Update version numbers --- docs/source/conf.py | 6 +++--- mediagoblin/_version.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index 16fd22a9..6b5dd93b 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -41,16 +41,16 @@ master_doc = 'index' # General information about the project. project = u'GNU MediaGoblin' -copyright = u'2011, Free Software Foundation, Inc and contributors' +copyright = u'2011, 2012 GNU MediaGoblin contributors' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. -version = '0.3.0' +version = '0.2.1' # The full version, including alpha/beta/rc tags. -release = '0.3.0-dev' +release = '0.2.1' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/mediagoblin/_version.py b/mediagoblin/_version.py index fc1a0f6e..f0358495 100644 --- a/mediagoblin/_version.py +++ b/mediagoblin/_version.py @@ -23,4 +23,4 @@ # see http://www.python.org/dev/peps/pep-0386/ -__version__ = "0.3.0.dev" +__version__ = "0.2.1" From 934d0b67a00f764fa2bc6ce44f31864f3804a44e Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Thu, 9 Feb 2012 10:49:50 -0500 Subject: [PATCH 21/42] Update version to 0.3.0-dev --- docs/source/conf.py | 4 ++-- mediagoblin/_version.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index 6b5dd93b..8aedf596 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -48,9 +48,9 @@ copyright = u'2011, 2012 GNU MediaGoblin contributors' # built documents. # # The short X.Y version. -version = '0.2.1' +version = '0.3.0' # The full version, including alpha/beta/rc tags. -release = '0.2.1' +release = '0.3.0-dev" # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/mediagoblin/_version.py b/mediagoblin/_version.py index f0358495..381d1270 100644 --- a/mediagoblin/_version.py +++ b/mediagoblin/_version.py @@ -23,4 +23,4 @@ # see http://www.python.org/dev/peps/pep-0386/ -__version__ = "0.2.1" +__version__ = "0.3.0-dev" From 6e03e586718ad06da38e3f82a043e35643bb9764 Mon Sep 17 00:00:00 2001 From: Will Kahn-Greene Date: Thu, 9 Feb 2012 11:00:30 -0500 Subject: [PATCH 22/42] Fix docs version --- docs/source/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index 8aedf596..aafcf128 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -50,7 +50,7 @@ copyright = u'2011, 2012 GNU MediaGoblin contributors' # The short X.Y version. version = '0.3.0' # The full version, including alpha/beta/rc tags. -release = '0.3.0-dev" +release = '0.3.0-dev' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. From 937c7ea5d90db6678ae08a3524cce872d21d24ad Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Thu, 9 Feb 2012 21:46:57 +0100 Subject: [PATCH 23/42] Fix for ticket #386 --- mediagoblin/static/css/base.css | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index efd7b561..73b07384 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -79,6 +79,22 @@ a.highlight { color: #fff; } +em { + font-style: italic; +} + +strong { + font-weight: bold; +} + +ul { + list-style: disc inside; +} + +ol { + list-style: decimal inside; +} + label { font-weight: normal; } From eea6d276bc03bbbea7bba325f3cb6ebf6663b451 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sat, 11 Feb 2012 00:38:21 +0100 Subject: [PATCH 24/42] sql db design suggestions by Svavar Kjarrval Many thanks go to Svavar Kjarrval who has taken a deeper look at our current sql db design and made a bunch of suggestions. The suggestions are currently put as TODO items in the docstrings. This way we can keep track of them directly where we need it. --- mediagoblin/db/sql/models.py | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/mediagoblin/db/sql/models.py b/mediagoblin/db/sql/models.py index 36f94b25..9d06f79c 100644 --- a/mediagoblin/db/sql/models.py +++ b/mediagoblin/db/sql/models.py @@ -14,6 +14,10 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . +""" +TODO: indexes on foreignkeys, where useful. +""" + import datetime @@ -43,6 +47,10 @@ class SimpleFieldAlias(object): class User(Base, UserMixin): + """ + TODO: We should consider moving some rarely used fields + into some sort of "shadow" table. + """ __tablename__ = "users" id = Column(Integer, primary_key=True) @@ -67,6 +75,9 @@ class User(Base, UserMixin): class MediaEntry(Base, MediaEntryMixin): + """ + TODO: Consider fetching the media_files using join + """ __tablename__ = "media_entries" id = Column(Integer, primary_key=True) @@ -145,6 +156,10 @@ class MediaEntry(Base, MediaEntryMixin): class MediaFile(Base): + """ + TODO: Highly consider moving "name" into a new table. + TODO: Consider preloading said table in software + """ __tablename__ = "mediafiles" media_entry = Column( @@ -221,12 +236,20 @@ class MediaComment(Base): _id = SimpleFieldAlias("id") -def show_table_init(): +def show_table_init(engine_uri): + if engine_uri is None: + engine_uri = 'sqlite:///:memory:' from sqlalchemy import create_engine - engine = create_engine('sqlite:///:memory:', echo=True) + engine = create_engine(engine_uri, echo=True) Base.metadata.create_all(engine) if __name__ == '__main__': - show_table_init() + from sys import argv + print repr(argv) + if len(argv) == 2: + uri = argv[1] + else: + uri = None + show_table_init(uri) From fb1dc4f56b5e6e4338aaf578874e42b9336a8476 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sat, 11 Feb 2012 23:04:02 +0100 Subject: [PATCH 25/42] Layout overhaul time! --- mediagoblin/static/css/base.css | 25 +++++++--- .../mediagoblin/user_pages/media.html | 16 +++---- .../mediagoblin/utils/prev_next.html | 46 ++++++++++--------- 3 files changed, 50 insertions(+), 37 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 73b07384..04ab1840 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -109,7 +109,7 @@ input, textarea { .container { margin: auto; width: 96%; - max-width: 940px; + max-width: 820px; } header { @@ -150,12 +150,18 @@ footer { clear: both; } +/* TEMP removal -> permanent removal should also be done in html! .media_pane { width: 640px; margin-left: 0px; margin-right: 10px; float: left; } +*/ + +img.media_image { + width: 100%; +} .media_sidebar { width: 280px; @@ -382,6 +388,11 @@ h2.media_title { margin-bottom: 0px; } +p.context { + display: inline-block; + padding-top: 4px; +} + p.media_specs { font-size: 0.9em; border-top: 1px solid #222; @@ -406,19 +417,21 @@ img.media_icon { /* navigation */ +.navigation { + float: right; +} + .navigation_button { width: 135px; - display: block; - float: left; + display: inline-block; text-align: center; background-color: #1d1d1d; border: 1px solid; border-color: #2c2c2c #232323 #1a1a1a; border-radius: 4px; text-decoration: none; - padding: 12px 0 16px; - font-size: 1.4em; - margin: 0 0 20px + padding: 4px 0 8px; + margin: 0 0 6px } .navigation_left { diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index d2503a4e..01dba596 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -41,6 +41,13 @@ {% block mediagoblin_content %}
+ {% trans user_url=request.urlgen( + 'mediagoblin.user_pages.user_home', + user=media.get_uploader.username), + username=media.get_uploader.username -%} +

❖ Browsing media by {{ username }}

+ {%- endtrans %} + {% include "mediagoblin/utils/prev_next.html" %}
{% block mediagoblin_media %} {% set display_media = request.app.public_store.file_url( @@ -148,15 +155,6 @@ {{ render_pagination(request, pagination, media.url_for_self(request.urlgen)) }} {% endif %} -
-
- {% trans user_url=request.urlgen( - 'mediagoblin.user_pages.user_home', - user=media.get_uploader.username), - username=media.get_uploader.username -%} -

❖ Browsing media by {{ username }}

- {%- endtrans %} - {% include "mediagoblin/utils/prev_next.html" %} {% if media.attachment_files|count %}

Attachments

    diff --git a/mediagoblin/templates/mediagoblin/utils/prev_next.html b/mediagoblin/templates/mediagoblin/utils/prev_next.html index d0cf3f8c..f1175ce4 100644 --- a/mediagoblin/templates/mediagoblin/utils/prev_next.html +++ b/mediagoblin/templates/mediagoblin/utils/prev_next.html @@ -21,26 +21,28 @@ {% set next_entry_url = media.url_to_next(request.urlgen) %} {% if prev_entry_url or next_entry_url %} - {# There are no previous entries for the very first media entry #} - {% if prev_entry_url %} - - ← {% trans %}newer{% endtrans %} - - {% else %} - {# This is the first entry. display greyed-out 'previous' image #} - - {% endif %} - {# Likewise, this could be the very last media entry #} - {% if next_entry_url %} - - {% trans %}older{% endtrans %} → - - {% else %} - {# This is the last entry. display greyed-out 'next' image #} - - {% endif %} + {% endif %} From b21c9434273484dce04e53d91dc916ecca61bf0a Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 12 Feb 2012 16:18:58 +0100 Subject: [PATCH 26/42] Restore sidebar --- mediagoblin/static/css/base.css | 6 +-- .../mediagoblin/user_pages/media.html | 54 ++++++++++--------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 04ab1840..2f36ed48 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -150,21 +150,19 @@ footer { clear: both; } -/* TEMP removal -> permanent removal should also be done in html! .media_pane { - width: 640px; + width: 560px; margin-left: 0px; margin-right: 10px; float: left; } -*/ img.media_image { width: 100%; } .media_sidebar { - width: 280px; + width: 240px; margin-left: 10px; margin-right: 0px; float: left; diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 01dba596..f1a1a5c5 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -40,35 +40,35 @@ {% endblock mediagoblin_head %} {% block mediagoblin_content %} -
    - {% trans user_url=request.urlgen( - 'mediagoblin.user_pages.user_home', - user=media.get_uploader.username), - username=media.get_uploader.username -%} -

    ❖ Browsing media by {{ username }}

    - {%- endtrans %} - {% include "mediagoblin/utils/prev_next.html" %} -
    - {% block mediagoblin_media %} - {% set display_media = request.app.public_store.file_url( - media.get_display_media(media.media_files)) %} - {# if there's a medium file size, that means the medium size - # isn't the original... so link to the original! - #} - {% if media.media_files.has_key('medium') %} - - Image for {{ media.title }} - - {% else %} + {% trans user_url=request.urlgen( + 'mediagoblin.user_pages.user_home', + user=media.get_uploader.username), + username=media.get_uploader.username -%} +

    ❖ Browsing media by {{ username }}

    + {%- endtrans %} + {% include "mediagoblin/utils/prev_next.html" %} +
    + {% block mediagoblin_media %} + {% set display_media = request.app.public_store.file_url( + media.get_display_media(media.media_files)) %} + {# if there's a medium file size, that means the medium size + # isn't the original... so link to the original! + #} + {% if media.media_files.has_key('medium') %} + Image for {{ media.title }} - {% endif %} - {% endblock %} -
    + + {% else %} + Image for {{ media.title }} + {% endif %} + {% endblock %} +
    +

    {{ media.title }}

    @@ -155,6 +155,8 @@ {{ render_pagination(request, pagination, media.url_for_self(request.urlgen)) }} {% endif %} +
    +
    {% if media.attachment_files|count %}

    Attachments

      From 1fccaf4a81fbbe8c064b91d23a42ad04930caa4e Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 12 Feb 2012 16:28:42 +0100 Subject: [PATCH 27/42] Consistencify sidebar bits (same headers and such) --- mediagoblin/templates/mediagoblin/utils/exif.html | 2 +- .../templates/mediagoblin/utils/geolocation_map.html | 2 +- mediagoblin/templates/mediagoblin/utils/license.html | 2 +- mediagoblin/templates/mediagoblin/utils/tags.html | 9 +++++---- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/utils/exif.html b/mediagoblin/templates/mediagoblin/utils/exif.html index 0dd187f2..bd2e3307 100644 --- a/mediagoblin/templates/mediagoblin/utils/exif.html +++ b/mediagoblin/templates/mediagoblin/utils/exif.html @@ -20,7 +20,7 @@ {% if media.media_data.has_key('exif') and app_config['exif_visible'] and media.media_data.exif.has_key('useful') %} -

      EXIF

      +

      EXIF

      {% for key, tag in media.media_data.exif.useful.items() %} diff --git a/mediagoblin/templates/mediagoblin/utils/geolocation_map.html b/mediagoblin/templates/mediagoblin/utils/geolocation_map.html index c1909ae5..118d0e62 100644 --- a/mediagoblin/templates/mediagoblin/utils/geolocation_map.html +++ b/mediagoblin/templates/mediagoblin/utils/geolocation_map.html @@ -20,7 +20,7 @@ {% if media.media_data.has_key('gps') and app_config['geolocation_map_visible'] and media.media_data.gps %} -

      Map

      +

      Location

      {% set gps = media.media_data.gps %}
      diff --git a/mediagoblin/templates/mediagoblin/utils/license.html b/mediagoblin/templates/mediagoblin/utils/license.html index 2438ed4e..ab157508 100644 --- a/mediagoblin/templates/mediagoblin/utils/license.html +++ b/mediagoblin/templates/mediagoblin/utils/license.html @@ -17,8 +17,8 @@ #} {% block license_content -%} +

      {% trans %}License{% endtrans %}

      - {% trans %}License:{% endtrans %} {% if media.license %} {{ media.get_license_data().abbreviation }} {% else %} diff --git a/mediagoblin/templates/mediagoblin/utils/tags.html b/mediagoblin/templates/mediagoblin/utils/tags.html index 6408102d..bcf3b5fd 100644 --- a/mediagoblin/templates/mediagoblin/utils/tags.html +++ b/mediagoblin/templates/mediagoblin/utils/tags.html @@ -17,16 +17,17 @@ #} {% block tags_content -%} -

      {% trans %}View more media tagged with{% endtrans %} +

      Tagged with

      +

      {% for tag in media.tags %} {% if loop.last %} {# the 'and' should only appear if there is more than one tag #} {% if media.tags|length > 1 %} - {% trans %}or{% endtrans %} + · {% endif %} {{ tag['name'] }}. + tag=tag['slug']) }}">{{ tag['name'] }} {% elif loop.revindex == 2 %} {{ tag['name'] }}, + tag=tag['slug']) }}">{{ tag['name'] }} · {% endif %} {% endfor %}

      From c6498b26be26a03fd80f15a5a80f04fcb5a7c5a7 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 12 Feb 2012 16:30:21 +0100 Subject: [PATCH 28/42] Move Attachments from sidebar to default pane --- .../mediagoblin/user_pages/media.html | 46 +++++++++---------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index f1a1a5c5..1a2038bd 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -74,7 +74,29 @@ {% autoescape False %}

      {{ media.description_html }}

      - {% endautoescape %} + {% endautoescape %} + {% if media.attachment_files|count %} +

      Attachments

      + + {% endif %} + {% if app_config['allow_attachments'] + and request.user + and (media.uploader == request.user._id + or request.user.is_admin) %} +

      + Add attachment +

      + {% endif %}

      {% trans date=media.created.strftime("%Y-%m-%d") -%} Added on {{ date }}. @@ -157,28 +179,6 @@ {% endif %}

      - {% if media.attachment_files|count %} -

      Attachments

      - - {% endif %} - {% if app_config['allow_attachments'] - and request.user - and (media.uploader == request.user._id - or request.user.is_admin) %} -

      - Add attachment -

      - {% endif %} {% if media.tags %} {% include "mediagoblin/utils/tags.html" %} {% endif %} From a1161b84a6bec7025ee446933ca0477b80cbca42 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 12 Feb 2012 18:12:23 +0100 Subject: [PATCH 29/42] Fix sidebar margins --- mediagoblin/static/css/base.css | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 2f36ed48..25a2dc4f 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -163,8 +163,7 @@ img.media_image { .media_sidebar { width: 240px; - margin-left: 10px; - margin-right: 0px; + margin: 20px 0 0 10px; float: left; } From 630dd7941d1b558e8714857ffae14044636d10e4 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 12 Feb 2012 18:23:18 +0100 Subject: [PATCH 30/42] Style sidedata h3; revert sidebar margin change --- mediagoblin/static/css/base.css | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 25a2dc4f..9ddeb404 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -163,7 +163,7 @@ img.media_image { .media_sidebar { width: 240px; - margin: 20px 0 0 10px; + margin-left: 10px; float: left; } @@ -273,6 +273,15 @@ textarea#comment_content { height: 0; } +h3.sidedata { + border: none; + background-color: #212121; + border-radius: 4px 4px 0 0; + padding: 3px 8px; + margin: 20px 0 5px 0; + font-size: 1em; +} + /* forms */ .form_box,.form_box_xl { From 28439be4e3d35c56f278b454ce7da75763e7ea35 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 12 Feb 2012 18:25:52 +0100 Subject: [PATCH 31/42] Move "Added on" date to sidebar --- mediagoblin/templates/mediagoblin/user_pages/media.html | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 1a2038bd..4a376f87 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -98,9 +98,6 @@

      {% endif %}

      - {% trans date=media.created.strftime("%Y-%m-%d") -%} - Added on {{ date }}. - {%- endtrans %} {% if request.user and (media.uploader == request.user._id or request.user.is_admin) %} @@ -179,6 +176,11 @@ {% endif %}

      + {% trans date=media.created.strftime("%Y-%m-%d") -%} +

      Added on

      +

      {{ date }}

      + {%- endtrans %} + {% if media.tags %} {% include "mediagoblin/utils/tags.html" %} {% endif %} From be09ed51c8118203c1e69be66d7d947f9fbf5e7b Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 12 Feb 2012 18:39:55 +0100 Subject: [PATCH 32/42] Corrections for mobile layout --- mediagoblin/static/css/base.css | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 9ddeb404..0447d8e5 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -522,21 +522,27 @@ table.media_panel th { } /* Media queries and other responsivisivity */ -@media screen and (max-width: 680px) { + +@media screen and (max-width: 820px) { .media_pane { width: 100%; margin: 0px; } + + .media_sidebar { + width: 100%; + margin: 0px; + } + img.media_image { width: 100%; } -} -@media screen and (max-width: 960px) { .profile_sidebar { width: 100%; margin: 0px; } + .profile_showcase { width: 100%; margin: 0px; From 4944e3c374839d48f5de973db3a037de26df908e Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 12 Feb 2012 19:33:05 +0100 Subject: [PATCH 33/42] Make media thumbnail gallery a list instead of a table --- mediagoblin/static/css/base.css | 1 + .../mediagoblin/utils/object_gallery.html | 36 ++++++++----------- 2 files changed, 16 insertions(+), 21 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 0447d8e5..165fdcf7 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -381,6 +381,7 @@ textarea#comment_content { margin: 0px 4px 10px 4px; text-align: center; font-size: 0.875em; + list-style: none; } .media_thumbnail a { diff --git a/mediagoblin/templates/mediagoblin/utils/object_gallery.html b/mediagoblin/templates/mediagoblin/utils/object_gallery.html index 81506a84..6b5988fb 100644 --- a/mediagoblin/templates/mediagoblin/utils/object_gallery.html +++ b/mediagoblin/templates/mediagoblin/utils/object_gallery.html @@ -19,29 +19,23 @@ {% from "mediagoblin/utils/pagination.html" import render_pagination %} {% macro media_grid(request, media_entries, col_number=5) %} -
      + - {% for entry in row %} - {% set entry_url = entry.url_for_self(request.urlgen) %} - - {% endfor %} - + {% for entry in row %} + {% set entry_url = entry.url_for_self(request.urlgen) %} +
    • + + + + {% if entry.title %} +
      + {{ entry.title }} + {% endif %} +
    • + {% endfor %} {% endfor %} - +
    {%- endmacro %} {# From b0ed64aa126b50863ebc4c9986e876e09ad313a5 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 12 Feb 2012 20:47:25 +0100 Subject: [PATCH 34/42] Fix comment input field width/padding; change some text; remove weird #form_comment duplicate rules; move Edit/Delete buttons next to title --- mediagoblin/static/css/base.css | 17 ++++----- .../mediagoblin/user_pages/media.html | 35 +++++++------------ 2 files changed, 20 insertions(+), 32 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 165fdcf7..674568f5 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -255,15 +255,6 @@ text-align: center; float: right; } -textarea#comment_content { - resize: vertical; - width: 634px; - height: 90px; - border: none; - background-color: #f1f1f1; - padding: 3px; -} - .clear { clear: both; display: block; @@ -364,13 +355,18 @@ textarea#description, textarea#bio { } textarea#comment_content { - width: 634px; + resize: vertical; + width: 100%; height: 90px; border: none; background-color: #f1f1f1; padding: 3px; } +#form_comment .form_field_input { + padding-right: 6px; +} + /* media galleries */ .media_thumbnail { @@ -393,6 +389,7 @@ textarea#comment_content { h2.media_title { margin-bottom: 0px; + display: inline-block; } p.context { diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 4a376f87..3e711e92 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -72,6 +72,18 @@

    {{ media.title }}

    + {% if request.user and + (media.uploader == request.user._id or + request.user.is_admin) %} + {% set edit_url = request.urlgen('mediagoblin.edit.edit_media', + user= media.get_uploader.username, + media= media._id) %} + {% trans %}Edit{% endtrans %} + {% set delete_url = request.urlgen('mediagoblin.user_pages.media_confirm_delete', + user= media.get_uploader.username, + media= media._id) %} + {% trans %}Delete{% endtrans %} + {% endif %} {% autoescape False %}

    {{ media.description_html }}

    {% endautoescape %} @@ -97,36 +109,15 @@ media=media._id) }}">Add attachment

    {% endif %} -

    - {% if request.user and - (media.uploader == request.user._id or - request.user.is_admin) %} - {% set edit_url = request.urlgen('mediagoblin.edit.edit_media', - user= media.get_uploader.username, - media= media._id) %} - {% trans %}Edit{% endtrans %} - {% set delete_url = request.urlgen('mediagoblin.user_pages.media_confirm_delete', - user= media.get_uploader.username, - media= media._id) %} - {% trans %}Delete{% endtrans %} - {% endif %} -

    {% if comments %}

    - {% if comments.count()==1 %} - {% trans comment_count=comments.count() -%}{{ comment_count }} comment{%- endtrans %} - {% elif comments.count()>1 %} - {% trans comment_count=comments.count() -%}{{ comment_count }} comments{%- endtrans %} - {% else %} - {% trans %}No comments yet.{% endtrans %} - {% endif %}

    From f2ca3ad6ac945f92c24e50204f4a1122f21437e8 Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 12 Feb 2012 21:00:20 +0100 Subject: [PATCH 35/42] Add navigation button styles for mobile --- mediagoblin/static/css/base.css | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 674568f5..f0ee888d 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -545,4 +545,16 @@ table.media_panel th { width: 100%; margin: 0px; } + + .navigation { + float: none; + } + + .navigation_button { + width: 49%; + } + + .navigation_left { + margin-right: 0; + } } From 92e8ca790b1faca9bbcb260b8dcc8c05bdabc8ea Mon Sep 17 00:00:00 2001 From: Jef van Schendel Date: Sun, 12 Feb 2012 21:02:02 +0100 Subject: [PATCH 36/42] Wait, scratch that. This commit uses a better way. --- mediagoblin/static/css/base.css | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index f0ee888d..9c429404 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -552,9 +552,11 @@ table.media_panel th { .navigation_button { width: 49%; + float: right; } .navigation_left { margin-right: 0; + float: left; } } From e4c3077437042f5466c3f75c85c0d174c272a85a Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sun, 12 Feb 2012 20:36:46 -0600 Subject: [PATCH 37/42] Our javascript is actually AGPLv3+, not LGPL*. Correcting. --- COPYING | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/COPYING b/COPYING index f8d93cf6..23e8db70 100644 --- a/COPYING +++ b/COPYING @@ -30,7 +30,7 @@ If not, see . JavaScript files located in the ``mediagoblin/`` directory tree are free software: you can redistribute and/or modify them under the -terms of the GNU Lesser General Public License as published by the +terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. From 53280164e2ebb5856a6f25d14f27439855f99dbb Mon Sep 17 00:00:00 2001 From: Elrond Date: Mon, 13 Feb 2012 23:11:49 +0100 Subject: [PATCH 38/42] 47: Only lowercase host part of email According to most documentation it seems that the local part of an email adress is/can be case sensitive. While the host part is not. So we lowercase only the host part of the given adress. See: http://issues.mediagoblin.org/ticket/47 --- mediagoblin/auth/views.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mediagoblin/auth/views.py b/mediagoblin/auth/views.py index 9af89c2a..e18469b9 100644 --- a/mediagoblin/auth/views.py +++ b/mediagoblin/auth/views.py @@ -60,7 +60,9 @@ def register(request): if request.method == 'POST' and register_form.validate(): # TODO: Make sure the user doesn't exist already username = unicode(request.POST['username'].lower()) - email = unicode(request.POST['email'].lower()) + em_user, em_dom = unicode(request.POST['email']).split("@", 1) + em_dom = em_dom.lower() + email = em_user + "@" + em_dom users_with_username = request.db.User.find( {'username': username}).count() users_with_email = request.db.User.find( From 38816c66078fe679dc4b51b545d15d331712bcb4 Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Mon, 13 Feb 2012 21:31:11 -0600 Subject: [PATCH 39/42] Revert "Layout overhaul time!" This reverts a whole bunch of commits, fb1dc4f5 thru 92e8ca79, where an experimental new layout was played with. Unfortunately, this layout broke the look and feel of master, even though it was going in the right direction for mobile stuff. Jef said he'll do things in a branch! --- mediagoblin/static/css/base.css | 81 +++------- .../mediagoblin/user_pages/media.html | 141 +++++++++--------- .../templates/mediagoblin/utils/exif.html | 2 +- .../mediagoblin/utils/geolocation_map.html | 2 +- .../templates/mediagoblin/utils/license.html | 2 +- .../mediagoblin/utils/object_gallery.html | 36 +++-- .../mediagoblin/utils/prev_next.html | 46 +++--- .../templates/mediagoblin/utils/tags.html | 9 +- 8 files changed, 146 insertions(+), 173 deletions(-) diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index 9c429404..73b07384 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -109,7 +109,7 @@ input, textarea { .container { margin: auto; width: 96%; - max-width: 820px; + max-width: 940px; } header { @@ -151,19 +151,16 @@ footer { } .media_pane { - width: 560px; + width: 640px; margin-left: 0px; margin-right: 10px; float: left; } -img.media_image { - width: 100%; -} - .media_sidebar { - width: 240px; + width: 280px; margin-left: 10px; + margin-right: 0px; float: left; } @@ -255,6 +252,15 @@ text-align: center; float: right; } +textarea#comment_content { + resize: vertical; + width: 634px; + height: 90px; + border: none; + background-color: #f1f1f1; + padding: 3px; +} + .clear { clear: both; display: block; @@ -264,15 +270,6 @@ text-align: center; height: 0; } -h3.sidedata { - border: none; - background-color: #212121; - border-radius: 4px 4px 0 0; - padding: 3px 8px; - margin: 20px 0 5px 0; - font-size: 1em; -} - /* forms */ .form_box,.form_box_xl { @@ -355,18 +352,13 @@ textarea#description, textarea#bio { } textarea#comment_content { - resize: vertical; - width: 100%; + width: 634px; height: 90px; border: none; background-color: #f1f1f1; padding: 3px; } -#form_comment .form_field_input { - padding-right: 6px; -} - /* media galleries */ .media_thumbnail { @@ -377,7 +369,6 @@ textarea#comment_content { margin: 0px 4px 10px 4px; text-align: center; font-size: 0.875em; - list-style: none; } .media_thumbnail a { @@ -389,12 +380,6 @@ textarea#comment_content { h2.media_title { margin-bottom: 0px; - display: inline-block; -} - -p.context { - display: inline-block; - padding-top: 4px; } p.media_specs { @@ -421,21 +406,19 @@ img.media_icon { /* navigation */ -.navigation { - float: right; -} - .navigation_button { width: 135px; - display: inline-block; + display: block; + float: left; text-align: center; background-color: #1d1d1d; border: 1px solid; border-color: #2c2c2c #232323 #1a1a1a; border-radius: 4px; text-decoration: none; - padding: 4px 0 8px; - margin: 0 0 6px + padding: 12px 0 16px; + font-size: 1.4em; + margin: 0 0 20px } .navigation_left { @@ -520,43 +503,23 @@ table.media_panel th { } /* Media queries and other responsivisivity */ - -@media screen and (max-width: 820px) { +@media screen and (max-width: 680px) { .media_pane { width: 100%; margin: 0px; } - - .media_sidebar { - width: 100%; - margin: 0px; - } - img.media_image { width: 100%; } +} +@media screen and (max-width: 960px) { .profile_sidebar { width: 100%; margin: 0px; } - .profile_showcase { width: 100%; margin: 0px; } - - .navigation { - float: none; - } - - .navigation_button { - width: 49%; - float: right; - } - - .navigation_left { - margin-right: 0; - float: left; - } } diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 3e711e92..d2503a4e 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -40,84 +40,67 @@ {% endblock mediagoblin_head %} {% block mediagoblin_content %} - {% trans user_url=request.urlgen( - 'mediagoblin.user_pages.user_home', - user=media.get_uploader.username), - username=media.get_uploader.username -%} -

    ❖ Browsing media by {{ username }}

    - {%- endtrans %} - {% include "mediagoblin/utils/prev_next.html" %} -
    - {% block mediagoblin_media %} - {% set display_media = request.app.public_store.file_url( - media.get_display_media(media.media_files)) %} - {# if there's a medium file size, that means the medium size - # isn't the original... so link to the original! - #} - {% if media.media_files.has_key('medium') %} - +
    + -
    + {% endif %} + {% endblock %} +

    {{ media.title }}

    - {% if request.user and - (media.uploader == request.user._id or - request.user.is_admin) %} - {% set edit_url = request.urlgen('mediagoblin.edit.edit_media', - user= media.get_uploader.username, - media= media._id) %} - {% trans %}Edit{% endtrans %} - {% set delete_url = request.urlgen('mediagoblin.user_pages.media_confirm_delete', - user= media.get_uploader.username, - media= media._id) %} - {% trans %}Delete{% endtrans %} - {% endif %} {% autoescape False %}

    {{ media.description_html }}

    - {% endautoescape %} - {% if media.attachment_files|count %} -

    Attachments

    - - {% endif %} - {% if app_config['allow_attachments'] - and request.user - and (media.uploader == request.user._id - or request.user.is_admin) %} -

    - Add attachment -

    - {% endif %} + {% endautoescape %} +

    + {% trans date=media.created.strftime("%Y-%m-%d") -%} + Added on {{ date }}. + {%- endtrans %} + {% if request.user and + (media.uploader == request.user._id or + request.user.is_admin) %} + {% set edit_url = request.urlgen('mediagoblin.edit.edit_media', + user= media.get_uploader.username, + media= media._id) %} + {% trans %}Edit{% endtrans %} + {% set delete_url = request.urlgen('mediagoblin.user_pages.media_confirm_delete', + user= media.get_uploader.username, + media= media._id) %} + {% trans %}Delete{% endtrans %} + {% endif %} +

    {% if comments %}

    + {% if comments.count()==1 %} + {% trans comment_count=comments.count() -%}{{ comment_count }} comment{%- endtrans %} + {% elif comments.count()>1 %} + {% trans comment_count=comments.count() -%}{{ comment_count }} comments{%- endtrans %} + {% else %} + {% trans %}No comments yet.{% endtrans %} + {% endif %}

    @@ -167,11 +150,35 @@ {% endif %}
    - {% trans date=media.created.strftime("%Y-%m-%d") -%} -

    Added on

    -

    {{ date }}

    - {%- endtrans %} - + {% trans user_url=request.urlgen( + 'mediagoblin.user_pages.user_home', + user=media.get_uploader.username), + username=media.get_uploader.username -%} +

    ❖ Browsing media by {{ username }}

    + {%- endtrans %} + {% include "mediagoblin/utils/prev_next.html" %} + {% if media.attachment_files|count %} +

    Attachments

    + + {% endif %} + {% if app_config['allow_attachments'] + and request.user + and (media.uploader == request.user._id + or request.user.is_admin) %} +

    + Add attachment +

    + {% endif %} {% if media.tags %} {% include "mediagoblin/utils/tags.html" %} {% endif %} diff --git a/mediagoblin/templates/mediagoblin/utils/exif.html b/mediagoblin/templates/mediagoblin/utils/exif.html index bd2e3307..0dd187f2 100644 --- a/mediagoblin/templates/mediagoblin/utils/exif.html +++ b/mediagoblin/templates/mediagoblin/utils/exif.html @@ -20,7 +20,7 @@ {% if media.media_data.has_key('exif') and app_config['exif_visible'] and media.media_data.exif.has_key('useful') %} -

    EXIF

    +

    EXIF

    {% for key, tag in media.media_data.exif.useful.items() %} diff --git a/mediagoblin/templates/mediagoblin/utils/geolocation_map.html b/mediagoblin/templates/mediagoblin/utils/geolocation_map.html index 118d0e62..c1909ae5 100644 --- a/mediagoblin/templates/mediagoblin/utils/geolocation_map.html +++ b/mediagoblin/templates/mediagoblin/utils/geolocation_map.html @@ -20,7 +20,7 @@ {% if media.media_data.has_key('gps') and app_config['geolocation_map_visible'] and media.media_data.gps %} -

    Location

    +

    Map

    {% set gps = media.media_data.gps %}
    diff --git a/mediagoblin/templates/mediagoblin/utils/license.html b/mediagoblin/templates/mediagoblin/utils/license.html index ab157508..2438ed4e 100644 --- a/mediagoblin/templates/mediagoblin/utils/license.html +++ b/mediagoblin/templates/mediagoblin/utils/license.html @@ -17,8 +17,8 @@ #} {% block license_content -%} -

    {% trans %}License{% endtrans %}

    + {% trans %}License:{% endtrans %} {% if media.license %} {{ media.get_license_data().abbreviation }} {% else %} diff --git a/mediagoblin/templates/mediagoblin/utils/object_gallery.html b/mediagoblin/templates/mediagoblin/utils/object_gallery.html index 6b5988fb..81506a84 100644 --- a/mediagoblin/templates/mediagoblin/utils/object_gallery.html +++ b/mediagoblin/templates/mediagoblin/utils/object_gallery.html @@ -19,23 +19,29 @@ {% from "mediagoblin/utils/pagination.html" import render_pagination %} {% macro media_grid(request, media_entries, col_number=5) %} -

    {% for row in gridify_cursor(media_entries, col_number) %} - {% for entry in row %} - {% set entry_url = entry.url_for_self(request.urlgen) %} -
  • - - - - {% if entry.title %} -
    - {{ entry.title }} - {% endif %} -
  • - {% endfor %} + + {% for entry in row %} + {% set entry_url = entry.url_for_self(request.urlgen) %} + + {% endfor %} + {% endfor %} - + {%- endmacro %} {# diff --git a/mediagoblin/templates/mediagoblin/utils/prev_next.html b/mediagoblin/templates/mediagoblin/utils/prev_next.html index f1175ce4..d0cf3f8c 100644 --- a/mediagoblin/templates/mediagoblin/utils/prev_next.html +++ b/mediagoblin/templates/mediagoblin/utils/prev_next.html @@ -21,28 +21,26 @@ {% set next_entry_url = media.url_to_next(request.urlgen) %} {% if prev_entry_url or next_entry_url %} - + {# There are no previous entries for the very first media entry #} + {% if prev_entry_url %} + + ← {% trans %}newer{% endtrans %} + + {% else %} + {# This is the first entry. display greyed-out 'previous' image #} + + {% endif %} + {# Likewise, this could be the very last media entry #} + {% if next_entry_url %} + + {% trans %}older{% endtrans %} → + + {% else %} + {# This is the last entry. display greyed-out 'next' image #} + + {% endif %} {% endif %} diff --git a/mediagoblin/templates/mediagoblin/utils/tags.html b/mediagoblin/templates/mediagoblin/utils/tags.html index bcf3b5fd..6408102d 100644 --- a/mediagoblin/templates/mediagoblin/utils/tags.html +++ b/mediagoblin/templates/mediagoblin/utils/tags.html @@ -17,17 +17,16 @@ #} {% block tags_content -%} -

    Tagged with

    -

    +

    {% trans %}View more media tagged with{% endtrans %} {% for tag in media.tags %} {% if loop.last %} {# the 'and' should only appear if there is more than one tag #} {% if media.tags|length > 1 %} - · + {% trans %}or{% endtrans %} {% endif %} {{ tag['name'] }} + tag=tag['slug']) }}">{{ tag['name'] }}. {% elif loop.revindex == 2 %} {{ tag['name'] }} · + tag=tag['slug']) }}">{{ tag['name'] }}, {% endif %} {% endfor %}

    From e61ab0998b77eaf18268001fd2d70917c3cd3e37 Mon Sep 17 00:00:00 2001 From: Elrond Date: Sat, 4 Feb 2012 20:55:55 +0100 Subject: [PATCH 40/42] Drop pre-rendered html: User.bio_html After a bit of discussion, we decided to drop the pre-rendered html from the database and render it on the fly. In another step, we will use some proper caching method to cache this stuff. This commit affects the User.bio_html part. --- mediagoblin/db/mixin.py | 5 +++++ mediagoblin/db/mongo/migrations.py | 11 +++++++++++ mediagoblin/db/mongo/models.py | 2 -- mediagoblin/db/sql/convert.py | 2 +- mediagoblin/db/sql/models.py | 1 - mediagoblin/edit/views.py | 2 -- 6 files changed, 17 insertions(+), 6 deletions(-) diff --git a/mediagoblin/db/mixin.py b/mediagoblin/db/mixin.py index beaff9b0..2ff08722 100644 --- a/mediagoblin/db/mixin.py +++ b/mediagoblin/db/mixin.py @@ -29,6 +29,7 @@ real objects. from mediagoblin.auth import lib as auth_lib from mediagoblin.tools import common, licenses +from mediagoblin.tools.text import cleaned_markdown_conversion class UserMixin(object): @@ -39,6 +40,10 @@ class UserMixin(object): return auth_lib.bcrypt_check_password( password, self.pw_hash) + @property + def bio_html(self): + return cleaned_markdown_conversion(self.bio) + class MediaEntryMixin(object): def get_display_media(self, media_map, diff --git a/mediagoblin/db/mongo/migrations.py b/mediagoblin/db/mongo/migrations.py index 261e21a5..74a810c1 100644 --- a/mediagoblin/db/mongo/migrations.py +++ b/mediagoblin/db/mongo/migrations.py @@ -115,3 +115,14 @@ def mediaentry_add_license(database): Add the 'license' field for entries that don't have it. """ add_table_field(database, 'media_entries', 'license', None) + + +@RegisterMigration(9) +def user_remove_bio_html(database): + """ + Drop bio_html again and calculate things on the fly (and cache) + """ + database['users'].update( + {'bio_html': {'$exists': True}}, + {'$unset': {'bio_html': 1}}, + multi=True) diff --git a/mediagoblin/db/mongo/models.py b/mediagoblin/db/mongo/models.py index 541086bc..c1282f4a 100644 --- a/mediagoblin/db/mongo/models.py +++ b/mediagoblin/db/mongo/models.py @@ -59,7 +59,6 @@ class User(Document, UserMixin): - is_admin: Whether or not this user is an administrator or not. - url: this user's personal webpage/website, if appropriate. - bio: biography of this user (plaintext, in markdown) - - bio_html: biography of the user converted to proper HTML. """ __collection__ = 'users' use_dot_notation = True @@ -76,7 +75,6 @@ class User(Document, UserMixin): 'is_admin': bool, 'url': unicode, 'bio': unicode, # May contain markdown - 'bio_html': unicode, # May contain plaintext, or HTML 'fp_verification_key': unicode, # forgotten password verification key 'fp_token_expire': datetime.datetime, } diff --git a/mediagoblin/db/sql/convert.py b/mediagoblin/db/sql/convert.py index f6575be9..a098927f 100644 --- a/mediagoblin/db/sql/convert.py +++ b/mediagoblin/db/sql/convert.py @@ -56,7 +56,7 @@ def convert_users(mk_db): copy_attrs(entry, new_entry, ('username', 'email', 'created', 'pw_hash', 'email_verified', 'status', 'verification_key', 'is_admin', 'url', - 'bio', 'bio_html', + 'bio', 'fp_verification_key', 'fp_token_expire',)) # new_entry.fp_verification_expire = entry.fp_token_expire diff --git a/mediagoblin/db/sql/models.py b/mediagoblin/db/sql/models.py index 9d06f79c..3cf4ff40 100644 --- a/mediagoblin/db/sql/models.py +++ b/mediagoblin/db/sql/models.py @@ -64,7 +64,6 @@ class User(Base, UserMixin): is_admin = Column(Boolean, default=False, nullable=False) url = Column(Unicode) bio = Column(UnicodeText) # ?? - bio_html = Column(UnicodeText) # ?? fp_verification_key = Column(Unicode) fp_token_expire = Column(DateTime) diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index a7245517..47761f23 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -171,8 +171,6 @@ def edit_profile(request): user.url = unicode(request.POST['url']) user.bio = unicode(request.POST['bio']) - user.bio_html = cleaned_markdown_conversion(user.bio) - user.save() messages.add_message(request, From 1e72e075f8d542f4aa1ad0262f4fd1a5645cc731 Mon Sep 17 00:00:00 2001 From: Elrond Date: Mon, 13 Feb 2012 13:42:59 +0100 Subject: [PATCH 41/42] Drop pre-rendered html: MediaEntry.description_html After a bit of discussion, we decided to drop the pre-rendered html from the database and render it on the fly. In another step, we will use some proper caching method to cache this stuff. This commit affects the MediaEntry.description_html part. --- mediagoblin/db/mixin.py | 8 ++++++++ mediagoblin/db/mongo/migrations.py | 20 ++++++++++++++------ mediagoblin/db/mongo/models.py | 4 ---- mediagoblin/db/sql/convert.py | 2 +- mediagoblin/db/sql/models.py | 1 - mediagoblin/edit/views.py | 5 +---- mediagoblin/listings/views.py | 2 +- mediagoblin/submit/views.py | 4 +--- mediagoblin/user_pages/views.py | 2 +- 9 files changed, 27 insertions(+), 21 deletions(-) diff --git a/mediagoblin/db/mixin.py b/mediagoblin/db/mixin.py index 2ff08722..4e3800ab 100644 --- a/mediagoblin/db/mixin.py +++ b/mediagoblin/db/mixin.py @@ -46,6 +46,14 @@ class UserMixin(object): class MediaEntryMixin(object): + @property + def description_html(self): + """ + Rendered version of the description, run through + Markdown and cleaned with our cleaning tool. + """ + return cleaned_markdown_conversion(self.description) + def get_display_media(self, media_map, fetch_order=common.DISPLAY_IMAGE_FETCHING_ORDER): """ diff --git a/mediagoblin/db/mongo/migrations.py b/mediagoblin/db/mongo/migrations.py index 74a810c1..57da7dd8 100644 --- a/mediagoblin/db/mongo/migrations.py +++ b/mediagoblin/db/mongo/migrations.py @@ -29,6 +29,16 @@ def add_table_field(db, table_name, field_name, default_value): multi=True) +def drop_table_field(db, table_name, field_name): + """ + Drop an old field from a table/collection + """ + db[table_name].update( + {field_name: {'$exists': True}}, + {'$unset': {field_name: 1}}, + multi=True) + + # Please see mediagoblin/tests/test_migrations.py for some examples of # basic migrations. @@ -118,11 +128,9 @@ def mediaentry_add_license(database): @RegisterMigration(9) -def user_remove_bio_html(database): +def remove_calculated_html(database): """ - Drop bio_html again and calculate things on the fly (and cache) + Drop bio_html, description_html again and calculate things on the fly (and cache) """ - database['users'].update( - {'bio_html': {'$exists': True}}, - {'$unset': {'bio_html': 1}}, - multi=True) + drop_table_field(database, 'users', 'bio_html') + drop_table_field(database, 'media_entries', 'description_html') diff --git a/mediagoblin/db/mongo/models.py b/mediagoblin/db/mongo/models.py index c1282f4a..db38d502 100644 --- a/mediagoblin/db/mongo/models.py +++ b/mediagoblin/db/mongo/models.py @@ -110,9 +110,6 @@ class MediaEntry(Document, MediaEntryMixin): up with MarkDown for slight fanciness (links, boldness, italics, paragraphs...) - - description_html: Rendered version of the description, run through - Markdown and cleaned with our cleaning tool. - - media_type: What type of media is this? Currently we only support 'image' ;) @@ -177,7 +174,6 @@ class MediaEntry(Document, MediaEntryMixin): 'slug': unicode, 'created': datetime.datetime, 'description': unicode, # May contain markdown/up - 'description_html': unicode, # May contain plaintext, or HTML 'media_type': unicode, 'media_data': dict, # extra data relevant to this media_type 'plugin_data': dict, # plugins can dump stuff here. diff --git a/mediagoblin/db/sql/convert.py b/mediagoblin/db/sql/convert.py index a098927f..9d276866 100644 --- a/mediagoblin/db/sql/convert.py +++ b/mediagoblin/db/sql/convert.py @@ -77,7 +77,7 @@ def convert_media_entries(mk_db): new_entry = MediaEntry() copy_attrs(entry, new_entry, ('title', 'slug', 'created', - 'description', 'description_html', + 'description', 'media_type', 'state', 'license', 'fail_error', 'queued_task_id',)) diff --git a/mediagoblin/db/sql/models.py b/mediagoblin/db/sql/models.py index 3cf4ff40..72591f4e 100644 --- a/mediagoblin/db/sql/models.py +++ b/mediagoblin/db/sql/models.py @@ -85,7 +85,6 @@ class MediaEntry(Base, MediaEntryMixin): slug = Column(Unicode) created = Column(DateTime, nullable=False, default=datetime.datetime.now) description = Column(UnicodeText) # ?? - description_html = Column(UnicodeText) # ?? media_type = Column(Unicode, nullable=False) state = Column(Unicode, default=u'unprocessed', nullable=False) # or use sqlalchemy.types.Enum? diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index 47761f23..3df36e8e 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -34,7 +34,7 @@ from mediagoblin.tools.response import render_to_response, redirect from mediagoblin.tools.translate import pass_to_ugettext as _ from mediagoblin.tools.text import ( clean_html, convert_to_tag_list_of_dicts, - media_tags_as_string, cleaned_markdown_conversion) + media_tags_as_string) from mediagoblin.tools.licenses import SUPPORTED_LICENSES @@ -72,9 +72,6 @@ def edit_media(request, media): media.tags = convert_to_tag_list_of_dicts( request.POST.get('tags')) - media.description_html = cleaned_markdown_conversion( - media.description) - media.license = unicode(request.POST.get('license', '')) or None media.slug = unicode(request.POST['slug']) diff --git a/mediagoblin/listings/views.py b/mediagoblin/listings/views.py index 48320cb2..ba23fc46 100644 --- a/mediagoblin/listings/views.py +++ b/mediagoblin/listings/views.py @@ -91,7 +91,7 @@ def tag_atom_feed(request): 'type': 'text/html'}]) for entry in cursor: feed.add(entry.get('title'), - entry.get('description_html'), + entry.description_html, id=entry.url_for_self(request.urlgen,qualified=True), content_type='html', author={'name': entry.get_uploader.username, diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index cdd097ec..845400ca 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -28,7 +28,7 @@ _log = logging.getLogger(__name__) from werkzeug.utils import secure_filename from mediagoblin.db.util import ObjectId -from mediagoblin.tools.text import cleaned_markdown_conversion, convert_to_tag_list_of_dicts +from mediagoblin.tools.text import convert_to_tag_list_of_dicts from mediagoblin.tools.translate import pass_to_ugettext as _ from mediagoblin.tools.response import render_to_response, redirect from mediagoblin.decorators import require_active_login @@ -66,8 +66,6 @@ def submit_start(request): or unicode(splitext(filename)[0])) entry.description = unicode(request.POST.get('description')) - entry.description_html = cleaned_markdown_conversion( - entry.description) entry.license = unicode(request.POST.get('license', "")) or None diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 82791278..46435d81 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -250,7 +250,7 @@ def atom_feed(request): for entry in cursor: feed.add(entry.get('title'), - entry.get('description_html'), + entry.description_html, id=entry.url_for_self(request.urlgen,qualified=True), content_type='html', author={ From feba5c5287a7cb4c0ed8f5124ad60a8a291770ad Mon Sep 17 00:00:00 2001 From: Elrond Date: Sat, 18 Feb 2012 11:32:28 +0100 Subject: [PATCH 42/42] Drop pre-rendered html: MediaComment.content_html After a bit of discussion, we decided to drop the pre-rendered html from the database and render it on the fly. In another step, we will use some proper caching method to cache this stuff. This commit affects the MediaComment.content_html part. --- mediagoblin/db/mixin.py | 10 ++++++++++ mediagoblin/db/mongo/migrations.py | 7 ++++++- mediagoblin/db/mongo/models.py | 8 +++----- mediagoblin/db/sql/convert.py | 2 +- mediagoblin/db/sql/models.py | 5 ++--- mediagoblin/user_pages/views.py | 2 -- 6 files changed, 22 insertions(+), 12 deletions(-) diff --git a/mediagoblin/db/mixin.py b/mediagoblin/db/mixin.py index 4e3800ab..758f7e72 100644 --- a/mediagoblin/db/mixin.py +++ b/mediagoblin/db/mixin.py @@ -104,3 +104,13 @@ class MediaEntryMixin(object): def get_license_data(self): """Return license dict for requested license""" return licenses.SUPPORTED_LICENSES[self.license or ""] + + +class MediaCommentMixin(object): + @property + def content_html(self): + """ + the actual html-rendered version of the comment displayed. + Run through Markdown and the HTML cleaner. + """ + return cleaned_markdown_conversion(self.content) diff --git a/mediagoblin/db/mongo/migrations.py b/mediagoblin/db/mongo/migrations.py index 57da7dd8..59035f3b 100644 --- a/mediagoblin/db/mongo/migrations.py +++ b/mediagoblin/db/mongo/migrations.py @@ -130,7 +130,12 @@ def mediaentry_add_license(database): @RegisterMigration(9) def remove_calculated_html(database): """ - Drop bio_html, description_html again and calculate things on the fly (and cache) + Drop pre-rendered html again and calculate things + on the fly (and cache): + - User.bio_html + - MediaEntry.description_html + - MediaComment.content_html """ drop_table_field(database, 'users', 'bio_html') drop_table_field(database, 'media_entries', 'description_html') + drop_table_field(database, 'media_comments', 'content_html') diff --git a/mediagoblin/db/mongo/models.py b/mediagoblin/db/mongo/models.py index db38d502..57af137d 100644 --- a/mediagoblin/db/mongo/models.py +++ b/mediagoblin/db/mongo/models.py @@ -23,7 +23,7 @@ from mediagoblin.db.mongo import migrations from mediagoblin.db.mongo.util import ASCENDING, DESCENDING, ObjectId from mediagoblin.tools.pagination import Pagination from mediagoblin.tools import url -from mediagoblin.db.mixin import UserMixin, MediaEntryMixin +from mediagoblin.db.mixin import UserMixin, MediaEntryMixin, MediaCommentMixin ################### # Custom validators @@ -251,7 +251,7 @@ class MediaEntry(Document, MediaEntryMixin): return self.db.User.find_one({'_id': self.uploader}) -class MediaComment(Document): +class MediaComment(Document, MediaCommentMixin): """ A comment on a MediaEntry. @@ -260,8 +260,6 @@ class MediaComment(Document): - author: user who posted this comment - created: when the comment was created - content: plaintext (but markdown'able) version of the comment's content. - - content_html: the actual html-rendered version of the comment displayed. - Run through Markdown and the HTML cleaner. """ __collection__ = 'media_comments' @@ -272,7 +270,7 @@ class MediaComment(Document): 'author': ObjectId, 'created': datetime.datetime, 'content': unicode, - 'content_html': unicode} + } required_fields = [ 'media_entry', 'author', 'created', 'content'] diff --git a/mediagoblin/db/sql/convert.py b/mediagoblin/db/sql/convert.py index 9d276866..a46d62ea 100644 --- a/mediagoblin/db/sql/convert.py +++ b/mediagoblin/db/sql/convert.py @@ -133,7 +133,7 @@ def convert_media_comments(mk_db): new_entry = MediaComment() copy_attrs(entry, new_entry, ('created', - 'content', 'content_html',)) + 'content',)) copy_reference_attr(entry, new_entry, "media_entry") copy_reference_attr(entry, new_entry, "author") diff --git a/mediagoblin/db/sql/models.py b/mediagoblin/db/sql/models.py index 72591f4e..18e1dfd7 100644 --- a/mediagoblin/db/sql/models.py +++ b/mediagoblin/db/sql/models.py @@ -31,7 +31,7 @@ from sqlalchemy.ext.associationproxy import association_proxy from mediagoblin.db.sql.extratypes import PathTupleWithSlashes from mediagoblin.db.sql.base import Base, DictReadAttrProxy -from mediagoblin.db.mixin import UserMixin, MediaEntryMixin +from mediagoblin.db.mixin import UserMixin, MediaEntryMixin, MediaCommentMixin class SimpleFieldAlias(object): @@ -218,7 +218,7 @@ class MediaTag(Base): return DictReadAttrProxy(self) -class MediaComment(Base): +class MediaComment(Base, MediaCommentMixin): __tablename__ = "media_comments" id = Column(Integer, primary_key=True) @@ -227,7 +227,6 @@ class MediaComment(Base): author = Column(Integer, ForeignKey('users.id'), nullable=False) created = Column(DateTime, nullable=False, default=datetime.datetime.now) content = Column(UnicodeText, nullable=False) - content_html = Column(UnicodeText) get_author = relationship(User) diff --git a/mediagoblin/user_pages/views.py b/mediagoblin/user_pages/views.py index 46435d81..05d07b1b 100644 --- a/mediagoblin/user_pages/views.py +++ b/mediagoblin/user_pages/views.py @@ -18,7 +18,6 @@ from webob import exc from mediagoblin import messages, mg_globals from mediagoblin.db.util import DESCENDING, ObjectId -from mediagoblin.tools.text import cleaned_markdown_conversion from mediagoblin.tools.response import render_to_response, render_404, redirect from mediagoblin.tools.translate import pass_to_ugettext as _ from mediagoblin.tools.pagination import Pagination @@ -146,7 +145,6 @@ def media_post_comment(request, media): comment['media_entry'] = media._id comment['author'] = request.user._id comment['content'] = unicode(request.POST['comment_content']) - comment['content_html'] = cleaned_markdown_conversion(comment['content']) if not comment['content'].strip(): messages.add_message(