def handle(self, *args, **options):
        fake = Factory.create()

        min_number = int(options['min_number'])
        max_number = int(options['max_number'])

        users = User.objects.all()[1:]
        questions = Question.objects.all()
        is_correct = (True, False)
        counter = 1
        for q in questions:
            for i in range(0, randint(min_number, max_number)):
                ans = Answer()

                ans.text = fake.paragraph(nb_sentences=randint(2, 4),
                                          variable_nb_sentences=True)
                ans.user = choice(users)
                ans.question = q
                ans.rating = randint(0, 1500)
                ans.is_correct = choice(is_correct)
                ans.id = counter
                counter += 1
                ans.save()
                self.stdout.write('in question [%d] add ans [%d]' %
                                  (q.id, ans.id))
    def fill_db(self):
        for i in range(0, 30):
            usr = User(username='******' + str(i),
                       password='******' + str(i),
                       first_name='User')
            usr.save()
            prof = Profile(avatar='avatar.jpeg', user=usr)
            prof.save()
            try:
                tbag = Tag.objects.get(name='Bucket' + str(i % 20))
                tbag.popularity += 1
            except Exception:
                tbag = Tag(name='Bucket' + str(i % 20), popularity=1)
            tbag.save()

            quest = Question(title=str(i) + 'bucket',
                             text='see my bucket, I have a' + str(10000 - i) +
                             ' bucket remains',
                             author=prof,
                             votes=i)
            quest.save()
            quest.liked.add(prof)
            quest.tag.add(tbag)

            for j in range(0, 20):
                ans = Answer(text='Test answer' + str(i),
                             author=prof,
                             question=quest)
                ans.votes = int(((i + j) * 6) % 40)
                ans.save()
                ans.voted.add(prof)
Example #3
0
def generateAnswers(n):
    for i in range(n):
        start = [
            "Do ", "Get ", "Leave ", "Remove ", "Press ", "Don't ", "Use ",
            "EXTERMINATE!!!! ", "Kill ", "Banish ", "Love ", "Hug ",
            "Complete ", "Do ", "Make ", "Enjoy ", "Start ", "Delete ",
            "Keep Calm "
        ]
        mid = [
            "a barrel roll", "your mom", "the configs", "the Force",
            "the attack", "that RED button", "your wits", "WD-40", "duct tape",
            "card", "EXTERMINATE!!! ", "some noise", "the show", "and go on"
        ]
        end = [
            ", Luke.", ", noob!", ", man!", " or you're screwed.", "!",
            "br@h!", "EXTERMINATE?!"
        ] + [".", "?", "!"] * 2
        ansText = random.choice(start) + random.choice(mid) + random.choice(
            end) + '(' + str(random.randint(1, 1000000)) + ')'
        author = UserAccount.objects.all().order_by('?')[0]
        approved = random.choice([True] + 5 * [False])
        question = Question.objects.all().order_by('?')[0]
        ans = Answer(content=ansText,
                     author=author,
                     approved=approved,
                     question=question)
        ans.save()
        if i % 500 == 0:
            print i
Example #4
0
def question(request, question_id):
    if request.method == "GET":
        q = get_object_or_404(Question, pk=question_id)
        a = q.answer_set.all()
        answer_list = paginator(request, a, 2)
        form = answerform()
        return render(
            request, 'ask/question.html', {
                'question': q,
                'answer_list': answer_list,
                'tags': Tag.objects.besters(),
                'question_list': answer_list,
                'users': Author.objects.all(),
                'form': form,
            })
    if request.method == "POST":
        q = get_object_or_404(Question, pk=question_id)
        form = answerform(request.POST)
        if form.is_valid():
            a = Answer(question=q,
                       text=form.cleaned_data['text'],
                       title=form.cleaned_data['title'],
                       author=request.user.author,
                       correct=False,
                       pub_date=timezone.now())
            a.save()
            return HttpResponseRedirect(
                reverse('ask:question', kwargs={'question_id': question_id}))
Example #5
0
 def _fill_answer(self):
     print('FILLING ANSWER MODEL...')
     for ix in range(500):
         temp_answer = Answer(question=np.random.choice(
             Question.objects.all()),
                              text='Answer{}'.format(ix),
                              rating=np.random.normal(scale=20),
                              creation_date=timezone.now(),
                              edit_date=timezone.now(),
                              is_correct=False)
         temp_answer.save()
     print('ADDED {} ANSWERS'.format(Answer.objects.count()))
