Package aplicacion

Source Code of aplicacion.TweeterFacade$Pedido

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package aplicacion;

import buscador.Buscable;
import buscador.Buscador;
import buscador.BuscadorAvanzado;
import buscador.TiposDeBusqueda;
import com.twitterapime.model.MetadataSet;
import com.twitterapime.rest.Credential;
import com.twitterapime.rest.TweetER;
import com.twitterapime.rest.UserAccountManager;
import com.twitterapime.search.LimitExceededException;
import com.twitterapime.search.Tweet;
import com.twitterapime.xauth.Token;
import conf.ManejadorDeConfiguracion;

import dbtweets.DbTweets;
import java.io.IOException;
import mail.ServicioCorreo;

/**
*
* @author Alan
*/
public class TweeterFacade {

    private DbTweets db;
    private Buscable buscador;
    private BuscadorAvanzado buscadorAvanzado;
    private ManejadorDeConfiguracion cfg;
     private AgenteEnvio agenteEnvio;
     private ServicioCorreo servicioCorreo;
    public TweeterFacade() {
        super();
        db = DbTweets.getInstance();
        cfg=ManejadorDeConfiguracion.getInstance();
        agenteEnvio= new AgenteEnvio(this);
        agenteEnvio.start();
        servicioCorreo= new ServicioCorreo();
    }

    /*****************************************************************************
     * Comunes
     */
    private UserAccountManager login() {
        String user = (String) cfg.getUser();
        String pass = (String) cfg.getPass();
        String consumerKey = "LDMQEFW35SC91fM4xtlfVw";
        String consumerSecret = "DEjgPTmyWX55j6ZPNefpTZ9ImE7QCLrdyhQslDKoY";

        Token token = new Token("173552183-p56LQ2ERm4s5XFuA9bpvB6scAC7RGD9x9gHeb9JA", "NmlPw8GoP32d7AF5RqQAvmmUqfmlM7mJBWyBK1U6DA");

        Credential c = new Credential(user, consumerKey, consumerSecret, token);
//        Credential c = new Credential(user, pass, consumerKey,consumerSecret);
        return UserAccountManager.getInstance(c);
    }
    public boolean setCredenciales(String u,String p){
       Credential c = new Credential(u, p);//, consumerKey,consumerSecret);
        try {
           if( UserAccountManager.getInstance(c).verifyCredential()){
               cfg.setUser(u);
               cfg.setPass(p);
               return true;
           }else{
               return false;
               }
        } catch (IOException ex) {
            ex.printStackTrace();
            return false;
        } catch (LimitExceededException ex) {
            ex.printStackTrace();
            return false;
        }
    }

    public boolean credencialesValidas(){
        try {
            return login().verifyCredential();
        } catch (IOException ex) {
            ex.printStackTrace();
            return false;
        } catch (LimitExceededException ex) {
            ex.printStackTrace();
            return false;
        }

}
    public String getUsuario(){
        return  cfg.getUser();
    }
    public String getContrasena(){
        return  cfg.getPass();
    }
    public void setUsuario(String user){
        cfg.setUser(user);
    }
     public void setContrasena(String pass){
        cfg.setPass(pass);
    }
     public boolean getAutoSend(){
        return  cfg.isAutoEnviar();
     }
     public void setAutoSend(boolean b){
            cfg.setAutoEnviar(b);
        }
      public boolean getTruncarTweets(){
        return  cfg.isTruncarTweets();
     }
     public void setTruncarTweets(boolean b){
      
         cfg.setTruncarTweets(b);
      
     }
     public int getTweetsPagina(){
        return cfg.getTweetsPorpagina();
     }
     public void setTweetsPagina(int n){

         cfg.setTweetsPorpagina(n);

     }
     public void guardarConfiguracion(){
        cfg.saveConfiguration();
     }
    /*****************************************************************************
     * TWeets
     */

    public dbtweets.Tweet[] getTweetsSalvados() {
        dbtweets.Tweet[] ret = new dbtweets.Tweet[db.getNumberOfRecords()];
        db.resetNextId();
        int i = 0;
        while (db.hasMoreTweets()) {
            ret[i++] = db.next();
        }
        return ret;
    }

    public void eliminarTweetSalvado(dbtweets.Tweet t) {
        db.deleteTweet(t);
    }

    public void salvarTweetEditado(dbtweets.Tweet t) {
        db.saveTweet(t);
    }

    public void enviarTweetSalvado(dbtweets.Tweet t) {
        eliminarTweetSalvado(t);
        tweet(t.getContenido());
    }

    public void enviarTodosTweetsSalvados() {
        dbtweets.Tweet[] ts = getTweetsSalvados();
        for (int i = 0; i < ts.length; i++) {
            enviarTweetSalvado(ts[i]);
        }
    }
    private boolean tweetContent(String contenido){
     boolean ret = false;
        UserAccountManager m = login();
        try {

            if (m.verifyCredential()) {
                if(contenido.length()>140){
                    if(cfg.isTruncarTweets()){

                    }
                }
                Tweet t = new Tweet(contenido);
                TweetER ter = TweetER.getInstance(m);
                t = ter.post(t);
                ret = true;
            } else {
                throw new Exception("Sin Credenciales");
            }
        } catch (Exception e) {
            db.saveTweet(new dbtweets.Tweet(contenido));
            e.printStackTrace();
        }
        return ret;

    }
    class Pedido implements Runnable{

