From 97b2ae6eb854cd917d63a29cc1245981e96f438a Mon Sep 17 00:00:00 2001
From: Alexandre Morignot <erdnaxeli@cervoi.se>
Date: Sun, 2 Aug 2015 20:52:20 +0200
Subject: [PATCH] support sueurdemetal.com

---
 Sam/sites/parser.pm       |  4 ++++
 Sam/sites/sueurdemetal.pm | 36 ++++++++++++++++++++++++++++++++++++
 2 files changed, 40 insertions(+)
 create mode 100644 Sam/sites/sueurdemetal.pm

diff --git a/Sam/sites/parser.pm b/Sam/sites/parser.pm
index 4de1a53..815e61b 100644
--- a/Sam/sites/parser.pm
+++ b/Sam/sites/parser.pm
@@ -10,6 +10,7 @@ use Sam::commands::add;
 use Sam::commands::edit;
 
 use Sam::sites::residentadvisor;
+use Sam::sites::sueurdemetal;
 
 my $nick;
 my $irc;
@@ -33,6 +34,9 @@ sub exec {
     if ($msg =~ /^Sam(?:,|:) +https?:\/\/(?:www.residentadvisor.net\/event.aspx\?)([0-9]+)/) {
         eval { %content = Sam::sites::residentadvisor::get($1) };
 	}
+    elsif ($msg =~ /^Sam(?:,|;) +https?:\/\/(?:www.sueurdemetal.com\/detail-concert-metal.php\?c=)([0-9]+)/) {
+        eval { %content = Sam::sites::sueurdemetal::get($1) };
+    }
     else {
         return 0;
     }
diff --git a/Sam/sites/sueurdemetal.pm b/Sam/sites/sueurdemetal.pm
new file mode 100644
index 0000000..87acbf5
--- /dev/null
+++ b/Sam/sites/sueurdemetal.pm
@@ -0,0 +1,36 @@
+package Sam::sites::sueurdemetal;
+
+use Inline Python => 'DATA';
+
+sub get {
+    my $id = shift;
+    my $content = weboob_get($id);
+
+    return %{$content};
+}
+
+1;
+
+__DATA__
+__Python__
+
+from weboob.core import Weboob
+from weboob.capabilities.calendar import CapCalendarEvent
+
+def weboob_get(id):
+    w = Weboob()
+    backends = w.load_backends(CapCalendarEvent)
+
+    event = backends['sueurdemetal'].get_event(id)
+
+    result = {'title': event.summary,
+            'day': event.start_date.strftime('%d'),
+            'month': event.start_date.strftime('%m'),
+            'year': event.start_date.strftime('%Y'),
+            'place': event.location,
+            'url': event.url}
+
+    if event.price:
+        result['desc'] = '%i euros' % event.price
+
+    return result
-- 
GitLab