Example #6
0
def answer(request):
    if (request.method == "POST"):
        form = NewAnswerForm(request.POST)
        if (form.is_valid):
            uscontent = request.POST["content"]
            ususer = User.objects.get(username=request.user.username)
            usquestionID = int(request.POST["question"])
            usquestion = Question.objects.get(id=usquestionID)
            answ = Answer(content=uscontent,
                          question=usquestion,
                          author=ususer)
            answ.save()
            return questionID(request, usquestionID)
    else:
        return redirect('/question')
Example #7
0
def detail(request,question_id):
    if request.method == "POST":
        if not request.user.is_authenticated:
            return redirect('askCommunity:login')
        question = Question.objects.get(question_id = question_id)
        answer = Answer()
        answer.question_id = question
        answer.answer = request.POST.get('answer')
        answer.answered_by = Profile.objects.get(user = request.user)
        answer.save()
    else:
        question = Question.objects.get(question_id = question_id)
    all_answers = Answer.objects.filter(question_id = question_id)
    context = {'question' : question,
    'answers' : all_answers}
    return render(request,'detail.html',context = context)
Example #8
0
def ajaxAnswer(request):
    if request.is_ajax():
        dataJSON = simplejson.loads(request.raw_post_data)
        textData = dataJSON["text"]
        userData = User.objects.get(id=dataJSON["author"])
        questionData = Question.objects.get(id=dataJSON["question"])
        answ = Answer(content=textData, question=questionData, author=userData)
        answ.save()
        notif = Notifications(user=questionData.author,
                              answer=answ,
                              answer_comment=False)
        notif.save()
        mailNotify(notif)
        return HttpResponse("success")
    else:
        redirect('/question')
Example #9
0
def add_answer(request):
    try:
        data = request.POST
        qid = int(data['qid'])
        content = data['content']
        a = Answer(text=content, author=request.profile, question_id=qid)
        a.save()

        ans_html = str(render_to_response('a.html', {'answer': a}).content)
        post('https://alex-erm.ru/pub?id=' + str(qid), ans_html)

        return JsonResponse(data={'status': 'OK', 'id': a.id})
    except Exception:
        return JsonResponse(data={
            'status': 'error',
            'msg': 'incorrect request'
        })
Example #10
0
    def handle(self, *args, **options):
        fake = Factory.create()

        min_number = int(options['min_number'])
        max_number = int(options['max_number'])

        users = User.objects.all()[1:]
        questions = Question.objects.all()

        for q in questions:
            for i in range(0, randint(min_number, max_number)):
                ans = Answer()
                ans.text = fake.paragraph(nb_sentences=randint(2, 10),
                                          variable_nb_sentences=True)
                ans.auth = choice(users)
                ans.question = q
                ans.save()
Example #11
0
def answer_add(request):
    ask_id = str(request.META.get('HTTP_REFERER', "/").split('/')[-2])
    answer = Answer()
    # return HttpResponse(ask_id)
    answer.ask_id = ask_id
    if request.method == 'POST':
        af = AnswerForm(request.POST)
        if af.is_valid():
            # 获取表单内容
            content = af.cleaned_data['answer']
            answer.content = content
            answer.save()
            return render_to_response('ask/answer_add_done.html',
                                      {'content': content})
    else:
        af = AnswerForm()
    return render_to_response('ask/answer_add.html', {'af': af})
Example #12
0
def setup():
    f = Faker()
    tags = f.words(nb=20)
    for i in tags:
        a = Tag(tag=i)
        a.save()

    for i in range(100):
        tt = f.text(50)
        te = f.text()
        a = Question(title=tt, text=te, author_id=randint(2, 4))
        a.save()
        a.tags.add(randint(1, 20), randint(1, 20), randint(1, 20))

    for i in range(300):
        te = f.text()
        an = Answer(text=te,
                    author_id=randint(2, 4),
                    question_id=randint(1, 100))
        an.save()
Example #13
0
def generate_answers(n):
    arr = open('/home/hase/technopark/web/AskZaytsev/scripts/text.txt',
               'r').read().split(' ')
    asize = len(arr)
    ucount = Profile.objects.count()
    qcount = Question.objects.count()

    for i in range(0, n):
        print(i)
        word_cnt = random.randint(20, 50)
        text = ''
        title = arr[random.randint(0, asize - 1)] + ' ' + str(i)
        own = Profile.objects.filter(id=random.randint(1, ucount))[0]

        for j in range(0, word_cnt):
            text += arr[random.randint(0, (asize - 1))] + ' '

        q = Question.objects.filter(id=random.randint(1, qcount))[0]
        a = Answer(owner=own, question=q, title=title, text=text)
        a.save()
    print('ans')
