Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- package org.foi.nwtis.mbat.dretva;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- import javax.mail.Message;
- import java.util.Date;
- import java.util.List;
- import javax.mail.Address;
- import javax.mail.Flags.Flag;
- import javax.mail.Folder;
- import javax.mail.Session;
- import javax.mail.Store;
- import javax.mail.internet.InternetAddress;
- import javax.naming.Context;
- import javax.naming.InitialContext;
- import javax.naming.NamingException;
- import javax.servlet.ServletContext;
- import org.foi.nwtis.mbat.ejb.jpa.facade.KorisnikFacadeLocal;
- import org.foi.nwtis.mbat.mail.SendMail;
- import org.foi.nwtis.mbat.ws.MojiMeteoPodaci;
- /**
- *
- * @author Mario
- */
- public class Dretva extends Thread {
- KorisnikFacadeLocal korisnik = lookupKorisnikFacadeLocal();
- private ServletContext servletContext;
- private int mime_broj = 0;
- private long Start;
- private long Kraj;
- private long spavanje;
- private String tipPoruke = "";
- private boolean postoji = false;
- public Dretva(ServletContext servletContext) {
- this.servletContext = servletContext;
- }
- @Override
- public void destroy() {
- super.destroy();
- }
- @Override
- public void interrupt() {
- super.interrupt();
- }
- @Override
- public void run() {
- System.out.println("DRETVA ZA PROVJERU MAILOVA JE POKRENUTA!");
- System.out.println("<---------------------------------------------->");
- String defaultFrom;
- Session session;
- Store store;
- Folder folder;
- String smtp = (String) this.servletContext.getAttribute("smtp");
- String pop3 = (String) this.servletContext.getAttribute("pop3");
- String user = (String) this.servletContext.getAttribute("pop3_username");
- String pass = (String) this.servletContext.getAttribute("pop3_password");
- int pop3_timer = Integer.parseInt((String) this.servletContext.getAttribute("pop3_timer"));
- SendMail saljiMail = new SendMail(user + "@" + smtp);
- while (true) {
- Start = System.currentTimeMillis();
- try {
- // Save a default From address
- defaultFrom = user + "@" + pop3;
- // Start the session
- java.util.Properties properties = System.getProperties();
- properties.put("mail.smtp.host", smtp);
- session = Session.getInstance(properties, null);
- // Connect to the store
- store = session.getStore("pop3");
- store.connect(pop3, user, pass);
- // Open the INBOX folder
- folder = store.getFolder("INBOX");
- folder.open(Folder.READ_WRITE);
- Message[] messages = folder.getMessages();
- System.out.println("U " + new Date() + " ima poruka: " + messages.length);
- for (int i = 0; i < messages.length; i++) {
- System.out.println("<------------------------------------->");
- System.out.println("Provjeram poruke u INBOXU!");
- System.out.println("<------------------------------------->");
- String[] polje = messages[i].getContentType().toString().split(";");
- String naslov = messages[i].getSubject().toString();
- Address[] froms = messages[i].getFrom();
- InternetAddress from = (InternetAddress) froms[0];
- String posiljatelj = from.getAddress();
- System.out.println("POSILJATELJ: " + posiljatelj);
- if (polje[0].equals("text/plain") && naslov.equals("NWTiS")) {
- tipPoruke = "NWTiS";
- }
- if (tipPoruke.equals("NWTiS")) {
- String[] polje2 = messages[i].getContent().toString().split("\\(");
- //ako je newUser onda ce provjeriti da li postoji i ubaciti u tablicu ako ne postoji
- if (polje2[0].equals("newUser")) {
- String[] polje3 = messages[i].getContent().toString().split("'");
- String kor_ime = polje3[1];
- String ime = polje3[3];
- String prezime = polje3[5];
- String lozinka = polje3[7];
- System.out.println("<------------------------------------->");
- System.out.println("Provjeravam da li postoji korisnik!");
- System.out.println("<------------------------------------->");
- postoji = korisnik.provjeriKorisnika(kor_ime, lozinka);
- // Ako je false onda ce ubaciti korisnika u bazu
- if (postoji == false) {
- System.out.println("<------------------------------------->");
- System.out.println("Registriram korisnika!");
- System.out.println("<------------------------------------->");
- korisnik.unesiKorisnika(kor_ime, ime, prezime, lozinka, posiljatelj);
- }
- //ako je user onda ce obaviti prvo provjeru
- } else if (polje2[0].equals("user")) {
- String[] polje4 = messages[i].getContent().toString().split(";");
- String polje5[] = polje4[0].split("'");
- String kor_ime = polje5[1];
- String lozinka = polje5[3];
- String komanda = polje4[1];
- System.out.println("KORISNIK: " + kor_ime);
- System.out.println("LOZINKA: " + lozinka);
- System.out.println("KOMANDA: " + komanda);
- postoji = korisnik.provjeriKorisnika(kor_ime, lozinka);
- if (postoji == true && komanda.equals("data()")) {
- System.out.println("<------------------------------------->");
- System.out.println("Pristigle su komande 2 i 3!");
- System.out.println("<------------------------------------->");
- List<String> zipKodovi = dajZipKodove();
- System.out.println("ASDASDALSDHASKLDNAJDKADJAK: " + zipKodovi.get(0));
- } else if (postoji == true && !komanda.equals("data()")) {
- System.out.println("KOMANDAAAAAAAAAAAAA" + komanda);
- //ovo ce bit komanda tipa 3
- if (komanda.length() <= 25) {
- String[] a = komanda.split("\\(");
- String[] b = a[1].split(",");
- String zipKod = b[0];
- String[] c = b[1].split("\\)");
- String brojZipKodova = c[0];
- System.out.println();
- List<MojiMeteoPodaci> meteo = zadnjiPodaciZaZip(zipKod, brojZipKodova);
- String textMaila = "";
- for (int j = 0; j < meteo.size(); j++) {
- MojiMeteoPodaci meteoPodaci = meteo.get(j);
- textMaila += "Meteo podaci za zip kod " + zipKod + " su: GRAD: " + meteoPodaci.getGrad() + " , TIMESTAMP: " + meteoPodaci.getTimestamp() + " , TEMPERATURA: " + meteoPodaci.getTemperatura() + " , TLAK: " + meteoPodaci.getTlak() + " , VJETAR: " + meteoPodaci.getVjetar() + " , VLAGA: " + meteoPodaci.getVlaga() + "<br/>";
- }
- saljiMail.sendMail(posiljatelj, "RE: NWTiS", textMaila);
- System.out.println("Poslao sam mail!");
- }
- }
- }
- }
- messages[i].setFlag(Flag.DELETED, true);
- }
- folder.close(true);
- store.close();
- } catch (Exception ex) {
- System.out.println(ex.getMessage());
- }
- Kraj = System.currentTimeMillis();
- long razlika = Kraj - Start;
- if (pop3_timer * 1000 > razlika) {
- spavanje = (pop3_timer) * 1000 - razlika;
- } else {
- spavanje = 0;
- }
- try {
- sleep(spavanje);
- } catch (InterruptedException ex) {
- Logger.getLogger(Dretva.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- }
- private KorisnikFacadeLocal lookupKorisnikFacadeLocal() {
- try {
- Context c = new InitialContext();
- return (KorisnikFacadeLocal) c.lookup("java:comp/env/KorisnikFacade");
- } catch (NamingException ne) {
- Logger.getLogger(getClass().getName()).log(Level.SEVERE, "exception caught", ne);
- throw new RuntimeException(ne);
- }
- }
- private static java.util.List<java.lang.String> dajZipKodove() {
- org.foi.nwtis.mbat.ws.WebServisService service = new org.foi.nwtis.mbat.ws.WebServisService();
- org.foi.nwtis.mbat.ws.WebServis port = service.getWebServisPort();
- return port.dajZipKodove();
- }
- private static java.util.List<org.foi.nwtis.mbat.ws.MojiMeteoPodaci> zadnjiPodaciZaZip(java.lang.String zip, java.lang.String broj) {
- org.foi.nwtis.mbat.ws.WebServisService service = new org.foi.nwtis.mbat.ws.WebServisService();
- org.foi.nwtis.mbat.ws.WebServis port = service.getWebServisPort();
- return port.zadnjiPodaciZaZip(zip, broj);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement