Example #1
0
    def get(self):
        # 本来はこうやって取る
        #instr = self.request.get('question')
        instr = '{"Title":"この状況で何を切る??", "Detail":"起家で迎えた東一局、いきなり迷う配牌が来ました。¥n三色を狙いたいのですが、何を切れば良い?", "Bakyo":1, "Honba":1, "Cha":1, "Junme":16, "Tenbo":30000, "Tehai":[14,65,16,24,75,26,34,85,36,41,41,41,46], "Dora":[44], "Tsumo":47, "Author":"saito"}'
        in_question = simplejson.loads(instr)

        #for check parameter
        author = in_question['Author']
        title = in_question['Title']
        detail = in_question['Detail']
        bakyo = in_question['Bakyo']
        honba = in_question['Honba']
        cha = in_question['Cha']
        junme = in_question['Junme']
        tenbo = in_question['Tenbo']
        tehai = in_question['Tehai']
        tsumo = in_question['Tsumo']
        dora = in_question['Dora']
        logging.debug(junme)
        logging.debug(tenbo)
        logging.debug(dora)

        # 問題を1件追加
        question = Question()
        #question.no = int(self.request.get('no'))
        question.author = author
        question.title = title
        question.detail = detail
        question.bakyo = bakyo
        question.honba = honba
        question.cha = cha
        question.junme = junme
        question.tenbo = tenbo
        question.tehai = tehai
        question.tsumo = tsumo
        question.dora = dora
        question.put()

        #        question = Question()
        #        question.no = int(self.request.get('no'))
        #        question.author = self.request.get('author')
        #        question.situation = self.request.get('situation')
        #        question.tehai = self.request.get('tehai')
        #        question.tsumo = int(self.request.get('tsumo'))
        #        question.dora = int(self.request.get('dora'))
        #        question.put()

        #        self.redirect('/')

        response_data = {}
        response_data['No'] = question.key().id()
        response_data['Date'] = str(question.date)

        # レスポンスデータ作成
        resp = _ResponseFormat.create("PutQuestion", True, response_data)

        # レスポンス送信
        send_response(self, resp)
Example #2
0
def import_data(questions, categories, answers):
    categories_dict = {}
    num_lines = sum(1 for line in open(categories))
    with open(categories, newline="") as csv_file:
        reader = csv.reader(csv_file)
        for row in tqdm(reader, desc="Reading categories", total=num_lines):
            id_ = int(row[0])
            category = row[2]

            categories_dict[id_] = category

    if questions != "skip":
        num_lines = sum(1 for line in open(questions))
        with open(questions, newline="") as csv_file:
            reader = csv.reader(csv_file)

            it = tqdm(reader, desc="Reading questions", total=num_lines)
            for i, row in enumerate(it):
                try:
                    id_ = int(row[0])
                    category_id = int(row[3])

                    question = Question(meta={"id": id_})

                    question.date = row[1]
                    question.category = categories_dict[category_id]
                    question.title = row[4]
                    question.body = "\n".join(row[5:])

                    question.save()
                except (IndexError, ValueError):
                    continue

    if answers != "skip":
        with open(answers, newline="") as csv_file:
            reader = csv.reader(csv_file)

            it = tqdm(reader, desc="Reading answers")
            for i, row in enumerate(it):
                try:
                    question_id = int(row[3])
                    question = Question.get(id=question_id)
                    if question.answers is None:
                        question.answers = row[4]
                    else:
                        question.answers += "\n\n" + row[4]
                    question.save()
                except (IndexError, ValueError, NotFoundError):
                    continue
def process_question_items(content):
    """
    Process response and generate dictionary with questions and URL
    :param content:
    :return:
    """
    questions = list()
    if "items" in content:
        items = content["items"]
        for item in items:
            question = Question()
            question.id = item['question_id']
            question.title = item['title']
            question.link = item['link']
            question.tags = item['tags']
            question.is_answered = item['is_answered']
            question.answer_count = item['answer_count']
            questions.append(question)
    return questions