示例#1
0
 def get_clan_members(self, connection, clan_id, app_id):
     url = 'http://api.worldoftanks.eu/wgn/clans/info/?application_id={app_id}&clan_id={clan_id}' \
         .format(app_id=app_id, clan_id=clan_id)
     data = RequestUtils.retrieve_json(url)
     clan_data = data['data'][clan_id]
     members = clan_data['members']
     clan_details = {'clan_name': clan_data['name'], 'clan_tag': clan_data['tag'], 'clan_id': clan_id, 'emblems': clan_data['emblems']}
     return members, clan_details
示例#2
0
def main(json_param):
    const.PARAM_NODO = json_param['nodo']
    const.PARAM_REGION = json_param['region']
    const.URL_FORMADA = const.URL_NODO_BASE.format(const.PARAM_NODO,
                                                   const.PARAM_REGION)

    json_encabezado = RequestUtils.obtener_data_request_get(
        const.URL_FORMADA).json()

    # obtiene toda la informacion de todos los encabezados como peliculas, series y documentales
    lista_series_en_encabezado = JsonScraping.obtencion_lista_result_series_encabezado(
        json_encabezado)

    # se obtienen los group id de las series
    lista_result_serie = JsonScraping.obtencion_lista_result_series_con_group_id(
        lista_series_en_encabezado)

    # buscamos y establecemos el "id serie ag" de cada serie
    lista_result_serie = JsonScraping.obtencion_id_serie_ag_mediante_group_id(
        lista_result_serie)

    # buscamos los capitulos de cada serie por medio de web scrapping en la tabla html
    lista_result_serie = HtmlScraping.obtencion_capitulos_temporadas_por_id_serie_ag(
        lista_result_serie)

    # validacion de lista de capitulos y de url de imagenes
    for result_serie in lista_result_serie:
        result_serie.numero_total_de_capitulos = len(
            result_serie.lista_de_episodios)
        result_serie = ValidacionEpisodiosUtils.establecer_numero_de_capitulos_a_int(
            result_serie)
        result_serie = ValidacionEpisodiosUtils.obtencion_orden_total_de_temporadas_y_episodios(
            result_serie)
        result_serie = ValidacionEpisodiosUtils.validar_capitulos_faltantes_por_temporada(
            result_serie)
        result_serie = ValidacionEpisodiosUtils.establecer_validacion_result_capitulos_faltantes(
            result_serie)
        result_serie.lista_validaciones_url_imagenes_por_revisar = RequestUtils.validar_lista_url_imagenes(
            result_serie.lista_validaciones_url_imagenes_por_revisar)

    # genera el json final con las validaciones finales
    json_validacion = JsonUtils.generar_json_result(lista_result_serie)

    print(json_validacion)
示例#3
0
    def obtencion_id_serie_ag_mediante_group_id(
            lista_result_serie: list[ResultSerie] = []):

        for result_serie in lista_result_serie:

            result_serie.url_obtencion_data_id_serie_ag = const.URL_API_CONSULTA_GROUP_ID.format(
                result_serie.group_id)
            page = RequestUtils.obtener_data_request_get(
                result_serie.url_obtencion_data_id_serie_ag).json()
            result_serie.id_serie_ag = page['_source']['INFO_SERIE'][0][
                'ID_SERIE_AG']

        return lista_result_serie
