RP.java 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. package actions;
  2. import java.io.File;
  3. import java.io.FileNotFoundException;
  4. import java.io.IOException;
  5. import java.io.PrintWriter;
  6. import java.io.UnsupportedEncodingException;
  7. import java.util.ArrayList;
  8. import java.util.Date;
  9. import java.util.List;
  10. import data.Message;
  11. import main.Bot;
  12. import main.Main;
  13. import main.PropertiesSetter;
  14. /**
  15. * Méthode pour gérer la sauvegarde de liens dans un fichier pour en faire une revue de presse.
  16. * @author marmat
  17. *
  18. */
  19. public class RP extends Action {
  20. public File rpFile;
  21. /**
  22. * Crée le fichier si il n'existe pas et prépare la possibilité d'utiliser l'action rp.
  23. * @param b bot b
  24. */
  25. protected RP(Bot b) {
  26. super(b);
  27. List<String> ar = new ArrayList<>();
  28. ar.add("rp");
  29. ar.add("citation");
  30. this.keyWords = ar;
  31. rpFile = new File(PropertiesSetter.here+File.separator+"ressources"+File.separator+"rp"+File.separator+"index.txt");
  32. boolean fileExists = rpFile.exists();
  33. if(!fileExists) {
  34. if(Main.isDebug()) {
  35. System.out.println("Le fichier de RP "+rpFile.getAbsolutePath()+" n'existe pas, je le crée");
  36. }
  37. try {
  38. if(!rpFile.createNewFile()) {
  39. throw new Exception("impossible de creer le fichier");
  40. }
  41. } catch (Exception e) {
  42. System.err.println("Erreur a la création du fichier de RP :");
  43. e.printStackTrace();
  44. }
  45. }else {
  46. if(Main.isDebug()) {
  47. System.out.println("Le fichier de RP "+rpFile.getAbsolutePath()+"existe");
  48. }
  49. }
  50. PrintWriter writer = null;
  51. try {
  52. writer = new PrintWriter(rpFile, "UTF-8");
  53. if(!fileExists) {
  54. writer.println("\n");
  55. }
  56. }catch (IOException e) {
  57. System.err.println("Erreur lors de la création du fileWriter du ficher RP:");
  58. e.printStackTrace();
  59. }finally {
  60. writer.close();
  61. }
  62. }
  63. @Override
  64. public String help() {
  65. return "Concatène l'URL indiquée dans un fichier pour les revue de presse";
  66. }
  67. @Override
  68. public void react(String channel, String sender, String login, String hostname, Message message) {
  69. Date now = new Date();
  70. PrintWriter writer = null;
  71. try {
  72. writer = new PrintWriter(rpFile, "UTF-8");
  73. } catch (FileNotFoundException e) {
  74. bot.sendMessageToAdmins("Erreur: Le fichier rp n'existe pas, impossible d'écrire");
  75. bot.sendMessageToAdmins(e.getLocalizedMessage());
  76. e.printStackTrace();
  77. } catch (UnsupportedEncodingException e) {
  78. e.printStackTrace();
  79. }
  80. writer.println(Main.DATE_FORMAT_OUT.format(now)+": "+message.getAllParametersAsOneString());
  81. bot.sendMessage(sender, channel, "Ajout a la RP réussi!");
  82. writer.close();
  83. }
  84. @Override
  85. public List<String> reactL(String channel, String sender, String login, String hostname, Message message) {
  86. List<String> res = new ArrayList<>();
  87. Date now = new Date();
  88. PrintWriter writer = null;
  89. try {
  90. writer = new PrintWriter(rpFile, "UTF-8");
  91. } catch (FileNotFoundException e) {
  92. String s = "Erreur: Le fichier rp n'existe pas, impossible d'écrire";
  93. System.err.println(s);
  94. res.add(s);
  95. e.printStackTrace();
  96. } catch (UnsupportedEncodingException e) {
  97. e.printStackTrace();
  98. }
  99. writer.println(Main.DATE_FORMAT_OUT.format(now)+": "+message.getAllParametersAsOneString());
  100. res.add("Ajout a la RP réussi!");
  101. writer.close();
  102. return res;
  103. }
  104. }