        public String contenido;
        boolean ret = false;
        UserAccountManager m = login();
        public void run() {
         
        try {

            if (m.verifyCredential()) {
                if(contenido.length()>140){
                    if(cfg.isTruncarTweets()){
                        contenido=contenido.substring(0, 140);
                        ret=tweetContent(contenido);

                    }else{
                       int i=0;
                       ret=true;
                       while(i+140<=contenido.length()){
                        ret=ret&tweetContent(contenido.substring(i, i+140));
                        i=i+140;
                       }
                       if(i<contenido.length()){
                         ret=ret&tweetContent(contenido.substring(i, contenido.length()));
                       }
                    }
                }else{
                    ret=tweetContent(contenido);
                }

            } else {
                throw new Exception("Sin Credenciales");
            }
        } catch (Exception e) {
            db.saveTweet(new dbtweets.Tweet(contenido));
            e.printStackTrace();
        }
        }

    }
    public boolean tweet(String contenido) {
        boolean ret = false;
        UserAccountManager m = login();
        try {
//            Pedido p= new Pedido();
//            p.contenido=contenido;
//            Thread t = new  Thread(p);
//            t.start();
//            t.join();
            if (m.verifyCredential()) {
                if(contenido.length()>140){
                    if(cfg.isTruncarTweets()){
                        contenido=contenido.substring(0, 140);
                        ret=tweetContent(contenido);

                    }else{
                       int i=0;
                       ret=true;
                       while(i+140<=contenido.length()){
                        ret=ret&tweetContent(contenido.substring(i, i+140));
                        i=i+140;
                       }
                       if(i<contenido.length()){
                         ret=ret&tweetContent(contenido.substring(i, contenido.length()));
                       }
                    }
                }else{
                    ret=tweetContent(contenido);
                }

            } else {
                throw new Exception("Sin Credenciales");
            }
        } catch (Exception e) {
            db.saveTweet(new dbtweets.Tweet(contenido));
            e.printStackTrace();
        }
        return ret;
    }

    public boolean reTweet(Tweet t) {
        boolean ret = false;

        UserAccountManager m = login();
        try {
            if (m.verifyCredential()) {
                TweetER ter = TweetER.getInstance(m);
                Tweet t1 = ter.findByID(t.getString(MetadataSet.TWEET_ID));
                t1 = ter.repost(t1);
                ret = true;
            } else {
                throw new Exception("Sin Credenciales");
            }
        } catch (Exception e) {
            // db.saveTweet(new dbtweets.Tweet(contenido));
            e.printStackTrace();
        }
        return ret;
    }

    public int getNumeroTweetsSalvados(){
        int ret = db.getNumberOfRecords();
        if(ret<0){ret=0;}
        return ret;
    }
    public void cerrarConfiguracion(){
         //cfg.cerrar();
    }
    public boolean enviarCorreo(Tweet mensaje, String destino){
        try {
            return servicioCorreo.enviarTweet(getUsuario(), mensaje.getString(MetadataSet.TWEET_AUTHOR_NAME)+": "+mensaje.getString(MetadataSet.TWEET_CONTENT), destino);
        } catch (IOException ex) {
            ex.printStackTrace();
            return false;
        }
    }
    /*****************************************************************************
     * Busqueda
     */
    public Tweet[] buscarTag(String criteria) {
        return buscar(criteria, TiposDeBusqueda.POR_TAG);
    }

    public Tweet[] buscarContenido(String criteria) {
        return buscar(criteria, TiposDeBusqueda.POR_CONTENIDO);
    }

    public Tweet[] buscarAutor(String criteria) {
        return buscar(criteria, TiposDeBusqueda.POR_AUTOR);
    }
     /**
     * Busqueda avanzada
     * @param criteria [0.ConAll,1.ConAny,2.ConExact,3.ConHash,4.ConNone,5.From,6.Reference,7.Since(DATE),8.to,9.Until(Date)]
     * @return
     */
    public Tweet[] buscarAvanzada(Object[] criteria) {
        return buscar(criteria, TiposDeBusqueda.AVANZADA);
    }

    public Tweet[] buscarSiguientePagina() {
        if (buscador == null) {
            return null;
        }
        return buscador.siguientePagina();

    }

    private Tweet[] buscar(String criteria, int tipoBusqueda) {
        if (buscador == null || buscador.getTipoBusqueda() != tipoBusqueda) {
            buscador = new Buscador(criteria, tipoBusqueda);
        }
        return buscador.siguientePagina();

    }
    private Tweet[] buscar(Object[]criteria, int tipoBusqueda) {
        BuscadorAvanzado b=(BuscadorAvanzado)buscador;
        if (buscador == null || buscador.getTipoBusqueda() != tipoBusqueda ||!(b.getCriteria()==criteria)) {
            buscador = new BuscadorAvanzado(criteria);
        }
        return buscador.siguientePagina();

    }
    

}
TOP

Related Classes of aplicacion.TweeterFacade$Pedido

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.