aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/db/mongo/util.py
diff options
context:
space:
mode:
Diffstat (limited to 'mediagoblin/db/mongo/util.py')
-rw-r--r--mediagoblin/db/mongo/util.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/mediagoblin/db/mongo/util.py b/mediagoblin/db/mongo/util.py
index 4daf616a..f61ae6be 100644
--- a/mediagoblin/db/mongo/util.py
+++ b/mediagoblin/db/mongo/util.py
@@ -290,3 +290,29 @@ class MigrationManager(object):
self.set_current_migration(migration_number)
if post_callback:
post_callback(migration_number, migration_func)
+
+
+##########################
+# Random utility functions
+##########################
+
+
+def atomic_update(table, query_dict, update_values):
+ table.collection.update(
+ query_dict,
+ {"$set": update_values})
+
+
+def check_media_slug_used(db, uploader_id, slug, ignore_m_id):
+ query_dict = {'uploader': uploader_id, 'slug': slug}
+ if ignore_m_id is not None:
+ query_dict['_id'] = {'$ne': ignore_m_id}
+ existing_user_slug_entries = db.MediaEntry.find(
+ query_dict).count()
+ return existing_user_slug_entries
+
+
+def media_entries_for_tag_slug(db, tag_slug):
+ return db.MediaEntry.find(
+ {u'state': u'processed',
+ u'tags.slug': tag_slug})