Browse Source

Merge branch 'dev'

David Sniperovitch 8 years ago
parent
commit
d65ea754b8
5 changed files with 1552 additions and 2 deletions
  1. 1 0
      .gitignore
  2. 2 1
      .travis.yml
  3. 1 0
      cpanfile
  4. 1540 0
      cpanfile.snapshot
  5. 8 1
      lib/Bartender.pm

+ 1 - 0
.gitignore

@@ -5,3 +5,4 @@ Makefile
 MYMETA.*
 pm_to_blib
 blib
+local

+ 2 - 1
.travis.yml

@@ -1,8 +1,9 @@
 language: perl
 perl:
+  - "5.22"
   - "5.24"
 before_install:
-  - "cpanm Dancer2"
+  - "cpanm Dancer2 URI::Encode"
   - "cp -v config.yml.smp config.yml"
 notifications:
   irc: "chat.freenode.net#pressecitron"

+ 1 - 0
cpanfile

@@ -4,6 +4,7 @@ recommends "YAML"             => "0";
 recommends "URL::Encode::XS"  => "0";
 recommends "CGI::Deurl::XS"   => "0";
 recommends "HTTP::Parser::XS" => "0";
+recommends "URI::Encode"      => "0";
 
 on "test" => sub {
     requires "Test::More"            => "0";

File diff suppressed because it is too large
+ 1540 - 0
cpanfile.snapshot


+ 8 - 1
lib/Bartender.pm

@@ -2,6 +2,7 @@ package Bartender;
 use Dancer2;
 use Data::Dumper;
 use POSIX ();
+use URI::Encode ();
 
 our $VERSION = '0.1';
 die "config.yml not loaded" unless defined config->{appname};
@@ -26,7 +27,7 @@ get '/shake' => sub {
     }
 
     for($opt_base, $opt_garde) {
-        if(not m/^https?:\/\/pad\.exegetes\.eu\.org\/p\//i ) {
+        if(not m/^https?:\/\/pad\.exegetes\.eu\.org\/(?:p|group\.html\/\d+\/pad\.html)\/g\./i ) {
             $error->{message} .= qq{"$_" est incorrect.};
         }
     }
@@ -43,6 +44,12 @@ get '/shake' => sub {
         return template 'error', $error;
     }
 
+    my $uri_encode_opts = {
+        encode_reserved => 1,
+        double_encode   => 0,
+    };
+    $opt_base  = URI::Encode::uri_encode($opt_base,  $uri_encode_opts);
+    $opt_garde = URI::Encode::uri_encode($opt_garde, $uri_encode_opts);
     system("$cocktail_binary -d $opt_dossier -b '$opt_base' -g '$opt_garde' -p $opt_projet &");
     redirect request->referer;
 };