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