Example #14
0
 def handle(self, *args, **options):
     User.objects.all().delete()
     user = User.objects.create_user("nuf", "*****@*****.**", "nuf")
     user.save()
     tagmas = [
         'ActionScript', 'Ada', 'Bash', '(Visual) Basic', 'Bourne Shell',
         'Bro', 'C', 'C Shell', 'C#', 'C++', 'Curl', 'Fortran', 'Go',
         'Haskell', 'Java', 'JavaScript', 'Lisp', 'Maple', 'Mathematica',
         'MATLAB', 'MOO', 'Objective-C', 'Pascal', 'Perl', 'PHP', 'Python',
         'Ruby', 'Simulink', 'Verilog', 'VHDL'
     ]
     Question.objects.all().delete()
     Tags.objects.all().delete()
     for i in range(1, 10):
         q = Question(
             author=user,
             text=
             'In eget neque in turpis suscipit tristique vitae nec mauris. Vestibulum auctor, turpis non lobortis gravida, nisi est vulputate lectus, ut dictum erat augue ut erat.',
             title='title' + str(i),
             question_id=i,
         )
         q.save()
         t1 = Tags(name=tagmas[(i - 1) * 2])
         t2 = Tags(name=tagmas[(i - 1) * 2 + 1])
         t1.save()
         t2.save()
         t1.question.add(q)
         t2.question.add(q)
         for j in range(1, 10):
             a = Answer(
                 text=
                 'In eget neque in turpis suscipit tristique vitae nec mauris. Vestibulum auctor, turpis non lobortis gravida, nisi est vulputate lectus, ut dictum erat augue ut erat. In fringilla tincidunt dolor, at pulvinar lacus cursus nec. Pellentesque ultrices eget odio ac ullamcorper. Duis turpis orci, tempor vel massa id, posuere condimentum purus. Sed rutrum magna non nisi posuere interdum. Vivamus eget diam dictum mi malesuada accumsan.',
                 author=user,
                 question=q,
             )
             a.save()
Example #15
0
    def handle(self, *args, **options):
        user_range = 25
        ask_range = 37
        answers_range = 97

        f_name = [
            'Red', 'Mad', 'Dummy', 'Crazy', 'Big', 'Black', 'Lonely', 'Shiz',
            'Drunken', 'Wicked', 'Brainless', 'Rich', 'Stubborn', 'Stupid',
            'Fat', 'Wooden', 'Donald', 'American', 'Dead', 'Lucky', 'Night'
        ]
        l_name = [
            'Sailor', 'Rat', 'Man', 'Rabbit', 'Donkey', 'Policeman', 'Child',
            'Penguin', 'Joker', 'Lawmaker', 'Judge', 'Iron', 'President',
            'Trump', 'Duck', 'Timmy', 'Kartman', 'Kenny', 'Orc', 'Illuminati',
            'Band', 'Slave', 'Coffee', 'Aviato', 'Redneck', 'Camper', 'King'
        ]

        for i in range(0, user_range):
            username = u'{0}{1}'.format(
                f_name[random.randrange(0, len(f_name))],
                l_name[random.randrange(0, len(l_name))])
            email = u'{0}@e-corp.com'.format(username)

            password = u'{0}123'.format(username)

            try:
                User.object.create_user(username=username,
                                        email=email,
                                        password=password)
            except:
                username = u'{0}{1}'.format(username, i)
                email = u'{0}@e-corp.com'.format(username)
                User.object.create_user(username=username,
                                        email=email,
                                        password=password)

        tags_list = [
            'LOL',
            'mad',
            'wazzzup',
            'DonaldTrump',
            'luxury',
            'shaurma',
            'Skynet',
            'TheyAreWatchingYou',
            'illuminati',
            'Futurama',
            'Bender',
            'BlackJack',
            'TacoBell',
            'BreakingBad',
        ]

        for tag in tags_list:
            try:
                new_tag = Tag()
                new_tag.title = tag
                new_tag.save()
            except:
                pass

        f_question = ['How to', 'Why to', 'Can I', 'What if']
        l_question = ['fly', 'run', 'jump', 'degrade', 'capture the world']

        users = User.object.all()
        users_count = len(users)

        tags_list = Tag.objects.all()
        tags_count = len(tags_list)

        for i in range(0, ask_range):
            ask = Ask()

            random_pk = random.randrange(1, users_count)
            ask.author = users[random_pk]
            ask.question = u'{0} {1}'.format(
                f_question[random.randrange(0, len(f_question))],
                l_question[random.randrange(0, len(l_question))])
            ask.text = u'{0} question by {1}'.format(ask.question,
                                                     ask.author.username)

            ask_tags = []
            tags_range = random.randrange(1, 4)
            for i in range(0, tags_range):
                ask_tags.append(tags_list[random.randrange(0, tags_count)])

            ask.rating = random.randrange(
                -10, 30)  # temporary remove later by UserVote
            ask.save()
            ask.tags = set(ask_tags)
            ask.save()

        asks = Ask.objects.all()
        asks_count = len(asks)

        f_answer = ['Just', 'I dont', 'May be', 'You should']
        l_answer = ['do it', 'know', 'know', 'forget it']

        for i in range(0, answers_range):
            answer = Answer()

            random_pk = random.randrange(1, users_count)
            answer.author = users[random_pk]

            ask_pk = random.randrange(1, asks_count)
            answer.ask = asks[ask_pk]

            answer.text = u'{0} {1}'.format(
                f_answer[random.randrange(0, len(f_answer))],
                l_answer[random.randrange(0, len(l_answer))])
            answer.save()
