PruebaTwitter.java 6.57 KB
Newer Older
Joel Florentin committed
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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142


import java.io.Console;
import java.util.ArrayList;
import java.util.List;

import twitter.Reaccion;
import twitter.TipoReaccion;
import twitter.Tweet;
import twitter.Usuario;

public class PruebaTwitter {
    static Console cons = System.console();
    static List<Usuario> usuarios =  new ArrayList<>();
    static List<Tweet> tweets =  new ArrayList<>();
    static List<Reaccion> reacciones =  new ArrayList<>();
    static int i = 0;
    public static void main(String[] args) {
        usuarios.add(new Usuario(1, "joel", "123", "email", "19/10", "10/10", "urlPhoto", "descripcion", false));
        usuarios.add(new Usuario(2, "jamie", "123", "email", "19/10", "10/10", "urlPhoto", "descripcion", false));
        usuarios.add(new Usuario(3, "jessica", "123", "email", "19/10", "10/10", "urlPhoto", "descripcion", false));
        usuarios.add(new Usuario(4, "gisele", "123", "email", "19/10", "10/10", "urlPhoto", "descripcion", false));
        usuarios.add(new Usuario(5, "fabiola", "123", "email", "19/10", "10/10", "urlPhoto", "descripcion", false));
        String opcion,username;
        do{
            System.out.println("Ingrese una opcion:");
            System.out.println("1-Crear Usuario");
            System.out.println("2-Listar Usuario");
            System.out.println("3-Ingresar como usuario");
            System.out.println("4-Salir");
            opcion = cons.readLine();
            
            switch (opcion) {
                case "1":
                    crearUsuario();                    
                    break;
                case "2":
                    usuarios.stream().forEach(u -> System.out.println(u.getUsername()));
                    break;
                case "3":
                    System.out.println("Seleccione una opcion");
                    i = 0;
                    usuarios.stream().forEach(u -> System.out.printf("%d - %s\n",++i,u.getUsername()));
                    username = cons.readLine();
                    asUser(usuarios.get(Integer.parseInt(username)-1));
                    break;
                default:
                    break;
            }
        }while(!opcion.equals("4"));
        
    }

    public static void crearUsuario() {
        System.out.println("Introduzca datos del usuario en el siguiente formato");
        System.out.println("username,password,email,fechaNac,fechaCreacion,urlPhoto,descripcion,isVerificado");
        String input = cons.readLine();
        String [] datos_user = input.split(",");
        usuarios.add(new Usuario(usuarios.size()+1, datos_user[0], datos_user[1], datos_user[2], datos_user[3], datos_user[4], datos_user[5], datos_user[6], datos_user[7].equals("true")));
    }

    public static void asUser(Usuario logueado) {
        String nroTweet;
        System.out.println("Seleccione accion que desee realizar con el usuario seleccionado");
        System.out.println("1-Realizar tweet");
        System.out.println("2-Dar like a un tweet");
        System.out.println("3-Hacer retweet a un tweet");
        System.out.println("4-Ver seguidos");
        System.out.println("5-Ver seguidores");
        System.out.println("6-Ver tweets");
        System.out.println("7-Ver todos los likes");
        System.out.println("8-Ver todos los retweets");
        System.out.println("9-Seguir a alguien");
        System.out.println("10-Dejar de seguir a alguien");
        System.out.println("11-Ver Tweet de seguidos");
        String opcion = cons.readLine();
        switch (opcion) {
            case "1":
                System.out.println("texto,imgUrl,link");
                String input = cons.readLine();
                String [] datos_tweet = input.split(",");
                tweets.add(new Tweet(tweets.size()+1, datos_tweet[0], 0, 0, logueado, "", datos_tweet[1], datos_tweet[2]));
                break;
            case "2":
                System.out.println("Seleccione el tweet que quiere darle like");
                for (int i = 0; i < tweets.size(); i++) {
                    System.out.printf("%d - %s\n",i+1,tweets.get(i).getTexto());
                }
                nroTweet = cons.readLine();
                reacciones.add(new Reaccion(tweets.get(Integer.parseInt(nroTweet)-1), TipoReaccion.LIKE, logueado));
                break;
            case "3":
                System.out.println("Seleccione el tweet que quiere darle like");
                for (int i = 0; i < tweets.size(); i++) {
                    System.out.printf("%d - %s\n",i+1,tweets.get(i).getTexto());
                }
                nroTweet = cons.readLine();
                reacciones.add(new Reaccion(tweets.get(Integer.parseInt(nroTweet)-1), TipoReaccion.LIKE, logueado));
                break;
            case "4":
                System.out.println("Seguidos del usuario");
                logueado.getSeguidos().forEach(seg -> System.out.println(seg));
                break;
            case "5":
                System.out.println("Seguidores del usuario");
                logueado.getSeguidores().forEach(seg -> System.out.println(seg));
                break;
            case "6":
                System.out.println("Tweets del usuario");
                tweets.stream().filter(tw -> tw.getOwner().equals(logueado)).forEach(seg -> System.out.println(seg));
                break;
            case "7":
                reacciones.stream().filter(r -> r.getTipo()==TipoReaccion.LIKE && r.getOwner()==logueado).forEach(seg -> System.out.println(seg));
                break;
            case "8":
                reacciones.stream().filter(r -> r.getTipo()==TipoReaccion.RETWEET && r.getOwner()==logueado).forEach(seg -> System.out.println(seg));
                break;
            case "9":
                System.out.println("Selecciona un usuario");
                for (int i = 0; i < usuarios.size(); i++) {
                    //TODO: excluir al usuario logueado
                    if(usuarios.get(i)==logueado) continue;
                    System.out.printf("%d - %s\n",i+1,usuarios.get(i));
                }
                opcion = cons.readLine();
                logueado.addSeguido(usuarios.get(Integer.parseInt(opcion)-1));
                break;
            case "10":
                System.out.println("Selecciona un usuario");
                for (int i = 0; i < logueado.getSeguidos().size(); i++) {
                    
                    System.out.printf("%d - %s\n",i+1,logueado.getSeguidos().get(i));
                }
                opcion = cons.readLine();
                logueado.removeSeguido(logueado.getSeguidos().get(Integer.parseInt(opcion)-1));
                break;
        
            default:
                break;
        }
    }
}