示例#4
0
 def get_clan_members(self, connection, clan_id, app_id):
     url = 'http://api.worldoftanks.eu/wgn/clans/info/?application_id={app_id}&clan_id={clan_id}' \
         .format(app_id=app_id, clan_id=clan_id)
     data = RequestUtils.retrieve_json(url)
     clan_data = data['data'][clan_id]
     members = clan_data['members']
     clan_details = {
         'clan_name': clan_data['name'],
         'clan_tag': clan_data['tag'],
         'clan_id': clan_id,
         'emblems': clan_data['emblems']
     }
     return members, clan_details
    def obtencion_capitulos_temporadas_por_id_serie_ag(lista_series_result: list[ResultSerie]):

        index_columna_id_temp = index_columna_orden_temporada = index_columna_episodes = index_columna_orden_capitulo = 0
        columna_id_temp = 'ID Temp.'
        columna_orden_temporada = 'Orden Temporada'
        columna_episodes = 'EPISODES'
        columna_orden_capitulo = 'Orden Capitulo'

        for serie_result in lista_series_result:
            url_por_consultar = const.URL_CONSULTA_CAPITULOS_SERIE_HTML.format(serie_result.id_serie_ag)
            serie_result.url_obtencion_data_capitulos = url_por_consultar
            page = RequestUtils.obtener_data_request_get(url_por_consultar)
            soup = BeautifulSoup(page.content, "html5lib")

            tabla_episodios = soup.find('table')
            lista_columnas_header = tabla_episodios.findAll('th')
            lista_filas_tr_localizadas = tabla_episodios.findAll('tr')
            lista_filas_td_localizadas = [tr.findAll('td') for tr in lista_filas_tr_localizadas if
                                          len(tr.findAll('td')) > 1]

            # se obtienen los indices de los headers de los capitulos y temporadas
            for index, columna_header in enumerate(lista_columnas_header):
                if columna_id_temp == columna_header.get_text(): index_columna_id_temp = index
                if columna_episodes == columna_header.get_text(): index_columna_episodes = index
                if columna_orden_temporada == columna_header.get_text(): index_columna_orden_temporada = index
                if columna_orden_capitulo == columna_header.get_text(): index_columna_orden_capitulo = index

            # de la lista de filas td, se obtienen los datos de cada capitulo de la serie y la almacena
            # en el objeto ResultSerie

            for episodio_td in lista_filas_td_localizadas:

                result_episodio = ResultCapitulo(
                    episodio_td[index_columna_id_temp].get_text(),
                    episodio_td[index_columna_orden_temporada].get_text(),
                    episodio_td[index_columna_episodes].get_text(),
                    episodio_td[index_columna_orden_capitulo].get_text()
                )

                serie_result.lista_de_episodios.append(result_episodio)

        return lista_series_result
示例#6
0
 def _retrieve_personal_stats(self, account_id, app_id):
     url = 'http://api.worldoftanks.eu/wot/account/info/?application_id={app_id}&account_id={account_id}&' \
           'extra=statistics.globalmap_absolute,statistics.globalmap_champion,statistics.globalmap_middle' \
         .format(app_id=app_id, account_id=account_id)
     return RequestUtils.retrieve_json(url)
示例#7
0
 def _retrieve_account_stats(self, account_id, app_id):
     url = 'http://api.worldoftanks.eu/wot/stronghold/accountstats/?application_id={app_id}&account_id={account_id}' \
         .format(app_id=app_id, account_id=account_id)
     return RequestUtils.retrieve_json(url)
示例#8
0
 def find_clan(self, clan_name):
     url = 'http://api.worldoftanks.eu/wgn/clans/list/?application_id={app_id}&search={clan_name}&limit=20' \
         .format(app_id=self.app_id, clan_name=clan_name)
     json = RequestUtils.retrieve_json(url)
     return json['data']
示例#9
0
 def test_main_page(self,test_info):
     logger.info("$%s_%s$" % (test_info["case_id"],test_info["case_step"][0]['测试用例名称']))
     request = RequestUtils()
     result = request.request_by_step(test_info["case_step"])
     assert result['check_result'],result['message']
示例#10
0
 def find_clan(self, clan_name):
     url = 'http://api.worldoftanks.eu/wgn/clans/list/?application_id={app_id}&search={clan_name}&limit=20' \
         .format(app_id=self.app_id, clan_name=clan_name)
     json = RequestUtils.retrieve_json(url)
     return json['data']
示例#11
0
 def _retrieve_personal_stats(self, account_id, app_id):
     url = 'http://api.worldoftanks.eu/wot/account/info/?application_id={app_id}&account_id={account_id}&' \
           'extra=statistics.globalmap_absolute,statistics.globalmap_champion,statistics.globalmap_middle' \
         .format(app_id=app_id, account_id=account_id)
     return RequestUtils.retrieve_json(url)
示例#12
0
 def _retrieve_account_stats(self, account_id, app_id):
     url = 'http://api.worldoftanks.eu/wot/stronghold/accountstats/?application_id={app_id}&account_id={account_id}' \
         .format(app_id=app_id, account_id=account_id)
     return RequestUtils.retrieve_json(url)
示例#13
0
 def test_api_case(self):
     self._testMethodName=self.case_step[0].get('测试用例编号')
     self._testMethodDoc=self.case_step[0].get('测试用例名称')
     test_reult=RequestUtils().request_by_step(self.case_info)
     self.assertTrue(test_reult['check_result'])