From 1abb7c35a37945be531683062ef803147bef8f14 Mon Sep 17 00:00:00 2001
From: Alexandre Morignot <erdnaxeli@cervoi.se>
Date: Sun, 29 Nov 2015 12:26:33 +0100
Subject: [PATCH] Use PlayBot:: namespace, no more 'use lib'

---
 PlayBot.pl                                  |  8 +--
 {lib => PlayBot}/commands/fav.pm            |  2 +-
 {lib => PlayBot}/commands/get.pm            | 21 ++++---
 {lib => PlayBot}/commands/get/query.pm      |  2 +-
 {lib => PlayBot}/commands/later.pm          |  2 +-
 {lib => PlayBot}/commands/parser.pm         | 61 ++++++++++-----------
 {lib => PlayBot}/commands/stats.pm          | 13 ++---
 {lib => PlayBot}/commands/tag.pm            |  2 +-
 PlayBot/sessions/downloader.pm              | 44 +++++++++++++++
 {lib => PlayBot}/sessions/downloader/ddl.pm | 11 ++--
 {lib => PlayBot}/sessions/facebook.pm       |  8 +--
 {lib => PlayBot}/sessions/irc.pm            | 28 +++++-----
 {lib => PlayBot}/sessions/irc/later.pm      |  5 +-
 {lib => PlayBot}/sites/dailymotion.pm       |  2 +-
 {lib => PlayBot}/sites/mixcloud.pm          |  2 +-
 {lib => PlayBot}/sites/parser.pm            | 36 ++++++------
 {lib => PlayBot}/sites/soundcloud.pm        |  2 +-
 {lib => PlayBot}/sites/youtube.pm           |  2 +-
 {lib => PlayBot}/sites/zippy.pm             |  2 +-
 {lib => PlayBot}/utils/Logging.pm           |  2 +-
 {lib => PlayBot}/utils/db.pm                |  2 +-
 {lib => PlayBot}/utils/db/get.pm            | 10 ++--
 {lib => PlayBot}/utils/db/stats.pm          |  7 +--
 {lib => PlayBot}/utils/id.pm                |  2 +-
 {lib => PlayBot}/utils/print.pm             |  2 +-
 lib/sessions/downloader.pm                  | 45 ---------------
 26 files changed, 153 insertions(+), 170 deletions(-)
 rename {lib => PlayBot}/commands/fav.pm (95%)
 rename {lib => PlayBot}/commands/get.pm (87%)
 rename {lib => PlayBot}/commands/get/query.pm (98%)
 rename {lib => PlayBot}/commands/later.pm (94%)
 rename {lib => PlayBot}/commands/parser.pm (73%)
 rename {lib => PlayBot}/commands/stats.pm (62%)
 rename {lib => PlayBot}/commands/tag.pm (93%)
 create mode 100644 PlayBot/sessions/downloader.pm
 rename {lib => PlayBot}/sessions/downloader/ddl.pm (96%)
 rename {lib => PlayBot}/sessions/facebook.pm (86%)
 rename {lib => PlayBot}/sessions/irc.pm (90%)
 rename {lib => PlayBot}/sessions/irc/later.pm (62%)
 rename {lib => PlayBot}/sites/dailymotion.pm (94%)
 rename {lib => PlayBot}/sites/mixcloud.pm (94%)
 rename {lib => PlayBot}/sites/parser.pm (84%)
 rename {lib => PlayBot}/sites/soundcloud.pm (95%)
 rename {lib => PlayBot}/sites/youtube.pm (97%)
 rename {lib => PlayBot}/sites/zippy.pm (97%)
 rename {lib => PlayBot}/utils/Logging.pm (99%)
 rename {lib => PlayBot}/utils/db.pm (97%)
 rename {lib => PlayBot}/utils/db/get.pm (96%)
 rename {lib => PlayBot}/utils/db/stats.pm (94%)
 rename {lib => PlayBot}/utils/id.pm (99%)
 rename {lib => PlayBot}/utils/print.pm (98%)
 delete mode 100644 lib/sessions/downloader.pm

diff --git a/PlayBot.pl b/PlayBot.pl
index 61f01e1..4d60c94 100755
--- a/PlayBot.pl
+++ b/PlayBot.pl
@@ -3,12 +3,10 @@ use strict;
 use warnings;
 
 use POE;
-use FindBin;
 
