new addon: (re)add completly reworked addon 'SickBeard'

Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
Stephan Raue 2011-06-12 18:19:08 +02:00
parent 6af5007764
commit 09c395f84d
9 changed files with 445 additions and 0 deletions

View File

@ -0,0 +1,30 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2011 Stephan Raue (stephan@openelec.tv)
# Copyright (C) 2011 Anthony Nash (nash.ant@gmail.com)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. config/options $1
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/$1
cp -PR $PKG_BUILD/* $ADDON_BUILD/$PKG_ADDON_ID/$1
mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/pylib
cp -R $BUILD/Cheetah*/.install/usr/lib/python*/site-packages/* $ADDON_BUILD/$PKG_ADDON_ID/pylib

View File

@ -0,0 +1,8 @@
0.99.3
- update to SickBeard-cb76543
0.99.2
- fix start script
0.99.1
- initial version SickBeard-48caf04

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

View File

@ -0,0 +1,40 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2011 Stephan Raue (stephan@openelec.tv)
# Copyright (C) 2011 Anthony Nash (nash.ant@gmail.com)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
PKG_NAME="SickBeard"
PKG_VERSION="cb76543"
PKG_REV="3"
PKG_ARCH="any"
PKG_LICENSE="OSS"
PKG_SITE="https://github.com/midgetspy/Sick-Beard"
PKG_URL="$OPENELEC_SRC/${PKG_NAME}-${PKG_VERSION}.tar.bz2"
PKG_DEPENDS="Python SABnzbd Cheetah"
PKG_BUILD_DEPENDS="toolchain Python Cheetah"
PKG_PRIORITY="optional"
PKG_SECTION="service/downloadmanager"
PKG_SHORTDESC="SickBeard: automated TV show downloading."
PKG_LONGDESC="SickBeard: automated TV show downloading."
PKG_IS_ADDON="yes"
PKG_ADDON_TYPE="xbmc.service"
PKG_ADDON_REQUIRES="addon.downloadmanager.SABnzbd:0.99.1"
PKG_AUTORECONF="no"

View File

@ -0,0 +1,44 @@
diff -Naur SickBeard-48caf04/data/interfaces/default/config.tmpl SickBeard-48caf04.patch/data/interfaces/default/config.tmpl
--- SickBeard-48caf04/data/interfaces/default/config.tmpl 2011-04-22 19:15:10.000000000 +0200
+++ SickBeard-48caf04.patch/data/interfaces/default/config.tmpl 2011-04-23 03:57:14.515808144 +0200
@@ -24,9 +24,4 @@
</table>
</div>
-<table class="infoTable" cellspacing="1" border="0" cellpadding="0"><tr>
- <td><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=JA8M7VDY89SQ4" onclick="window.open(this.href); return false;"><img src="$sbRoot/images/paypal/btn_donateCC_LG.gif" alt="[donate]" /></a></td>
- <td>Sickbeard is free, but you can contribute by giving a <b><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=JA8M7VDY89SQ4" onclick="window.open(this.href); return false;">donation</a></b>.</td>
-</tr></table>
-
#include $os.path.join($sickbeard.PROG_DIR, "data/interfaces/default/inc_bottom.tmpl")
diff -Naur SickBeard-48caf04/data/interfaces/default/inc_top.tmpl SickBeard-48caf04.patch/data/interfaces/default/inc_top.tmpl
--- SickBeard-48caf04/data/interfaces/default/inc_top.tmpl 2011-04-22 19:15:10.000000000 +0200
+++ SickBeard-48caf04.patch/data/interfaces/default/inc_top.tmpl 2011-04-23 03:59:09.088665913 +0200
@@ -147,19 +147,6 @@
</head>
<body>
-#if $sickbeard.NEWEST_VERSION_STRING:
-<div id="upgrade-notification">
- <div>
- <span class="notify-text">$sickbeard.NEWEST_VERSION_STRING</span>
- </div>
-</div>
-<div id="header-fix"></div>
-#end if
-<div id="header">
- <a name="top"></a>
- <span id="logo"><a href="$sbRoot/home/" title="Sick Beard homepage"><img alt="Sick Beard" src="$sbRoot/images/sickbeard_small.png" width="150" /></a></span>
- <span id="versiontext">alpha $sickbeard.version.SICKBEARD_VERSION</span>
-</div>
<ul id="MainMenu" class="sf-menu">
<li id="NAVsystem" class="first"><a href="#" class="navIcon"><img src="$sbRoot/images/menu/system18.png" alt="" width="18" height="18" /></a>
<ul>
@@ -197,7 +184,6 @@
<li><a href="$sbRoot/errorlogs/viewlog"><img src="$sbRoot/images/menu/viewlog16.png" alt="" width="16" height="16" />View Log</a></li>
</ul>
</li>
- <li id="donate"><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=JA8M7VDY89SQ4" onclick="window.open(this.href); return false;"><img src="$sbRoot/images/paypal/btn_donate_LG.gif" alt="[donate]" /></a></li>
</ul>
#if $varExists('submenu'):
<div id="SubMenu">

View File

@ -0,0 +1,74 @@
diff -Naur SickBeard-48caf04/data/interfaces/default/config_notifications.tmpl SickBeard-48caf04.patch/data/interfaces/default/config_notifications.tmpl
--- SickBeard-48caf04/data/interfaces/default/config_notifications.tmpl 2011-04-23 03:55:23.000000000 +0200
+++ SickBeard-48caf04.patch/data/interfaces/default/config_notifications.tmpl 2011-04-23 18:01:29.330455515 +0200
@@ -484,48 +484,6 @@
</div>
-
- <div id="core-component-group7" class="component-group clearfix">
- <div class="component-group-desc">
- <h3><a href="http://library.gnome.org/devel/libnotify/" onclick="window.open(this.href, '_blank'); return false;"><img src="$sbRoot/images/notifiers/libnotify.gif" alt="Libnotify" title="Libnotify" width="16" height="16" /> Libnotify</a></h3>
- <p>The standard desktop notification API for Linux/*nix systems. This notifier will only function if the pynotify module is installed (Ubuntu/Debian package <a href="apt:python-notify">python-notify</a>).</p>
- </div>
-
- <fieldset class="component-group-list">
- <div class="field-pair">
- <input type="checkbox" class="enabler" name="use_libnotify" id="use_libnotify" #if $sickbeard.USE_LIBNOTIFY then "checked=\"checked\"" else ""# />
- <label class="clearfix" for="use_libnotify">
- <span class="component-title">Enable</span>
- <span class="component-desc">Should Sick Beard send Libnotify notifications?</span>
- </label>
- </div>
-
- <div id="content_use_libnotify">
- <div class="field-pair">
- <input type="checkbox" name="libnotify_notify_onsnatch" id="libnotify_notify_onsnatch" #if $sickbeard.LIBNOTIFY_NOTIFY_ONSNATCH then "checked=\"checked\"" else ""# />
- <label class="clearfix" for="libnotify_notify_onsnatch">
- <span class="component-title">Notify on Snatch</span>
- <span class="component-desc">Send notification when we start a download?</span>
- </label>
- </div>
-
- <div class="field-pair">
- <input type="checkbox" name="libnotify_notify_ondownload" id="libnotify_notify_ondownload" #if $sickbeard.LIBNOTIFY_NOTIFY_ONDOWNLOAD then "checked=\"checked\"" else ""# />
- <label class="clearfix" for="libnotify_notify_ondownload">
- <span class="component-title">Notify on Download</span>
- <span class="component-desc">Send notification when we finish a download?</span>
- </label>
- </div>
-
- <div class="testNotification" id="testLibnotify-result">Click below to test.</div>
- <input type="button" value="Test Libnotify" id="testLibnotify" />
- <input type="submit" class="config_submitter" value="Save Changes" />
-
- </div><!-- /content_use_libnotify //-->
-
- </fieldset>
- </div><!-- /component-group //-->
-
<div id="core-component-group8" class="component-group clearfix">
<div class="component-group-desc">
diff -Naur SickBeard-48caf04/data/interfaces/default/inc_top.tmpl SickBeard-48caf04.patch/data/interfaces/default/inc_top.tmpl
--- SickBeard-48caf04/data/interfaces/default/inc_top.tmpl 2011-04-23 03:59:09.000000000 +0200
+++ SickBeard-48caf04.patch/data/interfaces/default/inc_top.tmpl 2011-04-23 14:24:01.035048035 +0200
@@ -172,7 +172,6 @@
</li>
<li id="NAVconfig"><a href="$sbRoot/config">Config</a>
<ul>
- <li><a href="$sbRoot/config/general/"><img src="$sbRoot/images/menu/config16.png" alt="" width="16" height="16" />General</a></li>
<li><a href="$sbRoot/config/search/"><img src="$sbRoot/images/menu/config16.png" alt="" width="16" height="16" />Search Settings</a></li>
<li><a href="$sbRoot/config/providers/"><img src="$sbRoot/images/menu/config16.png" alt="" width="16" height="16" />Search Providers</a></li>
<li><a href="$sbRoot/config/postProcessing/"><img src="$sbRoot/images/menu/config16.png" alt="" width="16" height="16" />Post Processing</a></li>
diff -Naur SickBeard-48caf04/sickbeard/webserve.py SickBeard-48caf04.patch/sickbeard/webserve.py
--- SickBeard-48caf04/sickbeard/webserve.py 2011-04-23 03:55:23.000000000 +0200
+++ SickBeard-48caf04.patch/sickbeard/webserve.py 2011-04-23 17:55:09.270813146 +0200
@@ -583,7 +583,6 @@
ConfigMenu = [
- { 'title': 'General', 'path': 'config/general/' },
{ 'title': 'Search Settings', 'path': 'config/search/' },
{ 'title': 'Search Providers', 'path': 'config/providers/' },
{ 'title': 'Post Processing', 'path': 'config/postProcessing/' },

View File

@ -0,0 +1,109 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2011 Stephan Raue (stephan@openelec.tv)
# Copyright (C) 2011 Anthony Nash (nash.ant@gmail.com)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
ADDON_DIR="$HOME/.xbmc/addons/service.downloadmanager.SickBeard"
ADDON_HOME="$HOME/.xbmc/userdata/addon_data/service.downloadmanager.SickBeard"
LOG_FILE="$ADDON_HOME/service.log"
SABNZBD_SETTINGS="$HOME/.xbmc/userdata/addon_data/service.downloadmanager.SABnzbd/sabnzbd.ini"
XBMC_SETTINGS="$HOME/.xbmc/userdata/guisettings.xml"
export PYTHONPATH="$PYTHONPATH:$ADDON_DIR/pylib"
write_ini() {
python $ADDON_DIR/bin/ini_tool --action=write \
--file=$ADDON_HOME/config.ini \
--option="$1:$2" \
--value="$3"
}
read_sabconfig() {
python $ADDON_DIR/bin/ini_tool --action=read \
--file=$SABNZBD_SETTINGS \
--option="$1:$2"
}
read_xbmcconfig() {
grep "<$1>" $XBMC_SETTINGS | sed -e "s,[[:space:]]*<$1>,," -e "s,</$1>,,"
}
mkdir -p $ADDON_HOME
if [ ! -f "$ADDON_HOME/config.ini" ]; then
SICKBEARD_FIRSTRUN="yes"
fi
# default values
SICKBEARD_LOGDIR="log"
SICKBEARD_CACHEDIR="cache"
SICKBEARD_PORT="8082"
SICKBEARD_LAUNCHBROWSER="0"
SICKBEARD_VERSIONCHECK="0"
SICKBEARD_USEIPV6="0"
SICKBEARD_WEBLOG="0"
SICKBEARD_USEXBMC="1"
SICKBEARD_METADATAXBMC="1|1|1|1|1|1"
# read xbmc settings
XBMC_HOST="127.0.0.1"
XBMC_PORT=`read_xbmcconfig webserverport`
XBMC_USER=`read_xbmcconfig webserverusername`
XBMC_PWD=`read_xbmcconfig webserverpassword`
# read sabnzbd settings
SABNZBD_HOST="127.0.0.1"
SABNZBD_PORT="8081"
SABNZBD_APIKEY=`read_sabconfig misc api_key`
SABNZBD_WEBUSERNAME=`read_sabconfig misc username`
SABNZBD_WEBPASSWORD=`read_sabconfig misc password`
if [ -z "$SICKBEARD_HOST" ]; then
SICKBEARD_HOST="0.0.0.0"
fi
write_ini General launch_browser $SICKBEARD_LAUNCHBROWSER
write_ini General version_notify $SICKBEARD_VERSIONCHECK
write_ini General log_dir $SICKBEARD_LOGDIR
write_ini General cache_dir $SICKBEARD_CACHEDIR
write_ini General web_port $SICKBEARD_PORT
write_ini General web_host $SICKBEARD_HOST
write_ini General web_ipv6 $SICKBEARD_USEIPV6
write_ini General web_log $SICKBEARD_WEBLOG
write_ini General web_username $SABNZBD_WEBUSERNAME
write_ini General web_password $SABNZBD_WEBPASSWORD
write_ini SABnzbd sab_username $SABNZBD_WEBUSERNAME
write_ini SABnzbd sab_password $SABNZBD_WEBPASSWORD
write_ini SABnzbd sab_apikey $SABNZBD_APIKEY
write_ini SABnzbd sab_host "http://$SABNZBD_HOST:$SABNZBD_PORT/"
write_ini XBMC use_xbmc $SICKBEARD_USEXBMC
write_ini XBMC xbmc_host "$XBMC_HOST:$XBMC_PORT"
write_ini XBMC xbmc_username $XBMC_USER
write_ini XBMC xbmc_password $XBMC_PWD
if [ "$SICKBEARD_FIRSTRUN" = "yes" ]; then
write_ini General metadata_xbmc $SICKBEARD_METADATAXBMC
fi
python $ADDON_DIR/SickBeard/SickBeard.py --daemon --datadir $ADDON_HOME

View File

@ -0,0 +1,117 @@
#!/usr/bin/env python
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2011 Travis Glenn Hansen (travisghansen@openelec.tv)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
from configobj import ConfigObj
import sys
import os
import string
python_major = sys.version_info[0]
python_minor = sys.version_info[1]
prog="ini_tool"
description="""Read/Write config files.
Examples:
%(prog)s --file config.ini --action read --option [section:]username
%(prog)s --file config.ini --action write --option [section:]username --value foo""" % {'prog':prog}
def option_required_error(option):
parser.print_usage()
print prog + ": error: " + option + " is required"
exit(2)
if python_major > 2 or (python_major == 2 and python_minor >= 7):
import argparse
parser = argparse.ArgumentParser(
prog=prog,
description=description,
formatter_class=argparse.RawDescriptionHelpFormatter,
)
parser.add_argument('--file', help='file to read/write to/from', required=True)
parser.add_argument('--action', help='read|write', required=True)
parser.add_argument('--option', help='the option key', required=True)
parser.add_argument('--value', help='value to store in the given option (only for write action)')
options = parser.parse_args()
else:
import optparse
parser = optparse.OptionParser(
prog=prog,
description=description,
)
parser.add_option('--file', help='file to read/write to/from')
parser.add_option('--action', help='read|write')
parser.add_option('--option', help='the option key')
parser.add_option('--value', help='value to store in the given option (only for write action)')
(options, args) = parser.parse_args()
if not options.file:
option_required_error("--file")
if not options.action:
option_required_error("--action")
if not options.option:
option_required_error("--option")
if options.action != "read" and options.action != "write":
print "'" + options.action + "' is not a valid action"
parser.print_help()
exit(2)
if options.action == "read" and not os.path.isfile(options.file):
print "'" + options.file + "' is not a file"
exit(2)
config = ConfigObj(options.file)
keys = string.split(options.option, ":")
key_len = len(keys)
current_section = config
if options.action == 'read':
i = 1
for key in keys:
if i == key_len:
print current_section[key]
exit(0)
else:
current_section = current_section[key]
i += 1
elif options.action == 'write':
i = 1
for key in keys:
if i == key_len:
current_section[key] = options.value
elif key not in current_section:
current_section[key] = {}
current_section = current_section[key]
i += 1
config.write()
else:
exit(1)

View File

@ -0,0 +1,23 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2011 Stephan Raue (stephan@openelec.tv)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
import xbmc, time, os, subprocess
os.system("SickBeard.service")