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 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)
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
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
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)
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)
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']
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']
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'])