public async Task InitAsync() { while (true) { int dias = 30; MessageLoop = "Buscando cidades no MySQL..."; var cidades = await CidadeDAO.BuscarCidadesAsync(); MessageLoop = $"{cidades.Count} cidades encontradas"; foreach (var cidade in cidades) { var paginas = await PaginaFacebookDAO.ObterPaginasCidadeAsync(cidade.Nome); MessageLoop = $"{paginas.Count} páginas encontradas de {cidade.Nome}"; var dataRecente = $"{DateTime.Now.AddDays(-dias):dd/MM/yyyy}"; foreach (var pagina in paginas) { MessageLoop = "Procurando posts na API do Facebook"; var posts = await FacebookRestAPI.ObterPostsPaginaAsync(pagina.id, dataRecente); MessageLoop = $"{posts.data.Count} encontrados nos ultimos {dias} dias"; int postsatt = 0; foreach (var post in posts.data) { // Adiciona os novos posts ao mysql var idPost = await PostFacebookDAO.AdicionarPostIdAsync(post, cidade.Id, pagina.Id); if (idPost != -1) { postsatt++; } } MessageLoop = $"{postsatt} novos posts adicionados ao MySQL\nObtendo posts do MySQL"; // Busca todos os posts do mysql var postsBd = PostFacebookDAO.BuscarPostsPagina(pagina.Id, dias); MessageLoop = $"{postsBd.Count} posts encontrados\nAtualizando comentarios...\n"; int comentatt = 0; foreach (var post in postsBd) { Progresso(postsBd.Count, postsBd.IndexOf(post) + 1, "Posts verificados."); var idPost = post.Id; var comentarios = await FacebookRestAPI.ObterComentariosPostAsync(post.id, dataRecente); foreach (var comentario in comentarios) { var idComentario = await ComentarioFacebookDAO.AdicionarComentarioAsync(comentario, idPost, pagina.Id, cidade.Id); if (idComentario != -1) { comentatt++; } if (comentario.comments != null && comentario.comments.data.Count > 0) { foreach (var comentRespondido in comentario.comments?.data) { idComentario = await ComentarioFacebookDAO.AdicionarComentarioAsync(comentRespondido, idPost, pagina.Id, cidade.Id, idComentario); if (idComentario != -1) { comentatt++; } } } } } MessageLoop = $"{comentatt} novos comentarios adicionados ao MySQL"; var comentariosCidade = ComentarioFacebookDAO.BuscarTodosComentariosDaCidade(cidade, dias); int catt = 0, catual = 0; foreach (var comentario in comentariosCidade) { catual++; if (MongoConector.AcessoDados.SalvarUmComentarioSeNaoExistir(comentario, "comentarios")) { catt++; } Progresso(comentariosCidade.Count, catual, "Comentarios analisados no mongo"); } MessageLoop = $"{catt} novos comentarios adicionados ao MongoDB"; ReadKey(); } } MessageLoop = "Dormindo por 1 hora..."; await Task.Delay(1000 * 60 * 60); } }
public async void InitAsync() { int dias = 30; MessageLoop = "Buscando cidades no MySQL..."; var cidades = await CidadeDAO.BuscarCidadesAsync(); MessageLoop = $"{cidades.Count} cidades encontradas"; foreach (var cidade in cidades) { var paginas = await PaginaFacebookDAO.ObterPaginasCidadeAsync(cidade.Nome); MessageLoop = $"{paginas.Count} páginas encontradas de {cidade.Nome}"; var dataRecente = $"{DateTime.Now.AddDays(-dias):dd/MM/yyyy}"; foreach (var pagina in paginas) { var posts = await FacebookRestAPI.ObterPostsPaginaAsync(pagina.id, dataRecente); MessageLoop = $"{posts.data.Count} encontrados nos ultimos {dias} dias"; int postsatt = 0; foreach (var post in posts.data) { // Adiciona os novos posts ao mysql var idPost = await PostFacebookDAO.AdicionarPostIdAsync(post, cidade.Id, pagina.Id); if (idPost != -1) { postsatt++; } } MessageLoop = $"{postsatt} novos posts adicionados ao MySQL"; // Busca todos os posts do mysql var postsBd = PostFacebookDAO.BuscarPostsPagina(pagina.Id); int comentatt = 0; foreach (var post in postsBd) { var idPost = post.Id; var comentarios = await FacebookRestAPI.ObterComentariosPostAsync(post.id, dataRecente); foreach (var comentario in comentarios) { var idComentario = await ComentarioFacebookDAO.AdicionarComentarioAsync(comentario, idPost, pagina.Id, cidade.Id); if (idComentario != -1) { comentatt++; } if (comentario.comments != null && comentario.comments.data.Count > 0) { foreach (var comentRespondido in comentario.comments?.data) { idComentario = await ComentarioFacebookDAO.AdicionarComentarioAsync(comentRespondido, idPost, pagina.Id, cidade.Id, idComentario); if (idComentario != -1) { comentatt++; } } } } } MessageLoop = $"{comentatt} novos comentarios adicionados ao MySQL"; } } }