Example #16
0
    def handle(self, *args, **options):
        #        User.objects.all().delete()
        #        Tag.objects.all().delete()
        #        Profile.objects.all().delete()
        #        Question.objects.all().delete()
        #        Answer.objects.all().delete()
        #        Like.objects.all().delete()

        try:
            u = User.objects.get(username='******')
        except:
            u = User.objects.create(username='******',
                                    first_name='test',
                                    email='*****@*****.**')
            u.set_password('test')
            u.save()
            p = Profile.objects.create(user_id=u.id, rating=20)

        item_list = []

        for i in range(0, int(options['users'])):
            u = User(username=randomword(9) + str(i),
                     first_name=randomword(3) + str(i),
                     email=randomword(10) + str(i) + '@aithelle.com')
            item_list.append(u)
            if i % 10000 == 0:
                User.objects.bulk_create(item_list)
                item_list = []

        User.objects.bulk_create(item_list)
        um = User.objects.aggregate(Min('id'), Max('id'))

        item_list = []

        for i in range(0, int(options['users'])):
            p = Profile(user_id=um['id__max'] - i,
                        rating=random.randint(0, 20))
            item_list.append(p)
            if i % 10000 == 0:
                Profile.objects.bulk_create(item_list)
                item_list = []
        Profile.objects.bulk_create(item_list)
        print 'Users created\n'

        item_list = []
        for i in range(0, int(options['tags'])):
            t = Tag(text=randomword(5))
            item_list.append(t)
            if i % 10000 == 0:
                Tag.objects.bulk_create(item_list)
                item_list = []
        Tag.objects.bulk_create(item_list)

        tm = Tag.objects.aggregate(Min('id'), Max('id'))

        print 'Tags created\n'

        for i in range(0, int(options['questions'])):
            q = Question(author_id=random.randint(um['id__min'],
                                                  um['id__max']),
                         title=randomword(20),
                         text=randomword(10) + ' ' + randomword(20),
                         rating=random.randint(-100, 100))
            q.save()
            q.tags.add(random.randint(tm['id__min'], tm['id__max']), \
                random.randint(tm['id__min'], tm['id__max']), \
                random.randint(tm['id__min'], tm['id__max']))

        qm = Question.objects.aggregate(Min('id'), Max('id'))

        print 'Questions created\n'

        item_list = []
        for i in range(0, int(options['answers'])):
            a = Answer(author_id=random.randint(um['id__min'], um['id__max']),
                       question_id=random.randint(qm['id__min'],
                                                  qm['id__max']),
                       is_right=random.randint(0, 1),
                       text=randomword(10) + ' ' + randomword(10),
                       rating=random.randint(-100, 100))
            item_list.append(a)
            if i % 10000 == 0:
                Answer.objects.bulk_create(item_list)
                item_list = []

        Answer.objects.bulk_create(item_list)

        am = Answer.objects.aggregate(Min('id'), Max('id'))

        print 'Answers created\n'

        item_list = []
        for i in range(0, int(options['likes'])):
            item_type = random.choice(['question', 'answer'])
            if item_type == 'question':
                item = random.randint(qm['id__min'], qm['id__max'])
            else:
                item = random.randint(am['id__min'], am['id__max'])
            l = Like(author_id=random.randint(um['id__min'], um['id__max']),
                     item_type=item_type,
                     item=item,
                     is_like=random.randint(0, 1))
            item_list.append(l)
            if i % 20000 == 0:
                Like.objects.bulk_create(item_list)
                item_list = []
        Like.objects.bulk_create(item_list)

        print 'Likes created\n'