Exemplo n.º 1
0
 def put(self, item):
     if "" == item["content"]:
         logger.debug(f'content is empty')
         return False
     logger.debug(
         f'PUT {item["content"]} {item["options"]} {item["answer"]} {item["excludes"]}...'
     )
     # 单选题挑战题一致
     if item["category"] == "单选题":
         item["category"] = "挑战题"
     # 判断是否是错误答案的题库条目
     if item["excludes"] != "":
         excludeItem = self.find_excludes_item(item)
         if excludeItem is not None:
             item["excludes"] = item["excludes"] + excludeItem["excludes"]
             self.dataKu.remove(excludeItem)
     try:
         out_file = open("./data1.json", "w", encoding='utf8')
         self.dataKu.append(item)
         json.dump(self.dataKu, out_file, indent=6, ensure_ascii=False)
         out_file.close()
         return True
     except Exception as ex:
         logger.info(ex)
         return False
Exemplo n.º 2
0
    def post(self, item):

        # logger.debug(f'POST {item["content"]} {item["options"]} {item["answer"]} {item["excludes"]}...')
        if "" == item["content"]:
            logger.debug(f'content is empty')
            return None
        # 单选题挑战题一致
        if item["category"] == "单选题":
            item["category"] = "挑战题"

        # logger.debug(f'GET {item["content"]}...')
        # 精确查询答案
        for dataKuItem in self.dataKu:
            if dataKuItem['category'] == item["category"] and dataKuItem[
                    'content'] == item["content"] and dataKuItem[
                        'options'] == item[
                            "options"] and dataKuItem['answer'] != "":
                return dataKuItem
            else:
                continue
        # 精确查询排除答案的条码
        for dataKuItem in self.dataKu:
            if dataKuItem['category'] == item["category"] and dataKuItem[
                    'content'] == item["content"] and dataKuItem[
                        'options'] == item[
                            "options"] and dataKuItem['excludes'] != "":
                return dataKuItem
            else:
                continue
        return None
Exemplo n.º 3
0
 def post_2(self, item):
     # logger.debug(f'POST {item["content"]} {item["options"]} {item["answer"]} {item["excludes"]}...')
     if "" == item["content"]:
         logger.debug(f'content is empty')
         return None
     # 单选题挑战题一致
     if item["category"] == "单选题":
         item["category"] = "挑战题"
     logger.debug(f'GET {item["content"]}...')
     for dataKuItem in self.dataKu:
         if dataKuItem['category'] == item["category"] and dataKuItem['content'] == item["content"] and \
                 dataKuItem[
                     'options'] == item["options"]:
             return dataKuItem
         else:
             continue
     # 如果找不到题目,模糊搜索一次
     # if item["category"] == "挑战题":
     #     for dataKuItem in self.dataKu:
     #         if dataKuItem['category'] == item["category"] and fuzz.ratio(dataKuItem['content'],
     #                                                                      item["content"]) > 70 and fuzz.ratio(dataKuItem['options'], item["options"]) > 80:
     #             return dataKuItem
     #         else:
     #             continue
     return None
Exemplo n.º 4
0
    def find_excludes_item(self, item):

        logger.debug(f'Find excludes item: {item["content"]}...')
        for dataKuItem in self.dataKu:
            if dataKuItem['category'] == item["category"] and dataKuItem['content'] == item["content"] and \
                    dataKuItem[
                        'options'] == item["options"] and item["excludes"] != "":
                return dataKuItem
            else:
                continue
        return None
Exemplo n.º 5
0
 def put(self, item):
     if "" == item["content"]:
         logger.debug(f'content is empty')
         return False
     logger.debug(f'PUT {item["content"]} {item["options"]} {item["answer"]} {item["excludes"]}...')
     # 单选题挑战题一致
     if item["category"] == "单选题":
         item["category"] = "挑战题"
     try:
         out_file = open("./data1.json", "w", encoding='utf8')
         self.dataKu.append(item)
         json.dump(self.dataKu, out_file, indent=6, ensure_ascii=False)
         out_file.close()
         return True
     except Exception as ex:
         logger.info(ex)
         return False
Exemplo n.º 6
0
 def get(self, item, url=None):
     if not url:
         url = self.url
     if "" == item["content"]:
         logger.debug(f'content is empty')
         return None
     logger.debug(f'GET {item["content"]}...')
     try:
         res = requests.post(url=url, headers=self.headers, json=item)
         if 200 == res.status_code:
             logger.debug(f'GET item success')
             # logger.debug(res.text)
             # logger.debug(json.loads(res.text))
             return json.loads(res.text)
         else:
             logger.debug(f'GET item failure')
             return None
     except:
         logger.debug('request faild')
         return None
Exemplo n.º 7
0
    def query_with_content(self, content):

        # logger.debug(f'POST {item["content"]} {item["options"]} {item["answer"]} {item["excludes"]}...')
        if "" == content:
            logger.debug(f'content is empty')
            return None

        logger.debug(f'query with {content}...')
        # 精确查找一次

        answer = ""
        for dataKuItem in self.dataKu:
            if dataKuItem['content'] == content:
                if self.dataKu.count(dataKuItem) == 1:
                    logger.info(
                        f"快点点击!---{dataKuItem['answer']}---{dataKuItem['answer']}---{dataKuItem['answer']}---"
                    )
                    return dataKuItem['answer']
                else:
                    return ""
        return answer
Exemplo n.º 8
0
    def query_with_content(self, content):

        # logger.debug(f'POST {item["content"]} {item["options"]} {item["answer"]} {item["excludes"]}...')
        if "" == content:
            logger.debug(f'content is empty')
            return None

        logger.debug(f'query with {content}...')
        # 精确查找一次
        answer_count = 0
        answer = ""
        for dataKuItem in self.dataKu:
            if dataKuItem['content'] == content:
                answer_count += 1
                answer = dataKuItem['answer']
            else:
                continue
        if answer_count == 1:
            return answer
        else:
            return ""
Exemplo n.º 9
0
 def post_precise(self, item):
     logger.debug(f'POST {item["content"]} {item["options"]} {item["answer"]} {item["excludes"]}...')
     if "" == item["content"]:
         logger.debug(f'content is empty')
         return None
     # 单选题挑战题一致
     if item["category"] == "单选题":
         item["category"] == "挑战题"
     logger.debug(f'GET {item["content"]}...')
     # for dataKuItem in self.dataKu:
     #     if dataKuItem['category'] == item["category"] and dataKuItem['content'] == item["content"] and dataKuItem['options'] == item["options"] and dataKuItem['answer'] == item["answer"]:
     #         return dataKuItem
     #     else:
     #         continue
     if self.dataKu.count(item) == 0:
         return False
     else:
         return True
Exemplo n.º 10
0
 def put(self, item, url=None):
     if not url:
         url = self.url
     if "" == item["content"]:
         logger.debug(f'content is empty')
         return False
     logger.debug(f'PUT {item["content"]} {item["options"]} {item["answer"]} {item["excludes"]}...')
     try:
         res = requests.put(url=url, headers=self.headers, json=item)
         if 201 == res.status_code:
             logger.info('添加新记录')
             return True
         elif 200 == res.status_code:
             logger.info('更新记录')
             return True
         else:
             logger.debug("PUT do nothing")
             return False
     except:
         return False