import requests
import json
import time
from datetime import date, timedelta


"""
    Classe RegistroCivil: classe para conexão com a API da Transparência do Registro Civil.

    Métodos:
        => obitos:
            => parametros:
                => data_inicio (str): data inicial da pesquisa no formato YYYY-MM-DD
                => data_fim (str): data final da pesquisa no formato YYYY-MM-DD
                => uf (str): sigla do estado a ser pesquisado
            => retorno:
                => JSON contendo o total de óbitos no período indicado em cada município do estado.
"""


class RegistroCivil:
    def __init__(self):
        self.url_base = "https://transparencia.registrocivil.org.br/api"
        self.timestamp = time.strftime("%Y-%m-%dT%H:%M:%S", time.localtime())

    def obitos(self, data_inicio, data_fim, uf):
        rota = "/record/death"
        cabecalhos = {
            "Host": "transparencia.registrocivil.org.br",
            "Connection": "keep-alive",
            "Accept": "application/json, text/plain, */*",
            "recaptcha": "<KEY>",
            "X-CSRF-TOKEN": "<KEY>",
            "X-Requested-With": "XMLHttpRequest",
            "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36",
            "X-XSRF-TOKEN": "<KEY>",
            "Sec-Fetch-Site": "same-origin",
            "Sec-Fetch-Mode": "cors",
            "Sec-Fetch-Dest": "empty",
            "Referer": "https://transparencia.registrocivil.org.br/registros",
            "Accept-Encoding": "gzip, deflate, br",
            "Accept-Language": "pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7",
            "Cookie": "XSRF-TOKEN=<KEY>; _session=eyJpdiI6IjFaMjVJNTFyekJVRzVlN3NHR2pPQWc9PSIsInZhbHVlIjoibE1wUlBzcEdaSUhiOGNrUzhSNmI0Wnc4TWFpK1N6OEtzRWQ2ZnpwNnRheHRiQ1JLWVZKRkxcL2JpTUx2d3I3VkUiLCJtYWMiOiJkZGY5YzVmZDcxNDBiOWVjM2ZhMDY4NWQ4MDBlM2I2MGU3MmYxZjA5MjU4MDQzMDEzNGJjNjQzYTU5OTBjMzc4In0%3D",
        }
        busca = "?start_date=" + data_inicio + "&end_date=" + data_fim + "&state=" + uf
        requisicao = requests.get(
            self.url_base + rota + busca, headers=cabecalhos
        ).json()
        return requisicao

import requests
import json
import time
from datetime import date, timedelta


"""
    Classe RegistroCivil: classe para conexão com a API da Transparência do Registro Civil.

    Métodos:
        => obitos:
            => parametros:
                => data_inicio (str): data inicial da pesquisa no formato YYYY-MM-DD
                => data_fim (str): data final da pesquisa no formato YYYY-MM-DD
                => uf (str): sigla do estado a ser pesquisado
            => retorno:
                => JSON contendo o total de óbitos no período indicado em cada município do estado.
"""


class RegistroCivil:
    def __init__(self):
        self.url_base = "https://transparencia.registrocivil.org.br/api"
        self.timestamp = time.strftime("%Y-%m-%dT%H:%M:%S", time.localtime())

    def obitos(self, data_inicio, data_fim, uf):
        rota = "/record/death"
        cabecalhos = {
            "Host": "transparencia.registrocivil.org.br",
            "Connection": "keep-alive",
            "Accept": "application/json, text/plain, */*",
            "recaptcha": "<KEY>",
            "X-CSRF-TOKEN": "<KEY>",
            "X-Requested-With": "XMLHttpRequest",
            "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36",
            "X-XSRF-TOKEN": "<KEY>",
            "Sec-Fetch-Site": "same-origin",
            "Sec-Fetch-Mode": "cors",
            "Sec-Fetch-Dest": "empty",
            "Referer": "https://transparencia.registrocivil.org.br/registros",
            "Accept-Encoding": "gzip, deflate, br",
            "Accept-Language": "pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7",
            "Cookie": "XSRF-TOKEN=<KEY>; _session=eyJpdiI6IjFaMjVJNTFyekJVRzVlN3NHR2pPQWc9PSIsInZhbHVlIjoibE1wUlBzcEdaSUhiOGNrUzhSNmI0Wnc4TWFpK1N6OEtzRWQ2ZnpwNnRheHRiQ1JLWVZKRkxcL2JpTUx2d3I3VkUiLCJtYWMiOiJkZGY5YzVmZDcxNDBiOWVjM2ZhMDY4NWQ4MDBlM2I2MGU3MmYxZjA5MjU4MDQzMDEzNGJjNjQzYTU5OTBjMzc4In0%3D",
        }
        busca = "?start_date=" + data_inicio + "&end_date=" + data_fim + "&state=" + uf
        requisicao = requests.get(
            self.url_base + rota + busca, headers=cabecalhos
        ).json()
        return requisicao

Classe RegistroCivil: classe para conexão com a API da Transparência do Registro Civil.      Métodos:         => obitos:             => parametros:                 => data_inicio (str): data inicial da pesquisa no formato YYYY-MM-DD                 => data_fim (str): data final da pesquisa no formato YYYY-MM-DD                 => uf (str): sigla do estado a ser pesquisado             => retorno:                 => JSON contendo o total de óbitos no período indicado em cada município do estado.