Link to access code Rocket Launch project code
Rocket Launch
Página para acesso ao projeto:Rocket Launch
# Instala o pacote tweepy | |
#!pip install tweepy | |
# Importando os módulos Tweepy, Datetime e Json | |
fromtweepy.streamingimportStreamListener | |
fromtweepyimportOAuthHandler | |
fromtweepyimportStream | |
fromdatetimeimportdatetime | |
importjson | |
# Consumer Key | |
consumer_key="consumer_key" | |
# AConsumer Secret | |
consumer_secret="consumer_secret" | |
# Access Token | |
access_token="access_token" | |
# Access Token Secret | |
access_token_secret="access_token_secret" | |
# Criar as chaves de autenticação | |
auth=OAuthHandler(consumer_key, consumer_secret) | |
auth.set_access_token(access_token, access_token_secret) | |
# Classe para capturar os stream de dados do Twitter e armazenar no MongoDB(Banco de Dados) | |
classMyListener(StreamListener): | |
defon_data(self, dados): | |
tweet=json.loads(dados) | |
created_at=tweet["created_at"] | |
id_str=tweet["id_str"] | |
in_reply_to_screen_name=tweet["in_reply_to_screen_name"] | |
text=tweet["text"] | |
obj= {"created_at":created_at,"id_str":id_str, "in_reply_to_screen_name": in_reply_to_screen_name, "text":text, } #"name" : ["user"]["name"], "screen_name" : ["user"]["screen_name"], | |
tweetind=col.insert_one(obj)#.inserted_id | |
print (obj) | |
returnTrue | |
# Criando o objeto mylistener | |
mylistener=MyListener() | |
# Criando o objeto mystream | |
mystream=Stream(auth, listener=mylistener) | |
# Importando do PyMongo o módulo MongoClient | |
frompymongoimportMongoClient | |
# Conexão ao MongoDB | |
client=MongoClient('localhost', 27017) | |
# Criando o banco de dados twitterdb | |
db=client.twitterdb | |
# Criando a collection "col" | |
col=db.tweets | |
# Lista de palavras chave para buscar nos Tweets - Agências Espaciais | |
keywords= ['@NASA', '@SANSA7', '@AFSpace', '@CNSA_en', '@esa', '@isa', '@ILSpaceAgency', '@ASI_spazio', '@isro', '@JAXA_en', '@CNES', '@roscosmos',] | |
# Iniciando o filtro e gravando os tweets no MongoDB | |
mystream.filter(track=keywords) | |
#Fechando conexão com mystream | |
mystream.disconnect() |
from __future__ importprint_function | |
importdatetime | |
importgflags | |
importgoogleapiclient.discoveryasdiscovery | |
fromgoogleapiclient.discoveryimportbuild | |
fromhttplib2importHttp | |
fromoauth2clientimportfile, client, tools | |
fromgoogle.oauth2importservice_account | |
#codigo para calendário | |
client_id2='INSERT YOUR ID' | |
client_secret2='INSERT YOUR SECRET' | |
flags=gflags.FLAGS | |
flow=client.OAuth2WebServerFlow(client_id2, | |
client_secret2, | |
scope='https://www.googleapis.com/auth/calendar', | |
redirect_uri='https://rocket-launch.herokuapp.com/') | |
auth_uri=flow.step1_get_authorize_url() | |
#INSERT CODE RETURNED BY AUTH | |
credentials=flow.step2_exchange(CODE) | |
fromhttplib2importHttp | |
http=Http() | |
http=credentials.authorize(http) | |
service=build('calendar', 'v3', http) | |
importre | |
importdatetime | |
#TO TURN FUNCTIONAL, REDIRECT TO OUTPUT OF tw.py | |
twitt_input= [{'created_at': 'Sun Oct 21 18:55:01 +0000 2018', 'id_str': '1054083653536489473', 'in_reply_to_screen_name': 'None', 'text': '.@ABC7Chicago - A local man has quite the story to tell. Back in 1962 he was an electrician engineer for .@NASA. He… https://t.co/Od2uAaSFG1'}, | |
{'created_at': 'Sun Oct 21 18:55:28 +0000 2018', 'id_str': '1054083767382487040', 'in_reply_to_screen_name': 'None', 'text': 'RT @esaoperations: =\u3000/ \\n-\u3000/\u3000\u3000\\\n. |\u3000 |\n. | :large_blue_circle: |\n. | @esa|\n. | :crossed_flags: |\n. |@Jaxa_en\n. | 二二 |\n’/|\u3000\u3000 ||\\n(\u3000|\u3000\u3000 || )\n|二|\u3000\u3000 ||二|\n|\u3000|…'}, | |
{'created_at': 'Sun Oct 21 18:55:34 +0000 2018', 'id_str': '1054083790417653761', 'in_reply_to_screen_name': 'erc_m1984', 'text': '@erc_m1984 TESTEE'}, | |
{'created_at': 'Sun Oct 21 18:55:34 +0000 2018', 'id_str': '1054083790417653761', 'in_reply_to_screen_name': 'erc_m1984', 'text': '@erc_m1984 launch 23-10-2018 at 22:13:45 PM launch ASTROS'}] | |
fortwittintwitt_input: | |
forkintwitt: | |
print(k," ",twitt[k]) | |
ifre.search(r'(\d+-\d+-\d+)',twitt[k]) andre.search(r'\d+:\d+:\d',twitt[k]): | |
words=twitt['text'].split(' ') | |
forwordinwords: | |
ifre.search(r'(\d+-\d+-\d+)',word): | |
data=word | |
date=datetime.datetime.strptime(data, '%d-%m-%Y') | |
#print(date.year,'-',date.month,'-',date.day,'T',hora) | |
#print("%s-%s-%s"%(str(date.year),str(date.month),str(date.day))) | |
ifre.search(r'\d+:\d+:\d',word): | |
hora=word | |
#print(hora) | |
event= { | |
'summary' : ('LANÇAMENTO',twitt['in_reply_to_screen_name']), | |
'location' : 'LANÇAMENTO', | |
'description' : twitt['text'], | |
'start' : { | |
'dateTime' : ("%s-%s-%sT%s"%(str(date.year),str(date.month),str(date.day),hora)), | |
'timeZone' : 'GMT', | |
}, | |
'end' :{ | |
'dateTime' : ("%s-%s-%sT%s"%(str(date.year),str(date.month),str(date.day),hora)), | |
'timeZone' : 'GMT', | |
}, | |
'recurrence': ['RRULE:FREQ=DAILY;COUNT=2'], | |
'attendees': [ | |
{'email': 'lpage@example.com'}, | |
{'email': 'sbrin@example.com'}, | |
], | |
'reminders': { | |
'useDefault': False, | |
'overrides': [{'method': 'email', 'minutes': 24*60},{'method': 'popup', 'minutes': 10},], | |
}, | |
} | |
event=service.events().insert(calendarId='8ca8bl7gk62g1hlg9qffttnrj4@group.calendar.google.com', body=event).execute() | |
print ('Event created: %s'% (event.get('htmlLink'))) |
SpaceApps is a NASA incubator innovation program.