-use lib "$FindBin::Bin/lib/";
-use sessions::irc;
-use sessions::facebook;
-use sessions::downloader;
+use PlayBot::sessions::irc;
+use PlayBot::sessions::facebook;
+use PlayBot::sessions::downloader;
 
 # Boucle des events
 POE::Kernel->run();
diff --git a/lib/commands/fav.pm b/PlayBot/commands/fav.pm
similarity index 95%
rename from lib/commands/fav.pm
rename to PlayBot/commands/fav.pm
index e272864..cc8f3a6 100644
--- a/lib/commands/fav.pm
+++ b/PlayBot/commands/fav.pm
@@ -1,4 +1,4 @@
-package commands::fav;
+package PlayBot::commands::fav;
 
 our $dbh;
 our $log;
diff --git a/lib/commands/get.pm b/PlayBot/commands/get.pm
similarity index 87%
rename from lib/commands/get.pm
rename to PlayBot/commands/get.pm
index 3ed7283..133e6cf 100644
--- a/lib/commands/get.pm
+++ b/PlayBot/commands/get.pm
@@ -1,14 +1,13 @@
-package commands::get;
+package PlayBot::commands::get;
 
 use strict;
 use warnings;
 
-use lib "$FindBin::Bin/lib/";
-use utils::print;
-use utils::db;
-use utils::db::get;
+use PlayBot::utils::print;
+use PlayBot::utils::db;
+use PlayBot::utils::db::get;
 
-use commands::get::query;
+use PlayBot::commands::get::query;
 
 our $irc;
 our $log;
