json-file.pl 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. #/usr/lib/perl
  2. use strict;
  3. use warnings;
  4. binmode STDOUT, ":utf8";
  5. use utf8;
  6. use JSON;
  7. # FAI variables
  8. my $nb_adh = 0; # nombre d'adhérents
  9. my $nb_abo = 0; # nombre d'abonnés
  10. my $site = ""; # site web
  11. my $salon = ""; # salon irc/xmpp
  12. my $statut = 0; # étape de 1 à 8 du FAI
  13. my $date_crea = ""; # date de la création de l'asso
  14. my $date_jffdn = ""; # date de la rentrée dans la fédé
  15. my $contact = ""; # email de contact
  16. my $description = ""; # description de l'asso
  17. # variables des dossiers
  18. my $dump_dir = "dump";
  19. my $wrk_dir = "wrk-dir";
  20. sub info{
  21. my $fai = shift @_;
  22. my $json;
  23. {
  24. local $/; #Enable 'slurp' mode
  25. open my $fh, "<", "/home/canouan/bot-irc/". $dump_dir."/". $fai;
  26. $json = <$fh>;
  27. close $fh;
  28. }
  29. my $data = decode_json($json);
  30. if (!length $data->{"ispformat"}->{"memberCount"}) {
  31. $nb_adh = "N/A";
  32. }
  33. else {
  34. $nb_adh = $data->{"ispformat"}->{"memberCount"};
  35. }
  36. if (!length $data->{"ispformat"}->{"subscriberCount"}) {
  37. $nb_abo = "N/A";
  38. }
  39. else {
  40. $nb_abo = $data->{"ispformat"}->{"subscriberCount"};
  41. }
  42. if (!length $data->{"ispformat"}->{"website"}) {
  43. $site = "N/A";
  44. }
  45. else {
  46. $site = $data->{"ispformat"}->{"website"};
  47. }
  48. if (!length $data->{"ispformat"}->{"chatrooms"}) {
  49. $salon = "N/A";
  50. }
  51. else {
  52. $salon = $data->{"ispformat"}->{"chatrooms"}->[0];
  53. }
  54. if (!length $data->{"ispformat"}->{"progressStatus"}) {
  55. $statut = "N/A";
  56. }
  57. else {
  58. $statut = $data->{"ispformat"}->{"progressStatus"};
  59. }
  60. if (!length $data->{"ispformat"}->{"creationDate"}) {
  61. $date_crea = "N/A";
  62. }
  63. else{
  64. $date_crea = $data->{"ispformat"}->{"creationDate"};
  65. }
  66. if (!length $data->{"ispformat"}->{"ffdnMemberSince"}) {
  67. $date_jffdn = "N/A";
  68. }
  69. else {
  70. $date_jffdn = $data->{"ispformat"}->{"ffdnMemberSince"};
  71. }
  72. if (!length $data->{"ispformat"}->{"email"}) {
  73. $contact = "N/A";
  74. }
  75. else {
  76. $contact = $data->{"ispformat"}->{"email"};
  77. }
  78. if (!length $data->{"ispformat"}->{"description"}) {
  79. $description = "N/A";
  80. }
  81. else {
  82. $description = $data->{"ispformat"}->{"description"};
  83. }
  84. my $filename = "/home/canouan/bot-irc/wrk-dir/". $fai.".info";
  85. my $fh2;
  86. open ($fh2, '>', $filename) or die "Impossible d'ouvrir le fichier $filename en écriture";
  87. # print $fh2 "Description : ". $description . " Le site est ". $site .". Le salon pour discuter est : ". $salon ." et le mail de contact est : ". $contact . ". Ce FAI a été crée le ". $date_crea ." et il a rejoint la fédé le ". $date_jffdn ."\n";
  88. print $fh2 $description . ". Site : ". $site ." - Salon de discussion : ". $salon ." - Adresse de contact : ". $contact . " - Crée le ". $date_crea .", il a rejoint la fédé le ". $date_jffdn ."\n";
  89. close $fh2;
  90. }
  91. sub adh{
  92. my $fai = shift @_;
  93. my $json;
  94. {
  95. local $/; #Enable 'slurp' mode
  96. open my $fh, "<", "/home/canouan/bot-irc/dump/". $fai;
  97. $json = <$fh>;
  98. close $fh;
  99. }
  100. my $data = decode_json($json);
  101. if (!length $data->{"ispformat"}->{"memberCount"}) {
  102. $nb_adh = "N/A";
  103. }
  104. else {
  105. $nb_adh = $data->{"ispformat"}->{"memberCount"};
  106. }
  107. if (!length $data->{"ispformat"}->{"subscriberCount"}) {
  108. $nb_abo = "N/A";
  109. }
  110. else {
  111. $nb_abo = $data->{"ispformat"}->{"subscriberCount"};
  112. }
  113. my $filename = "/home/canouan/bot-irc/wrk-dir/". $fai.".adh";
  114. my $fh2;
  115. open ($fh2, '>', $filename) or die "Impossible d'ouvrir le fichier $filename en écriture";
  116. print $fh2 $nb_adh ." adhérent·e·s (et ".$nb_abo." abonné·e·s).\n";
  117. close $fh2;
  118. }
  119. sub adh{
  120. my $fai = shift @_;
  121. my $json;
  122. {
  123. local $/; #Enable 'slurp' mode
  124. open my $fh, "<", "/home/canouan/bot-irc/dump/". $fai;
  125. $json = <$fh>;
  126. close $fh;
  127. }
  128. my $data = decode_json($json);
  129. unless (!length $data->{"ispformat"}->{"memberCount"}) {
  130. $nb_adh = $data->{"ispformat"}->{"memberCount"};
  131. }
  132. unless (!length $data->{"ispformat"}->{"subscriberCount"}) {
  133. $nb_abo = $data->{"ispformat"}->{"subscriberCount"};
  134. }
  135. my $filenameadh = "/home/canouan/bot-irc/wrk-dir/ffdn.adh";
  136. my $filenameabo = "/home/canouan/bot-irc/wrk-dir/ffdn.abo";
  137. my $fh2;
  138. open ($fh2, '>', $filename) or die "Impossible d'ouvrir le fichier $filename en écriture";
  139. print $fh2 $nb_adh ." adhérent·e·s (et ".$nb_abo." abonné·e·s).\n";
  140. close $fh2;
  141. }
  142. # sub readlol {
  143. # my $fai = shift @_;
  144. # my $filename = "/home/canouan/bot-irc/". $wrk_dir."/". $fai;
  145. # my $fh;
  146. # open ($fh, '<', $filename) or die "Impossible d'ouvrir le fichier $filename en lecture";
  147. # while (my $line = <$fh>)
  148. # {
  149. # print $line;
  150. # }
  151. # close $fh;
  152. # }
  153. my @filesdump = </home/canouan/bot-irc/dump/*>;
  154. my $filedump;
  155. foreach $filedump (@filesdump) {
  156. $filedump =~ s{/home/canouan/bot-irc/dump/}{};
  157. info ("$filedump");
  158. }
  159. foreach $filedump (@filesdump) {
  160. $filedump =~ s{/home/canouan/bot-irc/dump/}{};
  161. adh ("$filedump");
  162. }
  163. my $adh_ffdn;
  164. foreach $filedump (@filesdump) {
  165. $filedum^=~ s{/home/canouan/bot-irc/dump/}{};
  166. adh_ffdn ("filedump");
  167. }