示例#1
0
class MergerUpdater:
    def merge_duplicates(self, duplicates):
        duplicates = duplicates.order_by('created_at')
        merges_count = 0
        while len(duplicates) > 1:
            merges_count += 1
            case1, case2 = duplicates[0], duplicates[1]
            new_data = case2.serialize()
            e_id = case2.id
            case2.delete()
            self.update_if_needed(case1, new_data)

            duplicates = duplicates.exclude(id=e_id)

    def update_case(self, case):

        from oi_sud.cases.parsers.rf import FirstParser, SecondParser
        from oi_sud.cases.parsers.moscow import MoscowParser

        try:
            parser = None
            codex = 'koap' if case.type == 1 else 'uk'
            if case.court.site_type == 1:
                parser = FirstParser(court=case.court,
                                     stage=case.stage,
                                     codex=codex)
            elif case.court.site_type == 2:
                parser = SecondParser(court=case.court,
                                      stage=case.stage,
                                      codex=codex)
            elif case.court.site_type == 3:
                parser = MoscowParser(stage=case.stage, codex=codex)
示例#2
0
def test_correct_result_text_2inst(moscow_courts, koap_articles):
    url = 'https://mos-gorsud.ru/mgs/services/cases/review-not-yet/details/a0d44509-e1ce-41ad-af55-542d164c3766'
    case_info = MoscowParser(stage=2).get_raw_case_information(url)
    print(case_info)
    assert case_info
    assert case_info['events'] != []
    assert case_info['result_text'] != ''
    assert 'без удовлетворения' in case_info['result_text']
示例#3
0
def test_correct_result_text_1inst(moscow_courts, koap_articles):
    url = 'https://mos-gorsud.ru/rs/meshchanskij/services/cases/admin/details/ff082d8f-d712-4661-b6f0-165e7c11b7df'
    case_info = MoscowParser(stage=1).get_raw_case_information(url)
    print(case_info)
    assert case_info
    assert case_info['events'] != []
    assert case_info['result_text'] != ''
    assert 'без удовлетворения' not in case_info['result_text']
示例#4
0
def test_get_raw_case_info(moscow_courts, koap_articles):
    url = 'https://www.mos-gorsud.ru/rs/nikulinskij/services/cases/admin/details/2163d66f-6364-4290-986f-98ee6b16b658'
    # url = 'https://mos-gorsud.ru/rs/timiryazevskij/services/cases/admin/details/4ff27edb-bf19-4526-ac73-ff89095cf666'#'https://mos-gorsud.ru/rs/timiryazevskij/services/cases/admin/details/0e45130b-8365-4c45-9279-ed69af0c6552'#'https://mos-gorsud.ru/rs/tverskoj/services/cases/admin/details/' \
    # 'c694e8b1-d345-4933-af40-25a3ad4ba819?documentMainArticle=%D1%81%D1%82.+19.34%2C+%D0%A7.2&formType=fullForm'
    case_info = MoscowParser(stage=1).get_raw_case_information(url)
    print(case_info['defenses'])
    assert case_info
    assert case_info['events'] != []
    assert case_info['result_text'] != ''
示例#5
0
def test_save_case(moscow_courts, koap_articles):
    cases_urls = [
        'https://mos-gorsud.ru/rs/timiryazevskij/services/cases/admin/details/4ff27edb-bf19-4526-ac73-ff89095cf666',
        'https://www.mos-gorsud.ru/rs/nikulinskij/services/cases/admin/details/2163d66f-6364-4290-986f-98ee6b16b658'
    ]
    url = 'https://mos-gorsud.ru/mgs/search?courtAlias=&uid=&instance=1&processType=3&codex=ст.+19.34%2C+Ч.2'
    # cases_urls = [
    #     'https://mos-gorsud.ru/rs/meshchanskij/services/cases/admin/'
    #     'details/e759cbf7-cacd-4642-91c1-7a8479cfe270?documentMainArticle='
    #     '%D1%81%D1%82.+19.34%2C+%D0%A7.2&formType=fullForm',
    #     'https://mos-gorsud.ru/rs/tverskoj/services/cases/admin/'
    #     'details/c694e8b1-d345-4933-af40-25a3ad4ba819?'
    #     'documentMainArticle=%D1%81%D1%82.+19.34%2C+%D0%A7.2&formType=fullForm']
    article = CodexArticle.objects.filter(article_number=19.34, part=2).first()
    MoscowParser(url=url, stage=1, codex='koap',
                 article=article).save_cases(urls=cases_urls)
    assert (len(Case.objects.all()) == 2)
示例#6
0
    def handle(self, *args, **options):

        urls_list = options['urls'].split(', ')
        if not urls_list:
            print('Got no urls')
            return

        parser_type = options['type']
        if parser_type not in ['rf', 'moscow']:
            print('Please specify rf or moscow')
            return

        if parser_type == 'moscow':
            MoscowParser(stage=1, codex='koap').save_cases(urls=urls_list)
        elif parser_type == 'rf':
            # TODO: get court from url, then use first or second parser
            print('Not implemented yet')
            return
示例#7
0
 def handle(self, *args, **options):
     s = 'Гаврилов С.В. (Ст. 282.1, Ч. 2; Ст. 282.1, Ч. 1), Дубовик М.С. (Ст. 282.1, Ч. 1; Ст. 282.1, Ч. 2), ' \
         'Карамзин П.А. (Ст. 282.1, Ч. 2; Ст. 282.1, Ч. 1), Костыленков Р.Д. (Ст. 282.1, Ч. 2; Ст. 282.1, Ч. 1), ' \
         'Крюков В.В. (Ст. 282.1, Ч. 1; Ст. 282.1, Ч. 2), Павликова А.Д. (Ст. 282.1, Ч. 1; Ст. 282.1, Ч. 2), ' \
         'Полетаев Д.В. (Ст. 282.1, Ч. 1; Ст. 282.1, Ч. 2), Рощин М.В. (Ст. 282.1, Ч. 2; Ст. 282.1, Ч. 1)'
     MoscowParser().get_uk_defenses(s)
示例#8
0
def test_urls_getter(koap_articles):
    url = 'https://mos-gorsud.ru/mgs/search?courtAlias=&uid=&instance=1&processType=3&codex=ст.+19.34%2C+Ч.2'
    article = CodexArticle.objects.filter(article_number=19.34, part=2).first()
    urls = MoscowParser(url=url, stage=1, codex='koap',
                        article=article).get_all_cases_urls(limit_pages=True)
    assert len(urls)