@@ -16,12 +15,12 @@ our $log;
 sub exec {
 	my ($chan, $msg, $chan_src) = @_;
 
-    my $query = commands::get::query->new(
+    my $query = PlayBot::commands::get::query->new(
         chan => $chan,
         query  => ($msg) ? $msg : ''
     );
 
-    my $db_query = utils::db::get->new();
+    my $db_query = PlayBot::utils::db::get->new();
     my $rows = $db_query->get_rows($query);
 
     if (scalar @{$query->tags} == 0
@@ -46,7 +45,7 @@ sub exec {
 
             if (not $query->is_global) {
                 # we check is there is result with global
-                my $q = commands::get::query->new(
+                my $q = PlayBot::commands::get::query->new(
                     chan => $query->chan,
                     query  => $query->query . ' -a'
                 );
@@ -71,7 +70,7 @@ sub exec {
         return
     }
 
-    my $dbh = utils::db::main_session();
+    my $dbh = PlayBot::utils::db::main_session();
     my $sth = $dbh->prepare("select tag
         from playbot_tags
         where id = ?
@@ -93,7 +92,7 @@ sub exec {
     $content_h{'duration'} = $content->[4];
     $content_h{'tags'} = \@tags;
 
-    my $irc_msg = utils::print::print(\%content_h);
+    my $irc_msg = PlayBot::utils::print::print(\%content_h);
 
     # if in query
     if ($chan !~ /^#/) {
diff --git a/lib/commands/get/query.pm b/PlayBot/commands/get/query.pm
similarity index 98%
rename from lib/commands/get/query.pm
rename to PlayBot/commands/get/query.pm
index 12f6d8a..c32989f 100644
--- a/lib/commands/get/query.pm
+++ b/PlayBot/commands/get/query.pm
@@ -1,4 +1,4 @@
-package commands::get::query;
+package PlayBot::commands::get::query;
 
 use Moose;
 use overload '~~' => \&_equals;
diff --git a/lib/commands/later.pm b/PlayBot/commands/later.pm
similarity index 94%
rename from lib/commands/later.pm
rename to PlayBot/commands/later.pm
index dd978c1..55c088d 100644
--- a/lib/commands/later.pm
+++ b/PlayBot/commands/later.pm
@@ -1,4 +1,4 @@
-package commands::later;
+package PlayBot::commands::later;
 
 our $dbh;
 our $log;
diff --git a/lib/commands/parser.pm b/PlayBot/commands/parser.pm
similarity index 73%
rename from lib/commands/parser.pm
rename to PlayBot/commands/parser.pm
index 6662b3c..e692b64 100644
--- a/lib/commands/parser.pm
+++ b/PlayBot/commands/parser.pm
@@ -1,15 +1,14 @@
-package commands::parser;
+package PlayBot::commands::parser;
 
 use strict;
 use Try::Tiny;
 
-use lib "$FindBin::Bin/lib/";
-use commands::fav;
-use commands::later;
-use commands::tag;
-use commands::get;
-use commands::stats;
-use utils::id;
+use PlayBot::commands::fav;
+use PlayBot::commands::later;
+use PlayBot::commands::tag;
+use PlayBot::commands::get;
+use PlayBot::commands::stats;
+use PlayBot::utils::id;
 
 my $lastID;
 my $irc;
@@ -23,20 +22,20 @@ my %command;
 sub setConf {
     my ($ircNew, $dbhNew, $log, $lastIDnew) = @_;
 
-    $commands::fav::dbh = $dbhNew;
-    $commands::tag::dbh = $dbhNew;
-    $commands::later::dbh = $dbhNew;
-    $utils::id::dbh = $dbhNew;
+    $PlayBot::commands::fav::dbh = $dbhNew;
+    $PlayBot::commands::tag::dbh = $dbhNew;
+    $PlayBot::commands::later::dbh = $dbhNew;
+    $PlayBot::utils::id::dbh = $dbhNew;
 
-    $commands::fav::log = $log;
-    $commands::tag::log = $log;
-    $commands::get::log = $log;
-    $commands::later::log = $log;
-    $utils::id::log = $log;
+    $PlayBot::commands::fav::log = $log;
+    $PlayBot::commands::tag::log = $log;
+    $PlayBot::commands::get::log = $log;
+    $PlayBot::commands::later::log = $log;
+    $PlayBot::utils::id::log = $log;
 
-    $commands::fav::irc = $ircNew;
-    $commands::get::irc = $ircNew;
-    $commands::stats::irc = $ircNew;
+    $PlayBot::commands::fav::irc = $ircNew;
+    $PlayBot::commands::get::irc = $ircNew;
+    $PlayBot::commands::stats::irc = $ircNew;
 
     $lastID = $lastIDnew;
     $irc = $ircNew;
@@ -54,8 +53,8 @@ sub exec {
     if ($msg =~ /^ *!fav(?: (\S+))? *$/) {
         my $index = $1;
         try {
-            my $id = utils::id::get($chan, $index);
-            commands::fav::exec($nick, $id)
+            my $id = PlayBot::utils::id::get($chan, $index);
+            PlayBot::commands::fav::exec($nick, $id)
         } catch {
             $irc->yield(privmsg => $chan => $insultes[rand @insultes]);
         }
@@ -65,8 +64,8 @@ sub exec {
         my ($time, $unit) = ($2, $3);
 
         try {
-            my $id = utils::id::get($chan, $index);
-            commands::later::exec($kernel, $nick, $id, $chan, $time, $unit);
+            my $id = PlayBot::utils::id::get($chan, $index);
+            PlayBot::commands::later::exec($kernel, $nick, $id, $chan, $time, $unit);
         } catch {
             $irc->yield(privmsg => $chan => $insultes[rand @insultes]);
         };
@@ -84,8 +83,8 @@ sub exec {
         }
 
         try {
-            $id = utils::id::get($chan, $index);
-            commands::tag::exec($id, $tags);
+            $id = PlayBot::utils::id::get($chan, $index);
+            PlayBot::commands::tag::exec($id, $tags);
         } catch {
             $irc->yield(privmsg => $chan => $insultes[rand @insultes]);
         };
@@ -93,7 +92,7 @@ sub exec {
     elsif ($msg =~ /^( *!get)(?: +.*)?$/) {
         my $query = substr $msg, (length $1) + 1;
         my @args = ($chan, $query);
-        my $id = commands::get::exec(@args);
+        my $id = PlayBot::commands::get::exec(@args);
 
         if ($id) {
             $lastID->{$chan} = $id;
@@ -102,8 +101,8 @@ sub exec {
     elsif ($msg =~ /^ *!stats(?: (\S+))? *$/) {
         my $index = $1;
         try {
-            my $id = utils::id::get($chan, $index);
-            commands::stats::exec($chan, $id)
+            my $id = PlayBot::utils::id::get($chan, $index);
+            PlayBot::commands::stats::exec($chan, $id)
         } catch {
             $irc->yield(privmsg => $chan => $insultes[rand @insultes]);
         }
@@ -136,8 +135,8 @@ sub tag {
     my ($msg, $chan) = @_;
     my @tags = ($msg =~ /(?:^| )(#[a-zA-Z0-9_]+)/g);
 
-    my $id = utils::id::get($chan);
-    commands::tag::exec($id, "@tags");
+    my $id = PlayBot::utils::id::get($chan);
+    PlayBot::commands::tag::exec($id, "@tags");
 
     return @tags;
 }
diff --git a/lib/commands/stats.pm b/PlayBot/commands/stats.pm
similarity index 62%
rename from lib/commands/stats.pm
rename to PlayBot/commands/stats.pm
index f048098..e7ca7b7 100644
--- a/lib/commands/stats.pm
+++ b/PlayBot/commands/stats.pm
@@ -1,12 +1,11 @@
-package commands::stats;
+package PlayBot::commands::stats;
 
 use strict;
 use warnings;
 
-use lib "$FindBin::Bin/lib/";
-use utils::print;
-use utils::db;
-use utils::db::stats;
+use PlayBot::utils::print;
+use PlayBot::utils::db;
+use PlayBot::utils::db::stats;
 
 our $irc;
 
@@ -15,9 +14,9 @@ my @insultes = ("Ahahahah ! 23 à 0 !", "C'est la piquette, Jack !", "Tu sais pa
 sub exec {
 	my ($chan, $id) = @_;
 
-    my $stats = utils::db::stats->new($id);
+    my $stats = PlayBot::utils::db::stats->new($id);
     if ($stats) {
-        foreach (utils::print::stats($stats)) {
+        foreach (PlayBot::utils::print::stats($stats)) {
             $irc->yield(privmsg => $chan => $_) if ($_);
         }
     }
diff --git a/lib/commands/tag.pm b/PlayBot/commands/tag.pm
similarity index 93%
rename from lib/commands/tag.pm
rename to PlayBot/commands/tag.pm
index aba63b6..719ae87 100644
--- a/lib/commands/tag.pm
+++ b/PlayBot/commands/tag.pm
@@ -1,4 +1,4 @@
-package commands::tag;
+package PlayBot::commands::tag;
 
 our $dbh;
 our $log;
diff --git a/PlayBot/sessions/downloader.pm b/PlayBot/sessions/downloader.pm
new file mode 100644
index 0000000..7eed2a7
--- /dev/null
+++ b/PlayBot/sessions/downloader.pm
@@ -0,0 +1,44 @@
+package PlayBot::sessions::downloader;
+
+use strict;
+use warnings;
+
+use JSON;
+use POE;
+
+use PlayBot::utils::Logging;
+use PlayBot::sessions::downloader::ddl;
+
+my $log = PlayBot::utils::Logging->new('STDOUT', 1);
+
+local $/;
+open CONF, '<', 'playbot.conf';
+my $json = <CONF>;
+my $conf = decode_json($json);
+
+if ($conf->{download})
+{
+    POE::Session->create(
+        inline_states   => {
+            _start          => \&on_start,
+            ddl             => \&PlayBot::sessions::downloader::ddl::exec,
+            filename        => \&PlayBot::sessions::downloader::ddl::filename,
+            signal_filename => \&PlayBot::sessions::downloader::ddl::signal_filename,
+            signal_ddl      => \&PlayBot::sessions::downloader::ddl::signal_ddl,
+            signal_move     => \&PlayBot::sessions::downloader::ddl::signal_move,
+            signal_rm       => \&PlayBot::sessions::downloader::ddl::signal_rm,
+            end_task        => \&PlayBot::sessions::downloader::ddl::end_task,
+        },
+    );
+}
+
+
+sub on_start {
+    my ($kernel, $heap) = @_[KERNEL, HEAP];
+    $kernel->alias_set('downloader');
+    $heap->{ddl}->{tasks} = [];
+
+    $log->info("session started");
+}
+
+1;
diff --git a/lib/sessions/downloader/ddl.pm b/PlayBot/sessions/downloader/ddl.pm
similarity index 96%
rename from lib/sessions/downloader/ddl.pm
rename to PlayBot/sessions/downloader/ddl.pm
index 1a91a64..992117b 100644
--- a/lib/sessions/downloader/ddl.pm
+++ b/PlayBot/sessions/downloader/ddl.pm
@@ -1,4 +1,4 @@
-package sessions::downloader::ddl;
+package PlayBot::sessions::downloader::ddl;
 
 use strict;
 use warnings;
@@ -7,11 +7,10 @@ use JSON;
 use POE;
 use POE::Wheel::Run;
 
-use lib "$FindBin::Bin/lib/";
-use utils::db;
-use utils::Logging;
+use PlayBot::utils::db;
+use PlayBot::utils::Logging;
 
-my $log = Logging->new('STDOUT', 1);
+my $log = PlayBot::utils::Logging->new('STDOUT', 1);
 my $conf;
 
 BEGIN {
@@ -163,7 +162,7 @@ sub signal_move {
 
     # we update db
     eval {
-        utils::db::set_filename($id, $heap->{ddl}->{pb}->{$id}->{filename});
+        PlayBot::utils::db::set_filename($id, $heap->{ddl}->{pb}->{$id}->{filename});
         $kernel->yield("end_task", $id);
     };
     if ($a) {
diff --git a/lib/sessions/facebook.pm b/PlayBot/sessions/facebook.pm
similarity index 86%
rename from lib/sessions/facebook.pm
rename to PlayBot/sessions/facebook.pm
index fb646c2..a083c37 100644
--- a/lib/sessions/facebook.pm
+++ b/PlayBot/sessions/facebook.pm
@@ -1,4 +1,4 @@
-package sessions::facebook;
+package PlayBot::sessions::facebook;
 
 # This session have only one event to receive a message from the Facebook
 # group. The args are, in order :
@@ -10,12 +10,10 @@ use warnings;
 
 use POE;
 use POE::Component::IKC::Server;
-use FindBin;
 
-use lib "$FindBin::Bin/lib/";
-use utils::Logging;
+use PlayBot::utils::Logging;
 
-my $log = Logging->new('STDOUT', 1);
+my $log = PlayBot::utils::Logging->new('STDOUT', 1);
 
 POE::Component::IKC::Server->spawn(
     unix => 'playbot.sock',
diff --git a/lib/sessions/irc.pm b/PlayBot/sessions/irc.pm
similarity index 90%
rename from lib/sessions/irc.pm
rename to PlayBot/sessions/irc.pm
index cd944aa..6a3d4c1 100644
--- a/lib/sessions/irc.pm
+++ b/PlayBot/sessions/irc.pm
@@ -1,4 +1,4 @@
-package sessions::irc;
+package PlayBot::sessions::irc;
 
 use strict;
 use warnings;
@@ -10,15 +10,13 @@ use POSIX 'strftime';
 use Tie::File;
 use JSON;
 use Module::Reload;
-use FindBin;
 
-use lib "$FindBin::Bin/lib/";
-use utils::Logging;
-use sessions::irc::later;
-use sites::parser;
-use commands::parser;
+use PlayBot::utils::Logging;
+use PlayBot::sessions::irc::later;
+use PlayBot::sites::parser;
+use PlayBot::commands::parser;
 
-my $log = Logging->new('STDOUT', 1);
+my $log = PlayBot::utils::Logging->new('STDOUT', 1);
 
 local $/;
 open CONF, '<', 'playbot.conf';
@@ -67,7 +65,7 @@ POE::Session->create(
         irc_notice => \&on_notice,
 		_flux	   => \&flux,
         _later     => sub {
-            sessions::irc::later::consume(@_[ARG0, ARG1, ARG2])
+            PlayBot::sessions::irc::later::consume(@_[ARG0, ARG1, ARG2])
         }
 	},
 );
@@ -116,10 +114,10 @@ sub cycle
 
 sub setConf 
 {
-    commands::parser::setConf($irc, $dbh, $log, \%lastID);
+    PlayBot::commands::parser::setConf($irc, $dbh, $log, \%lastID);
 
-    $sites::parser::irc = $irc;
-    $sites::parser::log = $log;
+    $PlayBot::sites::parser::irc = $irc;
+    $PlayBot::sites::parser::log = $log;
 }
 
 
@@ -173,7 +171,7 @@ sub on_query
     my $fake_chan = $nick;
     my @args = ($kernel, $user, $fake_chan, $msg);
 
-    return if (commands::parser::exec(@args));
+    return if (PlayBot::commands::parser::exec(@args));
 
 	if ($msg =~ m/^!/ && $nick eq $admin) {
 		my $commande = ( $msg =~ m/^!([^ ]*)/ )[0]; 
@@ -258,7 +256,7 @@ sub on_speak
 	my %content;
 
     # first we check for url
-    my @processed_str = sites::parser::parse(@args);
+    my @processed_str = PlayBot::sites::parser::parse(@args);
 
     # we remove any part processed (url and tags)
     foreach (@processed_str) {
@@ -267,7 +265,7 @@ sub on_speak
 
     # and we check for command
     @args = ($kernel, $user, lc $chan->[0], $msg);
-    commands::parser::exec(@args);
+    PlayBot::commands::parser::exec(@args);
 }
 
 1;
diff --git a/lib/sessions/irc/later.pm b/PlayBot/sessions/irc/later.pm
similarity index 62%
rename from lib/sessions/irc/later.pm
rename to PlayBot/sessions/irc/later.pm
index 4eb2800..993dd6b 100644
--- a/lib/sessions/irc/later.pm
+++ b/PlayBot/sessions/irc/later.pm
@@ -1,7 +1,6 @@
-package sessions::irc::later;
+package PlayBot::sessions::irc::later;
 
-use lib "$FindBin::Bin/lib/";
-use commands::get;
+use PlayBot::commands::get;
 
 sub consume
 {
diff --git a/lib/sites/dailymotion.pm b/PlayBot/sites/dailymotion.pm
similarity index 94%
rename from lib/sites/dailymotion.pm
rename to PlayBot/sites/dailymotion.pm
index 095f282..c1f0c52 100644
--- a/lib/sites/dailymotion.pm
+++ b/PlayBot/sites/dailymotion.pm
@@ -1,4 +1,4 @@
-package dailymotion;
+package PlayBot::sites::dailymotion;
 
 use Inline Python => 'DATA';
 
diff --git a/lib/sites/mixcloud.pm b/PlayBot/sites/mixcloud.pm
similarity index 94%
rename from lib/sites/mixcloud.pm
rename to PlayBot/sites/mixcloud.pm
index 5d4d21a..1825a68 100644
--- a/lib/sites/mixcloud.pm
+++ b/PlayBot/sites/mixcloud.pm
@@ -1,4 +1,4 @@
-package mixcloud;
+package PlayBot::sites::mixcloud;
 
 use LWP::UserAgent;
 use JSON;
diff --git a/lib/sites/parser.pm b/PlayBot/sites/parser.pm
similarity index 84%
rename from lib/sites/parser.pm
rename to PlayBot/sites/parser.pm
index bd481dd..00df7cb 100644
--- a/lib/sites/parser.pm
+++ b/PlayBot/sites/parser.pm
@@ -1,16 +1,14 @@
-package sites::parser;
+package PlayBot::sites::parser;
 
-use lib "$FindBin::Bin/lib/sites/";
-use youtube;
-use soundcloud;
-use mixcloud;
-use zippy;
-use dailymotion;
+use PlayBot::sites::youtube;
+use PlayBot::sites::soundcloud;
+use PlayBot::sites::mixcloud;
+use PlayBot::sites::zippy;
+use PlayBot::sites::dailymotion;
 
-use lib "$FindBin::Bin/lib/";
-use utils::db;
-use utils::print;
-use commands::parser;
+use PlayBot::utils::db;
+use PlayBot::utils::print;
+use PlayBot::commands::parser;
 
 our $irc;
 our $log;
@@ -21,32 +19,32 @@ sub parse {
 
     my %content;
     my $id;
-    my $dbh = utils::db::main_session();
+    my $dbh = PlayBot::utils::db::main_session();
 
     # parsing
     if ($msg =~ m#(?:^|[^!])https?://(?:www.youtube.com/watch\?[a-zA-Z0-9_=&-]*v=|youtu.be/)([a-zA-Z0-9_-]+)#) {
-		eval { %content = youtube::get($1) };
+		eval { %content = PlayBot::sites::youtube::get($1) };
 
 		$content{'site'} = 'youtube';
         $content{'url'} = 'https://www.youtube.com/watch?v='.$1;
 	}
 	elsif ($msg =~ m#(^|[^!])https?://soundcloud.com/([a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+)(?:\?.+)?#) {
 		my $url = 'https://www.soundcloud.com/'.$2;
-		eval { %content = soundcloud::get($url) };
+		eval { %content = PlayBot::sites::soundcloud::get($url) };
 		$content{'site'} = 'soundcloud';
 	}
 	elsif ($msg =~ m#(^|[^!])https?://www.mixcloud.com/([a-zA-Z0-9-_]+/[a-zA-Z0-9-_]+)#) {
 		my $url = 'https://www.mixcloud.com/'.$2;
-		eval { %content = mixcloud::get($url) };
+		eval { %content = PlayBot::sites::mixcloud::get($url) };
 		$content{'site'} = 'mixcloud';
 	}
 	elsif ($msg =~ m#((^|[^!])http://www[0-9]+.zippyshare.com/v/[0-9]+/file.html)#) {
 		my $url = $1;
-		eval { %content = zippy::get($url) };
+		eval { %content = PlayBot::sites::zippy::get($url) };
 		$content{'site'} = 'zippyshare';
 	}
     elsif ($msg =~ m#(?:^|[^!])https?://www.dailymotion.com/video/([a-z0-9]+)#) {
-        eval { %content = dailymotion::get($1) };
+        eval { %content = PlayBot::sites::dailymotion::get($1) };
 
         $content{'site'} = 'dailymotion';
         $content{'url'} = 'https://www.dailymotion.com/video/' . $1;
@@ -123,7 +121,7 @@ sub parse {
 
         $dbh->commit;
 
-        @matching_tags = commands::parser::tag($msg, $chan);
+        @matching_tags = PlayBot::commands::parser::tag($msg, $chan);
 
         my @tags;
         # get tags
@@ -153,7 +151,7 @@ sub parse {
         delete $content{'url'};
 
         # message sur irc
-		$irc->yield(privmsg => $chan => utils::print::print(\%content));
+		$irc->yield(privmsg => $chan => PlayBot::utils::print::print(\%content));
     }
 
     return (
diff --git a/lib/sites/soundcloud.pm b/PlayBot/sites/soundcloud.pm
similarity index 95%
rename from lib/sites/soundcloud.pm
rename to PlayBot/sites/soundcloud.pm
index ef82118..9945872 100644
--- a/lib/sites/soundcloud.pm
+++ b/PlayBot/sites/soundcloud.pm
@@ -1,4 +1,4 @@
-package soundcloud;
+package PlayBot::sites::soundcloud;
 
 use LWP::UserAgent;
 use JSON;
diff --git a/lib/sites/youtube.pm b/PlayBot/sites/youtube.pm
similarity index 97%
rename from lib/sites/youtube.pm
rename to PlayBot/sites/youtube.pm
index 6104baa..b6cd65f 100644
--- a/lib/sites/youtube.pm
+++ b/PlayBot/sites/youtube.pm
@@ -1,4 +1,4 @@
-package youtube;
+package PlayBot::sites::youtube;
 
 use LWP::UserAgent;
 use JSON;
diff --git a/lib/sites/zippy.pm b/PlayBot/sites/zippy.pm
similarity index 97%
rename from lib/sites/zippy.pm
rename to PlayBot/sites/zippy.pm
index fc77b40..e6ecee6 100644
--- a/lib/sites/zippy.pm
+++ b/PlayBot/sites/zippy.pm
@@ -1,4 +1,4 @@
-package zippy;
+package PlayBot::sites::zippy;
 
 use LWP::UserAgent;
 use HTML::Parser;
diff --git a/lib/utils/Logging.pm b/PlayBot/utils/Logging.pm
similarity index 99%
rename from lib/utils/Logging.pm
rename to PlayBot/utils/Logging.pm
index 6b7085b..1ed4690 100644
--- a/lib/utils/Logging.pm
+++ b/PlayBot/utils/Logging.pm
@@ -1,4 +1,4 @@
-package Logging;
+package PlayBot::utils::Logging;
 
 # ==============[ Classe pour gérer les logs correctement ]============== #
 #  Date : 29/10/2010                                                      #
diff --git a/lib/utils/db.pm b/PlayBot/utils/db.pm
similarity index 97%
rename from lib/utils/db.pm
rename to PlayBot/utils/db.pm
index 9ef3bdb..9a9498d 100644
--- a/lib/utils/db.pm
+++ b/PlayBot/utils/db.pm
@@ -1,4 +1,4 @@
-package utils::db;
+package PlayBot::utils::db;
 
 use strict;
 use warnings;
diff --git a/lib/utils/db/get.pm b/PlayBot/utils/db/get.pm
similarity index 96%
rename from lib/utils/db/get.pm
rename to PlayBot/utils/db/get.pm
index d7bf971..03139d4 100644
--- a/lib/utils/db/get.pm
+++ b/PlayBot/utils/db/get.pm
@@ -1,11 +1,9 @@
-package utils::db::get;
+package PlayBot::utils::db::get;
 
 use feature 'state';
 use Moose;
-use FindBin;
 
-use lib "$FindBin::Bin/lib/";
-use utils::db;
+use PlayBot::utils::db;
 
 
 has '_dbh' => (
@@ -52,7 +50,7 @@ sub get {
 sub get_rows {
     my ($self, $query) = @_;
 
-    my $dbh = utils::db::get_new_session();
+    my $dbh = PlayBot::utils::db::get_new_session();
     my ($request, @args) = $self->_prepare_request($query);
 
     my $sth = $dbh->prepare('select count(*) from ('.$request.') as TGTGTG');
@@ -184,7 +182,7 @@ sub _get_dbh {
     if (not defined $self->_dbh->{$chan} or
         not $self->_dbh->{$chan}->ping
     ) {
-        $self->_dbh->{$chan} = utils::db::get_new_session();
+        $self->_dbh->{$chan} = PlayBot::utils::db::get_new_session();
     }
 
     return $self->_dbh->{$chan};
diff --git a/lib/utils/db/stats.pm b/PlayBot/utils/db/stats.pm
similarity index 94%
rename from lib/utils/db/stats.pm
rename to PlayBot/utils/db/stats.pm
index 5d9139a..166fbc8 100644
--- a/lib/utils/db/stats.pm
+++ b/PlayBot/utils/db/stats.pm
@@ -1,11 +1,10 @@
-package utils::db::stats;
+package PlayBot::utils::db::stats;
 
 use Moose;
 use FindBin;
 use List::Util qw( reduce );
 
-use lib "$FindBin::Bin/lib/";
-use utils::db;
+use PlayBot::utils::db;
 
 
 has 'sender'    => (is => 'ro', isa => 'Str');
@@ -27,7 +26,7 @@ around 'BUILDARGS' => sub {
     my $senders = {};
     my $channels = {};
 
-    my $dbh = utils::db::main_session;
+    my $dbh = PlayBot::utils::db::main_session;
     my $sth = $dbh->prepare('
         select
         date, chan, sender_irc
diff --git a/lib/utils/id.pm b/PlayBot/utils/id.pm
similarity index 99%
rename from lib/utils/id.pm
rename to PlayBot/utils/id.pm
index 7a65911..e9d9d59 100644
--- a/lib/utils/id.pm
+++ b/PlayBot/utils/id.pm
@@ -1,4 +1,4 @@
-package utils::id;
+package PlayBot::utils::id;
 
 use strict;
 use Scalar::Util qw(looks_like_number);
diff --git a/lib/utils/print.pm b/PlayBot/utils/print.pm
similarity index 98%
rename from lib/utils/print.pm
rename to PlayBot/utils/print.pm
index bfdd1f3..4c31ecb 100644
--- a/lib/utils/print.pm
+++ b/PlayBot/utils/print.pm
@@ -1,4 +1,4 @@
-package utils::print;
+package PlayBot::utils::print;
 
 use strict;
 
diff --git a/lib/sessions/downloader.pm b/lib/sessions/downloader.pm
deleted file mode 100644
index 9758e9d..0000000
--- a/lib/sessions/downloader.pm
+++ /dev/null
@@ -1,45 +0,0 @@
-package sessions::downloader;
-
-use strict;
-use warnings;
-
-use JSON;
-use POE;
-
-use lib "$FindBin::Bin/lib/";
-use utils::Logging;
-use sessions::downloader::ddl;
-
-my $log = Logging->new('STDOUT', 1);
-
-local $/;
-open CONF, '<', 'playbot.conf';
-my $json = <CONF>;
-my $conf = decode_json($json);
-
-if ($conf->{download})
-{
-    POE::Session->create(
-        inline_states   => {
-            _start          => \&on_start,
-            ddl             => \&sessions::downloader::ddl::exec,
-            filename        => \&sessions::downloader::ddl::filename,
-            signal_filename => \&sessions::downloader::ddl::signal_filename,
-            signal_ddl      => \&sessions::downloader::ddl::signal_ddl,
-            signal_move     => \&sessions::downloader::ddl::signal_move,
-            signal_rm       => \&sessions::downloader::ddl::signal_rm,
-            end_task        => \&sessions::downloader::ddl::end_task,
-        },
-    );
-}
-
-
-sub on_start {
-    my ($kernel, $heap) = @_[KERNEL, HEAP];
-    $kernel->alias_set('downloader');
-    $heap->{ddl}->{tasks} = [];
-
-    $log->info("session started");
-}
-
-1;
-- 
GitLab