|
@@ -0,0 +1,79 @@
|
|
|
|
+from datetime import timedelta
|
|
|
|
+
|
|
|
|
+from django.utils import timezone
|
|
|
|
+
|
|
|
|
+from misago.core.utils import slugify
|
|
|
|
+
|
|
|
|
+from misago.threads.models import Thread, Post
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+def post_thread(forum, title='Test thread', weight=0, poster='Tester',
|
|
|
|
+ is_moderated=False, is_hidden=False, is_closed=False,
|
|
|
|
+ started_on=None):
|
|
|
|
+ started_on = started_on or timezone.now()
|
|
|
|
+
|
|
|
|
+ kwargs = {
|
|
|
|
+ 'forum': forum,
|
|
|
|
+ 'weight': weight,
|
|
|
|
+ 'title': title,
|
|
|
|
+ 'slug': slugify(title),
|
|
|
|
+ 'started_on': started_on,
|
|
|
|
+ 'last_post_on': started_on,
|
|
|
|
+ 'is_moderated': is_moderated,
|
|
|
|
+ 'is_hidden': is_hidden,
|
|
|
|
+ 'is_closed': is_closed,
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ try:
|
|
|
|
+ kwargs.update({
|
|
|
|
+ 'starter': poster,
|
|
|
|
+ 'starter_name': poster.username,
|
|
|
|
+ 'starter_slug': poster.slug,
|
|
|
|
+ 'last_poster': poster,
|
|
|
|
+ 'last_poster_name': poster.username,
|
|
|
|
+ 'last_poster_slug': poster.slug,
|
|
|
|
+ })
|
|
|
|
+ except AttributeError:
|
|
|
|
+ kwargs.update({
|
|
|
|
+ 'starter_name': poster,
|
|
|
|
+ 'starter_slug': slugify(poster),
|
|
|
|
+ 'last_poster_name': poster,
|
|
|
|
+ 'last_poster_slug': slugify(poster),
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+ thread = Thread.objects.create(**kwargs)
|
|
|
|
+ forum.synchronize()
|
|
|
|
+ forum.save()
|
|
|
|
+ return thread
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+def reply_thread(thread, poster="Tester", message='I am test message',
|
|
|
|
+ is_moderated=False, is_hidden=False, is_reported=False,
|
|
|
|
+ posted_on=None, poster_ip='127.0.0.1'):
|
|
|
|
+ posted_on = posted_on or thread.last_post_on + timedelta(minutes=5)
|
|
|
|
+
|
|
|
|
+ kwargs = {
|
|
|
|
+ 'forum': thread.forum,
|
|
|
|
+ 'thread': thread,
|
|
|
|
+ 'original': message,
|
|
|
|
+ 'parsed': message,
|
|
|
|
+ 'checksum': 'nope',
|
|
|
|
+ 'poster_ip': poster_ip,
|
|
|
|
+ 'posted_on': posted_on,
|
|
|
|
+ 'updated_on': posted_on,
|
|
|
|
+ 'is_moderated': is_moderated,
|
|
|
|
+ 'is_hidden': is_hidden,
|
|
|
|
+ 'is_reported': is_reported,
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ try:
|
|
|
|
+ kwargs.update({'poster': poster, 'poster_name': poster.username})
|
|
|
|
+ except AttributeError:
|
|
|
|
+ kwargs.update({'poster_name': poster})
|
|
|
|
+
|
|
|
|
+ post = Post.objects.create(**kwargs)
|
|
|
|
+ thread.synchronize()
|
|
|
|
+ thread.save()
|
|
|
|
+ thread.forum.synchronize()
|
|
|
|
+ thread.forum.save()
|
|
|
|
+ return post
|