Coder Social home page Coder Social logo

getting-tweets's Introduction

Pruebas para obtener Tweets

Dentro del directorio "interests" hay una aplicación Play que almacena los intereses de los usuarios (por ahora solo un usuario dummy). Los intereses son almacenados en una base de datos mysql.
Dentro del directorio "stream" hay otra aplicación Play a la que se le indica cuales son los intereses actuales y se encarga de conectarse al stream de twitter para almacenarlos en una base de datos. Los tweets son almacenados en una base de datos mongodb.

Para facilitar la creación de las bases de datos para hacer pruebas, existe el archivo docker-compose.yml que tiene configuradas las dos bases de datos (requiere que no haya otro mongodb o mysql corriendo en los puertos default). Para levantar las bases ejecutar el siguiente comando:

docker-compose up

Intereses

Para levantar la aplicación ejecutar el siguiente comando dentro del directorio "interests":

sbt -Dplay.evolutions.db.default.autoApply=true run

Agregar un nuevo interés

curl -i -X POST 'http://localhost:9000/api/interests' -H 'Content-Type: application/json' -d '{"value": "#StartTrek"}'

Listar intereses

curl -i -X GET 'http://localhost:9000/api/interests'

Obtener un determinado interés por id

curl -i -X GET 'http://localhost:9000/api/interests/1'

Eliminar un interés por id

curl -i -X DELETE 'http://localhost:9000/api/interests/1'

Stream Tweets

Es necesario tener configurado las siguientes variables de entorno antes de levantar la aplicación.

TWITTER_CUSTOMER_KEY
TWITTER_CUSTOMER_SECRET
TWITTER_ACCESS_KEY
TWITTER_ACCESS_SECRET

O tener un archivo de configuración con el siguiente contenido:

include "application.conf"
  
twitter {
  consumer {
    key = " customer key "
    secret = " customer secret "
  }
  access {
    key = " access key "
    secret = " access secret "
  }
}

Para levantar la aplicación ejecutar el siguiente comando dentro del directorio "stream":

Para esta aplicación usamos el puerto 9001 para no entrar en conflicto con el default (9000) en el que levantamos la aplicación de intereses.

Usando variables de entorno:

sbt -Dhttp.port=9001 run

Usando archivo de configuración:

sbt -Dconfig.file=/ruta/al/conf -Dhttp.port=9001 run

Indicar los intereses de los que se va a querer obtener tweets

Esto elimina los que actualmente estan y setea estos.

curl -i -X POST 'http://localhost:9001/streams' -H 'Content-Type: application/json' -d '{"interests": ["#StarTrek", "#StarWars"]}'

Agregar intereses

curl -i -X PUT 'http://localhost:9001/streams' -H 'Content-Type: application/json' -d '{"interests": ["#StarTrek", "#StarWars"]}'

Eliminar intereses

curl -i -X DELETE 'http://localhost:9001/streams' -H 'Content-Type: application/json' -d '{"interests": ["#StarTrek", "#StarWars"]}'

Actualizar stream

Ninguno de los llamados anteriores actualiza el stream, una vez hayamos realizado los cambios, es necesario llamar a la siguiente ruta:

curl -i -X GET 'http://localhost:9001/streams/run'

Agente

Existe el proyecto "agent" que se encarga de pedir al servicio "interests" los últimos intereses agregados (se configura y por defecto está en los últimos 5 minutos) y luego agregar los mismos al servicio "stream" y luego actualizar el stream.

Ejecutar el agente con el siguiente comando desde la carpera agent:

sbt run

getting-tweets's People

Contributors

leonhardtdavid avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.