123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- package rss;
- import java.text.ParseException;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- import org.w3c.dom.DOMException;
- import org.w3c.dom.NamedNodeMap;
- import org.w3c.dom.Node;
- import org.w3c.dom.NodeList;
- import main.AffichableSurIRC;
- import main.Main;
- /**
- * Classe de stockage des informations d'une entrée RSS.
- * @author marmat
- *
- */
- public class RssData implements AffichableSurIRC{
- private String auteur;
- private String date;
- private String titre;
- private String lien;
- private String source;
- public RssData(String auteur, String date, String titre, String lien, String source) {
- super();
- this.auteur = auteur;
- this.date = date;
- this.titre = titre;
- this.lien = lien;
- this.source = source;
- }
- /**
- * Transforme un Noeud correspondant à un entry en un RSSData
- * @param item Noeud w3c
- */
- public RssData(Node item, Date date) {
- this();
- NodeList childs = item.getChildNodes();
- int length = childs.getLength();
- for(int i = 0; i<length;++i) {
- Node actualchild = childs.item(i);
- String balise = actualchild.getNodeName();
- if(balise.equalsIgnoreCase("title")) {
- setTitre(actualchild.getTextContent());
- }else if(balise.equalsIgnoreCase("author")) {
- NodeList authlist =actualchild.getChildNodes();
- for(int j = 0;j<authlist.getLength();j++) {
- Node bn = authlist.item(j);
- if(bn.getNodeName().equalsIgnoreCase("name")) {
- String a = ""+bn.getTextContent();
- setAuteur(a);
- }
- }
- }else if(balise.equalsIgnoreCase("link")) {
- NamedNodeMap nmp = actualchild.getAttributes();
- String link = nmp.getNamedItem("href").getTextContent();
- if(link!=null) setLien(link);
- }else if(balise.equalsIgnoreCase("source")) {
- NodeList nl = actualchild.getChildNodes();
- for(int j = 0; j<nl.getLength();++j) {
- Node node = nl.item(j);
- if(node.getNodeName().equalsIgnoreCase("title")) {
- setSource(node.getTextContent());
- }
- }
- }else if(balise.equalsIgnoreCase("updated")) {
- try {
- Date d = RSSChecker.DATE_FORMATIN.parse(actualchild.getTextContent());
- setDate(Main.DATE_FORMAT_OUT.format(d));
- } catch (DOMException | ParseException e) {
- e.printStackTrace();
- }
- }
- }
- if(date != null) {
- this.setDate(Main.DATE_FORMAT_OUT.format(date));
- }
- }
- public RssData(Node item) {
- this(item,null);
- }
- public RssData() {
- this.auteur="";
- this.date="";
- this.titre="";
- this.lien="";
- }
- public String getAuteur() {
- return auteur;
- }
- public void setAuteur(String auteur) {
- this.auteur = auteur;
- }
- public String getDate() {
- return date;
- }
- public void setDate(String date) {
- this.date = date;
- }
-
- public String getSource() {
- return source;
- }
- public void setSource(String source) {
- this.source = source;
- }
- public String getTitre() {
- return titre;
- }
- public void setTitre(String titre) {
- this.titre = titre;
- }
- public String getLien() {
- return lien;
- }
- public void setLien(String lien) {
- this.lien = lien;
- }
- public String toString() {
- return "Article par "+auteur+" : "+titre+" le "+date+" lien: "+lien+" via "+source;
- }
- @Override
- public List<String> toStringIRC() {
- List<String> res = new ArrayList<>();
- res.add(titre);
- String auth= "";
- if(!(auteur == null || auteur.equals("")))
- auth = "Par "+auteur+" ";
- if(!(date == null || date.equals(""))) {
- auth += "le "+date;
- }
- if(!(source == null || source.equals(""))) {
- auth += " via "+source;
- }
- if(!auth.equals("")) res.add(auth);
- if(lien != null) {
- res.add("Plus d'infos sur "+lien);
- }
- return res;
- }
- }
|