From d1bb1251272500934416ddb744c5ef9df616c594 Mon Sep 17 00:00:00 2001
From: Alexandre Morignot <erdnaxeli@gmail.com>
Date: Wed, 2 Jan 2013 20:30:05 +0100
Subject: [PATCH] Fichier de configuration YAML
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Ce fichier doit se trouver dans le dossier HOME de l'utilisateur, sous
le nom « .playbot ». Les options données dans ce fichier sont écrasées
par celles données en ligne de commande.

Ce fichier peut contenir des options spécifiques pour les plugins. Pour
l'instant, l'ensemble des options sont passées à chaque plugin (mais ça
devrait évoluer).
---
 lib/playbot.rb            |  2 +-
 plugins/youtube_plugin.rb |  3 ++-
 run.rb                    | 11 +++++++++--
 3 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/lib/playbot.rb b/lib/playbot.rb
index 208b8df..33a6ea6 100644
--- a/lib/playbot.rb
+++ b/lib/playbot.rb
@@ -78,7 +78,7 @@ class PlayBot < IRCBot
         handler = SitePlugin.for_site(url)
         return if handler.nil?
 
-        handler = handler.new
+        handler = handler.new(@options)
         content = handler.get(url)
 
         msg(event.channel, "#{content[:title]} | #{content[:author]}")
diff --git a/plugins/youtube_plugin.rb b/plugins/youtube_plugin.rb
index 6bc4710..61aca78 100644
--- a/plugins/youtube_plugin.rb
+++ b/plugins/youtube_plugin.rb
@@ -1,6 +1,7 @@
 require_relative '../lib/site_plugin.rb'
 
 require 'rubygems'
+require 'bundler/setup'
 require 'youtube_it'
 
 # SitePlugin for YouTube
@@ -10,7 +11,7 @@ class YoutubePlugin < SitePlugin
     end
 
     public
-    def initialize
+    def initialize(options)
         @client = YouTubeIt::Client.new
     end
 
diff --git a/run.rb b/run.rb
index 5f25d85..17adda0 100755
--- a/run.rb
+++ b/run.rb
@@ -2,6 +2,7 @@
 
 require 'logger'
 require 'optparse'
+require 'yaml'
 
 require_relative 'lib/playbot'
 
@@ -9,6 +10,7 @@ require_relative 'lib/playbot'
 
 options = {}
 
+# First we read options from command line.
 OptionParser.new do |opts|
     opts.banner = "Usage: ./run.rb [OPTIONS]"
 
@@ -34,9 +36,14 @@ OptionParser.new do |opts|
     end
 end.parse!
 
+# Next we look to an configuration file.
+if File.exists?("#{ENV['HOME']}/.playbot")
+    YAML.load_file("#{ENV['HOME']}/.playbot").each do |k, v|
+        options[k.to_sym] = v unless options.has_key?(k)
+    end
+end
+
 options[:silent] ||= false
-options[:admin] ||= 'moise'
-options[:address] ||= 'irc.iiens.net'
 
 bot = PlayBot.new(
     :address    => options[:address],
-- 
GitLab