aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--AUTHORS2
-rw-r--r--extlib/960.gs/MIT.txt20
-rw-r--r--extlib/lato/Lato-Bold.ttfbin0 -> 93224 bytes
-rw-r--r--extlib/lato/Lato-BoldItalic.ttfbin0 -> 81936 bytes
-rw-r--r--extlib/lato/Lato-Italic.ttfbin0 -> 83680 bytes
-rw-r--r--extlib/lato/Lato-Regular.ttfbin0 -> 96044 bytes
-rw-r--r--extlib/lato/OFL_1.1.txt97
-rw-r--r--mediagoblin/gmg_commands/import_export.py90
-rw-r--r--mediagoblin/static/css/base.css10
l---------mediagoblin/static/fonts/Lato-Bold.ttf1
l---------mediagoblin/static/fonts/Lato-BoldItalic.ttf1
l---------mediagoblin/static/fonts/Lato-Italic.ttf1
l---------mediagoblin/static/fonts/Lato-Regular.ttf1
13 files changed, 177 insertions, 46 deletions
diff --git a/AUTHORS b/AUTHORS
index 9653a332..c9fc5c8e 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -24,11 +24,13 @@ Thank you!
* Karen Rustad
* Mark Holmquist
* Matt Lee
+* Nathan Yergler
* Odin Hørthe Omdal
* Osama Khalid
* Rasmus Larsson
* Sam Kleinman
* Sebastian Spaeth
+* Shawn Khan
* Will Kahn-Greene
If you think your name should be on this list, let us know!
diff --git a/extlib/960.gs/MIT.txt b/extlib/960.gs/MIT.txt
new file mode 100644
index 00000000..5a2aeb47
--- /dev/null
+++ b/extlib/960.gs/MIT.txt
@@ -0,0 +1,20 @@
+Copyright (c) <year> <copyright holders>
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/extlib/lato/Lato-Bold.ttf b/extlib/lato/Lato-Bold.ttf
new file mode 100644
index 00000000..bc3529fc
--- /dev/null
+++ b/extlib/lato/Lato-Bold.ttf
Binary files differ
diff --git a/extlib/lato/Lato-BoldItalic.ttf b/extlib/lato/Lato-BoldItalic.ttf
new file mode 100644
index 00000000..2cf5ae0d
--- /dev/null
+++ b/extlib/lato/Lato-BoldItalic.ttf
Binary files differ
diff --git a/extlib/lato/Lato-Italic.ttf b/extlib/lato/Lato-Italic.ttf
new file mode 100644
index 00000000..11ca3eb6
--- /dev/null
+++ b/extlib/lato/Lato-Italic.ttf
Binary files differ
diff --git a/extlib/lato/Lato-Regular.ttf b/extlib/lato/Lato-Regular.ttf
new file mode 100644
index 00000000..26ce1002
--- /dev/null
+++ b/extlib/lato/Lato-Regular.ttf
Binary files differ
diff --git a/extlib/lato/OFL_1.1.txt b/extlib/lato/OFL_1.1.txt
new file mode 100644
index 00000000..f1a20ac1
--- /dev/null
+++ b/extlib/lato/OFL_1.1.txt
@@ -0,0 +1,97 @@
+Copyright (c) <dates>, <Copyright Holder> (<URL|email>),
+with Reserved Font Name <Reserved Font Name>.
+Copyright (c) <dates>, <additional Copyright Holder> (<URL|email>),
+with Reserved Font Name <additional Reserved Font Name>.
+Copyright (c) <dates>, <additional Copyright Holder> (<URL|email>).
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at:
+http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/mediagoblin/gmg_commands/import_export.py b/mediagoblin/gmg_commands/import_export.py
index 2e227e77..fc5c88a8 100644
--- a/mediagoblin/gmg_commands/import_export.py
+++ b/mediagoblin/gmg_commands/import_export.py
@@ -27,8 +27,13 @@ import subprocess
import os.path
import os
import sys
+import logging
from contextlib import closing
+_log = logging.getLogger('gmg.import_export')
+logging.basicConfig()
+_log.setLevel(logging.INFO)
+
def import_export_parse_setup(subparser):
# TODO: Add default
@@ -49,12 +54,12 @@ def import_export_parse_setup(subparser):
def _import_media(db, args):
- """
+ '''
Import media files
Must be called after _import_database()
- """
- print "\n== Importing media ==\n"
+ '''
+ _log.info('-> Importing media...')
media_cache = BasicFileStorage(
args._cache_path['media'])
@@ -65,18 +70,22 @@ def _import_media(db, args):
for entry in db.media_entries.find():
for name, path in entry['media_files'].items():
+ _log.info('Importing: {0} - {1}'.format(
+ entry['title'],
+ name))
+
media_file = mg_globals.public_store.get_file(path, mode='wb')
media_file.write(
media_cache.get_file(path, mode='rb').read())
- print "\n== Media imported ==\n"
+ _log.info('...Media imported')
def _import_database(db, args):
- """
+ '''
Restore mongo database from ___.bson files
- """
- print "\n== Importing database ==\n"
+ '''
+ _log.info('-> Importing database...')
p = subprocess.Popen([
args.mongorestore_path,
@@ -85,13 +94,13 @@ def _import_database(db, args):
p.wait()
- print "\n== Database imported ==\n"
+ _log.info('...Database imported')
def env_import(args):
- """
+ '''
Restore mongo database and media files from a tar archive
- """
+ '''
if not args.cache_path:
args.cache_path = tempfile.mkdtemp()
@@ -100,9 +109,9 @@ def env_import(args):
# Creates mg_globals.public_store and mg_globals.queue_store
setup_storage()
- config, validation_result = read_mediagoblin_config(args.conf_file)
+ global_config, app_config = setup_global_and_app_config(args.conf_file)
connection, db = setup_connection_and_db_from_config(
- config['mediagoblin'], use_pymongo=True)
+ app_config, use_pymongo=True)
tf = tarfile.open(
args.tar_file,
@@ -123,9 +132,9 @@ def env_import(args):
def _setup_paths(args):
- """
+ '''
Populate ``args`` variable with cache subpaths
- """
+ '''
args._cache_path = dict()
PATH_MAP = {
'media': 'media',
@@ -139,10 +148,10 @@ def _setup_paths(args):
def _create_archive(args):
- """
+ '''
Create the tar archive
- """
- print "\n== Compressing to archive ==\n"
+ '''
+ _log.info('-> Compressing to archive')
tf = tarfile.open(
args.tar_file,
@@ -151,27 +160,27 @@ def _create_archive(args):
with closing(tf):
tf.add(args.cache_path, 'mediagoblin-data/')
- print "\n== Archiving done ==\n"
+ _log.info('...Archiving done')
def _clean(args):
- """
+ '''
Remove cache directory
- """
+ '''
shutil.rmtree(args.cache_path)
def _export_check(args):
- """
+ '''
Run security checks for export command
- """
+ '''
if os.path.exists(args.tar_file):
overwrite = raw_input(
'The output file already exists. '
'Are you **SURE** you want to overwrite it? '
'(yes/no)> ')
if not overwrite == 'yes':
- print "Aborting."
+ print 'Aborting.'
return False
@@ -179,12 +188,7 @@ def _export_check(args):
def _export_database(db, args):
- print "\n== Exporting database ==\n"
-
- command = '{mongodump_path} -d {database} -o {mongodump_cache}'.format(
- mongodump_path=args.mongodump_path,
- database=db.name,
- mongodump_cache=args._cache_path['database'])
+ _log.info('-> Exporting database...')
p = subprocess.Popen([
args.mongodump_path,
@@ -193,11 +197,11 @@ def _export_database(db, args):
p.wait()
- print "\n== Database exported ==\n"
+ _log.info('...Database exported')
def _export_media(db, args):
- print "\n== Exporting media ==\n"
+ _log.info('-> Exporting media...')
media_cache = BasicFileStorage(
args._cache_path['media'])
@@ -208,21 +212,25 @@ def _export_media(db, args):
for entry in db.media_entries.find():
for name, path in entry['media_files'].items():
+ _log.info('Exporting {0} - {1}'.format(
+ entry['title'],
+ name))
+
mc_file = media_cache.get_file(path, mode='wb')
mc_file.write(
mg_globals.public_store.get_file(path, mode='rb').read())
- print "\n== Media exported ==\n"
+ _log.info('...Media exported')
def env_export(args):
- """
+ '''
Export database and media files to a tar archive
- """
+ '''
if args.cache_path:
if os.path.exists(args.cache_path):
- print 'The cache directory must not exist before you run this script'
- print 'Cache directory: ', args.cache_path
+ _log.error('The cache directory must not exist before you run this script')
+ _log.error('Cache directory: {0}'.format(args.cache_path))
return False
else:
@@ -231,15 +239,15 @@ def env_export(args):
args = _setup_paths(args)
if not _export_check(args):
- print "\n== Checks did not pass, exiting ==\n"
+ _log.error('Checks did not pass, exiting')
sys.exit(0)
- setup_global_and_app_config(args.conf_file)
- setup_storage()
+ globa_config, app_config = setup_global_and_app_config(args.conf_file)
- config, validation_result = read_mediagoblin_config(args.conf_file)
+ setup_storage()
+
connection, db = setup_connection_and_db_from_config(
- config['mediagoblin'], use_pymongo=True)
+ app_config, use_pymongo=True)
_export_database(db, args)
diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css
index d1b891ac..b108cc9e 100644
--- a/mediagoblin/static/css/base.css
+++ b/mediagoblin/static/css/base.css
@@ -4,25 +4,25 @@
font-family: 'Lato';
font-style: normal;
font-weight: 700;
- src: local('Lato Bold'), local('Lato-Bold'), url('http://themes.googleusercontent.com/static/fonts/lato/v1/wkfQbvfT_02e2IWO3yYueQ.woff') format('woff');
+ src: local('Lato Bold'), local('Lato-Bold'), url('../fonts/Lato-Bold.ttf') format('truetype');
}
@font-face {
font-family: 'Lato';
font-style: italic;
font-weight: 400;
- src: local('Lato Italic'), local('Lato-Italic'), url('http://themes.googleusercontent.com/static/fonts/lato/v1/oUan5VrEkpzIazlUe5ieaA.woff') format('woff');
+ src: local('Lato Italic'), local('Lato-Italic'), url('../fonts/Lato-Italic.ttf') format('truetype');
}
@font-face {
font-family: 'Lato';
font-style: italic;
font-weight: 700;
- src: local('Lato Bold Italic'), local('Lato-BoldItalic'), url('http://themes.googleusercontent.com/static/fonts/lato/v1/HkF_qI1x_noxlxhrhMQYED8E0i7KZn-EPnyo3HZu7kw.woff') format('woff');
+ src: local('Lato Bold Italic'), local('Lato-BoldItalic'), url('../fonts/Lato-BoldItalic.ttf') format('truetype');
}
@font-face {
font-family: 'Lato';
font-style: normal;
font-weight: 400;
- src: local('Lato Regular'), local('Lato-Regular'), url('http://themes.googleusercontent.com/static/fonts/lato/v1/9k-RPmcnxYEPm8CNFsH2gg.woff') format('woff');
+ src: local('Lato Regular'), local('Lato-Regular'), url('../fonts/Lato-Regular.woff') format('truetype');
}
body {
@@ -372,4 +372,4 @@ table.media_panel th {
.delete_checkbox_box {
margin-top: 10px;
margin-left: 10px;
-} \ No newline at end of file
+}
diff --git a/mediagoblin/static/fonts/Lato-Bold.ttf b/mediagoblin/static/fonts/Lato-Bold.ttf
new file mode 120000
index 00000000..8b747690
--- /dev/null
+++ b/mediagoblin/static/fonts/Lato-Bold.ttf
@@ -0,0 +1 @@
+../../../extlib/lato/Lato-Bold.ttf \ No newline at end of file
diff --git a/mediagoblin/static/fonts/Lato-BoldItalic.ttf b/mediagoblin/static/fonts/Lato-BoldItalic.ttf
new file mode 120000
index 00000000..20886f02
--- /dev/null
+++ b/mediagoblin/static/fonts/Lato-BoldItalic.ttf
@@ -0,0 +1 @@
+../../../extlib/lato/Lato-BoldItalic.ttf \ No newline at end of file
diff --git a/mediagoblin/static/fonts/Lato-Italic.ttf b/mediagoblin/static/fonts/Lato-Italic.ttf
new file mode 120000
index 00000000..3e4ee80c
--- /dev/null
+++ b/mediagoblin/static/fonts/Lato-Italic.ttf
@@ -0,0 +1 @@
+../../../extlib/lato/Lato-Italic.ttf \ No newline at end of file
diff --git a/mediagoblin/static/fonts/Lato-Regular.ttf b/mediagoblin/static/fonts/Lato-Regular.ttf
new file mode 120000
index 00000000..ff8e9d2c
--- /dev/null
+++ b/mediagoblin/static/fonts/Lato-Regular.ttf
@@ -0,0 +1 @@
+../../../extlib/lato/Lato-Regular.ttf \ No newline at end of file