Advertisement
Guest User

Untitled

a guest
Sep 17th, 2017
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.15 KB | None | 0 0
  1.  
  2. /*
  3. * To change this template, choose Tools | Templates
  4. * and open the template in the editor.
  5. */
  6. package org.foi.nwtis.mbat.dretva;
  7.  
  8. import java.util.logging.Level;
  9. import java.util.logging.Logger;
  10. import javax.mail.Message;
  11. import java.util.Date;
  12. import java.util.List;
  13. import javax.mail.Address;
  14. import javax.mail.Flags.Flag;
  15. import javax.mail.Folder;
  16. import javax.mail.Session;
  17. import javax.mail.Store;
  18. import javax.mail.internet.InternetAddress;
  19. import javax.naming.Context;
  20. import javax.naming.InitialContext;
  21. import javax.naming.NamingException;
  22. import javax.servlet.ServletContext;
  23. import org.foi.nwtis.mbat.ejb.jpa.facade.KorisnikFacadeLocal;
  24. import org.foi.nwtis.mbat.mail.SendMail;
  25. import org.foi.nwtis.mbat.ws.MojiMeteoPodaci;
  26.  
  27. /**
  28. *
  29. * @author Mario
  30. */
  31. public class Dretva extends Thread {
  32.  
  33. KorisnikFacadeLocal korisnik = lookupKorisnikFacadeLocal();
  34. private ServletContext servletContext;
  35. private int mime_broj = 0;
  36. private long Start;
  37. private long Kraj;
  38. private long spavanje;
  39. private String tipPoruke = "";
  40. private boolean postoji = false;
  41.  
  42. public Dretva(ServletContext servletContext) {
  43. this.servletContext = servletContext;
  44. }
  45.  
  46. @Override
  47. public void destroy() {
  48. super.destroy();
  49. }
  50.  
  51. @Override
  52. public void interrupt() {
  53. super.interrupt();
  54. }
  55.  
  56. @Override
  57. public void run() {
  58. System.out.println("DRETVA ZA PROVJERU MAILOVA JE POKRENUTA!");
  59. System.out.println("<---------------------------------------------->");
  60.  
  61. String defaultFrom;
  62. Session session;
  63. Store store;
  64. Folder folder;
  65.  
  66. String smtp = (String) this.servletContext.getAttribute("smtp");
  67. String pop3 = (String) this.servletContext.getAttribute("pop3");
  68. String user = (String) this.servletContext.getAttribute("pop3_username");
  69. String pass = (String) this.servletContext.getAttribute("pop3_password");
  70. int pop3_timer = Integer.parseInt((String) this.servletContext.getAttribute("pop3_timer"));
  71.  
  72. SendMail saljiMail = new SendMail(user + "@" + smtp);
  73. while (true) {
  74.  
  75. Start = System.currentTimeMillis();
  76.  
  77. try {
  78. // Save a default From address
  79. defaultFrom = user + "@" + pop3;
  80. // Start the session
  81. java.util.Properties properties = System.getProperties();
  82. properties.put("mail.smtp.host", smtp);
  83. session = Session.getInstance(properties, null);
  84. // Connect to the store
  85. store = session.getStore("pop3");
  86. store.connect(pop3, user, pass);
  87. // Open the INBOX folder
  88. folder = store.getFolder("INBOX");
  89. folder.open(Folder.READ_WRITE);
  90.  
  91. Message[] messages = folder.getMessages();
  92.  
  93. System.out.println("U " + new Date() + " ima poruka: " + messages.length);
  94.  
  95. for (int i = 0; i < messages.length; i++) {
  96.  
  97. System.out.println("<------------------------------------->");
  98. System.out.println("Provjeram poruke u INBOXU!");
  99. System.out.println("<------------------------------------->");
  100.  
  101. String[] polje = messages[i].getContentType().toString().split(";");
  102. String naslov = messages[i].getSubject().toString();
  103.  
  104. Address[] froms = messages[i].getFrom();
  105. InternetAddress from = (InternetAddress) froms[0];
  106. String posiljatelj = from.getAddress();
  107.  
  108. System.out.println("POSILJATELJ: " + posiljatelj);
  109.  
  110. if (polje[0].equals("text/plain") && naslov.equals("NWTiS")) {
  111.  
  112. tipPoruke = "NWTiS";
  113.  
  114. }
  115.  
  116. if (tipPoruke.equals("NWTiS")) {
  117.  
  118. String[] polje2 = messages[i].getContent().toString().split("\\(");
  119.  
  120. //ako je newUser onda ce provjeriti da li postoji i ubaciti u tablicu ako ne postoji
  121. if (polje2[0].equals("newUser")) {
  122.  
  123. String[] polje3 = messages[i].getContent().toString().split("'");
  124. String kor_ime = polje3[1];
  125. String ime = polje3[3];
  126. String prezime = polje3[5];
  127. String lozinka = polje3[7];
  128.  
  129. System.out.println("<------------------------------------->");
  130. System.out.println("Provjeravam da li postoji korisnik!");
  131. System.out.println("<------------------------------------->");
  132. postoji = korisnik.provjeriKorisnika(kor_ime, lozinka);
  133.  
  134. // Ako je false onda ce ubaciti korisnika u bazu
  135.  
  136. if (postoji == false) {
  137. System.out.println("<------------------------------------->");
  138. System.out.println("Registriram korisnika!");
  139. System.out.println("<------------------------------------->");
  140. korisnik.unesiKorisnika(kor_ime, ime, prezime, lozinka, posiljatelj);
  141. }
  142.  
  143. //ako je user onda ce obaviti prvo provjeru
  144. } else if (polje2[0].equals("user")) {
  145.  
  146. String[] polje4 = messages[i].getContent().toString().split(";");
  147. String polje5[] = polje4[0].split("'");
  148. String kor_ime = polje5[1];
  149. String lozinka = polje5[3];
  150. String komanda = polje4[1];
  151.  
  152. System.out.println("KORISNIK: " + kor_ime);
  153. System.out.println("LOZINKA: " + lozinka);
  154. System.out.println("KOMANDA: " + komanda);
  155. postoji = korisnik.provjeriKorisnika(kor_ime, lozinka);
  156.  
  157. if (postoji == true && komanda.equals("data()")) {
  158.  
  159. System.out.println("<------------------------------------->");
  160. System.out.println("Pristigle su komande 2 i 3!");
  161. System.out.println("<------------------------------------->");
  162. List<String> zipKodovi = dajZipKodove();
  163.  
  164. System.out.println("ASDASDALSDHASKLDNAJDKADJAK: " + zipKodovi.get(0));
  165.  
  166. } else if (postoji == true && !komanda.equals("data()")) {
  167.  
  168. System.out.println("KOMANDAAAAAAAAAAAAA" + komanda);
  169. //ovo ce bit komanda tipa 3
  170. if (komanda.length() <= 25) {
  171.  
  172. String[] a = komanda.split("\\(");
  173. String[] b = a[1].split(",");
  174. String zipKod = b[0];
  175.  
  176. String[] c = b[1].split("\\)");
  177. String brojZipKodova = c[0];
  178.  
  179. System.out.println();
  180.  
  181. List<MojiMeteoPodaci> meteo = zadnjiPodaciZaZip(zipKod, brojZipKodova);
  182. String textMaila = "";
  183. for (int j = 0; j < meteo.size(); j++) {
  184.  
  185. MojiMeteoPodaci meteoPodaci = meteo.get(j);
  186.  
  187. 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/>";
  188.  
  189. }
  190. saljiMail.sendMail(posiljatelj, "RE: NWTiS", textMaila);
  191. System.out.println("Poslao sam mail!");
  192. }
  193.  
  194. }
  195. }
  196. }
  197.  
  198. messages[i].setFlag(Flag.DELETED, true);
  199.  
  200. }
  201.  
  202. folder.close(true);
  203. store.close();
  204.  
  205. } catch (Exception ex) {
  206. System.out.println(ex.getMessage());
  207. }
  208.  
  209. Kraj = System.currentTimeMillis();
  210.  
  211. long razlika = Kraj - Start;
  212.  
  213. if (pop3_timer * 1000 > razlika) {
  214. spavanje = (pop3_timer) * 1000 - razlika;
  215. } else {
  216. spavanje = 0;
  217. }
  218. try {
  219. sleep(spavanje);
  220. } catch (InterruptedException ex) {
  221. Logger.getLogger(Dretva.class.getName()).log(Level.SEVERE, null, ex);
  222. }
  223. }
  224. }
  225.  
  226. private KorisnikFacadeLocal lookupKorisnikFacadeLocal() {
  227. try {
  228. Context c = new InitialContext();
  229. return (KorisnikFacadeLocal) c.lookup("java:comp/env/KorisnikFacade");
  230. } catch (NamingException ne) {
  231. Logger.getLogger(getClass().getName()).log(Level.SEVERE, "exception caught", ne);
  232. throw new RuntimeException(ne);
  233. }
  234. }
  235.  
  236. private static java.util.List<java.lang.String> dajZipKodove() {
  237. org.foi.nwtis.mbat.ws.WebServisService service = new org.foi.nwtis.mbat.ws.WebServisService();
  238. org.foi.nwtis.mbat.ws.WebServis port = service.getWebServisPort();
  239. return port.dajZipKodove();
  240. }
  241.  
  242. private static java.util.List<org.foi.nwtis.mbat.ws.MojiMeteoPodaci> zadnjiPodaciZaZip(java.lang.String zip, java.lang.String broj) {
  243. org.foi.nwtis.mbat.ws.WebServisService service = new org.foi.nwtis.mbat.ws.WebServisService();
  244. org.foi.nwtis.mbat.ws.WebServis port = service.getWebServisPort();
  245. return port.zadnjiPodaciZaZip(zip, broj);
  246. }
  247. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement