diff --git a/Dia5/Dashboard.java b/Dia5/Dashboard.java new file mode 100644 index 0000000..166f8a8 --- /dev/null +++ b/Dia5/Dashboard.java @@ -0,0 +1,482 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package twitter; + +import java.util.ArrayList; +import java.util.Date; +import java.util.Objects; +import java.util.Scanner; + +/** + * + * @author user + */ + + +class Tweet{ + private Usuario usuario; + private String text; + private int numeroRt; + private int numeroFav; + private String imageUrl; + private String linkUrl; + private ArrayList reacciones; + private ArrayList respuestas; + + + public Tweet(Usuario usuario, String text, String imageUrl, String linkUrl) { + this.usuario = usuario; + this.text = text; + this.imageUrl = imageUrl; + this.linkUrl = linkUrl; + this.numeroFav = 0; + this.numeroRt = 0; + this.respuestas = new ArrayList(); + this.reacciones = new ArrayList(); + } + + public static void likear(Usuario usuario, int tweetId){ + BaseDeDatos.getTweetById(tweetId).addLike(usuario); + } + + public void addLike(Usuario usuario){ + for(Reaccion reaccion: reacciones){ + if(reaccion.getUsuario()==usuario){ + System.out.println("Ya diste like a esta publicacion"); + return; + } + } + this.reacciones.add(new Reaccion(usuario, this, "LIKE")); + this.numeroFav++; + } + + public static void retweetear(Usuario usuario, int tweetId){ + BaseDeDatos.getTweetById(tweetId).addRt(usuario); + } + + public void addRt(Usuario usuario){ + for(Reaccion reaccion: reacciones){ + if(reaccion.getUsuario()==usuario){ + System.out.println("Ya diste rt a esta publicacion"); + return; + } + } + this.reacciones.add(new Reaccion(usuario, this, "RT")); + this.numeroRt++; + } + + public static void responder(Usuario usuario, int tweetId){ + BaseDeDatos.getTweetById(tweetId).addRespuesta(usuario); + } + + public void addRespuesta(Usuario usuario){ + respuestas.add(Respuesta.tweetear(usuario, this)); + } + + public static void tweetear(Usuario user){ + Scanner in = new Scanner(System.in); + String text; + String imageUrl=null; + String linkUrl=null; + String choice; + try{ + System.out.println("Texto"); + System.out.print("-----> "); + text = in.nextLine(); + System.out.print("\nDesea agregar una imagen al tweet?(Y/N): "); + choice = (in.nextLine()).toLowerCase(); + if(choice.equals("y")){ + System.out.print("\nURL De la Imagen: "); + imageUrl = in.nextLine(); + } + System.out.print("\nDesea agregar un link al tweet?(Y/N): "); + choice = (in.nextLine()).toLowerCase(); + if(choice.equals("y")){ + System.out.print("\nURL: "); + linkUrl = in.nextLine(); + } + BaseDeDatos.addTweet(new Tweet(user, text, imageUrl, linkUrl)); + }catch (Exception e){ + System.out.println("Error"); + } + } + + public Usuario getUsuario() { + return usuario; + } + + public String getText() { + return text; + } + + public int getNumeroRt() { + return numeroRt; + } + + public int getNumeroFav() { + return numeroFav; + } + + public String getImageUrl() { + return imageUrl; + } + + public String getLinkUrl() { + return linkUrl; + } + + public ArrayList getRespuestas() { + return respuestas; + } +} + + + + //} +public class Dashboard { + private Usuario usuario; + + public Dashboard(Usuario usuario) { + this.usuario = usuario; + } + + public void verUltimosTweets(int limit){ + ArrayList tweets = BaseDeDatos.getTweets(); + ArrayList usuarios = this.usuario.seguimiento.getSeguidos(); + int count = 0; + int index=0; + for(Tweet tweet: tweets){ + if(usuarios.contains(tweet.getUsuario()) || tweet.getUsuario()==this.usuario){ + System.out.print("\n---------------------"); + System.out.print("\n\t*id: "+index+"\n\tAutor: "+tweet.getUsuario().getNombreUsuario()+ + "\n\tTexto: "+tweet.getText()); + System.out.print("\n\tLikes: "+tweet.getNumeroFav()+"\tRts: "+tweet.getNumeroRt()); + if(tweet.getImageUrl()!=null){ + System.out.print("\n\tImage: "+tweet.getImageUrl()); + } + if(tweet.getLinkUrl()!=null){ + System.out.print("\n\tLink: "+tweet.getLinkUrl()); + } + if(!tweet.getRespuestas().isEmpty()){ + System.out.print("\n\tRespuestas: "); + for(Respuesta respuesta: tweet.getRespuestas()){ + System.out.print("\n\t\t\t*Usuario: "+respuesta.getUsuario().getNombreUsuario()); + System.out.print("\n\t\t\tText: "+respuesta.getText()); + if(respuesta.getImageUrl()!=null){ + System.out.print("\n\t\t\tImage: "+respuesta.getImageUrl()); + } + if(respuesta.getLinkUrl()!=null){ + System.out.print("\n\t\t\tLink: "+respuesta.getLinkUrl()); + } + } + } + count++; + if(count>limit){ + return; + } + } + System.out.println("\n\n"); + index++; + } + } +} + + + +public class Reaccion { + private Usuario usuario; + private Tweet tweet; + private String tipoDeReaccion; + + public Reaccion(Usuario usuario, Tweet tweet, String tipoDeReaccion) { + this.usuario = usuario; + this.tweet = tweet; + this.tipoDeReaccion = tipoDeReaccion; + } + + public Usuario getUsuario() { + return usuario; + } + + public Tweet getTweet() { + return tweet; + } + + public String getTipoDeReaccion() { + return tipoDeReaccion; + } +} + + + + + +class ComentarioUrl extends Tweet{ +//Propiedades: +//linkUrl +} +class reacciones{ + +//Propiedades: +//Usuario +//Tweet +//tipoDeReaccion + +} +public class BaseDeDatos { + private static final ArrayList usuarios = new ArrayList(); + private static final ArrayList tweets = new ArrayList(); + + public static void addUsuario(Usuario usuario){ + /* + * Agrega un usuario si este no existe. + * */ + for(Usuario user: usuarios){ + if(user.getNombreUsuario().equals(usuario.getNombreUsuario())){ + System.out.println("ESTE NOMBRE DE USUARIO YA ESTA REGISTRADO"); + return; + } + } + usuarios.add(usuario); + } + + public static ArrayList getUsuarios(){ + /* + * Obtiene todos los usuarios + */ + return usuarios; + } + + public static Usuario getUsuarioByUsername(String username){ + /* + Obtiene un usuario por su username, si no existe retorna null + */ + for(Usuario user: usuarios){ + if(user.getNombreUsuario().equals(username)) return user; + } + return null; + } + + public static void addTweet(Tweet tweet){ + tweets.add(tweet); + } + + public static ArrayList getTweets(){ + return tweets; + } + + public static Tweet getTweetById(int id){ + return tweets.get(id); + } +} + + + + + + class Usuario{ +private String nombreUsuario; + private String contrasenha; + private String correo; + private Date fechaNacimiento; + private Date fechaRegistro; + private String fotoUrl; + private String descripcion; + public Seguimiento seguimiento; + public Dashboard dashboard; + + public Usuario(String nombreUsuario, String contrasenha, String correo, + Date fechaNacimiento, Date fechaRegistro, String fotoUrl, + String descripcion, boolean esVerficado) { + this.nombreUsuario = nombreUsuario; + this.contrasenha = contrasenha; + this.correo = correo; + this.fechaNacimiento = fechaNacimiento; + this.fechaRegistro = fechaRegistro; + this.fotoUrl = fotoUrl; + this.descripcion = descripcion; + this.esVerficado = esVerficado; + this.seguimiento = new Seguimiento(this); + this.dashboard = new Dashboard(this); + } + + private boolean esVerficado; + + public Usuario(String nombreUsuario, String contrasenha, String correo, + String descripcion) { + this.nombreUsuario = nombreUsuario; + this.contrasenha = contrasenha; + this.correo = correo; + this.descripcion = descripcion; + this.seguimiento = new Seguimiento(this); + this.dashboard = new Dashboard(this); + } + + + + + public static Usuario registarUsuario(){ + /* + * Funcion que crea un usuario y lo retorna para ser guardado. + * */ + Scanner in = new Scanner(System.in); + String username; + String password; + String mail; + String fotoUrl; + String descripcion; + try{ + System.out.print("\nIngrese nombre de usuario: "); + username = in.nextLine(); + System.out.print("\nIngrese contrasenha: "); + password = in.nextLine(); + System.out.print("\nIngrese mail: "); + mail = in.nextLine(); + System.out.print("\nIngrese una descripcion: "); + descripcion = in.nextLine(); + return new Usuario(username, password, mail, descripcion); + }catch (Exception e){ + System.out.println("Un error"); + } + return null; + } + + public static Usuario iniciarSesion(){ + /* + Retorna usuario si las credenciales son correctas, null en caso contrario + */ + Scanner in = new Scanner(System.in); + String username; + String password; + try{ + System.out.print("\nIngrese su Nombre de Usuario: "); + username = in.nextLine(); + System.out.print("\nIngrese su Contrasenha: "); + password = in.nextLine(); + Usuario u = Objects.requireNonNull(BaseDeDatos.getUsuarioByUsername(username)); + if(u.getContrasenha().equals(password)){ + return u; + }else{ + System.out.println("Credenciales Incorrectas!"); + return null; + } + }catch (Exception e){ + System.out.println("Credenciales Incorrectas!"); + } + return null; + } + + + public String getNombreUsuario() { + return nombreUsuario; + } + + public String getContrasenha() { + return contrasenha; + } + + public String getCorreo() { + return correo; + } + + public Date getFechaNacimiento() { + return fechaNacimiento; + } + + public Date getFechaRegistro() { + return fechaRegistro; + } + + public String getFotoUrl() { + return fotoUrl; + } + + public String getDescripcion() { + return descripcion; + } + + public boolean isEsVerficado() { + return esVerficado; + } +} + + + + + + +//nombreUsuario +//Contrasena +//Correo +//fechaNacimiento +//fechaIngreso +//urlPhoto +//Descripcion +//isVerificado +//Métodos: +//Getter +//Setter + + + + //} + class Reacciones{ + Usuario u; + Tweet t; + + public void Reacciones (Usuario u, Tweet t){ + this.u=u; + this.t= t; + + + + } + + + + + } + + +// propiedades,tweet id, tweetId, tweettexto +//tweetTexto +//nroLikes +//Usuario u//Métodos: +//Getter +//Setter +//verComentario + + + + + +//Class ComentarioImage extends Tweet{} + + + + + +//Class Usuario{ + + + + + + + + + + +public class Twitter { + + /** + * @param args the command line arguments + */ + public static void main(String[] args) { + // TODO code application logic here + } + +} diff --git a/TalentoHumano b/TalentoHumano new file mode 160000 index 0000000..1fba0a8 --- /dev/null +++ b/TalentoHumano @@ -0,0 +1 @@ +Subproject commit 1fba0a8c1071cb56ce3dbe926680d2b70beaa9cb