-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbot.R
55 lines (40 loc) · 1.54 KB
/
bot.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
##################################
# Bot de Twitter da Azul #
##################################
library(dplyr)
library(xml2)
site = "https://azul.netlify.com/"
parse_website <- function(url) { #só lê o blog e busca por posts
require(xml2)
pag <- read_html(url)
fs <- xml_find_all(pag,xpath = "//ul[@id= 'post-list']/li/a")
ss <- xml_attr(fs, "href")
return(ss)
}
checkBlog <- function(newList, oldList){ #Lido o blog, você pode comparar uma lista com os posts "antigos" com os posts novos e se tiver um post novo ele retorna o link pro post novo. A lista não precisa ser um objeto lista, pode ser um vetor com as urls que o parse_website cospe
dife <- setdiff(newList,oldList)
teste <- length(dife)
if(teste==0){
print("No updates")
} else{
new_post_url <- dife[1]
new_post_url <- new_post_url
return(new_post_url)
}
}
nova = parse_website(site)
velha = parse_website(site)[-1]
post = checkBlog(nova,
velha)
tweet = paste("Post novo: ",
post, sep = "")
## chaves específicas do bot da Azul, não vai funcionar em outro bot
consumerKey = 'DI7LdAavAOI0ECX6Q9UJaut36'
consumerSecret = 'JG9b7yXIRzVGqUNdnnYyj7aN8V2rKScg0Ki3FInmYejg5FOU7b'
accessToken = '1095031271540047873-WR3WQ6Uxhz17dltsEcULPijBvfNwjA'
accessTokenSecret = 'itq8Mr9Bu1l4NUtmtFrLF0zmhyuvp0Plvg85OidmvBN7z'
twitteR::setup_twitter_oauth(consumerKey,
consumerSecret,
accessToken,
accessTokenSecret)
tweet %>% twitteR::tweet()