Subversion Repositories LCARS

Compare Revisions

Last modification

Ignore whitespace Rev 197 → Rev 198

/branches/live/index.phtml
New file
0,0 → 1,792
<!DOCTYPE html>
<html lang="<?php echo $language; ?>">
<head>
<title>Home — PointedEars’ Website</title>
 
<link rel="SHORTCUT ICON" href="favicon.ico">
 
<!-- Browsers: Character Encoding -->
<meta charset="UTF-8">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
 
<!-- Robots: Index, Subordinated Files, Description, Author,
Keywords, Document Date -->
<meta name="robots" content="index">
<meta name="robots" content="follow">
<?php /*
<meta name="description"
content="PointedEars' Website: <?php
$description = tr("Access to the United Federation of Planets Databanks, an online songbook and software downloads always worth a click. Coming soon: The best internet links categorized and much more via a bilingual (English/German) LCARS terminal styled user interface that can be also used to surf the web anonymously! Bookmark NOW!");
echo $description;
?>">
*/ ?>
<meta name="author" content="Thomas ‘PointedEars’ Lahn">
 
<?php /* No localization of keywords at the time */ ?>
<meta name="keywords"
content="<?php /* Appz, */ ?>Download, Links, LCARS, Star Trek, TNG, The Next Generation, DS9, Deep Space 9, Deep Space Nine, VOY, Voyager, UFP, Federation, United Federation of Planets, Database, Databank, <?php /* Song, Songbook, Surf, anonymously, */?>Raumschiff Enterprise, DNG, Die n&auml;chste Generation, VFP, F&ouml;deration, Vereinte F&ouml;deration der Planeten, Datenbasis, Datenbank<?php /*, Lied, Liedtext, surfen, anonym */ ?>">
<?php /*
<meta name="keywords" http-equiv="Keywords" lang="de" content="">
<meta name="keywords" http-equiv="Keywords" lang="en-us" content="">
<meta name="keywords" http-equiv="Keywords" lang="en" content="">
*/ ?>
<meta name="revisit-after" content="3 days">
 
<!-- Robots: Dublin Core Metadata (http://purl.org/metadata/dublin_core) -->
<meta name="dcterms.title" content="PointedEars’ Website">
<meta name="dcterms.creator" content="Thomas ‘PointedEars’ Lahn">
<meta name="dcterms.subject" content="Private Web site">
<?php /*
<meta name="dcterms.description"
content="PointedEars' Website: <?php echo $description; ?>">
*/ ?>
<meta name="dcterms.publisher" content="PointedEars">
<meta name="dcterms.date" content="2002-05-23T10:56:00+02:00">
<meta name="dcterms.created" content="2002-05-23">
<meta name="dcterms.modified" content="<?php echo gmdate('Y-m-dTH:i:sO', $modi); ?>">
<?php /*
<meta name="dcterms.type" content="">
<meta name="dcterms.format" content="">
*/ ?>
<meta name="dcterms.identifier" content="http://pointedears.de/index.<?php echo $language; ?>">
<meta name="dcterms.language" content="<?php echo $language; ?>">
<meta name="dcterms.rightsHolder"
content="Copyright © 2002&#8211;<?php echo gmdate('Y', $modi); ?> Thomas&nbsp;Lahn.">
<meta name="dcterms.rights"
content="<?php echo tr("All rights reserved."); ?> <?php echo tr("The author is not responsible for the availability and the content of websites referred by this site, and not responsible for the availability and the content of websites referred by those sites. Whereever outsourced material is used, copyright or trademark infringement is not intended. Third parties who claim copyrights or trademarks used herein are asked to send an informal email to webmaster@PointedEars.de for immediate removal or modification of the respective material on the website instead of reminding the author of usage of this material. Thank you."); ?>">
 
<?php /*
<!-- <link rel="stylesheet" type="text/css" href="styles/lcars.css"> -->
<!-- <link rel="stylesheet" type="text/css" href="styles/lcars21.css"> -->
<!-- No optimization here: Resource Builder does not handle URI parameters -->
*/ ?>
<link rel="stylesheet" type="text/css" href="styles/lcars-basic">
<?php
$isLocal = ($_SERVER['HTTP_HOST'] === 'localhost');
$printable = (isset($_GET['printable']) && $_GET['printable'] === '1');
if (!$printable)
{
?>
<link rel="stylesheet" type="text/css" href="styles/lcars22<?php
if (isset($_GET['ani']) && $_GET['ani'] !== '')
{
echo '?ani=' . $_GET['ani'];
}
?>">
<?php
}
?>
<!--[if lt IE 7]>
<link rel="stylesheet" type="text/css" href="styles/lcars22-ie6.css">
<![endif]-->
<style type="text/css">
<!--
p {
max-width: 100%;
}
-->
</style>
 
<script type="text/javascript" src="scripts/builder?src=object,dom,dom/css,dom/storage,dom/events,dom/geolocation,dom/timeout,dom/widgets,dom/window,http,lcars<?php
if ($isLocal)
{
?>&amp;verbose=1&amp;debug=1<?php
}
?>"></script>
<script type="text/javascript">
<?php
/*
var ms1Day = 60*60*24*1000; // ms for 1 days = 60sec*60min*24hours*1000ms
var msLeaveDays = ms1Day*6;
var ms30Days=ms1Day*30;
var delta;
var newTime=new Date();
var msTime=newTime.getTime();
var msExpire=msTime+ms30Days;
var expireTime=new Date(msExpire);
 
cookieVal=
"savedTime=" + newTime.toGMTString()
+ "; expires=" + expireTime.toGMTString()
+ "; domain=anybody"
+ "; path=/";
document.cookie= cookieVal;
*/
?>
var TEXT_NOT_AVAILABLE = "<?php echo tr('N/A'); ?>";
 
function body_load ()
{
if (typeof this.ontouchstart != 'undefined')
{
this.ontouchstart = function () {};
}
 
if (fullscreen.isSupportedBy(document.documentElement))
{
var fullscreenLI = jsx.dom.getElementById("cmd3");
fullscreenLI.firstChild.style.cursor = "";
}
 
jsx.dom.geolocation.setTexts({
TEXT_LATITUDE: "<?php echo tr('Latitude'); ?>",
TEXT_NORTH_ABBR: "<?php echo tr('N'); ?>",
TEXT_SOUTH_ABBR: "<?php echo tr('S'); ?>",
TEXT_LONGITUDE: "<?php echo tr('Longitude'); ?>",
TEXT_WEST_ABBR: "<?php echo tr('W'); ?>",
TEXT_EAST_ABBR: "<?php echo tr('E'); ?>",
TEXT_LAT_LNG_ACCURACY: "<?php echo tr('Lat/Lng Accuracy'); ?>",
TEXT_ALTITUDE: "<?php echo tr('Altitude'); ?>",
TEXT_ALT_ACCURACY: "<?php echo tr('Alt. Accuracy'); ?>",
TEXT_SPEED: "<?php echo tr('Speed'); ?>",
TEXT_HEADING: "<?php echo tr('Heading'); ?>",
TEXT_NOT_AVAILABLE: TEXT_NOT_AVAILABLE
});
 
lcars.multiDisplay = new lcars.MultiDisplay(null, null, {
texts: {
TEXT_NOT_AVAILABLE: TEXT_NOT_AVAILABLE,
TEXT_CURRENT_COORDS: "<?php echo tr('Your current coordinates on Terra'); ?>",
TEXT_ACCURACY: "<?php echo tr('accuracy'); ?>"
}
});
}
</script>
<?php /* <bgsound src="media/interface/sound/beginop.wav" loop="infinite"> */ ?>
</head>
<body class="fade-in" onload="body_load()">
<div id="content">
<h1 style="text-align: center"><img
src="media/video/img/vulcan_hand-black-bg.png"
width="120"
height="168"
alt="<?php echo tr("Vulcan greeting"); ?>"
title="<?php echo tr("Vulcan greeting"); ?>"
style="border: none; cursor: default"
onmouseover="return setStatus(this.title)"
onmouseout="return resetStatus()"><br>
<?php echo tr("Welcome to PointedEars’ Website"); ?></h1>
<?php
if (!$printable)
{
?>
<p class="instruction" style="font-size: 100%; text-align: center"><?php
echo sprintf(
tr("This site uses recent <a href='https://developer.mozilla.org/en-US/docs/'"
. " title='Learn more: Mozilla Developer Network'>Web technologies</a>."
. " You can use the <a href='index.%s?printable=1'>%s</a>"
. " if it is not displayed properly with your software."),
$language,
tr('Printable version'));
?></p>
<?php
}
 
/*
<p>
| <a href="leisure/" target="_top"
>Freizeit-Datenbank</a>
| <a href="mozilla/" target="_top">Mozilla</a>
| <a href="poetry/" target="_top">Poesie</a>
*/
 
/*
| [<abbr title="nur in englischer Sprache verf&uuml;gbar"
>en</abbr>]
| <a href="selfhtml.de/" target="_top">SELFHTML.DE</a>
*/
/*
| <a href="lyrics/" target="_top">Songbook</a>
| </p>
*/
/*
<p><a href="about/worm.de.html" target="_top"
>Seltsame E-Mails bekommen?</a></p>
*/
/*
<noscript>
<a
href="http://pointedears.de/"
title="PointedEars' Website"
>Diese Website zu Ihren Lesezeichen hinzuf&uuml;gen</a>
</noscript>
 
<!-- Klicken Sie hier, falls Sie nach 5 Sekunden nicht automatisch
weitergeleitet werden. -->
*/
?>
<?php
$app = "Welcome/$language";
require_once 'footer.phtml';
/* embed src="media/interface/speech/de/warten.wav" width="0" height="0"
hidden="true" autostart="true" dir="ltr" lang="de" */
?>
</div>
<div id="LCARS">
<?php /*
<div id="button-grid" style="position: absolute; opacity: 0.3">
<a class="button" style="display: block; clear: left; float: left"><span class="text">Button 1</span></a>
 
<a class="button" style="display: block; clear: left; float: left"><span class="text">Button 1</span></a>
<a class="button" style="display: block; float: left"><span class="text">Button 1</span></a>
<a class="button" style="display: block; float: left"><span class="text">Button 1</span></a>
<a class="button" style="display: block; float: left"><span class="text">Button 1</span></a>
 
<a class="button" style="display: block; clear: left; float: left"><span class="text">Button 1</span></a>
<a class="button" style="display: block; float: left"><span class="text">Button 1</span></a>
<a class="button" style="display: block; float: left"><span class="text">Button 1</span></a>
<a class="button" style="display: block; float: left"><span class="text">Button 1</span></a>
 
<a class="button" style="display: block; clear: left; float: left"><span class="text">Button 1</span></a>
<a class="button" style="display: block; float: left"><span class="text">Button 1</span></a>
<a class="button" style="display: block; float: left"><span class="text">Button 1</span></a>
<a class="button" style="display: block; float: left"><span class="text">Button 1</span></a>
 
<a class="button" style="display: block; clear: left; float: left"><span class="text">Button 1</span></a>
<a class="button" style="display: block; float: left"><span class="text">Button 1</span></a>
<a class="button" style="display: block; float: left"><span class="text">Button 1</span></a>
<a class="button" style="display: block; float: left"><span class="text">Button 1</span></a>
 
<a class="button" style="display: block; clear: left; float: left"><span class="text">Button 1</span></a>
<a class="button" style="display: block; float: left"><span class="text">Button 1</span></a>
<a class="button" style="display: block; float: left"><span class="text">Button 1</span></a>
<a class="button" style="display: block; float: left"><span class="text">Button 1</span></a>
<a class="button" style="display: block; float: left"><span class="text">Button 1</span></a>
 
<a class="button" style="display: block; clear: left; float: left"><span class="text">Button 1</span></a>
<a class="button" style="display: block; float: left"><span class="text">Button 1</span></a>
<a class="button" style="display: block; float: left"><span class="text">Button 1</span></a>
<a class="button" style="display: block; float: left"><span class="text">Button 1</span></a>
 
<a class="button" style="display: block; clear: left; float: left"><span class="text">Button 1</span></a>
<a class="button" style="display: block; float: left"><span class="text">Button 1</span></a>
<a class="button" style="display: block; float: left"><span class="text">Button 1</span></a>
 
<a class="button" style="display: block; clear: left; float: left"><span class="text">Button 1</span></a>
<a class="button" style="display: block; float: left"><span class="text">Button 1</span></a>
<a class="button" style="display: block; float: left"><span class="text">Button 1</span></a>
 
<a class="button" style="display: block; clear: left; float: left"><span class="text">Button 1</span></a>
<a class="button" style="display: block; float: left"><span class="text">Button 1</span></a>
<a class="button" style="display: block; float: left"><span class="text">Button 1</span></a>
 
<a class="button" style="display: block; clear: left; float: left"><span class="text">Button 1</span></a>
<a class="button" style="display: block; float: left"><span class="text">Button 1</span></a>
<a class="button" style="display: block; float: left"><span class="text">Button 1</span></a>
</div>
*/ ?>
<div id="bow">
<div id="bow-top">
<div class="separator-left">&nbsp;</div>
<div class="text"><span>PointedEars’ Website</span></div>
</div>
<div id="bow-top-left">
<div class="concave">&nbsp;</div>
<div style="position: absolute; top: 3.2em; left: 0; background-color: black">
<div class="bow" style="margin-top: 0.2em; width: 8em; height: 1em">&nbsp;</div>
</div>
</div>
<div id="bottom">
<div id="bow-bottom">
<div class="concave">&nbsp;</div>
<div class="spacer">&nbsp;</div>
</div>
</div>
 
<div class="menu-container">
<nav class="menu">
<ul>
<?php foreach ($languages as $key => $name): ?>
<li><a href="index.<?php echo $key; ?>?ani=0"
class="button<?php if ($language === $key) { ?> selected<?php } ?>"
tabindex="2"><span class="text"><?php echo $name; ?></span></a></li>
<?php endforeach; ?>
</ul>
<div class="bow" style="margin-bottom: 0.4em; height: 0.4em">&nbsp;</div>
<ul style="margin-bottom: 1.2em">
<li><a href="<?php echo $menu['scripts']['path']; ?>" target="_top" class="button"><span class="text"><?php echo $menu['scripts']['text']; ?></span></a></li>
<li><a href="<?php echo $menu['es-matrix']['path']; ?>" target="_top" class="button"
title="<?php echo $menu['es-matrix']['title']; ?>"
><span class="text"><?php echo $menu['es-matrix']['text']; ?></span></a></li>
<li><a href="<?php echo $menu['devel']['path']; ?>" target="_top" class="button"><span class="text"><?php echo $menu['devel']['text']; ?></span></a></li>
</ul>
<ul style="margin-bottom: 0.2em">
<li><a href="psf/" target="_top"
class="button ancillary"
><abbr title="<?php echo tr("PointedEars' Standard Frases"); ?>"
class="text">psf</abbr></a></li>
<li><a href="<?php echo $menu['series']['path']; ?>" target="_top" class="button ancillary"
title="<?php echo tr('List of recommended TV shows and episodes, with logos in CSS'); ?>"
><span class="text"><?php echo $menu['series']['text']; ?></span></a></li>
<li><a href="<?php echo $menu['ufpdb']['path']; ?>" target="_top" class="button database"
><abbr title="<?php echo $menu['ufpdb']['title']; ?>"
class="text"><?php echo $menu['ufpdb']['text']; ?></abbr></a></li>
</ul>
<div style="position: relative; margin-bottom: 1.2em">
<div class="bow" style="height: 0.8em">&nbsp;</div>
</div>
<ul>
<li><a href="http://climateapps2.oerc.ox.ac.uk/cpdnboinc/show_user.php?userid=648544"
target="_top" class="button secondary"
title="<?php echo tr("The world’s largest climate forecasting experiment for the 21st century"); ?>"
><span class="text">climateprediction.net</span></a></li>
<li><a href="http://fah-web2.stanford.edu/cgi-bin/main.py?qtype=userpage&username=Thomas_Lahn"
target="_top" class="button secondary"
title="<?php echo tr("Distributed computing to understand protein folding, protein aggregation, and related diseases"); ?>"
><span class="text">Folding at home</span></a></li>
<li><a href="http://lhcathomeclassic.cern.ch/sixtrack/show_user.php?userid=221181"
target="_top" class="button secondary"
title="<?php echo tr("Particle physics research with the Large Hadron Collider at CERN"); ?>"
><span class="text">LHC at home</span></a></li>
<li><a href="http://setiathome.berkeley.edu/show_user.php?userid=378921"
target="_top" class="button secondary"
title="<?php echo tr("The Search for Extra-Terrestrial Intelligence at HOME"); ?>"
><span class="text">SETI at home</span></a></li>
<li><a href="http://stackoverflow.com/users/855543/pointedears"
target="_top" class="button secondary"
title="<?php echo tr("Me on Stack Overflow"); ?>"
><span class="text">Stack Overflow</span></a></li>
<li><a href="https://twitter.com/PointedEars2"
target="_top" class="button secondary"
title="<?php echo tr("Me on Twitter"); ?>"
><span class="text">Twitter</span></a></li>
<li><a href="<?php echo tr("http://en.wikipedia.org/wiki/Special:Contributions/PointedEars"); ?>"
target="_top" class="button secondary"
title="<?php echo tr("My contributions to Wikipedia"); ?>"
><span class="text">Wikipedia</span></a></li>
</ul>
<?php /*
<script type="text/javascript">
var sURL = location.href;
var sFavAnchorTitle =
"Klicken Sie hier, um PointedEars' Website Ihren Favoriten"
+ " hinzuzufügen";
var sOtherAnchorTitle =
"Klicken Sie hier mit der rechten Maustaste, um PointedEars' Website"
+ " Ihren Lesezeichen hinzuzufügen";
var sFavoriteTitle = "PointedEars' Website";
 
if (jsx.object.isHostMethod(jsx.global.window, "external", "AddFavorite"))
{
document.write(
'<div style="position: relative; margin-top: 1em; border-bottom: 0.2em solid transparent">'
+ ' <div class="bow" style="width: 8em; height: 1em">&nbsp;<\/div>'
+ ' <div class="bow" style="position: absolute; top: 0; left: 8.2em; width: 2em; height: 1em">&nbsp;<\/div>'
+ '</div>'
+ '<a href="javascript:window.external.AddFavorite('
+ ' sURL, sFavoriteTitle);" title="' + sFavAnchorTitle + '"'
+ ' class="button"'
+ ' onclick="window.external.AddFavorite('
+ ' sURL, sFavoriteTitle); return false"'
+ ' onmouseover="return setStatus(sFavAnchorTitle)"'
+ ' onmouseout="return resetStatus()"'
+ '><span class="text">Favorit<\/span><\/a>');
}
</script>
*/ ?>
</nav>
</div>
</div>
<div id="connectors">
<div class="bow top left">&nbsp;</div>
<div class="bow top right">&nbsp;</div>
 
<div class="bow mid left">&nbsp;</div>
<div class="bow mid right">&nbsp;</div>
</div>
<div class="multi-display">
<div class="upper">
<div class="content">
<div class="title" id="title"><span>Home</span></div>
<div class="analysis" id="analysis">
<table>
<tr>
<th><?php echo tr('Display'); ?>:</th>
<td><script type="text/javascript">
var _addEventListener = jsx.dom.addEventListener;
var _runAsync = jsx.dom.timeout.runAsync;
var ID_SCREEN_DIM = 'screenDim';
var ID_AVAIL_DIM = 'availDim';
var ID_INNER_DIM = 'innerDim';
 
var dim = (function () {
var screenInfo = jsx.dom.window.screenInfo;
 
return {
getScreenText: function () {
var screenDim = screenInfo.getDim();
return screenDim.width + "×" + screenDim.height;
},
 
getAvailText: function () {
var availDim = screenInfo.getAvailDim();
return availDim.width + "×" + availDim.height + " <?php echo tr('available'); ?>";
},
 
getInnerText: function () {
var innerDim = screenInfo.getInnerDim();
return ", " + innerDim.width + "×" + innerDim.height + " <?php echo tr('used'); ?>";
},
 
getColorDepthText: function () {
var colorDepth = screenInfo.getColorDepth();
return colorDepth
? '2<sup>' + colorDepth + "<\/sup> <?php echo tr('colors'); ?>"
: "";
}
};
}());
 
(function () {
var screenDimText = dim.getScreenText();
var availDimText = dim.getAvailText();
var innerDimText = dim.getInnerText();
var colorDepthText = dim.getColorDepthText();
var displayInfo = (screenDimText || availDimText || innerDimText || colorDepthText)
? (screenDimText ? '<span id="' + ID_SCREEN_DIM + '">' + screenDimText + '<\/span> <?php echo tr('pixels'); ?>' : "")
+ (availDimText ? ' (<span id="' + ID_AVAIL_DIM + '">' + availDimText + "<\/span>" : "")
+ (innerDimText ? '<span id="' + ID_INNER_DIM + '">' + innerDimText + "<\/span>)" : "")
+ (colorDepthText ? ' ×&nbsp;<span id="colorDepth">' + colorDepthText + "<\/span>" : "")
: TEXT_NOT_AVAILABLE;
 
/* FIXME: Convert HTML to text, update whole title text */
document.write('<span>' + displayInfo + '<\/span>');
 
var oColorDepth;
var tColor = _runAsync(function () {
if (typeof oColorDepth == "undefined")
{
oColorDepth = document.getElementById("colorDepth");
}
 
if (oColorDepth)
{
var colorDepthText = dim.getColorDepthText();
<?php /* FIXME: Also update title attribute value */ ?>
if (oColorDepth.innerHTML != colorDepthText)
{
oColorDepth.innerHTML = colorDepthText;
}
}
 
tColor = this.run();
}, 1000);
 
_addEventListener(document, "unload", function () {
tColor.unset();
tColor = null;
});
}());
</script><noscript><?php echo tr('N/A'); ?></noscript></td>
</tr>
<tr>
<th><?php echo tr('User Agent'); ?>:</th>
<td><script type="text/javascript">
(function () {
var ua = navigator.userAgent;
document.write('<span id="ua" title="' + ua + '">' + ua + '<\/span>');
 
var oUA;
var tUA = _runAsync(function () {
if (typeof oUA == "undefined")
{
oUA = document.getElementById("ua");
}
 
if (oUA)
{
var ua = navigator.userAgent;
 
if (oUA.innerHTML != ua)
{
oUA.innerHTML = ua;
}
 
<?php /* Converts CREs */ ?>
var oUAhtml = oUA.innerHTML
if (oUA.title != oUAhtml)
{
oUA.title = oUAhtml;
}
}
 
tUA = this.run();
}, 1000);
 
_addEventListener(document, "unload", function () {
tUA.unset();
tUA = null;
});
}());
</script><noscript><?php echo tr('N/A'); ?></noscript></td>
</tr>
<tr>
<th><?php echo tr('Features'); ?>:</th>
<td><script type="text/javascript">
var fullscreen = jsx.dom.window.fullscreen;
 
(function () {
function getFeatures ()
{
var features = [];
if (typeof document.cookie != "undefined")
{
var cookiesText = "<?php echo tr('Cookies'); ?>"
if (navigator.cookieEnabled)
{
if (document.cookie)
{
var cookies = document.cookie;
cookies = cookies.split(/\s*;\s*/);
features.push('<a href="#" title="'
+ cookies.join("&#13;&#10;")
+ '"'
+ ' onclick="window.alert(\'<?php echo tr('Cookies for'); ?> ' + document.domain + '\\n\\n' + cookies.join("\\n") + '\'); return false">' + cookiesText + '<\/a>');
}
else
{
features.push('<span class="unavailable"'
+ ' title="<?php echo tr('Cookies supported, but no data for this site'); ?>"'
+ '>' + cookiesText + '<\/span>');
}
}
else
{
features.push('<span class="offline"'
+ ' title="<?php echo tr('Cookies supported, but disabled'); ?>"'
+ '>' + cookiesText + '<\/span>');
}
}
 
if (fullscreen.isSupportedBy(document.documentElement))
{
features.push("<?php echo tr('Fullscreen'); ?>");
}
 
if (navigator.webkitGetGamepads && navigator.webkitGetGamepads().length)
{
features.push("<?php echo tr('Gamepad'); ?>");
}
 
if (navigator.geolocation)
{
features.push('<a href="#" title="<?php echo tr('Get location'); ?>"'
+ ' onclick="return lcars.multiDisplay.geolocate(\'<?php echo tr('Geolocation'); ?>\', \'<?php echo $language; ?>\')"'
+ '><?php echo tr('Geolocation'); ?><\/a>');
}
 
if (typeof navigator.javaEnabled != "undefined" && navigator.javaEnabled())
{
features.push("Java");
}
 
var storage = jsx.dom.storage;
if (storage.localStorage.isSupported()) features.push("Local Storage");
 
if (navigator.plugins)
{
if (navigator.plugins.length > 0)
{
features.push('<span title="'
+ navigator.plugins.length
+ ' <?php echo tr('plugins installed'); ?>">Plugins<\/span>');
}
else
{
features.push('<span class="unavailable"'
+ ' title="<?php echo tr('Plugins supported, but none detected'); ?>"'
+ '>Plugins<\/span>');
}
}
 
if (storage.sessionStorage.isSupported())
{
features.push("Session Storage");
}
 
if (typeof window.ontouchstart != "undefined") features.push("Touch");
return features.join(" &#8226; ");
}
 
function stripTags (s)
{
return s.replace(/<[^>]+>/g, "");
}
 
var sFeatures = getFeatures();
document.write('<span id="features" title="' + stripTags(sFeatures) + '">' + sFeatures + '<\/span>');
 
var oFeatures;
var oFeaturesHtml;
var tFeatures = _runAsync(function () {
if (typeof oFeatures == "undefined")
{
oFeatures = document.getElementById("features");
}
 
if (oFeatures)
{
var sNewFeatures = getFeatures();
 
if (!oFeaturesHtml)
{
oFeaturesHtml = document.createElement("span");
}
 
if (oFeaturesHtml)
{
oFeaturesHtml.innerHTML = sNewFeatures;
sNewFeatures = oFeaturesHtml.innerHTML;
}
 
if (oFeatures.innerHTML != sNewFeatures)
{
oFeatures.innerHTML = sNewFeatures;
}
 
/* Converts CREs */
var newTitle = stripTags(oFeatures.innerHTML)
if (oFeatures.title != newTitle)
{
oFeatures.title = newTitle;
}
}
 
tFeatures = this.run();
}, 1000);
}());
 
_addEventListener(document, "unload", function () {
tFeatures.unset();
tFeatures = null;
});
 
var windowText = "<?php echo tr("Window"); ?>";
</script><noscript><?php echo tr('N/A'); ?></noscript></td>
</tr>
</table>
</div>
<ul class="commands">
<li id="cmd1"><a href="index.php"
title="Language selection"
tabindex="1"
class="button left right"
onmouseover="return setStatus(this.title + ': ' + this.href)"
onmouseout="return resetStatus()"
onfocus="return this.onmouseover()"
onblur="return this.onmouseout()"
><abbr class="text" title="Language selection">Language</abbr></a></li>
<li id="cmd2"><a href="index.<?php echo $language; ?>?printable=1"
title="<?php echo tr('Printable version'); ?>"
tabindex="1"
class="button left right"
onmouseover="return setStatus(this.title + ': ' + this.href)"
onmouseout="return resetStatus()"
onfocus="return this.onmouseover()"
onblur="return this.onmouseout()"
><span class="text"><?php echo tr("Printable"); ?></span></a></li>
<li id="cmd3"><div class="button left right"
style="cursor: not-allowed !important"
onclick="fullscreen.requestOn(document.documentElement, this)"
onkeyup="if (event.keyCode == 13) { this.onclick(); }"
><span class="text"><script type="text/javascript">
var cmd3;
if (fullscreen.isSupportedBy(document.documentElement))
{
_addEventListener(window, "load", function () {
if (typeof cmd3 == "undefined")
{
cmd3 = jsx.dom.getElementById("cmd3");
}
 
if (cmd3)
{
cmd3.firstChild.tabIndex = "1";
}
});
 
var fullscreenText = "<?php echo tr("Fullscreen"); ?>";
document.write(fullscreenText);
}
 
var oScreenDim;
var oAvailDim;
var oInnerDim;
var _gEBI = jsx.dom.getElementById;
var previousIsFullscreen;
var oldHandler;
 
_addEventListener(window, "resize", function () {
<?php /* FIXME: Also update title attribute value */ ?>
if (typeof oScreenDim == "undefined") oScreenDim = _gEBI(ID_SCREEN_DIM);
if (oScreenDim) oScreenDim.innerHTML = dim.getScreenText();
 
if (typeof oAvailDim == "undefined") oAvailDim = _gEBI(ID_AVAIL_DIM);
if (oAvailDim) oAvailDim.innerHTML = dim.getAvailText();
 
if (typeof oInnerDim == "undefined") oInnerDim = _gEBI(ID_INNER_DIM);
if (oInnerDim) oInnerDim.innerHTML = dim.getInnerText();
 
if (fullscreen.isSupportedBy(document.documentElement))
{
var nowIsFullscreen = fullscreen.isFullscreen();
if (nowIsFullscreen != previousIsFullscreen)
{
if (typeof cmd3 == "undefined")
{
cmd3 = document.getElementById("cmd3");
}
 
var target = cmd3.firstChild;
var textTarget = target.firstChild;
if (nowIsFullscreen)
{
oldHandler = target.onclick;
target.onclick = function () {
fullscreen.cancel();
};
textTarget.textContent = "<?php echo tr("Window"); ?>";
}
else
{
target.onclick = oldHandler;
textTarget.textContent = fullscreenText;
}
 
previousIsFullscreen = nowIsFullscreen;
}
}
});
</script></span></div></li>
<li id="cmd4"><div class="button left right" style="cursor: not-allowed !important">&nbsp;</div></li>
</ul>
</div>
<div class="elbo-button">
<span class="text" title="<?php echo tr("Date of last modification"); ?>"
><?php echo gmdate('Ym.d', $modi); ?></span>
</div>
<div class="elbo">
<span class="text"><abbr title="Library Computer Access and Retrieval System">LCARS</abbr> PE-22A</span>
<div class="concave">&nbsp;</div>
</div>
<div class="border">
<div class="left">&nbsp;</div>
<div class="right">&nbsp;</div>
</div>
</div>
<div class="lower">
<div class="elbo">
<div class="concave">&nbsp;</div>
</div>
<div class="bg">&nbsp;</div>
<div class="border-container">
<div class="border">
<div class="left">&nbsp;</div>
<div class="right">&nbsp;</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
/branches/live/index.php
New file
0,0 → 1,271
<?php
 
$language = 'en';
$locale = 'en_US.UTF-8';
require_once 'global.php';
 
$encoding = 'UTF-8';
header("Content-Type: text/html" . ($encoding ? "; charset=$encoding" : ""));
 
$modi = max(array(
@filemtime(__FILE__),
@filemtime("styles/lcars-basic.css"),
@filemtime("styles/lcars22.css"),
@filemtime("styles/lcars22-ie6.css"),
));
 
\header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $modi ) . ' GMT');
 
/* Resource expires in HTTP/1.1 caches 24h after last retrieval */
\header('Cache-Control: max-age=86400, s-maxage=86400, must-revalidate, proxy-revalidate');
 
/* Resource expires in HTTP/1.0 caches 24h after last retrieval */
\header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 86400) . ' GMT');
 
?><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<title>Language Selection — PointedEars’ Website</title>
<link rel="SHORTCUT ICON" href="favicon.ico">
<!-- Browsers: Character Set, Script Type, Style Sheets Type,
Proxy Usage -->
<meta http-equiv="content-type"content="text/html; charset=UTF-8">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="expires" content="0">
<!-- Robots: Language, Index, Subordinated Files, Description, Author,
Keywords, Document Date -->
<meta name="robots" content="index">
<?php /*
<meta name="description"
content="Access to the United Federation of Planets Databanks, an online songbook and software downloads always worth a click. Coming soon: The best internet links categorized and much more via a bilingual (English/German) LCARS terminal styled user interface that can be also used to surf the web anonymously! Bookmark NOW!">
*/ ?>
<meta name="author" content="PointedEars, PointedEars Software (PES)">
<!-- No localization of keywords due to following language selection -->
<meta name="keywords"
http-equiv="Keywords"
content="<?php // Appz, ?>Download, Links, LCARS, Star Trek, TNG, The Next Generation, DS9, Deep Space 9, Deep Space Nine, VOY, Voyager, UFP, Federation, United Federation of Planets, Database, Databank, <?php /* Song, Songbook, Surf, anonymously, */ ?>Raumschiff Enterprise, DNG, Die n&auml;chste Generation, VFP, F&ouml;deration, Vereinte F&ouml;deration der Planeten, Datenbasis, Datenbank<?php /* , Lied, Liedtext, surfen, anonym */ ?>">
<!--meta name="keywords" http-equiv="Keywords" lang="de" content=""-->
<!--meta name="keywords" http-equiv="Keywords" lang="en-us" content=""-->
<!--meta name="keywords" http-equiv="Keywords" lang="en" content=""-->
<meta name="revisit-after" content="3 days">
<meta name="date" content="2002-05-23T10:56:00+02:00">
<!-- Robots: Dublin Core Metadata
(http://purl.org/metadata/dublin_core) -->
<meta name="DCTERMS.title" content="PointedEars’ Website">
<meta name="DCTERMS.creator" content="PointedEars, PointedEars Software (PES)">
<meta name="DCTERMS.subject" content="Private Homepage">
<?php /*
<meta name="DCTERMS.description"
content="PointedEars' Website: Access to the United Federation of Planets Databanks and an online songbook. Coming soon: Software downloads always worth a click, the best internet links categorized and much more via a bilingual (English/German) LCARS terminal styled user interface that can be also used to surf the web anonymously! Bookmark NOW!">
*/ ?>
<meta name="DCTERMS.publisher" content="PointedEars">
<meta name="DCTERMS.created" content="2002-05-23">
<meta name="DCTERMS.modified" content="<?php echo gmdate('Y-m-dTH:i:sO', $modi); ?>">
<?php /*
<!--meta name="DC.Type" content=""-->
<!--meta name="DC.Format" content=""-->
*/ ?>
<meta name="DCTERMS.identifier" content="http://pointedears.de/">
<meta name="DCTERMS.rightsHolder"
content="Copyright © 2002&#8211;<?php echo gmdate('Y', $modi); ?> Thomas&nbsp;Lahn.">
<meta name="DCTERMS.rights"
content="<?php echo tr("All rights reserved."); ?> <?php echo tr("The author is not responsible for the availability and the content of websites referred by this site, and not responsible for the availability and the content of websites referred by those sites. Whereever outsourced material is used, copyright or trademark infringement is not intended. Third parties who claim copyrights or trademarks used herein are asked to send an informal email to webmaster@PointedEars.de for immediate removal or modification of the respective material on the website instead of reminding the author of usage of this material. Thank you."); ?>">
<?php /*
<!-- <link rel="stylesheet" type="text/css" href="styles/lcars21.css"> -->
<!-- IE 9 in non-Compatibility Mode sends "Accept: text/css",
Apache responds with 406 without .php:
http://blog.s9y.org/archives/227-ie9-has-trouble-with-css-content-types.html
(Resource Builder handles negotation for sources)
-->
*/ ?>
<link rel="stylesheet" type="text/css" href="scripts/builder.php?type=text/css&amp;prefix=../styles/&amp;src=lcars-basic,lcars22">
<!--[if lt IE 7]>
<link rel="stylesheet" type="text/css" href="styles/lcars22-ie6.css">
<![endif]-->
<style type="text/css">
<!--
a {
text-decoration: none;
}
 
ul {
list-style: none;
padding-left: 0;
}
 
#greeting {
margin-top: 0;
}
 
#greeting p {
background-color: #000;
color: #fff;
font-size: 136%;
}
 
#languages .key {
min-width: 0.65em;
}
-->
</style>
<?php /*
<script type="text/javascript" src="scripts/builder?src=object,dom,dom/css,dom/css/color,dom/ani,dom/window"></script>
*/ ?>
<script type="text/javascript" src="scripts/builder?src=object,dom/window"></script>
<script type="text/javascript">
<?php /*
/* Hardcore Frame Buster
if (parent.frames.length > 0 )
parent.location.href = window.location.href;
*/ ?>
<?php /*
function animate ()
{
*/ ?>
<?php /*
var s = document.createElement("style");
s.type = "text/css";
s.appendChild(document.createTextNode(
"@-webkit-keyframes fade-out {"
+ " from {"
+ " overflow: hidden;"
+ " border-top-left-radius: 0;"
+ " border-bottom-left-radius: 0;"
+ " }"
+ " to {"
+ " overflow: hidden;"
+ " left: 100%;"
+ " border-top-left-radius: 0;"
+ " border-bottom-left-radius: 0;"
+ " }"
+ "}"
+ "#bow-top, #footer {"
+ " -webkit-animation-name: fade-out;"
+ " -webkit-animation-duration: 1s;"
+ " -webkit-animation-fill-mode: forwards;"
+ "}"
+ "#bow-top .text {"
+ " visibility: hidden;"
+ "}"
+ ".empty .separator-left {"
+ " visibility: hidden;"
+ "}"
));
document.head.appendChild(s);
*/ ?>
<?php /*
jsx._import(jsx.dom.animation);
var keyFrames = [
{
values: {
style: {
overflow: "hidden",
"border-top-left-radius": 0,
"border-bottom-left-radius": 0
}
}
},
{
time: "1s",
values: {
style: {
overflow: "hidden",
left: "100%",
"border-top-left-radius": 0,
"border-bottom-left-radius": 0
}
}
}
];
 
var animation = new Animation({
timelines: [
new Timeline({
target: document.getElementById("bow-top"),
keyFrames: keyFrames
}),
new Timeline({
target: document.getElementById("footer"),
keyFrames: keyFrames
})
]
});
animation.play();
}
*/ ?>
 
function navigateTo (link)
{
<?php /*
animate();
window.setTimeout(function () {
window.alert(link);
}, 1000);
return false;
*/ ?>
return true;
}
</script>
</head>
<body class="fade-in empty" onload="if (typeof this.ontouchstart != 'undefined') this.ontouchstart = function () {}">
<div id="LCARS">
<div id="bow">
<div id="bow-top">
<div class="separator-left">&nbsp;</div>
<h1 class="text"><span>PointedEars’ Website</span></h1>
</div>
<div id="bow-left">&nbsp;</div>
<div id="bow-left-concave">&nbsp;</div>
</div>
<div id="footer-container">
<div id="footer">
<h2 class="text"><span>Language Selection</span></h2>
<div class="separator-right">&nbsp;</div>
</div>
</div>
</div>
<div id="content">
<div style="text-align: center"><img
src="media/video/img/vulcan_hand-black-bg.png"
width="120"
height="168"
alt="Vulcan greeting"
title="Vulcan greeting"
border="0"
onmouseover="return setStatus(this.title)"
onmouseout="return resetStatus()"></div>
 
<ul id="greeting">
<li style="white-space: nowrap"><p style="text-align: center" lang="x-vulcan-latin">Dif-tor heh smusma</p></li>
<li style="white-space: nowrap"><p style="text-align: center" lang="en">Live long and prosper</p></li>
<li style="white-space: nowrap"><p style="text-align: center" lang="de">Leben Sie lang und erfolgreich</p></li>
</ul>
 
<ul style="text-align: center">
<li class="instruction" lang="en">Please select your language</li>
<li class="instruction" lang="de">Bitte w&auml;hlen Sie Ihre Sprache</li>
</ul>
 
<div class="group">
<div class="separator">&nbsp;</div>
<ul id="languages">
<li><a href="index.en" class="button right" lang="en"
hreflang="en" accesskey="e"
><span class="key">en</span> <span class="text">English</span></a></li>
<li><a href="index.de" class="button right" lang="de"
hreflang="de" accesskey="d"
onclick="return navigateTo(this)"
><span class="key">de</span> <span class="text">Deutsch</span></a></li>
</ul>
<div style="clear: both"><!-- --></div>
</div>
 
<?php
$app = 'Language';
require_once 'footer.phtml';
?>
</div>
</body>
</html>
/branches/live/favicon.ico
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/live/favicon.ico
New file
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: live/index.en.php
===================================================================
--- live/index.en.php (revision 0)
+++ live/index.en.php (revision 198)
@@ -0,0 +1,10 @@
+<?php
+ /* Set language to English */
+ $language = 'en';
+ $locale = 'en_US.UTF-8';
+ putenv("LC_ALL=$locale");
+ setlocale(LC_ALL, $locale);
+
+ require_once 'global.php';
+ require_once 'index.phtml';
+?>
\ No newline at end of file
Index: live/i18n/POTFILES.in
===================================================================
--- live/i18n/POTFILES.in (revision 0)
+++ live/i18n/POTFILES.in (revision 198)
@@ -0,0 +1,2 @@
+../global.php
+../index.phtml
Index: live/i18n/PACKAGE
===================================================================
--- live/i18n/PACKAGE (revision 0)
+++ live/i18n/PACKAGE (revision 198)
@@ -0,0 +1,17 @@
+# Makefile snippet that holds all package-dependent information.
+
+# Add more languages here! Beware that this is a makefile snippet and
+# you have to adhere to make syntax.
+LINGUAS = de
+
+# Textdomain for our package.
+TEXTDOMAIN = de.pointedears
+
+PACKAGE_NAME = PE
+PACKAGE_VERSION = 0.3.2
+
+# Initial copyright holder added to pot and po files.
+COPYRIGHT_HOLDER = Thomas 'PointedEars' Lahn
+
+# Where to send msgid bugs?
+MSGID_BUGS_ADDRESS = Thomas 'PointedEars' Lahn <webmaster@PointedEars.de>
Index: live/i18n/Makefile
===================================================================
--- live/i18n/Makefile (revision 0)
+++ live/i18n/Makefile (revision 198)
@@ -0,0 +1,98 @@
+# Makefile for various po files.
+
+srcdir = .
+targetdir= ./LocaleData
+
+#CATALOGS = $(addsuffix .po, LINGUAS)
+CATALOGS = $(LINGUAS)
+MO_FILES = $(addsuffix .mo, $(LINGUAS))
+
+MSGMERGE = msgmerge
+MSGFMT = msgfmt
+XGETTEXT = xgettext
+CATOBJEXT = .po
+
+include PACKAGE
+
+TD = $(strip $(TEXTDOMAIN))
+
+default: help
+
+all: $(TD).pot update-po update-mo install
+
+help:
+ @echo "Available targets:"
+ @echo " pot - remake master catalog"
+ @echo " update-po - merge po files"
+ @echo " update-mo - regenerate mo files"
+ @echo " install - install mo files"
+ @echo " all - all of the above"
+
+POTFILES = $(srcdir)/POTFILES.in \
+ $(shell cat $(srcdir)/POTFILES.in)
+
+pot: $(TD).pot
+
+clean:
+ rm -f *~ *.bak *.mo
+
+# FIXME: The parameter --from-code is only needed if your sources contain
+# any 8 bit data (even in comments). UTF-8 is only a guess here, but it
+# will at least accept any 8 bit data.
+#
+# The parameter "--language=perl" is not strictly needed because the
+# source language of all our files will be auto-detected by xgettext
+# by their filename extension. You should even avoid this parameter
+# if you want to extract strings from multiple source languages.
+# --keyword --keyword='_' --keyword='$$__' --keyword=__ --keyword=__x \
+# --keyword=__n:1,2 --keyword=__nx:1,2 --keyword=__xn:1,2 \
+# --keyword=__p:1c,2 --keyword=__np:1c,2,3 \
+# --keyword=__npx:1c,2,3 --keyword=N__ --keyword=N__n:1,2 \
+# --keyword=N__p:1c,2 --keyword=N__np:1c,2,3 --keyword=%__ \
+$(TD).pot: $(POTFILES)
+ $(XGETTEXT) --output=$(srcdir)/$(TD).pox --from-code=utf-8 \
+ --add-comments=TRANSLATORS: --files-from=$(srcdir)/POTFILES.in \
+ --package-name="$(PACKAGE_NAME)" \
+ --package-version="$(PACKAGE_VERSION)" \
+ --copyright-holder="$(COPYRIGHT_HOLDER)" \
+ --msgid-bugs-address="$(MSGID_BUGS_ADDRESS)" \
+ rm -f $@ && mv $(TD).pox $@
+
+install: $(MO_FILES)
+ cd $(srcdir); \
+ targetdir='$(targetdir)'; \
+ languages='$(LINGUAS)'; \
+ for lang in $$languages; do \
+ mkdir -p "$$targetdir/$$lang/LC_MESSAGES" || exit 1; \
+ dest="$$targetdir/$$lang/LC_MESSAGES/$(TD).mo"; \
+ cat="$$lang.mo"; \
+ echo "installing $$cat as $$dest"; \
+ cp -f $$cat $$dest && chmod 644 $$dest || exit 1; \
+ done
+
+update-mo: $(MO_FILES)
+
+update-po:
+ $(MAKE) $(TD).pot
+ cd $(srcdir); \
+ catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
+ mv $$lang.po $$lang.old.po; \
+ echo "$$lang:"; \
+ if $(MSGMERGE) $$lang.old.po $(TD).pot -o $$lang.po; then \
+ rm -f $$lang.old.po; \
+ else \
+ echo "msgmerge for $$cat failed!"; \
+ rm -f $$lang.po; \
+ mv $$lang.old.po $$lang.po; \
+ fi; \
+ done
+
+.SUFFIXES:
+.SUFFIXES: .po .mo
+
+.po.mo:
+ $(MSGFMT) --check --statistics --verbose -o $@ $<
+
Index: live/i18n/de.po
===================================================================
--- live/i18n/de.po (revision 0)
+++ live/i18n/de.po (revision 198)
@@ -0,0 +1,297 @@
+# PointedEars' Website
+# Copyright (C) 2012 Thomas 'PointedEars' Lahn
+# This file is distributed under the same license as the de.pointedears package.
+# Thomas 'PointedEars' Lahn <webmaster@PointedEars.de>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PE 0.3.9.15\n"
+"Report-Msgid-Bugs-To: Thomas 'PointedEars' Lahn <webmaster@PointedEars.de>\n"
+"POT-Creation-Date: 2013-07-01 23:08+0200\n"
+"PO-Revision-Date: 2013-07-01 23:08+0200\n"
+"Last-Translator: Thomas 'PointedEars' Lahn <webmaster@PointedEars.de>\n"
+"Language-Team: German <webmaster@PointedEars.de>\n"
+"Language: de_DE\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../index.phtml:21
+msgid ""
+"Access to the United Federation of Planets Databanks, an online songbook and "
+"software downloads always worth a click. Coming soon: The best internet "
+"links categorized and much more via a bilingual (English/German) LCARS "
+"terminal styled user interface that can be also used to surf the web "
+"anonymously! Bookmark NOW!"
+msgstr ""
+"Zugriff auf die Datenbanken der Vereinten Föderation der Planeten, ein "
+"Online-Songbook und Software-Downloads, die immer einen Klick wert sind. "
+"Bald gibt es hier auch die besten Internet-Links kategorisiert und vieles "
+"mehr über eine zweisprachige (englisch/deutsche) Benutzeroberfläche im Stil "
+"eines LCARS-Terminals, welche auch dazu verwendet werden kann, anonym im Web "
+"zu surfen! Fügen Sie die Seite JETZT zu ihren Bookmarks hinzu!"
+
+#: ../index.phtml:54
+msgid ""
+"The author is not responsible for the availability and the content of "
+"websites referred by this site, and not responsible for the availability and "
+"the content of websites referred by those sites. Whereever outsourced "
+"material is used, copyright or trademark infringement is not intended. Third "
+"parties who claim copyrights or trademarks used herein are asked to send an "
+"informal email to webmaster@PointedEars.de for immediate removal or "
+"modification of the respective material on the website instead of reminding "
+"the author of usage of this material. Thank you."
+msgstr ""
+"Der Autor ist nicht verantwortlich für die Verfügbarkeit und den Inhalt der "
+"Webseiten, auf die durch diese Site verwiesen wird, und nicht verantwortlich "
+"für die Verfügbarkeit und den Inhalt der Webseiten, auf welche die "
+"referenzierten Seiten verweisen. Wo fremdes Material verwendet wurde, ist "
+"keine Verletzung des Copyrights oder Warenzeichens beabsichtigt. Dritte, die "
+"Copyrights oder Warenzeichen, welche hier verwendet wurden, für sich "
+"beanspruchen, werden gebeten, eine informelle E-Mail an "
+"webmaster@PointedEars.de zu senden, um das entsprechende Material umgehend "
+"von der Website entfernen oder dieses modifizieren zu lassen, und von "
+"rechtlichen Schritten abzusehen."
+
+#: ../global.php:39
+msgid "Software projects"
+msgstr "Software-Projekte"
+
+#: ../index.phtml:114
+msgid "Vulcan greeting"
+msgstr "Vulkanischer Gruss"
+
+#: ../index.phtml:127
+msgid "Welcome to PointedEars’ Website"
+msgstr "Willkommen auf PointedEars’ Website"
+
+#: ../index.phtml:132
+msgid "Latitude"
+msgstr "Geogr. Breite"
+
+#: ../index.phtml:133
+msgid "N"
+msgstr ""
+
+#: ../index.phtml:134
+msgid "S"
+msgstr ""
+
+#: ../index.phtml:135
+msgid "Longitude"
+msgstr "Geogr. Länge"
+
+#: ../index.phtml:136
+msgid "W"
+msgstr ""
+
+#: ../index.phtml:137
+msgid "E"
+msgstr "O"
+
+#: ../index.phtml:138
+msgid "Lat/Lng Accuracy"
+msgstr "Genauigkeit"
+
+#: ../index.phtml:139
+msgid "Altitude"
+msgstr "Höhe"
+
+#: ../index.phtml:140
+msgid "Alt. Accuracy"
+msgstr "Genauigkeit Höhe"
+
+#: ../index.phtml:141
+msgid "Speed"
+msgstr "Geschwindigkeit"
+
+#: ../index.phtml:142
+msgid "Heading"
+msgstr "Richtung"
+
+#: ../index.phtml:149
+msgid "Your current coordinates on Terra"
+msgstr "Ihre aktuellen Koordinaten auf Terra"
+
+#: ../index.phtml:150
+msgid "accuracy"
+msgstr "Genauigkeit"
+
+#: ../index.phtml:49
+msgid "Send your feedback to PointedEars"
+msgstr "Senden Sie eine Feedback E-Mail an PointedEars"
+
+#: ../index.phtml:143
+msgid ""
+"This site uses recent <a href='https://developer.mozilla.org/en-US/docs/' "
+"title='Learn more: Mozilla Developer Network'>Web technologies</a>. You can "
+"use the <a href='index.%s?printable=1'>%s</a> if it is not displayed "
+"properly with your software."
+msgstr ""
+"Diese Site verwendet aktuelle <a href='https://developer.mozilla.org/de/"
+"docs/' title='Mehr darüber: Mozilla Developer Network'>Webtechnologien</a>. "
+"Sie können die <a href='index.%s?printable=1'>%s</a> verwenden, falls sie "
+"von Ihrer Software nicht korrekt dargestellt wird."
+
+#: ../index.phtml:372
+msgid "Printable version"
+msgstr "Druckversion"
+
+#: ../index.phtml:375
+msgid "Printable"
+msgstr "Druckversion"
+
+#: ../index.phtml:151
+msgid "Your feedback"
+msgstr "Ihr Feedback"
+
+#: ../index.phtml:156
+msgid "All rights reserved."
+msgstr "Alle Rechte vorbehalten."
+
+#: ../global.php:37
+msgid "A comparison of features of ECMAScript implementations"
+msgstr "Ein Vergleich der Features von ECMAScript-Implementierungen"
+
+#: ../global.php:44
+msgid "United Federation of Planets DataBase"
+msgstr ""
+"United Federation of Planets DataBase -- Datenbanken der Vereinten "
+"Föderation der Planeten"
+
+#: ../index.phtml:184
+msgid ""
+"Original LCARS design by <a href='%s' title='%s'>Michael&nbsp;Okuda</a>. "
+"Website design based on an <a href='%s' title='LCARS Standards Development "
+"Board'>implementation in Flash by Chris&nbsp;Rossi</a>, and research by <a "
+"href='%s' title='Creating a Coherent LCARS Interface'>Bracer&nbsp;Jack</a> "
+"and <a href='%s' title='LCARS 47 Development Blog&nbsp;– LCARS&nbsp;101: A "
+"Designer’s Handbook'>Eleanor&nbsp;C.&nbsp;Davenport</a>."
+msgstr ""
+"Originales LCARS-Design von <a href='%s' title='%s'>Michael&nbsp;Okuda</a>. "
+"Website-Design basierend auf einer <a href='%s' title='LCARS Standards "
+"Development Board'>Implementierung in Flash von Chris&nbsp;Rossi</a> sowie "
+"Arbeiten von <a href='%s' title='Creating a Coherent LCARS "
+"Interface'>Bracer&nbsp;Jack</a> und <a href='%s' title='LCARS 47 Development "
+"Blog&nbsp;– LCARS&nbsp;101: A Designer’s Handbook'>Eleanor&nbsp;C.&nbsp;"
+"Davenport</a>."
+
+#: ../index.phtml:195
+msgid "Michael Okuda on Twitter"
+msgstr "Michael Okuda auf Twitter"
+
+#: ../index.phtml:271
+msgid "PointedEars' Standard Frases"
+msgstr "PointedEars' Standard-Floskeln"
+
+#: ../index.phtml:280
+msgid "The world’s largest climate forecasting experiment for the 21st century"
+msgstr "Das weltgrösste Klimaforschungsexperiment für das 21. Jahrhundert"
+
+#: ../index.phtml:285
+msgid ""
+"Distributed computing to understand protein folding, protein aggregation, "
+"and related diseases"
+msgstr ""
+"Verteiltes Rechnen, um die Faltung und Anordnung von Proteinen und damit "
+"verbundener Krankheiten zu verstehen"
+
+#: ../index.phtml:289
+msgid "Particle physics research with the Large Hadron Collider at CERN"
+msgstr "Teilchenphysik-Forschung mit dem Large Hadron Collider am CERN"
+
+#: ../index.phtml:293
+msgid "List of recommended TV shows and episodes, with logos in CSS"
+msgstr "Liste empfehlenswerter TV-Serien und Episoden, mit Logos in CSS"
+
+#: ../index.phtml:318
+msgid "The Search for Extra-Terrestrial Intelligence at HOME"
+msgstr "Die Suche nach ausserirdischer Intelligenz von zuhause aus"
+
+#: ../index.phtml:322
+msgid "Me on Stack Overflow"
+msgstr "Mein Profil bei Stack Overflow"
+
+#: ../index.phtml:323
+msgid "Me on Twitter"
+msgstr "Mein Profil bei Twitter"
+
+#: ../index.phtml:325
+msgid "http://en.wikipedia.org/wiki/Special:Contributions/PointedEars"
+msgstr "http://de.wikipedia.org/wiki/Spezial:Beitr%C3%A4ge/PointedEars"
+
+#: ../index.phtml:327
+msgid "My contributions to Wikipedia"
+msgstr "Meine Beiträge zur deutschsprachigen Wikipedia"
+
+#: ../index.phtml:369
+msgid "Display"
+msgstr "Anzeige"
+
+#: ../index.phtml:373
+msgid "available"
+msgstr "verfügbar"
+
+#: ../index.phtml:373
+msgid "used"
+msgstr "benutzt"
+
+#: ../index.phtml:373
+msgid "pixels"
+msgstr "Pixel"
+
+#: ../index.phtml:375
+msgid "colors"
+msgstr "Farben"
+
+#: ../index.phtml:376
+msgid "N/A"
+msgstr ""
+
+#: ../index.phtml:379
+msgid "User Agent"
+msgstr "Software"
+
+#: ../index.phtml:385
+msgid "Features"
+msgstr ""
+
+#: ../index.phtml:504
+msgid "Cookies"
+msgstr ""
+
+#: ../index.phtml:506
+msgid "Gamepad"
+msgstr ""
+
+#: ../index.phtml:508
+msgid "Geolocation"
+msgstr "Geolokalisierung"
+
+#: ../index.phtml:418 ../index.phtml:453
+msgid "Fullscreen"
+msgstr "Vollbild"
+
+#: ../index.phtml:443
+msgid "Window"
+msgstr "Fenster"
+
+#: ../index.phtml:497
+msgid "Cookies supported, but no data for this site"
+msgstr "Cookies werden unterstützt, aber es gibt keine Daten für diese Site"
+
+#: ../index.phtml:504
+msgid "Cookies supported, but disabled"
+msgstr "Cookies werden unterstützt, sind jedoch deaktiviert"
+
+#: ../index.phtml:538
+msgid "plugins installed"
+msgstr "Plugins installiert"
+
+#: ../index.phtml:543
+msgid "Plugins supported, but none detected"
+msgstr "Plugins werden unterstützt, aber es wurden keine erkannt"
+
+#: ../index.phtml:529
+msgid "Date of last modification"
+msgstr "Datum der letzten Änderung"
Index: live/i18n/de.pointedears.pot
===================================================================
--- live/i18n/de.pointedears.pot (revision 0)
+++ live/i18n/de.pointedears.pot (revision 198)
@@ -0,0 +1,251 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Thomas 'PointedEars' Lahn
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PE 0.3.9.15\n"
+"Report-Msgid-Bugs-To: Thomas 'PointedEars' Lahn <webmaster@PointedEars.de>\n"
+"POT-Creation-Date: 2013-07-01 23:08+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../index.phtml:21
+msgid "Access to the United Federation of Planets Databanks, an online songbook and software downloads always worth a click. Coming soon: The best internet links categorized and much more via a bilingual (English/German) LCARS terminal styled user interface that can be also used to surf the web anonymously! Bookmark NOW!"
+msgstr ""
+
+#: ../index.phtml:54
+msgid "The author is not responsible for the availability and the content of websites referred by this site, and not responsible for the availability and the content of websites referred by those sites. Whereever outsourced material is used, copyright or trademark infringement is not intended. Third parties who claim copyrights or trademarks used herein are asked to send an informal email to webmaster@PointedEars.de for immediate removal or modification of the respective material on the website instead of reminding the author of usage of this material. Thank you."
+msgstr ""
+
+#: ../global.php:39
+msgid "Software projects"
+msgstr ""
+
+#: ../index.phtml:114
+msgid "Vulcan greeting"
+msgstr ""
+
+#: ../index.phtml:127
+msgid "Welcome to PointedEars’ Website"
+msgstr ""
+
+#: ../index.phtml:132
+msgid "Latitude"
+msgstr ""
+
+#: ../index.phtml:133
+msgid "N"
+msgstr ""
+
+#: ../index.phtml:134
+msgid "S"
+msgstr ""
+
+#: ../index.phtml:135
+msgid "Longitude"
+msgstr ""
+
+#: ../index.phtml:136
+msgid "W"
+msgstr ""
+
+#: ../index.phtml:137
+msgid "E"
+msgstr ""
+
+#: ../index.phtml:138
+msgid "Lat/Lng Accuracy"
+msgstr ""
+
+#: ../index.phtml:139
+msgid "Altitude"
+msgstr ""
+
+#: ../index.phtml:140
+msgid "Alt. Accuracy"
+msgstr ""
+
+#: ../index.phtml:141
+msgid "Speed"
+msgstr ""
+
+#: ../index.phtml:142
+msgid "Heading"
+msgstr ""
+
+#: ../index.phtml:149
+msgid "Your current coordinates on Terra"
+msgstr ""
+
+#: ../index.phtml:150
+msgid "accuracy"
+msgstr ""
+
+#: ../index.phtml:49
+msgid "Send your feedback to PointedEars"
+msgstr ""
+
+#: ../index.phtml:143
+msgid "This site uses recent <a href='https://developer.mozilla.org/en-US/docs/' title='Learn more: Mozilla Developer Network'>Web technologies</a>. You can use the <a href='index.%s?printable=1'>%s</a> if it is not displayed properly with your software."
+msgstr ""
+
+#: ../index.phtml:372
+msgid "Printable version"
+msgstr ""
+
+#: ../index.phtml:375
+msgid "Printable"
+msgstr ""
+
+#: ../index.phtml:151
+msgid "Your feedback"
+msgstr ""
+
+#: ../index.phtml:156
+msgid "All rights reserved."
+msgstr ""
+
+#: ../global.php:37
+msgid "A comparison of features of ECMAScript implementations"
+msgstr ""
+
+#: ../global.php:44
+msgid "United Federation of Planets DataBase"
+msgstr ""
+
+#: ../index.phtml:184
+msgid "Original LCARS design by"
+" <a href='%s' title='%s'>Michael&nbsp;Okuda</a>."
+" Website design based on an <a href='%s'"
+" title='LCARS Standards Development Board'"
+">implementation in Flash by Chris&nbsp;Rossi</a>,"
+" and research by <a href='%s'"
+" title='Creating a Coherent LCARS Interface'>Bracer&nbsp;Jack</a>"
+" and <a href='%s'"
+" title='LCARS 47 Development Blog&nbsp;– LCARS&nbsp;101: A Designer’s Handbook'"
+">Eleanor&nbsp;C.&nbsp;Davenport</a>."
+msgstr ""
+
+#: ../index.phtml:195
+msgid "Michael Okuda on Twitter"
+msgstr ""
+
+#: ../index.phtml:271
+msgid "PointedEars' Standard Frases"
+msgstr ""
+
+#: ../index.phtml:280
+msgid "The world’s largest climate forecasting experiment for the 21st century"
+msgstr ""
+
+#: ../index.phtml:285
+msgid "Distributed computing to understand protein folding, protein aggregation, and related diseases"
+msgstr ""
+
+#: ../index.phtml:289
+msgid "Particle physics research with the Large Hadron Collider at CERN"
+msgstr ""
+
+#: ../index.phtml:293
+msgid "List of recommended TV shows and episodes, with logos in CSS"
+msgstr ""
+
+#: ../index.phtml:318
+msgid "The Search for Extra-Terrestrial Intelligence at HOME"
+msgstr ""
+
+#: ../index.phtml:322
+msgid "Me on Stack Overflow"
+msgstr ""
+
+#: ../index.phtml:323
+msgid "Me on Twitter"
+msgstr ""
+
+#: ../index.phtml:325
+msgid "http://en.wikipedia.org/wiki/Special:Contributions/PointedEars"
+msgstr ""
+
+#: ../index.phtml:327
+msgid "My contributions to Wikipedia"
+msgstr ""
+
+#: ../index.phtml:369
+msgid "Display"
+msgstr ""
+
+#: ../index.phtml:373
+msgid "available"
+msgstr ""
+
+#: ../index.phtml:373
+msgid "used"
+msgstr ""
+
+#: ../index.phtml:373
+msgid "pixels"
+msgstr ""
+
+#: ../index.phtml:375
+msgid "colors"
+msgstr ""
+
+#: ../index.phtml:376
+msgid "N/A"
+msgstr ""
+
+#: ../index.phtml:379
+msgid "User Agent"
+msgstr ""
+
+#: ../index.phtml:385
+msgid "Features"
+msgstr ""
+
+#: ../index.phtml:504
+msgid "Cookies"
+msgstr ""
+
+#: ../index.phtml:506
+msgid "Gamepad"
+msgstr ""
+
+#: ../index.phtml:508
+msgid "Geolocation"
+msgstr ""
+
+#: ../index.phtml:418
+#: ../index.phtml:453
+msgid "Fullscreen"
+msgstr ""
+
+#: ../index.phtml:443
+msgid "Window"
+msgstr ""
+
+#: ../index.phtml:497
+msgid "Cookies supported, but no data for this site"
+msgstr ""
+
+#: ../index.phtml:504
+msgid "Cookies supported, but disabled"
+msgstr ""
+
+#: ../index.phtml:538
+msgid "plugins installed"
+msgstr ""
+
+#: ../index.phtml:543
+msgid "Plugins supported, but none detected"
+msgstr ""
+
+#: ../index.phtml:529
+msgid "Date of last modification"
+msgstr ""
Index: live/i18n/LocaleData/de/LC_MESSAGES/de.pointedears.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: live/i18n/LocaleData/de/LC_MESSAGES/de.pointedears.mo
===================================================================
--- live/i18n/LocaleData/de/LC_MESSAGES/de.pointedears.mo (revision 0)
+++ live/i18n/LocaleData/de/LC_MESSAGES/de.pointedears.mo (revision 198)
/live/i18n/LocaleData/de/LC_MESSAGES/de.pointedears.mo
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: live/i18n
===================================================================
--- live/i18n (revision 0)
+++ live/i18n (revision 198)
/live/i18n
Property changes:
Added: svn:ignore
## -0,0 +1 ##
+*.mo
Index: live/media/eclipse.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: live/media/eclipse.jpg
===================================================================
--- live/media/eclipse.jpg (revision 0)
+++ live/media/eclipse.jpg (revision 198)
/live/media/eclipse.jpg
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: live/media/anybrowser-de.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: live/media/anybrowser-de.gif
===================================================================
--- live/media/anybrowser-de.gif (revision 0)
+++ live/media/anybrowser-de.gif (revision 198)
/live/media/anybrowser-de.gif
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: live/media/video/img/interface/ani-top-numbers.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: live/media/video/img/interface/ani-top-numbers.gif
===================================================================
--- live/media/video/img/interface/ani-top-numbers.gif (revision 0)
+++ live/media/video/img/interface/ani-top-numbers.gif (revision 198)
/live/media/video/img/interface/ani-top-numbers.gif
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: live/media/video/img/interface/desktop-mid-bottom-new.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: live/media/video/img/interface/desktop-mid-bottom-new.jpg
===================================================================
--- live/media/video/img/interface/desktop-mid-bottom-new.jpg (revision 0)
+++ live/media/video/img/interface/desktop-mid-bottom-new.jpg (revision 198)
/live/media/video/img/interface/desktop-mid-bottom-new.jpg
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: live/media/video/img/interface/desktop-mid-top.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: live/media/video/img/interface/desktop-mid-top.jpg
===================================================================
--- live/media/video/img/interface/desktop-mid-top.jpg (revision 0)
+++ live/media/video/img/interface/desktop-mid-top.jpg (revision 198)
/live/media/video/img/interface/desktop-mid-top.jpg
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: live/media/video/img/interface/desktop-left-top.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: live/media/video/img/interface/desktop-left-top.jpg
===================================================================
--- live/media/video/img/interface/desktop-left-top.jpg (revision 0)
+++ live/media/video/img/interface/desktop-left-top.jpg (revision 198)
/live/media/video/img/interface/desktop-left-top.jpg
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: live/media/video/img/interface/desktop-left-bottom.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: live/media/video/img/interface/desktop-left-bottom.jpg
===================================================================
--- live/media/video/img/interface/desktop-left-bottom.jpg (revision 0)
+++ live/media/video/img/interface/desktop-left-bottom.jpg (revision 198)
/live/media/video/img/interface/desktop-left-bottom.jpg
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: live/media/video/img/external.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: live/media/video/img/external.png
===================================================================
--- live/media/video/img/external.png (revision 0)
+++ live/media/video/img/external.png (revision 198)
/live/media/video/img/external.png
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: live/media/video/img/vulcan_hand-black-bg.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: live/media/video/img/vulcan_hand-black-bg.png
===================================================================
--- live/media/video/img/vulcan_hand-black-bg.png (revision 0)
+++ live/media/video/img/vulcan_hand-black-bg.png (revision 198)
/live/media/video/img/vulcan_hand-black-bg.png
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: live/media/video/series/index.php
===================================================================
--- live/media/video/series/index.php (revision 0)
+++ live/media/video/series/index.php (revision 198)
@@ -0,0 +1,10 @@
+<?php
+
+require_once 'Application.php';
+
+// require_once 'application/models/databases/seriometer/SeriOMeterDb.php';
+
+$application = \PointedEars\PHPX\Application::getInstance();
+// $application->setDefaultDatabase(
+// $application->registerDatabase('seriometer', new SeriOMeterDb()));
+$application->run();
\ No newline at end of file
Index: live/media/video/series/data.inc
===================================================================
--- live/media/video/series/data.inc (revision 0)
+++ live/media/video/series/data.inc (revision 198)
@@ -0,0 +1,1227 @@
+<?php
+include_once 'includes/x-files.php';
+include_once 'includes/alf.php';
+include_once 'includes/andromeda.php';
+include_once 'includes/battlestar-galactica.php';
+include_once 'includes/big-bang-theory.php';
+include_once 'includes/buffy.php';
+include_once 'includes/castle.php';
+include_once 'includes/charmed.php';
+include_once 'includes/columbo.php';
+include_once 'includes/dead-zone.php';
+include_once 'includes/efc.php';
+include_once 'includes/frasier.php';
+include_once 'includes/futurama.php';
+include_once 'includes/glee.php';
+include_once 'includes/heroes.php';
+include_once 'includes/house.php';
+include_once 'includes/macgyver.php';
+include_once 'includes/monk.php';
+include_once 'includes/moonlighting.php';
+include_once 'includes/numb3rs.php';
+include_once 'includes/psych.php';
+include_once 'includes/quantum-leap.php';
+include_once 'includes/remington-steele.php';
+include_once 'includes/scrubs.php';
+include_once 'includes/seaquest.php';
+include_once 'includes/simpsons.php';
+include_once 'includes/sliders.php';
+include_once 'includes/stargate.php';
+include_once 'includes/star-trek-tos.php';
+include_once 'includes/star-trek-tng.php';
+include_once 'includes/superman.php';
+include_once 'includes/time-trax.php';
+include_once 'includes/true-blood.php';
+
+$serien = array_merge($serien, array(
+ '<span class="buffy"><span class="title">Buffy</span><span class="hidden">'
+ . ' – </span><span class="subtitle">the Vampire Slayer</span></span>' => &$buffy,
+
+ '<span class="castle">Castle</span>' => &$castle,
+
+ '<span class="charmed"><span class="circle"></span><span class="arc3"></span><span class="c">C</span><span>harmed</span></span>' => &$charmed,
+
+ '<span class="columbo">Columbo</span>' => &$columbo,
+ // '<span class="columbo">Columbo</span> (de)' => &$columbo_de,
+
+ '<span class="countdown-x"><span class="title">Countdown X</span>'
+ . '&nbsp;&ndash;<span class="subtitle">Alarm im All</span></span>' => array(
+ 'ignore' => true,
+// 'channel' => 'Tele 5',
+// 'showtimes' => 'Di–Sa 04:20',
+ 'seen' => array(4, 6),
+// 'last_seen' => mktime(3, 45, 0, 12, 21, 2010),
+ 'seasons' => array(21),
+ 'episode_list' => 'http://www.imdb.de/title/tt0115126/episodes',
+ 'episodes' => array(
+ 1 => 'Pilot',
+ 2 => 'In Friends We Trust',
+ 3 => 'No Fear',
+ 4 => 'Gerüchte (Just a Rumor)',
+ 5 => 'Play Astronaut for Me',
+ 6 => 'Countdown mit Hindernissen (Lost in Space)',
+ 7 => 'Affären (Family Values)',
+ 8 => 'Ruhet in Frieden (Buried in Peace)',
+ 9 => 'Fremdes Leben (The Need to Know)',
+ 10 => "Giftige Gase (Reggie's Wild Ride)",
+ 11 => 'Die Bombendrohung (Burning Fuse)',
+ 12 => 'Ahnungslos im Einsatz (Judgment Call)',
+ 13 => 'The Accusation',
+ 14 => 'Erscheinungen (Interpretations)',
+ 15 => 'Der Hurrikan (Hurricane)',
+ 16 => 'Eine schwierige Entscheidung (The Last to Know)',
+ 17 => 'Der kleine Prinz (The Astronaut Formerly Known as Prince)',
+ 18 => 'Spionage (Enemy Within)',
+ 19 => 'Die Zeitkapsel (Just Like Old Times)',
+ 20 => 'Katastrophe auf der MIR – Teil 1 (Mir, Mir Off the Wall, Part 1)',
+ 21 => 'Katastrophe auf der MIR – Teil 2 (Mir, Mir Off the Wall, Part 2)'
+ )
+ ),
+
+ '<span class="dead-zone"><span class="text"><span class="dead">Dead</span>
+ <span class="zone">Zone</span></span></span>' => &$dead_zone,
+
+ '<span class="doctor-who"><span class="gradient"><span class="gradient2">'
+ . '<span class="gradient3">Doctor Who</span></span></span></span> (9–11)' => array(
+// 'ignore' => true,
+ 'channel' => 'online',
+// 'showtimes' => 'Fr 20:00',
+ 'seen' => array(array(1, 6), 42, 56, array(60, 62)),
+// 'last_seen' => mktime(20, 0, 0, 12, 19, 2011),
+ 'seasons' => array(
+ 13, 'Special 2005' => 1,
+ 13, 'Special 2006' => 1,
+ 13, 'Special 2007' => 1,
+ 13, 'Special 2008–2010' => 4,
+ 13, 'Special 2010' => 1,
+ 13, 'Special 2011' => 1
+ ),
+ 'episode_list' => 'wiki:en:List_of_Doctor_Who_serials#Ninth_Doctor',
+ 'episodes' => array(
+ 1 => "Rose",
+ 2 => "The End of the World",
+ 3 => "The Unquiet Dead",
+ 4 => "Aliens of London",
+ 5 => "World War Three",
+ 6 => "Dalek",
+ 7 => "The Long Game",
+ 8 => "Father's Day",
+ 9 => "The Empty Child",
+ 10 => "The Doctor Dances",
+ 11 => "Boom Town",
+ 12 => "Bad Wolf",
+ 13 => "The Parting of the Ways",
+
+ 14 => "The Christmas Invasion",
+
+ 15 => "New Earth",
+ 28 => "The Runaway Bride",
+
+ 29 => "Smith and Jones",
+ 42 => "Voyage of the Damned (17.12.2011)",
+ 43 => "Partners in Crime",
+
+ 56 => "The Next Doctor (19.12.2011)",
+ 57 => "Planet of the Dead",
+ 58 => "The Waters of Mars",
+ 59 => "The End of Time (20.12.2011)",
+
+ 60 => 'The Eleventh Hour (18.06.2011 03:45)',
+ 61 => 'The Beast Below (17.06.2011 21:05)',
+ 62 => 'Victory of the Daleks (20.06.2011 20:00)',
+ 63 => 'The Time of Angels (21.06.2011 04:30)',
+ 64 => 'Flesh and Stone (02.07.2011 04:15)',
+ 65 => 'The Vampires of Venice (04.07.2011 20:00)',
+ 66 => "Amy's Choice (07.07.2011 04:35)",
+ 67 => 'The Hungry Earth (11.07.2011 20:00)',
+ 68 => 'Cold Blood',
+ 69 => 'Vincent and the Doctor (22.07.2011 20:00)',
+ 70 => 'The Lodger',
+ 71 => 'The Pandorica Opens',
+ 72 => 'The Big Bang',
+ 73 => 'A Christmas Carol (22.12.2011)',
+
+ 74 => 'The Impossible Astronaut',
+ 75 => 'Day of the Moon',
+ 76 => 'The Curse of the Black Spot (13.05.2011 20:00)',
+ 77 => "The Doctor's Wife",
+ 78 => 'The Rebel Flesh',
+ 79 => 'The Almost People',
+ 80 => 'A Good Man Goes to War (06.06.2011 05:25, 10.06.2011 21:00)',
+ 81 => "Let's Kill Hitler",
+ 82 => 'Night Terrors',
+ 83 => 'The Girl Who Waited',
+ 84 => 'The God Complex (19.09.2011)',
+ 85 => 'Closing Time (24.09.2011)',
+ 86 => 'The Wedding of River Song (01.10.2011)',
+ 87 => "The Doctor, the Widow and the Wardrobe (25.12.2011)",
+ )
+ ),
+
+ '<span class="efc"><span class="gr">Gene Roddenberry\'s</span>'
+ . ' <span class="earth"><span class="gradient">Eart<span class="h">h</span></span></span>'
+ . '<span class="hidden">:</span>'
+ . ' <span class="fc">Final Conflict</span><span class="glare"></span></span>' => &$efc,
+
+ '<span class="eureka"><span class="eur">Eur</span><span class="e">e</span>'
+ . '<span class="ka">ka</span></span></span>' => array(
+// 'ignore' => true,
+ 'channel' => 'online',
+ // 'showtimes' => 'Mo 20:15',
+ 'seen' => array(array(1, 10)),
+ 'seasons' => array(12, 13, 18, 21, 14),
+ 'episode_list' => 'wiki:en:List_of_Eureka_episodes',
+ 'episodes' => array(
+ 1 => 'Pilot (Am Ende der Zeit)',
+ 2 => 'Many Happy Returns (S.A.R.A.H)',
+ 3 => "Before I Forget (Sommernachtstraumsinvasion)",
+ 4 => "Alienated (Angriff der Außerirdischen)",
+ 5 => "Invincible (Unbesiegbar)",
+ 6 => "Dr. Nobel",
+ 7 => "Blink (Auf Speed)",
+ 8 => "Right as Raynes (Der Weihnachts-Virus)",
+ 9 => "Primal (Urinstinkte)",
+ 10 => "Purple Haze (Pollenflug)",
+ 11 => "H.O.U.S.E. Rules (Hausordnung)",
+ 12 => "Once in a Lifetime (Einmal im Leben)",
+
+ 13 => "Die brennenden Wissenschaftler (Phoenix Rising)",
+ 14 => "Gefangen im Kraftfeld (Try, Try Again)",
+ 15 => "Stürmische Zeiten (Unpredictable)",
+ 16 => "Das verrückte Licht (Games People Play)",
+ 17 => "Achtung Meteoriten (Duck, Duck Goose)",
+ 18 => "Ansteckende Träume (Noche de Sueños)",
+ 19 => "Familientreffen (Family Reunion)",
+ 20 => "Voll blöd (E = MC…?)",
+ 21 => "Der unsichtbare Erste (Sight Unseen)",
+ 22 => "Das Tor zur Ewigkeit (God is in the Details)",
+ 23 => "Unwiderstehlich (Maneater)",
+ 24 => "Der Fluch des Alchimisten (All that Glitters)",
+ 25 => "Eine Nacht bei Global Dynamics (A Night in Global Dynamics)",
+
+ 26 => "Martha, sei nicht zickig (Bad to the Drone)",
+ 27 => "Re-Evolution (What About Bob?)",
+ 28 => "Braver Hund! (Best in Faux)",
+ 29 => "Die Zeitschleife (I Do Over)",
+ 30 => "Fargo und Königin Nyota (Show Me the Mummy)",
+ 31 => "Captain Eureka (Phased and Confused)",
+ 32 => "Sonnige Zeiten (Here Come the Suns)",
+ 33 => "In Ewigkeit Angst (From Fear to Eternity)",
+ 34 => "Willkommen zurück, Carter (Welcome Back Carter)",
+ 35 => "Dein Gesicht oder meins? (Your Face or Mine?)",
+ 36 => "Die fünfte Dimension (Insane in the P-Brane)",
+ 37 => "Es ist nicht leicht, grün zu sein (It Ain't Easy Being Green)",
+ 38 => "Wenn ihr gebaut habt, kommen sie (If You Build It…)",
+ 39 => "Ein Schiff kommt selten allein (Ship Happens)",
+ 40 => "Wasser marsch! (Shower the People)",
+ 41 => "Wer ist Jack? (You Don't Know Jack)",
+ 42 => "Eiszeit in Eureka (Have an Ice Day)",
+ 43 => "Nemesis (What Goes Around Comes Around)",
+
+ 44 => "Gründertag (Founder’s Day)",
+ 45 => "Der große, rote Elf (A New World)",
+ 46 => "Lyncht Fargo (All the Rage)",
+ 47 => "Die Knallgasreaktion (The Story of O2)",
+ 48 => "Der menschliche Magnet (Crossing Over)",
+ 49 => "Glamour-Camping (Momstrosity)",
+ 50 => "Hausbau mit Hindernissen (Stoned)",
+ 51 => "Akte Ex (The Ex-Files)",
+ 52 => "I'll Be Seeing You",
+ 53 => "Stille Stadt, heilige Stadt (O Little Town…)",
+ 54 => "Abgehoben (Liftoff)",
+ 55 => "Reprise",
+ 56 => "Ein Blick in die Zukunft (Glimpse)",
+ 57 => "Guten Flug! (Up in the Air)",
+ 58 => "Omega Girls",
+ 59 => "Milben und Kraniche (Of Mites and Men)",
+ 60 => "Todesnebel (Clash of the Titans)",
+ 61 => "Damals im Space Camp (This One Time at Space Camp…)",
+ 62 => "Ein kleiner Schritt (One Small Step)",
+ 63 => "Ein Riesenschritt (One Giant Leap)",
+ 64 => "Do You See What I See",
+
+ 65 => "Lost",
+ 66 => "The Real Thing",
+ 67 => "Force Quit",
+ 68 => "Friendly Fire",
+ 69 => "Jack Of All Trades",
+ 70 => "Worst Case Scenario",
+ 71 => "Ex-Machina",
+ 72 => "In Too Deep",
+ 73 => "Smarter Carter",
+ 74 => "The Honeymooners",
+ 75 => "Mirror, Mirror",
+ 76 => "Double Take",
+ 77 => "Just Another Day",
+ 78 => "Christmas Special",
+ )
+ ),
+
+ '<span class="firefly">Fir<span class="e">e</span>fly</span>' => array(
+ 'channel' => 'online',
+ 'seen' => array(array(1, 2)),
+ 'seasons' => array(14),
+ 'episode_list' => 'wiki:en:Firefly_(TV_series)#Broadcast_history',
+ 'episodes' => array(
+ 1 => "Serenity",
+ 2 => "The Train Job",
+ 3 => "Bushwhacked",
+ 4 => "Shindig",
+ 5 => "Safe",
+ 6 => "Our Mrs. Reynolds",
+ 7 => "Jaynestown",
+ 8 => "Out of Gas",
+ 9 => "Ariel",
+ 10 => "War Stories",
+ 11 => "Trash",
+ 12 => "The Message",
+ 13 => "Heart of Gold",
+ 14 => "Objects in Space"
+ )
+ ),
+
+ '<span class="frasier">F<span>rasier</span></span>' => &$frasier,
+
+ '<span class="fresh-hell"><span class="gradient">Fresh Hell</span></span>' => array(
+ // 'ignore' => true,
+ 'channel' => 'online',
+ 'seen' => array(array(1, 5)),
+ // 'last_seen' => mktime(0, 5, 0, 7, 5, 2011),
+ 'seasons' => array(5, 10),
+ 'episode_list' => 'http://www.freshhellseries.com/home/category/video/episodes/season-1/',
+ 'episodes' => array(
+ 1 => 'Pilot',
+ 2 => 'The Actress Next Door',
+ 3 => 'The Agent Showcase',
+ 4 => 'The Agent Meeting',
+ 5 => 'The Manager Upstairs',
+
+ 6 => 'A Short Time Later',
+ 7 => "Levar",
+ 8 => "The Acting Class",
+ 9 => "Dakota's First Port Shoot",
+ 10 => "The Seance",
+ 11 => "The Birthday Party",
+ 12 => "The Billionaire",
+ 13 => "The Actor Prepares",
+ 14 => "The Jolinda Show",
+ 15 => "Dakota Leaving",
+ )
+ ),
+
+ '<span class="fringe"><span class="gradient">'
+ . ' <span class="f">F</span><span class="r">r</span><span class="i">i</span>'
+ . '<span class="n">n</span><span class="g">g</span><span class="e">e</span>'
+ . '</span></span>' => array(
+// 'ignore' => true,
+// 'channel' => 'ProSieben',
+// 'showtimes' => 'Mo 21:15–23:50',
+ 'seen' => array(array(1, 13)),
+// 'last_seen' => mktime(0, 5, 0, 7, 5, 2011),
+ 'seasons' => array(20, 23, 22, 22, 13),
+ 'episode_list' => 'wiki:Liste_der_Fringe-Episoden',
+ 'episodes' => array(
+ 1 => 'Pilot (Flug 627)',
+ 2 => 'The Same Old Story (Das Experiment)',
+ 3 => 'The Ghost Network (Roy)',
+ 4 => 'The Arrival (Die Ankunft)',
+ 5 => 'Unter Strom (Power Hungry)',
+ 6 => 'The Cure (Das Heilmittel)',
+ 7 => "In Which We Meet Mr. Jones (Der geheimnisvolle Mr. Jones)",
+ 8 => "The Equation (Die Gleichung)",
+ 9 => "The Dreamscape (Schmetterlinge im Kopf)",
+ 10 => "Safe (Durch die Wand)",
+ 11 => "Bound (Das Schnupfenvirus)",
+ 12 => "The No-Brainer (Hirnfresser)",
+ 13 => "The Transformation (Conrad)",
+ 14 => "Das Manifest (Ability)",
+ 15 => "Ohne Worte (Inner Child)",
+ 16 => "Entfesselt (Unleashed)",
+ // 17  17  Albträume Bad Dreams 2009-04-2121. Apr. 2009 2009-07-2020. Juli 2009 Akiva Goldsman J. H. Wyman & Andrew Kreisberg
+// 18  18  Nachtschatten Midnight 2009-04-2828. Apr. 2009 2009-07-2727. Juli 2009 Akiva Goldsman Jeff Pinkner & J. R. Orci
+// 19  19  Der andere Weg The Road Not Taken 2009-05-0505. Mai 2009 2009-08-0303. Aug. 2009 Frederick E. O. Toye Akiva Goldsman & Jeff Pinkner & J. R. Orci
+// 20  20  Nichts ist einzigartig There’s More Than One of Everything 2009-05-1212. Mai 2009 2009-08-1010. Aug. 2009 Brad Anderson Akiva Goldsman & Bryan Burk & Jeff Pinkner & J. H. Wyman
+ 55 => "Der Gedankenleser (Concentrate and Ask Again)",
+ 56 => "Unsterblich (Immortality)",
+ 57 => "6B",
+ 58 => "Versuchsperson 13 (Subject 13)",
+ 59 => "Os",
+ 60 => "Per Anhalter (Stowaway)",
+ 61 => "Blutlinie (Bloodline)",
+ 62 => "LSD (Lysergic Acid Diethylamide)",
+ 63 => "06:02 Uhr (6:02 AM EST)",
+ 64 => "Der letzte Sam Weiss (The Last Sam Weiss)",
+ 65 => "Der Tag, an dem wir starben (The Day We Died)",
+ )
+ ),
+
+ '<span class="futurama"><span class="f">F</span><span class="u">u</span>'
+ . '<span class="t">t</span><span class="u2">u</span><span class="r">r</span>'
+ . '<span class="a">a</span><span class="m">m</span><span class="a2">a</span>'
+ . '</span>' => &$futurama,
+
+ '<span class="glee">G<span class="lee">lee</span></span>' => &$glee,
+
+ // '<span class="glee">G<span class="lee">lee</span></span> (de)' => array(
+ // // 'ignore' => true,
+ // 'channel' => 'SF&nbsp;2',
+ // 'showtimes' => 'Mo–Fr 09:33',
+ // 'seen' => array(array(1, 4)),
+ // 'last_seen' => mktime(9, 30, 0, 12, 27, 2011),
+ // 'seasons' => array(22, 22),
+ // 'episode_list' => 'wiki:Liste_der_Glee-Episoden',
+ // 'episodes' => array(
+ // 1 => "Ouvertüre (Pilot)",
+ // 2 => "Jenseits von Gut und Sue (Showmance)",
+ // 3 => "Acafellas",
+ // 4 => "Kinder der Lüge (Preggers)",
+ // 5 => "April, April (The Rhodes Not Taken)",
+ // 6 => "Angeregte Organismen (Vitamin D)",
+ // 7 => "Spielverderberspiele (Throwdown)",
+ // 8 => "Remix (Mash-Up)",
+ // 9 => "Furcht und Tadel (Wheels)",
+ // 10 => "Balladen (Ballad)",
+ // 11 => "Haarspaltereien (Hairography)",
+ // // 12 => "Mattress",
+ // // 13 => "Sectionals",
+ // // 14 => "Hell-o",
+ // // 15 => "The Power of Madonna",
+ // // 16 => "Home",
+ // // 17 => "Bad Reputation",
+ // // 18 => "Laryngitis",
+ // // 19 => "Dream On",
+ // // 20 => "Theatricality",
+ // // 21 => "Funk",
+ // // 22 => "Journey to Regionals",
+ // // 23 => "Audition",
+ // // 24 => "Britney/Brittany",
+ // // 25 => "Grilled Cheesus",
+ // // 26 => "Duets",
+ // // 27 => "The Rocky Horror Glee Show",
+ // // 28 => "Never Been Kissed",
+ // // 29 => "The Substitute",
+ // // 30 => "Furt",
+ // // 31 => "Special Education",
+ // // 32 => "A Very Glee Christmas",
+ // // 33 => "The Sue Sylvester Shuffle",
+ // // 34 => "Silly Love Songs",
+ // // 35 => "Comeback",
+ // // 36 => "Blame It on the Alcohol",
+ // // 37 => "Sexy",
+ // // 38 => "Original Song",
+ // // 39 => "A Night of Neglect",
+ // // 40 => "Born This Way",
+ // // 41 => "Rumours",
+ // // 42 => "Prom Queen",
+ // // 43 => "Funeral",
+ // // 44 => "New York",
+ // )
+ // ),
+
+ '<span class="heroes">Her<span class="o">o</span>e<span class="s">s</span></span>' => &$heroes,
+
+ '<span class="house"
+ ><span class="h">H</span><span class="ouse">ouse</span>'
+ . '<span style="display: none">,</span>
+ <span class="md">M.D.</span></span>' => &$house,
+
+ '<span class="house"><span class="md-de">Dr.</span> <span class="h">H</span><span class="ouse">ouse</span></span>' => &$house_de,
+
+ '<span class="ijon-tichy"><span class="title"><span class="i">I</span>'
+ . '<span class="j">j</span><span class="o">o</span><span class="n">n</span>'
+ . ' <span class="t">T</span><span class="i2">i</span><span class="c">c</span>'
+ . '<span class="h">h</span><span class="y">y</span></span>'
+ . '<span class="hidden">: </span>'
+ . '<span class="subtitle"><span class="r">R</span><span class="a">a</span>'
+ . '<span class="u">u</span><span class="mpi">mpi</span>'
+ . '<span class="l">l</span><span class="o">o</span><span class="t">t</span></span>'
+ . '<span class="hidden">&nbsp;– </span>'
+ . '<span class="subtitle2"><span class="die">Die</span>'
+ . ' <span class="ster">Ster</span><span class="ntag">ntag</span>'
+ . '<span class="ebuec">ebüc</span><span class="her">her</span>'
+ . '</span></span>' => array(
+ 'channel' => 'zdf_neo',
+ 'seen' => array(array(1, 2)),
+ 'last_seen' => mktime(23, 35, 0, 10, 22, 2011),
+ 'seasons' => array(6, 8),
+ 'episode_list' => 'wiki:Ijon_Tichy:_Raumpilot#Episodenliste',
+ 'episodes' => array(
+ 1 => "Kosmische Kollegen",
+ 2 => "Planet der Reserven",
+ 3 => "Relativistische Effekte",
+ 4 => "Der futurologische Kongress",
+ 5 => "Sabotage",
+ 6 => "Die innere Stimme",
+ 7 => "Held von Kosmos",
+ 8 => "Shøpping",
+ 9 => "Schön schaumig",
+ 10 => "Biste fix Zeitblasen",
+ 11 => "Sepulken verboten",
+ 12 => "Das Erinnerungsstück",
+ 13 => "Schein und Sein I",
+ 14 => "Schein und Sein II",
+ )
+ ),
+
+ '<span class="it-crowd">The IT Crowd</span>' => array(
+// 'ignore' => true,
+ 'channel' => 'online',
+ 'seen' => array(array(1, 3)),
+ 'last_seen' => mktime(2, 0, 0, 11, 28, 2011),
+ 'seasons' => array(6, 6, 6, 6),
+ 'episode_list' => 'wiki:en:List_of_The_IT_Crowd_episodes',
+ 'episodes' => array(
+ 1 => "Yesterday's Jam",
+ 2 => "Calamity Jen",
+ 3 => "50/50",
+ 4 => "The Red Door",
+ 5 => "The Haunting of Bill Crouse",
+ 6 => "Aunt Irma Visits",
+
+ 7 => "The Work Outing",
+ 8 => "Return of the Golden Child",
+ 9 => "Moss and the German",
+ 10 => "The Dinner Party",
+ 11 => "Smoke and Mirrors",
+ 12 => "Men Without Women",
+
+ 13 => "From Hell",
+ 14 => "Are We Not Men?",
+ 15 => "Tramps Like Us",
+ 16 => "Speech",
+ 17 => "Friendface",
+ 18 => "Calendar Geeks",
+
+ 19 => "Jen the Fredo",
+ 20 => "The Final Countdown",
+ 21 => "Something Happened",
+ 22 => "Italian for Beginners",
+ 23 => "Bad Boys",
+ 24 => "Reynholm vs. Reynholm / Douglas and Divorce[iTunes]",
+ )
+ ),
+
+ '<span class="superman">Lois &amp; Clark: The New Adventures of Superman</span>' => &$superman,
+
+ '<span class="macgyver">MacGyver</span>' => $macgyver,
+
+ '<span class="monk">Monk</span>' => &$monk,
+ '<span class="monk">Monk</span> (de)' => &$monk_de,
+
+ '<span class="life-on-mars"><span class="life">Lif<span
+ class="e">e</span></span> <span class="on">on</span>
+ <span class="mars">Mars</span></span>' => array(
+// 'ignore' => true,
+ 'channel' => 'online',
+ 'seen' => array(array(1, 2)),
+ // 'last_seen' => mktime(21, 0, 0, 9, 8, 2011),
+ 'seasons' => array(8, 8),
+ // 'episode_list' => 'wiki:en:List_of_Life_on_Mars_episodes',
+ 'episodes' => array(
+ 1 => "Erinnerungen aus der Zukunft",
+ 2 => "Zeugenschutz",
+ 3 => "Episode 3",
+ 4 => "Episode 4",
+ 5 => "Episode 5",
+ 6 => "Episode 6",
+ 7 => "Episode 7",
+ 8 => "Episode 8",
+
+ 9 => "Episode 1",
+ 10 => "Episode 2",
+ 11 => "Episode 3",
+ 12 => "Episode 4",
+ 13 => "Episode 5",
+ 14 => "Episode 6",
+ 15 => "Episode 7",
+ 16 => "Episode 8"
+ )
+ ),
+
+ '<span class="moonlight"><span class="moon">Moo<span class="n">n</span></span><span class="light">light</span></span>' => array(
+// 'ignore' => true,
+ 'channel' => 'sixx',
+ 'showtimes' => 'Mi–Fr 21:00',
+ 'seen' => array(array(1, 2)),
+ 'last_seen' => mktime(21, 0, 0, 9, 8, 2011),
+ 'seasons' => array(16),
+ 'episodes' => array(
+ 1 => "Es gibt keine Vampire (No Such Thing As Vampires)",
+ 2 => "Schatten der Vergangenheit (Out of the Past)",
+ 3 => "Dr. Feelgood",
+ 4 => "Fieber (Fever)",
+ 5 => "Ewige Jugend (Arrested Development)",
+ 6 => "Black Crystal (B.C.)",
+ 7 => "Das Ebenbild (The Ringer)",
+ 8 => "Die Blutbeichte (12:04 AM)",
+ 9 => "Fleur de Lis",
+ 10 => "Dornröschen (Sleeping Beauty)",
+ 11 => "Ewige Liebe (Love Lasts Forever)",
+ 12 => "Das Heilmittel (The Mortal Cure)",
+ 13 => "Kurzes Glück (Fated to Pretend)",
+ 14 => "Klick (Click)",
+ 15 => "Was zurück bleibt … (What’s Left Behind)",
+ 16 => "Sonata"
+ ),
+ 'episode_list' => 'wiki:Moonlight_(Fernsehserie)#Episodenliste'
+ ),
+
+ '<span class="moonlighting">Moonlighting</span>' => &$moonlighting,
+
+ '<span class="mutant-x"><span class="gradient">Mutant X</span></span>' => array(
+// 'ignore' => true,
+ 'channel' => 'online',
+// 'showtimes' => 'Mo-Fr 14:10',
+ 'seen' => array(array(1, 9)),
+ 'seasons' => array(22, 22, 22),
+ 'episode_list' => 'http://www.mystery-files.de/season.php?id=1&serie=mutantx',
+ 'episodes' => array(
+ 1 => "The Shock of the New (1) (Genom X)",
+ 2 => "I Scream the Body Electric (2) (Unter Strom)",
+ 3 => "Russian Roulette (Russisches Roulette)",
+ 4 => "Fool For Love (Verrückt vor Liebe)",
+ 5 => "Kilohertz (Der elektrische Rebell)",
+ 6 => "Meaning of Death (Der Unsterbliche)",
+ 7 => "Lit Fuse (Geladene Stimmung)",
+ 8 => "In the Presence of Mine Enemies (Schachmatt)",
+ 9 => "Crime of the New Century (Die Entführung)",
+ 10 => "Dark Star Rising (Tödliches Serum)",
+ 11 => "Whiter Shade of Pale (Die perfekte Tarnung)",
+ 12 => "Double Vision (Die dunkle Seite)",
+ 13 => "Blood Ties (Falsche Erwartungen)",
+ 14 => "Altered Ego (Gut und böse)",
+ 15 => "Lazarus Syndrome (Neun Leben)",
+ 16 => "Interface (Lebende Hardware)",
+ 17 => "Presumed Guilty (Verlorene Erinnerung)",
+ 18 => "Ex Marks the Spot (Das russische Ei)",
+ 19 => "Nothing to Fear (Traumfänger)",
+ 20 => "Deadly Desire (Die Skorpionfrau)",
+ 21 => "A Breed Apart (Patient Null)",
+ 22 => "Dancing on the Razor (Tanz am Abgrund)",
+
+ 23 => "Past as Prologue (Die Alchemistin)",
+ 24 => "Power Play (An die Wand gespielt)",
+ 25 => "Time Squared (Zeitreise)",
+ 26 => "Whose Woods These Are (Der Werwolf)",
+ 27 => "The Future Revealed (Herrscher über Leben und Tod)",
+ 28 => "No Man Left Behind (Zwischen den Fronten)",
+ 29 => "Crossroads of the Soul (Die Welt hinter der Welt)",
+ 30 => "Sign From Above (Der Androide)",
+ 31 => "Body and Soul (Der Körperwanderer)",
+ 32 => "Understudy (Die Ersatzspielerin)",
+ 33 => "The Grift (Schmutzige Geschäfte)",
+ 34 => "At Destiny's End (Der letzte Coup)",
+ 35 => "Within These Walls (Tödliche Geheimnisse)",
+ 36 => "Hard Time (Gladiatoren)",
+ 37 => "Under the Cloak of War (Das Attentat)",
+ 38 => "Once Around (Der Kronzeuge)",
+ 39 => "Final Judgment (Das Tribunal)",
+ 40 => "Inferno",
+ 41 => "One Step Closer (Außer Kontrolle)",
+ 43 => "Reawakening (Begraben im ewigen Eis)",
+ 42 => "Reality Check (Das Labyrinth)",
+ 44 => "Lest He Become (Der perfekte Mutant)",
+
+ 45 => "Into the Moonless Night (Der Mutant aus dem Nichts)",
+ 46 => "Wages of Sin (Der Lohn der Sünde)",
+ 47 => "The Breed (Der Parasit)",
+ 48 => "Where Evil Dwells (Die Saat des Bösen)",
+ 49 => "The Taking of Crows (Kaltes Herz)",
+ 50 => "Shadows of Darkness (Schatten der Vergangenheit)",
+ 51 => "The Hand of God (Die Hand Gottes)",
+ 52 => "Wasteland (Die Heuschreckenplage)",
+ 53 => "No Exit (Der virtuelle Mörder)",
+ 54 => "Brother's Keeper (Das gestohlene Herz)",
+ 55 => "Possibilities (Bombenterror)",
+ 56 => "Conspiracy Theory (Die Verschwörung)",
+ 57 => "Art of Attraction (Die drei Gemälde)",
+ 58 => "A Normal Life (Zurück im Leben)",
+ 59 => "Divided Loyalities (Falsche Identität)",
+ 60 => "Age of Innocence (Der Fluch der Unsterblichkeit)",
+ 61 => "She's Come Undone (Der Krieg beginnt)",
+ 62 => "In Between (Im Inneren des Vulkans)",
+ 63 => "Dream Lover (Das trojanische Pferd)",
+ 64 => "The Prophecy (Die Prophezeiung)",
+ 65 => "Cirque des Merveilles (Kammer der Seeken)",
+ 66 => "The Assault (Der Schöpfer)"
+ )
+ ),
+
+ '<span class="numb3rs"><span class="gradient">Numb<span title="e">3</span>r<span class="s">s</span></span></span>' => &$numb3rs,
+ // '<span class="numb3rs"><span class="gradient">Numb<span title="e">3</span>r<span class="s">s</span></span></span> (de)' => &$numb3rs_de,
+
+ '<span class="odyssey5">Odys<span class="s2">s</span><span
+ class="e">e</span><span class="y2">y</span>
+ <span class="five">5</span></span>' => array(
+// 'ignore' => true,
+ 'channel' => 'online',
+ 'seen' => array(array(1, 3)),
+ 'episode_list' => 'wiki:en:Odyssey_5#Episode_list',
+ 'episodes' => array(
+ 1 => 'Pilot',
+ 2 => 'Shatterer',
+ 3 => 'Astronaut Dreams',
+ 4 => 'Time Out of Mind',
+ 5 => 'Symbiosis',
+ 6 => 'The Choices We Make',
+ 7 => 'Rapture',
+ 8 => 'L.D.U. 7',
+ 9 => 'Flux',
+ 10 => 'Kitten',
+ 11 => 'Dark at the End of the Tunnel',
+ 12 => 'Trouble with Harry',
+ 13 => 'Skin',
+ 14 => 'Begotten',
+ 15 => 'Vanishing Point',
+ 16 => 'Follow the Leader',
+ 17 => 'Half-Life',
+ 18 => 'Rage',
+ 19 => 'Fossil'
+ )
+ ),
+
+ '<span class="psych">psych</span>' => &$psych,
+
+ '<span class="quantum-leap"><span class="gradient">Quantum Leap</span></span>' => &$quantum_leap,
+
+ '<span class="reaper">Reaper</span>' => array(
+// 'ignore' => true,
+ 'channel' => 'E4',
+ 'showtimes' => 'Di–Sa 03:15',
+ 'seen' => array(array(1, 4)),
+ 'last_seen' => mktime(5, 0, 0, 6, 2, 2011),
+ 'seasons' => array(18, 13),
+ 'episodes' => array(
+ 1 => 'Pilot',
+ 2 => 'Charged',
+ 3 => 'All Mine',
+ 4 => 'Magic',
+ 5 => 'What About Blob?',
+ 6 => 'Leon',
+ 7 => 'Love, Bullets & Blacktop',
+ 8 => 'The Cop',
+ 9 => 'Ashes to Ashes',
+ 10 => 'Cash Out',
+ 11 => 'Hungry for Fame',
+ 12 => 'Unseen',
+ 13 => 'Acid Queen',
+ 14 => 'Rebellion',
+ 15 => 'Coming to Grips',
+ 16 => 'Greg, Schmeg',
+ 17 => 'The Leak',
+ 18 => 'Cancun',
+ 19 => 'Episode IV: A New Hope',
+ 20 => 'Dirty Sexy Mongol',
+ 21 => 'The Sweet Science',
+ 22 => 'The Favorite',
+ 23 => 'I Want My Baby Back',
+ 24 => 'Underbelly',
+ 25 => 'The Good Soil',
+ 26 => 'The Home Stretch',
+ 27 => 'No Reaper Left Behind',
+ 28 => "My Brother's Reaper",
+ 29 => 'To Sprong, With Love',
+ 30 => 'Business Casualty',
+ 31 => 'The Devil & Sam Oliver'
+ ),
+ 'episode_list' => 'wiki:en:List_of_Reaper_episodes'
+ ),
+
+ '<span class="remington-steele">Remington Steele</span>' => &$remington_steele,
+
+ '<span class="roswell">Roswel<span>l</span></span>' => array(
+// 'ignore' => true,
+ 'channel' => 'online',
+ // 'showtimes' => 'Di–Sa 03:15',
+ 'seen' => array(array(1, 8)),
+ // 'last_seen' => mktime(5, 0, 0, 6, 2, 2011),
+ 'seasons' => array(22, 21, 18),
+ 'episodes' => array(
+ 1 => "Pilot",
+ 2 => "The Morning After",
+ 3 => "Monsters",
+ 4 => "Leaving Normal",
+ 5 => "Missing",
+ 6 => "285 South (Part 1)",
+ 7 => "River Dog (Part 2)",
+ 8 => "Blood Brother",
+ 9 => "Heat Wave",
+ 10 => "The Balance",
+ 11 => "Toy House",
+ 12 => "Into the Woods",
+ 13 => "The Convention",
+ 14 => "Blind Date",
+ 15 => "Independence Day",
+ 16 => "Sexual Healing",
+ 17 => "Crazy",
+ 18 => "Tess, Lies and Videotape",
+ 19 => "Four Square",
+ 20 => "Max to the Max",
+ 21 => "The White Room (Part 1)",
+ 22 => "Destiny (Part 2)",
+
+ 23 => "Skin and Bones",
+ 24 => "Ask Not",
+ 25 => "Surprise",
+ 26 => "Summer of '47",
+ 27 => "The End of the World",
+ 28 => "Harvest",
+ 29 => "Wipeout!",
+ 30 => "Meet the Dupes (Part 1)",
+ 31 => "Max in the City (Part 2)",
+ 32 => "A Roswell Christmas Carol",
+ 33 => "To Serve and Protect",
+ 34 => "We Are Family",
+ 35 => "Disturbing Behavior (Part 1)",
+ 36 => "How the Other Half Lives (Part 2)",
+ 37 => "Viva Las Vegas",
+ 38 => "Heart of Mine",
+ 39 => "Cry Your Name",
+ 40 => "It's Too Late and It's Too Bad",
+ 41 => "Baby, It's You",
+ 42 => "Off the Menu",
+ 43 => "The Departure",
+
+ 44 => "Busted",
+ 45 => "Michael, the Guys and the Great Snapple Caper",
+ 46 => "Significant Others",
+ 47 => "Secrets and Lies (Part 1)",
+ 48 => "Control (Part 2)",
+ 49 => "To Have and to Hold",
+ 50 => "Interruptus",
+ 51 => "Behind the Music",
+ 52 => "Samuel Rising",
+ 53 => "A Tale of Two Parties",
+ 54 => "I Married an Alien",
+ 55 => "Ch-Ch-Changes",
+ 56 => "Panacea",
+ 57 => "Chant Down Babylon",
+ 58 => "Who Died and Made You King?",
+ 59 => "Crash",
+ 60 => "Four Aliens and a Baby",
+ 61 => "Graduation",
+ ),
+ 'episode_list' => 'wiki:en:List_of_Roswell_episodes'
+ ),
+
+ '<span class="samantha-who"><span class="text"><span class="samantha">Samantha</span>'
+ . ' <span class="who">Who</span></span><span class="q">?</span></span>' => array(
+// 'ignore' => true,
+ 'channel' => 'online',
+// 'showtimes' => 'Mo-Fr 19:00',
+ 'seen' => array(array(1, 5)),
+// 'last_seen' => mktime(19, 0, 0, 10, 1, 2011),
+ 'seasons' => array(15, 20),
+ 'episode_list' => 'wiki:en:Samantha_Who',
+ 'episodes' => array(
+ 1 => "Pilot",
+ 2 => "The Job",
+ 3 => "The Wedding",
+ 4 => "The Virgin",
+ 5 => "The Restraining Order",
+ 6 => "The Hypnotherapist",
+ 7 => "The Hockey Date",
+ 8 => "The Car",
+ 9 => "The Break-Up",
+ 10 => "The Girlfriend",
+ 11 => "The Boss",
+ 12 => "The Butterflies",
+ 13 => "The Gallery Show",
+ 14 => "The Affair",
+ 15 => "The Birthday",
+ 16 => "So I Think I Can Dance",
+ 17 => "Out of Africa",
+ 18 => "The Pill",
+ 19 => "The Building",
+ // 20 => "Help!",
+// 21 => "The Ex",
+// 22 => "The Farm",
+// 23 => "The Park",
+// 24 => "The Family Vacation",
+// 25 => "My Best Friend's Boyfriend",
+ 26 => "The Dog",
+ 27 => "The Amazing Racist",
+ 28 => "The Debt",
+ 29 => "The Rock Star",
+ 30 => "Todd's Job",
+ 31 => "The Sister",
+ 32 => "The Dream Job",
+ 33 => "The First Date",
+ 34 => "The Other Woman",
+ 35 => "With This Ring",
+ )
+ ),
+
+ '<span class="scrubs">Scrub<span class="s">s</span></span>' => &$scrubs,
+
+ '<span class="scrubs">Scrub<span class="s">s</span></span> (de)' => &$scrubs_de,
+
+ '<span class="seaQuest"><span id="seaQuest"><span
+ class="s">s</span><span class="e">e</span><span
+ class="a">a</span><span
+ class="q">Q</span><span class="u">u</span><span
+ class="e2">e</span><span class="s2">s</span><span
+ class="t">t</span></span><span class="hidden">
+ </span><span id="dsv">DSV</span></span>' => &$seaQuest,
+
+ '<span class="sherlock">Sherlock</span>' => array(
+ 'channel' => 'BBC 1',
+ 'showtimes' => 'Mi 21:30',
+ 'seen' => array(array(1, 3)),
+ 'last_seen' => mktime(21, 30, 0, 8, 3, 2011),
+ 'seasons' => array(3, 3),
+ 'episode_list' => 'http://bbc.co.uk/sherlock',
+ 'episodes' => array(
+ 1 => 'A Study in Pink',
+ 2 => 'The Blind Banker',
+ 3 => 'The Great Game',
+
+ 4 => "A Scandal in Belgravia (01.01.2012)",
+ 5 => "The Hounds of Baskerville (08.01.2012)",
+ 6 => "The Reichenbach Fall (15.01.2012)",
+ )
+ ),
+
+ '<span class="simpsons" id="simpsons"><span class="text"><span>The</span> <span>Simpsons</span></span></span>' => &$simpsons,
+ // '<span class="simpsons"><span class="text"><span>The</span> <span>Simpsons</span></span></span> (de)' => &$simpsons_de,
+
+ '<span class="sliders">Slider<span class="last">s</span></span>' => &$sliders,
+
+ '<span class="smallville">S<span>m<span>al<span>lv</span>il</span>l</span>e</span>' => &$smallville,
+ // '<span class="smallville">S<span>m<span>al<span>lv</span>il</span>l</span>e</span> (de)' => &$smallville_de,
+
+ '<span class="space-above-beyond"><span class="space">Spac<span>e</span></span><span class="hidden">: </span><span class="above-beyond">Above and <span>Beyond</span></span></span>' => array(
+ 'channel' => 'DVD',
+ 'seen' => array(array(1, 3)),
+ 'episode_list' => 'wiki:en:Space: Above and Beyond',
+ 'episodes' => array(
+ 23 => "…Tell Our Moms We Done Our Best",
+ 22 => "And If They Lay Us Down to Rest…",
+ 21 => "Sugar Dirt",
+ 20 => "Stardust",
+ 19 => "R & R",
+ 18 => "Pearly",
+ 17 => "Dear Earth",
+ 16 => "Toy Soldiers",
+ 15 => "The Angriest Angel",
+ 14 => "Never No More",
+ 13 => "Level of Necessity",
+ 12 => "Who Monitors the Birds?",
+ 11 => "The River of Stars",
+ 10 => "Stay with the Dead",
+ 9 => "Choice or Chance",
+ 8 => "Hostile Visit",
+ 7 => "The Enemy",
+ 6 => "Eyes",
+ 5 => "Ray Butts",
+ 4 => "Mutiny",
+ 3 => "The Dark Side of the Sun",
+ 2 => "The Farthest Man from Home",
+ 1 => "Pilot"
+ )
+ ),
+
+ '<span class="stargate en"><span>St<span class="a">a</span>rgat<span>e</span></span> <span>SG&middot;<span>1</span></span></span>' => &$stargate,
+ '<span class="stargate de"><span>St<span class="a">a</span>rgate</span> <span>Komm<span class="a">a</span>ndo SG-1</span></span>' => &$stargate_de,
+
+ '<span class="stargate atlantis"><span class="stargate"><span>St<span class="a">a</span>rg<span class="a">a</span>t<span>e</span></span></span>'
+ . ' <span class="atlantis"><span class="a">A</span>tlanti<span>s</span></span>' => &$stargate_atlantis,
+
+ '<abbr class="sg-u" title="Stargate Universe">S<span class="ring">G&#9900;</span>U</abbr>' => &$sgu,
+
+ '<span class="star-trek-tos">Star Trek</span>' => &$tos,
+ '<span class="star-trek-tng"><span class="star">Star</span> <span class="trek">Trek</span><span class="hidden">:</span><span class="tng">The Next Generation</span></span>' => &$tng,
+
+ '<span class="time-trax">Time Trax</span>' => &$time_trax,
+
+ '<span class="torchwood">Torchwood</span>' => array(
+ 'ignore' => true,
+ 'channel' => 'BBC 1',
+ 'showtimes' => 'Do 22:00',
+ // 'seen' => array(array(1, 4)),
+// 'last_seen' => mktime(22, 45, 0, 6, 7, 2011),
+ 'seasons' => array(13, 13, 5, 10),
+ 'episode_list' => 'wiki:List_of_Torchwood_episodes',
+ 'episodes' => array(
+ // 1 => 'Wie alles begann (Everything Changes)',
+// 2 => "Tag eins (Day One)",
+// 3 => 'Die Geistermaschine (Ghost Machine)',
+// 4 => 'Cyberwoman (Cyber Woman)',
+// 5 => 'Aus dunkler Vorzeit (Small Worlds)',
+// 6 => 'Erntezeit (Countrycide)',
+// 7 => 'Timeo Danaos… (Greeks Bearing Gifts)',
+// 8 => 'Sie haben Suzie schon wieder getötet! (They Keep Killing Suzie)',
+// 9 => 'Das sechste Auge (Random Shoes)',
+// 10 => 'Die Gestrandeten (Out of Time)',
+// 11 => 'Faustrecht (Combat)',
+// 12 => 'Captain Jack Harkness',
+// 13 => 'Das Ende aller Tage (End of Days)',
+
+// 14 => 'Kiss Kiss Bang Bang (Kiss Kiss, Bang Bang)',
+// 15 => 'Invasion (Sleeper)',
+// 16 => 'Bis zum letzten Mann (To the Last Man)',
+// 17 => 'Fleisch (Meat)',
+// 18 => 'Adam',
+// 19 => 'Nebenwirkungen (Reset)',
+// 20 => 'Untot (Dead Man Walking)',
+// 21 => 'Aus dem Leben eines Toten (A Day in the Death)',
+// 22 => 'Die Braut, der vor nichts graut (Something Borrowed)',
+// 23 => 'Sie kamen aus dem Regen (From Out of the Rain)',
+// 24 => 'Verschollen (Adrift)',
+// 25 => 'Offenbarungen (Fragments)',
+// 26 => 'Wundmale (Exit Wounds)',
+
+// 27 => 'Kinder der Erde: Tag eins (Children of Earth: Day One)',
+// 28 => 'Kinder der Erde: Tag zwei (Children of Earth: Day Two)',
+// 29 => 'Kinder der Erde: Tag drei (Children of Earth: Day Three)',
+// 30 => 'Kinder der Erde: Tag vier (Children of Earth: Day Four)',
+// 31 => 'Kinder der Erde: Tag fünf (Children of Earth: Day Five)',
+
+ 32 => 'The New World',
+ 33 => 'Rendition',
+ 34 => 'Dead of Night',
+ // 35 => 'Escape to L.A.',
+// 36 => 'The Categories of Life',
+// 37 => 'The Middle Men',
+// 38 => 'Immortal Sins',
+// 39 => 'End of the Road',
+// 40 => 'The Gathering',
+// 41 => 'The Blood Line'
+ )
+ ),
+
+ '<span class="torchwood">Torchwood</span> (de)' => array(
+ 'ignore' => true,
+ 'channel' => 'RTL Ⅱ',
+ 'showtimes' => 'Di 22:20',
+ 'seen' => array(array(1, 4)),
+ 'last_seen' => mktime(22, 45, 0, 6, 7, 2011),
+ 'seasons' => array(13, 13, 5, 10),
+ 'episode_list' => 'wiki:Liste_der_Torchwood-Episoden',
+ 'episodes' => array(
+ 1 => 'Wie alles begann (Everything Changes)',
+ 2 => "Tag eins (Day One)",
+ 3 => 'Die Geistermaschine (Ghost Machine)',
+ 4 => 'Cyberwoman (Cyber Woman)',
+ 5 => 'Aus dunkler Vorzeit (Small Worlds)',
+ 6 => 'Erntezeit (Countrycide)',
+ 7 => 'Timeo Danaos… (Greeks Bearing Gifts)',
+ 8 => 'Sie haben Suzie schon wieder getötet! (They Keep Killing Suzie)',
+ 9 => 'Das sechste Auge (Random Shoes)',
+ 10 => 'Die Gestrandeten (Out of Time)',
+ 11 => 'Faustrecht (Combat)',
+ 12 => 'Captain Jack Harkness',
+ 13 => 'Das Ende aller Tage (End of Days)',
+
+ 14 => 'Kiss Kiss Bang Bang (Kiss Kiss, Bang Bang)',
+ 15 => 'Invasion (Sleeper)',
+ // 16 => 'Bis zum letzten Mann (To the Last Man)',
+// 17 => 'Fleisch (Meat)',
+// 18 => 'Adam',
+// 19 => 'Nebenwirkungen (Reset)',
+// 20 => 'Untot (Dead Man Walking)',
+// 21 => 'Aus dem Leben eines Toten (A Day in the Death)',
+// 22 => 'Die Braut, der vor nichts graut (Something Borrowed)',
+// 23 => 'Sie kamen aus dem Regen (From Out of the Rain)',
+// 24 => 'Verschollen (Adrift)',
+// 25 => 'Offenbarungen (Fragments)',
+// 26 => 'Wundmale (Exit Wounds)',
+
+// 27 => 'Kinder der Erde: Tag eins (Children of Earth: Day One)',
+// 28 => 'Kinder der Erde: Tag zwei (Children of Earth: Day Two)',
+// 29 => 'Kinder der Erde: Tag drei (Children of Earth: Day Three)',
+// 30 => 'Kinder der Erde: Tag vier (Children of Earth: Day Four)',
+// 31 => 'Kinder der Erde: Tag fünf (Children of Earth: Day Five)',
+
+// 32 => 'The New World',
+// 33 => 'Rendition',
+// 34 => 'Dead of Night',
+// 35 => 'Escape to L.A.',
+// 36 => 'The Categories of Life',
+// 37 => 'The Middle Men',
+// 38 => 'Immortal Sins',
+// 39 => 'End of the Road',
+// 40 => 'The Gathering',
+// 41 => 'The Blood Line'
+ )
+ ),
+ '<span class="true-blood"><span class="upper">True</span>'
+ . '<span class="hidden"> </span><span class="blood"><span class="lower">B</span>lood</span></span>' => &$true_blood,
+
+ '<span class="tara"><span class="us-of">United States of</span>'
+ . ' <span class="tara">Tara</span></span>' => array(
+// 'ignore' => true,
+ 'channel' => 'online',
+ // 'showtimes' => 'Do 23:24',
+ 'seen' => array(array(1, 5)),
+ // 'last_seen' => mktime(0, 4, 0, 9, 30, 2011),
+ 'seasons' => array(12, 12, 12),
+ 'episode_list' => 'wiki:Taras_Welten#Episodenliste',
+ 'episodes' => array(
+ 1 => "Pilot (Teenie-Alarm)",
+ 2 => "Aftermath (Ruhe nach dem Sturm)",
+ 3 => "Work (Eine Frau für alle Fälle)",
+ 4 => "Himmel & Hölle (Inspiration)",
+ 5 => "Party Time (Revolution)",
+ 6 => "Familiengeheimnisse (Transition)",
+ 7 => "Busenfreundinnen (Alternations)",
+ 8 => "Weibliche Tricks und Triebe (Abundance)",
+ 9 => "Reiseandenken (Possibility)",
+ 10 => "Feuer unterm Dach (Betrayal)",
+ 11 => "Schnee von gestern (Snow)",
+ 12 => "Nackte Tatsachen (Miracle)",
+
+ 13 => "Zu neuen Ufern (Yes)",
+ 14 => "Buck In Love (Trouble Junction)",
+ 15 => "Auf dünnem Eis (The Truth Hurts)",
+ 16 => "Die neue Therapeutin (You Becoming You)",
+ 17 => "Hinter Gittern (Doin’ Time)",
+ 18 => "Geschlossene Gesellschaft (Torando)",
+ 19 => "Besuch vom Jugendamt (Dept. of Fucked Up Family Services)",
+ 20 => "Die Kunstausstellung (Explosive Diorama)",
+ 21 => "Das Familienporträt (The Family Portrait)",
+ 22 => "Die Schwarze Witwe (Open House)",
+ 23 => "Spurensuche (To Have and to Hold)",
+ 24 => "Zerbrochene Träume (From this Day Forward)",
+
+ 25 => "…youwillnotwin…",
+ 26 => "Crackerjack",
+ 27 => "The Full F**k You Finger",
+ 28 => "Wheels",
+ 29 => "Dr. Hatteras’ Miracle Elixir",
+ 30 => "The Road to Hell Is Paved with Breast Intentions",
+ 31 => "The Electrifying & Magnanimous Return of Beaverlamp",
+ 32 => "Chicken 'n' Corn",
+ 33 => "Bryce Will Play",
+ 34 => "Train Wreck",
+ 35 => "Crunchy Ice",
+ 36 => "The Good Parts"
+ )
+ ),
+
+ '<span class="visitors"><span class="v">V</span>'
+ . '<span class="hidden"> – </span><span class="subtitle">Die Besucher</span></span> (2009)' => array(
+ 'channel' => 'ProSieben',
+ 'showtimes' => 'Mi 20:15',
+ 'seen' => array(array(1, 3)),
+ 'last_seen' => mktime(20, 15, 0, 7, 18, 2011),
+ 'seasons' => array(12, 10),
+ 'episode_list' => 'wiki:V_-_Die_Besucher#Episodenliste',
+ 'episodes' => array(
+ 1 => "Wir kommen in Frieden (Pilot)",
+ 2 => "Nichts ist mehr normal (There Is No Normal Anymore)",
+ 3 => "Ein strahlender Tag (A Bright New Day)",
+ 4 => "Das ist nur der Anfang (It’s Only The Beginning)",
+ 5 => "Willkommen im Krieg (Welcome To The War)",
+ 6 => "Ein Pfund Fleisch (Pound of Flesh)",
+ 7 => "John May (John May)",
+ 8 => "Wir können nicht gewinnen (We Can't Win)",
+ 9 => "Die Ketzergabel (Heretic's Fork)",
+ 10 => "Herz und Verstand (Hearts and Minds)",
+ 11 => "Reifezeit (Fruition)",
+ 12 => "Brennender Himmel (Red Sky)",
+ // 13 => "Roter Regen (Red Rain)",
+// 14 => "Selbstmordkommandos (Serpent’s Tooth)",
+ 15 => "Enthüllung (Laid Bare)",
+ 16 => "Unheilige Allianz (Unholy Alliance)",
+ 17 => "Concordia (Concordia)",
+ 18 => "Belagerung (Siege)",
+ 19 => "Geburtstagswehen (Birth Pangs)",
+ 20 => "Offensive (Uneasy Lies the Head)",
+ 21 => "Teufel in Blau (Devil in a Blue Dress)",
+ 22 => "Muttertag (Mother’s Day)",
+ )
+ ),
+
+ '<span class="visitor">The Visitor</span> (de)' => array(
+// 'ignore' => true,
+ 'channel' => 'online',
+ 'seen' => array(array(1, 2)),
+ 'seasons' => array(13),
+ 'episode_list' => 'wiki:en:The_Visitor_(TV_series)#Episodes',
+ 'episodes' => array(
+ 1 => "Pilot",
+ 2 => "Fear of Flying (Angst vorm Fliegen)",
+ 3 => "The Devil's Rainbow (Der blaue Kristall)",
+ 4 => "Dreams (Warnung aus dem All)",
+ 5 => "Remember (Operation Omega)",
+ 6 => "The Black Box (Black Box)",
+ 7 => "Devil Night (Teufelsnacht)",
+ 8 => "Reunion (Die letzte Stunde)",
+ 9 => "Caged (In den Fängen des Wahnsinns)",
+ 10 => "Going Home (Das Ritual)",
+ 11 => "Miracles (Wunder des Lebens)",
+ 12 => "The Chain (Magnolias Visionen)",
+ 13 => "The Trial (Verräter)"
+ )
+ ),
+
+ '<span class="warehouse-13">Warehouse <span class="numbers">13</span></span>' => array(
+// 'ignore' => true,
+ 'channel' => 'online',
+// 'showtimes' => 'Mi 18:15',
+ 'seen' => array(array(1, 7)),
+// 'last_seen' => mktime(18, 15, 0, 5, 4, 2011),
+ 'seasons' => array(12, 13, 13, 16),
+ 'episode_list' => 'wiki:en:List_of_Warehouse_13_episodes',
+ 'episodes' => array(
+ 1 => 'Pilot (Der Kamm der Borgia)',
+ 2 => 'Resonance (Der Klang der Musik)',
+ 3 => 'Magnetism (Unterbewusstes Verlangen)',
+ 4 => 'Claudia (Das Rheticus-Experiment)',
+ 5 => 'Elements (Die Elemente der Macht)',
+ 6 => 'Burnout (Das Rückgrat des Sarazenen)',
+ 7 => 'Implosion (Das Schwert des Samurai)',
+ 8 => 'Duped (Gefangen im Spiegel)',
+ 9 => 'Regrets (Visionen der Reue)',
+ 10 => 'Breakdown (Das Tribunal der Räte)',
+ 11 => 'Nevermore (Die Macht der Worte)',
+ 12 => 'MacPherson (Ein Ende mit Schrecken)',
+
+ 13 => "Time Will Tell (Die Perle der Weisheit)",
+ 14 => "Mild Mannered (In der Maske des Helden)",
+ 15 => "Beyond Our Control (Unheimliches in Univille)",
+ 16 => "Age Before Beauty (Der Preis der Jugend)",
+ 17 => "13.1 (Das Hirn des Konstrukteurs)",
+ 18 => "Around the Bend (Am Rande des Wahnsinns)",
+ 19 => "For the Team (Der Zaubertrank der Wikinger)",
+ 20 => "Merge with Caution (Im Körper des Kollegen)",
+ 21 => "Vendetta (Der Rächer aus der Vergangenheit)",
+ 22 => "Where and When (Zeitreise in die Sechziger)",
+ 23 => "Buried (Das Vermächtnis der Ägypter)",
+ 24 => "Reset (Der Dreizack der Verdammnis)",
+ 25 => "Secret Santa (Der Geist der Weihnacht)",
+
+ 26 => "The New Guy",
+ 27 => "Trials",
+ 28 => "Love Sick",
+ 29 => "Queen for a Day",
+ 30 => "3… 2… 1…",
+ 31 => "Don't Hate the Player",
+ 32 => "Past Imperfect",
+ 33 => "The 40th Floor",
+ 34 => "Shadows",
+ 35 => "Insatiable",
+ 36 => "Emily Lake (Part 1)",
+ 37 => "Stand (Part 2)",
+ 38 => "The Greatest Gift",
+
+ 39 => "A New Hope",
+ 40 => "An Evil Within",
+ 41 => "Personal Effects",
+ 42 => "There's Always a Downside",
+ 43 => "No Pain, No Gain",
+ 44 => "Fractures",
+ 45 => "Endless Wonder",
+ 46 => "Second Chance",
+ 47 => "The Ones You Love",
+ 48 => "We All Fall Down",
+ 49 => "The Living and the Dead",
+ 50 => "Parks and Rehabilitation",
+ 51 => "The Big Snag",
+ 52 => "The Sky’s the Limit",
+ 53 => "Instinct",
+ 54 => "Runaway",
+ )
+ ),
+));
Index: live/media/video/series/application/controllers/IndexController.php
===================================================================
--- live/media/video/series/application/controllers/IndexController.php (revision 0)
+++ live/media/video/series/application/controllers/IndexController.php (revision 198)
@@ -0,0 +1,151 @@
+<?php
+
+require_once 'application/views/IndexView.php';
+require_once 'application/models/mappers/SeriesMapper.php';
+
+class IndexController extends \PointedEars\PHPX\Controller
+{
+ /**
+ * Creates a new controller for the index view
+ *
+ * @see Controller::__construct()
+ */
+ public function __construct ()
+ {
+ parent::__construct('IndexView');
+ }
+
+ public function indexAction ()
+ {
+ require_once 'data.inc';
+
+ $min_percentage = 100;
+ $min_series = null;
+
+ $data = array(
+ 'urns' => array(
+ 'wiki' => 'http://de.wikipedia.org/wiki/'
+ )
+ );
+
+ $serien = SeriesMapper::getInstance()->getList($serien);
+
+ foreach ($serien as $key => &$serie)
+ {
+ if ($serie->total > 0)
+ {
+ if (!$serie->ignore && $serie->percentage < $min_percentage)
+ {
+ $min_percentage = $serie->percentage;
+ $min_series = $key;
+ }
+ }
+ }
+
+ $this->assign('serien', $serien);
+ $this->assign('min_series', $min_series);
+ $this->render();
+ }
+
+ private function oldIndexAction ()
+ {
+ require_once 'data.inc';
+
+ $min_percentage = 100;
+ $min_series = null;
+
+ $data = array(
+ 'urns' => array(
+ 'wiki' => 'http://de.wikipedia.org/wiki/'
+ ),
+ 'list' => &$serien
+ );
+
+ foreach ($serien as $key => &$serie)
+ {
+ $count = 0;
+ $serie['coverage'] = array();
+
+ if (isset($serie['seen']))
+ {
+ $count = count($serie['seen']);
+
+ foreach ($serie['seen'] as $episode)
+ {
+ if (is_array($episode))
+ {
+ $count += $episode[1] - $episode[0];
+ $serie['coverage'][] = $episode[0] . '&ndash;' . $episode[1];
+ }
+ else
+ {
+ $serie['coverage'][] = $episode;
+ }
+ }
+ }
+
+ $serie['count'] = $count;
+
+ $serie['total'] = 0;
+ if (isset($serie['seasons']) && is_array($serie['seasons']))
+ {
+ $serie['total'] = array_sum($serie['seasons']);
+
+ $episode_count = 1;
+ $serie['season_ranges'] = array();
+ foreach ($serie['seasons'] as $season_key => $season_length)
+ {
+ if (is_int($season_key))
+ {
+ $serie['season_ranges'][$season_key + 1] = array($episode_count, $episode_count + $season_length - 1);
+ }
+
+ $episode_count += $season_length;
+ }
+ }
+ else
+ {
+ $serie['total'] = max(array_keys($serie['episodes']));
+ }
+
+ $serie['percentage'] = 0;
+ if ($serie['total'] > 0)
+ {
+ $serie['percentage'] = $count / $serie['total'] * 100;
+
+ if ((!isset($serie['ignore']) || !$serie['ignore'])
+ && $serie['percentage'] < $min_percentage)
+ {
+ $min_percentage = $serie['percentage'];
+ $min_series = $key;
+ }
+ }
+
+ if (isset($serie['episode_list']))
+ {
+ $episode_list =& $serie['episode_list'];
+ foreach ($data['urns'] as $prefix => $urn)
+ {
+ if (preg_match("/^{$prefix}:/", $episode_list))
+ {
+ $episode_list = preg_replace("/^{$prefix}:/", $urn,
+ str_replace(' ', '_', $episode_list));
+ }
+ }
+ }
+ }
+
+ // var_dump($serien['<span class="alf">ALF</span>']);
+
+ $this->assign('serien', $serien);
+ $this->assign('min_series', $min_series);
+ $this->render();
+ }
+
+// public function importAction ()
+// {
+// require_once 'data.inc';
+// header('Content-Type: text/html; charset=UTF-8');
+// SeriesMapper::getInstance()->importAll($serien);
+// }
+}
\ No newline at end of file
Index: live/media/video/series/application/views/IndexView.php
===================================================================
--- live/media/video/series/application/views/IndexView.php (revision 0)
+++ live/media/video/series/application/views/IndexView.php (revision 198)
@@ -0,0 +1,90 @@
+<?php
+
+class IndexView extends \PointedEars\PHPX\View
+{
+ /**
+ * @var \Zend\I18n\Translator\Translator
+ */
+ private $_translator;
+
+ /**
+ * @var string
+ */
+ private $_textDomain;
+
+ /**
+ * @var string
+ */
+ private $_language;
+
+ /**
+ * Creates a new index view
+ *
+ * @see View::__construct()
+ */
+ public function __construct ($template)
+ {
+ parent::__construct('application/layouts/index/index.phtml');
+
+ require_once 'Zend/Loader/StandardAutoloader.php';
+ $loader = new Zend\Loader\StandardAutoloader(array('autoregister_zf' => true));
+ $loader->register();
+
+ $translator = $this->_translator = new Zend\I18n\Translator\Translator();
+ // $translator->setCache(new Zend\Cache\Storage\*Adapter());
+ $type = 'gettext';
+ $base_dir = $_SERVER['DOCUMENT_ROOT'] . '/i18n/LocaleData';
+ $pattern = '%s/LC_MESSAGES/%1$s.pointedears.mo';
+ $text_domain = $this->_textDomain = 'de.pointedears';
+ $translator->addTranslationFilePattern($type, $base_dir, $pattern, $text_domain);
+ }
+
+ /**
+ * @param string $value
+ * @return IndexView
+ */
+ public function setLanguage ($value)
+ {
+ $this->_language = $value;
+ return $this;
+ }
+
+ /**
+ * Returns the translation of the parameter, if any,
+ * using Zend Framework 2.1 Translate
+ *
+ * @param string $s
+ * @return string
+ */
+ public function _ ($s)
+ {
+ return $this->_translator->translate($s, $this->_textDomain, $this->_language);
+ }
+
+ public function getCoverage ($seen)
+ {
+ if (!is_array($seen))
+ {
+ return '';
+ }
+
+ return implode(', ',
+ array_map(
+ function ($e) {
+ if (is_array($e))
+ {
+ if ($e[1] === $e[0] + 1)
+ {
+ return implode(', ', $e);
+ }
+
+ return $e[0] . '&ndash;' . $e[1];
+ }
+
+ return $e;
+ },
+ $seen
+ )
+ );
+ }
+}
\ No newline at end of file
Index: live/media/video/series/application/layouts/index/index.phtml
===================================================================
--- live/media/video/series/application/layouts/index/index.phtml (revision 0)
+++ live/media/video/series/application/layouts/index/index.phtml (revision 198)
@@ -0,0 +1,362 @@
+<?php header('Content-Type: text/html; charset=UTF-8'); ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<html lang="de">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Seri-o-meter</title>
+ <?php
+// require_once 'css/lessphp/lessc.inc.php';
+// lessc::ccompile('style.less', 'style-less.css');
+// require_once 'css/least/LEAST.php';
+// de\pointedears\css\least\LEAST::compile('style.css', 'style-least.css');
+ ?>
+ <link rel="stylesheet" href="style.css" type="text/css">
+ <script type="text/javascript" src="/scripts/builder.php?src=object"></script>
+ <script type="text/javascript">
+ /*
+ function setStyle(obj, style)
+ {
+ var styleProperties = Object.getOwnPropertyNames(style);
+ for (var i = styleProperties.length; i--;)
+ {
+ var prop = styleProperties[i];
+ obj.style[prop] = style[prop];
+ }
+ }
+
+ function editor()
+ {
+ var div = document.createElement("div");
+ setStyle(div, {
+ position: "fixed",
+ right: "0",
+ top: "0",
+ width: "200px",
+ bottom: "0",
+ backgroundColor: "#ccc"
+ });
+ document.body.appendChild(div);
+
+ function findRules(selectorText)
+ {
+ var slice = Array.prototype.slice;
+ function toArray(obj)
+ {
+ return slice.call(obj);
+ }
+
+ var rx = new RegExp("(^|\\s)" + selectorText.replace(/[^$.(){}\[\]]/, "\\$&") + "\\s*$");
+ var hits = toArray(document.styleSheets).map(function (styleSheet) {
+ return toArray(styleSheet.cssRules || styleSheet.rules).filter(function (rule) {
+ return rx.test(rule.selectorText);
+ });
+ }).filter(function (hit) {
+ return hit.length > 0;
+ });
+
+ return Array.prototype.concat.apply([], hits);
+ }
+
+ var afterRule = findRules(".heroes .o::after");
+ var rxBgImage = new RegExp(
+ "{RADIALGRADIENT}\\(\\s*({POSITION}\\s*,\\s*)?({SHAPE}\\s*,\\s*)?{COLORSTOP}(\\s*,\\s*{COLORSTOP})+\\s*\\)"
+ .replace(/\{RADIALGRADIENT\}/g, "(-(webkit|moz|o|ms)-)?radial-gradient")
+ .replace(/\{POSITION\}/g, "{LENGTH}(\\s+{LENGTH})?")
+ .replace(/\{SHAPE\}/g, "\\s*((circle|ellipse)(\\s+({EDGE}))?|{LENGTH}(\\s+{LENGTH}))")
+ .replace(/\{EDGE\}/g, "cover|closest-corner|closest-side|farthest-corner|farthest-side")
+ .replace(/\{COLORSTOP\}/g, "{COLOR}(\\s*{PERCENTAGE})?")
+ .replace(/\{LENGTH\}/g, "{NUMBER}{UNIT}")
+ .replace(/\{COLOR\}/g, "({COLORNAME}|{RGB}|{RGBA})")
+ .replace(/\{RGB\}/g, "rgb\\s*\\(\\s*{COLORCOMP}(\\s*,\\s*{COLORCOMP}){2}\\s*\\)")
+ .replace(/\{RGBA\}/g, "rgba\\s*\\(\\s*{COLORCOMP}(\\s*,\\s*{COLORCOMP}){2}\\s*,\\s*{PERCENTAGE}\\s*\\)")
+ .replace(/\{COLORCOMP\}/g, "{NUMBER}%?")
+ .replace(/\{COLORNAME\}/g, "black|transparent")
+ .replace(/\{PERCENTAGE\}/g, "{NUMBER}%?")
+ .replace(/\{NUMBER\}/g, "\\d+")
+ .replace(/\{UNIT\}/g, "(px|%|em|ex|pt)")
+ , "g");
+ console.log(rxBgImage);
+ var value = afterRule[0].style.getPropertyValue("background-image");
+ console.log(value);
+ var backgroundImages = value.match(rxBgImage);
+ console.log(backgroundImages);
+ }
+ */
+ var _getProperty;
+
+ function net()
+ {
+ var map = {
+ "gene-roddenberry's-andromeda": "andromeda",
+ "battlestar-galactica-2004": "battlestar-galactica",
+ "battlestar-galactica-2004-de": "battlestar-galactica",
+ "buffy-the-vampire-slayer": "buffy",
+ "lois-clark-the-new-adventures-of-superman": "lois-clark-the-new-adventures-of-superman-1993",
+ };
+
+ var translations = {
+ "akte-x": "the-x-files",
+ };
+
+ var f = function (e) {
+ if (e && e.shiftKey && e.ctrlKey)
+ {
+ var key = this.textContent.toLowerCase()
+ .replace(/[&:.,()–]/g, "").replace(/\s+/g, "-")
+ .replace("-de", "");
+
+ if (typeof _getProperty == "undefined")
+ {
+ _getProperty = jsx.object.getProperty;
+ }
+
+ key = _getProperty(map, key, key);
+
+ if (e.altKey)
+ {
+ var baseURL = "http://serienjunkies.org/serie/";
+ }
+ else
+ {
+ key = _getProperty(translations, key, key).replace(/-/g, "_");
+ baseURL = "http://www.tubeplus.me/search/tv-shows/";
+ }
+
+ window.open(baseURL + encodeURIComponent(key));
+
+ e.preventDefault();
+ }
+ };
+
+ try
+ {
+ for (var a = document.links, i = a.length; i--;)
+ {
+ var e = a[i];
+ e.addEventListener("click", f, false);
+ }
+ }
+ catch (e) {}
+ }
+ </script>
+ </head>
+
+ <body onload="net() // editor()">
+ <h1 class="hidden">Seri-o-meter</h1>
+ <?php // var_dump($serien); ?>
+ <table>
+ <?php
+ if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN')
+ {
+ function strftime_portable ($format, $timestamp = null)
+ {
+ if ($timestamp === null)
+ {
+ $timestamp = time();
+ }
+
+ $format = preg_replace('#(?<!%)((?:%%)*)%e#', '\1%#d', $format);
+ return strftime($format, $timestamp);
+ }
+ }
+ else
+ {
+ function strftime_portable ($format, $timestamp = null)
+ {
+ if ($timestamp === null)
+ {
+ $timestamp = time();
+ }
+
+ return strftime($format, $timestamp);
+ }
+ }
+
+ setlocale(LC_ALL, 'de_CH.UTF-8');
+ $this->setLanguage('de');
+
+ $min_series = $this->min_series;
+ foreach ($this->serien as $name => $serie)
+ {
+ ?>
+ <tr>
+ <td style="text-align: center"><?php
+ $recommended = ($name === $min_series);
+ if ($serie->ignore)
+ {
+ ?>&#9646;&#9646;<?php
+ }
+ else if ($recommended)
+ {
+ ?>→<?php
+ }
+ ?></td>
+ <th<?php if ($recommended) { ?> class="recommended"<?php } ?>><?php
+ $ep_list = $serie->episode_list;
+ if ($ep_list)
+ {
+ ?><a href="<?php
+ echo $this->escape($serie->episode_list);
+ ?>" title="<?php echo $this->escape($this->_('Episode list')); ?>"><?php
+ }
+ echo $serie->title;
+ if ($ep_list) { ?></a><?php }
+ ?><br>
+ <span style="font-weight: normal"><?php
+ if ($serie->channel) echo $serie->channel;
+
+ if ($serie->showtimes)
+ {
+ echo ', ' . $serie->showtimes;
+ }
+ ?></span></th>
+ <td<?php if ($recommended) { ?> class="recommended"<?php } ?>>
+ <div><?php echo $this->_('Watched:'); ?> <?php
+ echo $this->getCoverage($serie->seen) . ' ('. $serie->count;
+ ?> von <?php $total = $serie->total; echo $total; ?> Episoden)<?php
+ if ($serie->last_seen)
+ {
+ ?>; zuletzt am <?php
+ echo utf8_encode(strftime_portable('%A, %e. %B %Y %H:%M %z', $serie->last_seen));
+ }
+ ?></div>
+ <div class="box">
+ <div class="meter"
+ style="width: <?php
+ $percentage = $serie->percentage;
+ echo $percentage; ?>%"
+ ></div>
+ <?php
+ if ($serie->seasons)
+ {
+ $offset = 0;
+ foreach ($serie->seasons as $key => $season)
+ {
+ ?>
+ <div class="season"
+ <?php
+ if (!is_numeric($key))
+ {
+ ?> title="<?php echo $this->escape($key); ?>"<?php
+ }
+ ?>
+ style="<?php
+ if ($key === 0)
+ {
+ ?>border-left: none; <?php
+ }
+ ?>left: <?php echo $offset; ?>%;
+ width: <?php echo $season / $total * 100; ?>%"
+ ><?php
+ if (is_numeric($key))
+ {
+ echo ($key + 1);
+ }
+ else
+ {
+ echo $key;
+ }
+ ?></div>
+ <?php
+ $offset += round($season / $total * 100, 1);
+ }
+ }
+
+ if ($serie->episodes)
+ {
+ $prevNumber = null;
+ foreach ($serie->episodes as $episode => $description)
+ {
+ $episode_str = $episode;
+ if (is_array($serie->season_ranges))
+ {
+ foreach ($serie->season_ranges as $season_key => $season_range)
+ {
+ if ($episode >= $season_range[0] && $episode <= $season_range[1])
+ {
+ $episode_str = sprintf("%u (%ux%02u)", $episode, $season_key, $episode - $season_range[0] + 1);
+ }
+ }
+ }
+ ?>
+ <div class="coverage"
+ style="<?php
+ if (is_null($prevNumber) || $prevNumber !== $episode - 1)
+ {
+ ?>border-left: 1px solid rgba(0, 218, 0, 0.5); <?php
+ }
+ ?>
+ border-right: 1px solid rgba(0, 218, 0, 0.5);
+ background-color: transparent;
+ left: <?php echo ($episode - 1) / $total * 100; ?>%;
+ width: <?php echo 1 / $total * 100; ?>%"
+ title="<?php
+ echo "{$episode_str}: " . $this->escape($description);
+ ?>"></div><?php
+ $prevNumber = $episode;
+ }
+ }
+
+ if ($serie->seen)
+ {
+ foreach ($serie->seen as $range)
+ {
+ if (!is_array($range))
+ {
+ $range = array($range, $range);
+ }
+ /*
+ for ($i = $episode[0]; $i < $episode[1]; ++$i)
+ {
+ ?>
+ <div class="coverage"
+ style="left: <?php echo ($episode[0] - 1) / $total * 100; ?>%;
+ width: <?php echo ($episode[1] - $episode[0] + 1) / $total * 100; ?>%"
+ ></div>
+ <?php
+ }
+ }
+ else
+ */
+
+ for ($episode = $range[0]; $episode <= $range[1]; ++$episode)
+ {
+ $episode_str = $episode;
+ if ($serie->season_ranges)
+ {
+ foreach ($serie->season_ranges as $season_key => $season_range)
+ {
+ if ($episode >= $season_range[0] && $episode <= $season_range[1])
+ {
+ $episode_str = sprintf("%u (%ux%02u)", $episode, $season_key, $episode - $season_range[0] + 1);
+ }
+ }
+ }
+ ?>
+ <div class="coverage"
+ style="left: <?php echo ($episode - 1) / $total * 100; ?>%;
+ width: <?php echo 1 / $total * 100; ?>%"
+ <?php
+ if ($serie->episodes && array_key_exists($episode, $serie->episodes))
+ {
+ ?>title="<?php
+ echo "{$episode_str}: " . $this->escape($serie->episodes[$episode]);
+ ?>"<?php
+ }
+ ?>></div>
+ <?php
+ }
+ }
+ }
+ ?>
+ <span class="percentage"><?php echo round($percentage, 1); ?>%</span>
+ </div>
+ </td>
+ </tr>
+ <?php
+ }
+ ?>
+ </table>
+ </body>
+</html>
\ No newline at end of file
Index: live/media/video/series/application/models/Series.php
===================================================================
--- live/media/video/series/application/models/Series.php (revision 0)
+++ live/media/video/series/application/models/Series.php (revision 198)
@@ -0,0 +1,273 @@
+<?php
+
+require_once 'application/models/databases/seriometer/tables/SeriesTable.php';
+
+class Series extends \PointedEars\PHPX\Model
+{
+ /**
+ * (non-PHPdoc)
+ * @see \PointedEars\PHPX\Model::$_persistentTable
+ */
+ protected static $_persistentTable = 'SeriesTable';
+
+ /**
+ * (non-PHPdoc)
+ * @see \PointedEars\PHPX\Model::$_persistentId
+ */
+ protected static $_persistentId = 'series_id';
+
+ /**
+ * (non-PHPdoc)
+ * @see \PointedEars\PHPX\Model::$_persistentProperties
+ */
+ protected static $_persistentProperties = array(
+ 'title',
+ 'ignore',
+ 'channel_id',
+ 'last_seen',
+ 'seasons',
+ 'showtimes',
+ 'url'
+ );
+
+ protected static $_urns = array(
+ 'wiki' => 'http://de.wikipedia.org/wiki/'
+ );
+
+ /**
+ * @var int
+ */
+ protected $_series_id;
+
+ /**
+ * @var string
+ */
+ protected $_title;
+
+ /**
+ * @var bool
+ */
+ protected $_ignore = false;
+
+ /**
+ * @var string
+ */
+ protected $_channel;
+
+ /**
+ * @var string
+ */
+ protected $_showtimes;
+
+ /**
+ * @var array
+ */
+ protected $_seen;
+
+ /**
+ * @var int
+ */
+ protected $_last_seen;
+
+ /**
+ * @var array[string]
+ */
+ protected $_seasons;
+
+ /**
+ * @var string
+ */
+ protected $_episode_list;
+
+ /**
+ * @var array
+ */
+ protected $_episodes;
+
+ /**
+ * @var string
+ */
+ protected $_url;
+
+ /* Computed properties */
+
+ /**
+ * Number of seen episodes
+ * @var int
+ */
+ protected $_count;
+
+ /**
+ * The total number of episodes of this series
+ * @var int
+ */
+ protected $_total;
+
+ /**
+ * The percentage of seen episodes
+ * @var double
+ */
+ protected $_percentage;
+
+ /**
+ * Season ranges, consisting of arrays of the number of
+ * the first and last episode of a season.
+ * @var array
+ */
+ protected $_season_ranges;
+
+ public function setSeries_id ($value)
+ {
+ $this->_series_id = (int) $value;
+ return $this;
+ }
+
+ public function setTitle ($value)
+ {
+ $this->_title = trim((string) $value);
+ return $this;
+ }
+
+ public function setIgnore ($value)
+ {
+ $this->_ignore = (bool) $value;
+ return $this;
+ }
+
+ public function setChannel ($value)
+ {
+ $this->_channel = trim((string) $value);
+ return $this;
+ }
+
+ public function setShowtimes ($value)
+ {
+ $this->_showtimes = trim((string) $value);
+ return $this;
+ }
+
+ public function setLast_seen ($value)
+ {
+ $this->_last_seen = ($value === null
+ ? $value
+ : (($time = strtotime($value . ' GMT')) !== false ? $time : null));
+ return $this;
+ }
+
+ public function setSeasons ($value)
+ {
+ $this->_seasons = is_array($value) ? $value : explode(',', $value);
+ return $this;
+ }
+
+ public function setEpisode_list ($value)
+ {
+ $episode_list = (string) $value;
+
+ if ($episode_list !== null)
+ {
+ foreach (self::$_urns as $prefix => $urn)
+ {
+ if (preg_match("/^{$prefix}:/", $episode_list))
+ {
+ $episode_list = preg_replace("/^{$prefix}:/", $urn,
+ str_replace(' ', '_', $episode_list));
+ }
+ }
+ }
+
+ $this->_episode_list = $episode_list;
+
+ return $this;
+ }
+
+ public function setEpisodes ($value)
+ {
+ $this->_episodes = is_array($value) ? $value : null;
+ return $this;
+ }
+
+ public function setUrl ($value)
+ {
+ $this->_url = (string) $value;
+ return $this;
+ }
+
+ public function getCount ()
+ {
+ if ($this->_count === null)
+ {
+ $count = 0;
+ $seen = $this->seen;
+
+ if (is_array($seen))
+ {
+ $count = count($seen);
+
+ foreach ($seen as $episode_or_range)
+ {
+ if (is_array($episode_or_range))
+ {
+ $count += $episode_or_range[1] - $episode_or_range[0];
+ }
+ }
+ }
+
+ $this->_count = $count;
+ }
+
+ return $this->_count;
+ }
+
+ /**
+ * Returns the number of episodes of this series,
+ * based on the season or episodes data, preferring the former.
+ *
+ * @return int
+ */
+ public function getTotal ()
+ {
+ if ($this->_total === null)
+ {
+ if (is_array($this->seasons))
+ {
+ $total = array_sum($this->seasons);
+ $episode_count = 1;
+ $this->_season_ranges = array();
+
+ foreach ($this->seasons as $season_key => $season_length)
+ {
+ if (is_int($season_key))
+ {
+ $this->_season_ranges[$season_key + 1] =
+ array($episode_count, $episode_count + $season_length - 1);
+ }
+
+ $episode_count += $season_length;
+ }
+ }
+ else
+ {
+ $total = max(array_keys($this->episodes));
+ }
+
+ $this->_total = $total;
+ }
+
+ return $this->_total;
+ }
+
+ /**
+ * Returns the percentage of seen episodes
+ * @return double
+ */
+ public function getPercentage ()
+ {
+ if ($this->_percentage === null)
+ {
+ $this->_percentage = $this->count / $this->total * 100;
+ }
+
+ return $this->_percentage;
+ }
+}
Index: live/media/video/series/application/models/databases/seriometer/SeriOMeterDb.php
===================================================================
--- live/media/video/series/application/models/databases/seriometer/SeriOMeterDb.php (revision 0)
+++ live/media/video/series/application/models/databases/seriometer/SeriOMeterDb.php (revision 198)
@@ -0,0 +1,6 @@
+<?php
+
+class SeriOMeterDb extends \PointedEars\PHPX\Db\MySQLDB
+{
+ protected $_dbname = 'seriometer';
+}
\ No newline at end of file
Index: live/media/video/series/application/models/databases/seriometer/tables/SeriesTable.php
===================================================================
--- live/media/video/series/application/models/databases/seriometer/tables/SeriesTable.php (revision 0)
+++ live/media/video/series/application/models/databases/seriometer/tables/SeriesTable.php (revision 198)
@@ -0,0 +1,113 @@
+<?php
+
+class SeriesTable extends \PointedEars\PHPX\Db\MySQLTable
+{
+ /**
+ * (non-PHPdoc)
+ * @see \PointedEars\PHPX\Db\Table::$_name
+ */
+ protected static $_name = 'series';
+
+ /**
+ * (non-PHPdoc)
+ * @see \PointedEars\PHPX\Db\Table::$_columns
+ */
+ protected static $_columns = array(
+ /* UNSIGNED INT NOT NULL AUTO_INCREMENT */
+ 'series_id' => array(
+ 'type' => 'INT',
+ 'unsigned' => true,
+ 'not_null' => true,
+ 'auto_inc' => true
+ ),
+
+ /* VARCHAR(45) NOT NULL */
+ 'title' => array(
+ 'type' => 'VARCHAR(45)',
+ 'not_null' => true
+ ),
+
+ /* BIT NOT NULL DEFAULT 0 */
+ 'ignore' => array(
+ 'type' => 'BIT',
+ 'not_null' => true,
+ 'default' => 0
+ ),
+
+ /* INT UNSIGNED NOT NULL */
+ 'channel_id' => array(
+ 'type' => 'INT',
+ 'unsigned' => true,
+ 'not_null' => true
+ ),
+
+ /* DATETIME NULL */
+ 'last_seen' => array(
+ 'type' => 'DATETIME',
+ ),
+
+ /* VARCHAR(45) NULL */
+ 'seasons' => array(
+ 'type' => 'VARCHAR(45)',
+ ),
+
+ /* VARCHAR(45) NULL */
+ 'url' => array(
+ 'type' => 'VARCHAR(45)',
+ )
+ );
+
+ /**
+ * (non-PHPdoc)
+ * @see \PointedEars\PHPX\Db\Table::$_indexes
+ */
+ protected static $_indexes = array(
+ /* UNIQUE INDEX `title_UNIQUE` (`title` ASC) */
+ 'title_UNIQUE' => array(
+ 'unique' => true,
+ 'columns' => array('title' => 'ASC')
+ ),
+
+ /* PRIMARY KEY (`series_id`) */
+ 'PRIMARY' => array(
+ 'columns' => array('series_id')
+ ),
+
+ /* INDEX `fk_series_channel` (`channel_id` ASC) */
+ 'fk_series_channel' => array(
+ 'columns' => array('channel_id' => 'ASC')
+ )
+ );
+
+ /*
+ * CONSTRAINT `fk_series_channel`
+ * FOREIGN KEY (`channel_id` )
+ * REFERENCES `series`.`channel` (`channel_id` )
+ * ON DELETE NO ACTION
+ * ON UPDATE NO ACTION
+ */
+ /**
+ * (non-PHPdoc)
+ * @see \PointedEars\PHPX\Db\Table::$_constraints
+ */
+ protected static $_constraints = array(
+ 'foreign_keys' => array(
+ 'fk_series_channel' => array(
+ 'columns' => array('channel_id'),
+ 'references_table' => array('series', 'channel'),
+ 'references_columns' => array('channel_id'),
+ 'rules' => array(
+ 'ON DELETE' => 'NO ACTION',
+ 'ON UPDATE' => 'NO ACTION'
+ )
+ )
+ )
+ );
+
+ /* ENGINE = InnoDB */
+ /**
+ * (non-PHPdoc)
+ * @see \PointedEars\PHPX\Db\MySQLTable::$_engine
+ */
+ protected static $_engine = 'InnoDB';
+}
\ No newline at end of file
Index: live/media/video/series/application/models/mappers/SeriesMapper.php
===================================================================
--- live/media/video/series/application/models/mappers/SeriesMapper.php (revision 0)
+++ live/media/video/series/application/models/mappers/SeriesMapper.php (revision 198)
@@ -0,0 +1,58 @@
+<?php
+
+require_once 'application/models/Series.php';
+
+class SeriesMapper extends \PointedEars\PHPX\Db\Mapper
+{
+ private static $_instance;
+
+ protected function __construct ()
+ {
+ /* singleton */
+ }
+
+ /**
+ * @return SeriesMapper
+ */
+ public static function getInstance ()
+ {
+ if (self::$_instance === null)
+ {
+ self::$_instance = new self();
+ }
+
+ return self::$_instance;
+ }
+
+ /**
+ * @param array $series
+ */
+ public function importAll ($series)
+ {
+ foreach ($series as $key => &$data)
+ {
+ $data['title'] = $key;
+ $serie = new Series($data);
+// var_dump($data);
+ var_dump($serie);
+// $serie->save();
+ }
+ }
+
+ /**
+ * @param array $series
+ */
+ public function getList ($series)
+ {
+ $series2 = array();
+
+ foreach ($series as $key => &$data)
+ {
+ $data['title'] = $key;
+ $serie = new Series($data);
+ $series2[] = $serie;
+ }
+
+ return $series2;
+ }
+}
\ No newline at end of file
Index: live/media/video/series/includes/star-trek-tos.php
===================================================================
--- live/media/video/series/includes/star-trek-tos.php (revision 0)
+++ live/media/video/series/includes/star-trek-tos.php (revision 198)
@@ -0,0 +1,95 @@
+<?php
+
+$tos = array(
+// 'ignore' => true,
+ 'channel' => 'DVD',
+// 'showtimes' => 'Mo-Fr 21:50',
+ 'seen' => array(array(1, 8), 12, 13, 22),
+// 'last_seen' => mktime(15, 25, 0, 11, 1, 2011),
+ 'seasons' => array(30, 26, 24),
+ 'episode_list' => 'http://en.memory-alpha.org/wiki/Star_Trek:_The_Original_Series#Episode_List',
+ 'episodes' => array(
+ 1 => 'The Cage',
+ 2 => 'Das Letzte seiner Art (The Man Trap)',
+ 3 => 'Der Fall Charlie (Charlie X)',
+ 4 => 'Die Spitze des Eisbergs (Where No Man Has Gone Before)',
+ 5 => 'Implosion in der Spirale (The Naked Time)',
+ 6 => 'Kirk : 2 = ? (The Enemy Within)',
+ 7 => "Die Frauen des Mr. Mudd (Mudd's Women)",
+ 8 => "Der alte Traum (What Are Little Girls Made Of?)",
+ 9 => "Miri, ein Kleinling (Miri)",
+ 10 => "Der Zentralnervensystemmanipulator (Dagger Of The Mind)",
+ 11 => "Pokerspiele (The Corbomite Maneuver)",
+ 12 => "Talos IV - Tabu - Teil 1 (The Menagerie Part I)",
+ 13 => "Talos IV - Tabu - Teil 2 (The Menagerie Part II)",
+ 14 => "Kodos, der Henker (The Conscience Of The King)",
+ 15 => "Spock unter Verdacht (Balance Of Terror)",
+ 16 => "Land(e)urlaub (Shore Leave)",
+ 17 => "Notlandung auf Galileo 7 (The Galileo Seven)",
+ 18 => "Tödliche Spiele auf Gothos (The Squire Of Gothos)",
+ 19 => "Ganz neue Dimensionen (Arena)",
+ 20 => "Morgen ist gestern (Tomorrow Is Yesterday)",
+ 21 => "Kirk unter Anklage (Court Martial)",
+ 22 => "Landru und die Ewigkeit (The Return Of The Archons)",
+ 23 => "Der schlafende Tiger (Space Seed)",
+ 24 => "Krieg der Computer (A Taste Of Armageddon)",
+ 25 => "Falsche Paradiese (This Side Of Paradise)",
+ 26 => "Horta rettet ihre Kinder (The Devil In The Dark)",
+ 27 => "Kampf um Organia (Errand Of Mercy)",
+ 28 => "Auf Messers Schneide (The Alternative Factor)",
+ 29 => "Griff in die Geschichte (The City On The Edge Of Forever)",
+ 30 => "Spock außer Kontrolle (Operation: Annihilate!)",
+
+ 31 => "Weltraumfieber (Amok Time)",
+ 32 => "Der Tempel des Apoll (Who Mourns For Adonais?)",
+ 33 => "Ich heiße Nomad (The Changeling)",
+ 34 => "Ein Parallel-Universum (Mirror, Mirror)",
+ 35 => "Die Stunde der Erkenntnis (The Apple)",
+ 36 => "Planeten-Killer (The Doomsday Machine)",
+ 37 => "Das Spukschloss im Weltall (Catspaw)",
+ 38 => "Der dressierte Herrscher (I, Mudd)",
+ 39 => "Metamorphose (Metamorphosis)",
+ 40 => "Reise nach Babel (Journey To Babel)",
+ 41 => "Im Namen des jungen Tiru (Friday's Child)",
+ 42 => "Wie schnell die Zeit vergeht (The Deadly Years)",
+ 43 => "Tödliche Wolken (Obsession)",
+ 44 => "Der Wolf im Schafspelz (Wolf In The Fold)",
+ 45 => "Kennen Sie Tribbles? (The Trouble With Tribbles)",
+ 46 => "Meister der Sklaven (The Gamesters Of Triskelion)",
+ 47 => "Epigonen (A Piece Of The Action)",
+ 48 => "Das Loch im Weltraum (The Immunity Syndrome)",
+ 49 => "Der erste Krieg (A Private Little War)",
+ 50 => "Geist sucht Körper (Return To Tomorrow)",
+ 51 => "Schablonen der Gewalt (Patterns Of Force)",
+ 52 => "Stein und Staub (By Any Other Name)",
+ 53 => "Das Jahr des roten Vogels (The Omega Glory)",
+ 54 => "Computer M5 (The Ultimate Computer)",
+ 55 => "Brot und Spiele (Bread and Circuses)",
+ 56 => "Ein Planet, genannt Erde (Assignment: Earth)",
+
+ 57 => "Spocks Gehirn (Spock's Brain)",
+ 58 => "Die unsichtbare Falle (The Enterprise Incident)",
+ 59 => "Der Obelisk (The Paradise Syndrome)",
+ 60 => "Kurs auf Markus 12 (And The Children Shall Lead)",
+ 61 => "Die fremde Materie (Is There In Truth No Beauty?)",
+ 62 => "Wildwest im Weltraum (Spectre Of The Gun)",
+ 63 => "Das Gleichgewicht der Kräfte (Day of the Dove)",
+ 64 => "Der verirrte Planet (For The World Is Hollow, And I Have Touched The Sky)",
+ 65 => "Das Spinnennetz (The Tholian Web)",
+ 66 => "Platons Stiefkinder (Plato's Stepchildren)",
+ 67 => "Was summt denn da? (Wink of an Eye)",
+ 68 => "Der Plan der Vianer (The Empath)",
+ 69 => "Brautschiff Enterprise (Elaan Of Troyius)",
+ 70 => "Wen die Götter zerstören (Whom Gods Destroy)",
+ 71 => "Bele jagt Lokai (Let That Be Your Last Battlefield)",
+ 72 => "Fast unsterblich (The Mark Of Gideon)",
+ 73 => "Gefährliche Planetengirls (That Which Survives)",
+ 74 => "Strahlen greifen an (The Lights Of Zetar)",
+ 75 => "Planet der Unsterblichen (Requiem For Methuselah)",
+ 76 => "Die Reise nach Eden (The Way To Eden)",
+ 77 => "Die Wolkenstadt (The Cloudminders)",
+ 78 => "Seit es Menschen gibt (The Savage Curtain)",
+ 79 => "Portal in die Vergangenheit (All Our Yesterdays)",
+ 80 => "Gefährlicher Tausch (Turnabout Intruder)"
+ )
+);
Index: live/media/video/series/includes/futurama.php
===================================================================
--- live/media/video/series/includes/futurama.php (revision 0)
+++ live/media/video/series/includes/futurama.php (revision 198)
@@ -0,0 +1,117 @@
+<?php
+
+$futurama = array(
+ 'channel' => 'VIVA.de',
+ 'showtimes' => 'Mo-Fr 21:45',
+ 'seen' => array(array(1, 22), 65),
+ 'seasons' => array(13, 19, 22, 18, 16, 26, 26),
+ 'episode_list' => 'wiki:Liste_der_Futurama-Episoden',
+ 'episodes' => array(
+ 1 => 'Zeit und Raum 3000 (Space Pilot 3000)',
+ 2 => 'Sein erster Flug zum Mond (Episode Two: The Series Has Landed)',
+ 3 => 'Wohnungssuche in Neu-New York (I, Roommate)',
+ 4 => "Begegnung mit Zapp Brannigan (Love's Labours Lost in Space)",
+ 5 => 'Planet der Roboter (Fear of a Bot Planet)',
+ 6 => 'Das Geheimnis der Anchovis (A Fishful of Dollars)',
+ 7 => 'Die Galaxis des Terrors (My Three Suns)',
+ 8 => 'Müll macht erfinderisch (A Big Piece of Garbage)',
+ 9 => 'Ein echtes Höllenspektakel (Hell Is Other Robots)',
+ 10 => 'Panik auf Raumschiff Titanic (A Flight to Remember)',
+ 11 => 'Das Experiment der Mars-Universität (Mars University)',
+ 12 => 'Wenn Außerirdische angreifen (When Aliens Attack)',
+ 13 => 'Die Party mit Slurm McKenzie (Fry and the Slurm Factory)',
+
+ 14 => 'Gefühls-Chip gefällig? I Second That Emotion',
+ 15 => 'Brannigan, fang wieder an (Brannigan Begin Again)',
+ 16 => 'Getrennt von Kopf und Körper (A Head in the Polls)',
+ 17 => 'Xmas Story',
+ 18 => 'Das merkwürdige Verhalten geschlechtsreifer Krustentiere zur Paarungszeit'
+ .' (Why Must I Be a Crustacean in Love?)',
+ 19 => 'Die Wahl zur Miss Universum (The Lesser of Two Evils)',
+ 20 => 'Valentinstag 3000 (Put Your Head on My Shoulders)',
+ 21 => 'Wie ein wilder Bender (Raging Bender)',
+ 22 => 'Hochzeitstag auf Cyclopia (A Bicyclops Built for Two)',
+ 23 => 'Wie der Vater so der Klon (A Clone of My Own)',
+ 24 => 'Die Rhythmus-Rückerstattung (How Hermes Requisitioned His Groove Back)',
+ 25 => 'Tief im Süden (The Deep South)',
+ 26 => 'Allein gegen die Roboter-Mafia (Bender Gets Made)',
+ 27 => 'Muttertag (Mother’s Day)',
+ 28 => 'Kennen Sie Popplers? (The Problem with Popplers)',
+ 29 => 'Geschichten von Interesse I (Anthology of Interest I)',
+ 30 => 'Krieg auf Spheron Eins (War Is the H-Word)',
+ 31 => 'Dieses unheimliche Hupen (The Honking)',
+ 32 => 'Die Frau, die aus der Kälte kam (The Cryonic Woman)',
+
+ 33 => "Amazonen machen Snu Snu (Amazon Women in the Mood)",
+ 34 => "Im Reich der Parasiten (Parasites Lost)",
+ 35 => "Alle Jahre wieder (A Tale of Two Santas)",
+ 36 => "Das Glück des Philip J. Fry (The Luck of the Fryrish)",
+ 37 => "Bender unter Pinguinen (The Birdbot of Ice-Catraz)",
+ 38 => "Bender – bis über beide Ohren (Bendless Love)",
+ 39 => "Der Tag, an dem die Erde verdummte (The Day the Earth Stood Stupid)",
+ 40 => "Zoidberg geht nach Hollywood (That’s Lobstertainment!)",
+ 41 => "In den Augen einer Waise (The Cyber House Rules)",
+ 42 => "Vierzig Käfer westwärts (Where the Buggalo Roam)",
+ 43 => "Roboter Roberto – Bankräuber (Insane in the Mainframe)",
+ 44 => "Die Wurzel allen Übels (The Route of All Evil)",
+ 45 => "Bender auf Tour (Bendin’ in the Wind)",
+ 46 => "Wie die Zeit vergeht (Time Keeps on Slippin’)",
+ 47 => "Date mit einem Roboter (I Dated a Robot)",
+ 48 => "Eine Klasse für sich (A Leela of Her Own)",
+ 49 => "Der unvergessene Pharao (A Pharaoh to Remember)",
+ 50 => "Geschichten von Interesse II (Anthology of Interest II)",
+ 51 => "Roswell gut – alles gut (Roswell That Ends Well)",
+ 52 => "Der göttliche Bender (Godfellas)",
+ 53 => "Wer wird Millionär? (Future Stock)",
+ 54 => "Das Kochduell (The 30% Iron Chef)",
+
+ 56 => "Die Waise des Jahres (Leela’s Homeworld)",
+ 57 => "Liebe und Raketen (Love and Rocket)",
+ 58 => "Superhelden (Less Than Hero)",
+ 59 => "Der Geschmack der Freiheit (A Taste of Freedom)",
+ 60 => "Wer ist hier cool? (Bender Should Not Be Allowed on TV)",
+ 61 => "Gebell aus der Steinzeit (Jurassic Bark)",
+ 62 => "Die stinkende Medaille der Umweltverschmutzung (Crimes of the Hot)",
+ 63 => "Die Quelle des Alterns (Teenage Mutant Leela’s Hurdles)",
+ 64 => "Philip J. Fry: V.I.P. (The Why of Fry)",
+ 65 => "Der letzte Trekki (Where No Fan Has Gone Before)",
+ 66 => "Der Stich (The Sting)",
+ 67 => "Coilette & Calculon – Eine Liebesgeschichte (Bend Her)",
+ 68 => "Absolut fabelhaft (Obsoletely Fabulous)",
+ 69 => "Die Farnsworth Parabox (The Farnsworth Parabox)",
+ 70 => "Dreihundert dicke Dinger (Three Hundred Big Boys)",
+ 71 => "Lustkrise auf Omicron Persei Acht (Spanish Fry)",
+ 72 => "Die Hände des Teufels (The Devil’s Hands are Idle Playthings)",
+
+ 73 => "Bender’s Big Score, Teil 1 (Bender’s Big Score, Part 1)",
+ 74 => "Bender’s Big Score, Teil 2 (Bender’s Big Score, Part 2)",
+ 75 => "Bender’s Big Score, Teil 3 (Bender’s Big Score, Part 3)",
+ 76 => "Bender’s Big Score, Teil 3 (Bender’s Big Score, Part 4)",
+ 77 => "Die Ära des Tentakels, Teil 1 (The Beast with a Billion Backs, Part 1)",
+ 78 => "Die Ära des Tentakels, Teil 2 (The Beast with a Billion Backs, Part 2)",
+ 79 => "Die Ära des Tentakels, Teil 3 (The Beast with a Billion Backs, Part 3)",
+ 80 => "Die Ära des Tentakels, Teil 4 (The Beast with a Billion Backs, Part 4)",
+ 81 => "Bender’s Game, Teil 1 (Bender’s Game, Part 1)",
+ 82 => "Bender’s Game, Teil 2 (Bender’s Game, Part 2)",
+ 83 => "Bender’s Game, Teil 3 (Bender’s Game, Part 3)",
+ 84 => "Bender’s Game, Teil 4 (Bender’s Game, Part 4)",
+ 85 => "Leela und die Enzyklopoden, Teil 1 (Into the Wild Green Yonder, Part 1)",
+ 86 => "Leela und die Enzyklopoden, Teil 2 (Into the Wild Green Yonder, Part 2)",
+ 87 => "Leela und die Enzyklopoden, Teil 3 (Into the Wild Green Yonder, Part 3)",
+ 88 => "Leela und die Enzyklopoden, Teil 4 (Into the Wild Green Yonder, Part 4)",
+
+ 89 => "Wiedergeburt (Rebirth)",
+ 90 => "Der Leela-Laune-Zapp (In-A-Gadda-Da-Leela)",
+ 91 => "Angriff der Killer App (Attack of the Killer App)",
+ 92 => "Roboter Street Day (Proposition Infinity)",
+ 93 => "Der Da-Blödi-Code (The Duh-Vinci Code)",
+ 94 => "Tödliche Inspektion (Lethal Inspection)",
+ 95 => "Die unglaubliche Reise in einer verrückten Zeitmaschine (The Late Philip J. Fry)",
+ 96 => "Katzenjammer (That Darn Katz)",
+ 97 => "Uhrwerk Original (A Clockwork Origin)",
+ 98 => "Im Körper des Freundes (The Prisoner of Benda)",
+ 99 => "Velrrrückt nach Ndndir (Lrrreconcilable Ndndifferences)",
+ 100 => "Rebellion der Mutanten (The Mutants Are Revolting)",
+ 101 => "Das Feiertagsspektakel (The Futurama Holiday Spectacular)",
+ )
+);
\ No newline at end of file
Index: live/media/video/series/includes/andromeda.php
===================================================================
--- live/media/video/series/includes/andromeda.php (revision 0)
+++ live/media/video/series/includes/andromeda.php (revision 198)
@@ -0,0 +1,162 @@
+<?php
+
+$serien['<span class="andromeda"><span class="roddenberry">Gene Roddenberry\'s</span>'
+. ' <span class="gradient">Andromeda</span></span>'] = array(
+// 'ignore' => true,
+ 'channel' => 'online',
+// 'showtimes' => 'Mo–Fr 16:10',
+ 'seen' => array(array(1, 14)),
+// 'last_seen' => mktime(16, 5, 0, 5, 16, 2011),
+ 'seasons' => array(22, 22, 22, 22, 22),
+ 'episode_list' => 'wiki:en:List_of_Andromeda_episodes',
+ 'episodes' => array(
+ 1 => 'Under the Night',
+ 2 => 'An Affirming Flame',
+ 3 => 'To Loose the Fateful Lightning',
+ 4 => 'D Minus Zero',
+ 5 => 'Double Helix',
+ 6 => 'Angel Dark, Demon Bright',
+ 7 => 'The Ties That Blind',
+ 8 => 'The Banks of the Lethe',
+ 9 => 'A Rose in the Ashes',
+ 10 => "All Great Neptune's Ocean",
+ 11 => "The Pearls That Were His Eyes",
+ 12 => "The Mathematics of Tears",
+ 13 => "Music of a Distant Drum",
+ 14 => "Harper 2.0",
+ 15 => "Forced Perspective",
+ 16 => "The Sum of Its Parts",
+ 17 => "Fear and Loathing in the Milky Way",
+ 18 => "The Devil Take the Hindmost",
+ 19 => "The Honey Offering",
+ 20 => "Star-Crossed",
+ 21 => "It Makes a Lovely Light",
+ 22 => "Its Hour Come 'Round at Last",
+ )
+);
+
+// $serien['<span class="andromeda"><span class="roddenberry">Gene Roddenberry\'s</span>'
+// . ' <span class="gradient">Andromeda</span></span> (de)'] = array(
+// // 'ignore' => true,
+// 'channel' => 'Tele 5/online',
+// 'showtimes' => 'Mo–Fr 16:10',
+// 'seen' => array(array(1, 9)),
+// 'last_seen' => mktime(16, 5, 0, 5, 16, 2011),
+// 'seasons' => array(22, 22, 22, 22, 22),
+// 'episode_list' => 'wiki:en:List_of_Andromeda_episodes',
+// 'episodes' => array(
+// 1 => 'Die lange Nacht (Under the Night)',
+// 2 => 'Fiat Lux (An Affirming Flame)',
+// 3 => 'Die Erleuchtung (To Loose the Fateful Lightning)',
+// 4 => 'D Minus Zero',
+// 5 => 'Doppelhelix (Double Helix)',
+// 6 => 'Die grosse Schlacht (Angel Dark, Demon Bright)',
+// 7 => 'Philosophie des Todes (The Ties That Blind)',
+// 8 => 'Reise in die Vergangenheit (The Banks of the Lethe)',
+// 9 => 'Planet der Verdammten (A Rose in the Ashes)',
+// 10 => "Tödliches Gipfeltreffen (All Great Neptune's Ocean) (11.11.2011 16:10, 17.05.2011 16:05)",
+// 11 => "Durchs Auge mitten ins Herz (The Pearls That Were His Eyes)",
+// 12 => "Pax Magellanic (The Mathematics of Tears)",
+// 13 => "Der heilige Gral (Music of a Distant Drum)",
+// 14 => "Genie an Bord (Harper 2.0)",
+// 15 => "Erzwungene Einsichten (Forced Perspective)",
+// 16 => "Die Summe aller Teile (The Sum of Its Parts)",
+// 17 => "Die Schlange im Paradies (Fear and Loathing in the Milky Way)",
+// 18 => "Das Tagebuch des Hasturi (The Devil Take the Hindmost)",
+// 19 => "Eine Frage der Ehre (The Honey Offering)",
+// 20 => "Erzengel Gabriel (Star-Crossed)",
+// 21 => "Die Odyssee (It Makes a Lovely Light)",
+// 22 => "Feinde an Bord (Its Hour Come 'Round at Last)",
+// 23 => "Der Geist des Abyss (The Widening Gyre)",
+// 24 => "Auf verlorenem Posten (Exit Strategies)",
+// 25 => "Das falsche Herz (A Heart for Falsehood Framed)",
+// 26 => "Der Informant (Pitiless as the Sun)",
+// // 27 => "Zapfenstreich (Last Call at the Broken Hammer)",
+// // 28 => "Planet Möbius (All Too Human)",
+// 29 => "Angriff der Nietzscheaner (Una Salus Victus)",
+// 30 => "Heimatgefühle (Home Fires)",
+// 31 => "Das Labyrinth (Into the Labyrinth)",
+// 32 => "Königliche Hoheit (The Prince)",
+// 33 => "Aufstand der Sklaven (Bunker Hill)",
+// 34 => "Grenzgänger (Ouroboros)",
+// 35 => "Lava und Raketen (Lava and Rockets)",
+// 36 => "Alte Sünden (Be All My Sins Remembered)",
+// // 37 => "Eintagsfliegen (Dance of the Mayflies)",
+// 38 => "Im Himmel (In Heaven Now Are Three)",
+// // 39 => "Flucht aus dem Paradies (The Things We Cannot Change)",
+// 40 => "Heimweh (The Fair Unknown)",
+// 41 => "Im Bauch der Bestie (Belly of the Beast)",
+// 42 => "Ritter, Tod und Teufel (The Knight, Death, and the Devil)",
+// 43 => "Der Messias (Immaculate Perception)",
+// 44 => "Der Tunnel am Ende des Lichts (Tunnel at the End of the Light)",
+
+// 45 => "Tunnel des Bösen (If the Wheel is Fixed)",
+// 46 => "Scherben bringen Glück (The Shards of Rimni)",
+// 47 => "Die Undankbaren (Mad to be Saved)",
+// 48 => "Der ungebetene Gast (Cui Bono)",
+// 49 => "An fernen Ufern (The Lone and Level Sands)",
+// 50 => "Windhunde des Krieges (Slipfighter the Dogs of War)",
+// 51 => "Der Aussätzige (The Leper's Kiss)",
+// 52 => "Blinde Passagiere (For Whom the Bell Tolls)",
+// // 53 => "Die Macht der Liebe (And Your Heart will Fly Away)",
+// 54 => "Der Unbezwingbare (The Unconquerable Man)",
+// 55 => "Die andere Seite des Tunnels (Delenda Est)",
+// // 56 => "Rückwärts in die Dunkelheit (The Dark Backward)",
+// 57 => "Volles Risiko (The Risk-All Point)",
+// 58 => "Die Wahrheitsliebenden (The Right Horse)",
+// // 59 => "Die Metamorphose (What Happens to A Rev Deferred?)",
+// 60 => "Die Spitze des Speers (Point of the Spear)",
+// 61 => "Das Dach des Himmels (Vault of the Heavens)",
+// // 62 => "Die Stimme der tiefen Nacht (Deep Midnight's Voice)",
+// 63 => "Die Hochstaplerin (The Illusion of Majesty)",
+// 64 => "Der Patriarch (Twilight of the Idols)",
+// 65 => "Der Verräter (Day of Judgement, Day of Wrath)",
+// 66 => "Dragonischer Wein (Shadows Cast by a Final Salute)",
+
+// 67 => "Abgrund zur Hölle (Answers Given to Questions Never Asked)",
+// 68 => "Der Seher (Pieces of Eight)",
+// 69 => "Friedhof der Schiffe (Waking the Tyrant's Device)",
+// 70 => "Ausgespielt (Double or Nothingness)",
+// 71 => "Göttlicher Herzschlag (Harper/Delete)",
+// 72 => "Die Route der Zeitalter (Soon the Nearing Vortex)",
+// 73 => "Bekas Rettung (The World Turns All Around Her)",
+// 74 => "Die Befreiung (Conduit to Destiny)",
+// 75 => "Genie und Wahnsinn (Machinery of the Mind)",
+// 76 => "Die Kronprinzessin (Exalted Reason, Resplendent Daughter)",
+// // 77 => "Der Prozess (The Torment, the Release)",
+// // 78 => "Die Spinnenfrau (The Spider's Stratagem)",
+// 79 => "Das unsichtbare Licht (The Warmth of an Invisible Light)",
+// 80 => "Die Anderen (The Others)",
+// // 81 => "Die letzte Fahrt ins Nichts (Fear Burns Down to Ashes)",
+// 82 => "Die Spionin des Abyss (Lost in a Space that isn't There)",
+// 83 => "Die Brücke zwischen den Zeiten (Abridging the Devil's Divide)",
+// 84 => "Der Gordische Irrgarten (Trusting the Gordian Maze)",
+// 85 => "Die perfekte Maschine (A Symmetry of Imperfection)",
+// 86 => "Die Stimme des Engels (Time Out of Mind)",
+// 87 => "Leichtes Spiel (The Dissonant Interval (Part 1))",
+// // 88 => "Die Hoffnung stirbt zuletzt (The Dissonant Interval (Part 2))",
+
+// // 89 => "Der Eindringling - Teil 1 (The Weight (Part 1))",
+// // 90 => "Der Eindringling - Teil 2 (The Weight (Part 2))",
+// // 91 => "Kabinett des Schreckens (Phear Phactor Phenom)",
+// // 92 => "Die Freundin (Decay of the Angel)",
+// // 93 => "Das Geheimnis der zwei Sonnen (The Eschatology of Our Present)",
+// // 94 => "Die Zeitschleife (When Goes Around…)",
+// // 95 => "Rätselhafte Worte (Attempting Screed)",
+// // 96 => "Tödliche Kristalle (So Burn the Untamed Lands)",
+// // 97 => "Der Tunnelwächter (What Will be Was Not)",
+// // 98 => "Die Prüfung (The Test)",
+// // 99 => "Das größte Opfer (Through a Glass Darkly)",
+// // 100 => "Hochmut kommt vor dem Fall (Pride Before the Fall)",
+// // 101 => "Der verschwundene Mond (Moonlight Becomes You)",
+// // 102 => "Der Zwilling (Past is Prolix)",
+// // 103 => "Die vergessene Frau (The Opposites of Attraction)",
+// // 104 => "Das Fest der Verfinsterung (Saving Light from a Black Sun)",
+// // 105 => "Die verschlüsselte Botschaft (Totaled Recall)",
+// // 106 => "Rückkehr zum Ursprung (Quantum Tractate Delirium)",
+// // 107 => "Die Sekte des Generals (One More Day's Light)",
+// // 108 => "Ein alter Bekannter (Chaos and the Stillness of It)",
+// // 109 => "Das Herz der Reise, Teil 1 (The Heart of the Journey (Part 1))",
+// // 110 => "Das Herz der Reise, Teil 2 (The Heart of the Journey (Part 2))",
+// ),
+// );
Index: live/media/video/series/includes/star-trek-tng.php
===================================================================
--- live/media/video/series/includes/star-trek-tng.php (revision 0)
+++ live/media/video/series/includes/star-trek-tng.php (revision 198)
@@ -0,0 +1,37 @@
+<?php
+
+$tng = array(
+ 'ignore' => true,
+ 'channel' => 'Blu-Ray',
+ 'seen' => array(array(1, 6), 9, 11),
+ 'seasons' => array(26, 22, 26, 26, 26, 26, 26),
+ 'episode_list' => 'http://en.memory-alpha.org/wiki/Star_Trek:_The_Next_Generation#Episode_list',
+ 'episodes' => array(
+ 1 => 'Encounter at Farpoint, Part 1',
+ 2 => 'Encounter at Farpoint, Part 2',
+ 3 => "The Naked Now",
+ 4 => "Code of Honor",
+ 5 => "The Last Outpost",
+ 6 => "Where No One Has Gone Before",
+ 7 => "Lonely Among Us",
+ 8 => "Justice",
+ 9 => "The Battle",
+ 10 => "Hide and Q",
+ 11 => "Haven",
+ 12 => "The Big Goodbye",
+ 13 => "Datalore",
+ 14 => "Angel One",
+ 15 => "11001001",
+ 16 => "Too Short a Season",
+ 17 => "When The Bough Breaks",
+ 18 => "Home Soil",
+ 19 => "Coming of Age",
+ 20 => "Heart of Glory",
+ 21 => "The Arsenal of Freedom",
+ 22 => "Symbiosis",
+ 23 => "Skin of Evil",
+ 24 => "We'll Always Have Paris",
+ 25 => "Conspiracy",
+ 26 => "The Neutral Zone",
+ )
+);
Index: live/media/video/series/includes/monk.php
===================================================================
--- live/media/video/series/includes/monk.php (revision 0)
+++ live/media/video/series/includes/monk.php (revision 198)
@@ -0,0 +1,220 @@
+<?php
+
+$monk = array(
+// 'ignore' => true,
+ 'channel' => 'online',
+// 'showtimes' => 'diverse',
+ 'seen' => array(array(1, 16)),
+// 'last_seen' => mktime(21, 15, 0, 6, 5, 2011),
+ 'seasons' => array(13, 16, 16, 16, 16, 16, 16, 16),
+ 'episode_list' => 'wiki:Liste_der_Monk-Episoden',
+ 'episodes' => array(
+ 1 => 'Mr. Monk and the Candidate (1)',
+ 2 => 'Mr. Monk and the Candidate (2)',
+ 3 => 'Mr. Monk and the Psychic',
+ 4 => 'Mr. Monk Meets Dale the Whale',
+ 5 => 'Mr. Monk Goes to the Carnival',
+ 6 => 'Mr. Monk Goes to the Asylum',
+ 7 => 'Mr. Monk and the Billionaire Mugger',
+ 8 => 'Mr. Monk and the Other Woman',
+ 9 => 'Mr. Monk and the Marathon Man',
+ 10 => 'Mr. Monk Takes a Vacation',
+ 11 => 'Mr. Monk and the Earthquake',
+ 12 => 'Mr. Monk and the Red-Headed Stranger',
+ 13 => 'Mr. Monk and the Airplane',
+
+ 14 => "Mr. Monk Goes Back to School",
+ 15 => "Mr. Monk Goes to Mexico",
+ 16 => "Mr. Monk Goes to the Ballgame",
+ 17 => "Mr. Monk Goes to the Circus",
+ 18 => "Mr. Monk and the Very, Very Old Man",
+ 19 => "Mr. Monk Goes to the Theater",
+ 20 => "Mr. Monk and the Sleeping",
+ 21 => "Mr. Monk Meets the Playboy",
+ 22 => "Mr. Monk and the 12th Man",
+ 23 => "Mr. Monk and the Paperboy",
+ 24 => "Mr. Monk and the Three Pies",
+ 25 => "Mr. Monk and the T.V. Star",
+ 26 => "Mr. Monk and the Missing Granny",
+ 27 => "Mr. Monk and the Captain's Wife",
+ 28 => "Mr. Monk Gets Married",
+ 29 => "Mr. Monk Goes to Jail",
+
+ 94 => "Mr. Monk Buys a House (2011-09-19 17:05, ITV3)",
+ 95 => "Mr. Monk and The Genius (2011-09-20 17:10, ITV3)",
+ 96 => "Mr. Monk Gets Lotto Fever",
+ 97 => "Mr. Monk Takes a Punch",
+ 98 => "Mr. Monk Is Underwater",
+ 99 => "Mr. Monk Falls in Love",
+ 100 => "Mr. Monk's 100th Case",
+ 101 => "Mr. Monk Gets Hypnotized (2011-09-28 17:10, ITV3)",
+ 102 => "Mr. Monk and the Miracle",
+ 103 => "Mr. Monk's Other Brother",
+ 104 => "Mr. Monk on Wheels (03.10.2011 17:10)",
+ 105 => "Mr. Monk and the Lady Next Door (04.10.2011 17:10)",
+ 106 => "Mr. Monk Makes the Playoffs (05.10.2011 17:15)",
+ 107 => "Mr. Monk and the Bully (06.10.2011 17:10)",
+ 108 => "Mr. Monk and the Magician (07.10.2011 17:10)",
+ 109 => "Mr. Monk Fights City Hall (10.10.2011 17:10)",
+ 110 => "Mr. Monk's Favorite Show (2011-05-05, ITV3)",
+ 111 => 'Mr. Monk and the Foreign Man (2011-05-12 21:00, ITV3)',
+ 112 => "Mr. Monk and the UFO (2011-05-19 21:00, ITV3)",
+ 113 => "Mr. Monk is Someone Else (2011-05-26 21:00, ITV3)",
+ 114 => "Mr. Monk Takes the Stand (17.10.2011 17:15)",
+ 115 => "Mr. Monk and the Critic (18.10.2011 17:05)",
+ 116 => "Mr. Monk and the Voodoo Curse (19.10.2011 17:15)",
+ 117 => "Mr. Monk Goes to Group Therapy (20.10.2011 17:10)",
+ 118 => "Happy Birthday, Mr. Monk",
+ 119 => "Mr. Monk and Sharona",
+ 120 => "Mr. Monk and the Dog",
+ 121 => "Mr. Monk Goes Camping",
+ 122 => "Mr. Monk Is the Best Man",
+ 123 => "Mr. Monk and the Badge",
+ 124 => "Mr. Monk and the End (1) (2011-08-16 21:00, ITV3)",
+ 125 => "Mr. Monk and the End (2) (2011-08-23 21:00, ITV3)"
+ )
+);
+
+$monk_de = array(
+ 'ignore' => true,
+ 'channel' => 'ORF1/Super RTL/RTL',
+ 'showtimes' => 'diverse',
+ 'seen' => array(array(1, 12)),
+ 'last_seen' => mktime(21, 15, 0, 6, 5, 2011),
+ 'seasons' => array(13, 16, 16, 16, 16, 16, 16, 16),
+ 'episode_list' => 'wiki:Liste_der_Monk-Episoden',
+ 'episodes' => array(
+ 1 => 'Mr. Monk und das Attentat – Teil 1 (Mr. Monk and the Candidate (1))',
+ 2 => 'Mr. Monk und das Attentat – Teil 2 (Mr. Monk and the Candidate (2))',
+ 3 => 'Mr. Monk und die Hellseherin (Mr. Monk and the Psychic)',
+ 4 => 'Mr. Monk gegen die Qualle (Mr. Monk Meets Dale the Whale)',
+ 5 => 'Mr. Monk auf dem Rummelplatz (Mr. Monk Goes to the Carnival)',
+ 6 => 'Mr. Monk in der Anstalt (Mr. Monk Goes to the Asylum)',
+ 7 => 'Mr. Monk und ein Milliardär auf Abwegen (Mr. Monk and the Billionaire Mugger)',
+ 8 => 'Mr. Monk und Monica (Mr. Monk and the Other Woman)',
+ 9 => 'Mr. Monk und der Marathon-Mann (Mr. Monk and the Marathon Man)',
+ 10 => 'Mr. Monk macht Urlaub (Mr. Monk Takes a Vacation)',
+ 11 => 'Mr. Monk und das Erdbeben (Mr. Monk and the Earthquake)',
+ 12 => 'Mr. Monk und Willie Nelson (Mr. Monk and the Red-Headed Stranger)',
+ 13 => 'Mr. Monk im Flugzeug (Mr. Monk and the Airplane)',
+
+ 14 => "Mr. Monk geht wieder zur Schule (Mr. Monk Goes Back to School)",
+// 15  2  Mr. Monk fährt nach Mexiko Mr. Monk Goes to Mexico 27. Juni 2003 30. Mär. 2004
+// 16  3  Mr. Monk und das Baseballfieber Mr. Monk Goes to the Ballgame 11. Juli 2003 6. Apr. 2004
+// 17  4  Mr. Monk geht in den Zirkus Mr. Monk Goes to the Circus 18. Juli 2003 13. Apr. 2004
+// 18  5  Mr. Monk und der älteste Mann der Welt Mr. Monk and the Very, Very Old Man 25. Juli 2003 20. Apr. 2004
+// 19  6  Mr. Monk geht mit Sharona ins Theater Mr. Monk Goes to the Theater 1. Aug. 2003 27. Apr. 2004
+// 20  7  Mr. Monk und der schlafende Verdächtige Mr. Monk and the Sleeping Suspect 8. Aug. 2003 4. Mai 2004
+ 21 => "Mr. Monk, ein Playboy und viele schöne Mädchen (Mr. Monk Meets the Playboy)",
+ 22 => "Mr. Monk und der 12. Geschworene (Mr. Monk and the 12th Man)",
+ 23 => "Mr. Monk und der Zeitungsjunge (Mr. Monk and the Paperboy)",
+ 24 => "Mr. Monk, sein Bruder und drei Kuchen (Mr. Monk and the Three Pies)",
+ 25 => "Mr. Monk und der Fernsehstar (Mr. Monk and the T.V. Star)",
+ 26 => "Mr. Monk und die entführte Großmutter (Mr. Monk and the Missing Granny)",
+ 27 => "Mr. Monk und die Frau des Captains (Mr. Monk and the Captain's Wife)",
+ 28 => "Mr. Monk heiratet Sharona (Mr. Monk Gets Married)",
+ 29 => "Mr. Monk landet im Gefängnis (Mr. Monk Goes to Jail)",
+
+ 30 => "Mr. Monk in Manhattan (Mr. Monk Takes Manhattan)",
+ 31 => "Mr. Monk und der Affe (Mr. Monk and the Panic Room)",
+ 32 => "Mr. Monk und der Stromausfall (Mr. Monk and the Blackout)",
+ 33 => "Mr. Monk wird gefeuert (Mr. Monk Gets Fired)",
+ 34 => "Mr. Monk hilft der Mafia (Mr. Monk Meets the Godfather)",
+ 35 => "Mr. Monk und Sharonas Besuch aus dem Jenseits (Mr. Monk and the Girl Who Cried Wolf)",
+ 36 => "Mr. Monk arbeitet im Supermarkt (Mr. Monk and the Employee of the Month)",
+ 37 => "Mr. Monk spielt mit (Mr. Monk and the Game Show)",
+ 38 => "Mr. Monk kann auch anders (Mr. Monk Takes His Medicine)",
+ 39 => "Mr. Monk und Natalie fischen im Dunkeln (Mr. Monk and the Red Herring)",
+ 40 => "Mr. Monk gegen den toten Mörder (Mr. Monk vs. the Cobra)",
+ 41 => "Mr. Monk muss in den Wald (Mr. Monk Gets Cabin Fever)",
+ 42 => "Mr. Monk steckt im Stau (Mr. Monk Gets Stuck in Traffic)",
+ 43 => "Mr. Monk in Las Vegas (Mr. Monk Goes to Vegas)",
+ 44 => "Mr. Monk als Wahlhelfer (Mr. Monk and the Election)",
+ 45 => "Mr. Monk will Vater werden (Mr. Monk and the Kid)",
+
+// 46  1  Mr. Monk bekommt Konkurrenz Mr. Monk and the Other Detective 8. Juli 2005 15. Nov. 2005
+// 47  2  Mr. Monk und Frankenstein Mr. Monk Goes Home Again 15. Juli 2005 22. Nov. 2005
+// 48  3  Mr. Monk hütet das Bett Mr. Monk Stays in Bed 22. Juli 2005 29. Nov. 2005
+// 49  4  Mr. Monk als Bürohengst Mr. Monk Goes to the Office 29. Juli 2005 6. Dez. 2005
+// 50  5  Mr. Monk ist betrunken Mr. Monk Gets Drunk 5. Aug. 2005 9. Mai 2006
+// 51  6  Mr. Monk und Mrs. Monk Mr. Monk and Mrs. Monk 12. Aug. 2005 16. Mai 2006
+// 52  7  Mr. Monk und die schwarze Witwe Mr. Monk Goes to a Wedding 19. Aug. 2005 23. Mai 2006
+// 53  8  Mr. Monk war auch mal klein Mr. Monk and Little Monk 26. Aug. 2005 30. Mai 2006
+// 54  9  Mr. Monk unterwegs als Weihnachtsmann Mr. Monk and the Secret Santa 2. Dez. 2005 7. Nov. 2006
+// 55  10  Mr. Monk betritt die Modewelt Mr. Monk Goes to a Fashion Show 13. Jan. 2006 12. Sep. 2006
+// 56  11  Mr. Monk erinnert sich an nichts Mr. Monk Bumps His Head 20. Jan. 2006 19. Sep. 2006
+// 57  12  Mr. Monk und das Geheimnis einer Ehe Mr. Monk and the Captain's Marriage 27. Jan. 2006 26. Sep. 2006
+// 58  13  Mr. Monk auf der Jagd nach dem verschwundenen Juwel Mr. Monk and the Big Reward 3. Feb. 2006 10. Okt. 2006
+// 59  14  Mr. Monk und das außerirdische Alibi Mr. Monk and the Astronaut 7. Mär. 2006 17. Okt. 2006
+// 60  15  Mr. Monk und der sadistische Zahnarzt Mr. Monk Goes to the Dentist 10. Mär. 2006 24. Okt. 2006
+// 61  16  Mr. Monk als Geschworener Mr. Monk Gets Jury Duty 17. Mär. 2006 31. Okt. 2006
+
+// 62  1  Mr. Monk mal zwei? Mr. Monk and the Actor 7. Juli 2006 13. Mär. 2007
+// 63  2  Mr. Monk im Müll Mr. Monk and the Garbage Strike 14. Juli 2006 20. Mär. 2007
+ 64 => "Mr. Monk als Trainer (Mr. Monk and the Big Game)",
+ 65 => "Mr. Monk sieht nichts mehr (Mr. Monk Can't See a Thing)",
+ 66 => "Mr. Monk, Privatdetektiv (Mr. Monk, Private Eye)",
+ 67 => "Mr. Monk auf dem Jahrgangstreffen (Mr. Monk and the Class Reunion)",
+ 68 => "Mr. Monk und der neue Psychiater (Mr. Monk Gets a New Shrink)",
+ 69 => "Mr. Monk muss auf ein Rockkonzert (Mr. Monk Goes to a Rock Concert)",
+ 70 => "Mr. Monk trifft seinen Vater (Mr. Monk Meets His Dad)",
+ 71 => "Mr. Monk und der Lepramann (Mr. Monk and the Leper)",
+ 72 => "Mr. Monk findet einen besten Freund (Mr. Monk Makes a Friend)",
+ 73 => "Mr. Monk als Butler? (Mr. Monk Is at Your Service)",
+// 74  13  Mr. Monk ist auf Sendung Mr. Monk Is on the Air 2. Feb. 2007 2. Okt. 2007
+ 75 => "Mr. Monk atmet Landluft (Mr. Monk Visits a Farm)",
+ 76 => "Mr. Monk und der echt total tote Typ (Mr. Monk and the Really, Really Dead Guy)",
+ 77 => "Mr. Monk und das Aus im Krankenhaus? (Mr. Monk Goes to the Hospital)",
+
+ 78 => "Mr. Monk wird versteigert (Mr. Monk and His Biggest Fan)",
+ 79 => "Mr. Monk in der Rapszene (Mr. Monk and the Rapper)",
+ 80 => "Mr. Monk gegen den Nudisten (Mr. Monk and the Naked Man)",
+ 81 => "Mr. Monk glaubt kein Wort (Mr. Monk and the Bad Girlfriend)",
+ 82 => "Mr. Monk und die Bienen und die Blumen (Mr. Monk and the Birds and the Bees)",
+ 83 => "Mr. Monk auf Schatzsuche (Mr. Monk and the Buried Treasure)",
+ 84 => "Mr. Monk und der Draufgänger (Mr. Monk and the Daredevil)",
+ 85 => "Mr. Monk belastet ein Fehlurteil (Mr. Monk and the Wrong Man)",
+ 86 => "Mr. Monk streift durch die Nacht (Mr. Monk Is Up All Night)",
+ 87 => "Mr. Monk schießt auf den Weihnachtsmann (Mr. Monk and the Man Who Shot Santa)",
+ 88 => "Mr. Monk tritt einer Sekte bei (Mr. Monk Joins a Cult)",
+ 89 => "Mr. Monk in Uniform (Mr. Monk Goes to the Bank)",
+ 90 => "Mr. Monk und die dreifache Julie (Mr. Monk and the Three Julies)",
+ 91 => "Mr. Monk malt (Mr. Monk Paints His Masterpiece)",
+ 92 => "Mr. Monk wird gejagt – Teil 1 (Mr. Monk Is On The Run (1))",
+ 93 => "Mr. Monk wird gejagt – Teil 2 (Mr. Monk Is On The Run (2))",
+
+ 94 => "Mr. Monk kauft ein Haus Mr. Monk Buys a House",
+ 95 => "Mr. Monk und der angekündigte Mord (Mr. Monk and The Genius)",
+ 96 => "Mr. Monk und Natalie gehen getrennte Wege? (Mr. Monk Gets Lotto Fever)",
+// 97  4  Mr. Monk steigt in den Ring Mr. Monk Takes a Punch 8. Aug. 2008 24. Mär. 2009
+// 98  5  Mr. Monk geht unter Mr. Monk Is Underwater 15. Aug. 2008 31. Mär. 2009
+// 99  6  Mr. Monk und die Liebe auf den ersten Blick Mr. Monk Falls in Love 22. Aug. 2008 7. Apr. 2009
+// 100  7  Mr. Monks 100ster Fall Mr. Monk's 100th Case 5. Sep. 2008 14. Apr. 2009
+// 101  8  Mr. Monk als Kind im Manne Mr. Monk Gets Hypnotized 12. Sep. 2008 21. Sep. 2009
+// 102  9  Mr. Monk wundert sich über das Weihnachtswunder Mr. Monk and the Miracle 28. Nov. 2008 22. Sep. 2009
+// 103  10  Mr. Monk und der ganz andere Bruder Mr. Monk's Other Brother 9. Jan. 2009 1. Sep. 2009
+// 104  11  Mr. Monk auf Rädern Mr. Monk on Wheels 16. Jan. 2009 8. Sep. 2009
+// 105  12  Mr. Monk wird bemuttert Mr. Monk and the Lady Next Door 23. Jan. 2009 15. Sep. 2009
+// 106  13  Mr. Monk möchte eigentlich nicht ins Stadion Mr. Monk Makes the Playoffs 30. Jan. 2009 9. Mär. 2010
+// 107  14  Mr. Monks Mitgefühl hält sich in Grenzen Mr. Monk and the Bully 6. Feb. 2009 16. Mär. 2010
+// 108  15  Mr. Monk und die Magie des Mordens Mr. Monk and the Magician 13. Feb. 2009 23. Mär. 2010
+// 109  16  Mr. Monk und das Letzte, was Trudy sah Mr. Monk Fights City Hall 20. Feb. 2009 28. Mär. 2010
+
+// 110  1  Mr. Monks Lieblingsserie Mr. Monk's Favorite Show 7. Aug. 2009 6. Apr. 2010
+// 111  2  Mr. Monk und der Fremde Mr. Monk and The Foreign Man 14. Aug. 2009 11. Apr. 2010
+// 112  3  Mr. Monk kann kein Mensch sein Mr. Monk and the UFO 21. Aug. 2009 18. Apr. 2010
+// 113  4  Mr. Monk verliebt sich in sein neues Spiegelbild Mr. Monk is Someone Else 28. Aug. 2009 25. Apr. 2010
+// 114  5  Mr. Monk in der Krise Mr. Monk Takes the Stand 11. Sep. 2009 2. Mai 2010
+// 115  6  Mr. Monk, die Schönen und das Biest Mr. Monk and the Critic 18. Sep. 2009 9. Mai 2010
+// 116  7  Mr. Monk und das Unheil des Voodoos Mr. Monk and the Voodoo Curse 25. Sep. 2009 14. Sep. 2010
+// 117  8  Mr. Monk muss zur Gruppentherapie Mr. Monk Goes to Group Therapy 9. Okt. 2009 21. Sep. 2010
+// 118  9  Mr. Monk feiert nicht freiwillig Geburtstag Happy Birthday, Mr. Monk 16. Okt. 2009 28. Sep. 2010
+// 119  10  Mr. Monk mit Natalie - und Sharona? Mr. Monk and Sharona 23. Okt. 2009 5. Okt. 2010
+ 120 => "Mr. Monk kommt auf den Hund (Mr. Monk and the Dog)",
+ 121 => "Mr. Monk riskiert seine Wiedereinstellung (Mr. Monk Goes Camping)",
+ 122 => "Mr. Monk ermittelt als Trauzeuge (Mr. Monk Is the Best Man)",
+// 123  14  Mr. Monks Freude endet am Schreibtisch Mr. Monk and the Badge 20. Nov. 2009 2. Nov. 2010
+ 124 => "Mr. Monk und Trudys Erbe – Teil 1 (Mr. Monk and the End (1)",
+ 125 => "Mr. Monk und Trudys Erbe – Teil 2 (Mr. Monk and the End (2))"
+ )
+);
Index: live/media/video/series/includes/dead-zone.php
===================================================================
--- live/media/video/series/includes/dead-zone.php (revision 0)
+++ live/media/video/series/includes/dead-zone.php (revision 198)
@@ -0,0 +1,98 @@
+<?php
+
+$dead_zone = array(
+// 'ignore' => true,
+ 'channel' => 'online',
+// 'showtimes' => 'Mo–Fr 16:10',
+ 'seen' => array(array(1, 10)),
+// 'last_seen' => mktime(16, 5, 0, 5, 16, 2011),
+ 'seasons' => array(13, 19, 12, 12, 11, 13),
+ 'episode_list' => 'wiki:en:List_of_The_Dead_Zone_episodes',
+ 'episodes' => array(
+ 1 => "Wheel of Fortune (Das zweite Gesicht)",
+ 2 => "What It Seems (Kaltes Herz)",
+ 3 => "Quality of Life (Der Coach)",
+ 4 => "Enigma (Enigma)",
+ 5 => "Unreasonable Doubt (Der zwölfte Geschworene)",
+ 6 => "The House (Das Haus)",
+ 7 => "Enemy Mind (Höllentrip)",
+ 8 => "Netherworld (Zwischen zwei Welten)",
+ 9 => "The Siege (Kaleidoskop des Todes)",
+ 10 => "Here There Be Monsters (Hexenjagd)",
+ 11 => "Dinner with Dana (Dinner mit Dana)",
+ 12 => "Shaman (Der Schamane)",
+ 13 => "Destiny (Des Teufels rechte Hand)",
+
+ 14 => "Valley of the Shadow (Das Wort Gottes)",
+ 15 => "Descent (1) (Abstieg in den Tod)",
+ 16 => "Ascent (2) (Am Ende des Tunnels)",
+ 17 => "The Outsider (Der Aussenseiter)",
+ 18 => "Precipitate (Blutsbande)",
+ 19 => "Scars (Die Stimmen der Toten)",
+ 20 => "Misbegotten (Anita)",
+ 21 => "Cabin Pressure (Flug TCA 2413)",
+ 22 => "The Man Who Never Was (Der Mann, der nie existierte)",
+ 23 => "Dead Men Tell Tales (Gute Absichten)",
+ 24 => "Playing God (Herrscher über Leben und Tod)",
+ 25 => "Zion (Der Prediger)",
+ 26 => "The Storm (Der Sturm)",
+ 27 => "Plague (Der unsichtbare Tod)",
+ 28 => "Deja Voodoo (DejaVodoo)",
+ 29 => "The Hunt (Angst und Schrecken)",
+ 30 => "The Mountain (Die Schatzsuche)",
+ 31 => "The Combination (Die Zwölfte Runde)",
+ 32 => "Visions (Der Mann aus der Zukunft)",
+
+ 33 => "Finding Rachel, Part 1 (Das Komplott (Teil 1))",
+ 34 => "Finding Rachel, Part 2 (Das Komplott (Teil 2))",
+ 35 => "Collision (Gefangen im Feuer)",
+ 36 => "Cold Hard Truth (Gnadenlose Wahrheit)",
+ 37 => "Total Awareness (Totale Kontrolle)",
+ 38 => "No Questions Asked (Tod eines Freundes)",
+ 39 => "Looking Glass (Die Zwillinge)",
+ 40 => "Speak Now (Die unglückliche Braut)",
+ 41 => "Cycle of Violence (Spirale der Gewalt)",
+ 42 => "Instinct (Zeichen und Wunder)",
+ 43 => "Shadows (Schwarze Sekunden)",
+ 44 => "Tipping Point (1) (Apokalypse (1))",
+
+ 45 => "Broken Circle (2) (Mein ist die Rache… (2))",
+ 46 => "The Collector (Die perfekte Frau)",
+ 47 => "Double Vision (Die Hellseherin)",
+ 48 => "Still Life (Die Muse des Malers)",
+ 49 => "Heroes & Demons (Helden und Dämonen)",
+ 50 => "The Last Goodbye (Der Rockstar)",
+ 51 => "Grains of Sand (Menschenhandel)",
+ 52 => "Vanguard (Die Reiter der Apokalypse)",
+ 53 => "Babble On (Die Explosion)",
+ 54 => "Coming Home (Im Wald der Toten)",
+ 55 => "Saved (Der dritte Herrscher)",
+ 56 => "A Very Dead Zone Christmas (Übersinnliche Weihnachtszeit)",
+
+ 57 => "Forbidden Fruit (Verbotene Früchte)",
+ 58 => "Independence Day (Independance Day)",
+ 59 => "Panic (Panik)",
+ 60 => "Articles of Faith (Rassenhass)",
+ 61 => "The Inside Man (Die Reliquie)",
+ 62 => "Lotto Fever (Lottofieber)",
+ 63 => "Symmetry (Von allen Seiten)",
+ 64 => "Vortex (Die letzte Schlacht)",
+ 65 => "Revelations (Die Offenbarung)",
+ 66 => "Into the Heart of Darkness (Im Herzen der Dunkelheit)",
+ 67 => "The Hunting Party (Jäger und Wölfe)",
+
+ 68 => "Heritage (Heldentod)",
+ 69 => "Ego (Innere Dämonen)",
+ 70 => "Reentry (Amerikas Hoffnung)",
+ 71 => "Big Top (Der alte Jahrmarkt)",
+ 72 => "Interred (Lebendig begraben)",
+ 73 => "Switch (Der Kanada Express)",
+ 74 => "Numb (Der rettende Kuss)",
+ 75 => "Outcome (Die Explosion)",
+ 76 => "Transgressions (Fallstricke des Teufels)",
+ 77 => "Drift (Das Pferderennen)",
+ 78 => "Exile (Irgendwo in Indiana)",
+ 79 => "Ambush (Das Geheimnis)",
+ 80 => "Denouement (Das Gift der Macht)",
+ ),
+);
Index: live/media/video/series/includes/x-files.php
===================================================================
--- live/media/video/series/includes/x-files.php (revision 0)
+++ live/media/video/series/includes/x-files.php (revision 198)
@@ -0,0 +1,235 @@
+<?php
+
+$serien['<span class="akte-x"><span class="small">Akte<span class="before-x"> </span>'
+. '<span class="x">X</span></span>'] = array(
+// 'ignore' => true,
+ 'channel' => 'online',
+// 'showtimes' => 'Do 20:15-22:15',
+ 'seen' => array(array(1, 25)),
+// 'last_seen' => mktime(20, 15, 0, 3, 24, 2011),
+ 'seasons' => array(24, 25, 24, 24, 20, 22, 22, 21, 19),
+ 'episode_list' => 'wiki:Liste_der_Episoden_von_Akte_X_–_Die_unheimlichen_Fälle_des_FBI',
+ 'episodes' => array(
+ /* Season 1 */
+ 1 => "Pilot (Gezeichnet)",
+ 2 => "Deep Throat (Die Warnung)",
+ 3 => "Squeeze (Das Nest)",
+ 4 => "Conduit (Signale)",
+ 5 => "The Jersey Devil (Der Teufel von Jersey)",
+ 6 => "Shadows (Schatten)",
+ 7 => "Ghost in the Machine (Die Maschine)",
+ 8 => "Ice (Eis)",
+ 9 => "Space (Besessen)",
+ 10 => "Fallen Angel (Gefallener Engel)",
+ 11 => "Eve",
+ 12 => "Fire (Feuer)",
+ 13 => "Beyond the Sea (Die Botschaft)",
+ 14 => "Gender Bender (Verlockungen)",
+ 15 => "Lazarus",
+ 16 => "Young at Heart (Ewige Jugend)",
+ 17 => "E.B.E. (Täuschungsmanöver)",
+ 18 => "Miracle Man (Der Wunderheiler)",
+ 19 => "Shapes (Verwandlungen)",
+ 20 => "Darkness Falls (Der Kokon)",
+ 21 => "Tooms (Ein neues Nest)",
+ 22 => "Born Again (Wiedergeboren)",
+ 23 => "Roland",
+ 24 => "The Erlenmeyer Flask (Das Labor)",
+
+ /* Season 2 */
+ 25 => "Little Green Men (Kontakt)",
+ 26 => "The Host (Der Parasit)",
+ 27 => "Blood (Blut)",
+ 28 => "Sleepless (Schlaflos)",
+ 29 => "Duane Barry (1) (Unter Kontrolle - Teil 1)",
+ 30 => "Ascension (2) (Seilbahn zu den Sternen - Teil 2)",
+ 31 => "3 (Drei)",
+ 32 => "One Breath (An der Grenze)",
+ 33 => "Firewalker (Der Vulkan)",
+ 34 => "Red Museum (Rotes Museum)",
+ 35 => "Excelsis Dei (Excelsis Dei)",
+ 36 => "Aubrey (Böse geboren)",
+ 37 => "Irresistible (Todestrieb)",
+ 38 => "Die Hand Die Verletzt (Satan)",
+ 39 => "Fresh Bones (Frische Knochen)",
+ 40 => "Colony (1) (Die Kolonie - Teil 1)",
+ 41 => "End Game (2) (Die Kolonie - Teil 2)",
+ 42 => "Fearful Symmetry (Sophie)",
+ 43 => "Dod Kalm (Totenstille)",
+ 44 => "Humbug (Der Zirkus)",
+ 45 => "The Calusari (Heilige Asche)",
+ 46 => "F. Emasculata (Verseucht)",
+ 47 => "Soft Light (Das Experiment)",
+ 48 => "Our Town (Unsere kleine Stadt)",
+ 49 => "Anasazi (1) (Anasazi - Teil 1)",
+
+/* Season 3 */
+// Nr.(ges.) Nr.(St.) Deutschsprachiger Titel Originaltitel Erstaus­strahlung USA Deutsch­sprachige Erstaus­strahlung (DE)
+// 50  1  Das Ritual - Teil 2 The Blessing Way (2) 1995-09-2222. Sep. 1995 1996-10-2424. Okt. 1996
+// 51  2  Verschwörung des Schweigens - Teil 3 Paper Clip (3) 1995-09-2929. Sep. 1995 1996-10-3131. Okt. 1996
+// 52  3  Blitzschlag D.P.O. 1995-10-0606. Okt. 1995 1996-11-0707. Nov. 1996
+// 53  4  Der Hellseher Clyde Bruckman's Final Repose 1995-10-1313. Okt. 1995 1996-11-1414. Nov. 1996
+// 54  5  Die Liste The List 1995-10-2020. Okt. 1995 1997-02-2727. Feb. 1997
+// 55  6  Fett 2Shy 1995-11-0303. Nov. 1995 1997-03-0606. Mär. 1997
+// 56  7  Der zweite Körper The Walk 1995-11-1010. Nov. 1995 1996-11-2121. Nov. 1996
+// 57  8  Parallele Oubliette 1995-11-1717. Nov. 1995 1997-03-1313. Mär. 1997
+// 58  9  Die Autopsie - Teil 1 Nisei (1) 1995-11-2424. Nov. 1995 1997-01-2323. Jan. 1997
+// 59  10  Der Zug - Teil 2 731 (2) 1995-12-0101. Dez. 1995 1997-01-3030. Jan. 1997
+// 60  11  Offenbarung Revelations 1995-12-1515. Dez. 1995 1996-11-2828. Nov. 1996
+// 61  12  Krieg der Koprophagen War of the Coprophages 1996-01-0505. Jan. 1996 1996-12-0505. Dez. 1996
+// 62  13  Energie Syzygy 1996-01-2626. Jan. 1996 1996-12-1212. Dez. 1996
+// 63  14  Groteske Grotesque 1996-02-0202. Feb. 1996 1997-03-2020. Mär. 1997
+// 64  15  Der Feind - Teil 1 Piper Maru (1) 1996-02-0909. Feb. 1996 1996-12-1919. Dez. 1996
+// 65  16  Der Feind - Teil 2 Apocrypha (2) 1996-02-1616. Feb. 1996 1997-01-0202. Jan. 1997
+// 66  17  Mein Wille sei dein Wille Pusher 1996-02-2323. Feb. 1996 1997-01-0909. Jan. 1997
+// 67  18  Der Fluch Teso Dos Bichos 1996-03-0808. Mär. 1996 1997-01-1616. Jan. 1997
+// 68  19  Höllengeld Hell Money 1996-03-2929. Mär. 1996 1997-02-0606. Feb. 1997
+ 69 => 'Andere Wahrheiten (Jose Chung\'s "From Outer Space"',
+ 70 => 'Heimsuchung (Avatar)',
+ 71 => 'Der See (Quagmire)',
+ 72 => 'Ferngesteuert (Wetwired)',
+ 73 => 'Der Tag steht schon fest (Talitha Cumi) (1)',
+
+ /* Season 4 */
+ 74 => 'Herrenvolk (2)',
+ 75 => 'Blutschande',
+ 76 => 'Teliko',
+ 77 => 'Unruhe',
+ 78 => 'Rückkehr der Seelen (The Field Where I Died)',
+ 79 => 'Hexensabbat (Sanguinarium)',
+ 80 => 'Gedanken des geheimnisvollen Rauchers (Musings of a Cigarette Smoking Man)',
+ 81 => 'Tunguska – Teil 1 (Tunguska (1))',
+ 82 => 'Tunguska – Teil 2 (Terma (2))',
+ 83 => 'Die Sammlung (Paperhearts)',
+ 84 => 'Der Chupacabra (El Mundo Gira)',
+ 85 => 'Leonard Betts',
+ 86 => "Mutterkorn (Never Again)",
+ 87 => "Memento Mori (Memento Mori)",
+ 88 => "Der Golem (Kaddish)",
+ 89 => "Unsichtbar (Unrequited)",
+ 90 => "Tempus Fugit - Teil 1 (Tempus Fugit (1))",
+ 91 => "Tempus Fugit - Teil 2 (Max (2))",
+ 92 => "Rückkehr aus der Zukunft (Synchrony)",
+ 93 => "Ein unbedeutender Niemand (Small Potatoes)",
+ 94 => "Der Pakt mit dem Teufel (Zero Sum)",
+ 95 => "Todes-Omen (Elegy)",
+ 96 => "Dämonen (Demons)",
+ 97 => "Gethsemane (Gethsemane)",
+
+ /* Season 5 */
+ 98 => "Redux - Teil 1 (Redux (1))",
+ 99 => "Redux - Teil 2 (Redux (2))",
+ 100 => "Die unüblichen Verdächtigen (Unusual Suspects)",
+ 101 => "Vom Erdboden verschluckt (Detour)",
+ 102 => "Der große Mutato (Post-Modern Prometheus)",
+ 103 => "Emily - Teil 1 (Christmas Carol (1))",
+ 104 => "Emily - Teil 2 (Emily (2))",
+ 105 => "Kitsunegari (Kitsunegari)",
+ 106 => "Die Wurzeln des Bösen (Schizogeny)",
+ 107 => "Ein Spiel (Chinga (02.04.2011 23:50 Tele 5))",
+ 108 => "Kill Switch (Kill Switch)",
+ 109 => "Böses Blut (Bad Blood)",
+ 110 => "Cassandra - Teil 1 (Patient X (1) 12.05.2011 21:15)",
+ 111 => "Cassandra - Teil 2 (The Red and the Black (2))",
+ 112 => "Gute Patrioten (Travelers)",
+ 113 => "Das innere Auge (Mind's Eye)",
+ 114 => "Alle Seelen (All Souls)",
+ 115 => "Die Pine-Bluff-Variante (The Pine Bluff Variant)",
+ 116 => "Folie a Deux (Folie a Deux)",
+ 117 => "Das Ende (The End)",
+
+ /* Season 6 */
+ 118 => "Der Anfang (The Beginning)",
+ 119 => "Die Fahrt (Drive)",
+ 120 => "Im Bermuda-Dreieck (Triangle)",
+ 121 => "Dreamland - Teil 1 (Dreamland (1))",
+ 122 => "Dreamland - Teil 2 (Dreamland (2))",
+ 123 => "Die Geister, die ich rief (How the Ghosts Stole Christmas)",
+ 124 => "Zeit der Zärtlichkeit (Terms of Endearment)",
+ 125 => "Der Regenmacher (Rain King)",
+ 126 => "S.R. 819 (S.R. 819)",
+ 127 => "Tithonos (Tithonus)",
+ 128 => "Zwei Väter - Teil 1 (Two Fathers (1))",
+ 129 => "Ein Sohn - Teil 2 (One Son (2))",
+ 131 => "Montag (Monday)",
+ 132 => "Arkadien (Arcadia)",
+ 133 => "Alpha",
+ 134 => "Trevor",
+ 135 => "Milagro",
+ 136 => "Ex (The Unnatural)",
+ 137 => "Suzanne (Three of a Kind)",
+ 138 => 'Sporen (Field Trip (aka: "Lies")',
+ 139 => 'Artefakte (Biogenesis (aka: "Plans")',
+
+ /* Season 7 */
+ 140 => 'Böse Zeichen (1) (The Sixth Extinction (1))',
+ 141 => 'Tausend Stimmen (2) (The Sixth Extinction (2))',
+ 142 => 'Hunger (Hungry)',
+ 143 => "Millennium",
+ 144 => "Masse mal Beschleunigung (Rush)",
+ 145 => "Das Glück des Henry Weems (The Goldberg Variation)",
+ 146 => "Tor zur Hölle (Orison)",
+ 147 => "Der unglaubliche Maleeni (The Amazing Maleeni)",
+// 148  9  Schlangen Signs & Wonders 2000-01-2323. Jan. 2000 2000-12-0404. Dez. 2000
+// 149  10  Alte Seelen Sein Und Zeit 2000-02-0606. Feb. 2000 2000-12-1111. Dez. 2000
+// 150  11  Sternenlicht Closure 2000-02-1313. Feb. 2000 2000-12-1818. Dez. 2000
+// 151  12  Vollmond X-Cops 2000-02-2020. Feb. 2000 2001-01-1515. Jan. 2001
+// 152  13  Game Over First Person Shooter 2000-02-2727. Feb. 2000 2001-01-2929. Jan. 2001
+// 153  14  Zauberstaub Theef 2000-03-1212. Mär. 2000 2001-01-0808. Jan. 2001
+// 154  15  Cobra En Ami 2000-03-1919. Mär. 2000 2001-01-2222. Jan. 2001
+// 155  16  Zerbrochene Spiegel Chimera 2000-04-0202. Apr. 2000 2001-02-0505. Feb. 2001
+// 156  17  Augenblicke all things 2000-04-0909. Apr. 2000 2001-02-1212. Feb. 2001
+// 157  18  Nikotin Brand X 2000-04-1616. Apr. 2000 2001-02-2626. Feb. 2001
+// 158  19  Hollywood Hollywood A. D. 2000-04-3030. Apr. 2000 2001-02-1919. Feb. 2001
+// 159  20  27.000.000 : 1 Fight Club 2000-05-0707. Mai 2000 2001-03-0505. Mär. 2001
+// 160  21  Drei Wünsche Je Souhaite 2000-05-1414. Mai 2000 2001-03-1212. Mär. 2001
+// 161  22  Alles beginnt in Oregon - Teil 1 Requiem (1) 2000-05-2121. Mai 2000 2001-03-1919. Mär. 2001
+
+/* Season 8 */
+// Nr.(ges.) Nr.(St.) Deutschsprachiger Titel Originaltitel Erstaus­strahlung USA Deutsch­sprachige Erstaus­strahlung (DE)
+// 162  1  Verschwunden - Teil 2 Within (2) 2000-11-0505. Nov. 2000 2001-09-2525. Sep. 2001
+// 163  2  Gibson Praise - Teil 3 Without (3) 2000-11-1212. Nov. 2000 2001-10-0101. Okt. 2001
+// 164  3  Klauen und Zähne Patience 2000-11-1919. Nov. 2000 2001-10-0808. Okt. 2001
+// 165  4  Gesteinigt Roadrunners 2000-11-2626. Nov. 2000 2001-10-1515. Okt. 2001
+// 166  5  Billy Invocation 2000-12-0303. Dez. 2000 2001-10-2222. Okt. 2001
+// 167  6  Rückwärts Redrum 2000-12-1010. Dez. 2000 2001-11-0505. Nov. 2001
+// 168  7  Via Negativa Via Negativa 2000-12-1717. Dez. 2000 2001-10-2929. Okt. 2001
+// 169  8  Fenster der Seele Surekill 2001-01-0707. Jan. 2001 2001-11-1212. Nov. 2001
+// 170  9  Schlaues Metall Salvage 2001-01-1414. Jan. 2001 2001-11-1919. Nov. 2001
+// 171  10  Hier und nicht hier Badlaa 2001-01-2121. Jan. 2001 2001-11-2626. Nov. 2001
+// 172  11  Der Seelenesser The Gift 2001-02-0404. Feb. 2001 2001-12-0303. Dez. 2001
+// 173  12  Underground Medusa 2001-02-1111. Feb. 2001 2001-12-1010. Dez. 2001
+// 174  13  Frucht des Leibes Per Manum 2001-02-1818. Feb. 2001 2001-12-1717. Dez. 2001
+// 175  14  Es ist zu spät - Teil 1 This Is Not Happening (1) 2001-02-2525. Feb. 2001 2002-01-0707. Jan. 2002
+// 176  15  Lebendig tot - Teil 2 DeadAlive (2) 2001-04-0101. Apr. 2001 2002-01-1414. Jan. 2002
+// 177  16  Drei Worte Three Words 2001-04-0808. Apr. 2001 2002-01-2121. Jan. 2002
+// 178  17  Feuer und Asche Empedocles 2001-04-1515. Apr. 2001 2002-01-2828. Jan. 2002
+// 179  18  Sie kommen Vienen 2001-04-2222. Apr. 2001 2002-02-0404. Feb. 2002
+// 180  19  Augenlicht Alone 2001-05-0606. Mai 2001 2002-02-1111. Feb. 2002
+// 181  20  Einer von vielen - Teil 1 Essence (1) 2001-05-1313. Mai 2001 2002-02-1818. Feb. 2002
+// 182  21  William - Teil 2 Existence (2) 2001-05-2020. Mai 2001 2002-02-2525. Feb. 2002
+
+/* Season 9 */
+// Nr.(ges.) Nr.(St.) Deutschsprachiger Titel Originaltitel Erstaus­strahlung USA Deutsch­sprachige Erstaus­strahlung (DE)
+// 183  1  Unter Wasser - Teil 1 Nothing Important Happened Today (1) 2001-11-1111. Nov. 2001 2002-10-1414. Okt. 2002
+// 184  2  Adam und Eva - Teil 2 Nothing Important Happened Today (2) 2001-11-1818. Nov. 2001 2002-10-2121. Okt. 2002
+// 185  3  Daemonicus Dæmonicus 2001-12-0202. Dez. 2001 2002-11-1111. Nov. 2002
+// 186  4  4-D 4-D 2001-12-0909. Dez. 2001 2002-11-0404. Nov. 2002
+// 187  5  Der Herr der Fliegen Lord of the Flies 2001-12-1616. Dez. 2001 2002-11-2525. Nov. 2002
+// 188  6  Schattenmann Trust No 1 2002-01-0606. Jan. 2002 2002-11-1818. Nov. 2002
+// 189  7  Desaparecido John Doe 2002-01-1313. Jan. 2002 2002-12-0202. Dez. 2002
+// 190  8  Häutungen Hellbound 2002-01-2727. Jan. 2002 2002-10-2828. Okt. 2002
+// 191  9  Drohungen - Teil 1 Provenance (1) 2002-03-0303. Mär. 2002 2003-01-1313. Jan. 2003
+// 192  10  Die Prophezeiung - Teil 2 Providence (2) 2002-03-1010. Mär. 2002 2003-01-2020. Jan. 2003
+// 193  11  Audrey Audrey Pauley 2002-03-1717. Mär. 2002 2002-12-1616. Dez. 2002
+// 194  12  Der Mörder in mir Underneath 2002-03-3131. Mär. 2002 2002-12-0909. Dez. 2002
+// 195  13  Sechs und neun Improbable 2002-04-0707. Apr. 2002 2002-12-2323. Dez. 2002
+// 196  14  Unter dem Bett Scary Monsters 2002-04-1414. Apr. 2002 2003-01-2727. Jan. 2003
+// 197  15  Helden Jump the Shark 2002-04-2121. Apr. 2002 2003-02-0303. Feb. 2003
+// 198  16  Zum Wohle des Kindes William 2002-04-2828. Apr. 2002 2003-02-1717. Feb. 2003
+// 199  17  Erlösung Release 2002-05-0505. Mai 2002 2003-02-1010. Feb. 2003
+// 200  18  Die perfekte Familie Sunshine Days 2002-05-1212. Mai 2002 2002-12-3030. Dez. 2002
+// 201  19  Die Wahrheit - Teil 1 The Truth (1) 2002-05-1919. Mai 2002 2003-02-2424. Feb. 2003
+// 202  20  Die Wahrheit - Teil 2 The Truth (2) 2002-05-1919. Mai 2002 2003-02-2424. Feb. 2003
+ ),
+);
Index: live/media/video/series/includes/quantum-leap.php
===================================================================
--- live/media/video/series/includes/quantum-leap.php (revision 0)
+++ live/media/video/series/includes/quantum-leap.php (revision 198)
@@ -0,0 +1,112 @@
+<?php
+
+$quantum_leap = array(
+// 'ignore' => true,
+ 'channel' => 'online',
+// 'showtimes' => 'Mo–Fr 19:00',
+ 'seen' => array(array(1, 12)),
+// 'last_seen' => mktime(19, 0, 0, 1, 19, 2012),
+ 'seasons' => array(8, 22, 22, 22, 21),
+ 'episodes' => array(
+ 1 => "Genesis",
+ 2 => "Star-Crossed",
+ 3 => "The Right Hand of God",
+ 4 => "How the Tess Was Won",
+ 5 => "Double Identity",
+ 6 => "The Color of Truth",
+ 7 => "Camikazi Kid",
+ 8 => "Play It Again, Seymour",
+
+ 9 => "Honeymoon Express",
+ 10 => "Disco Inferno",
+ 11 => "The Americanization of Machiko",
+ 12 => "What Price Gloria?",
+ 13 => "Blind Faith",
+ 14 => "Good Morning, Peoria",
+ 15 => "Thou Shalt Not…",
+ 16 => "Jimmy",
+ 17 => "So Help Me God",
+ 18 => "Catch A Falling Star",
+ 19 => "A Portrait for Troian",
+ 20 => "Animal Frat",
+ 21 => "Another Mother",
+ 22 => "All Americans",
+ 23 => "Her Charm",
+ 24 => "Freedom",
+ 25 => "Good Night, Dear Heart",
+ 26 => "Pool Hall Blues",
+ 27 => "Leaping in Without a Net",
+ 28 => "Maybe Baby",
+ 29 => "Sea Bride",
+ 30 => "M.I.A.",
+
+ 31 => "The Leap Home (Part 1)",
+ 32 => "The Leap Home (Part 2) – Vietnam",
+ 33 => "Leap of Faith",
+ 34 => "One Strobe over the Line",
+ 35 => "The Boogieman",
+ 36 => "Miss Deep South",
+ 37 => "Black on White on Fire",
+ 38 => "The Great Spontini",
+ 39 => "Rebel Without a Clue",
+ 40 => "A Little Miracle",
+ 41 => "Runaway",
+ 42 => "8½ Months",
+ 43 => "Future Boy",
+ 44 => "Private Dancer",
+ 45 => "Piano Man",
+ 46 => "Southern Comforts",
+ 47 => "Glitter Rock",
+ 48 => "A Hunting We Will Go",
+ 49 => "Last Dance Before An Execution",
+ 50 => "Heart of a Champion",
+ 51 => "Nuclear Family",
+ 52 => "Shock Theater",
+
+ 53 => "The Leap Back",
+ 54 => "Play Ball",
+ 55 => "Hurricane",
+ 56 => "Justice",
+ 57 => "Permanent Wave",
+ 58 => "Raped",
+ 59 => "The Wrong Stuff",
+ 60 => "Dreams",
+ 61 => "A Single Drop of Rain",
+ 62 => "Unchained",
+ 63 => "The Play's the Thing",
+ 64 => "Running For Honor",
+ 65 => "Temptation Eyes",
+ 66 => "The Last Gunfighter",
+ 67 => "A Song for the Soul",
+ 68 => "Ghost Ship",
+ 69 => "Roberto!",
+ 70 => "It's A Wonderful Leap",
+ 71 => "Moments to Live",
+ 72 => "The Curse of Ptah-Hotep",
+ 73 => "Stand Up",
+ 74 => "A Leap for Lisa",
+
+ 75 => "Lee Harvey Oswald",
+ 76 => "The Leaping of the Shrew",
+ 77 => "Nowhere to Run",
+ 78 => "Killin' Time",
+ 79 => "Star Light, Star Bright",
+ 80 => "Deliver Us From Evil",
+ 81 => "Trilogy (Part 1) – One Little Heart",
+ 82 => "Trilogy (Part 2) – For Your Love",
+ 83 => "Trilogy (Part 3) – The Last Door",
+ 84 => "Promised Land",
+ 85 => "A Tale of Two Sweeties",
+ 86 => "Liberation",
+ 87 => "Dr. Ruth",
+ 88 => "Blood Moon",
+ 89 => "Return of the Evil Leaper (1)",
+ 90 => "Revenge of the Evil Leaper (2)",
+ 91 => "Goodbye Norma Jean",
+ 92 => "The Beast Within",
+ 93 => "The Leap Between The States",
+ 94 => "Memphis Melody",
+ 95 => "Mirror Image",
+ ),
+ 'episode_list' => 'wiki:en:List_of_Quantum_Leap_episodes'
+);
\ No newline at end of file
Index: live/media/video/series/includes/simpsons.php
===================================================================
--- live/media/video/series/includes/simpsons.php (revision 0)
+++ live/media/video/series/includes/simpsons.php (revision 198)
@@ -0,0 +1,302 @@
+<?php
+
+$simpsons = array(
+// 'ignore' => true,
+ 'channel' => 'online',
+// 'showtimes' => 'So 14:00–15:05',
+ 'seen' => array(
+ array(1, 60),
+ array(63, 64), 95),
+// 'last_seen' => mktime(21, 30, 0, 8, 3, 2010),
+ 'seasons' => array(13, 22, 24, 22, 22 , 25, 25, 25, 25, 23, 22,
+ 21, 22, 22, 22, 21, 22, 22, 20, 21, 23, 22, 22),
+ 'episode_list' => 'wiki:en:List_of_The_Simpsons_episodes#Episodes',
+ 'episodes' => array(
+ 1 => 'Simpsons Roasting on an Open Fire',
+ 2 => 'Bart the Genius',
+ 3 => 'Homer’s Odyssey',
+ 4 => "There's No Disgrace Like Home",
+ 5 => "Bart the General",
+ 6 => "Moaning Lisa",
+ 7 => "The Call of the Simpsons",
+ 8 => "The Telltale Head",
+ 9 => "Life on the Fast Lane",
+ 10 => "Homer's Night Out",
+ 11 => "The Crepes of Wrath",
+ 12 => "Krusty Gets Busted",
+ 13 => "Some Enchanted Evening",
+
+ 14 => "Bart Gets an F",
+ 15 => "Simpson and Delilah",
+ 16 => "Treehouse of Horror",
+ 17 => "Two Cars in Every Garage and Three Eyes on Every Fish",
+ 18 => "Dancin' Homer",
+ 19 => "Dead Putting Society",
+ 20 => "Bart vs. Thanksgiving",
+ 21 => "Bart the Daredevil",
+ 22 => "Itchy & Scratchy & Marge",
+ 23 => "Bart Gets Hit by a Car",
+ 24 => "One Fish, Two Fish, Blowfish, Blue Fish",
+ 25 => "The Way We Was",
+ 26 => "Homer vs. Lisa and the 8th Commandment",
+ 27 => "Principal Charming",
+ 28 => "Oh Brother, Where Art Thou?",
+ 29 => "Bart's Dog Gets an F",
+ 30 => "Old Money",
+ 31 => "Brush with Greatness",
+ 32 => "Lisa's Substitute",
+ 33 => "The War of the Simpsons",
+ 34 => "Three Men and a Comic Book",
+ 35 => "Blood Feud",
+
+ 36 => "Stark Raving Dad",
+ 37 => "Mr. Lisa Goes to Washington",
+ 38 => "When Flanders Failed",
+ 39 => "Bart the Murderer",
+ 40 => "Homer Defined",
+ 41 => "Like Father, Like Clown",
+ 42 => "Treehouse of Horror II",
+ 43 => "Lisa's Pony",
+ 44 => "Saturdays of Thunder",
+ 45 => "Flaming Moe's",
+ 46 => "Burns Verkaufen der Kraftwerk",
+ 47 => "I Married Marge",
+ 48 => "Radio Bart",
+ 49 => "Lisa the Greek",
+ 50 => "Homer Alone",
+ 51 => "Bart the Lover",
+ 52 => "Homer at the Bat",
+ 53 => "Separate Vocations",
+ 54 => "Dog of Death",
+ 55 => "Colonel Homer",
+ 56 => "Black Widower",
+ 57 => "The Otto Show",
+ 58 => "Bart's Friend Falls in Love",
+ 59 => "Brother, Can You Spare Two Dimes?",
+
+ 60 => "Kamp Krusty",
+ 61 => "A Streetcar Named Marge",
+ 62 => "Homer the Heretic",
+ 63 => "Lisa the Beauty Queen",
+ 64 => "Treehouse of Horror III",
+ 65 => "Itchy & Scratchy: The Movie",
+ 66 => "Marge Gets a Job",
+ 67 => "New Kid on the Block",
+ 68 => "Mr. Plow",
+ 69 => "Lisa's First Word",
+ 70 => "Homer's Triple Bypass",
+ 71 => "Marge vs. the Monorail",
+ 72 => "Selma's Choice",
+ 73 => "Brother from the Same Planet",
+ 74 => "I Love Lisa",
+ 75 => "Duffless",
+ 76 => "Last Exit to Springfield",
+ 77 => "So It’s Come to This: A Simpsons Clip Show",
+ 78 => "The Front",
+ 79 => "Whacking Day",
+ 80 => "Marge in Chains",
+ 81 => "Krusty Gets Kancelled",
+
+ 82 => "Homer's Barbershop Quartet",
+ 83 => "Cape Feare",
+ 84 => "Homer Goes to College",
+ 85 => "Rosebud",
+ 86 => "Treehouse of Horror IV",
+ 87 => "Marge on the Lam",
+ 88 => "Bart’s Inner Child",
+ 89 => "Boy-Scoutz N the Hood",
+ 90 => "The Last Temptation of Homer",
+ 91 => '$pringfield (Or How I Learned to Stop Worrying and Love Legalised Gambling)',
+ 92 => "Homer the Vigilante",
+ 93 => "Bart Gets Famous",
+ 94 => "Homer and Apu",
+ 95 => "Lisa vs. Malibu Stacy",
+ 96 => "Deep Space Homer",
+ 97 => "Homer Loves Flanders",
+ 98 => "Bart Gets an Elephant",
+ 99 => "Burns' Heir",
+ 100 => "Sweet Seymour Skinner's Baadasssss Song",
+ 101 => "The Boy Who Knew Too Much",
+ 102 => "Lady Bouvier's Lover",
+ 103 => "Secrets of a Successful Marriage",
+
+ 104 => "Bart of Darkness",
+ 105 => "Lisa's Rival",
+ 106 => "Another Simpsons Clip Show",
+ 107 => "Itchy & Scratchy Land",
+ 108 => "Sideshow Bob Roberts",
+ 109 => "Treehouse of Horror V",
+ 110 => "Bart's Girlfriend",
+ 111 => "Lisa on Ice",
+ 112 => "Homer Badman",
+ 113 => "Grampa vs. Sexual Inadequacy",
+ 114 => "Fear of Flying",
+ 115 => "Homer the Great",
+ 116 => "Maggie Makes Three",
+ 117 => "Bart's Comet",
+ 118 => "Homie the Clown",
+ 119 => "Bart vs. Australia",
+ 120 => "Homer vs. Patty and Selma",
+ 121 => "A Star Is Burns",
+ 122 => "Lisa's Wedding",
+ 123 => "Two Dozen and One Greyhounds",
+ 124 => "The PTA Disbands",
+ 125 => "'Round Springfield",
+ 126 => "The Springfield Connection",
+ 127 => "Lemon of Troy",
+ 128 => "Who Shot Mr. Burns? Part 1",
+
+ 240 => "Alone Again, Natura-Diddily",
+ 241 => "Missionary: Impossible",
+
+ 248 => "Behind the Laughter",
+
+ 273 => "Gloria – die wahre Liebe (A Hunka Hunka Burns in Love)",
+
+ 284 => "Blame It on Lisa",
+
+ 291 => "Poppa's Got a Brand New Badge",
+
+ 365 => "Simpsons Christmas Stories",
+
+ 371 => "Homer Simpson, This Is Your Wife",
+
+ 388 => "The Wife Aquatic",
+
+ 409 => "Eternal Moonshine of the Simpson Mind",
+ )
+);
+
+$simpsons_de = array(
+ 'ignore' => true,
+ 'channel' => 'ProSieben / ORF1',
+ 'showtimes' => 'Mo–Do, Sa, So 18:10 / So 12:45',
+// 'seen' => array(array(1, 3)),
+// 'last_seen' => mktime(21, 30, 0, 8, 3, 2010),
+ 'seasons' => array(13, 22, 24, 22, 22 , 25, 25, 25, 25, 23, 22, 21, 22, 22,
+ 22, 21, 22, 22, 20, 21, 23, 22, 15),
+ 'episode_list' => 'wiki:Liste_der_Simpsons-Episoden#Serie',
+ 'episodes' => array(
+// 1 => 'Es weihnachtet schwer (Simpsons Roasting on an Open Fire)',
+// 2 => 'Bart wird ein Genie (Bart the Genius)',
+// 3 => 'Der Versager (Homer’s Odyssey)',
+
+ 85 => "Kampf um Bobo (Rosebud)",
+ 86 => "Die Fahrt zur Hölle (Treehouse of Horror IV)",
+
+ 88 => "Bart, das innere Ich (Bart’s Inner Child)",
+ 89 => "Auf Wildwasserfahrt (Boy-Scoutz N the Hood)",
+
+// 99 => "Burns Erbe (Burns’ Heir)",
+
+ 71 => "Homer kommt in Fahrt (Marge vs. the Monorail)",
+
+ 77 => "Nur ein Aprilscherz… (So It’s Come to This: A Simpsons Clip Show)",
+
+ 83 => "Am Kap der Angst (Cape Feare)",
+ 84 => "Homer an der Uni (Homer Goes to College)",
+
+ 87 => "Die rebellischen Weiber (Marge on the Lam)",
+
+ 105 => "Lisas Rivalin (Lisa’s Rival)",
+ 106 => "Romantik ist überall (Another Simpsons Clip Show)",
+ 107 => "Der unheimliche Vergnügungspark (Itchy & Scratchy Land)",
+ 108 => "Tingeltangel-Bob (Sideshow Bob Roberts)",
+
+ 119 => "Bart gegen Australien (Bart vs. Australia)",
+
+ 131 => "Bei Simpsons stimmt was nicht! (Home Sweet Homediddly-Dum-Doodily)",
+
+ 136 => "Wer ist Mona Simpson? (Mother Simpson)",
+
+ 150 => "Simpson und sein Enkel in „Die Schatzsuche“"
+ . " (Raging Abe Simpson and His Grumbling Grandson in “The Curse of the Flying Hellfish”)",
+
+ 203 => "Die Gefahr, erwischt zu werden (Natural Born Kissers)",
+ 204 => "Ein jeder kriegt sein Fett (Lard of the Dance)",
+ 205 => "Im Schatten des Genies (The Wizard of Evergreen Terrace)",
+ 206 => "Bart brütet etwas aus (Bart the Mother)",
+ 207 => "Das unheimliche Mord-Transplantat (Treehouse of Horror IX)",
+// 208 => "Kennst du berühmte Stars? (When You Dish Upon a Star)",
+
+ 210 => "Die große Betrügerin (Lisa Gets an “A”)",
+ 211 => "Grandpa’s Nieren explodieren (Homer Simpson in: “Kidney Trouble”)",
+
+ 213 => "Wir fahr’n nach… Vegas (Viva Ned Flanders)",
+ 214 => "Allgemeine Ausgangssperre (Wild Barts Can’t Be Broken)",
+ 215 => "Nur für Spieler und Prominente (Sunday, Cruddy Sunday)",
+
+ 218 => "Marge Simpson im Anmarsch (Marge Simpson in: “Screaming Yellow Honkers”)",
+
+ 241 => "Der beste Missionar aller Zeiten (Missionary: Impossible)",
+
+ 244 => "Barneys Hubschrauber Flugstunde (Days of Wine and D’oh’ses)",
+ 245 => "Kill den Alligator und dann… (Kill the Alligator and Run)",
+ 246 => "Sie wollte schon immer Tänzerin werden (Last Tap Dance in Springfield)",
+
+ 274 => "Aus dunklen Zeiten (The Blunder Years)",
+
+ 277 => "Die süßsaure Marge (Sweets and Sour Marge)",
+
+ 285 => "Homer einmal ganz woanders (Weekend at Burnsie’s)",
+
+ 288 => "Die Apu und Manjula Krise (The Sweetest Apu)",
+
+ 297 => "Und der Mörder ist… (The Great Louse Detective)",
+ 298 => "Lehrerin des Jahres (Special Edna)",
+
+ 306 => "Mr. Burns wird entlassen (C.E. D’oh)",
+
+ 308 => "Homer auf Irrwegen (Three Gays of the Condo)",
+
+ 310 => "Die Helden von Springfield (Old Yeller Belly)",
+
+ 312 => "Auf dem Kriegspfad (Bart of War)",
+
+ 320 => "Eine Simpsons-Weihnachtsgeschichte (’Tis The Fifteenth Season)",
+ 321 => "Marge gegen Singles, Senioren, kinderlose Paare, Teenager und Schwule"
+ . " (Marge vs. Singles, Seniors, Childless Couples and Teens, and Gays)",
+ 322 => "Häuptling KnockaHomer (I, D’oh-Bot)",
+
+ 325 => "Milhouse lebt hier nicht mehr (Milhouse Doesn’t Live Here Anymore)",
+ 326 => "Klug & Klüger (Smart and Smarter)",
+ 327 => "Rat mal, wer zum Essen kommt (The Ziff Who Came to Dinner)",
+ 328 => "Marge im Suff (Co-Dependent’s Day)",
+
+ 330 => "Hochzeit auf Klingonisch (My Big Fat Geek Wedding)",
+
+ 353 => "Lisa Simpson: Superstar (A Star is Torn)",
+
+ 365 => "Simpsons Weihnachtsgeschichten (Simpsons Christmas Stories)",
+
+ 372 => "Corrida de Toro (Million Dollar Abie)",
+
+ 377 => "Gott gegen Lisa Simpson (The Monkey Suit)",
+
+ 397 => "Brand und Beute (Crook and Ladder)",
+
+ 393 => "Ein unmögliches Paar (Rome-old and Juli-eh)",
+ 394 => "Homerazzi",
+ 395 => "Marge Online (Marge Gamer)",
+
+ 405 => "Nach Hause telefonieren (Treehouse of Horror XVIII)",
+
+ 413 => "Debarted – Unter Ratten (The Debarted)",
+
+ 419 => "Lebwohl, Mona (Mona Leaves-a)",
+
+ 424 => "Der Tod kommt dreimal (Treehouse of Horror XIX)",
+
+ 440 => "Vier Powerfrauen und eine Maniküre (Four Great Women and a Manicure)",
+
+ 457 => "Simpson und Gomorrha (The Greatest Story Ever D’ohed)",
+ 460 => "Walverwandtschaft (The Squirt and the Whale)",
+ 461 => "Nedtropolis (To Surveil With Love)",
+
+ 474 => "Im Zeichen des Schwertes (Moms I’d Like to Forget)",
+
+ 478 => "Wütender Dad – Der Film (Angry Dad – The Movie)",
+
+ 476 => "Wenn der Homer mit dem Sohne (Homer the Father)",
+ )
+);
Index: live/media/video/series/includes/glee.php
===================================================================
--- live/media/video/series/includes/glee.php (revision 0)
+++ live/media/video/series/includes/glee.php (revision 198)
@@ -0,0 +1,57 @@
+<?php
+
+$glee = array(
+// 'ignore' => true,
+ 'channel' => 'online',
+ // 'showtimes' => 'Di 16:35',
+ 'seen' => array(array(1, 11)),
+ // 'last_seen' => mktime(16, 55, 0, 8, 25, 2011),
+ 'seasons' => array(22, 22, 22, 22),
+ 'episode_list' => 'wiki:en:List_of_Glee_episodes',
+ 'episodes' => array(
+ 1 => "Pilot",
+ 2 => "Showmance",
+ 3 => "Acafellas",
+ 4 => "Preggers",
+ 5 => "The Rhodes Not Taken",
+ 6 => "Vitamin D",
+ 7 => "Throwdown",
+ 8 => "Mash-Up",
+ 9 => "Wheels",
+ 10 => "Ballad",
+ 11 => "Hairography",
+ 12 => "Mattress",
+ 13 => "Sectionals",
+ 14 => "Hell-o",
+ 15 => "The Power of Madonna",
+ 16 => "Home",
+ 17 => "Bad Reputation",
+ 18 => "Laryngitis",
+ 19 => "Dream On",
+ 20 => "Theatricality",
+ 21 => "Funk",
+ 22 => "Journey to Regionals",
+ 23 => "Audition",
+ 24 => "Britney/Brittany",
+ 25 => "Grilled Cheesus",
+ 26 => "Duets",
+ 27 => "The Rocky Horror Glee Show",
+ 28 => "Never Been Kissed",
+ 29 => "The Substitute",
+ 30 => "Furt",
+ 31 => "Special Education",
+ 32 => "A Very Glee Christmas",
+ 33 => "The Sue Sylvester Shuffle",
+ 34 => "Silly Love Songs",
+ 35 => "Comeback",
+ 36 => "Blame It on the Alcohol",
+ 37 => "Sexy",
+ 38 => "Original Song",
+ 39 => "A Night of Neglect",
+ 40 => "Born This Way",
+ 41 => "Rumours",
+ 42 => "Prom Queen",
+ 43 => "Funeral",
+ 44 => "New York",
+ )
+);
\ No newline at end of file
Index: live/media/video/series/includes/true-blood.php
===================================================================
--- live/media/video/series/includes/true-blood.php (revision 0)
+++ live/media/video/series/includes/true-blood.php (revision 198)
@@ -0,0 +1,95 @@
+<?php
+
+$true_blood = array(
+// 'ignore' => true,
+ 'channel' => 'online',
+ // 'showtimes' => 'Mi 00:10',
+ 'seen' => array(array(1, 8)),
+ 'seasons' => array(12, 12, 12, 12, 12, 2),
+ 'episode_list' => 'wiki:en:List_of_True_Blood_episodes',
+ 'episodes' => array(
+ 1 => "Strange Love",
+ 2 => "The First Taste",
+ 3 => "Mine",
+ 4 => "Escape From Dragon House",
+ 5 => "Sparks Fly Out",
+ 6 => "Cold Ground",
+ 7 => "Burning House of Love",
+ 8 => "The Fourth Man in the Fire",
+ 9 => "Plaisir d'Amour",
+ 10 => "I Don't Wanna Know",
+ 11 => "To Love is to Bury",
+ 12 => "You'll Be the Death of Me",
+ 13 => "Nothing But the Blood",
+ 14 => "Keep This Party Going",
+ 15 => "Scratches",
+ 16 => "Shake and Fingerpop",
+ 17 => "Never Let Me Go",
+ 18 => "Hard-Hearted Hannah",
+ 19 => "Release Me",
+ 20 => "Time Bomb",
+ 21 => "I Will Rise Up",
+ 22 => "New World In My View",
+ 23 => "Frenzy",
+ 24 => "Beyond Here Lies Nothing",
+ 25 => "Bad Blood",
+ 26 => "Beautifully Broken",
+ 27 => "It Hurts Me Too",
+ 28 => "9 Crimes",
+ 29 => "Trouble",
+ 30 => "I Got a Right to Sing the Blues",
+ 31 => "Hitting the Ground",
+ 32 => "Night on the Sun",
+ 33 => "Everything Is Broken",
+ 34 => "I Smell a Rat",
+ 35 => "Fresh Blood",
+ 36 => "Evil is Going On",
+ )
+);
+
+ // '<span class="true-blood"><span class="upper">True</span>'
+// . '<span class="hidden"> </span><span class="lower">B</span>lood</span> (de)' => array(
+ // 'channel' => 'RTL Ⅱ',
+ // 'showtimes' => 'Mi 21:05',
+ // 'seen' => array(array(1, 6)),
+ // 'seasons' => array(12, 12, 12, 12),
+ // 'episode_list' => 'wiki:Liste_der_True-Blood-Episoden',
+ // 'episodes' => array(
+ // 1 => "Strange Love (Strange Love)",
+ // 2 => "Blut geleckt (The First Taste)",
+ // 3 => "Sie gehört zu mir (Mine)",
+ // 4 => "Flucht aus dem Drachenhaus (Escape From Dragon House)",
+ // 5 => "Funkenflug (Sparks Fly Out)",
+ // 6 => "Kalte Erde (Cold Ground)",
+ // 7 => "Brennende Leidenschaft (Burning House of Love)",
+ // 8 => "Der vierte Mann im Feuer (The Fourth Man in the Fire)",
+ // 9 => "Plaisir d'Amour (Plaisir d'Amour)",
+ // 10 => "Gefährliches Spiel (I Don't Wanna Know)",
+ // 11 => "Begräbnis aus Liebe (To Love is to Bury)",
+ // 12 => "Du wirst mein Tod sein (You'll Be the Death of Me)",
+ // 13 => "Nichts als Blut (Nothing But the Blood)",
+ // 14 => "Die Party geht weiter (Keep This Party Going)",
+ // 15 => "Kratzer (Scratches)",
+ // 16 => "Überraschung (Shake and Fingerpop)",
+ // 17 => "Verflucht (Never Let Me Go)",
+ // 18 => "Hartherzige Hannah (Hard-Hearted Hannah)",
+ // 19 => "Lass mich frei (Release Me)",
+ // 20 => "Zeitbombe (Time Bomb)",
+ // 21 => "Auferstehung (I Will Rise Up)",
+ // 22 => "Neue Welt (New World In My View)",
+ // 23 => "Ekstase (Frenzy)",
+ // 24 => "Das Ende des Horizonts (Beyond Here Lies Nothing)",
+ // 25 => "Böses Blut (Bad Blood)",
+ // 26 => "Schön kaputt (Beautifully Broken)",
+ // 27 => "Es tut so weh (It Hurts Me Too)",
+ // 28 => "Neun Verbrechen (9 Crimes)",
+ // 29 => "Ärger (Trouble)",
+ // 30 => "Ich habe ein Recht darauf, den Blues zu singen (I Got a Right to Sing the Blues)",
+ // 31 => "Am Boden der Tatsachen (Hitting the Ground)",
+ // 32 => "Nacht auf der Sonne (Night on the Sun)",
+ // 33 => "Alles ist zerbrochen (Everything Is Broken)",
+ // 34 => "Verdacht (I Smell a Rat)",
+ // 35 => "Frisches Blut (Fresh Blood)",
+ // 36 => "Das Böse geht weiter (Evil is Going On)",
+ // )
+ // );
\ No newline at end of file
Index: live/media/video/series/includes/macgyver.php
===================================================================
--- live/media/video/series/includes/macgyver.php (revision 0)
+++ live/media/video/series/includes/macgyver.php (revision 198)
@@ -0,0 +1,33 @@
+<?php
+
+$macgyver = array(
+// 'ignore' => true,
+ 'channel' => 'online',
+ 'seen' => array(array(1, 18)),
+ 'seasons' => array(22, 22, 20, 19, 21, 21, 14),
+ 'episode_list' => 'wiki:en:List_of_MacGyver_episodes',
+ 'episodes' => array(
+ 1 => "Pilot",
+ 2 => "The Golden Triangle",
+ 3 => "Thief of Budapest",
+ 4 => "The Gauntlet",
+ 5 => "The Heist",
+ 6 => "Trumbo's World",
+ 7 => "Last Stand",
+ 8 => "Hellfire",
+ 9 => "The Prodigal",
+ 10 => "Target MacGyver",
+ 11 => "Nightmares",
+ 12 => "Deathlock",
+ 13 => "Flame's End",
+ 14 => "Countdown",
+ 15 => "The Enemy Within",
+ 16 => "Every Time She Smiles",
+ 17 => "To Be a Man",
+ 18 => "Ugly Duckling",
+ 19 => "Slow Death",
+ 20 => "The Escape",
+ 21 => "A Prisoner of Conscience",
+ 22 => "The Assassin",
+ )
+);
Index: live/media/video/series/includes/big-bang-theory.php
===================================================================
--- live/media/video/series/includes/big-bang-theory.php (revision 0)
+++ live/media/video/series/includes/big-bang-theory.php (revision 198)
@@ -0,0 +1,280 @@
+<?php
+
+$serien['<span class="big-bang-theory"><span class="lower">The</span>'
+ . ' B<span class="i">i</span>g <span class="bang">Bang</span>'
+ . ' Theory</span>'] = array(
+// 'ignore' => true,
+ 'channel' => 'online',
+// 'showtimes' => 'Sa 19:00-20:00',
+ 'seen' => array(array(1, 18)),
+ 'seasons' => array(17, 23, 23, 24, 24, 24, 5),
+ 'episode_list' => 'wiki:Liste_der_The-Big-Bang-Theory-Episoden',
+ 'episodes' => array(
+ 1 => "Pilot",
+ 2 => "The Big Bran Hypothesis",
+ 3 => "The Fuzzy Boots Corollary",
+ 4 => "The Luminous Fish Effect",
+ 5 => "The Hamburger Postulate",
+ 6 => "The Middle-Earth Paradigm",
+ 7 => "The Dumpling Paradox",
+ 8 => "The Grasshopper Experiment",
+ 9 => "The Cooper-Hofstadter Polarization",
+ 10 => "The Loobenfeld Decay",
+ 11 => "The Pancake Batter Anomaly",
+ 12 => "The Jerusalem Duality",
+ 13 => "The Bat Jar Conjecture",
+ 14 => "The Nerdvana Annihilation",
+ 15 => "The Pork Chop Indeterminacy",
+ 16 => "The Peanut Reaction",
+ 17 => "The Tangerine Factor",
+
+ /* Season 2 */
+ 18 => "The Bad Fish Paradigm",
+ 19 => "The Codpiece Topology",
+ 20 => "The Barbarian Sublimation",
+ 21 => "The Griffin Equivalency",
+ 22 => "The Euclid Alternative",
+ 23 => "The Cooper-Nowitzki Theorem",
+ 24 => "The Panty Piñata Polarization",
+ 25 => "The Lizard-Spock Expansion",
+ 26 => "The White Asparagus Triangulation",
+ 27 => "The Vartabedian Conundrum",
+ 28 => "The Bath Item Gift Hypothesis",
+ 29 => "The Killer Robot Instability",
+ 30 => "The Friendship Algorithm",
+ 31 => "The Financial Permeability",
+ 32 => "The Maternal Capacitance",
+ 33 => "The Cushion Saturation",
+ 34 => "The Terminator Decoupling",
+ 35 => "The Work Song Nanocluster",
+ 36 => "The Dead Hooker Juxtaposition",
+ 37 => "The Hofstadter Isotope",
+ 38 => "The Vegas Renormalization",
+ 39 => "The Classified Materials Turbulence",
+ 40 => "The Monopolar Expedition",
+
+ /* Season 3 */
+ 41 => "The Electric Can Opener Fluctuation",
+ 42 => "The Jiminy Conjecture",
+ 43 => "The Gothowitz Deviation",
+ 44 => "The Pirate Solution",
+ 45 => "The Creepy Candy Coating Corollary",
+ 46 => "The Cornhusker Vortex",
+ 47 => "The Guitarist Amplification",
+ 48 => "The Adhesive Duck Deficiency",
+ 49 => "The Vengeance Formulation",
+ 50 => "The Gorilla Experiment",
+ 51 => "The Maternal Congruence",
+ 52 => "The Psychic Vortex",
+ 53 => "The Bozeman Reaction",
+ 54 => "The Einstein Approximation",
+ 55 => "The Large Hadron Collision",
+ 56 => "The Excelsior Acquisition",
+ 57 => "The Precious Fragmentation",
+ 58 => "The Pants Alternative",
+ 59 => "The Wheaton Recurrence",
+ 60 => "The Spaghetti Catalyst",
+ 61 => "The Plimpton Stimulation",
+ 62 => "The Staircase Implementation",
+ 63 => "The Lunar Excitation",
+
+ /* Season 4 */
+ 64 => "The Robotic Manipulation",
+ 65 => "The Cruciferous Vegetable Amplification",
+ 66 => "The Zazzy Substitution",
+ 67 => "The Hot Troll Deviation",
+ 68 => "The Desperation Emanation",
+ 69 => "The Irish Pub Formulation",
+ 70 => "The Apology Insufficiency",
+ 71 => "The 21-Second Excitation",
+ 72 => "The Boyfriend Complexity",
+ 73 => "The Alien Parasite Hypothesis",
+ 74 => "The Justice League Recombination",
+ 75 => "The Bus Pants Utilization",
+ 76 => "The Love Car Displacement",
+ 77 => "The Thespian Catalyst",
+ 78 => "The Benefactor Factor",
+ 79 => "The Cohabitation Formulation",
+ 80 => "The Toast Derivation",
+ 81 => "The Prestidigitation Approximation",
+ 82 => "The Zarnecki Incursion",
+ 83 => "The Herb Garden Germination",
+ 84 => "The Agreement Dissection",
+ 85 => "The Wildebeest Implementation",
+ 86 => "The Engagement Reaction",
+ 87 => "The Roommate Transmogrification",
+
+ /* Season 5 */
+ 88 => "The Skank Reflex Analysis",
+ 89 => "The Infestation Hypothesis",
+ 90 => "The Pulled Groin Extrapolation",
+ 91 => "The Wiggly Finger Catalyst",
+ 92 => "The Russian Rocket Reaction",
+ 93 => "The Rhinitis Revelation",
+ 94 => "The Good Guy Fluctuation",
+ 95 => "The Isolation Permutation",
+ 96 => "The Ornithophobia Diffusion",
+ 97 => "The Flaming Spittoon Acquisition",
+ 98 => "The Speckerman Recurrence",
+ 99 => "The Shiny Trinket Maneuver",
+ 100 => "The Recombination Hypothesis",
+ 101 => "The Beta Test Initiation",
+ 102 => "The Friendship Contraction",
+ 103 => "The Vacation Solution",
+ 104 => "The Rothman Disintegration",
+ 105 => "The Werewolf Transformation",
+ 106 => "The Weekend Vortex",
+ 107 => "The Transporter Malfunction",
+ 108 => "The Hawking Excitation",
+ 109 => "The Stag Convergence",
+ 110 => "The Launch Acceleration",
+ 111 => "The Countdown Reflection",
+
+ /* Season 6 */
+ 112 => "The Date Night Variable",
+ 113 => "The Decoupling Fluctuation",
+ 114 => "The Higgs Boson Observation",
+ 115 => "The Re-Entry Minimization",
+ 116 => "The Holographic Excitation",
+ 117 => "The Extract Obliteration",
+ 118 => "The Habitation Configuration",
+ 119 => "The 43 Peculiarity",
+ 120 => "The Parking Spot Escalation",
+ 121 => "The Fish Guts Displacement",
+ 122 => "The Santa Simulation",
+ 123 => "The Egg Salad Equivalency",
+ 124 => "The Bakersfield Expedition",
+ 125 => "The Cooper/Kripke Inversion",
+ 126 => "The Spoiler Alert Segmentation",
+ 127 => "The Tangible Affection Proof",
+ 128 => "The Monster Isolation",
+ 129 => "The Contractual Obligation Implementation",
+ 130 => "The Closet Reconfiguration",
+ 131 => "The Tenure Turbulence",
+ 132 => "The Closure Alternative",
+ 133 => "The Proton Resurgence",
+ 134 => "The Love Spell Potential",
+ 135 => "The Bon Voyage Reaction",
+
+ /* Seasoon 7 */
+ 136 => "The Hofstadter Insufficiency",
+ 137 => "The Deception Verification",
+ 138 => "The Scavenger Vortex",
+ 139 => "The Raiders Minimization",
+ 140 => "The Workplace Proximity",
+ )
+ );
+
+// $serien['<span class="big-bang-theory"><span class="lower">The</span>'
+// . ' B<span class="i">i</span>g <span class="bang">Bang</span>'
+// . ' Theory</span> (de)'] = array(
+// 'channel' => 'ProSieben / 3+',
+// 'showtimes' => 'Mo–Fr 12:20 / Sa 18:55–20:15',
+// 'seen' => array(array(1, 9)),
+// 'last_seen' => mktime(11, 10, 0, 1, 12, 2011),
+// 'seasons' => array(17, 23, 23, 24, 13),
+// 'episode_list' => 'wiki:Liste_der_The-Big-Bang-Theory-Episoden',
+// 'episodes' => array(
+// 1 => "Penny und die Physiker (Pilot)",
+// 2 => "Chaos-Theorie (The Big Bran Hypothesis)",
+// 3 => "Erregungsfaktor: Null (The Fuzzy Boots Corollary)",
+// 4 => "Die Leuchtfisch-Idee (The Luminous Fish Effect)",
+// 5 => "Die andere Seite der Krawatte (The Hamburger Postulate)",
+// 6 => "Das Mittelerde-Paradigma (The Middle-Earth Paradigm)",
+// 7 => "Das Vorspeisen-Dilemma (The Dumpling Paradox)",
+// 8 => "Das Lalita-Problem (The Grasshopper Experiment)",
+// 9 => "Der Cooper-Hofstadter-Antagonismus (The Cooper-Hofstadter Polarization)",
+// 10 => "Loobenfelds Netz der Lügen (The Loobenfeld Decay)",
+// 11 => "Alles fließt (The Pancake Batter Anomaly)",
+// 12 => "Das Jerusalem-Projekt (The Jerusalem Duality)",
+// 13 => "Superbowl für Physiker (The Bat Jar Conjecture)",
+// 14 => "Die Zeitmaschine (The Nerdvana Annihilation)",
+// 15 => "Sheldon 2.0 (The Pork Chop Indeterminacy)",
+// 16 => "Die Erdnuss-Reaktion (The Peanut Reaction)",
+// 17 => "Schrödingers Katze (The Tangerine Factor)",
+// 18 => "Milch mit Valium (The Bad Fish Paradigm)",
+// 19 => "Sex mit der Erzfeindin (The Codpiece Topology)",
+// 20 => "Das Conan-Spiel (The Barbarian Sublimation)",
+// 21 => "Planet Bollywood (The Griffin Equivalency)",
+// 22 => "Homo Novus Automobilis (The Euclid Alternative)",
+// 23 => "Das Cooper-Nowitzki Theorem (The Cooper-Nowitzki Theorem)",
+// 24 => "Dessous auf der Oberleitung (The Panty Piñata Polarization)",
+// 25 => "Stein, Schere, Spock (The Lizard-Spock Expansion)",
+// 26 => "Unflotter Dreier (The White Asparagus Triangulation)",
+// 27 => "Kleines Gefäß mit Honig (The Vartabedian Conundrum)",
+// 28 => "Die Geschenk-Hypothese (The Bath Item Gift Hypothesis)",
+// 29 => "Monte, der Roboter (The Killer Robot Instability)",
+// 30 => "Der Freundschafts-Algorithmus (The Friendship Algorithm)",
+// 31 => "In der Kreditklemme (The Financial Permeability)",
+// 32 => "Die Streichelmaschine (The Maternal Capacitance)",
+// 33 => "Die Kissen-Katastrophe (The Cushion Saturation)",
+// 34 => "Das Placebo-Bier (The Terminator Decoupling)",
+// 35 => "Business im Wohnzimmer (The Work Song Nanocluster)",
+// 36 => "Der Kampf der Bienenköniginnen (The Dead Hooker Juxtaposition)",
+// 37 => "Der Wolowitz-Koeffizient (The Hofstadter Isotope)",
+// 38 => "Die Las-Vegas-Kur (The Vegas Renormalization)",
+// 39 => "Die Weltraumtoilette (The Classified Materials Turbulence)",
+// 40 => "Drei Monate im Eis (The Monopolar Expedition)",
+// 41 => "Der Nordpol-Plan (The Electric Can Opener Fluctuation)",
+// 42 => "Die Grillenwette (The Jiminy Conjecture)",
+// 43 => "Sex oder Pralinen (The Gothowitz Deviation)",
+// 44 => "Für ihn oder mit ihm (The Pirate Solution)",
+// 45 => "Der Mann, der seine Omi liebte (The Creepy Candy Coating Corollary)",
+// 46 => "Football für Nerds (The Cornhusker Vortex)",
+// 47 => "Der Gitarrist auf der Couch (The Guitarist Amplification)",
+// 48 => "Das Suppentattoo (The Adhesive Duck Deficiency)",
+// 49 => "Die Racheformel (The Vengeance Formulation)",
+// 50 => "Das Gorilla-Projekt (The Gorilla Experiment)",
+// 51 => "Mädels an der Bar (The Maternal Congruence)",
+// 52 => "Howards Phasen (The Psychic Vortex)",
+// 53 => "Terror in der Stadt der Rosen (The Bozeman Reaction)",
+// 54 => "Fast wie Einstein (The Einstein Approximation)",
+// 55 => "Freiflug nach Genf (The Large Hadron Collision)",
+// 56 => "Sheldon pro se (The Excelsior Acquisition)",
+// 57 => "Die Herren des Rings (The Precious Fragmentation)",
+// 58 => "Die dunkle Seite des Mondes (The Pants Alternative)",
+// 59 => "Das L-Wort (The Wheaton Recurrence)",
+// 60 => "Spaghetti mit Würstchen (The Spaghetti Catalyst)",
+// 61 => "Vierer ohne Sheldon (The Plimpton Stimulation)",
+// 62 => "Die Wahrheit über den Fahrstuhl (The Staircase Implementation)",
+// 63 => "Nie mehr dumme Typen (The Lunar Excitation)",
+// 64 => "31 Liebhaber, aufgerundet (The Robotic Manipulation)",
+// 65 => "Der sicherste Ort der Welt (The Cruciferous Vegetable Amplification)",
+// 66 => "Paradoxe Psychologie (The Zazzy Substitution)",
+// 67 => "Und jetzt mit Zunge (The Hot Troll Deviation)",
+// 68 => "Der Gestank der Verzweiflung (The Desperation Emanation)",
+// 69 => "Finger weg von meiner Schwester (The Irish Pub Formulation)",
+// 70 => "Besuch vom FBI (The Apology Insufficiency)",
+// 71 => "21 Sekunden (The 21-Second Excitation)",
+// 72 => "Der falsche richtige Freund (The Boyfriend Complexity)",
+// 73 => "Die animalische Amy (The Alien Parasite Hypothesis)",
+// 74 => "Der peinliche Kuss (The Justice League Recombination)",
+// 75 => "Die Bushose (The Bus Pants Utilization)",
+// 76 => "Die neutrale Zone (The Love Car Displacement)",
+// 77 => "Ein Traum von Bollywood (The Thespian Catalyst)",
+// 78 => "Der Mann der Stunde (The Benefactor Factor)",
+// 79 => "Ich bin nicht deine Mutter! (The Cohabitation Formulation)",
+// 80 => "Das Juwel von Mumbai (The Toast Derivation)",
+// 81 => "Herz zwei (The Prestidigitation Approximation)",
+// 82 => "Der Zarnecki-Feldzug (The Zarnecki Incursion)",
+// 83 => "Sag’s nicht weiter! (The Herb Garden Germination)",
+// 84 => "Souvlaki statt Pizza (The Agreement Dissection)",
+// 85 => "Die Antilope im Curry (The Wildebeest Implementation)",
+// 86 => "Hochzeit und Herzinfarkt (The Engagement Reaction)",
+// 87 => "Männertausch (The Roommate Transmogrification)",
+
+// // 88 => "The Skank Reflex Analysis",
+// // 89 => "The Infestation Hypothesis",
+// // 90 => "The Pulled Groin Extrapolation",
+// // 91 => "The Wiggly Finger Catalyst",
+// // 92 => "The Russian Rocket Reaction",
+// // 93 => "The Rhinitis Revelation",
+// // 94 => "The Good Guy Fluctuation",
+// // 95 => "The Isolation Permutation",
+// // 96 => "The Ornithophobia Diffusion",
+// // 97 => "The Flaming Spittoon Acquisition",
+// // 98 => "The Speckerman Recurrence",
+// // 99 => "The Shiny Trinket Maneuver",
+// // 100 => "The Recombination Hypothesis",
+// )
+// );
Index: live/media/video/series/includes/remington-steele.php
===================================================================
--- live/media/video/series/includes/remington-steele.php (revision 0)
+++ live/media/video/series/includes/remington-steele.php (revision 198)
@@ -0,0 +1,111 @@
+<?php
+
+$remington_steele = array(
+// 'ignore' => true,
+ 'channel' => 'online',
+// 'showtimes' => 'Mi–Fr 21:00',
+// 'seen' => array(array(1, 2)),
+// 'last_seen' => mktime(21, 0, 0, 9, 8, 2011),
+ 'seasons' => array(22, 22, 22, 22, 6),
+ 'episodes' => array(
+ 1 => "License to Steele",
+ 2 => "Tempered Steele",
+ 3 => "Steele Waters Run Deep",
+ 4 => "Signed, Steeled, & Delivered",
+ 5 => "Thou Shalt Not Steele",
+ 6 => "Steele Belted",
+ 7 => "Etched in Steele",
+ 8 => "You're Steele the One for Me",
+ 9 => "In the Steele of the Night",
+ 10 => "Steele Trap",
+ 11 => "Steeling the Show",
+ 12 => "Steele Flying High",
+ 13 => "A Good Night's Steele",
+ 14 => "Hearts of Steele",
+ 15 => "To Stop a Steele",
+ 16 => "Steele Crazy After All These Years",
+ 17 => "Steele Among the Living",
+ 18 => "Steele in the News",
+ 19 => "Vintage Steele",
+ 20 => "Steele's Gold",
+ 21 => "Sting of Steele",
+ 22 => "Steele in Circulation",
+
+ 23 => "Steele Away with Me: Part 1",
+ 24 => "Steele Away with Me: Part 2",
+ 25 => "Red Holt Steele",
+ 26 => "Altared Steele",
+ 27 => "Steele Framed",
+ 28 => "A Steele at Any Price",
+ 29 => "Love Among the Steele",
+ 30 => "Scene Steelers",
+ 31 => "Steele Knuckles and Glass Jaws",
+ 32 => "My Fair Steele",
+ 33 => "Steele Threads",
+ 34 => "Steele Eligible",
+ 35 => "High Flying Steele",
+ 36 => "Blood Is Thicker Than Steele",
+ 37 => "Steele Sweet on You",
+ 38 => "Elegy in Steele",
+ 39 => "Small Town Steele",
+ 40 => "Molten Steele",
+ 41 => "Dreams of Steele",
+ 42 => "Woman of Steele",
+ 43 => "Hounded Steele",
+ 44 => "Elementary Steele",
+
+ 45 => "Steele at It",
+ 46 => "Lofty Steele",
+ 47 => "Maltese Steele",
+ 48 => "Second Base Steele",
+ 49 => "Blue Blooded Steele",
+ 50 => "Steele Your Heart Away",
+ 51 => "A Pocketful of Steele",
+ 52 => "Puzzled Steele",
+ 53 => "Cast in Steele",
+ 54 => "Breath of Steele",
+ 55 => "Let's Steele a Plot",
+ 56 => "Gourmet Steele",
+ 57 => "Stronger Than Steele",
+ 58 => "Have I Got a Steele For You",
+ 59 => "Springtime for Steele",
+ 60 => "Steele in the Family",
+ 61 => "Diced Steele",
+ 62 => "Now You Steele It, Now You Don't",
+ 63 => "Illustrated Steele",
+ 64 => "Steele in the Chips",
+ 65 => "Steele Trying",
+ 66 => "Steele of Approval",
+
+ 67 => "Steele Searching: Part 1",
+ 68 => "Steele Searching: Part 2",
+ 69 => "Steele Blushing",
+ 70 => "Grappling Steele",
+ 71 => "Forged Steele",
+ 72 => "Corn Fed Steele",
+ 73 => "Premium Steele",
+ 74 => "Coffee, Tea, or Steele",
+ 75 => "Dancer, Prancer, Donner and Steele",
+ 76 => "Steele on the Air",
+ 77 => "Steele, Inc.",
+ 78 => "Steele Spawning",
+ 79 => "Suburban Steele",
+ 80 => "Santa Claus Is Coming to Steele",
+ 81 => "Steele Blue Yonder",
+ 82 => "Sensitive Steele",
+ 83 => "Steele in the Spotlight",
+ 84 => "Steele at Your Service",
+ 85 => "Steele in the Running",
+ 86 => "Beg, Borrow, or Steele",
+ 87 => "Steele Alive and Kicking",
+ 88 => "Bonds of Steele",
+
+ 89 => "The Steele That Wouldn't Die: Part 1",
+ 90 => "The Steele That Wouldn't Die: Part 2",
+ 91 => "Steele Hanging in There: Part 1",
+ 92 => "Steele Hanging in There: Part 2",
+ 93 => "Steeled with a Kiss: Part 1",
+ 94 => "Steeled with a Kiss: Part 2"
+ ),
+ 'episode_list' => 'wiki:en:List_of_Remington_Steele_episodes'
+ );
\ No newline at end of file
Index: live/media/video/series/includes/house.php
===================================================================
--- live/media/video/series/includes/house.php (revision 0)
+++ live/media/video/series/includes/house.php (revision 198)
@@ -0,0 +1,336 @@
+<?php
+
+$house = array(
+// 'ignore' => true,
+ 'channel' => 'online',
+// 'showtimes' => 'Mo-Fr 12:20',
+ 'seen' => array(array(1, 9), array(12, 13), array(37, 46), 85),
+// 'last_seen' => mktime(11, 20, 0, 3, 31, 2011),
+ 'seasons' => array(22, 24, 24, 16, 24, 21, 23, 22),
+ 'episodes' => array(
+ 1 => "Pilot",
+ 2 => "Paternity",
+ 3 => "Occam’s Razor",
+ 4 => "Maternity",
+ 5 => "Damned If You Do",
+ 6 => "The Socratic Method",
+ 7 => "Fidelity",
+ 8 => "Poison",
+ 9 => "DNR",
+ 10 => "Histories",
+ 11 => "Detox",
+ 12 => "Sports Medicine",
+ 13 => "Cursed",
+ 14 => "Control",
+ 15 => "Mob Rules",
+ 16 => "Heavy",
+ 17 => "Role Model",
+ 18 => "Babies & Bathwater",
+ 19 => "Kids",
+ 20 => "Love Hurts",
+ 21 => "Three Stories",
+ 22 => "Honeymoon",
+
+ 23 => "Acceptance",
+ 24 => "Autopsy",
+ 25 => "Humpty Dumpty",
+ 26 => "TB or not TB",
+ 27 => "Daddy’s Boy",
+ 28 => "Spin",
+ 29 => "Hunting",
+ 30 => "The Mistake",
+ 31 => "Deception",
+ 32 => "Failure to Communicate",
+ 33 => "Need to Know",
+ 34 => "Distractions",
+ 35 => "Skin Deep",
+ 36 => "Sex Kills",
+ 37 => "Clueless",
+ 38 => "Safe",
+ 39 => "All In",
+ 40 => "Sleeping Dogs Lie",
+ 41 => "House vs. God",
+ 42 => "Euphoria: Part 1",
+ 43 => "Euphoria: Part 2",
+ 44 => "Forever",
+ 45 => "Who's Your Daddy?",
+ 46 => "No Reason",
+
+ 47 => "Meaning",
+ 48 => "Cane and Able",
+ 49 => "Informed Consent",
+ 50 => "Lines in the Sand",
+ 51 => "Fools for Love",
+ 52 => "Que Será Será",
+ 53 => "Son of a Coma Guy",
+ 54 => "Whac-a-Mole",
+ 55 => "Finding Judas",
+ 56 => "Merry Little Christmas",
+ 57 => "Words and Deeds",
+ 58 => "One Day, One Room",
+ 59 => "Needle in a Haystack",
+ 60 => "Insensitive",
+ 61 => "Half-Wit",
+ 62 => "Top Secret",
+ 63 => "Fetal Position",
+ 64 => "Airborne",
+ 65 => "Act Your Age",
+ 66 => "House Training",
+ 67 => "Family",
+ 68 => "Resignation",
+ 69 => "The Jerk",
+ 70 => "Human Error",
+
+ 71 => "Alone",
+ 72 => "The Right Stuff",
+ 73 => "97 Seconds",
+ 74 => "Guardian Angels",
+ 75 => "Mirror, Mirror",
+ 76 => "Whatever It Takes",
+ 77 => "Ugly",
+ 78 => "You Don’t Want to Know",
+ 79 => "Games",
+ 80 => "It’s a Wonderful Lie",
+ 81 => "Frozen",
+ 82 => "Don’t Ever Change",
+ 83 => "No More Mr. Nice Guy",
+ 84 => "Living the Dream",
+ 85 => "House's Head (1)",
+ 86 => "Wilson’s Heart (2)",
+
+ 87 => "Dying Changes Everything (Sterben verändert alles)",
+ 88 => "Not Cancer (Krebs oder nicht?)",
+ 89 => "Adverse Events",
+ 90 => "Birthmarks",
+ 91 => "Lucky Thirteen",
+ 92 => "Joy",
+ 93 => "The Itch",
+ 94 => "Emancipation",
+ 95 => "Last Resort",
+ 96 => "Let Them Eat Cake",
+ 97 => "Joy to the World",
+ 98 => "Painless",
+ 99 => "Big Baby",
+ 100 => "The Greater Good",
+ 101 => "Unfaithful",
+ 102 => "The Softer Side",
+ 103 => "The Social Contract",
+ 104 => "Here Kitty",
+ 105 => "Locked In",
+ 106 => "Simple Explanation",
+ 107 => "Saviors",
+ 108 => "House Divided",
+ 109 => "Under My Skin",
+ 110 => "Both Sides Now",
+
+ 111 => "Broken",
+ 112 => "Epic Fail",
+ 113 => "The Tyrant",
+ 114 => "Instant Karma",
+ 115 => "Brave Heart",
+ 116 => "Known Unknowns",
+ 117 => "Teamwork",
+ 118 => "Ignorance Is Bliss",
+ 119 => "Wilson",
+ 120 => "The Down Low",
+ 121 => "Remorse",
+ 122 => "Moving the Chains",
+ 123 => "5 to 9",
+ 124 => "Private Lives",
+ 125 => "Black Hole",
+ 126 => "Lockdown",
+ 127 => "Knight Fall",
+ 128 => "Open and Shut",
+ 129 => "The Choice",
+ 130 => "Baggage",
+ 131 => "Help Me",
+
+ 132 => "Now What?",
+ 133 => "Selfish",
+ 134 => "Unwritten",
+ 135 => "Massage Therapy",
+ 136 => "Unplanned Parenthood",
+ 137 => "Office Politics",
+ 138 => "A Pox on Our House",
+ 139 => "Small Sacrifices",
+ 140 => "Larger Than Life",
+ 141 => "Carrot or Stick",
+ 142 => "Family Practice",
+ 143 => "You Must Remember This",
+ 144 => "Two Stories",
+ 145 => "Recession Proof",
+ 146 => "Bombshells",
+ 147 => "Out of the Chute",
+ 148 => "Fall From Grace",
+ 149 => "The Dig",
+ 150 => "Last Temptation",
+ 151 => "Changes",
+ 152 => "The Fix",
+ 153 => "After Hours",
+ 154 => "Moving On",
+
+ 155 => "Twenty Vicodin",
+ 156 => "Transplant",
+ 157 => "Charity Case",
+ 158 => "Risky Business",
+ 159 => "The Confession",
+ 160 => "Parents",
+ 161 => "Dead & Buried",
+ 162 => "Perils of Paranoia",
+ 163 => "Better Half",
+ 164 => "Runaways",
+ 165 => "Nobody's Fault",
+ 166 => "Chase",
+ 167 => "Man of the House",
+ 168 => "Love Is Blind",
+ 169 => "Blowing the Whistle",
+ 170 => "Gut Check",
+ 171 => "We Need the Eggs",
+ 172 => "Body and Soul",
+ 173 => "The C-Word",
+ 174 => "Post Mortem",
+ 175 => "Holding On",
+ 176 => "Everybody Dies + Bonus",
+
+),
+ 'episode_list' => 'wiki:en:List_of_House_episodes'
+);
+
+$house_de = array(
+ 'ignore' => true,
+// 'channel' => 'ORF1/RTL/SF2',
+ 'channel' => 'online',
+// 'showtimes' => 'diverse',
+ 'seen' => array(array(1, 5), array(7, 11)),
+ 'seasons' => array(22, 24, 24, 16, 24, 22, 23, 22),
+ 'episode_list' => 'wiki:Liste_der_Dr.-House-Episoden',
+ 'episodes' => array(
+ 1 => "Schmerzensgrenzen (Pilot)",
+ 2 => "Falsche Geschichte (Paternity)",
+ 3 => "Das Ende danach? (Occams Razor)",
+ 4 => "Nichts hilft (Maternity)",
+ 5 => "Nur die Braut Christi? (Damned If You Do)",
+ 6 => "Schizophren? (The Socratic Method)",
+ 7 => "Fremd- und nicht gut gegangen (Fidelity)",
+ 8 => "Geiz ist Gift (Poison)",
+ 9 => "Leben wider Willen (DNR)",
+ 10 => "Letzte Suche (Histories)",
+ 11 => "Tod aus der Wand (Detox)",
+ 12 => "Schlechter Boden (Sports Medicine)",
+ 13 => "Vaterfluch (Cursed)",
+ 14 => "Schlank und krank (Control)",
+ 15 => "Solche Leute bitte nicht (Mob Rules)",
+ 16 => "Schönheitsirreale (Heavy)",
+ 17 => "Versteckte Wahrheit (Role Model)",
+ 18 => "Verluste (Babies and Bathwater)",
+ 19 => "Epidemie (Kids)",
+ 20 => "Liebeshiebe (Love Hurts)",
+ 21 => "Drei Beine (Three Stories)",
+ 22 => "Risiken (The Honeymoon)",
+
+ 23 => "Ihr, ich und Hippokrates (Acceptance)",
+ 24 => "Autopsie (Autopsy)",
+ 25 => "Irrtum (Humpty Dumpty)",
+ 26 => "Mehr Sein als Schein (TB or Not TB)",
+ 27 => "Söhne & Väter (Daddy’s Boy)",
+ 28 => "Tanz ums Feuer (Spin)",
+ 29 => "Auf der Jagd (Hunting)",
+ 30 => "Fehlverhalten (The Mistake)",
+ 31 => "Lug und Trug (Deception)",
+ 32 => "Ferndiagnose (Failure to Communicate)",
+ 33 => "Absagen (Need to Know)",
+ 34 => "Resultate mit Geduld (Distractions)",
+ 35 => "Kratzer im Lack (Skin Deep)",
+ 36 => "Sex wird unterschätzt (Sex Kills)",
+ 37 => "Böses Spiel (Clueless)",
+ 38 => "Sicher genug? (Safe)",
+ 39 => "In Not (All In)",
+ 40 => "Wirtswechsel (Sleeping Dogs Lie)",
+ 41 => "Wunderland (House vs. God)",
+ 42 => "Schlechter Scherz – Teil 1 (Euphoria (1))",
+ 43 => "Schlechter Scherz – Teil 2 (Euphoria (2))",
+ 44 => "Ein Problem ist nur das Leben (Forever)",
+ 45 => "Wer wird Vater? (Who’s Your Daddy?)",
+ 46 => "Widerspiel (No Reason)",
+
+ 47 => "Einer gegen alle (Meaning)",
+ 48 => "Zu den Sternen? (Cane & Able)",
+ 49 => "Heimgang (Informed Consent)",
+ 50 => "Sandkastenspiele (Lines in the Sand)",
+ 51 => "Konsequenzen (Fools for Love)",
+ 52 => "Que Será Será (Que Será Será)",
+ 53 => "Koma-Mann & Sohn (Son of a Coma Guy)",
+ 54 => "Zwietracht (Whack-a-Mole)",
+ 55 => "Judas? (Finding Judas)",
+ 56 => "Unfrohes Fest (Merry Little Christmas)",
+ 57 => "Dr. Cuddys große Lüge (Words and Deeds)",
+ 58 => "Zwangsarbeit (One Day, One Room)",
+ 59 => "Wie eine Nadel im Heuhaufen (Needle in a Haystack)",
+ 60 => "Unempfindlich (Insensitive)",
+ 61 => "Heiligt der Zweck jedes Mittel? (Half-Wit)",
+ 62 => "Streng geheim (Top Secret)",
+ 63 => "Erster Kontakt (Fetal Position)",
+ 64 => "Horrorflug (Airborne)",
+ 65 => "Dem Alter entsprechend? (Act Your Age)",
+ 66 => "Sündenbock mit Freunden (House Training)",
+ 67 => "Auf der Kippe (Family)",
+ 68 => "Kündigung (Resignation)",
+ 69 => "Es nerven Groß und Klein (The Jerk)",
+ 70 => "Menschen machen Fehler (Human Error)",
+
+ 71 => "Allein (Alone)",
+ 72 => "Der Stoff, aus dem die Heldin ist (The Right Stuff)",
+ 73 => "97 Sekunden (97 Seconds)",
+ 74 => "Schauplatz der Merkwürdigkeiten (Guardian Angels)",
+ 75 => "Spieglein, Spieglein … (Mirror, Mirror)",
+ 76 => "Auf Biegen und Brechen (Whatever It Takes)",
+ 77 => "Hässlich (Ugly)",
+ 78 => "Blut und Spiele (You Don’t Want to Know)",
+ 79 => "Zu vieles kommt in Frage (Games)",
+ 80 => "Ist das Lügen nicht schön? (It’s a Wonderful Lie)",
+ 81 => "Cate aus dem Eis (Frozen)",
+ 82 => "Schalom, Dr. House? (Don’t Ever Change)",
+ 83 => "Krankhaft nett (No More Mr. Nice Guy)",
+ 84 => "Folgenreich (Living the Dream)",
+ 85 => "Im Kopf von House – Teil 1 (House’s Head (1))",
+ 86 => "Im Herzen von Wilson – Teil 2 (Wilson’s Heart (2))",
+
+ 87 => "Sterben verändert alles (Dying Changes Everything)",
+ 88 => "Krebs oder nicht? (Not Cancer)",
+ 89 => "Anders als erhofft (Adverse Events)",
+ 90 => "Unerwünschte Herkunft (Birthmarks)",
+ 92 => "Endlich Mutter? (Joy)",
+
+ 130 => "Im Nein liegt die Wahrheit (The Choice)",
+ 131 => "Identitäten (Baggage)",
+ 132 => "Hilf mir! (Help Me)",
+
+ 135 => "Mit anderen Worten (Unwritten)",
+ 140 => "Die Last der Lügen (Small Sacrifices)",
+ 141 => "Mutter aus heiterer Hölle (Larger Than Life)",
+ 142 => "Großer Mann, was nun? (Carrot or Stick)",
+ 143 => "Spießrutenlauf (Family Practice)",
+ 144 => "Denke immer daran (You Must Remember This)",
+ 145 => "Fehlerkultur (Two Stories)",
+ 146 => "Beziehungsweise (Recession Proof)",
+ 147 => "Schlag auf Schlag (Bombshells)",
+ 148 => "Schutzlos (Out of the Chute)",
+ 149 => "Ungnade (Fall From Grace)",
+ 150 => "Verschüttete Wahrheiten (The Dig)",
+ 151 => "Masters' letzte Versuchung (Last Temptation)",
+ 152 => "Schneller als die Moral (Changes)",
+ 153 => "Unheilsgeschichten (The Fix)",
+ 154 => "Ärztekummer (After Hours)",
+ 155 => "Entzwei (Moving On)",
+
+// 156 => "Twenty Vicodin",
+// 157 => "Transplant",
+// 158 => "Charity Case",
+// 159 => "Risky Business",
+// 160 => "The Confession",
+// 161 => "Parents",
+// 162 => "Dead & Buried",
+// 163 => "Perils of Paranoia",
+// 164 => "Better Half",
+ )
+);
Index: live/media/video/series/includes/heroes.php
===================================================================
--- live/media/video/series/includes/heroes.php (revision 0)
+++ live/media/video/series/includes/heroes.php (revision 198)
@@ -0,0 +1,93 @@
+<?php
+
+$heroes = array(
+// 'ignore' => true,
+ 'channel' => 'online',
+// 'showtimes' => 'Di 04:57',
+ 'seen' => array(array(1, 10)),
+// 'last_seen' => mktime(3, 52, 0, 7, 5, 2011),
+ 'seasons' => array(23, 11, 25, 19),
+ 'episode_list' => 'wiki:Liste_der_Heroes-Episoden',
+ 'episodes' => array(
+ 1 => "Genesis",
+ 2 => "Kein Blick zurück (Don't Look Back)",
+ 3 => "Ein gewaltiger Schritt (One Giant Leap)",
+ 4 => "Kollision (Collision)",
+ 5 => "Botschaft aus der Zukunft (Hiros)",
+ 6 => "Das zweite Gesicht (Better Halves)",
+ 7 => "Nichts zu verbergen (Nothing to Hide)",
+ 8 => "Sieben Minuten bis Mitternacht (Seven Minutes to Midnight)",
+ 9 => "Heimkehr (Homecoming)",
+ 10 => "Sechs Monate zuvor (Six Months Ago)",
+ 11 => "Ausgelöscht (Fallout)",
+ 12 => "Gottesgabe (Godsend)",
+ 13 => "Kontrollverlust (The Fix)",
+ 14 => "Ablenkungen (Distractions)",
+ 15 => "Flucht (Run!)",
+ 16 => "Unerwartet (Unexpected)",
+ 17 => "Die Firma (Company Man)",
+ 18 => "Parasit (Parasite)",
+ 19 => "0,07 Prozent (0.07 %)",
+ 20 => "Fünf Jahre später (Five Years Gone)",
+ 21 => "Der Schwierige Teil (The Hard Part)",
+ 22 => "Erdrutsch (Landslide)",
+ 23 => "Wie man einen explodierenden Mann aufhält (How to Stop an Exploding Man)",
+
+ 24 => "Vier Monate später … (Four Months Later …)",
+ 25 => "Eidechsen (Lizards)",
+ 26 => "Verwandte Seelen (Kindred)",
+ 27 => "Der Trost von Fremden (The Kindness of Strangers)",
+ 28 => "Kampf oder Flucht (Fight or Flight)",
+ 29 => "Grenzen (The Line)",
+ 30 => "Zeitenwanderer (Out of Time)",
+ 31 => "Vier Monate zuvor … (Four Months Ago …)",
+ 32 => "Lektionen (Cautionary Tales)",
+ 33 => "Im Bund mit dem Bösen (Truth & Consequences)",
+ 34 => "Machtlos (Powerless)",
+
+// 35 => "Die Wiederkunft (The Second Coming)",
+// 36 => "Der Schmetterlingseffekt (The Butterfly Effect)",
+// 37 => "Einer von uns, einer von ihnen (One of Us, One of Them)",
+// 38 => "Tödlicher Hunger (I Am Become Death)",
+// 39 => "Engel und Monster (Angels and Monsters)",
+// 40 => "Marionetten (Dying of the Light)",
+// 41 => "Eris quod sum (Eris Quod Sum)",
+// 42 => "Schurken (Villains)",
+// 43 => "Zeit der Schatten (It’s Coming)",
+// 44 => "Die Sonnenfinsternis, Teil 1 (The Eclipse, Part 1)",
+// 45 => "Die Sonnenfinsternis, Teil 2 (The Eclipse, Part 2)",
+// 46 => "Vater unser (Our Father)",
+// 47 => "Feuer (Dual)",
+// 48 => "Unmittelbare Gefahr (A Clear and Present Danger)",
+// 49 => "Blut und Vertrauen (Trust and Blood)",
+// 50 => "Gebäude 26 (Building 26)",
+// 51 => "Kalter Krieg (Cold Wars)",
+// 52 => "Bloßgestellt (Exposed)",
+// 53 => "Wurzel des Bösen (Shades of Gray)",
+// 54 => "Hauch des Todes (Cold Snap)",
+// 55 => "Zuflucht (Into Asylum)",
+// 56 => "Verwandlungen (Turn and Face the Strange)",
+// 57 => "1961 (1961)",
+// 58 => "Ich bin Sylar (I Am Sylar)",
+// 59 => "Unsichtbare Bedrohung (An Invisible Thread)",
+// 60 => "Neubeginn, Teil 1 (Orientation, Part 1)",
+// 61 => "Neubeginn, Teil 2 (Orientation, Part 2)",
+// 62 => "Tinte (Ink)",
+// 63 => "Innerer Frieden (Acceptance)",
+// 64 => "Besessen (Hysterical Blindness)",
+// 65 => "Tabula Rasa (Tabula Rasa)",
+// 66 => "Seltsame Attraktoren (Strange Attractors)",
+// 67 => "Es war einmal in Texas (Once Upon a Time in Texas)",
+// 68 => "Schattenboxen (Shadowboxing)",
+// 69 => "Meines Bruders Hüter (Brother’s Keeper)",
+// 70 => "Familienfest (Thanksgiving)",
+// 71 => "Die fünfte Phase (The Fifth Stage)",
+// 72 => "Das Tal der Hoffnung (Upon This Rock)",
+// 73 => "Zerstörte Brücken (Let It Bleed)",
+// 74 => "Rettungsmission (Close to You)",
+ 75 => "Verlorene Liebe (Pass/Fail)",
+ 76 => "Die Kunst der Täuschung (The Art of Deception)",
+ 77 => "Die Mauer (The Wall)",
+ 78 => "Der letzte Vorhang (Brave New World)"
+ )
+);
\ No newline at end of file
Index: live/media/video/series/includes/psych.php
===================================================================
--- live/media/video/series/includes/psych.php (revision 0)
+++ live/media/video/series/includes/psych.php (revision 198)
@@ -0,0 +1,55 @@
+<?php
+
+$psych = array(
+// 'ignore' => true,
+ 'channel' => 'online',
+// 'showtimes' => 'So 07:00',
+ 'seen' => array(array(1, 14)),
+// 'last_seen' => mktime(21, 10, 0, 9, 18, 2011),
+ 'seasons' => array(15, 16, 16, 16, 16, 16, 14),
+ 'episodes' => array(
+ 1 => "Pilot (Mit einer Ausrede fängt es an)",
+ 2 => "Spellingg Bee (So spannend kann ein Buchstabierwettbewerb sein!)",
+ 3 => "Speak Now Or Forever Hold Your Piece (Man möge jetzt sprechen … oder für immer schweigen)",
+ 4 => "Woman Seeking Dead Husband – Smokers Okay, No Pets (Attraktive Frau sucht toten Mann zwecks Geldanlage)",
+ 5 => "9 Lives (Katze krallt sich Killer?)",
+ 6 => "Weekend Warriors (Da möchte man in Frieden Bürgerkrieg spielen …)",
+ 7 => "Who Ya Gonna Call? (Ein Geschlechterkampf der etwas anderen Art)",
+ 8 => "Shawn Vs. The Red Phantom (Shawn gegen „Das Rote Phantom“)",
+ 9 => "Forget Me Not (Tiere, Menschen, Endstationen)",
+ 10 => "From the Earth to Starbucks",
+ 11 => "He Loves Me, He Loves Me Not, He Loves Me, Oops He's Dead",
+ 12 => "Cloudy... With a Chance of Murder",
+ 13 => "Game, Set... Muuurder?",
+ 14 => 'Pokerface gegen Pokerface (Poker? I Barely Know Her)',
+ 15 => 'Zimmer 413: Studentinnen des Todes (Scary Sherry: Bianca’s Toast)',
+
+ 16 => 'Wer sucht heim den Star, der sich für super hält? (American Duos)',
+ 17 => 'Waren sie zur Tatzeit bereits ausgestorben? (Sixty Five Million Years Off)',
+ 18 => 'Duell der Hellseher (Psy Vs. Psy)',
+ 19 => 'Pimp My Psych (Zero To Murder In Sixty Seconds)',
+ 20 => 'Pferdefüße beim Pferderennen (And Down The Stretch Comes Murder)',
+
+ 23 => "Kinder sind unsere Zukunft … unsere steinreiche Zukunft!"
+ . " (Rob-A-Bye Baby)",
+ 24 => "Kopfgeldjägereien (Bounty Hunters!)",
+
+ 34 => "Wann und wie gehen Draufgänger drauf? (Daredevils!)",
+ 35 => "Das größte Abenteuer in der Geschichte des Farbfernsehens"
+ . " (The Greatest Adventure in the History of Basic Cable)",
+ 36 => "Schwamm drunter und drüber? (Disco Didn’t Die. It Was Murdered!)",
+ 37 => "There Might Be Blood (Verwerfliche Verwerfungen)",
+ 38 => "Derby Talk (Talk Derby to Me)",
+ 39 => "Gus Walks Into a Bank (Als Gus eine Bank betritt …)",
+ 40 => "Es begab sich aber zu der Zeit … viel zu viel! (Christmas Joy)",
+ 41 => "Gemordet wird immer (Six Feet Under the Sea)",
+ 42 => "Böser, böser Lassie (Lassie Did a Bad, Bad Thing)",
+ 43 => "Feuer mit Feuer (Earth, Wind and… Wait for It)",
+ 44 => "Wofür braucht ein Toter auch zwei Füße?"
+ . " (Any Given Friday Night at 10pm, 9pm Central)",
+ 45 => "Wahrere Lügen (Truer Lies)",
+ 46 => "Dienstag, der 17. (Tuesday the 17th)",
+ 47 => "Ein Abend mit dem geheimnisvollen Mr. Yang (An Evening with Mr. Yang)",
+ ),
+ 'episode_list' => 'wiki:Liste_der_Episoden_von_Psych'
+);
Index: live/media/video/series/includes/numb3rs.php
===================================================================
--- live/media/video/series/includes/numb3rs.php (revision 0)
+++ live/media/video/series/includes/numb3rs.php (revision 198)
@@ -0,0 +1,271 @@
+<?php
+
+$numb3rs = array(
+// 'ignore' => true,
+ 'channel' => 'online',
+// 'showtimes' => 'Mi 00:35',
+ 'seen' => array(array(1, 15)),
+// 'last_seen' => mktime(21, 15, 0, 6, 5, 2011),
+ 'seasons' => array(13, 24, 24, 18, 23, 16),
+ 'episode_list' => 'wiki:en:List_of_Numb3rs_episodes',
+ 'episodes' => array(
+ 1 => "Pilot",
+ 2 => "Uncertainty Principle",
+ 3 => "Vector",
+ 4 => "Structural Corruption",
+ 5 => "Prime Suspect",
+ 6 => "Sabotage",
+ 7 => "Counterfeit Reality",
+ 8 => "Identity Crisis",
+ 9 => "Sniper Zero",
+ 10 => "Dirty Bomb",
+ 11 => "Sacrifice",
+ 12 => "Noisy Edge",
+ 13 => "Man Hunt",
+
+ 14 => "Judgment Call",
+ 15 => "Better or Worse",
+ 16 => "Obsession",
+ 17 => "Calculated Risk",
+ 18 => "Assassin",
+ 19 => "Soft Target",
+ 20 => "Convergence",
+ 21 => "In Plain Sight",
+ 22 => "Toxin",
+ 23 => "Bones of Contention",
+ 24 => "Scorched",
+ 25 => "The OG",
+ 26 => "Double Down",
+ 27 => "Harvest",
+ 28 => "The Running Man",
+ 29 => "Protest",
+ 30 => "Mind Games",
+ 31 => "All´s Fair",
+ 32 => "Dark Matter",
+ 33 => "Guns and Roses",
+ 34 => "Rampage",
+ 35 => "Backscatter",
+ 36 => "Undercurrents",
+ 37 => "Hot Shot",
+
+ 38 => "Spree",
+ 39 => "Two Daughters",
+ 40 => "Provenance",
+ 41 => "The Mole",
+ 42 => "Traffic",
+ 43 => "Longshot",
+ 44 => "Blackout",
+ 45 => "Hardball",
+ 46 => "Waste Not",
+ 47 => "Brutus",
+ 48 => "Killer Chat",
+ 49 => "Nine Wives",
+ 50 => "Finders Keepers",
+ 51 => "Take Out",
+ 52 => "End of Watch",
+ 53 => "Contenders",
+ 54 => "One Hour",
+ 55 => "Democracy",
+ 56 => "Pandora´s Box",
+ 57 => "Burn Rate",
+ 58 => "The Art of Reckoning",
+ 59 => "Under Pressure",
+ 60 => "Money For Nothing",
+ 61 => "The Janus List",
+
+ 62 => "Trust Metric",
+ 63 => "Hollywood Homicide",
+ 64 => "Velocity",
+ 65 => "Thirteen",
+ 66 => "Robin Hood",
+ 67 => "In Security",
+ 68 => "Primacy",
+ 69 => "Tabu",
+ 70 => "Graphic",
+ 71 => "Chinese Box (27.04.2011)",
+ 72 => "Breaking Point",
+ 73 => "Power (04.05.2011)",
+ 74 => "Black Swan",
+ 75 => "Checkmate (11.05.2011)",
+ 76 => "End Game",
+ 77 => "Atomic No. 33 (18.05.2011)",
+ 78 => "Pay to Play (24.05.2011)",
+ 79 => "When Worlds Collide (25.05.2011)",
+
+ 80 => "High Exposure (10.01.2012)",
+ 81 => "Decoy Effect (01.06.2011)",
+ 82 => "Blowback (17.01.2011)",
+ 83 => "Jack of All Trades (08.06.2011)",
+ 84 => "Scan Man",
+ 85 => "Magic Show",
+ 86 => "Charlie Don't Surf",
+ 87 => "Thirty-Six Hours (22.06.2011)",
+ 88 => "Conspiracy Theory",
+ 89 => "Frienemies (29.06.2011)",
+ 90 => "Arrow of Time (06.07.2011)",
+ 91 => "Jacked (13.07.2011)",
+ 92 => "Trouble In Chinatown (20.07.2011)",
+ 93 => "Sneakerhead (27.07.2011)",
+ 94 => "Guilt Trip",
+ 95 => "Cover Me",
+ 96 => "First Law",
+ 97 => "12:01 AM",
+ 98 => "Animal Rites",
+ 99 => "The Fifth Man",
+ 100 => "Disturbed",
+ 101 => "Greatest Hits",
+ 102 => "Angel and Devils",
+
+ 103 => "Hangman",
+ 104 => "Friendly Fire",
+ 105 => "7 Men Out",
+ 106 => "Where Credit's Due",
+ 107 => "Hydra",
+ 108 => "Dreamland",
+ 109 => "Shadow Markets",
+ 110 => "Ultimatum",
+ 111 => "Con Job",
+ 112 => "Old Soldiers",
+ 113 => "Scratch",
+ 114 => "Arm in Arms",
+ 115 => "Devil Girl",
+ 116 => "And The Winner Is...",
+ 117 => "Growin' Up (20.12.2011)",
+ 118 => "Cause and Effect (21.12.2011)",
+ )
+);
+
+$numb3rs_de = array(
+// 'ignore' => true,
+ 'channel' => 'online / Kabel 1',
+ 'showtimes' => 'Sa 23:05',
+ 'seen' => array(1), //110, 111),
+// 'last_seen' => mktime(21, 15, 0, 6, 5, 2011),
+ 'seasons' => array(13, 24, 24, 18, 23, 16),
+ 'episode_list' => 'wiki:Numb3rs#Episodenliste',
+ 'episodes' => array(
+ 1 => "Brandzeichen (Pilot)",
+ 2 => "Bankräuber (Uncertainty Principle)",
+ 3 => "Vektor (Vector)",
+ 4 => "Konstruktionsfehler (Structural Corruption)",
+ 5 => "Primzahlen (Prime Suspect)",
+ 6 => "Sabotage (Sabotage)",
+ 7 => "Blütenzauber (Counterfeit Reality)",
+ 8 => "Identitätskrise (Identity Crisis)",
+ 9 => "Hinterhalt (Sniper Zero)",
+ 10 => "Radioaktiv (Dirty Bomb)",
+ 11 => "Chancengleichheit (Sacrifice)",
+ 12 => "UFO (Noisy Edge)",
+ 13 => "Menschenjagd (Man Hunt)",
+
+ 14 => "Nach eigenem Ermessen (Judgment Call)",
+ 15 => "Spiel des Lebens (Better or Worse)",
+ 16 => "Der Stalker (Obsession)",
+ 17 => "Kalkuliertes Risiko (Calculated Risk)",
+ 18 => "Das Attentat (Assassin)",
+ 19 => "Weiches Ziel (Soft Target)",
+ 20 => "Konvergenz (Convergence)",
+ 21 => "Vor aller Augen (In Plain Sight)",
+ 22 => "Giftig (Toxin)",
+ 23 => "Knochen des Anstoßes (Bones of Contention)",
+ 24 => "Brandstiftung (Scorched)",
+ 25 => "Das Dominoprinzip (The OG)",
+ 26 => "Doppelter Einsatz (Double Down)",
+ 27 => "Blutige Ernte (Harvest)",
+ 28 => "Der Läufer (The Running Man)",
+ 29 => "Protest (Protest)",
+ 30 => "Das zweite Gesicht (Mind Games)",
+ 31 => "Im Krieg und in der Liebe (All´s Fair)",
+ 32 => "Dunkle Materie (Dark Matter)",
+ 33 => "Guns´n´Roses (Guns and Roses)",
+ 34 => "Die vierte Dimension (Rampage)",
+ 35 => "Backscatter (Backscatter)",
+ 36 => "Vogelgrippe (Undercurrents)",
+ 37 => "Ein Teufelskerl (Hot Shot)",
+
+ 38 => "Verfolgungskurven (Spree)",
+ 39 => "Töchter (Two Daughters)",
+ 40 => "Die Überlebende (Provenance)",
+ 41 => "Der Maulwurf (The Mole)",
+ 42 => "Ampeln (Traffic)",
+ 43 => "Wettkönig (Longshot)",
+ 44 => "Blackout (Blackout)",
+ 45 => "Die Doping-Formel (Hardball)",
+ 46 => "Giftmüll (Waste Not)",
+ 47 => "Brutus (Brutus)",
+ 48 => "Gefährlicher Chat (Killer Chat)",
+ 49 => "Neun Frauen (Nine Wives)",
+ 50 => "Schatzsuche (Finders Keepers)",
+ 51 => "Kapital à la Carte (Take Out)",
+ 52 => "Aus nächster Nähe (End of Watch)",
+ 53 => "Harte Bandagen (Contenders)",
+ 54 => "Nur eine Stunde (One Hour)",
+ 55 => "Keine Wahl (Democracy)",
+ 56 => "Blackbox (Pandora´s Box)",
+ 57 => "Tödliche Post (Burn Rate)",
+ 58 => "Trügerische Erinnerung (The Art of Reckoning)",
+ 59 => "Die Zelle (Under Pressure)",
+ 60 => "Unter Geiern (Money For Nothing)",
+ 61 => "Die Janus-Liste (The Janus List)",
+
+ 62 => "Vertrauen gegen Vertrauen (Trust Metric)",
+ 63 => "Falsche Zwillinge (Hollywood Homicide)",
+ 64 => "Raser (Velocity)",
+ 65 => "Kreuzweg (Thirteen)",
+ 66 => "Robin Hood in L.A. (Robin Hood)",
+ 67 => "Zeugenschutz (In Security)",
+ 68 => "Primacy (Primacy)",
+ 69 => "Reich und schön (Tabu)",
+ 70 => "Comic-Helden (Graphic)",
+ 71 => "Abwärts (Chinese Box)",
+ 72 => "Entführt, verfolgt (Breaking Point)",
+ 73 => "In Uniform (Power)",
+ 74 => "Der schwarze Schwan (Black Swan)",
+ 75 => "Schachmatt (Checkmate)",
+ 76 => "Endspiel (End Game)",
+ 77 => "Die Sekte (Atomic No. 33)",
+ 78 => "Todesmelodie (Pay to Play)",
+ 79 => "Auf eigenes Risiko (When Worlds Collide)",
+
+ 80 => "Abgestürzt (High Exposure)",
+ 81 => "Der Lockvogel-Effekt (Decoy Effect)",
+ 82 => "Der dritte Mann (Blowback)",
+ 83 => "Der netteste Kerl der Welt (Jack of All Trades)",
+ 84 => "Scan Man (Scan Man)",
+ 85 => "Tödliche Illusion (Magic Show)",
+ 86 => "Der Weg der Wellen (Charlie Don't Surf)",
+ 87 => "36 Stunden (Thirty-Six Hours)",
+ 88 => "Mann im Schatten (Conspiracy Theory)",
+ 89 => "Hassliebe (Frienemies)",
+ 90 => "Der Pfeil der Zeit (Arrow of Time)",
+ 91 => "Der Bus (Jacked)",
+ 92 => "Die Macht der Acht (Trouble In Chinatown)",
+ 93 => "Sneakerhead",
+ 94 => "Fehler im System (Guilt Trip)",
+ 95 => "Markt und Marke (Cover Me)",
+ 96 => "Die Erfindung der Zukunft (First Law)",
+ 97 => "Eine Minute nach Mitternacht (12:01 AM)",
+ 98 => "Gequälte Kreatur (Animal Rites)",
+ 99 => "Ein Mann zu viel (The Fifth Man)",
+ 100 => "Jäger aus dem Dunkel (Disturbed)",
+ 101 => "Wiedergutmachung (Greatest Hits)",
+ 102 => "Engel und Teufel (Angel and Devils)",
+
+ 103 => "Der Heckenschütze (Hangman)",
+ 104 => "Friendly Fire (Friendly Fire)",
+ 105 => "Blutroulette (7 Men Out)",
+ 106 => "Wie im Film (Where Credit's Due)",
+ 107 => "Der Klon (Hydra)",
+ 108 => "Dreamland (Dreamland)",
+ 109 => "Der Hacker (Shadow Markets)",
+ 110 => "Ultimatum (Ultimatum)",
+ 111 => "Buckleys Spiel (Con Job)",
+ 112 => "Alte Krieger (Old Soldiers)",
+ 113 => "Hauptgewinn (Scratch)",
+ 114 => "Der Händler des Todes (Arm in Arms)",
+ 115 => "Huren und Helden (Devil Girl)",
+ 116 => "Stars und Sterne (And The Winner Is...)",
+ 117 => "Story ohne Helden (Growin' Up)",
+ 118 => "Es gibt keinen Zufall (Cause and Effect)",
+ )
+);
Index: live/media/video/series/includes/seaquest.php
===================================================================
--- live/media/video/series/includes/seaquest.php (revision 0)
+++ live/media/video/series/includes/seaquest.php (revision 198)
@@ -0,0 +1,58 @@
+<?php
+
+$seaQuest = array(
+// 'ignore' => true,
+ 'channel' => 'online',
+// 'showtimes' => 'Mo–Fr 18:00–18:30',
+ 'seen' => array(array(1, 8)),
+// 'last_seen' => mktime(18, 30, 0, 9, 6, 2011),
+ 'seasons' => array(23, 21, 13),
+ 'episodes' => array(
+ 1 => "To Be or Not to Be (Pilot) / The Nathan Bridger Incident",
+ 2 => "Games (Vereist in alle Ewigkeit)",
+ 3 => "Tödliche Gene (Give Me Liberté)",
+ 4 => "Brothers and Sisters (Die vergessenen Kinder)",
+ 5 => "Der Teufelsgraben (The Devil's Window)",
+ 6 => "Das versunkene Wissen (Treasures of the Mind)",
+ 7 => "Treasures of the Tonga Trench",
+ 8 => "Knight of Shadows",
+ 9 => "Bad Water",
+ 10 => "The Regulator",
+ 11 => "seaWest",
+ 12 => "Photon Bullet",
+ 13 => "Better Than Martians",
+ 14 => "Nothing But the Truth",
+ 15 => "Greed For a Pirate's Dream",
+ 16 => "Whale Song",
+ 17 => "Hide and Seek",
+ 18 => "The Last Lap at Luxury",
+ 19 => "The Stinger",
+ 20 => "Abalon",
+ 21 => "Such Great Patience",
+ 22 => "The Good Death",
+ 23 => "Higher Power/An Ocean on Fire",
+
+ 24 => "Daggers",
+ 25 => "The Fear That Follows",
+ 26 => "Sympathy For the Deep",
+ 27 => "Playtime",
+ 28 => "Special Delivery",
+ 29 => "The Sincerest Form of Flattery",
+ 30 => "Vapors",
+ 31 => "By Any Other Name",
+ 32 => "When We Dead Awaken",
+ 33 => "Dead End",
+ 34 => "Meltdown",
+ 35 => "Lostland",
+ 36 => "And Everything Nice",
+ 37 => "Watergate",
+ 38 => "Dream Weaver",
+ 39 => "Alone",
+ 40 => "Something in the Air",
+ 41 => "Dagger Redux",
+ 42 => "The Siamese Dream",
+ 43 => "Blindsided",
+ 44 => "Splashdown"
+ ),
+ 'episode_list' => 'wiki:en:List_of_seaQuest_DSV_episodes'
+);
Index: live/media/video/series/includes/superman.php
===================================================================
--- live/media/video/series/includes/superman.php (revision 0)
+++ live/media/video/series/includes/superman.php (revision 198)
@@ -0,0 +1,456 @@
+<?php
+
+$smallville = array(
+// 'ignore' => true,
+ 'channel' => 'online',
+// 'showtimes' => 'Mo-Fr 14:10',
+ 'seen' => array(array(1, 27)),
+ 'seasons' => array(21, 23, 22, 22, 22, 22, 20, 22, 21, 22),
+ 'episode_list' => 'wiki:en:List_of_Smallville_episodes',
+ 'episodes' => array(
+ 1 => 'Pilot',
+ 2 => 'Metamorphosis',
+ 3 => 'Hothead',
+ 4 => 'X-Ray',
+ 5 => 'Cool',
+ 6 => "Hourglass",
+ 7 => "Craving",
+ 8 => "Jitters",
+ 9 => "Rogue",
+ 10 => "Shimmer",
+ 11 => "Hug",
+ 12 => "Leech",
+ 13 => "Kinetic",
+ 14 => "Zero",
+ 15 => "Nicodemus",
+ 16 => "Stray",
+ 17 => "Reaper",
+ 18 => "Drone",
+ 19 => "Crush",
+ 20 => "Obscura",
+ 21 => "Tempest",
+
+ 22 => "Vortex",
+ 23 => "Heat",
+ 24 => "Duplicity",
+ 25 => "Red",
+ 26 => "Nocturne",
+ 27 => "Redux",
+ 28 => "Lineage",
+ 29 => "Ryan",
+ 30 => "Dichotic",
+ 31 => "Skinwalker",
+ 32 => "Visage",
+ 33 => "Insurgence",
+ 34 => "Suspect",
+ 35 => "Rush",
+ 36 => "Prodigal",
+ 37 => "Fever",
+ 38 => "Rosetta",
+ 39 => "Visitor",
+ 40 => "Precipice",
+ 41 => "Witness",
+ 42 => "Accelerate",
+ 43 => "Calling",
+ 44 => "Exodus",
+
+// 153 1 "Odyssey" Kevin G. Fair Kelly Souders, Brian Peterson, Todd Slavkin & Darren Swimmer September 18, 2008 3T7451 4.34[97]
+// 154 2 "Plastique" Rick Rosenthal Don Whitehead & Holly Henderson September 25, 2008 3T7452 4.18[98]
+// 155 3 "Toxic" Mairzee Almas Caroline Dries October 2, 2008 3T7453 4.05[99]
+// 156 4 "Instinct" James Conway Al Septien & Turi Meyer October 9, 2008 3T7454 4.11[100]
+// 157 5 "Committed" Glen Winter Bryan Q. Miller October 16, 2008 3T7455 4.18[101]
+// 158 6 "Prey" Michael Rohl Kelly Souders & Brian Peterson October 23, 2008 377456 4.15[102]
+// 159 7 "Identity"
+ 160 => "Bloodline",
+ 161 => "Abyss",
+// 162 10 "Bride" Jeannot Szwarc Al Septien & Turi Meyer November 20, 2008 3T7460 4.18[106]
+// 163 11 "Legion" Glen Winter Geoff Johns January 15, 2009 3T7461 4.29[107]
+// 164 12 "Bulletproof" Morgan Beggs Bryan Miller January 22, 2009 3T7462 3.85[108]
+// 165 13 "Power" Allison Mack Todd Slavkin & Darren Swimmer January 29, 2009 3T7463 4.21[109]
+// 166 14 "Requiem" Michael Rohl Don Whitehead & Holly Henderson February 5, 2009 3T7464 3.93[110]
+// 167 15 "Infamous" Glen Winter Caroline Dries March 12, 2009 3T7465 3.56[111]
+// 168 16 "Turbulence" Kevin G. Fair Al Septien & Turi Meyer March 19, 2009 3T7466 3.49[112]
+// 169 17 "Hex" Mairzee Almas Bryan Miller March 26, 2009 3T7467 3.79[113]
+// 170 18 "Eternal" James Marshall Brian Peterson & Kelly Souders April 2, 2009 3T7468 3.84[114]
+// 171 19 "Stiletto" Kevin G. Fair Caroline Dries April 23, 2009 3T7469 3.10[115]
+// 172 20 "Beast" Michael Rohl Genevieve Sparling April 30, 2009 3T7470 3.23[116]
+// 173 21 "Injustice" Tom Welling Al Septien & Turi Meyer May 7, 2009 3T7471 3.39[117]
+// 174 22 "Doomsday"
+
+// 175 => "Savior",
+ 176 => "Metallo",
+ 177 => "Rabid",
+ 178 => "Echo",
+ 179 => "Roulette",
+ 180 => "Crossfire",
+ 181 => "Kandor",
+ 182 => "Idol",
+ 183 => "Pandora",
+ 184 => "Disciple",
+ 185 => "Absolute Justice",
+ 186 => "Warrior",
+ 187 => "Persuasion",
+ 188 => "Conspiracy",
+ 189 => "Escape",
+ 190 => "Checkmate",
+ 191 => "Upgrade",
+ 192 => "Charade",
+ 193 => "Sacrifice",
+ 194 => "Hostage",
+ 195 => "Salvation",
+
+ 196 => "Lazarus",
+ 197 => "Shield",
+ 198 => "Supergirl",
+ 199 => "Homecoming",
+ 200 => "Isis",
+ 201 => "Harvest",
+ 202 => "Ambush",
+ 203 => "Abandoned",
+ 204 => "Patriot",
+ 205 => "Luthor",
+ 206 => "Icarus",
+ 207 => "Collateral",
+ 208 => "Beacon",
+ 209 => "Masquerade",
+ 210 => "Fortune",
+ 211 => "Scion",
+ 212 => "Kent",
+ 213 => "Booster",
+ 214 => "Dominion",
+ 215 => "Prophecy",
+ 216 => "Finale, Part 1",
+ 217 => "Finale, Part 2",
+ )
+);
+
+$smallville_de = array(
+ 'ignore' => true,
+ 'channel' => 'Tele&nbsp;5 / RTL&nbsp;II',
+ 'showtimes' => 'Mo-Fr 15:05 / Do 00:30',
+ 'seen' => array(array(1, 18)),
+ 'last_seen' => mktime(17, 10, 0, 4, 21, 2011),
+ 'seasons' => array(21, 23, 22, 22, 22, 22, 20, 22, 21, 22),
+ 'episode_list' => 'wiki:Liste_der_Smallville-Episoden',
+ 'episodes' => array(
+ 1 => 'Nicht von dieser Welt (Pilot)',
+ 2 => 'Häutung bei Vollmond (Metamorphosis)',
+ 3 => 'Feuerball (Hothead)',
+ 4 => 'Ich sehe was, was Du nicht bist (X-Ray)',
+ 5 => 'Schockgefroren! (Cool)',
+ 6 => 'Blinde Augen sehen mehr (Hourglass)',
+ 7 => 'Zum Fressen gern (Craving)',
+ 8 => 'Körperbeben (Jitters)',
+ 9 => 'Von Mit- und Besserwissern (Rogue)',
+ 10 => 'Hollow Boy (Shimmer)',
+ 11 => 'Zum Teufel mit dem Willen anderer (Hug)',
+ 12 => 'Plötzlich verletzlich (Leech)',
+ 13 => 'Ab durch die Wand! (Kinetic)',
+ 14 => 'Schlechte Leute, einst wie heute (Zero)',
+ 15 => 'Blütenterror (Nicodemus)',
+ 16 => 'Wie ein kleiner Bruder (Stray)',
+ 17 => 'Nur die Asche bleibt zurück (Reaper)',
+ 18 => 'Clark Kent for President! (Drone)',
+ 19 => 'Tele-Kill-Nese (Crush)',
+ 20 => 'Das letzte Stück zur Wahrheit (Obscura)',
+ 21 => 'Als der Sturm kam (Tempest (1))',
+
+ 22 => "Seh’ die Welt in Trümmern liegen (Vortex (2))",
+ 23 => "Heiß! (Heat)",
+ 24 => "Raumschiff verzweifelt gesucht (Duplicity)",
+ 25 => "Wahnsinnsrot (Red)",
+ 26 => "Byron und sein Hyde (Nocturne)",
+ 27 => "Ich atme ein, die Jugend dein! (Redux)",
+ 28 => "Mütter, Väter, nur Verräter? (Lineage)",
+ 29 => "Ryan",
+ 30 => "Eigenkopie (Dichotic)",
+ 31 => "Höhlengeheimnis (Skinwalker)",
+ 32 => "Was ist bloß mit Whitney los? (Visage)",
+ 33 => "Metropolis Report (Insurgence)",
+ 34 => "Wer schoss auf Lionel Luthor? (Suspect)",
+ 35 => "Blutparasit (Rush)",
+ 36 => "Triple Luthor (Prodigal)",
+ 37 => "Zeitpunkt des Todes: 02.17 Uhr (Fever)",
+ 38 => "Kal-El von Krypton (Rosetta)",
+ 39 => "Alien 2? (Visitor) (24.05.2011 17:05 Tele 5)",
+ 40 => "Viel Arbeit für den neuen Sheriff (Precipice)",
+ 41 => "Abgedampft (Witness)",
+ 42 => "Geisterjäger (Accelerate)",
+ 43 => "Für immer … (Calling (1))",
+ 44 => "… nach Hause? (Exodus (2))",
+
+ 45 => "Verschollen (Exile)",
+ 46 => "Phoenix",
+ 47 => "Gejagt! (Extinction)",
+ 48 => "Nur geträumt? (Slumber)",
+ 49 => "Perry White (Perry)",
+ 50 => "Smallville 1961 (Relic)",
+ 51 => "Anziehend (Magnetic)",
+ 52 => "Schizophren! (Shattered)",
+ 53 => "Irrsinn! (Asylum)",
+ 54 => "Flüstern (Whisper)",
+ 55 => "Befehle (Delete)",
+ 56 => "Todesvision (Hereafter)",
+ 57 => "Limit (Velocity)",
+ 58 => "So wie ich? (Obsession)",
+ 59 => "Lebenselixier (Resurrection)",
+ 60 => "Amok (Crisis)",
+ 61 => "Schlüsselmomente (Legacy)",
+ 62 => "Sag’ die Wahrheit (Truth)",
+ 63 => "Lara & Lillian (Memoria)",
+ 64 => "Der Mann, der einst vom Himmel fiel? (Talisman)",
+ 65 => "Der Anfang … (Forsaken (1))",
+ 66 => "… vom Ende (Covenant (2))",
+
+ 67 => "Lana & Lois (Crusade)",
+ 68 => "Das leere Grab (Gone)",
+ 69 => "OP/TIK (Facade)",
+ 70 => "Kuschelmonster (Devoted)",
+ 71 => "Flash! (Run)",
+ 72 => "Im Körper des Feindes (Transference)",
+ 73 => "Regeln des Spiels (Jinx)",
+ 74 => "Die Nacht der 3 (Spell)",
+ 75 => "Mutter aus Leidenschaft (Bound)",
+ 76 => "Angstgase (Scare)",
+ 77 => "Ja, ich will … nicht (Unsafe)",
+ 78 => "Augenzeugin (Pariah)",
+ 79 => "Lahmgelegt (Recruit)",
+ 80 => "Krypto",
+ 81 => "Isabelle reloaded (Sacred)",
+ 82 => "Hoppla Lucy (Lucy)",
+ 83 => "Lex gegen Lex! (Onyx)",
+ 84 => "(Small)willenlos (Spirit)",
+ 85 => "Noch mal mit Gefühl (Blank)",
+ 86 => "Eintagseltern (Ageless)",
+ 87 => "School of Wax (Forever)",
+ 88 => "Armageddon (Commencement)",
+
+ 89 => "Gelandet! (Arrival)",
+ 90 => "Ein Mensch zu sein (Mortal)",
+ 91 => "Wiedergeburt (Hidden)",
+// 92  4  Aquaman Aqua 20. Okt. 2005 23. Sep. 2006
+// 93  5  Schwarze Schwestern Thirst 27. Okt. 2005 30. Sep. 2006
+// 94  6  Verbrechen verführt Exposed 3. Nov. 2005 30. Sep. 2006
+// 95  7  Silberwahn Splinter 10. Nov. 2005 7. Okt. 2006
+// 96  8  Kryptons dunkle Seite Solitude 17. Nov. 2005 7. Okt. 2006
+// 97  9  Santa Clark Lexmas 8. Dez. 2005 14. Okt. 2006
+// 98  10  Lex gegen Jonathan Fanatic 12. Jan. 2006 14. Okt. 2006
+// 99  11  Zeugen der Ankunft Lockdown 19. Jan. 2006 28. Okt. 2006
+// 100  12  Was ich tat, tat ich aus Liebe Reckoning 26. Jan. 2006 4. Nov. 2006
+// 101  13  Nichts mehr, wie es war Vengeance 2. Feb. 2006 11. Nov. 2006
+// 102  14  Unruhe der Toten Tomb 9. Feb. 2006 18. Nov. 2006
+// 103  15  Cyborg Cyborg 16. Feb. 2006 25. Nov. 2006
+// 104  16  Dressiert Hypnotic 30. Mär. 2006 2. Dez. 2006
+// 105  17  Jenseitstrip Void 6. Apr. 2006 9. Dez. 2006
+// 106  18  Scherben Fragile 13. Apr. 2006 16. Dez. 2006
+// 107  19  Höllenspiel Mercy 20. Apr. 2006 30. Dez. 2006
+// 108  20  Dankbarkeitsmord Fade 27. Apr. 2006 13. Jan. 2007
+// 109  21  Töte ihn! Oracle 4. Mai 2006 20. Jan. 2007
+// 110  22  Untergang Vessel 11. Mai 2006 27. Jan. 2007
+
+// 111  1  Verbannt in die Phantomzone Zod 28. Sep. 2006 1. Dez. 2007
+// 112  2  Luft-Waffe Sneeze 5. Okt. 2006 1. Dez. 2007
+// 113  3  Mörderpflanzen Wither 12. Okt. 2006 8. Dez. 2007
+// 114  4  Green Arrow Arrow 19. Okt. 2006 8. Dez. 2007
+// 115  5  Klassensterben Reunion 26. Okt. 2006 15. Dez. 2007
+// 116  6  Raya vom Krypton Fallout 2. Nov. 2006 15. Dez. 2007
+// 117  7  Mit Pfeil und Kugel Rage 9. Nov. 2006 22. Dez. 2007
+// 118  8  Frequenzwechsel Static 16. Nov. 2006 22. Dez. 2007
+// 119  9  Unterdrückungsmechanismen Subterranean 7. Dez. 2006 5. Jan. 2008
+// 120  10  Mit allen Wassern gewaschen Hydro 11. Jan. 2007 5. Jan. 2008
+// 121  11  Justice League Justice 18. Jan. 2007 2. Feb. 2008
+// 122  12  Vergiss dein nicht Labyrinth 25. Jan. 2007 2. Feb. 2008
+// 123  13  Alle lieben Clark Crimson 1. Feb. 2007 9. Feb. 2008
+// 124  14  Beschützerinstinkt Trespass 8. Feb. 2007 9. Feb. 2008
+// 125  15  Freakville Freak 15. Feb. 2007 16. Feb. 2008
+// 126  16  Teufelshochzeit Promise 15. Mär. 2007 23. Feb. 2008
+// 127  17  Fightclub Combat 22. Mär. 2007 23. Feb. 2008
+// 128  18  Mutterseelenallein Progeny 19. Apr. 2007 1. Mär. 2008
+// 129  19  Mein Feind, der Freund Nemesis 26. Apr. 2007 1. Mär. 2008
+// 130  20  Episode Noir Noir 3. Mai 2007 8. Mär. 2008
+// 131  21  Prototyp Prototype 10. Mai 2007 8. Mär. 2008
+// 132  22  Phantom der Opfer Phantom
+
+// 133  1  Alter Ego Bizarro 27. Sep. 2007 17. Sep. 2008
+// 134  2  Familienbesuch Kara 4. Okt. 2007 24. Sep. 2008
+// 135  3  Eiskalt erwischt Fierce 11. Okt. 2007 1. Okt. 2008
+// 136  4  Unsterbliche Liebe Cure 18. Okt. 2007 8. Okt. 2008
+// 137  5  Wahre Helden Action 25. Okt. 2007 15. Okt. 2008
+// 138  6  Erinnerung an Lara Lara 1. Nov. 2007 22. Okt. 2008
+// 139  7  Rachefeldzug Wrath 8. Nov. 2007 29. Okt. 2008
+// 140  8  Zor-El Blue 15. Nov. 2007 5. Nov. 2008
+// 141  9  Gemini-Projekt Gemini 13. Dez. 2007 12. Nov. 2008
+// 142  10  Brainiacs Rückkehr Persona 31. Jan. 2008 19. Nov. 2008
+// 143  11  Blonde Sirene Siren 7. Feb. 2008 26. Nov. 2008
+// 144  12  Im Kopf des Feindes Fracture 14. Feb. 2008 3. Dez. 2008
+// 145  13  Alte Freunde Hero 13. Mär. 2008 10. Dez. 2008
+// 146  14  Der Reisende Traveler 20. Mär. 2008 17. Dez. 2008
+// 147  15  Das Medaillon Veritas 27. Mär. 2008 7. Jan. 2009
+ 148 => "Sturz in den Abgrund (Descent)",
+ 149 => "Der Spion, der mich liebte (Sleeper)",
+// 150  18  Weltuntergang Apocalypse 1. Mai 2008 28. Jan. 2009
+// 151  19  Das Veritas-Vermächtnis Quest 8. Mai 2008 4. Feb. 2009
+// 152  20  Außer Kontrolle Arctic
+
+// 153  1  Odyssey Odyssey 18. Sep. 2008 16. Jan. 2010
+// 154  2  Feuerteufel Plastique 25. Sep. 2008 16. Jan. 2010
+// 155  3  Vergiftet Toxic 2. Okt. 2008 23. Jan. 2010
+// 156  4  Seelengefährten Instinct 9. Okt. 2008 23. Jan. 2010
+// 157  5  Liebesprüfung Committed 16. Okt. 2008 30. Jan. 2010
+// 158  6  Schattenmörder Prey 23. Okt. 2008 30. Jan. 2010
+// 159  7  Identität Identity 30. Okt. 2008 27. Feb. 2010
+// 160  8  Sohn des Zod Bloodline 6. Nov. 2008 6. Mär. 2010
+// 161  9  Amnesie Abyss 13. Nov. 2008 13. Mär. 2010
+// 162  10  Entführung der Braut Bride 20. Nov. 2008 20. Mär. 2010
+// 163  11  Die Legion Legion 15. Jan. 2009 27. Mär. 2010
+// 164  12  Selbstjustiz Bulletproof 22. Jan. 2009 3. Apr. 2010
+// 165  13  Macht Power 29. Jan. 2009 10. Apr. 2010
+// 166  14  Requiem Requiem 5. Feb. 2009 17. Apr. 2010
+ 167 => "Schatten des Ruhms (Infamous)",
+ 168 => "Absturz (Turbulence)",
+// 169  17  Wenn Wünsche wahr werden Hex 26. Mär. 2009 15. Mär. 2010
+// 170  18  Das Monster in mir Eternal 2. Apr. 2009 22. Mär. 2010
+// 171  19  Heldin in High-Heels Stiletto 23. Apr. 2009 29. Mär. 2010
+// 172  20  Chloes Entscheidung Beast 30. Apr. 2009 5. Juni 2010
+// 173  21  Geheimarmee Injustice 7. Mai 2009 12. Juni 2010
+// 174  22  Doomsday Doomsday 14. Mai 2009 19. Juni 2010
+
+// 175  1  Last der Verantwortung Savior 25. Sep. 2009 1. Juni 2011
+// 176  2  Metallo Metallo 2. Okt. 2009 8. Juni 2011
+ 177 => "Todesvirus (Rabid)",
+ 178 => "Offene Rechnungen (Echo)",
+ 180 => "Blind Date (Crossfire)",
+ 185 => "Helden der Vergangenheit (Absolute Justice)",
+ 186 => "Die Geburt eines Schurken (Warrior)",
+ 187 => "Hypnose wider Willen (Persuasion)",
+ 188 => "Verschwörung (Conspiracy)",
+ 189 => "Der Geist aus der Unterwelt (Escape)",
+ 190 => "Checkmate",
+ 191 => "Metallos Rückkehr (Upgrade)",
+ 192 => "Phantombild (Charade)",
+ 193 => "Gefangen im Wachturm (Sacrifice)",
+// 194  20  Die Rote Königin Hostage 7. Mai 2010 13. Okt. 2011
+// 195  21  Erlösung Salvation 14. Mai 2010 20. Okt. 2011
+
+// 196  1  — Lazarus 24. Sep. 2010 —
+// 197  2  — Shield 1. Okt. 2010 —
+// 198  3  — Supergirl 8. Okt. 2010 —
+// 199  4  — Homecoming 15. Okt. 2010 —
+// 200  5  — Isis 22. Okt. 2010 —
+// 201  6  — Harvest 29. Okt. 2010 —
+// 202  7  — Ambush 5. Nov. 2010 —
+// 203  8  — Abandoned 12. Nov. 2010 —
+// 204  9  — Patriot 19. Nov. 2010 —
+// 205  10  — Luthor 3. Dez. 2010 —
+// 206  11  — Icarus 10. Dez. 2010 —
+// 207  12  — Collateral 4. Feb. 2011 —
+// 208  13  — Beacon 11. Feb. 2011 —
+// 209  14  — Masquerade 18. Feb. 2011 —
+// 210  15  — Fortune 25. Feb. 2011 —
+// 211  16  — Scion 4. Mär. 2011 —
+// 212  17  — Kent 15. Apr. 2011 —
+// 213  18  — Booster 22. Apr. 2011 —
+// 214  19  — Dominion 29. Apr. 2011 —
+// 215  20  — Prophecy 6. Mai 2011 —
+// 216  21  — Finale (1) 13. Mai 2011 —
+// 217  22  — Finale (2) 13. Mai 2011 —
+ )
+);
+
+$superman = array(
+ 'ignore' => true,
+ 'seasons' => array(21, 22, 22, 22),
+ 'episode_list' => 'wiki:en:List_of_Lois_%26_Clark:_The_New_Adventures_of_Superman_episodes',
+ 'episodes' => array(
+ 1 => "Pilot",
+ 2 => "Strange Visitor (From Another Planet)",
+ 3 => "Neverending Battle",
+ 4 => "I'm Looking Through You",
+ 5 => "Requiem for a Super Hero",
+ 6 => "I've Got a Crush on You",
+ 7 => "Smart Kids",
+ 8 => "The Green, Green Glow of Home",
+ 9 => "The Man of Steel Bars",
+ 10 => "Pheromone, My Lovely",
+ 11 => "Honeymoon in Metropolis",
+ 12 => "All Shook Up",
+ 13 => "Witness",
+ 14 => "Illusions of Grandeur",
+ 15 => "The Ides of Metropolis",
+ 16 => "Foundling",
+ 17 => "The Rival",
+ 18 => "Vatman",
+ 19 => "Fly Hard",
+ 20 => "Barbarians at the Planet",
+ 21 => "The House of Luthor",
+
+ 22 => "Madame Ex",
+ 23 => "Wall of Sound",
+ 24 => "The Source",
+ 25 => "The Prankster",
+ 26 => "Church of Metropolis",
+ 27 => "Operation Blackout",
+ 28 => "That Old Gang of Mine",
+ 29 => "A Bolt From the Blue",
+ 30 => "Season's Greedings",
+ 31 => "Metallo",
+ 32 => "Chi of Steel",
+ 33 => "The Eyes Have It",
+ 34 => "The Phoenix",
+ 35 => "Top Copy",
+ 36 => "Return of the Prankster",
+ 37 => "Lucky Leon",
+ 38 => "Resurrection",
+ 39 => "Tempus Fugitive",
+ 40 => "Target: Jimmy Olsen!",
+ 41 => "Individual Responsibility",
+ 42 => "Whine, Whine, Whine",
+ 43 => "And the Answer Is…",
+
+ 44 => "We Have a Lot to Talk About",
+ 45 => "Ordinary People",
+ 46 => "Contact",
+ 47 => "When Irish Eyes Are Killing",
+ 48 => "Just Say Noah",
+ 49 => "Don't Tug on Superman's Cape",
+ 50 => "Ultra Woman",
+ 51 => "Chip Off the Old Clark",
+ 52 => "Super Mann",
+ 53 => "Virtually Destroyed",
+ 54 => "Home Is Where the Hurt Is",
+ 55 => "Never on Sunday",
+ 56 => "The Dad Who Came In From the Cold",
+ 57 => "Tempus, Anyone?",
+ 58 => "I Now Pronounce You...",
+ 59 => "Double Jeopardy",
+ 60 => "Seconds",
+ 61 => "Forget Me Not",
+ 62 => "Oedipus Wrecks",
+ 63 => "It's a Small World After All",
+ 64 => "Through a Glass, Darkly",
+ 65 => "Big Girls Don't Fly",
+
+ 66 => "Lord of the Flys",
+ 67 => "Battleground Earth",
+ 68 => "Swear to God, This Time We're Not Kidding",
+ 69 => "Soul Mates",
+ 70 => "Brutal Youth",
+ 71 => "The People vs. Lois Lane",
+ 72 => "Dead Lois Walking",
+ 73 => "Bob and Carol and Lois and Clark",
+ 74 => "Ghosts",
+ 75 => "Stop the Presses",
+ 76 => "Twas the Night Before Mxymas",
+ 77 => "Lethal Weapon",
+ 78 => "Sex, Lies and Videotape",
+ 79 => "Meet John Doe",
+ 80 => "Lois and Clarks",
+ 81 => "AKA Superman",
+ 82 => "Faster than a Speeding Vixen ",
+ 83 => "Shadow of a Doubt",
+ 84 => "Voice from the Past",
+ 85 => "I've Got You Under My Skin",
+ 86 => "Toy Story",
+ 87 => "The Family Hour",
+ )
+);
Index: live/media/video/series/includes/frasier.php
===================================================================
--- live/media/video/series/includes/frasier.php (revision 0)
+++ live/media/video/series/includes/frasier.php (revision 198)
@@ -0,0 +1,116 @@
+<?php
+
+$frasier = array(
+// 'ignore' => true,
+ 'channel' => 'online',
+// 'showtimes' => 'Mo–Fr 09:25',
+ 'seen' => array(array(1, 33)),
+// 'last_seen' => mktime(9, 30, 0, 9, 21, 2011),
+ 'seasons' => array(24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24),
+ 'episode_list' => 'wiki:en:List_of_Frasier_episodes',
+ 'episodes' => array(
+ 1 => "The Good Son",
+ 2 => "Space Quest",
+ 3 => "Dinner at Eight",
+ 4 => "I Hate Frasier Crane",
+ 5 => "Here's Looking at You",
+ 6 => "The Crucible",
+ 7 => "Call Me Irresponsible",
+ 8 => "Beloved Infidel",
+ 9 => "Selling Out",
+ 10 => "Oops!",
+ 11 => "Death Becomes Him",
+ 12 => "Miracle On Third Or Fourth Street",
+ 13 => "Guess Who's Coming to Breakfast?",
+ 14 => "Can't Buy Me Love",
+ 15 => "You Can't Tell a Crook By His Cover",
+ 16 => "The Show Where Lilith Comes Back",
+ 17 => "A Mid-Winter Night's Dream",
+ 18 => "And the Whimper Is…",
+ 19 => "Give Him the Chair!",
+ 20 => "Fortysomething",
+ 21 => "Travels With Martin",
+ 22 => "Author, Author",
+ 23 => "Frasier Crane's Day Off",
+ 24 => "My Coffee With Niles",
+
+ /* Season 2 */
+ 25 => "Slow Tango in South Seattle",
+ 26 => "The Unkindest Cut of All",
+ 27 => "The Matchmaker",
+ 28 => "Flour Child",
+ 29 => "Duke's, We Hardly Knew Ye",
+ 30 => "The Botched Language of Cranes",
+ 31 => "The Candidate",
+ 32 => "Adventures in Paradise - Part One",
+ 33 => "Adventures in Paradise - Part Two",
+ 34 => "Burying a Grudge",
+ 35 => "Seat of Power",
+ 36 => "Roz in the Doghouse",
+ 37 => "Retirement Is Murder",
+ 38 => "Fool Me Once, Shame on You, Fool Me Twice",
+ 39 => "You Scratch My Book",
+ 40 => "The Show Where Sam Shows Up",
+ 41 => "Daphne's Room (14.10.2011 09:30)",
+ 42 => "The Club",
+ 43 => "Someone to Watch Over Me",
+ 44 => "Breaking the Ice",
+ 45 => "An Affair to Forget",
+ 46 => "Agents in America",
+ 47 => "The Innkeepers",
+ 48 => "Dark Victory (25.10.2011)",
+
+ /* Season 3 */
+ 49 => "She's the Boss",
+ 50 => "Shrink Rap",
+ 51 => "Martin Does It His Way",
+ 52 => "Leapin' Lizards",
+ 53 => "Kisses Sweeter Than Wine",
+ 54 => "Sleeping With the Enemy",
+ 55 => "The Adventures of Bad Boy and Dirty Girl",
+ 56 => "The Last Time I Saw Maris",
+ 57 => "Frasier Grinch",
+ 58 => "It's Hard to Say Goodbye If You Won't Leave",
+ 59 => "The Friend",
+ 60 => "Come Lie With Me",
+ 61 => "Moon Dance",
+ 62 => "The Show Where Diane Comes Back",
+ 63 => "A Word to the Wiseguy",
+ 64 => "Look Before You Leap",
+ 65 => "High Crane Drifter",
+ 66 => "Chess Pains",
+ 67 => "Crane vs. Crane",
+ 68 => "Police Story",
+ 69 => "Where There's Smoke, There's Fired",
+ 70 => "Frasier Loves Roz",
+ 71 => "The Focus Group",
+ 72 => "You Can Go Home Again",
+
+// № # Title Directed by Written by Original air date
+// 73 1 "The Two Mrs. Cranes" David Lee Joe Keenan September 17, 1996 (1996-09-17)
+// 74 2 "Love Bites Dog" Jeff Melman Suzanne Martin September 24, 1996 (1996-09-24)
+// 75 3 "The Impossible Dream" David Lee Rob Greenberg October 15, 1996 (1996-10-15)
+// 76 4 "A Crane's Critique" Jeff Melman Dan Cohen & F.J. Pratt October 22, 1996 (1996-10-22)
+// 77 5 "Head Game" David Lee Rob Greenberg November 12, 1996 (1996-11-12)
+// 78 6 "Mixed Doubles" Jeff Melman Christopher Lloyd November 19, 1996 (1996-11-19)
+// 79 7 "A Lilith Thanksgiving" Jeff Melman Chuck Ranberg & Anne Flett-Giordano November 26, 1996 (1996-11-26)
+// 80 8 "Our Father Whose Art Ain't Heaven" Jeff Melman Michael Kaplan December 9, 1996 (1996-12-09)
+// 81 9 "Dad Loves Sherry, the Boys Just Whine" James Burrows Joe Keenan January 7, 1997 (1997-01-07)
+// 82 10 "Liar! Liar!" James Burrows Chuck Ranberg & Anne Flett-Giordano January 14, 1997 (1997-01-14)
+// 83 11 "Three Days of the Condo" David Lee Michael Kaplan January 21, 1997 (1997-01-21)
+// 84 12 "Death and the Dog" James Burrows Suzanne Martin February 11, 1997 (1997-02-11)
+// 85 13 "Four For the Seesaw" Jeff Melman David Lloyd February 18, 1997 (1997-02-18)
+// 86 14 "To Kill a Talking Bird" David Lee Jeffrey Richman February 25, 1997 (1997-02-25)
+// 87 15 "Roz's Krantz and Gouldenstein Are Dead" Jeff Melman William Lucas Walker March 11, 1997 (1997-03-11)
+// 88 16 "The Unnatural" Pamela Fryman Michael Kaplan April 1, 1997 (1997-04-01)
+// 89 17 "Roz's Turn" Joyce Gittlin Joe Keenan April 15, 1997 (1997-04-15)
+// 90 18 "Ham Radio" David Lee David Lloyd April 22, 1997 (1997-04-22)
+// 91 19 "Three Dates and a Break Up (Part 1)" Jeff Melman Rob Greenberg April 29, 1997 (1997-04-29)
+// 92 20 "Three Dates and a Break Up (Part 2)" Jeff Melman Rob Greenberg April 29, 1997 (1997-04-29)
+// 93 21 "Daphne Hates Sherry" Kelsey Grammer Chuck Ranberg & Anne Flett-Giordano May 6, 1997 (1997-05-06)
+// 94 22 "Are You Being Served?" Gordon Hunt William Lucas Walker May 13, 1997 (1997-05-13)
+// 95 23 "Ask Me No Questions" Jeff Melman Dan Cohen & F.J. Pratt May 20, 1997 (1997-05-20)
+// 96 24 "Odd Man Out" Jeff Melman Suzanne Martin May 20, 1997 (1997-05-20)
+
+ )
+);
Index: live/media/video/series/includes/efc.php
===================================================================
--- live/media/video/series/includes/efc.php (revision 0)
+++ live/media/video/series/includes/efc.php (revision 198)
@@ -0,0 +1,127 @@
+<?php
+
+$efc = array(
+// 'ignore' => true,
+ 'channel' => 'online',
+// 'showtimes' => 'Mo–Fr 16:10',
+ 'seen' => array(array(1, 14)),
+// 'last_seen' => mktime(16, 15, 0, 7, 6, 2011),
+ 'seasons' => array(22, 22, 22, 22, 22),
+ 'episode_list' => 'http://www.allnew-tv.de/sites/episodenguide/efc/season/01/episode/01',
+ 'episodes' => array(
+ 1 => "Im Griff der Taelons (Decision)",
+ 2 => "Bittere Wahrheit (Truth)",
+ 3 => "Wunderheilung (Miracle)",
+ 4 => "Avatar",
+ 5 => "Der Feind im Bett (Old Flame)",
+ 6 => "Das Geheimnis der Schmetterlinge (Float Like A Butterfly)",
+ 7 => "Palastrevolution (Resurrection)",
+ 8 => "Hinter dem Horizont (Horizon Zero)",
+ 9 => "Außer Kontrolle (Scorpion's Dream)",
+ 10 => "Entführt (Live Free Or Die)",
+ 11 => "Das Geheimnis der Vogelscheuche (The Scarecrow Returns)",
+ 12 => "Amoklauf (Sandoval's Run) (14.07.2011 16:10)",
+ 13 => "Das keltische Grabmal (The Secret Of Strand Hill)",
+ 14 => "Die Büchse der Pandora (Pandora's Box)",
+ 15 => "Botschaft aus vergangener Zeit (If You Could Read My Mind)",
+ 16 => "Tödlicher Virus (The Wrath Of Archilles)",
+ 17 => "Vertrauter Feind (The Devil You Know)",
+ 18 => "Der Prozeß (Law and Order)",
+ 19 => "Das Zeitfenster (Through the Looking Glass)",
+ 20 => "Die Epidemie (Infection)",
+ 21 => "Russisches Roulette (Destruction)",
+ 22 => "Fremdkörper (The Joining)",
+
+ 23 => "Der Erste seiner Art (First Of Its Kind)",
+ 24 => "Atavus",
+ 25 => "Die vierte Dimension (A Stitch In Time)",
+ 26 => "Die Spiegelwelt (Dimension)",
+ 27 => "Dem Tode geweiht (Moonscape)",
+ 28 => "Der tiefe Schlaf (The Sleepers)",
+ 29 => "Parasiten (Fissures)",
+ 30 => "Das letzte Tribunal (Redemption)",
+ 31 => "Zwischen den Welten (Isabel)",
+ 32 => "Selbstversuch (Between Heaven And Hell)",
+ 33 => "Der Jaridian (The Gauntlet)",
+ 34 => "Menschmaschinen (One Man's Castle)",
+ 35 => "Zweite Chance (Second Chances)",
+ 36 => "Späte Rache (Payback)",
+ 37 => "Kamikaze (Friendly Fire)",
+ 38 => "Schattenkrieger (Volunteers)",
+ 39 => "Unter Drogen (Bliss)",
+ 40 => "Die Entführung (Hijacked)",
+ 41 => "Die Vertrauensfrage (Defectors)",
+ 42 => "Die Wunderwaffe (Heroes And Heartbreak)",
+ 43 => "Kosmische Flaschenpost (Message In A Bottle)",
+ 44 => "Der Todesstoss (Crossfire)",
+
+ 45 => "Ausnahmezustand (Crackdown)",
+ 46 => "Spurlos (The Vanished)",
+ 47 => "Das Substrat (Emancipation)",
+ 48 => "Die totale Erinnerung (Déjà Vu)",
+ 49 => "Das Königsgrab (Once And Future World)",
+ 50 => "Blutsverwandte (Thicker Than Blood)",
+ 51 => "Die neue Generation (A Little Bit Of Heaven)",
+ 52 => "Das Spiel (Pa'dar)",
+ 53 => "Camouflage (In Memory)",
+ 54 => "Das Kloster (The Cloiser)",
+ 55 => "Showtime (Interview)",
+ 56 => "Liebe Deinen Feind (Keep Your Enemies Closer)",
+ 57 => "Die Agentin (Subterfuge)",
+ 58 => "Verbrannte Erde (Scorched Earth)",
+ 59 => "Den Tod im Leib (Sanctuary)",
+ 60 => "Mit aller Macht (Through Your Eyes)",
+ 61 => "Zeitbombe (Time Bomb)",
+ 62 => "Götterdämmerung (The Fields)",
+ 63 => "Die Erscheinung (Apparition)",
+ 64 => "Außer Kontrolle (One Taelon Avenue)",
+ 65 => "Der geheimnisvolle Code (Code Abduction)",
+ 66 => "Notlandung (The Arrival)",
+
+ 67 => "Die Bombe tickt (The Forge of Creation)",
+ 68 => "Illegale Geschäfte (Sins Of The Father)",
+ 69 => "Der Klon (First Breath)",
+ 70 => "Energieverlust (Limbo)",
+ 71 => "Goldfieber (Motherlode)",
+ 72 => "Selbstmordkommando (Take No Prisoners)",
+ 73 => "Die zweite Welle (Second Wave)",
+ 74 => "Gefühlstransfer (Essence)",
+ 75 => "Der Beschützer (Phantom Companion)",
+ 76 => "Tödliche Träume (Dream Stalker)",
+ 77 => "Die Klon-Fabrik (Lost Generation)",
+ 78 => "Der Doppelgänger (The Summit)",
+ 79 => "Dunkle Materie (Dark Matter)",
+ 80 => "Schlüssel zum Leben (Keys to the Kingdom)",
+ 81 => "Die sechste Dimension (Street Chase)",
+ 82 => "Die Zeitfalle (Trapped by Time)",
+ 83 => "Der Verrat (Atonement)",
+ 84 => "Fremdenergie (Blood Ties)",
+ 85 => "Der Schattenmann (Hearts and Minds)",
+ 86 => "Das Orakel der Kimera (Epiphany)",
+ 87 => "Die zweite Invasion (Dark Horizon)",
+ 88 => "Die Verschmelzung (Point Of No Return)",
+
+ 89 => "Unearthed",
+ 90 => "Pariahs",
+ 91 => "The Seduction",
+ 92 => "Subterra",
+ 93 => "Boone's Awakening",
+ 94 => "Termination",
+ 95 => "Guilty Conscience",
+ 96 => "Boone's Assassin",
+ 97 => "Entombed",
+ 98 => "Legacy",
+ 99 => "Death Suite",
+ 100 => "Atavus High",
+ 101 => "Deep Sleep",
+ 102 => "Art Of War",
+ 103 => "Grave Danger",
+ 104 => "Deportation",
+ 105 => "Honor And Duty",
+ 106 => "Bad Genes",
+ 107 => "Subversion",
+ 108 => "Street Wise",
+ 109 => "The Journey",
+ 110 => "Final Conflict",
+ )
+);
Index: live/media/video/series/includes/moonlighting.php
===================================================================
--- live/media/video/series/includes/moonlighting.php (revision 0)
+++ live/media/video/series/includes/moonlighting.php (revision 198)
@@ -0,0 +1,82 @@
+<?php
+
+$moonlighting = array(
+// 'ignore' => true,
+ 'channel' => 'online',
+// 'showtimes' => 'Mi–Fr 21:00',
+ 'seen' => array(1),
+// 'last_seen' => mktime(21, 0, 0, 9, 8, 2011),
+ 'seasons' => array(6, 18, 15, 14, 13),
+ 'episodes' => array(
+ 1 => "Pilot",
+ 2 => "Gunfight at the So-So Corral",
+ 3 => "Read the Mind... See the Movie",
+ 4 => "The Next Murder You Hear",
+ 5 => "Next Stop Murder",
+ 6 => "The Murder's in the Mail",
+ 7 => "Brother, Can You Spare a Blonde?",
+ 8 => "The Lady in the Iron Mask",
+ 9 => "Money Talks – Maddie Walks",
+ 10 => "The Dream Sequence Always Rings Twice",
+ 11 => "My Fair David",
+ 12 => "Knowing Her",
+ 13 => "Somewhere Under the Rainbow",
+ 14 => "Portrait of Maddie",
+ 15 => "Atlas Belched",
+ 16 => "Twas the Episode Before Christmas",
+ 17 => "The Bride of Tupperman",
+ 18 => "North by North DiPesto",
+ 19 => "In God We Strongly Suspect",
+ 20 => "Every Daughter's Father Is a Virgin",
+ 21 => "Witness for the Execution",
+ 22 => "Sleep Talkin' Guy",
+ 23 => "Funeral for a Door Nail",
+ 24 => "Camille",
+
+ 25 =>"The Son Also Rises",
+ 26 =>"The Man Who Cried Wife",
+ 27 =>"Symphony in Knocked Flat",
+ 28 =>"Yours, Very Deadly",
+ 29 =>"All Creatures Great and... Not So Great",
+ 30 =>"Big Man on Mulberry Street",
+ 31 =>"Atomic Shakespeare",
+ 32 =>"It's a Wonderful Job",
+ 33 =>"The Straight Poop",
+ 34 => "Poltergeist III – Dipesto Nothing",
+ 35 => "Blonde on Blonde",
+ 36 => "Sam & Dave",
+ 37 => "Maddie's Turn to Cry",
+ 38 => "I Am Curious... Maddie",
+ 39 => "To Heiress Human",
+
+ 40 => "A Trip to the Moon",
+ 41 => "Come Back Little Shiksa",
+ 42 => "Take a Left at the Altar",
+ 43 => "Tale in Two Cities",
+ 44 => "Cool Hand Dave (Part 1)",
+ 45 => "Cool Hand Dave (Part 2)",
+ 46 => "Father Knows Last",
+ 47 => "Los Dos DiPestos",
+ 48 => "Fetal Attraction",
+ 49 => "Tracks of My Tears",
+ 50 => "Eek! A Spouse!",
+ 51 => "Maddie Hayes Got Married",
+ 52 => "Here's Living With You, Kid",
+ 53 => "And the Flesh Was Made Word",
+
+ 54 => "A Womb With a View",
+ 55 => "Between a Yuk and a Hard Place",
+ 56 => "The Color of Maddie",
+ 57 => "Plastic Fantastic Lovers",
+ 58 => "Shirts and Skins",
+ 59 => "Take My Wife, For Example",
+ 60 => "I See England, I See France, I See Maddie's Netherworld",
+ 61 => "Those Lips, Those Lies",
+ 62 => "Perfetc",
+ 63 => "When Girls Collide",
+ 64 => "In 'n Outlaws",
+ 65 => "Eine Kleine Nacht Murder",
+ 66 => "Lunar Eclipse"
+ ),
+ 'episode_list' => 'wiki:en:List_of_Moonlighting_episodes'
+ );
\ No newline at end of file
Index: live/media/video/series/includes/columbo.php
===================================================================
--- live/media/video/series/includes/columbo.php (revision 0)
+++ live/media/video/series/includes/columbo.php (revision 198)
@@ -0,0 +1,163 @@
+<?php
+
+$columbo = array(
+ 'ignore' => true,
+ 'channel' => 'ITV1/3',
+ 'showtimes' => 'So 11:10',
+ 'seen' => array(1),
+ 'last_seen' => mktime(11, 10, 0, 6, 12, 2011),
+ 'seasons' => array(9, 8, 8, 6, 6, 3, 5, 4, 6, 14),
+ 'episode_list' => 'wiki:en:List_of_Columbo_episodes',
+ 'episodes' => array(
+ 1 => "Prescription: Murder",
+ 2 => "Ransom for a Dead Man",
+// 3 => "Tödliche Trennung (Murder by the book)",
+ 4 => "Death Lends a Hand",
+// 5 => "Mord unter sechs Augen (Dead weight)",
+ 6 => "Suitable for Framing",
+// 7 => "Schritte aus dem Schatten (Lady in waiting",
+ 8 => "Short Fuse",
+ 9 => "Blueprint for Murder",
+// 10 => "Etüde in schwarz (Étude in black)",
+// 11 => "Blumen des Bösen (The greenhouse jungle)",
+// 12 => "Wenn der Eismann kommt (The most crucial game)",
+// 13 => "Alter schützt vor Torheit nicht (Dagger of the mind)",
+ 14 => "Requiem for a Falling Star",
+ 15 => "A Stitch In Crime",
+// 16 => "Schach dem Mörder (The most dangerous match)",
+ 17 => "Double Shock",
+// 18 => "Ein Hauch von Mord (Lovely but lethal)",
+// 19 => "Wein ist dicker als Blut (Any old port in a storm)",
+// 20 => "Stirb für mich (Candidate for crime)",
+ 21 => "Double Exposure",
+// 22 => "Schreib oder stirb (Publish or perish)",
+// 23 => "Teuflische Intelligenz (Mind over mayhem)",
+// 24 => "Schwanengesang (Swan song)",
+// 25 => "Meine Tote – deine Tote (A friend in deed)",
+// 26 => "An Exercise in Fatality",
+ 27 => "Negative Reaction",
+// 28 => "By Dawn's Early Light",
+// 29 => "Troubled waters",
+// 30 => "Playback",
+// 31 => "Der Schlaf, der nie endet (A deadly state of mind)",
+// 32 => "Forgotten Lady",
+// 33 => "Mord in der Botschaft (A case of immunity)",
+ 34 => "Identity Crisis",
+ 35 => "A Matter of Honor",
+// 36 => "Wenn der Schein trügt (Now you see him)",
+// 37 => "Last Salute to the Commodore",
+// 38 => "Mord im Bistro (Fade in to murder)",
+// 39 => "Bei Einbruch Mord (Old-fashioned murder)",
+// 40 => "Todessymphonie (The bye-bye sky high I.Q. murder case)",
+ 41 => "Try and Catch Me",
+// 42 => "Mord à la carte (Murder under glass)",
+// 43 => "Mord in eigener Regie (Make me a perfect murder)",
+// 44 => "Mord per Telefon (How to dial a murder)",
+// 45 => "The Conspirators",
+// 46 => "Tödliche Tricks (Columbo goes to the guillotine)",
+// 47 => "Die vergessene Tote (Murder, smoke and shadows)",
+// 48 => "Sex and the Married Detective",
+// 49 => "Tödliche Kriegsspiele (auch: Täuschungsmanöver) (Grand deceptions)",
+// 50 => "Murder, a Self Portrait",
+// 51 => "Columbo Cries Wolf",
+// 52 => "Mord nach Termin (Agenda for murder)",
+// 53 => "Ruhe sanft, Mrs. Columbo (Rest in peace, Mrs. Columbo)",
+ 54 => "Uneasy Lies the Crown",
+// 55 => "Niemand stirbt zweimal (Murder in Malibu)",
+// 56 => "Luzifers Schüler (Columbo goes to college)",
+ 57 => "Caution: Murder Can Be Hazardous To Your Health",
+// 58 => "Tödliche Liebe (Columbo and the murder of a rock star)",
+// 59 => "Tödlicher Jackpot (Death hits the jackpot)",
+// 60 => "Bluthochzeit (No time to die)",
+ 61 => "A Bird in the Hand",
+ 62 => "It's All in the Game",
+ 63 => "Butterfly in Shades of Grey",
+// 64 => "Undercover",
+// 65 => "Strange Bedfellows",
+// 66 => "A Trace of Murder – 25th Anniversary",
+ 67 => "Ashes To Ashes",
+ 68 => "Murder With Too Many Notes",
+// 69 => "Die letzte Party (Columbo Likes the Nightlife)"
+ )
+);
+
+$columbo_de = array(
+ 'ignore' => true,
+ 'channel' => 'Super&nbsp;RTL / ORF2',
+ 'showtimes' => 'So 22:30 / 23:55',
+// 'seen' => array(1),
+// 'last_seen' => mktime(11, 10, 0, 6, 12, 2011),
+ 'seasons' => array(9, 8, 8, 6, 6, 3, 5, 4, 6, 14),
+ 'episode_list' => 'wiki:Columbo#Episoden',
+ 'episodes' => array(
+ 1 => "Mord nach Rezept (Prescription: Murder)",
+ 2 => "Lösegeld für einen Toten (Ransom for a Dead Man)",
+// 3 => "Tödliche Trennung (Murder by the book)",
+ 4 => "Mord mit der linken Hand (Death Lends a Hand)",
+ 5 => "Mord unter sechs Augen (Dead Weight)",
+ 6 => "Mord in Pastell (Suitable for framing)",
+// 7 => "Schritte aus dem Schatten (Lady in waiting)",
+ 8 => "Zigarren für den Chef (Short Fuse)",
+ 9 => "Ein Denkmal für die Ewigkeit (Blueprint for Murder)",
+ 10 => "Étude in schwarz (Étude in black)",
+// 11 => "Blumen des Bösen (The greenhouse jungle)",
+// 12 => "Wenn der Eismann kommt (The most crucial game)",
+ 13 => "Alter schützt vor Torheit nicht (Dagger of the mind)",
+// 14 => "Klatsch kann tödlich sein (Requiem for a falling star)",
+// 15 => "Zwei Leben an einem Faden (A Stitch In Crime)",
+// 16 => "Schach dem Mörder (The most dangerous match)",
+// 17 => "Doppelter Schlag (Double shock)",
+// 18 => "Ein Hauch von Mord (Lovely but lethal)",
+ 19 => "Wein ist dicker als Blut (Any Old Port in a Storm)",
+ 20 => "Stirb für mich (Candidate for Crime)",
+ 21 => "Ein gründlich motivierter Tod (Double Exposure)",
+ 22 => "Schreib oder stirb (Publish or Perish)",
+ 23 => "Teuflische Intelligenz (Mind Over Mayhem)",
+// 24 => "Schwanengesang (Swan song)",
+// 25 => "Meine Tote – deine Tote (A friend in deed)",
+ 26 => "Geld, Macht und Muskeln (An Exercise in Fatality)",
+ 27 => "Momentaufnahme für die Ewigkeit (Negative Reaction)",
+ 28 => "Des Teufels Corporal (By Dawn's Early Light)",
+ 29 => "Traumschiff des Todes (Troubled Waters)",
+// 30 => "Playback",
+ 31 => "Der Schlaf, der nie endet (A Deadly State of Mind)",
+ 32 => "Tödliches Comeback (Forgotten Lady)",
+ 33 => "Mord in der Botschaft (A Case of Immunity)",
+// 34 => "Tod am Strand (Identity crisis)",
+ 35 => "Blutroter Staub (A Matter of Honor)",
+// 36 => "Wenn der Schein trügt (Now you see him)",
+ 37 => "Der alte Mann und der Tod (Last Salute to the Commodore)",
+// 38 => "Mord im Bistro (Fade in to murder)",
+// 39 => "Bei Einbruch Mord (Old-fashioned murder)",
+// 40 => "Todessymphonie (The bye-bye sky high I.Q. murder case)",
+ 41 => "Alter schützt vor Morden nicht (Try and Catch Me)",
+// 42 => "Mord à la carte (Murder under glass)",
+ 43 => "Mord in eigener Regie (Make Me A Perfect Murder)",
+ 44 => "Mord per Telefon (How to Dial a Murder)",
+ 45 => "Waffen des Bösen (The conspirators) (06.11.2011 22:20)",
+ 46 => "Tödliche Tricks (Columbo Goes to the Guillotine)",
+ 47 => "Die vergessene Tote (Murder, Smoke and Shadows)",
+ 48 => "Black Lady (Sex and the Married Detective)",
+ 49 => "Tödliche Kriegsspiele (auch: Täuschungsmanöver) (Grand deceptions)",
+ 50 => "Selbstbildnis eines Mörders (Murder, a Self Portrait)",
+ 51 => "Wer zuletzt lacht… (Columbo Cries Wolf)",
+ 52 => "Mord nach Termin (Agenda for Murder)",
+ 53 => "Ruhe sanft, Mrs. Columbo (Rest in Peace, Mrs. Columbo)",
+// 54 => "Schleichendes Gift (Uneasy lies the crown)",
+// 55 => "Niemand stirbt zweimal (Murder in Malibu)",
+ 56 => "Luzifers Schüler (Columbo Goes to College)",
+ 57 => "Der erste und der letzte Mord (Caution: Murder Can Be Hazardous To Your Health)",
+ 58 => "Tödliche Liebe (Columbo And The Murder of a Rock Star)",
+ 59 => "Tödlicher Jackpot (Death Hits the Jackpot)",
+ 60 => "Bluthochzeit (No time to die)",
+// 61 => "Ein Spatz in der Hand (A Bird in the Hand) (2011-07-10 11:15)",
+ 62 => "Der Tote in der Heizdecke (It's All in the Game)",
+ 63 => "Todesschüsse auf dem Anrufbeantworter (Butterfly in Shades of Grey)",
+ 64 => "Undercover",
+ 65 => "Mord unter Brüdern (auch: Seltsame Bettgenossen) (Strange Bedfellows)",
+ 66 => "Keine Spur ist sicher (A trace of murder – 25th anniversary)",
+// 67 => "Das Aschenpuzzle (Ashes To Ashes)",
+// 68 => "Mord nach Takten (Murder With Too Many Notes) (2011-07-23)",
+// 69 => "Die letzte Party (Columbo Likes the Nightlife)"
+ )
+);
\ No newline at end of file
Index: live/media/video/series/includes/scrubs.php
===================================================================
--- live/media/video/series/includes/scrubs.php (revision 0)
+++ live/media/video/series/includes/scrubs.php (revision 198)
@@ -0,0 +1,300 @@
+<?php
+
+$scrubs = array(
+// 'ignore' => true,
+ 'channel' => 'E4',
+ 'showtimes' => 'Mo–Fr 18:00–18:30',
+ 'seen' => array(array(1, 24)),
+ 'last_seen' => mktime(18, 30, 0, 9, 6, 2011),
+ 'seasons' => array(24, 22, 22, 25, 24, 22, 11, 19, 13),
+ 'episodes' => array(
+ 1 => "My First Day",
+ 2 => "My Mentor",
+ 3 => "My Best Friend’s Mistake",
+ 4 => "My Old Lady",
+ 5 => "My Two Dads",
+ 6 => "My Bad",
+ 7 => "My Super Ego",
+ 8 => "My Fifteen Minutes",
+ 9 => "My Day Off",
+ 10 => "My Nickname",
+ 11 => "My Own Personal Jesus",
+ 12 => "My Blind Date",
+ 13 => "My Balancing Act",
+ 14 => "My Drug Buddy",
+ 15 => "My Bed Banter & Beyond",
+ 16 => "My Heavy Meddle",
+ 17 => "My Student",
+ 18 => "My Tuscaloosa Heart",
+ 19 => "My Old Man",
+ 20 => "My Way or the Highway",
+ 21 => "My Sacrificial Clam",
+ 22 => "My Occurrence (1)",
+ 23 => "My Hero (2)",
+ 24 => "My Last Day",
+
+ 25 => "My Overkill",
+ 26 => "My Nightingale",
+ 27 => "My Case Study",
+ 28 => "My Big Mouth",
+ 29 => "My New Coat",
+ 30 => "My Big Brother",
+ 31 => "My First Step",
+ 32 => "My Fruit Cups",
+ 33 => "My Lucky Day",
+ 34 => "My Monster",
+ 35 => "My Sex Buddy",
+ 36 => "My New Old Friend",
+ 37 => "My Philosophy",
+ 38 => "My Brother, My Keeper",
+ 39 => "His Story",
+ 40 => "My Karma",
+ 41 => "My Own Private Practice Guy",
+ 42 => "My T.C.W.",
+ 43 => "My Kingdom",
+ 44 => "My Interpretation",
+ 45 => "My Drama Queen",
+ 46 => "My Dream Job",
+
+ 47 => "My Own American Girl",
+ 48 => "My Journey",
+ 49 => "My White Whale",
+ 50 => "My Lucky Night",
+ 51 => "My Brother, Where Art Thou?",
+ 52 => "My Advice to You",
+ 53 => "My Fifteen Seconds",
+ 54 => "My Friend the Doctor",
+ 55 => "My Dirty Secret",
+ 56 => "My Rule of Thumb",
+ 57 => "My Clean Break",
+ 58 => "My Catalyst",
+ 59 => "My Porcelain God",
+ 60 => "My Screw Up",
+ 61 => "My Tormented Mentor",
+ 62 => "My Butterfly",
+ 63 => "My Moment of Un-Truth",
+ 64 => "His Story II",
+ 65 => "My Choosiest Choice of All",
+ 66 => "My Fault",
+ 67 => "My Self-Examination",
+ 68 => "My Best Friend’s Wedding",
+
+ 69 => "My Old Friend's New Friend",
+ 70 => "My Office",
+ 71 => "My New Game",
+ 72 => "My First Kill",
+ 73 => "Her Story",
+ 74 => "My Cake",
+ 75 => "My Common Enemy",
+ 76 => "My Last Chance",
+ 77 => "My Malpractical Decision (1)",
+ 78 => "My Female Trouble (2)",
+ 79 => "My Unicorn",
+ 80 => "My Best Moment",
+ 81 => "My Ocardial Infarction",
+
+ 130 => "My Scrubs",
+
+ 141 => "My Hard Labor",
+ 142 => "My Inconvenient Truth",
+ ),
+ 'episode_list' => 'wiki:en:List_of_Scrubs_episodes'
+);
+
+$scrubs_de = array(
+ 'ignore' => true,
+ 'channel' => 'ProSieben',
+ 'showtimes' => 'Mo–Fr 15:30',
+ 'seen' => array(array(1, 16)),
+ 'last_seen' => mktime(14, 55, 0, 9, 8, 2011),
+ 'seasons' => array(24, 22, 22, 25, 24, 22, 11, 19, 13),
+ 'episode_list' => 'wiki:Liste_der_Scrubs-Episoden',
+ 'episodes' => array(
+ 1 => "Mein erster Tag (My First Day)",
+ 2 => "Mein Mentor (My Mentor)",
+ 3 => "Mein Kunstfehler (My Best Friend’s Mistake)",
+ 4 => "Meine Lieblingspatientin (My Old Lady)",
+ 5 => "Meine Vorbilder (My Two Dads)",
+ 6 => "Mein Pech (My Bad)",
+ 7 => "Mein Konkurrent (My Super Ego)",
+ 8 => "Meine fünfzehn Minuten als Held (My Fifteen Minutes)",
+ 9 => "Mein freier Tag (My Day Off)",
+ 10 => "Mein Spitzname (My Nickname)",
+ 11 => "Mein Weihnachtswunder (My Own Personal Jesus)",
+ 12 => "Mein Date aus der Röhre (My Blind Date)",
+ 13 => "Meine zweite Chance (My Balancing Act)",
+ 14 => "Meine Alex (My Drug Buddy)",
+ 15 => "Meine Beziehung (My Bed Banter & Beyond)",
+ 16 => "Meine Melone (My Heavy Meddle)",
+ 17 => "Mein Student (My Student)",
+ 18 => "Mein schlimmster Fall (My Tuscaloosa Heart)",
+ 19 => "Mein alter Herr (My Old Man)",
+ 20 => "Mein Freund, der Chirurg (My Way or the Highway)",
+ 21 => "Mein größtes Opfer (My Sacrificial Clam)",
+ 22 => "Meine Zweifel (My Occurrence (1))",
+ 23 => "Mein Held (My Hero (2))",
+ 24 => "Mein letzter Tag (My Last Day)",
+
+ 25 => "Mein Rundumschlag (My Overkill)",
+ 26 => "Mein Nachtdienst (My Nightingale)",
+ 27 => "Mein Ticket nach Reno (My Case Study)",
+ 28 => "Meine große Klappe (My Big Mouth)",
+ 29 => "Mein Kittel (My New Coat)",
+ 30 => "Mein großer Bruder (My Big Brother)",
+ 31 => "Mein erster Schritt (My First Step)",
+ 32 => "Mein Pudding (My Fruit Cups)",
+ 33 => "Mein Glückstag (My Lucky Day)",
+ 34 => "Mein Monster (My Monster)",
+ 35 => "Meine Bettbeziehung (My Sex Buddy)",
+ 36 => "Meine neue alte Freundin (My New Old Friend)",
+ 37 => "Meine Theorie (My Philosophy)",
+ 38 => "Mein modernes Wissen (My Brother, My Keeper)",
+ 39 => "Seine Geschichte (His Story)",
+ 40 => "Mein Karma (My Karma)",
+ 41 => "Mein Coach (My Own Private Practice Guy)",
+ 42 => "Meine scharfe Koma-Braut (My T.C.W.)",
+ 43 => "Mein Größenwahn (My Kingdom)",
+ 44 => "Meine Interpretation (My Interpretation)",
+ 45 => "Mein Drama (My Drama Queen)",
+ 46 => "Mein Traumjob (My Dream Job)",
+
+ 47 => "Mein drittes Jahr (My Own American Girl)",
+ 48 => "Meine neue Ära (My Journey)",
+ 49 => "Mein Berater (My White Whale)",
+ 50 => "Mein Stolz (My Lucky Night)",
+ 51 => "Mein großer Fehler (My Brother, Where Art Thou?)",
+ 52 => "Mein Handtaschentrick (My Advice to You)",
+ 53 => "Meine fünfzehn Sekunden (My Fifteen Seconds)",
+ 54 => "Meine Kollegin (My Friend the Doctor)",
+ 55 => "Mein Verzicht (My Dirty Secret)",
+ 56 => "Meine Regeln (My Rule of Thumb)",
+ 57 => "Mein sauberer Abgang (My Clean Break)",
+ 58 => "Mein Katalysator (My Catalyst)",
+ 59 => "Meine Offenbarung (My Porcelain God)",
+ 60 => "Meine Schuld (My Screw Up)",
+ 61 => "Meine sexistischen Kollegen (My Tormented Mentor)",
+ 62 => "Mein Schmetterling (My Butterfly)",
+ 63 => "Meine Freundin Carla (My Moment of Un-Truth)",
+ 64 => "Mein Freund Turk (His Story II)",
+ 65 => "Meine kniffligste Entscheidung (My Choosiest Choice of All)",
+ 66 => "Meine wahren Gefühle (My Fault)",
+ 67 => "Mein Rückzieher (My Self-Examination)",
+ 68 => "Mein bester Freund heiratet (My Best Friend’s Wedding)",
+
+ 69 => "Meine Psychiaterin (My Old Friend’s New Friend)",
+ 70 => "Meine Beförderung (My Office)",
+ 71 => "Meine Schmach (My New Game)",
+ 72 => "Meine Begegnung mit dem Tod (My First Kill)",
+ 73 => "Ihre Geschichte (Her Story)",
+ 74 => "Meine Trauer (My Cake)",
+ 75 => "Mein hollywoodreifer Auftritt (My Common Enemy)",
+ 76 => "Meine einmalige Chance (My Last Chance)",
+ 77 => "Mein Spiel mit dem Feuer (My Malpractical Decision)",
+ 78 => "Meine Hexe (My Female Trouble)",
+ 79 => "Mein Einhorn (My Unicorn)",
+ 80 => "Mein bester Moment (My Best Moment)",
+ 81 => "Mein Absturz (My Ocardial Infarction)",
+ 82 => "Mein Partner (My Lucky Charm)",
+ 83 => "Mein Eid (My Hypocritical Oath)",
+ 84 => "Meine Lügen (My Quarantine)",
+ 85 => "Meine Sitcom (My Life in Four Cameras)",
+ 86 => "Meine Mitbewohner (My Roommates)",
+ 87 => "Mein Kuchen (My Best Laid Plans)",
+ 88 => "Mein Chef mal anders (My Boss’s Free Haircut)",
+ 89 => "Meine Lippen sind versiegelt (My Lips Are Sealed)",
+ 90 => "Meine Maßnahme (My Big Move)",
+ 91 => "Mein Glaube an die Menschheit (My Faith in Humanity)",
+ 92 => "Meine Kollegen, die Egozentriker (My Drive-By)",
+ 93 => "Mein Schokobär (My Changing Ways)",
+
+ 94 => "Mein Aufstieg (My Intern’s Eyes)",
+ 95 => "Mein Sinn für Humor (My Rite of Passage)",
+// 96 => "Mein Triathlon (My Day At The Races)",
+// 97 => "Meine Laudatio (My Jiggly Ball)",
+// 98 => "Mein neuer Gott (My New God)",
+// 99 => "Mein falscher Rückschluss (My Missed Perception)",
+// 100 => "Mein Weg nach Hause (My Way Home)",
+// 101 => "Mein Recht auf ein Dankeschön (My Big Bird)",
+// 102 => "Mein kleiner Tollpatsch (My Half-Acre)",
+// 103 => "Meine Therapie (Her Story II)",
+// 104 => "Mein Kummer (My Buddy’s Booty)",
+// 105 => "Mein Schützling (My Cabbage (1))",
+// 106 => "Mein Leidensgenosse (My Five Stages (2))",
+// 107 => "Mein Walkie Talkie (My Own Personal Hell)",
+// 108 => "Meine wunderschönen Haare (My Extra Mile)",
+// 109 => "Meine clevere Idee (My Bright Idea)",
+// 110 => "Mein Bleistift (My Chopped Liver)",
+// 111 => "Meine Aufrichtigkeit (My New Suit)",
+// 112 => "Mein Freund, der Hausmeister (His Story III)",
+// 113 => "Mein Mittagessen mit Cox (My Lunch)",
+// 114 => "Mein gefallenes Idol (My Fallen Idol)",
+// 115 => "Mein Déjà vu (My Déjà Vu)",
+// 116 => "Mein neuer Schwarm (My Urologist)",
+// 117 => "Mein perfektes Date (My Transition (1))",
+// 118 => "Mein Spiegelbild (My Mirror Image (2))",
+// 119 => "Mein Baby und sein Baby (My Best Friend’s Baby’s Baby and My Baby’s Baby)",
+// 120 => "Mein Kaffee (My Coffee)",
+// 121 => "Mein Dr. House (My House)",
+// 122 => "Mein Neid (My Friend With Money)",
+// 123 => "Mein Musical (My Musical)",
+// 124 => "Meine streitsüchtigen Kollegen (His Story IV)",
+// 125 => "Meine Spritztour (My Road to Nowhere)",
+// 126 => "Mein Durchhänger (My Perspective)",
+// 127 => "Meine Abmachung (My Therapeutic Month)",
+// 128 => "Meine Erinnerungen (My Night To Remember)",
+// 129 => "Mein Goldfischglas (My Fishbowl)",
+// 130 => "Meine neuen Klamotten (My Scrubs)",
+// 131 => "Mein scharfes Kindermädchen (My No Good Reason (1))",
+// 132 => "Meine Patenschaft (My Long Goodbye (2))",
+// 133 => "Mein tauber Patient (My Words of Wisdom)",
+// 134 => "Meine Nebendarsteller (Their Story)",
+// 135 => "Meine Eifersucht (My Turf War)",
+// 136 => "Meine kalte Dusche (My Cold Shower)",
+// 137 => "Meine Reise nach Phoenix (My Conventional Wisdom)",
+// 138 => "Mein Kaninchen (My Rabbit)",
+// 139 => "Meine Zukunft (My Point Of No Return)",
+// 140 => "Mein voller Durchblick (My Own Worst Enemy)",
+// 141 => "Meine schwere Geburt (My Hard Labor)",
+// 142 => "Mein Erwachsenwerden (My Inconvenient Truth)",
+// 143 => "Meine Eselsbrücken (My Identity Crisis)",
+// 144 => "Mein inneres Kind (My Growing Pains)",
+// 145 => "Meine Tabellenführung (My #1 Doctor)",
+// 146 => "Meine Wasserbomben (My Bad Too)",
+// 147 => "Mein Leben als Mann (My Manhood)",
+// 148 => "Meine Dusel-Diagnose (My Dumb Luck)",
+// 149 => "Mein neuer Chef (My Waste of Time)",
+// 150 => "Mein Märchen (My Princess)",
+// 151 => "Meine Vollidioten (My Jerks)",
+// 152 => "Mein bester Fall (My Last Words)",
+// 153 => "Mein Polizeistaat (My Saving Grace)",
+// 154 => "Meine alte Flamme (My Happy Place)",
+// 155 => "Meine Sesamstraße (My ABC’s)",
+// 156 => "Meine tolle Liebesnacht (My Cookie Pants)",
+// 157 => "Meine neue Rolle (My New Role)",
+// 158 => "Mein verliebter Anwalt (My Lawyer's In Love)",
+// 159 => "Meine Handy-Stimme (My Absence)",
+// 160 => "Mein Brusthaar (My Comedy Show)",
+// 161 => "Meine sprechenden Hände (My Nah Nah Nah)",
+// 162 => "Meine Beliebtheit (Their Story II)",
+// 163 => "Mein Vollmond (My Full Moon)",
+// 164 => "Mein Bahamas, Teil 1 (My Soul On Fire, Part 1)",
+// 165 => "Mein Bahamas, Teil 2 (My Soul On Fire, Part 2)",
+// 166 => "Mein Chefchirurg (My Cuz)",
+// 167 => "Meine 37 Minuten (My Chief Concern)",
+// 168 => "Mein Finale, Teil 1 (My Finale, Part 1)",
+// 169 => "Mein Finale, Teil 2 (My Finale, Part 2)",
+// 170 => "Unsere erste Vorlesung (Our First Day of School)",
+// 171 => "Unser Trinkerfreund (Our Drunk Friend)",
+// 172 => "Unsere Vorbilder (Our Role Models)",
+// 173 => "Unsere letzten Geschichten (Our Histories)",
+// 174 => "Unsere Blutsauger (Our Mysteries)",
+// 175 => "Unsere Besten (Our New Girl-Bro)",
+// 176 => "Unsere weißen Kittel (Our White Coats)",
+// 177 => "Unsere schrägen Paare (Our Couples)",
+// 178 => "Unser Babymoon (Our Stuff Gets Real)",
+// 179 => "Unser Spickzettel (Our True Lies)",
+// 180 => "Unsere Höllenwoche (Our Dear Leaders)",
+// 181 => "Unsere Fahrkünste (Our Driving Issues)",
+// 182 => "Unser Dankeschön (Our Thanks)",
+ )
+);
Index: live/media/video/series/includes/alf.php
===================================================================
--- live/media/video/series/includes/alf.php (revision 0)
+++ live/media/video/series/includes/alf.php (revision 198)
@@ -0,0 +1,113 @@
+<?php
+
+$serien['<span class="alf">ALF</span>'] = array(
+ 'channel' => 'Tele 5',
+ 'showtimes' => 'Sa 14:05–15:30',
+ 'seen' => array(array(1, 21)),
+ 'seasons' => array(26, 26, 26, 24),
+ 'episode_list' => 'wiki:Liste der Alf-Episoden',
+ 'episodes' => array(
+1 => 'Hallo, da bin ich (A.L.F)',
+2 => 'Die Nacht, in der die Pizza kam (Strangers In The Night)',
+3 => 'Katzenjammer (Looking For Lucky)',
+4 => 'Großer Mann was nun? (Pennsylvania 6-5000)',
+5 => "Parasit mit Puderquaste (Keepin' The Faith)",
+6 => 'Ganz im Vertrauen (For Your Eyes Only)',
+7 => 'Ein Mädchen namens Rhonda (Help Me Rhonda)',
+8 => "Eifersucht nach Noten (Don't It Make My Brown Eyes Blue)",
+9 => 'Der Sprung in die Tiefe (Jump)',
+10 => 'Die Spritztour (Baby, You Can Drive My Car)',
+11 => 'Fröhliche Ferien (On The Road Again)',
+12 => 'Eine schöne Bescherung (Oh, Tannerbaum)',
+13 => 'Wenn Schwiegermutter kommt (Mother And Child Reunion)',
+14 => 'Die Fernsehfamilie (Little Bit Of Soap)',
+15 => "Mit den besten Wünschen aus dem Jenseits (I've Got A New Attitude)",
+16 => 'Gestatten, mein Name ist Schlegel - Teil 1 (Try To Remember - Part 1)',
+17 => 'Gestatten, mein Name ist Schlegel - Teil 2 (Try To Remember - Part 2)',
+18 => 'Der Ausreißer (Border Song)',
+19 => 'Ein Käfig für den Narren (Wild Thing)',
+20 => 'Der Rollentausch (Going Out Of My Head Over You)',
+21 => 'Das Fenster zum Garten (Look Through Any Window)',
+22 => "Bühne frei für Spargelspitzen (It Isn't Easy... Bein' Green)",
+23 => 'Schulden und Sühne (The Gambler)',
+24 => 'Brians Sternstunde (Weird Science)',
+25 => 'Der Kammerjäger und die Kakerlake (La Cucaracha)',
+26 => 'Der blinde Passagier (Come Fly With Me)',
+27 => "Stets zu ihren Diensten (Working My Way Back To You)",
+28 => "Reif für die Insel (The Ballad Of Gilligan's Island)",
+29 => "Ein Schock fürs Leben (Take A Look At Me Now)",
+30 => "In der Kutte des Büßers (Wedding Bell Blues)",
+31 => "Zur besten Sendezeit (Prime Time)",
+32 => "Das Kostümfest (Some Enchanted Evening)",
+33 => "Der Schönheitswettbewerb (Oh, Pretty Woman)",
+34 => "Schluckauf Marke Melmac (Something's Wrong With Me)",
+35 => "Eine Reise durch die Nacht (Night Train)",
+36 => "Paradies für Flitterwöchner (Isn't It Romantic)",
+37 => "Der Traumkandidat (Hail To The Chief)",
+38 => "Wenn der Weihnachtsmann kommt - Teil 1 (Alf's Special Christmas - Part 1)",
+39 => "Wenn der Weihnachtsmann kommt - Teil 2 (Alf's Special Christmas - Part 2)",
+40 => "Der Junge von nebenan (The Boy Next Door)",
+41 => "Anwalt in eigener Sache (Can I Get A Witness?)",
+42 => "Onkel Albert (We're So Sorry, Uncle Albert)",
+43 => "Auf Verbrecherjagd - Teil 1 (Someone To Watch Over Me - Part 1)",
+44 => "Auf Verbrecherjagd - Teil 2 (Someone To Watch Over Me - Part 2)",
+45 => "Die Untermieterin (We Gotta Get Out Of This Place)",
+46 => "Ein Widersacher auf vier Beinen (You Ain't Nothing But A Hound Dog)",
+47 => "Auge um Auge (Hit Me With Your Best Shot)",
+48 => "Die Beförderung (Movin' Out)",
+49 => "Paules Puppenspieler (I'm Your Puppet)",
+50 => "Der Geist aus der Flasche (Tequila)",
+51 => "Der Schritt in die Öffentlichkeit (We Are Family)",
+52 => "Nebenjob gesucht (Varsity Drag)",
+53 => "Rendezvous gefälligst (Stop In The Name Of Love)",
+54 => "Blick zurück nach vorn (Stairway To Heaven)",
+55 => "Nachbarschaftshilfe (Breaking Up Is Hard To Do)",
+// 56 => "– (Tonight, Tonight - Part 1)",
+// 57 => "– (Tonight, Tonight - Part 2)",
+58 => "Reden ist Blech (Promises, Promises)",
+59 => "Der mysteriöse Fremde - Teil 1 (Turkey In The Straw - Part 1)",
+60 => "Der mysteriöse Fremde - Teil 2 (Turkey In The Straw - Part 2)",
+61 => "Auf neuen Wegen (Changes)",
+62 => "Ein Hippie namens Willie (My Back Pages)",
+63 => "Cousin Blinky (Alone Again, Naturally)",
+64 => "Der Zauberlehrling (Do You Believe In Magic?)",
+65 => "Der Zeuge im Netz (Hide Away)",
+66 => "Ein Fall für drei (Fight Back)",
+67 => "Ich und der King (Suspicious Minds)",
+68 => "Ein Baby auf Probe (Baby Love)",
+69 => "Der Liebesdiener (Standing In The Shadows Of Love)",
+70 => "Der Pechvogel (Superstition)",
+71 => "Erpresser am Telefon (Running Scared)",
+72 => "Zwischen zwei Stühlen (Torn Between Two Lovers)",
+73 => "Der Herr der Ameisen (Funeral For A Friend)",
+74 => "Bangemachen gilt nicht (Don't Be Afraid Of The Dark)",
+75 => "Mutter Langfinger (Have You Seen Your Mother, Baby, Standing In The Shadow?)",
+76 => "Der Tramp (Like An Old Time Movie)",
+77 => "Die Erde bebt (Shake, Rattle & Roll)",
+78 => "Der Geburtshelfer (Having My Baby)",
+79 => "Eric, wo bist du? (Baby, Come Back)",
+80 => "Mr. Universum (Lies)",
+81 => "Der Heiratsschwindler (Wanted: Dead Or Alive)",
+82 => "Wie gewonnen, so zerronnen (We're In The Money)",
+83 => "Ein Seelenkundler für den Hausgebrauch (Mind Games)",
+84 => "Im Baumwollrausch (Hooked On A Feeling)",
+85 => "Bruder Neal (He Ain't Heavy, He's Willie's Brother)",
+86 => "Darf ich bekannt machen... (The First Time I Ever Saw Your Face)",
+87 => "Alles für die Katz' (Live And Let Die)",
+88 => "Ungebetene Gäste (Break Up To Make Up)",
+89 => "Männerwirtschaft (Happy Together)",
+90 => "Ein schwieriger Patient (Fever)",
+91 => "Die Hawaii-Party (It's My Party)",
+92 => "Es war einmal ein Komiker (Make 'Em Laugh)",
+93 => "In letzter Minute (Love On The Rocks)",
+94 => "Genie und Wahnsinn (True Colors)",
+95 => "Der Jodelpriester (Gimme That Old Time Religion)",
+96 => "Blendende Aussichten (Future's So Bright, I Gotta Wear Shades)",
+97 => "Die Seniorenparty (When I'm Sixty-Four)",
+98 => "Auf Schatzsuche (Mr. Sandman)",
+99 => "Der Umweltschützer (Stayin' Alive)",
+100 => "Die Wolfshungerdiät (Hungry Like The Wolf)",
+101 => "Umzugsfreuden (I Gotta Be Me)",
+102 => "Die Entscheidung (Consider Me Gone)"
+)
+);
\ No newline at end of file
Index: live/media/video/series/includes/charmed.php
===================================================================
--- live/media/video/series/includes/charmed.php (revision 0)
+++ live/media/video/series/includes/charmed.php (revision 198)
@@ -0,0 +1,198 @@
+<?php
+
+$charmed = array(
+// 'ignore' => true,
+ 'channel' => 'online',
+// 'showtimes' => 'Do 21:50',
+ 'seen' => array(array(1, 22)),
+// 'last_seen' => mktime(8, 10, 0, 10, 20, 2011),
+ 'seasons' => array(22, 22, 22, 22, 23, 23, 22, 22),
+ 'episode_list' => 'http://www.tvsi.de/mysteryserien/charmed.php',
+ 'episodes' => array(
+ 1 => "Something Wicca This Way Comes (Das Buch der Schatten)",
+ 2 => "I've Got You Under My Skin (Teuflische Augen)",
+ 3 => "Thank You For Not Morphing (Die Formwandler)",
+ 4 => "Dead Man Dating (Rendezvous mit einem Geist)",
+ 5 => "Dream Sorcerer (Tödliche Träume)",
+ 6 => "Wedding From Hell (Höllenhochzeit)",
+ 7 => "The Fourth Sister (Schwester der Nacht)",
+ 8 => "The Truth is Out There... and It Hurts (Der Wahrheitszauber)",
+ 9 => "The Witch Is Back (Rückkehr aus dem Jenseits)",
+ 10 => "Wicca Envy (Machtlos)",
+ 11 => "Feats of Clay (Der Fluch der Urne)",
+ 12 => "The Wendigo (Wendigo)",
+ 13 => "From Fear To Eternity (Liebe ist die stärkste Macht)",
+ 14 => "Secrets and Guys (Nachricht von Max)",
+ 15 => "Is There a Woogy in the House (Wer hat Angst vorm Schwarzen Mann?)",
+ 16 => "Which Prue Is It, Anyway? (Man stirbt nur dreimal)",
+ 17 => "That '70s Episode (Zurück in die Vergangenheit)",
+ 18 => "When Bad Warlocks Go Good (Wenn das Böse erwacht)",
+ 19 => "Out of Sight (Blind)",
+ 20 => "The Power of Two (Ein Geist, zwei Schwestern)",
+ 21 => "Wächter der Dunkelheit (Love Hurts)",
+ 22 => "Immer wieder Mittwoch (Deja Vu All Over Again)",
+
+ 23 => "Abraxas (Witch Trial)",
+ 24 => "Hexenjagd (Morality Bites)",
+ 25 => "Voll im Bild (The Painted World)",
+ 26 => "Pakt mit dem Teufel (Devil's Music)",
+ 27 => "Einfach unwiderstehlich (She's a Man, Baby, a Man!)",
+ 28 => "Der Auserwählte (That Old Black Magic)",
+ 29 => "Die Akasha-Rollen (They're Everywhere)",
+ 30 => "Der Schrecken der Tiefe (P3 H2O)",
+ 31 => "Zwischen Himmel und Hölle (Ms. Hellfire)",
+ 32 => "Mitten ins Herz (Heartbreak City)",
+ 33 => "Drei Hexen und ein Baby (Reckless Abandon)",
+ 34 => "Fieber (Awakened)",
+ 35 => "Ein tierisch guter Spuk (Animal Pragmatism)",
+ 36 => "Verflucht in alle Ewigkeit (Pardon My Past)",
+ 37 => "Das Zeichen (Give Me A Sign)",
+ 38 => "Vom Pech verfolgt (Murphy's Luck)",
+ 39 => "Ewige Jugend (How To Make A Quilt Out Of Americans)",
+ 40 => "Der reinste Horror (Chick Flick)",
+ 41 => "Ex Libris",
+ 42 => "Hexenblut (Astral Monkey)",
+ 43 => "Die Reiter der Apokalypse (Apocalypse Not)",
+ 44 => "Wünsch Dir was (Be Careful What You Witch For)",
+
+ 45 => "Die Verschwörung des Bösen (The Honeymoon's Over)",
+ 46 => "Hexenhochzeit (Magic Hour)",
+ 47 => "Von Feen und Trollen (Once Upon a Time)",
+ 48 => "Das Zeitportal (All Halliwell's Eve)",
+ 49 => "Die Dämonenfalle (Sight Unseen)",
+ 50 => "Die Macht der Gefühle (Primrose Path)",
+ 51 => "Alle oder keine (Power Outage)",
+ 52 => "Balthasar (Sleuthing With the Enemy)",
+ 53 => "Besessen (Coyote Piper)",
+ 54 => "Wenn der Eismann kommt (We Scream For Ice Cream)",
+ 55 => "Gegen alle Regeln (Blinded By the Whitelighter)",
+ 56 => "Verlorene Seelen (Wrestling With Demons)",
+ 57 => "Das Böse in mir (Bride and Gloom)",
+ 58 => "Stadt der Geister (The Good, the Bad and the Cursed)",
+ 59 => "Trauung mit Hindernissen (Just Harried)",
+ 60 => "Der Tod siegt immer (Death Takes a Halliwell)",
+ 61 => "Aller guten Dinge sind neun (Pre-Witched)",
+ 62 => "Die sieben Todsünden (Sin Francisco)",
+ 63 => "Die Bruderschaft (The Demon Who Came In From The Cold)",
+ 64 => "Freund oder Feind? (Exit Strategy)",
+ 65 => "Die Todesfee (Look Who's Barking)",
+ 66 => "Das Ende (All Hell Breaks Loose)",
+
+ 67 => "Die neue Macht der Drei (Charmed Again (1))",
+ 68 => "48 Stunden (Charmed Again (2))",
+ 69 => "Die drei Furien (Hell Hath No Fury)",
+ 70 => "Der Sammler (Size Matters)",
+ 71 => "Der Mann mit dem Drachendolch (Enter the Demon)",
+ 72 => "Ein Prinz für Paige (A Knight to Remember)",
+ 73 => "Hirngespinste (Brain Drain)",
+ 74 => "Schwarz wie der Teufel (Black As Cole)",
+ 75 => "Der Ring der Musen (Muse To My Ears)",
+ 76 => "Geister der Vergangenheit (A Paige From The Past)",
+ 77 => "Die zwölf Geschworenen (Trial By Magic)",
+ 78 => "Feuer (Lost and Bound)",
+ 79 => "Das schwarze Nichts (Charmed and Dangerous)",
+ 80 => "Die Frage aller Fragen (The Three Faces of Phoebe)",
+ 81 => "Die Braut trägt schwarz (Marry-Go-Round)",
+ 82 => "Das fünfte Rad (The Fifth Halliwheel)",
+ 83 => "Der Soldat Leo Wyatt (Saving Private Leo)",
+ 84 => "Beiß mich (Bite Me)",
+ 85 => "Die Krönung (We're Off To See The Wizard)",
+ 86 => "Lang lebe die Königin (Long Live The Queen)",
+ 87 => "Die Brut des Bösen (Womb Raider)",
+ 88 => "Der Engel des Schicksals (Witch Way Now?)",
+
+ 89 => "Der Ruf des Meeres (1) (A Witch's Tail (1))",
+ 90 => "Der Ruf des Meeres (2) (A Witch's Tail (2))",
+ 91 => "Und wenn sie nicht gestorben sind … (Happily Ever After)",
+ 92 => "Sirenengesang (Siren Song)",
+ 93 => "Superhelden (Witches In Tights)",
+ 94 => "Böse Augen (The Eyes Have It)",
+ 95 => "Barbas (Sympathy For The Demon)",
+ 96 => "Tödliche Visionen (A Witch in Time)",
+ 97 => "Unverwundbar (Sam I Am)",
+ 98 => "Mumienschanz (Y Tu Mummy Tambien)",
+ 99 => "Der Nexus (The Importance of Being Phoebe)",
+ 100 => "Happy Birthday, Cole! (Centennial Charmed)",
+ 101 => "Quälgeister (House Call)",
+ 102 => "San Francisco träumt (Sand Francisco Dreamin'))",
+ 103 => "Ein magisches Geschenk (The Day The Magic Died)",
+ 104 => "Babyalarm (Baby's First Demon)",
+ 105 => "Glücksbringer (Lucky Charmed)",
+ 106 => "Katzenjammer (Cat House)",
+ 107 => "Tanz um die ewige Quelle (Nymphs Just Wanna Have Fun)",
+ 108 => "Nichts sehen, nichts hören, nichts sagen (Sense and Sense Ability)",
+ 109 => "Hexentaufe (Necromancing the Stone)",
+ 110 => "Kampf der Titanen (1) (Oh My Goddess (1))",
+ 111 => "Kampf der Titanen (2) (Oh My Goddess (2))",
+
+// 112 => "Im Bann der Walküren, Teil 1 (Valhalley of the Dolls (1))",
+// 113 => "Im Bann der Walküren, Teil 2 (Valhalley of the Dolls (2))",
+// 114 => "Vergissmeinnicht (Forget Me... Not)",
+// 115 => "Die Ohnmacht der Drei (The Power of Three Blondes)",
+// 116 => "Tödliche Liebe (Love's a Witch)",
+// 117 => "Opfer der Sehnsucht (My Three Witches)",
+// 118 => "Seelenqualen (Soul Survivor)",
+// 119 => "Piper und die Tafelrunde (Sword and the City)",
+// 120 => "Kleine Monster (Little Monsters)",
+// 121 => "Zwischen den Zeiten (Chris-Crossed)",
+// 122 => "Witchstock",
+// 123 => "Der perfekte Mann (Prince Charmed)",
+// 124 => "Schlechtes Karma (Used Karma)",
+// 125 => "Die Kopflosen Drei (The Legend of Sleepy Halliwell)",
+ 126 => "Bezaubernde Phoebe (I Dream of Phoebe",
+ 127 => "Piper und Leo (The Courtship of Wyatt's Father)",
+ 128 => "Klassentreffen (Hyde School Reunion)",
+ 129 => "Die Spinne (Spin City)",
+ 130 => "Das Tribunal (Crimes and Witch-Demeanors)",
+ 131 => "Magische Männer (A Wrong Day's Journey into Right)",
+ 132 => "Witch Wars",
+ 133 => "Gute und Böse Welt (1) (It's a Bad, Bad, Bad, Bad World (1))",
+ 134 => "Gute und Böse Welt (2) (It's a Bad, Bad, Bad, Bad World (2))",
+
+ 135 => "Blinder Zorn (A Call To Arms)",
+ 136 => "Nackte Tatsachen (The Bare Witch Project)",
+ 137 => "Der Rivalitätszauber (Cheaper by the Coven)",
+ 138 => "Der Fluch der Piraten (Charrrmed!)",
+ 139 => "Todesengel (Styx Feet Under)",
+ 140 => "Im Bann des blauen Mondes (Once in a Blue Moon)",
+// 141 => "Ohne Schutzengel (Someone to Witch Over Me)",
+// 142 => "Der burmesische Falke (Charmed Noir)",
+// 143 => "Was ist mit Leo los? (There's Something About Leo)",
+// 144 => "Ich sehe was, was du nicht siehst (Witchness Protection)",
+ 145 => "Die Hexen von nebenan (Ordinary Witches)",
+ 146 => "Utopia erwacht (Extreme Makeover: World Edition)",
+ 147 => "Charmageddon",
+ 148 => "Carpe Dämon (Carpe Demon)",
+ 149 => "Feuer und Flamme (Show Ghouls)",
+ 150 => "Der verlorene Leo (The Seven Year Witch)",
+ 151 => "Wer hat die Eltern geschrumpft? (Scry Hard)",
+ 152 => "Die Büchse der Pandora (Little Box of Horrors)",
+ 153 => "Freaky Phoebe",
+ 154 => "Mein Freund, der Dämon (Imaginary Fiends)",
+ 155 => "Der Tod steht ihnen gut (Death Becomes Them)",
+ 156 => "Macht oder Leben (Something Wicca This Way Goes)",
+
+ 157 => "Totgesagte leben länger (Still Charmed & Kicking)",
+ 158 => "Halliwells im Wunderland (Malice in Wonderland)",
+ 159 => "Lauf, Piper, lauf (Run, Piper, Run)",
+ 160 => "Verzweifelte Haushexen (Desperate Housewitches)",
+ 161 => "Entzauberte Julie (Rewitched)",
+ 162 => "Kill Billie: Vol. 1",
+ 163 => "Bitte lächeln (The Lost Picture Show)",
+ 164 => "Yin und Yang (Battle of the Hexes)",
+ 165 => "Blutsbande (Hulkus Pocus)",
+ 166 => "Vaya Con Leos",
+ 167 => "Billies Killer-Eltern (Mr. and Mrs. Witch)",
+ 168 => "Mit gleicher Münze (Payback's a Witch)",
+ 169 => "Klein, aber mein (Repo Manor)",
+ 170 => "Büffel, Tiger und Hund (12 Angry Zen)",
+ 171 => "Die letzte Versuchung von Christy (The Last Temptation of Christy)",
+ 172 => "Verliebt, verlobt, verwirrt (Engaged and Confused)",
+ 173 => "Ein hoher Preis (Generation Hex)",
+ 174 => "Identitätskrise (The Torn Identity)",
+ 175 => "Zeig mir deinen Traum (The Jung and the Restless)",
+ 176 => "Hexenkampf (Gone With The Witches)",
+ 177 => "Kill Billie: Vol. 2",
+ 178 => "Forever Charmed (Das Vermächtnis der Halliwells)"
+ )
+);
Index: live/media/video/series/includes/sliders.php
===================================================================
--- live/media/video/series/includes/sliders.php (revision 0)
+++ live/media/video/series/includes/sliders.php (revision 198)
@@ -0,0 +1,105 @@
+<?php
+
+$sliders = array(
+// 'ignore' => true,
+ 'channel' => 'online',
+// 'showtimes' => 'Mi–Fr 21:00',
+// 'seen' => array(array(1, 2)),
+// 'last_seen' => mktime(21, 0, 0, 9, 8, 2011),
+ 'seasons' => array(10, 13, 25, 22, 18),
+ 'episodes' => array(
+ 1 => "Pilot (1)",
+ 2 => "Pilot (2)",
+ 3 => "Summer of Love",
+ 4 => "Prince of Wails",
+ 5 => "Fever",
+ 6 => "Last Days",
+ 7 => "The Weaker Sex",
+ 8 => "Eggheads",
+ 9 => "The King Is Back",
+ 10 => "Luck of the Draw",
+
+ 11 => "Into The Mystic",
+ 12 => "Time Again and World",
+ 13 => "El Sid",
+ 14 => "The Good, the Bad and the Wealthy",
+ 15 => "Love Gods",
+ 16 => "As Time Goes By",
+ 17 => "Gillian of the Spirits",
+ 18 => "Obsession",
+ 19 => "Invasion",
+ 20 => "Post Traumatic Slide Syndrome",
+ 21 => "In Dino Veritas",
+ 22 => "Greatfellas",
+ 23 => "The Young and the Relentless",
+
+ 24 => "Double Cross",
+ 25 => "Rules of the Game",
+ 26 => "Dead Man Sliding",
+ 27 => "Electric Twister Acid Test",
+ 28 => "The Guardian",
+ 29 => "The Dream Masters",
+ 30 => "Desert Storm",
+ 31 => "Dragonslide",
+ 32 => "The Fire Within",
+ 33 => "The Prince of Slides",
+ 34 => "State of the Art",
+ 35 => "Season's Greedings",
+ 36 => "Murder Most Foul",
+ 37 => "Slide Like an Egyptian",
+ 38 => "Paradise Lost",
+ 39 => "The Last of Eden",
+ 40 => "The Exodus (Part 1)",
+ 41 => "The Exodus (Part 2)",
+ 42 => "Sole Survivors",
+ 43 => "The Other Slide of Darkness",
+ 44 => "The Breeder",
+ 45 => "Stoker",
+ 46 => "Slither",
+ 47 => "Dinoslide",
+ 48 => "This Slide of Paradise",
+
+ 49 => "Genesis",
+ 50 => "Prophets and Loss",
+ 51 => "Common Ground",
+ 52 => "Virtual Slide",
+ 53 => "World Killer",
+ 54 => "Oh Brother, Where Art Thou?",
+ 55 => "Just Say Yes",
+ 56 => "The Alternateville Horror",
+ 57 => "Slidecage",
+ 58 => "Asylum",
+ 59 => "California Reich",
+ 60 => "The Dying Fields",
+ 61 => "Lipschitz Live!",
+ 62 => "Mother and Child",
+ 63 => "Net Worth",
+ 64 => "Slide By Wire",
+ 65 => "Data World",
+ 66 => "Way Out West",
+ 67 => "My Brother's Keeper",
+ 68 => "The Chasm",
+ 69 => "Roads Taken",
+ 70 => "Revelations",
+
+ 71 => "The Unstuck Man",
+ 72 => "Applied Physics",
+ 73 => "Strangers and Comrades",
+ 74 => "The Great Work",
+ 75 => "New Gods for Old",
+ 76 => "Please Press One",
+ 77 => "A Current Affair",
+ 78 => "The Java Jive",
+ 79 => "The Return of Maggie Beckett",
+ 80 => "Easy Slider",
+ 81 => "Requiem",
+ 82 => "Map of the Mind",
+ 83 => "A Thousand Deaths",
+ 84 => "Heavy Metal",
+ 85 => "To Catch a Slider",
+ 86 => "Dust",
+ 87 => "Eye of the Storm",
+ 88 => "The Seer"
+ ),
+ 'episode_list' => 'wiki:en:List_of_Sliders_episodes'
+ );
\ No newline at end of file
Index: live/media/video/series/includes/time-trax.php
===================================================================
--- live/media/video/series/includes/time-trax.php (revision 0)
+++ live/media/video/series/includes/time-trax.php (revision 198)
@@ -0,0 +1,58 @@
+<?php
+
+$time_trax = array(
+// 'ignore' => true,
+ 'channel' => 'online',
+// 'showtimes' => 'diverse',
+ 'seen' => array(array(1, 6)),
+// 'last_seen' => mktime(21, 15, 0, 6, 5, 2011),
+ 'seasons' => array(22, 22),
+ 'episode_list' => 'wiki:en:Time_Trax#Episode_list',
+ 'episodes' => array(
+ 1 => "A Stranger In Time, Part 1 (Reise in die Vergangenheit, Teil 1)",
+ 2 => "A Stranger In Time, Part 2 (Reise in die Vergangenheit, Teil 2)",
+ 3 => "To Kill A Billionaire (Zurück ins Atomzeitalter)",
+ 4 => "Fire and Ice (Feuer und Eis)",
+ 5 => "Showdown (Im Wilden Westen)",
+ 6 => "The Prodigy (Das Wunderkind)",
+ 7 => "Death Takes A Holiday (Der Tod spielt mit)",
+ 8 => "The Contender (Kräftige Fäuste)",
+ 9 => "Night of The Savage (Die Bestie von Soho)",
+ 10 => "Treasure of The Ages (Der Jahrhundertschatz)",
+ 11 => "The Price of Honor (Die Ehre eines Staatsmannes)",
+ 12 => "Face of Death (Tödlicher Dschungel)",
+ 13 => "Revenge",
+ 14 => "Darien Comes Home (Die schöne Verräterin)",
+ 15 => "Two Beans in a Wheel (Zwei teuflische Brüder)",
+ 16 => "Little Boy Lost (Der Überlebenstrainer)",
+ 17 => "The Mysterious Stranger (Das Schlangengift)",
+ 18 => "Framed (In der Falle)",
+ 19 => "Beautiful Songbird (Das Singvögelchen)",
+ 20 => "Photo Finish (Doping)",
+ 21 => "Darrow for the Defense (Besuch aus der Zukunft)",
+ 22 => "One On One (Mann gegen Mann)",
+
+ 23 => "Return of the Yakazu",
+ 24 => "Missing",
+ 25 => "To Live or Die in Docker Flats",
+ 26 => "A Close Encounter",
+ 27 => "The Gravity of it All",
+ 28 => "Happy Valley",
+ 29 => "Lethal Weapons",
+ 30 => "The Cure",
+ 31 => "Perfect Pair",
+ 32 => "Catch Me If You Can",
+ 33 => "The Dream Team",
+ 34 => "Almost Human",
+ 35 => "Mother",
+ 36 => "The Last M.I.A.",
+ 37 => "Split Image",
+ 38 => "Cool Hand Darien",
+ 39 => "The Lottery",
+ 40 => "Out For Blood",
+ 41 => "The Scarlet Koala",
+ 42 => "Optic Nerve",
+ 43 => "The Crash",
+ 44 => "Forgotten Tomorrows"
+ )
+);
Index: live/media/video/series/includes/stargate.php
===================================================================
--- live/media/video/series/includes/stargate.php (revision 0)
+++ live/media/video/series/includes/stargate.php (revision 198)
@@ -0,0 +1,385 @@
+<?php
+
+$stargate = array(
+// 'ignore' => true,
+ 'channel' => 'YouTube',
+ 'showtimes' => 'N/A',
+ 'seen' => array(array(1, 44)),
+ 'seasons' => array(22, 22, 22, 22, 22, 22, 22, 20, 20, 20),
+ 'episode_list' => 'wiki:en:List_of_Stargate_SG-1_episodes'
+);
+
+$stargate_de = array(
+ 'ignore' => true,
+ 'channel' => 'Tele 5',
+ 'showtimes' => 'N/A',
+ 'seen' => array(array(1, 19)),
+ 'last_seen' => mktime(18, 10, 0, 10, 19, 2011),
+ 'seasons' => array(22, 22, 22, 22, 22, 22, 22, 20, 20, 20, 'Filme' => 2),
+ 'episodes' => array(
+ 1 => "Das Tor zum Universum, Teil 1 (Children of the Gods, Part 1)",
+ 2 => "Das Tor zum Universum, Teil 2 (Children of the Gods, Part 2)",
+ 3 => "Der Feind in seinem Körper (The Enemy Within)",
+ 4 => "Verraten und Verkauft (Emancipation)",
+ 5 => "Die Seuche (The Broca Divide)",
+ 6 => "Das Erste Gebot (The First Commandment)",
+ 7 => "Die Auferstehung (Cold Lazarus)",
+ 8 => "Die Macht Der Weisen (The Nox)",
+ 9 => "Die Auserwählten (Brief Candle)",
+ 10 => "Im Reich des Donnergottes (Thor’s Hammer)",
+ 11 => "Die Qualen des Tantalus (The Torment of Tantalus)",
+ 12 => "Blutsbande (Bloodlines)",
+ 13 => "Feuer und Wasser (Fire and Water)",
+ 14 => "Der Kuss der Göttin (Hathor)",
+ 15 => "Cassandra (Singularity)",
+ 16 => "Vergeltung (Cor-Ai)",
+ 17 => "Enigma (Enigma)",
+ 18 => "Im Ewigen Eis (Solitudes)",
+ 19 => "Übermenschen (Tin Man)",
+ 20 => "Die Invasion, Teil 1 (There but for the grace of God)",
+ 21 => "Die Invasion, Teil 2 (Politics)",
+ 22 => "Die Invasion, Teil 3 (Within the Serpent’s Grasp)",
+
+ 23 => "Die Invasion, Teil 4 (The Serpent’s Lair)",
+ 24 => "Freund oder Feind? (In the Line of Duty)",
+ 25 => "Zerstörerin der Welten (Prisoners)",
+ 26 => "Virtueller Alptraum (The Gamekeeper)",
+ 27 => "Der Sarkophag (Need)",
+ 28 => "Rückkehr des Thor (Thor’s Chariot)",
+ 29 => "Trojanische Kugel (Message in a Bottle)",
+ 30 => "Der verlorene Sohn (Family)",
+ 31 => "Sha’res Rückkehr (Secrets)",
+ 32 => "Insekten des Todes (Bane)",
+ 33 => "Die Tok’ra, Teil 1 (The Tok’ra, Part 1)",
+ 34 => "Die Tok’ra, Teil 2 (The Tok’ra, Part 2)",
+ 35 => "Geister (Spirits)",
+ 36 => "Das zweite Tor (Touchstone)",
+ 37 => "Das schwarze Loch (A Matter of Time)",
+ 38 => "Die fünfte Spezies (The Fifth Race)",
+ 39 => "Der Sturz des Sonnengottes (Serpent’s Song)",
+ 40 => "Seelenwanderung (Holiday)",
+ 41 => "Tödliche Klänge (One False Step)",
+ 42 => "Neue Feinde (Show and Tell)",
+ 43 => "1969 (1969)",
+ 44 => "Die Höhle des Löwen, Teil 1 (Out of Mind)",
+
+ 45 => "Die Höhle des Löwen, Teil 2 (Into the Fire)",
+ 46 => "Seth (Seth)",
+ 47 => "Die Saat des Verrats (Fair Game)",
+ 48 => "Besessen (Legacy)",
+ 49 => "Die Lektion der Orbaner (Learning Curve)",
+ 50 => "Lebenslinien (Point of View)",
+ 51 => "Kopfgeldjäger (Deadman Switch)",
+ 52 => "Dämonen (Demons)",
+ 53 => "Regeln der Kriegsführung (Rules of Engagement)",
+ 54 => "Sha’res Tod (Forever in a Day)",
+ 55 => "Vergangenheit und Gegenwart (Past and Presence) (10.05.2011 18:10))",
+ 56 => "Jolinars Erinnerungen (Jolinar’s Memories)",
+ 57 => "Apophis’ Rückkehr (The Devil You Know)",
+ 58 => "Außerirdische auf dem Vormarsch (Foothold)",
+ 59 => "Die Tollan-Triade (Pretense)",
+ 60 => "Urgo (Urgo)",
+ 61 => "O’Neill und Laira (A Hundred Days) (18.05.2011 18:10)",
+ 62 => "O’Neill auf Abwegen (Shades of Grey)",
+ 63 => "Tödlicher Verrat (New Ground)",
+ 64 => "Harsesis’ Rettung (Maternal Instinct) (23.05.2011 18:10)",
+ 65 => "Der Kristallschädel (Crystal Skull)",
+ 66 => "Nemesis, Teil 1 (Nemesis)",
+
+ 67 => "Nemesis, Teil 2 (Small Victories)",
+ 68 => "Die andere Seite der Medaille (The other Side)",
+ 69 => "Das Vermächtnis der Antiker (Upgrades)",
+ 70 => "Shan’aucs Opfer (Crossroads)",
+ 71 => "Gipfeltreffen (Divide and Conquer)",
+ 72 => "Kein Ende in Sicht (Window of Opportunity)",
+ 73 => "Der Planet des Wassers (Watergate)",
+ 74 => "Die Unas (The First Ones)",
+ 75 => "Die Enkaraner (Scorched Earth)",
+ 76 => "Der Planet der Eiszeit (Beneath the Surface)",
+ 77 => "Kein Zurück (Point of No Return)",
+ 78 => "Rettung im All (Tangent)",
+ 79 => "Die Rückkehr der Osiris (The Curse)",
+// 80 => "Die verhinderte Allianz (Serpent's Venom)",
+ 81 => "Kettenreaktion (Chain Reaction) (15.06.2011 18:05)",
+ 82 => "2010 (2010)",
+ 83 => "Unbegrenztes Wissen (Absolute Power)",
+ 84 => "Das Licht (The Light)",
+ 85 => "Das Wunder (Prodigy)",
+ 86 => "Die falsche Wahl (Entity / Child's Play)",
+ 87 => "Doppelter Einsatz (Double Jeopardy)",
+ 88 => "Exodus (Exodus)",
+
+ 89 => "Todfeinde (Enemies)",
+ 90 => "Teal'cs Prüfung (Threshold)",
+ 91 => "Das Opfer (Ascencion)",
+ 92 => "Der fünfte Mann (The fifth Man)",
+ 93 => "Roter Himmel (Red Sky)",
+ 94 => "Das Übergangsritual (The Rite of Passage)",
+ 95 => "Chaka (Beast of Burden)",
+ 96 => "Das Tempelgrab (The Tomb)",
+ 97 => "Der Kampf der Tollaner (Between two Fires)",
+ 98 => "2001 (2001)",
+ 99 => "Verzweiflungstat (Desperate Measures)",
+ 100 => "Wurmloch extrem (Wormhole X-Treme)",
+ 101 => "Bewährungsprobe (Proving Ground)",
+ 102 => "48 Stunden (48 Hours)",
+ 103 => "Neue Zeiten (Summit)",
+ 104 => "Elliot’s große Mission (Last Stand)",
+ 105 => "Das Ende der Welt (Fail Safe)",
+// 106 => "Die Jaffa-Rebellion (The Warrior)",
+ 107 => "Reese (Menace)",
+ 108 => "Der Wächter (The Sentinel)",
+ 109 => "Die Entscheidung (Meridian)",
+ 110 => "Das Geheimnis der Asgard (Revelations)",
+
+ 111 => "Die Wiedergutmachung, Teil 1 (Redemption, part 1)",
+ 112 => "Die Wiedergutmachung, Teil 2 (Redemption, part 2)",
+ 113 => "Notlandung (Descent)",
+ 114 => "Virus aus dem Eis (Frozen)",
+ 115 => "In den Händen der Goa’uld (Nightwalkers)",
+ 116 => "Am Abgrund (Abyss)",
+ 117 => "Ein übermächtiger Feind (Shadow Play)",
+ 118 => "Wahre Helden (The Other Guys)",
+ 119 => "Das Bündnis (Allegiance)",
+ 120 => "Heilung (The Cure)",
+ 121 => "Prometheus (Prometheus)",
+ 122 => "Unnatürliche Auslese (Unnatural Selection)",
+ 123 => "Die Unsichtbaren (Sight Unseen)",
+ 124 => "Das Machtkartell (Smoke and Mirrors)",
+ 125 => "Das Verlorene Paradies (Paradise Lost)",
+ 126 => "Metamorphose (Metamorphosis)",
+ 127 => "Enthüllung (Disclosure)",
+ 128 => "Gestrandet (Forsaken)",
+ 129 => "Hilfe aus der Traumwelt (Changeling)",
+ 130 => "Vergangenheit (Memento)",
+ 131 => "Jonas’ Visionen (Prophecy)",
+ 132 => "Der Kreis schließt sich (Full Circle)",
+
+ 133 => "Alles auf eine Karte, Teil 1 (Fallen) (25.08.2011 18:10)",
+ 134 => "Alles auf eine Karte, Teil 2 (Home coming)",
+ 135 => "Der falsche Klon (Fragile Balance)",
+ 136 => "Orpheus (Orpheus)",
+ 137 => "Die Macht des Speichers (Revisions)",
+ 138 => "Das Rettungsboot (Lifeboat)",
+ 139 => "Die Naquadah-Mine (Enemy Mine)",
+ 140 => "Space-Rennen (Space Race)",
+ 141 => "Avenger 2.0 (Avenger 2.0)",
+ 142 => "Die Hak’tyl (Birthright)",
+ 143 => "Evolution, Teil 1 (Evolution, part 1)",
+ 144 => "Evolution, Teil 2 (Evolution, part 2)",
+ 145 => "Grace (Grace)",
+ 146 => "Kiannas Symbiont (Fallout)",
+ 147 => "Daniels Träume (Chimera)",
+ 148 => "Bote des Todes (Death Knell)",
+ 149 => "Helden, Teil 1 (Heroes, part 1)",
+ 150 => "Helden, Teil 2 (Heroes, part 2)",
+ 151 => "Anna (Resurrection)",
+ 152 => "Der Neue Präsident (Inauguration)",
+ 153 => "Die verlorene Stadt, Teil 1 (The lost City, part 1)",
+ 154 => "Die verlorene Stadt, Teil 2 (The lost City, part 2)",
+
+// 155 => "Neue Machtverhältnisse, Teil 1 (New Order, part 1)",
+// 156 => "Neue Machtverhältnisse, Teil 2 (New Order, part 2)",
+ 157 => "Colonel Vaselov (Lockdown)",
+ 158 => "Stunde der Bewährung (Zero Hour)",
+ 159 => "Soren (Icon)",
+ 160 => "Avatar (Avatar)",
+ 161 => "Affinität (Affinity)",
+ 162 => "Colson (Covenant)",
+ 163 => "Die Vertreibung (Sacrifices)",
+ 164 => "Endspiel (Endgame)",
+ 165 => "Gemini (Gemini)",
+// 166 => "Vala (Prometheus Unbound)",
+// 167 => "König Arkhan (It's good to be King)",
+// 168 => "Konfrontation (Full Alert)",
+// 169 => "Joe (Citizen Joe)",
+// 170 => "Abrechnung, Teil 1 (Reckoning, part 1)",
+// 171 => "Abrechnung, Teil 2 (Reckoning, part 2)",
+// 172 => "Jim (Threads)",
+// 173 => "Möbius, Teil 1 (Moebius, part 1)",
+// 174 => "Möbius, Teil 2 (Moebius, part 2)",
+
+// 175 Avalon, Teil 1 Avalon, part 1 Lieutenant Colonel Mitchell, befehlshabender Pilot der F-302s, die SG-1 in Antarktika (siehe 7x22) verteidigten, übernimmt die Führung von SG-1. Da alle alten Mitglieder mit anderen Projekten beschäftigt sind, erhält er die Aufgabe, ein neues Team aufzubauen. Nachdem seine Bemühungen, das alte Team wieder zusammen zu führen, scheitern, kommt ihm der Zufall zur Hilfe. Vala (siehe 8x12) „verkettet“ sich mit zwei Armbändern mit Daniel Jackson, damit dieser ihr bei der Suche nach einem Schatz hilft, der laut ihrer Informationen wohl auf der Erde zu finden ist. Da beide sterben würden, wenn sie sich zu weit voneinander entfernten, ist Daniel nun gezwungen, in Valas Nähe zu bleiben und kann seine geplante Reise mit der Daedalus nach Atlantis nicht antreten. So brechen die drei begleitet von Teal'c (der eigentlich damit beschäftigt ist, eine Regierungsstruktur unter den freien Jaffa aufzubauen) auf, um den mysteriösen Schatz zu finden.
+// 2 176 Avalon, Teil 2 Avalon, part 2 Das Team findet nach gefährlichen Prüfungen tatsächlich einen Schatz. Außerdem auch ein Buch und ein Antikergerät. Das Buch gibt Hinweise darauf, dass noch nicht aufgestiegene Antiker in einer fernen Galaxie leben könnten. Das Gerät dient anscheinend zur Langstreckenkommunikation. Daniel und Vala benutzen es und finden sich im Körper zweier Dorfbewohner auf einem fremden Planeten wieder, während ihre eigenen Körper bewusstlos im SGC zurückbleiben. Von einer einheimischen Untergrundorganisation erfahren die beiden, dass sie sich in einer von Wesen namens „Ori“ kontrollierten Galaxie befinden. Die Ori behaupten, die Menschen erschaffen zu haben und fordern unbedingte Anbetung. Daniel vermutet, dass es sich bei ihnen um eine Abspaltung der Antikerrasse – damals nannten sie sich „Alteraner“ – handeln könnte, die sich – anders als die bisher bekannten aufgestiegenen Wesen – in die materielle Welt einmischen und anbeten lassen. Die neue Ärztin des SGC, Dr. Lam (General Landrys Tochter), ist besorgt um Daniels und Valas Gesundheitszustand. Vala wird als „Ketzerin“ erkannt und verbrannt. Ein Prior der Ori erscheint, erweckt Vala wieder zum Leben und bittet Daniel und Vala, ihm zu folgen. Währenddessen wird der zweifelhafte Jaffaführer Gerak durch geschicktes Machtspiel zum Führer der neuen Jaffanation.
+// 3 177 Das Geheimnis der Ori Origin Daniel und Vala sind immer noch in einer fernen Galaxis und fremden Körpern gestrandet. Ein Priester der Ori transportiert sie zu einem Heiligtum dieser geheimnisvollen Lichtwesen. Wie sich herausstellt, halten die Ori sich für Götter und wollen die Bewohner der Milchstraße zum Glauben an ihre barbarische Religion bekehren...
+// 4 178 Unsichtbare Fesseln The Ties that bind Vala und Daniel sind von den Jaffa-Armbändern befreit und gehen wieder getrennte Wege. Wie sich herausstellt, ist ihre mentale Verbindung damit jedoch nicht beendet. Jetzt kann nur noch der Wissenschaftler Arlos helfen, dem Vala einst die Armbänder gestohlen hat. Doch Arlos ist nicht sehr kooperationsbereit...
+// 5 179 Höhere Mächte (DVD) / Machtspiele (TV) The Powers that be Das SG-1-Team und Vala begeben sich auf den Planeten P8X-412, um zu verhindern, dass die Ori dort die Macht übernehmen. Verblüfft stellen Colonel Mitchell und seine Leute fest, dass Vala von der Bevölkerung des Planeten als Göttin verehrt wird...
+// 6 180 Das Schutzschild (DVD) / Der Brückenkopf (TV) Beachhead Ein Prior ist auf den Jaffa-Planeten Kallana gekommen und fordert die Unterwerfung unter die Ori. Als die Bewohner ihn vertreiben wollen, erzeugt er einen Schutzschild, der sich nach und nach über den gesamten Planeten ausdehnt. Das SG-1-Team wird entsandt, den Prior unschädlich zu machen...
+// 7 181 Ex-Deus Machina Ex Deus Machina In Virginia wird ein Jaffa Opfer eines Unfalls mit Fahrerflucht. Was er hier zu suchen hatte, ist zunächst rätselhaft. Bei ihren Ermittlungen auf Dakara erfahren Mitchell und Teal'C, dass die Jaffa auf der Jagd nach Baal sind, der sich angeblich auf der Erde versteckt hält...
+// 8 182 Babylon Babylon Vor 5000 Jahren rebellierten die Jaffa-Krieger von Sodan gegen ihren Systemlord und flüchteten auf einen abgelegenen Planeten. Doch als das SG-1-Team den geheimen Rückzugsort entdeckt, gerät es in einen Hinterhalt und Colonel Mitchell wird verschleppt... In dieser Folge werden Jackson, Carter und Teal’c wieder "offiziell" Teil des "neuen" SG-1-Teams unter Mitchell.
+// 9 183 Der Prototyp Prototype Ein genetisches Experiment von Anubis, ein weiterentwickelter Mensch mit u.a. telekinetischen Fähigkeiten , wird gefunden und später von den Menschen im Kampf getötet. Er war der Prototyp für Anubis' neue Armee aus Elitekriegern.
+// 10 184 Der apokalyptische Reiter, Teil 1 The fourth Horseman, part 1 Auch bekannt als "Die Rückkehr von Orlin". Der aufgestiegene Antiker Orlin kehrt zurück als Kind (so kann er mehr Informationen im Gehirn speichern) und versucht den Menschen bei der Bekämpfung der Ori-Seuche zu helfen, durch die Erläuterungen von Orlin werden in dieser Episode die Motive der Ori klar.
+// 11 185 Der apokalyptische Reiter, Teil 2 The fourth Horseman, part 2 Die Ori-Seuche breitet sich weiter auf der Erde aus. Um die für das Heilmittel benötigte Prioren-DNS zu besorgen, greifen Daniel und Mitchell einen der Diener der Ori mit Carters neu entwickelter Waffe an. Auf Dakara wurde Gerak inzwischen zum Prior erklärt...
+// 12 186 Kollateralschaden Collateral Damage SG-1 will diplomatische Beziehungen zum Planeten Galar aufbauen. Die Bewohner dort haben herausgefunden, wie das Gedächtnis von einer Person auf beliebige andere übertragen werden kann. Doch dann gerät Mitchell unerwartet unter Mordverdacht...
+// 13 187 Der Ripple-Effekt (DVD) / Parallelwelten (TV) Ripple Effect Das SG-1-Team kommt gleich in doppelter Ausführung von einer Mission zurück. Genetisch sind die zwei Versionen von Mitchell, Carter, Daniel und Teal’C nicht voneinander zu unterscheiden – aber anscheinend stammt eines der Teams aus einer alternativen Realität...
+// 14 188 Die Festung (DVD) / Das Referendum (TV) Stronghold Die Jaffa-Führer wollen über demokratische Wahlen für die Jaffa-Nation abstimmen. Die Zustimmung gilt als sicher – doch dann verweigert sich ein Anführer nach dem anderen. Bra'Tac und Teal’C vermuten eine gezielte Manipulation. Bei ihren Nachforschungen stoßen sie auf einen alten Feind.
+// 15 189 Ethon Ethon Jared Kane trifft mit beunruhigenden Neuigkeiten ein: Die Rand haben sich mit den Ori verbündet und von ihnen eine gefährliche Satellitenwaffe erhalten. Jetzt wollen sie ihren alten Feind, die kaledonische Föderation, mit Hilfe der Waffe vernichten. Das SG-1-Team rückt aus, um den drohenden Völkermord zu verhindern...
+// 16 190 Ohne Netz (DVD) / Das verschwundene Stargate (TV) Off the Grid Das SG-1-Team fliegt zum Planeten P6G-462, um dort den Handel mit einer süchtig machenden Substanz namens Kassa zu untersuchen, die überall in den Galaxien verkauft wird. Als sie zurück wollen, verschwindet plötzlich das Stargate, das sie kurz vorher benutzt haben...
+// 17 191 Die Plage / Die Käferplage (TV) The Scourge Das SG-1-Team muss britische, französische und chinesische Diplomaten auf eine Tour zur Gammaseite begleiten, wo diese eine Forschungsstation besuchen wollen. Dort kommt es zu einem Unfall im Labor und tödliche Käfer drohen alles Leben im Umkreis der Station zu vernichten.
+// 18 192 Arthurs Umhang / Neue Dimensionen (TV) Arthur's Mantle Carter lüftet das Geheimnis eines alten Antiker-Gerätes, das im englischen Glastonbury gefunden wurde. Bei dem Apparat scheint es sich um eine Maschine zu handeln, die Transport und Kommunikation zwischen verschiedenen Dimensionen ermöglicht!
+// 19 193 Der Kreuzzug Crusade Vala taucht in Daniels Körper beim Stargatekommando auf. Sie erzählt von einem geplanten Kreuzzug der Ori gegen die Ungläubigen im Universum. Die Ori wollen durch ein Superstargate in die Milchstraße eindringen. Ein intergalaktischer Heiliger Krieg scheint unausweichlich.
+// 20 194 Camelot Camelot Der heilige Krieg zwischen den Menschen und den Ori scheint unausweichlich. Die Übermacht der Ori könnte nur durch die geheimnisvolle Waffe des Zauberers Merlin gebrochen werden, die sich der Legende nach in Camelot befinden soll.
+
+// 1 195 Fleisch und Blut Flesh and Blood 25. Juli 2007 14. Juli 2006
+// Während die Ori in Dakara einfallen, wird Valas Tochter Adria geboren. Zu Valas Entsetzen altert das Mädchen mit erstaunlicher Geschwindigkeit.
+// 2 196 In Morpheus Armen Morpheus 1. August 2007 21. Juli 2006
+// SG-1 und andere Mitglieder des SGC finden auf einem Planeten ein ganzes Dorf voller Toter, die anscheinend alle im Schlaf gestorben sind. Das Team stellt bald fest, dass auch sie sich mit der Schlafkrankheit infiziert haben.
+// 3 197 Das Pegasus-Prinzip The Pegasus Project 1. August 2007 28. Juli 2006
+// SG-1 reist nach Atlantis, um das Eindringen weiterer Ori-Schiffe in ihre Galaxie zu verhindern. Außerdem erhalten sie neue Hinweise auf Merlins Waffe.
+// 4 198 Insiderwissen Insiders 8. August 2007 4. August 2006
+// Ba'al lässt sich vom SGC Gefangen nehmen. Er bietet Informationen über die Waffe Merlins. Im Gegenzug soll SG-1 seine Klone ausschalten, die sich gegen ihn gewendet haben.
+// 5 199 Mutanten Uninvited 8. August 2007 11. August 2006
+// Auf P9J-333 werden die Bewohner durch ein wildes Tier angegriffen. Teal'c, Carter und Vala gehen der Sache auf den Grund - und stellen fest, dass die Existenz der Bestien auf die Missionen des SGC zurückzuführen ist.
+// 6 200 200 200 15. August 2007 18. August 2006
+// Mitchells 200. Reise durch das Stargate steht an. Zuvor muss SG-1 jedoch mit Marty, dem Produzenten von Wormhole X-Treme!, über sein Skript zur Verfilmung der Serie sprechen.
+// 7 201 Adrias Macht Counter-Strike 15. August 2007 25. August 2006
+// Die Jaffa nutzen die Antikerwaffe auf Dakara, um die Ori zu bekämpfen - und töten damit alle Bewohner eines soeben bekehrten Planeten. Bra'tac und General Landry versuchen durch Verhandlungen mit Se'tak Schlimmeres zu verhindern, doch der zeigt sich uneinsichtig. Währenddessen entbrannt ein Kampf zwischen SG-1 und einigen Jaffa, die das nunmehr verlassene Ori-Schiff für sich beanspruchen.
+// 8 202 Tödliche Erinnerungen Memento Mori 22. August 2007 8. September 2006
+// Vala verliert nach einer Entführung durch den Trust ihre Erinnerung. Bei einem Überfall auf das Diner, in dem sie arbeitet, überwältigt sie die Räuber instinktiv und macht damit sowohl den Trust als auch das SGC auf sich aufmerksam, die beide versuchen, Vala zurückzubekommen. Bei der resultierenden Verfolgungsjagd gelingt Vala die Flucht - mit Mitchell als Geisel.
+// 9 203 Die Kriegserklärung Company of Thieves 22. August 2007 15. September 2006
+// Mitchell muss einen wagemutigen Undercover-Plan durchziehen, nachdem Teile seines Teams von der Lucian Allianz gefangen genommen und die Odyssey gekapert worden ist.
+// 10 204 Die Suche, Teil 1 Quest, part 1 29. August 2007 22. September 2006
+// SG-1 befindet sich zwischen zwei Feinden - einem alten und einem neuen - als man zu einer Mission aufbricht, deren Ziel es ist den Heiligen Gral zu finden, bevor die Ori dies tun.
+// 11 205 Die Suche, Teil 2 Quest, part 2 29. August 2007 9. Januar 2007
+// Nachdem sich der Heilige Gral nur als Hologram herausgestellt hat, findet das SG-1 Team den gefrorenen Körper von Merlin. Sie beleben ihn wieder und ein Wettlauf mit der Zeit beginnt, denn Merlin ist dem Tode nahe.
+// 12 206 Die Linie im Sand Line in the Sand 6. September 2007 16. Januar 2007
+// Carter benutzt Merlins Technologie, um ein komplettes Dorf einer Phasenverschiebung zu unterziehen, um es so vor einem Angriff der Ori zu schützen. Doch die Technologie ist unausgereift und das Leben aller Dorfbewohner und SG-1 steht auf dem Spiel.
+// 13 207 Die Parallelwelt The Road not taken 6. September 2007 23. Januar 2007
+// Nach einem Unfall ist Carter in einer Parallelwelt gefangen, in der die Ori die Erde angreifen. Doch ist die Bedrohung durch die Ori ihre geringste Sorge, denn ihr wird es nicht erlaubt zurückzukehren.
+// 14 208 Daniel, der Prior The Shroud 12. September 2007 30. Januar 2007
+// Auf einem fremden Planeten stellt das SG-1 Team mit erschrecken fest, dass Daniel Jackson in einen Prior der Ori verwandelt wurde.
+// 15 209 Der Kopfgeldjäger Bounty 12. September 2007 6. Februar 2007
+// Mitchell nimmt an seinem High School Klassentreffen in Kansas teil und wird von Vala begleitet. Was Mitchell nicht weiß, ist, dass er von einem außerirdischen humanoiden Kopfgeldjäger verfolgt wird. Dieser ist darauf aus, das komplette SG-1 Team in seine Gewalt zu bekommen.
+// 16 210 Die Geiselnahme Bad Guys 19. September 2007 13. Februar 2007
+// Das Stargate-Team landet in einem außerirdischen Museum und wird fälschlicherweise für eine Gruppe von Geiselnehmern gehalten. Da sie einem außerirdischem Polizisten die Situation nicht deutlich machen können, muss SG-1 die Polizei von sich fern halten, indem sie vortäuschen brutale 'Bad Guys' zu sein - bis sie einen Weg nach Hause finden.
+// 17 211 Rache muss sein Talion 19. September 2007 20. Februar 2007
+// Teal'c ist überzeugt, dass sein ehemaliger Schüler Arkad der Drahtzieher hinter einem Anschlag auf ein Jaffa-Gipfeltreffen ist. Er ignoriert seine SG-1 Kollegen und macht sich alleine auf die Suche nach Arkad, um sich für den Anschlag zu rächen.
+// 18 212 Familienbande Family Ties 26. September 2007 27. Februar 2007
+// General Landry kümmert sich um seine (Ex-)Frau, die gleichzeitig Dr. Lams Mutter ist, während Vala und ihr räuberische Vater einige Zeit miteinander verbringen und sich herausstellt, dass er der Erde helfen könnte. Doch dafür müsste Vala ihrem Vater Vertrauen entgegenbringen.
+// 19 213 Ba’als letztes Gefecht Dominion 26. September 2007 6. März 2007
+// SG-1 entwickelt einen Plan um Adria gefangen zu nehmen, Vala soll dabei als Köder genutzt werden. Doch Ba'al hat einen eigenen dunklen Plan, der tödlich für alle Beteiligten Enden könnte. Drastische Schritte müssen unternommen werden, um ihn zu stoppen, doch wird Vala fähig sein das Undenkbare möglich zu machen?
+// 20 214 Endlosigkeit Unending 26. September 2007 13. März 2007
+// SG-1 ist auf der Odyssey und müssen ihr letztes Gefecht schlagen gegen angreifenden Ori-Schiffe. Dabei erzeugen sie ein Zeiterweiterungsfeld in der nur sie altern und müssen den Rest ihres Lebens miteinander verbringen, während sich die Beziehung des Teams untereinander verändert...
+
+ /* Filme */
+ 214 => "Die Quelle der Wahrheit (The Ark of Truth)",
+ 215 => "Continuum"
+ ),
+ 'episode_list' => 'wiki:Liste_der_Stargate-Kommando-SG-1-Episoden'
+);
+
+$stargate_atlantis = array(
+ 'ignore' => true,
+ 'channel' => 'HDD / Tele&nbsp;5 / RTL&nbsp;II',
+ 'showtimes' => 'Do 21:15',
+ 'seen' => array(15),
+// 'last_seen' => mktime(18, 10, 0, 10, 19, 2011),
+ 'seasons' => array(20, 20, 20, 20, 20),
+ 'episodes' => array(
+// 1 => 'Aufbruch in eine neue Welt (Teil 1) (Rising (Part One))',
+// 2 => 'Aufbruch in eine neue Welt (Teil 2) (Rising (Part Two))',
+ 3 => 'Dunkle Schatten (Hide and Seek)',
+ 4 => '38 Minuten (Thirty-Eight Minutes)',
+ 5 => 'Unter Verdacht (Suspicion)',
+ 6 => "Selbstopfer (Childhood's End)",
+ 7 => 'Tödliche Verteidigung (Poisoning the Well)',
+ 8 => 'Im Untergrund (Underground)',
+ 9 => 'Zurück auf die Erde (Home)',
+ 10 => 'Der Sturm (1) (The Storm (1))',
+ 11 => 'Das Auge (2) (The Eye (2))',
+ 12 => 'Der Überlebende (The Defiant One)',
+ 13 => 'Hot Zone (Hot Zone)',
+ 14 => 'Chaya (Sanctuary)',
+ 15 => '10.000 Jahre (Before I Sleep)',
+ 16 => 'Bruderschaft (The Brotherhood)',
+ 17 => 'Nachrichten aus der Pegasus Galaxie (Letters from Pegasus)',
+ 18 => 'Die Gabe (The Gift)',
+ 19 => 'Die Belagerung (Teil 1) (The Siege (Part One))',
+ 20 => 'Die Belagerung (Teil 2) (The Siege (Part Two))',
+
+ 21 => 'Die Belagerung (Teil 3) (The Siege (Part 3))',
+ 22 => 'Der Eindringling (The Intruder)',
+ 23 => 'Der Läufer (DVD) / Dromoys (RTL 2) (Runner)',
+// 24 => 'Duett (Duet)',
+// 25 => 'Verurteilt (Condemned)',
+// 26 => 'Dreifaltigkeit (DVD) / Das Geheimnis der Antiker (RTL 2) (Trinity)',
+// 27 => 'Instinkt (Instinct)',
+// 28 => 'Die Verwandlung (Conversion)',
+// 29 => 'Aurora (Aurora)',
+// 30 => 'Die verlorenen Männer (DVD) / Das Enzym (RTL 2) (The Lost Boys)',
+// 31 => 'Bienenstock (DVD) / Im Netz der Königin (RTL 2) (The Hive)',
+// 32 => 'Offenbarung (DVD) / Epiphanie (RTL 2) (Epiphany)',
+ 33 => 'Kritische Masse (DVD) / Die Goa’uld schlagen zu (RTL 2) (Critical Mass)',
+ 34 => 'Unter Druck (DVD) / Halluzinationen (RTL 2) (Grace Under Pressure)',
+// 35 => 'Der Turm (The Tower)',
+ 36 => 'Der lange Abschied (DVD) / Phoebus und Thalan (RTL 2) (The Long Goodbye)',
+ 37 => "Coup D'etat (DVD) / Der Staatsstreich (RTL 2) (Coup D'etat)",
+// 38 => 'Michael (Michael)',
+// 39 => 'Inferno (Inferno)',
+ 40 => 'Die Verbündeten (DVD) / Das Bündnis (RTL 2) (Allies)',
+
+ 41 => "Niemandsland (No Man's Land)",
+ 42 => "Ein schlechter Plan (Misbegotten)",
+ 42 => "Der Zaubertrank (Irresistible)",
+ 44 => "Sateda",
+ 45 => "Der Bruderstreit (Progeny)",
+ 46 => "Atlantis ruft (The Real World)",
+ 47 => "Ein ungewöhnlicher Verbündeter (Common Ground)",
+ 48 => "Der doppelte Rodney (McKay and Mrs. Miller)",
+ 49 => "Phantome (Phantoms)",
+ 50 => "Die Rückkehr (Teil 1) (The Return (Part 1))",
+ ),
+ 'episode_list' => 'wiki:Liste_der_Stargate-Atlantis-Episoden'
+);
+
+$sgu = array(
+ 'ignore' => true,
+ 'channel' => 'RTL Ⅱ',
+ 'showtimes' => 'Mi 20:00',
+ 'seen' => array(array(1, 28)),
+ 'seasons' => array(20, 20),
+ 'episode_list' => 'wiki:Liste_der_Stargate-Universe-Episoden',
+ 'episodes' => array(
+// 1 => "Die Destiny – Teil 1 (Air (1))",
+// 2 => "Führungskampf auf der Destiny – Teil 2 (Air (2))",
+// 3 => "Rettung für die Destiny – Teil 3 (Air (3))",
+// 4 => "Finsternis – Teil 1 (Darkness (1))",
+// 5 => "Der Flug ins Licht – Teil 2 (Light (2))",
+// 6 => "Außerirdische Invasion (Water)",
+// 7 => "Die Rückkehr (Earth)",
+// 8 => "Die Zeitreise (Time)",
+// 9 => "Gefahr für die Destiny (Life)",
+// 10 => "Mordverdacht (Justice)",
+// 11 => "Weltraum – Teil 1 (Space (1))",
+// 12 => "Uneins – Teil 2 (Divided (2))",
+// 13 => "Glaube (Faith)",
+// 14 => "Der Genetische Code (Human)",
+// 15 => "Verloren (Lost)",
+// 16 => "Sabotage",
+// 17 => "Halluzinationen (Pain)",
+// 18 => "Die Luzianer-Allianz (Subversion)",
+// 19 => "Feindlicher Übergriff – Teil 1 (Incursion (1))",
+// 20 => "Feindlicher Übergriff – Teil 2 (Incursion (2))",
+
+ 21 => "Intervention – Teil 3 (Intervention (3))",
+ 22 => "Nachwirkungen (Aftermath)",
+ 23 => "Angedockt (Awakening)",
+ 24 => "Pathogener Keim (Pathogen)",
+ 25 => "Wucherungen (Cloverdale)",
+ 26 => "Der Test (Trial and Error)",
+ 27 => "Das Große Ganze (The Greater Good)",
+ 28 => "Hass (Malice)",
+ 29 => "Scheinleben (Visitation)",
+ 30 => "Unerwartetes Wiedersehen – Teil 1 (Resurgence (1))",
+ 31 => "Erlösung – Teil 2 (Deliverance (2))",
+ 32 => "Zwillingsschicksale (Twin Destinies)",
+ 33 => "Bündnisse (Alliances)",
+ 34 => "Hoffnung (Hope)",
+ 35 => "Trojanische List (Seizure)",
+ 36 => "Die Jagd (The Hunt)",
+ 37 => "Verwandtschaft (Common Descent)",
+ 38 => "Epilog (Epilogue)",
+ 39 => "Blockade",
+ 40 => "Im Ruhezustand (Gauntlet)"
+ )
+);
Index: live/media/video/series/includes/battlestar-galactica.php
===================================================================
--- live/media/video/series/includes/battlestar-galactica.php (revision 0)
+++ live/media/video/series/includes/battlestar-galactica.php (revision 198)
@@ -0,0 +1,180 @@
+<?php
+
+$serien['<span class="bsg">Battlestar Galactica</span> (2004)'] = array(
+// 'ignore' => true,
+ 'channel' => 'online',
+// 'showtimes' => 'Mi 02:00',
+ 'seen' => array(array(1, 10)),
+ 'seasons' => array(13, 20, 20, 'Razor' => 2, 20, 'The Plan' => 1),
+ 'episode_list' => 'wiki:en:List_of_Battlestar_Galactica_(2004_TV_series)_episodes',
+ 'episodes' => array(
+ 1 => "33",
+ 2 => "Water",
+ 3 => "Bastille Day",
+ 4 => "Act of Contrition",
+ 5 => "You Can't Go Home Again",
+ 6 => "Litmus",
+ 7 => "Six Degrees of Separation",
+ 8 => "Flesh and Bone",
+ 9 => "Tigh Me Up, Tigh Me Down",
+ 10 => "The Hand of God",
+ 11 => "Colonial Day",
+ 12 => "Kobol's Last Gleaming (Part 1)",
+ 13 => "Kobol's Last Gleaming (Part 2)",
+
+ 14 => "Scattered (Die verlorene Flotte)",
+ 15 => "Valley of Darkness (Im Tal der Finsternis)",
+ 16 => "Fragged (Die Gesetze des Krieges)",
+ 17 => "Resistance (Leben und Sterben)",
+ 18 => "The Farm (Die Farm)",
+ 19 => "Home, Part 1 (Heimat, Teil 1)",
+ 20 => "Home, Part 2 (Heimat, Teil 2)",
+ 21 => "Final Cut (Die Reporterin)",
+ 22 => "Flight of the Phoenix (Die Hoffnung lebt)",
+ 23 => "Pegasus",
+ 24 => "Resurrection Ship, Part 1 (Die Auferstehung, Teil 1)",
+ 25 => "Resurrection Ship, Part 2 (Die Auferstehung, Teil 2)",
+ 26 => "Epiphanies (Sabotage)",
+ 27 => "Black Market (Schwarzmarkt)",
+ 28 => "Scar (Der beste Jäger der Zylonen)",
+ 29 => "Sacrifice (Das Opfer)",
+ 30 => "The Captain's Hand (Mensch und Maschine)",
+ 31 => "Downloaded (Download)",
+ 32 => "Lay Down Your Burdens, Part 1 (Das neue Caprica, Teil 1)",
+ 33 => "Lay Down Your Burdens, Part 2 (Das neue Caprica, Teil 2)",
+
+// 34 => "Occupation",
+// 35 => "Precipice",
+// 36 => "Exodus (Part 1)",
+// 37 => "Exodus (Part 2)",
+// 38 => "Collaborators",
+// 39 => "Torn",
+// 40 => "A Measure of Salvation",
+// 41 => "Hero",
+ 42 => "Unfinished Business",
+// 43 => "The Passage",
+// 44 => "The Eye of Jupiter",
+// 45 => "Rapture",
+// 46 => "Taking a Break from All Your Worries",
+// 47 => "The Woman King",
+// 48 => "A Day in the Life",
+// 49 => "Dirty Hands",
+// 50 => "Maelstrom",
+// 51 => "The Son Also Rises",
+// 52 => "Crossroads (Part 1)",
+// 53 => "Crossroads (Part 2)",
+
+// 54 => "Razor (Part 1)",
+// 55 => "Razor (Part 2)",
+
+ 56 => "He That Believeth in Me",
+ 57 => "Six of One",
+ 58 => "The Ties That Bind",
+ 59 => "Escape Velocity",
+ 60 => "The Road Less Traveled",
+ 61 => "Faith",
+ 62 => "Guess What's Coming to Dinner?",
+ 63 => "Sine Qua Non",
+ 64 => "The Hub",
+ 65 => "Revelations",
+ 66 => "Sometimes a Great Notion",
+ 67 => "A Disquiet Follows My Soul",
+ 68 => "The Oath",
+ 69 => "Blood on the Scales",
+ 70 => "No Exit",
+ 71 => "Deadlock",
+ 72 => "Someone to Watch Over Me",
+ 73 => "Islanded in a Stream of Stars",
+ 74 => "Daybreak (Part 1)",
+ 75 => "Daybreak (Parts 2 & 3)",
+
+ 76 => "The Plan",
+ )
+);
+
+// $serien['<span class="bsg">Battlestar Galactica</span> (2004, de)'] = array(
+// 'ignore' => true,
+// 'channel' => 'online',
+// // 'showtimes' => 'Mi 02:00',
+// // 'seen' => array(),
+// 'seasons' => array(13, 20, 20, 'Razor' => 2, 20, 'The Plan' => 1),
+// 'episode_list' => 'wiki:Liste_der_Battlestar-Galactica-Episoden',
+// 'episodes' => array(
+// 1 => "33 Minuten (33)",
+// // 2 => "Water",
+// // 3 => "Bastille Day",
+// // 4 => "Act of Contrition",
+// // 5 => "You Can't Go Home Again",
+// // 6 => "Litmus",
+// // 7 => "Six Degrees of Separation",
+// // 8 => "Flesh and Bone",
+// // 9 => "Tigh Me Up, Tigh Me Down",
+// // 10 => "The Hand of God",
+// // 11 => "Colonial Day",
+// // 12 => "Kobol's Last Gleaming (Part 1)",
+// // 13 => "Kobol's Last Gleaming (Part 2)",
+// 14 => "Scattered (Die verlorene Flotte)",
+// 15 => "Valley of Darkness (Im Tal der Finsternis)",
+// 16 => "Fragged (Die Gesetze des Krieges)",
+// 17 => "Resistance (Leben und Sterben)",
+// 18 => "The Farm (Die Farm)",
+// 19 => "Home, Part 1 (Heimat, Teil 1)",
+// 20 => "Home, Part 2 (Heimat, Teil 2)",
+// 21 => "Final Cut (Die Reporterin)",
+// 22 => "Flight of the Phoenix (Die Hoffnung lebt)",
+// 23 => "Pegasus",
+// 24 => "Resurrection Ship, Part 1 (Die Auferstehung, Teil 1)",
+// 25 => "Resurrection Ship, Part 2 (Die Auferstehung, Teil 2)",
+// 26 => "Epiphanies (Sabotage)",
+// 27 => "Black Market (Schwarzmarkt)",
+// 28 => "Scar (Der beste Jäger der Zylonen)",
+// 29 => "Sacrifice (Das Opfer)",
+// 30 => "The Captain's Hand (Mensch und Maschine)",
+// 31 => "Downloaded (Download)",
+// 32 => "Lay Down Your Burdens, Part 1 (Das neue Caprica, Teil 1)",
+// 33 => "Lay Down Your Burdens, Part 2 (Das neue Caprica, Teil 2)",
+// // 34 => "Occupation",
+// // 35 => "Precipice",
+// // 36 => "Exodus (Part 1)",
+// // 37 => "Exodus (Part 2)",
+// // 38 => "Collaborators",
+// // 39 => "Torn",
+// // 40 => "A Measure of Salvation",
+// // 41 => "Hero",
+// // 42 => "Unfinished Business",
+// // 43 => "The Passage",
+// // 44 => "The Eye of Jupiter",
+// // 45 => "Rapture",
+// // 46 => "Taking a Break from All Your Worries",
+// // 47 => "The Woman King",
+// // 48 => "A Day in the Life",
+// // 49 => "Dirty Hands",
+// // 50 => "Maelstrom",
+// // 51 => "The Son Also Rises",
+// // 52 => "Crossroads (Part 1)",
+// // 53 => "Crossroads (Part 2)",
+// // 54 => "Razor (Part 1)",
+// // 55 => "Razor (Part 2)",
+// // 56 => "He That Believeth in Me",
+// // 57 => "Six of One",
+// // 58 => "The Ties That Bind",
+// // 59 => "Escape Velocity",
+// // 60 => "The Road Less Traveled",
+// // 61 => "Faith",
+// // 62 => "Guess What's Coming to Dinner?",
+// // 63 => "Sine Qua Non",
+// // 64 => "The Hub",
+// // 65 => "Revelations",
+// // 66 => "Sometimes a Great Notion",
+// // 67 => "A Disquiet Follows My Soul",
+// // 68 => "The Oath",
+// // 69 => "Blood on the Scales",
+// // 70 => "No Exit",
+// // 71 => "Deadlock",
+// // 72 => "Someone to Watch Over Me",
+// // 73 => "Islanded in a Stream of Stars",
+// // 74 => "Daybreak (Part 1)",
+// // 75 => "Daybreak (Parts 2 & 3)",
+// 76 => "The Plan",
+// )
+// );
Index: live/media/video/series/includes/buffy.php
===================================================================
--- live/media/video/series/includes/buffy.php (revision 0)
+++ live/media/video/series/includes/buffy.php (revision 198)
@@ -0,0 +1,107 @@
+<?php
+
+$buffy = array(
+// 'ignore' => true,
+ 'channel' => 'online',
+// 'showtimes' => 'Mo 22:05–00:30',
+ 'seasons' => array(12, 22, 22, 22, 22, 22, 22),
+ 'seen' => array(array(1, 18)),
+ 'episode_list' => 'http://www.serienjunkies.de/Buffy/season1.html',
+ 'episodes' => array(
+ 1 => "Welcome to the Hellmouth (Das Zentrum des Bösen)",
+ 2 => "The Harvest (Die Zeit der Ernte)",
+ 3 => "Witch (Verhext)",
+ 4 => "Teacher's Pet (Die Gottesanbeterin)",
+ 5 => "Never Kill a Boy on the First Date (Ohne Buffy lebt sich's länger)",
+ 6 => "The Pack (Das Lied der Hyänen)",
+ 7 => "Angel (Angel - Blutige Küsse)",
+ 8 => "I Robot, You Jane (Computerdämon)",
+ 9 => "The Puppet Show (Buffy lässt die Puppen tanzen)",
+ 10 => "Nightmares (Die Macht der Träume)",
+ 11 => "Out of Mind, Out of Sight (Aus den Augen, aus dem Sinn)",
+ 12 => "Prophecy Girl (Das Ende der Welt)",
+
+ 13 => "When She Was Bad (Im Banne des Bösen)",
+ 14 => "Some Assembly Required (Operation Cordelia)",
+ 15 => "School Hard (Elternabend mit Hindernissen)",
+ 16 => "Inca Mummy Girl (Das Geheimnis der Mumie)",
+ 17 => "Reptile Boy (Der Geheimbund)",
+ 18 => "Halloween (Die Nacht der Verwandlung)",
+ 19 => "Lie to Me (Todessehnsucht)",
+ 20 => "The Dark Age (Das Mal des Eyghon)",
+ 21 => "What's My Line? (1) (Die Rivalin)",
+ 22 => "What's My Line? (2) (Das Ritual)",
+ 23 => "Ted",
+ 24 => "Bad Eggs (Faule Eier)",
+ 25 => "Surprise (Der Fluch der Zigeuner)",
+ 26 => "Innocence (Der gefallene Engel)",
+ 27 => "Phases (Der Werwolfjäger)",
+ 28 => "Bewitched, Bothered And Bewildered (Der Liebeszauber)",
+ 29 => "Passion (Das Jenseits lässt grüßen)",
+ 30 => "Killed by Death (Der unsichtbare Tod)",
+ 31 => "I Only Have Eyes for You (Ein Dämon namens Liebe)",
+ 32 => "Go Fish (Das Geheimnis der Fischmonster)",
+ 33 => "Becoming (1) (Wendepunkte)",
+ 34 => "Becoming (2) (Spiel mit dem Feuer)",
+
+ 35 => "Anne (Anne gefangen in der Unterwelt)",
+ 36 => "Dead Man's Party (Die Nacht der lebenden Toten)",
+ 37 => "Faith, Hope and Trick (Neue Freunde, neue Feinde)",
+ 38 => "Beauty and the Beasts (Dr. Jekyll und Mr. Hyde)",
+ 39 => "Homecoming (Die Qual der Wahl)",
+ 40 => "Band Candy (Außer Rand und Band)",
+ 41 => "Revelations (Der Handschuh von Myhnegon)",
+ 42 => "Lover's Walk (Liebe und andere Schwierigkeiten)",
+ 43 => "The Wish (Was wäre wenn...)",
+ 44 => "Amends (Heimsuchungen)",
+ 45 => "Gingerbread (Hänsel und Gretel)",
+ 46 => "Helpless (Die Reifeprüfung)",
+ 47 => "The Zeppo (Die Nacht der lebenden Leichen)",
+ 48 => "Bad Girls (Der neue Wächter)",
+ 49 => "Consequences (Konsequenzen)",
+ 50 => "Doppelgangland (Doppelgängerland)",
+ 51 => "Enemies (Gefährliche Spiele)",
+ 52 => "Choices (Die Box von Gavrock)",
+ 53 => "The Prom (Der Höllenhund)",
+ 54 => "Graduation Day (1) (Das Blut der Jägerin)",
+ 55 => "Graduation Day (2) (Tag der Vergeltung)",
+ 56 => "Earshot (Fremde Gedanken)",
+
+ 109 => "Smashed (Alte Feinde, neue Freunde?)",
+ 110 => "Wrecked (Der Fluch der Zauberei)",
+ 111 => "Gone (Verschwunden)",
+ 112 => "Doublemeat Palace (Geheimnisvolle Zutaten)",
+ 113 => "Dead Things (Manipulationen)",
+ 114 => "Older and Far Away (Ein verfluchter Geburtstag)",
+ 115 => "As You Were (Überraschender Besuch)",
+ 116 => "Hell's Bells (Höllische Hochzeit)",
+ 117 => "Normal Again (Zwei Welten)",
+ 118 => "Entropy (Im Chaos der Gefühle)",
+ 119 => "Seeing Red (Warrens Rache)",
+ 120 => "Villains (Wut)",
+ 121 => "Two to Go (Da waren's nur noch zwei)",
+ 122 => "Grave (Der Retter)",
+ 123 => "Lessons (Alles auf Anfang)",
+ 124 => "Beneath You (Das Monster aus der Tiefe)",
+ 125 => "Same Time, Same Place (Willows Welt)",
+ 126 => "Help (Hilflos)",
+ 127 => "Selfless (Wandlungen)",
+ 128 => "Him (Liebesbeweise)",
+ 129 => "Conversations with Dead People (Gespräche mit Toten)",
+ 130 => "Sleeper (Unschuldig Schuldig)",
+ 131 => "Never Leave Me (Boten des Bösen)",
+ 132 => "Bring on the Night (Wenn die Nacht beginnt)",
+ 133 => "Showtime (Showtime)",
+ 134 => "Potential (Die Anwärterin)",
+ 135 => "The Killer in Me (Die Mörder in mir)",
+ 136 => "First Date (Das Erste Date)",
+ 137 => "Get It Done (Das Angebot)",
+ 138 => "Storyteller (Der Geschichtenerzähler)",
+ 139 => "Lies My Parents Told Me (Mütter und Söhne)",
+ 140 => "Dirty Girls (Caleb)",
+ 141 => "Empty Places (... und raus bist Du)",
+ 142 => "Touched (Die Quelle der Mache)",
+ 143 => "End of Days (Das Ende der Zeit, Teil 1)",
+ 144 => "Chosen (Das Ende der Zeit, Teil 2)",
+ )
+);
Index: live/media/video/series/includes/castle.php
===================================================================
--- live/media/video/series/includes/castle.php (revision 0)
+++ live/media/video/series/includes/castle.php (revision 198)
@@ -0,0 +1,103 @@
+<?php
+
+$castle = array(
+// 'ignore' => true,
+ 'channel' => 'online',
+// 'showtimes' => 'Fr 20:00',
+ 'seen' => array(array(1, 14)),
+// 'last_seen' => mktime(20, 0, 0, 7, 1, 2011),
+ 'seasons' => array(10, 24, 24, 23, 24, 1),
+ 'episode_list' => 'wiki:en:List_of_Castle_episodes',
+ 'episodes' => array(
+ 1 => "Flowers for Your Grave",
+ 2 => "Nanny McDead",
+ 3 => "Hedge Fund Homeboys",
+ 4 => "Hell Hath No Fury",
+ 5 => "A Chill Goes Through Her Veins",
+ 6 => "Always Buy Retail",
+ 7 => "Home Is Where the Heart Stops",
+ 8 => "Ghosts",
+ 9 => "Little Girl Lost",
+ 10 => "A Death in the Family",
+
+ 11 => "Deep in Death",
+ 12 => "The Double Down",
+ 13 => "Inventing the Girl",
+ 14 => "Fool Me Once…",
+ 15 => "When the Bough Breaks",
+ 16 => "Vampire Weekend",
+ 17 => "Famous Last Words",
+ 18 => "Kill the Messenger",
+ 19 => "Love Me Dead",
+ 20 => "One Man's Treasure",
+ 21 => "The Fifth Bullet",
+ 22 => "A Rose for Everafter",
+ 23 => "Sucker Punch",
+ 24 => "The Third Man",
+ 25 => "Suicide Squeeze",
+ 26 => "The Mistress Always Spanks Twice",
+ 27 => "Tick, Tick, Tick…",
+ 28 => "Boom!",
+ 29 => "Wrapped Up in Death",
+ 30 => "The Late Shaft",
+ 31 => "Den of Thieves",
+ 32 => "Food to Die For",
+ 33 => "Overkill",
+ 34 => "A Deadly Game",
+ )
+);
+
+// '<span class="castle">Castle</span> (de)' => array(
+ // 'ignore' => true,
+ // // 'channel' => 'kabel eins / SF2',
+ // 'channel' => 'online',
+ // 'showtimes' => 'Fr 20:15 / Mo 21:37',
+ // 'seen' => array(1),
+ // // 'last_seen' => mktime(20, 0, 0, 7, 1, 2011),
+ // 'seasons' => array(10, 24, 24),
+ // 'episode_list' => 'wiki:Castle_(Fernsehserie)#Episodenliste',
+ // 'episodes' => array(
+ // 1 => "Blumen für ihr Grab (Flowers for Your Grave)",
+
+ // 5 => "Gefrorenes Blut (A Chill Goes Through Her Veins)",
+
+ // 21 => "Die fünfte Kugel (The Fifth Bullet)",
+ // 22 => "Eine Rose für immer und ewig (A Rose for Everafter)",
+
+ // 25 => "Cuba Libre (Suicide Squeeze)",
+ // 26 => "Die Domina schlägt immer zweimal zu (The Mistress Always Spanks Twice)",
+ // 27 => "Tick, tick, tick …",
+ // 28 => "Bumm! (Boom!)",
+ // 29 => "Der Fluch der Mumie (Wrapped Up in Death)",
+ // 30 => "Die Late-Night Jungs (The Late Shaft)",
+ // 31 => "Keine Ganovenehre (Den of Thieves)",
+ // 32 => "Leiche am Stiel (Food to Die For)",
+ // 33 => "Zu viel des Guten (Overkill)",
+ // // 34 => "Der tote Spion (A Deadly Game)",
+
+ // 35 => "Eine tödliche Affäre (A Deadly Affair)",
+ // 36 => "Er ist tot, sie ist tot (He’s Dead, She’s Dead)",
+ // 37 => "Die Schatzkarte (Under The Gun)",
+ // 38 => "Ein Mörder auf Zeitreise (Punked)",
+ // 39 => "Anatomie eines Mordes (Anatomy of a Murder)",
+ // 40 => "Der Dreifachmörder (3XK)",
+ // 41 => "Fast berühmt (Almost Famous)",
+ // 42 => "Der Glühbirnen-Held (Murder Most Fowl)",
+ // 43 => "Akte X (Close Encounters of the Murderous Kind)",
+ // 44 => "Speakeasy (Last Call)",
+ // 45 => "Nikki Heat",
+ // 46 => "Puff, du bist tot (Poof! You’re Dead)",
+ // 47 => "Johanna Beckett (Knockdown)",
+ // 48 => "Todsicheres Glück (Lucky Stiff)",
+ // 49 => "Der letzte Nagel (The Final Nail)",
+ // 50 => "Die schmutzige Bombe – Teil 1 (Setup (1))",
+ // 51 => "Countdown – Teil 2 (Countdown (2)) (2011-09-30)",
+ // 52 => "Mörderische Seifenoper (One Life to Lose)",
+ // 53 => "Tod eines Geschworenen (Law & Murder)",
+ // 54 => "Die Pizza-Connection (Slice of Death)",
+ // 55 => "Tod im Pool (The Dead Pool)",
+ // 56 => "Lieben und Sterben in L.A. (To Love and Die in L.A.)",
+ // 57 => "Ganz schön tot (Pretty Dead)",
+ // 58 => "Knockout",
+ // )
+ // ),
Index: live/media/video/series/style.css
===================================================================
--- live/media/video/series/style.css (revision 0)
+++ live/media/video/series/style.css (revision 198)
@@ -0,0 +1,2224 @@
+<?php
+/* namespace ; */
+
+\header('Last-Modified: ' . gmdate('D, d M Y H:i:s', @filemtime(__FILE__)) . ' GMT');
+
+/* Cached resource expires in HTTP/1.1 caches 24h after last retrieval */
+\header('Cache-Control: max-age=86400, s-maxage=86400, must-revalidate, proxy-revalidate');
+
+/* Cached resource expires in HTTP/1.0 caches 24h after last retrieval */
+\header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 86400) . ' GMT');
+
+\header('Content-Type: text/css; charset=UTF-8');
+
+require_once 'css/least/Mixins.php';
+use de\pointedears\css\least\Mixins;
+?>
+@CHARSET "UTF-8";
+
+html, body {
+ -webkit-font-smoothing: antialiased;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ /* from SVG for Gecko and WebKit */
+ text-rendering: optimizeLegibility;
+}
+
+body {
+ font-family: sans-serif;
+}
+
+:link, :visited {
+ text-decoration: none;
+ color: inherit;
+}
+
+.hidden {
+ display: none !important;
+}
+
+h1 {
+ margin: 0;
+ text-align: center;
+}
+
+[title] {
+ cursor: help;
+/* border-bottom: 1px dotted black; */
+}
+
+table {
+ width: 100%;
+ border-collapse: collapse;
+}
+
+th {
+ width: 20%;
+ padding: 0.25em 0.5em 0.25em 0;
+ font-weight: normal;
+ text-align: right;
+}
+
+td:first-child {
+ width: 1em;
+ border: none;
+}
+
+th.recommended {
+ border-left: 2px solid green;
+ border-top: 2px solid green;
+ border-bottom: 2px solid green;
+}
+
+td:last-child {
+ padding-right: 0.25em;
+}
+
+td.recommended {
+ border-top: 2px solid green;
+ border-right: 2px solid green;
+ border-bottom: 2px solid green;
+}
+
+@font-face {
+ font-family: "Futura Condensed";
+ src: local("Futura Condensed"), url(/styles/fonts/non-free/futura_condensed.TTF);
+}
+
+@font-face {
+ font-family: "X-Files";
+ src: local("X-Files"), url(/styles/fonts/x-files.ttf);
+}
+
+.akte-x {
+ padding: 1em 0.25em 0.6em 0.25em;
+ <?php
+/*
+ background-image: -(o-|)linear-gradient(12deg,
+ rgba(236, 244, 235, 0) 33%, rgba(236, 244, 235, 0.9) 68%,
+ rgba(236, 244, 235, 0.9) 70%, rgba(236, 244, 235, 0) 90%);
+*/
+ Mixins::linear_gradient(
+ 'background-image',
+ '12deg,
+ rgba(236, 244, 235, 0) 33%, rgba(236, 244, 235, 0.9) 68%,
+ rgba(236, 244, 235, 0.9) 70%, rgba(236, 244, 235, 0) 90%',
+ array('-o-', ''));
+ ?>
+ background-image:
+ -moz-radial-gradient(65% 60%,
+ rgba(236, 244, 235, 0.5) 50%, rgba(236, 244, 235, 0.1)),
+ -moz-linear-gradient(12deg,
+ rgba(236, 244, 235, 0) 33%, rgba(236, 244, 235, 0.9) 68%,
+ rgba(236, 244, 235, 0.9) 70%, rgba(236, 244, 235, 0) 90%);
+ background-image:
+ -webkit-radial-gradient(65% 60%, 25% 75%,
+ rgba(236, 244, 235, 0.5) 50%, rgba(236, 244, 235, 0.1)),
+ -webkit-linear-gradient(12deg,
+ rgba(236, 244, 235, 0) 33%, rgba(236, 244, 235, 0.9) 68%,
+ rgba(236, 244, 235, 0.9) 70%, rgba(236, 244, 235, 0) 90%);
+ background-color: #000;
+ color: #dcdfdc;
+ line-height: 2em;
+ vertical-align: middle;
+}
+
+.akte-x .small {
+ padding-left: 1em;
+<?php
+/*
+ background-image: -()linear-gradient(bottom left, black, transparent);
+ */
+ Mixins::linear_gradient('background-image', 'bottom left, black, transparent');
+?>
+ vertical-align: middle;
+ font-family: "Futura Condensed", sans-serif;
+ font-size: 50%;
+ text-transform: uppercase;
+ letter-spacing: 1em;
+}
+
+.akte-x .before-x {
+ letter-spacing: normal;
+}
+
+.akte-x .x {
+ font-family: "X-Files", sans-serif;
+ font-size: 600%;
+ font-weight: lighter;
+ vertical-align: middle;
+ vertical-align: -webkit-baseline-middle;
+ color: black;
+ -webkit-mask-image: -webkit-linear-gradient(-12deg,
+ rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 1));
+}
+
+.alf {
+ font-family: "URW Bookman L", serif;
+ font-weight: bold;
+ font-size: 120%;
+
+}
+
+@font-face {
+ font-family: "Highguard";
+ src: local("Highguard"), url(/styles/fonts/Highguard.ttf);
+}
+
+.andromeda {
+ position: relative;
+ font-family: "Highguard", sans-serif;
+ font-size: 204%;
+ color: rgba(245, 153, 79, 1);
+ text-shadow:
+ /* blurred shadow */
+ -1px 0 2px black, 0 -1px 2px black, 1px 0 2px black, 0 1px 2px black,
+
+ /* outline */
+ -1px 0 black, 0 -1px black, 1px 0 black, 0 1px black;
+}
+
+.andromeda .gradient {
+ -webkit-mask-image: -webkit-linear-gradient(top,
+ rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 1));
+}
+
+.andromeda .roddenberry {
+ position: absolute;
+ right: 3.75em;
+ top: 1.7em;
+ font-family: sans-serif;
+ font-size: 21%;
+ text-transform: uppercase;
+ color: black;
+ text-shadow: none;
+ letter-spacing: 0;
+}
+
+.big-bang-theory {
+ font-family: Impact, sans-serif;
+ font-size: 122%;
+ font-weight: bold;
+ text-transform: uppercase;
+}
+
+.big-bang-theory .lower {
+ font-size: 0.75em;
+ text-transform: lowercase;
+}
+
+.big-bang-theory .i {
+ text-transform: none;
+ font-size: 111%;
+ font-weight: normal;
+}
+
+.big-bang-theory .bang {
+ color: #CE152C;
+}
+
+@font-face {
+ font-family: "Battlestar";
+ src: local("Battlestar"), url(/styles/fonts/BATTLEST.TTF);
+}
+
+.bsg {
+ font-family: "Battlestar", sans-serif;
+ font-size: 84%;
+}
+
+@font-face {
+ font-family: "Buffied";
+ src: local("Buffied"), url(/styles/fonts/Buffied.ttf);
+}
+
+@font-face {
+ font-family: "Slayer";
+ src: url(/styles/fonts/slayer11.eot?);
+ src: local("Slayer"),
+ url(/styles/fonts/slayer11.eot?) format("eot"),
+ url(/styles/fonts/slayer11.woff) format("woff"),
+ url(/styles/fonts/slayer11.ttf) format("truetype"),
+ url(/styles/fonts/slayer11.svg#Slayer) format("svg");
+ font-weight: normal;
+ font-style: normal;
+}
+
+@font-face {
+ font-family: "Kruella";
+ src: local("Kruella"), url(/styles/fonts/non-free/kruella.ttf);
+}
+
+.buffy {
+ display: inline-block;
+ padding: 0.75em 0.5em 0.5em 0.5em;
+ background-color: #000700;
+ <?php Mixins::radial_gradient('background-image', 'circle, #6d7a9c 35%, transparent 45%'); ?>
+ color: #feffff;
+ line-height: 1em;
+ text-align: center;
+ text-shadow: 1px 1px 1px black;
+}
+
+.buffy .title {
+ font-family: "Buffied", fantasy;
+ font-size: 200%;
+}
+
+.buffy .subtitle {
+ display: block;
+ font-family: "Slayer", sans-serif;
+ font-size: 50%;
+ font-variant: small-caps;
+}
+
+@font-face {
+ font-family: "Arno Pro Caption";
+ src: local("Arno Pro Caption"), url(/styles/fonts/non-free/arnopro-caption.otf);
+}
+
+.castle {
+ font-family: "Arno Pro Caption", serif;
+ font-size: 120%;
+ line-height: 1;
+ text-transform: uppercase;
+}
+
+@font-face {
+ font-family: "KopyKattKut Bold";
+ src: local("KopyKattKut Bold"), url(/styles/fonts/KopyKattKut-Bold.otf);
+}
+
+.charmed {
+ position: relative;
+ display: inline-block;
+ background-color: #080E32;
+ color: rgb(223, 229, 251);
+ color: rgba(255, 255, 255, 0.75);
+ padding: 1.5em 0.5em 0.75em 0.5em;
+ font-family: "KopyKattKut Bold", serif;
+ font-size: 115%;
+ /*letter-spacing: -0.125em;*/
+ line-height: 2;
+ overflow: hidden;
+ text-transform: uppercase;
+}
+
+.charmed .circle {
+ position: absolute;
+ left: 50%;
+ top: 60%;
+ width: 2em;
+ height: 2em;
+ margin-left: -1.3em;
+ margin-top: -1.3em;
+ border-radius: 50%;
+ border: 0.325em solid rgba(36, 63, 219, 0.33);
+}
+
+.charmed .circle:before {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ width: 75%;
+ height: 75%;
+ margin-left: -1.7em;
+ margin-top: -0.7em;
+ border: 0.325em solid rgba(36, 63, 219, 0.33);
+ border-radius: 100% 0;
+ content: "";
+ <?php
+/*
+ -(moz-|webkit-|)transform: rotate(15deg);
+ */
+ Mixins::prefix_property('transform', '',
+ 'rotate(15deg)',
+ array('-moz-', '-webkit-', ''));
+ ?>
+}
+
+.charmed .circle:after {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ width: 75%;
+ height: 75%;
+ margin-left: -1.05em;
+ margin-top: -1.85em;
+ border: 0.325em solid rgba(36, 63, 219, 0.33);
+ border-radius: 100% 0;
+ content: "";
+ <?php
+ Mixins::prefix_property('transform', '',
+ 'rotate(-45deg)',
+ array('-moz-', '-webkit-', ''));
+ ?>
+}
+
+.charmed .arc3 {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ width: 1.5em;
+ height: 1.5em;
+ margin-left: -0.3em;
+ margin-top: -0.3em;
+ border: 0.325em solid rgba(36, 63, 219, 0.33);
+ border-radius: 0 100% 0 100%;
+ content: "";
+ <?php
+ Mixins::prefix_property('transform', '',
+ 'rotate(-15deg)',
+ array('-moz-', '-webkit-', ''));
+ ?>
+}
+
+.charmed .c {
+ /* font-size: 150%; */
+}
+
+.charmed span {
+ position: relative;
+ /* vertical-align: middle; */
+}
+
+@font-face {
+ font-family: "Coolvetica";
+ src: local("Coolvetica"), url(/styles/fonts/non-free/coolvetica.ttf);
+}
+
+.columbo {
+ padding: 0 0.25em;
+ background-color: #273d50;
+ color: #fde06c;
+ font-family: "Coolvetica", sans-serif;
+ font-size: 130%;
+ letter-spacing: 0.0625em;
+ text-transform: uppercase;
+ text-shadow: 2px 2px 1px black;
+}
+
+@font-face {
+ font-family: "ITC Serif Gothic LT Bold";
+ src: url(/styles/fonts/non-free/itc_serif_gothic--lte50299.ttf);
+}
+
+@font-face {
+ font-family: "ITC Serif Gothic LT Heavy";
+ src: url(/styles/fonts/non-free/itc_serif_gothic--lte50301.ttf);
+}
+
+.countdown-x {
+ display: inline-block;
+ font-family: "ITC Serif Gothic LT Heavy", sans-serif;
+ line-height: 0.9em;
+ text-align: center;
+ text-shadow: 1px 1px #999;
+}
+
+.countdown-x .title:before {
+ content: "\2013\00A0";
+}
+
+.countdown-x .subtitle {
+ display: block;
+ font-family: "ITC Serif Gothic LT Bold", sans-serif;
+}
+
+.dead-zone {
+ display: inline-block;
+ background-color: black;
+ background-image: -webkit-radial-gradient(50% 20%, 20% 100%, white, transparent 75%);
+ color: white;
+ font-family: serif;
+ font-size: 120%;
+ font-weight: bold;
+ line-height: 1;
+ text-align: center;
+ text-transform: uppercase;
+}
+
+.dead-zone .text {
+ display: block;
+ margin-top: 1em;
+ padding: 0 1em;
+ background: white;
+ background:
+ -webkit-linear-gradient(-5deg, rgba(255, 255, 255, 0),
+ rgba(255, 255, 255, 0.75), rgba(255, 255, 255, 0)),
+ -webkit-linear-gradient(5deg, rgba(255, 255, 255, 0),
+ rgba(255, 255, 255, 0.75), rgba(255, 255, 255, 0));
+ background:
+ linear-gradient(-5deg, rgba(255, 255, 255, 0),
+ rgba(255, 255, 255, 0.75), rgba(255, 255, 255, 0)),
+ linear-gradient(5deg, rgba(255, 255, 255, 0),
+ rgba(255, 255, 255, 0.75), rgba(255, 255, 255, 0));
+ color: black;
+}
+
+.dead-zone .text .dead {
+ display: block;
+ top: -0.125em;
+ position: relative;
+ font-size: 90%;
+ color: #222;
+ text-shadow: 0 0 10px white;
+}
+
+.dead-zone .text .zone {
+ display: block;
+ position: relative;
+ top: -0.5em;
+ font-size: 110%;
+ <?php
+ Mixins::prefix_property('transform', '',
+ 'perspective(15px) rotateX(35deg)',
+ array('-webkit-', ''));
+ ?>
+ -webkit-mask-image: -webkit-linear-gradient(
+ rgba(0, 0, 0, 0.9), rgba(0, 0, 0, 0.67));
+}
+
+@font-face {
+ font-family: "Doctor Who";
+ src: local("Matt Smith Doctor Who"), url(/styles/fonts/matt_smith_doctor_who.ttf);
+}
+
+.doctor-who {
+ position: relative;
+ color: #386688;
+ font-family: "Doctor Who", serif;
+ font-size: 250%;
+ text-transform: uppercase;
+ text-shadow: 0 0 1px rgba(0, 0, 0, 0.25);
+}
+
+.doctor-who .gradient {
+ position: absolute;
+ left: 0;
+ top: 0;
+ -webkit-mask-image:
+ -webkit-radial-gradient(0.15em 0.125em, 15% 50%, rgba(0, 0, 0, 0.4) 10%, rgba(0, 0, 0, 1));
+ z-index: 2;
+}
+
+.doctor-who .gradient2 {
+ -webkit-mask-image:
+ -webkit-radial-gradient(1.2em 0.125em, 15% 50%, rgba(0, 0, 0, 0.2) 15%, rgba(0, 0, 0, 1));
+}
+
+.doctor-who .gradient3 {
+ -webkit-mask-image:
+ -webkit-radial-gradient(2.4em 0.25em, 15% 50%, rgba(0, 0, 0, 0.2) 15%, rgba(0, 0, 0, 1));
+}
+
+.doctor-who:after {
+ content: "Doctor Who";
+ color: #f7f9fb;
+}
+
+@font-face {
+ font-family: "a_Futura Orto";
+ src: local("Futura Orto"), url(/styles/fonts/a_futuraorto.ttf);
+}
+
+@font-face {
+ font-family: "a_Futura Orto Bold";
+ src: local("Futura Orto Bold"), url(/styles/fonts/a_futuraorto_bold.ttf);
+}
+
+.efc {
+ position: relative;
+ display: inline-block;
+ background-color: #000;
+ background-image:
+ /* Terra */
+ -moz-radial-gradient(28.6541% -128%, circle, black 67%, #1C1F1C 71%, #394138 72.5%, transparent 73%),
+
+ /* Sol */
+ -moz-radial-gradient(56.729378% 52.895753%, circle, #fafdfa 7.366136%, #f9c699 9%, transparent 33%);
+ background-image:
+ /* Terra */
+ -webkit-radial-gradient(28.654124% -155%, circle, black 67%, #1c1f1c 71%, #394138 72.5%, transparent 73%),
+
+ /* Sol */
+ -webkit-radial-gradient(55.137482% 42.084942%, circle, #fafdfa 7.366136%, #f9c699 9%, transparent 33%);
+ color: #eeeeec;
+ font-family: "a_Futura Orto Bold", sans-serif;
+ line-height: 1em;
+ text-align: center;
+ text-transform: uppercase;
+}
+
+.efc .glare {
+ position: absolute;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ background-image: -webkit-radial-gradient(56% 43%, 50% 8%, #fafdfa 14%, rgb(249, 198, 153) 15%, rgba(249, 198, 153, 0) 30%);
+ -webkit-transform: rotate(-11.5deg);
+}
+
+.efc:after {
+ position: absolute;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ content: "";
+ background-image:
+ -moz-radial-gradient(55.137482% 42.084942%,
+ rgba(255, 255, 255, 0.2) 18%,
+ rgba(255, 255, 255, 0.04));
+ background-image:
+ -webkit-radial-gradient(55.137482% 42.084942%, rgba(255, 255, 255, 0.2) 18%, rgba(255, 255, 255, 0.04));
+}
+
+.efc .gr {
+ display: block;
+ margin-top: 1em;
+ margin-bottom: 2.5em;
+ font-family: "a_Futura Orto", sans-serif;
+ font-size: 50%;
+}
+
+.efc .earth {
+ position: relative;
+ display: block;
+ padding: 0 0 0 0.35em;
+ font-size: x-large;
+ letter-spacing: 0.35em;
+ color: #efd065;
+ line-height: 1em;
+ text-shadow: 0 0 1px rgba(0, 0, 0, 0.75);
+}
+
+.earth .gradient {
+ position: absolute;
+ padding: 0 0 0 0.35em;
+ left: 0;
+ top: 0;
+ -webkit-mask-image: -webkit-linear-gradient(
+ rgba(255, 255, 255, 1), rgba(243, 205, 98, 0.5) 50%, rgba(0, 0, 0, 0));
+ z-index: 2;
+}
+
+.efc .earth:after {
+ content: "Earth";
+ color: #9b411a;
+}
+
+@font-face {
+ font-family: "Troglodyte";
+ src: local("Troglodyte"), url(/styles/fonts/TROGLO__.ttf);
+}
+
+.efc .fc {
+ position: relative;
+ top: -0.5em;
+ display: block;
+ color: #ac493d;
+ font-family: "Troglodyte", sans-serif;
+ font-size: 71%;
+ line-height: normal;
+ text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.25);
+}
+
+@font-face {
+ font-family: "Interstate";
+ src: local("Interstate"), url(/styles/fonts/non-free/interstate_ultra-black_condensed.ttf);
+}
+
+.eureka {
+ position: relative;
+ padding: 0.25em 0.5em 0.125em 0.5em;
+ font-family: "Interstate", sans-serif;
+ font-size: 130%;
+ background-color: #8de5f9;
+ background-image: -moz-radial-gradient(bottom, ellipse,
+ #f4fff7 20%, #8de5f9, #285e8d);
+ background-image: -webkit-radial-gradient(bottom, 100% 125%,
+ #f4fff7 20%, #8de5f9, #285e8d);
+ color: rgb(251, 254, 247);
+ color: rgba(255, 255, 255, 0.9);
+ text-shadow: 0 -1px rgb(77, 148, 168), 1px 0 1px rgb(168, 217, 231),
+ 1px -1px rgb(77, 148, 168);
+ text-shadow: 0 -1px rgba(77, 148, 168, 0.9), 1px 0 1px rgba(168, 217, 231, 0.9),
+ 1px -1px rgba(77, 148, 168, 0.9);
+}
+
+.eureka .gradient {
+ display: inline-block;
+ <?php
+ Mixins::prefix_property('transform', '',
+ 'matrix(1, 0, 0, 0.9, 0, 0)',
+ array('-moz-', '-webkit-', ''));
+ ?>
+/*
+ position: absolute;
+ padding: 0.25em 0.5em 0.125em 0.5em;
+ left: 0;
+ top: 0;
+ -webkit-mask-image: -webkit-linear-gradient(
+ rgba(0, 0, 0, 1) 30%, transparent 55%, rgba(0, 0, 0, 1) 80%);
+ z-index: 2;
+*/
+}
+/*
+.eureka:after {
+ content: "EUReKA";
+ color: red;
+}
+*/
+
+.eureka .eur {
+ text-transform: uppercase;
+}
+
+.eureka .e {
+ display: inline-block;
+ position: relative;
+ bottom: 0.25em;
+ text-shadow: 0 1px 1px rgb(168, 217, 231), 0 1px rgb(77, 148, 168);
+ text-shadow: 0 1px 1px rgba(168, 217, 231, 0.9), 0 1px rgba(77, 148, 168, 0.9);
+
+ -moz-transform: matrix(1, 0, 0, 0.9, 0, 0);
+ -moz-transform: perspective(50px) rotateX(45deg);
+ -o-transform: matrix(1, 0, 0, 0.9, 0, 0);
+ -ms-transform: matrix(1, 0, 0, 0.9, 0, 0);
+ -webkit-transform: perspective(50px) rotateX(45deg);
+ transform: perspective(50px) rotateX(45deg);
+}
+
+.eureka .ka {
+ text-shadow: -1px 0 1px rgb(168, 217, 231), -1px -1px rgb(77, 148, 168),
+ 0 -1px rgb(77, 148, 168);
+ text-shadow: -1px 0 1px rgba(168, 217, 231, 0.9), -1px -1px rgba(77, 148, 168, 0.9),
+ 0 -1px rgba(77, 148, 168, 0.9);
+ text-transform: uppercase;
+}
+
+@font-face {
+ font-family: "Marriage-Script";
+ font-weight: normal;
+ src: local("Marriage-Script"), url(/styles/fonts/MARRIAGE.TTF);
+}
+
+.firefly {
+ display: inline-block;
+ padding: 0.4em 0.8em 0.4em 0.95em;
+ background-color: #762109;
+ <?php
+ Mixins::linear_gradient('background-image',
+ 'rgba(73, 1, 2, 0.8) 15%,
+ rgba(155, 73, 49, 0) 15%, rgba(155, 73, 49, 0) 85%,
+ rgba(73, 1, 2, 0.8) 85%, rgba(73, 1, 2, 0.8)');
+ ?>
+ color: #fefcff;
+ font-family: "Marriage-Script", cursive;
+ font-size: 160%;
+ text-shadow: -1px 0px 1px #300202, 2px 2px 4px #fed700, 0px 0px 4px #270201;
+ text-transform: lowercase;
+}
+
+.firefly .e {
+ text-shadow: 0px 0px 4px #fed700;
+}
+
+@font-face {
+ font-family: "Middleton";
+ src: url(/styles/fonts/non-free/middleto.ttf);
+}
+
+.frasier {
+ font-family: "Middleton", sans-serif;
+ font-size: 120%;
+ text-transform: uppercase;
+}
+
+.frasier span {
+ font-size: 75%;
+}
+
+.fresh-hell {
+ position: relative;
+ background-color: white;
+ color: #fff900;
+ font-family: Kruella, fantasy;
+ font-size: 150%;
+ text-transform: uppercase;
+ white-space: nowrap;
+ -webkit-text-stroke: 0.25px #333;
+ text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.5);
+}
+
+.fresh-hell .gradient {
+ position: absolute;
+ left: 0;
+ top: 0;
+ -webkit-mask-image: -webkit-linear-gradient(
+ rgba(0, 0, 0, 1), transparent);
+ z-index: 2;
+}
+
+.fresh-hell:after {
+ content: "Fresh Hell";
+ color: #bf170a;
+}
+
+@font-face {
+ font-family: "Century Gothic";
+ src: local("Century Gothic"), url(/styles/fonts/non-free/Century_Gothic.TTF);
+}
+
+.fringe {
+ display: inline-block;
+ padding: 0.125em 0.5em 0.125em 0.5em;
+ background-color: #000;
+ background-image: -moz-radial-gradient(center, #D6DBD3 4%, #7d9b9d 60%, black);
+ background-image: -webkit-radial-gradient(center, 67% 67%, #D6DBD3 4%, #7d9b9d 60%, black);
+ color: #101811;
+ font-family: "Century Gothic", sans-serif;
+ font-weight: bolder;
+ font-size: 140%;
+ text-transform: uppercase;
+}
+
+.fringe .gradient {
+ display: inline-block;
+ /*
+ -webkit-mask-image: -webkit-radial-gradient(center, 150% 150%,
+ rgba(255, 255, 255, 1), rgba(255, 255, 255, 0.125));
+ */
+ <?php
+ Mixins::prefix_property('transform', '',
+ 'perspective(50px) rotateX(4.43deg)',
+ array('-moz-', '-webkit-', ''));
+ ?>
+}
+
+.fringe .f {
+ display: inline-block;
+
+ /*-webkit-transform: matrix(1, 0, -0.06, 1, 0, 0);*/
+ text-shadow:
+ 0.5px 0.25px #5b6e65,
+ 0.75px 0.5px #5b6e65,
+ 1.25px 0.75px #5b6e65,
+ 1.5px 1.25px #5b6e65,
+ 1.75px 1.5px #5b6e65,
+ 2px 1.75px #5b6e65,
+ 2.25px 2px #5b6e65;
+
+ /* text-shadow: 1px 0.75px 2px #5b6e65, 1px 1.75px 0px #758278; */
+ /* shadow-pos: y = -0.83909963 * x */
+/*
+ text-shadow: 0.5px 0.25px #111910, 0.75px 0.5px #111910,
+ 1.25px 0.75px #111910, 1.5px 1.25px #111910, 1.75px 1.5px #111910,
+ 1.75px 1.5px #111910, 2.25px 1.75px #111910;
+ */
+}
+
+.fringe .r {
+ display: inline-block;
+ /*-webkit-transform: matrix(1, 0, -0.04, 1, 0, 0);*/
+ /*
+ text-shadow:
+ 0.25px 0.25px $fringe_shadow,
+ 0.5px 0.5px $fringe_shadow,
+ 1px 0.75px $fringe_shadow,
+ 1.25px 1.25px $fringe_shadow,
+ 1.5px 1.5px $fringe_shadow,
+ 1.75px 1.75px $fringe_shadow,
+ 2px 2px $fringe_shadow;
+ */
+ /* Same shadow as .f */
+ text-shadow:
+ 0.5px 0.25px #5b6e65,
+ 0.75px 0.5px #5b6e65,
+ 1.25px 0.75px #5b6e65,
+ 1.5px 1.25px #5b6e65,
+ 1.75px 1.5px #5b6e65,
+ 2px 1.75px #5b6e65,
+ 2.25px 2px #5b6e65;
+}
+
+.fringe .i {
+ display: inline-block;
+ /* -webkit-transform: matrix(1, 0, -0.02, 1, 0, 0); */
+ /*
+ text-shadow:
+ 0 0.25px $fringe_shadow,
+ 0.5px 0.5px $fringe_shadow,
+ 0.75px 0.75px $fringe_shadow,
+ 1px 1.25px $fringe_shadow,
+ 1.25px 1.5px $fringe_shadow,
+ 1.5px 1.75px $fringe_shadow,
+ 1.75px 2px $fringe_shadow;
+ */
+ /* Same shadow as .f */
+ text-shadow:
+ 0.5px 0.25px #5b6e65,
+ 0.75px 0.5px #5b6e65,
+ 1.25px 0.75px #5b6e65,
+ 1.5px 1.25px #5b6e65,
+ 1.75px 1.5px #5b6e65,
+ 2px 1.75px #5b6e65,
+ 2.25px 2px #5b6e65;
+}
+
+.fringe .n {
+ display: inline-block;
+ /*- webkit-transform: matrix(1, 0, -0.01, 1, 0, 0); */
+ text-shadow:
+ 0 0.25px #5b6e65,
+ 0 0.5px #5b6e65,
+ 0 0.75px #5b6e65,
+ 0 1.25px #5b6e65,
+ 0 1.5px #5b6e65,
+ 0 1.75px #5b6e65,
+ 0 2px #5b6e65;
+}
+
+.fringe .g {
+ display: inline-block;
+ /* -webkit-transform: matrix(1, 0, 0.01, 1, 0, 0); */
+ /* text-shadow:
+ 0 0.25px $fringe_shadow,
+ -0.5px 0.5px $fringe_shadow,
+ -0.75px 0.75px $fringe_shadow,
+ -1px 1.25px $fringe_shadow,
+ -1.25px 1.5px $fringe_shadow,
+ -1.5px 1.75px $fringe_shadow,
+ -1.75px 2px $fringe_shadow; */
+ /* Same shadow as .e */
+ text-shadow:
+ -0.25px 0.25px #5b6e65,
+ -0.5px 0.5px #5b6e65,
+ -1px 0.75px #5b6e65,
+ -1.25px 1.25px #5b6e65,
+ -1.5px 1.5px #5b6e65,
+ -1.75px 1.75px #5b6e65,
+ -2px 2px #5b6e65;
+}
+
+.fringe .e {
+ display: inline-block;
+ /* -webkit-transform: matrix(1, 0, 0.02, 1, 0, 0); */
+ text-shadow:
+ -0.25px 0.25px #5b6e65,
+ -0.5px 0.5px #5b6e65,
+ -1px 0.75px #5b6e65,
+ -1.25px 1.25px #5b6e65,
+ -1.5px 1.5px #5b6e65,
+ -1.75px 1.75px #5b6e65,
+ -2px 2px #5b6e65;
+}
+
+@font-face {
+ font-family: "Futurama Title";
+ src: local("Futurama Title"), url(/styles/fonts/futurama-title.ttf);
+}
+
+.futurama {
+ display: block;
+ padding-top: 0.5em;
+ font-family: "Futurama Title", serif;
+ text-transform: uppercase;
+ line-height: 1em;
+ -webkit-transform: translateX(-0.67em);
+}
+
+.futurama span {
+ display: inline-block;
+ line-height: 1em;
+}
+
+.futurama .f {
+ -webkit-transform: rotate(-36deg) translateY(0.125em);
+}
+
+.futurama .u {
+ -webkit-transform: rotate(-25.7deg) translateX(0.25em) translateY(-0.25em);
+}
+
+.futurama .t {
+ -webkit-transform: rotate(-15.4deg) translateX(0.33em) translateY(-0.625em);
+}
+
+.futurama .u2 {
+ -webkit-transform: rotate(-5.1deg) translateX(0.4em) translateY(-0.825em);
+}
+
+.futurama .r {
+ -webkit-transform: rotate(5.1deg) translateX(0.45em) translateY(-0.95em);
+}
+
+.futurama .a {
+ -webkit-transform: rotate(15.4deg) translateX(0.5em) translateY(-0.9em);
+}
+
+.futurama .m {
+ -webkit-transform: rotate(25.7deg) translateX(0.55em) translateY(-0.7em);
+}
+
+.futurama .a2 {
+ -webkit-transform: rotate(36deg) translateX(0.67em) translateY(-0.4em);
+}
+
+@font-face {
+ font-family: "ITC Avant Garde Gothic Medium";
+ src: local("ITC Avant Garde Gothic Medium"), local("ITC Avant Garde Gothic"),
+ url(/styles/fonts/non-free/itc_avant_garde_gothic--lte52011.ttf);
+}
+
+.glee {
+ padding: 0.125em 0.5em;
+ /* background-image: -moz-radial-gradient(#FFEA8C, #FFD727);
+ background-image: -webkit-radial-gradient(#FFEA8C, #FFD727);
+ background-color: #FFD727; */
+ background-color: #000;
+ color: #fff;
+ font-family: "ITC Avant Garde Gothic Medium", sans-serif;
+ font-size: 120%;
+ text-transform: lowercase;
+ letter-spacing: -0.0625em;
+}
+
+.glee .lee {
+ letter-spacing: -0.125em;
+}
+
+@font-face {
+ font-family: "SKM Avant Garde Two";
+ src: local("SKM Avant Garde Two"), url(/styles/fonts/non-free/SKM%20Avant%20Garde%20Two.ttf);
+}
+
+.heroes {
+ display: inline-block;
+ position: relative;
+ padding: 0.325em 0.75em 0.2em 0.75em;
+ background-color: black;
+ color: #fff;
+ font-family: "SKM Avant Garde Two", sans-serif;
+ text-transform: uppercase;
+ letter-spacing: 0.5em;
+}
+
+.heroes .o {
+ position: relative;
+ color: #ffffed;
+ padding: 0.25em 0.125em;
+}
+
+.heroes .o:after {
+ position: absolute;
+ left: -0.25em;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ background-image:
+ /* glare */
+ -webkit-radial-gradient(48% 20%, circle, #ffffff 0%, #ffffff 7%,
+ rgb(250, 226, 182) 8%, rgba(250, 226, 182, 0) 23%),
+
+ /* moon */
+ -webkit-radial-gradient(41% 50%, circle, black 35%, transparent 40%),
+
+ /* corona */
+ -webkit-radial-gradient(41% 50%, circle, #f5eccd 35%, transparent 50%),
+
+ /* flares */
+ -webkit-radial-gradient(44% 44%, circle, #ffffff 35%, transparent 55%);
+
+ content: "";
+}
+
+.heroes .s {
+ letter-spacing: normal;
+}
+
+@font-face {
+ font-family: "House";
+ src: local("House"), url(/styles/fonts/House.ttf);
+}
+
+.house {
+ /* text-transform: uppercase; */
+}
+
+.house .h {
+ font-family: House, sans-serif;
+ /*
+ display: inline-block;
+ border: 1px solid black;
+ width: 1em;
+ height: 1em;
+ line-height: 1em;
+ text-align: center;
+ margin-right: 0.125em;
+ */
+}
+
+.house .ouse {
+ font-family: House, sans-serif;
+ /* text-decoration: underline; */
+}
+
+.house .md {
+ position: relative;
+ bottom: -0.4em;
+ font-size: 0.6em;
+}
+
+.house .md-de {
+ position: relative;
+ font-size: 0.6em;
+ text-decoration: underline;
+}
+
+@font-face {
+ font-family: "MacEnvy DB";
+ src: local("MacEnvy DB"), url(/styles/fonts/MacEnvy_DB-Regular.ttf);
+}
+
+.ijon-tichy {
+ display: inline-block;
+ padding: 0.25em 0.5em;
+ background-color: #000;
+ color: #B9B7BA;
+ line-height: 1em;
+ font-family: "MacEnvy DB", sans-serif;
+ text-align: center;
+ text-transform: uppercase;
+}
+
+.ijon-tichy .title {
+ display: block;
+ letter-spacing: 0.0625em;
+}
+
+.ijon-tichy .title .i {
+ text-shadow: 1.5px 0.5px #59575A, 2px 0.75px #59575A;
+}
+
+.ijon-tichy .title .j {
+ text-shadow: 1.5px 0.5px #59575A, 1.5px 0.75px #59575A;
+}
+
+.ijon-tichy .title .o {
+ text-shadow: 1.5px 0.5px #59575A, 1px 0.75px #59575A;
+}
+
+.ijon-tichy .title .n {
+ text-shadow: 1px 0.75px #59575A;
+}
+
+.ijon-tichy .title .t {
+ text-shadow: 0 0.75px #59575A;
+}
+
+.ijon-tichy .title .i2 {
+ text-shadow: -0.5px 0.75px #59575A;
+}
+
+.ijon-tichy .title .c {
+ text-shadow: -1px 0.75px #59575A;
+}
+
+.ijon-tichy .title .h {
+ text-shadow: -1.5px 0.75px #59575A, -1px 0.5px #59575A;
+}
+
+.ijon-tichy .title .y {
+ text-shadow: -1.5px 0.75px #59575A, -1.5px 0.5px #59575A;
+}
+
+.ijon-tichy .subtitle {
+ display: block;
+ font-size: 67%;
+ letter-spacing: 0.4em;
+}
+
+.ijon-tichy .subtitle .r {
+ text-shadow: 1.5px 0.5px #59575A;
+}
+
+.ijon-tichy .subtitle .a {
+ text-shadow: 1px 0.5px #59575A;
+}
+
+.ijon-tichy .subtitle .u {
+ text-shadow: 0.5px 0.5px #59575A;
+}
+
+.ijon-tichy .subtitle .mpi {
+ text-shadow: 0 0.5px #59575A;
+}
+
+.ijon-tichy .subtitle .l {
+ text-shadow: -0.5px 0.5px #59575A;
+}
+
+.ijon-tichy .subtitle .o {
+ text-shadow: -1px 0.5px #59575A;
+}
+
+.ijon-tichy .subtitle .t {
+ text-shadow: -1.5px 0.5px #59575A;
+}
+
+.ijon-tichy .subtitle2 {
+ display: block;
+ font-size: 50%;
+ line-height: 1em;
+}
+
+.ijon-tichy .subtitle2 .die {
+ text-shadow: 1px 0.5px #59575A;
+}
+
+.ijon-tichy .subtitle2 .ster {
+ text-shadow: 0.5px 0.5px #59575A;
+}
+
+.ijon-tichy .subtitle2 .ntag {
+ text-shadow: 0 0.5px #59575A;
+}
+
+.ijon-tichy .subtitle2 .ebuec {
+ text-shadow: -0.5px 0.5px #59575A;
+}
+
+.ijon-tichy .subtitle2 .her {
+ text-shadow: -1px 0.5px #59575A;
+}
+
+@font-face {
+ font-family: "Digital1";
+ src: local("Transponder AOE"), url(/styles/fonts/digital/TRANA___.TTF);
+}
+
+.it-crowd {
+ display: inline-block;
+ position: relative;
+ padding: 0.125em 0.75em 0.125em 0.5em;
+ background-color: black;
+ color: #d4774b;
+ font-family: "Digital1", monospace;
+ font-size: 120%;
+ text-transform: uppercase;
+ text-shadow: 0 0 1px #d4774b;
+}
+
+.it-crowd:after {
+ position: absolute;
+ top: 0;
+ content: "\258E";
+ letter-spacing: 0;
+}
+
+.superman {
+ font-weight: bold;
+}
+
+.life-on-mars {
+ display: inline-block;
+ padding: 0.25em 0.5em;
+ background-color: #000;
+ background-image:
+ -webkit-linear-gradient(left,
+ rgba(255, 255, 255, 0) 35%,
+ rgba(255, 255, 255, 1) 35%, rgba(255, 255, 255, 1) 36%,
+ rgba(255, 255, 255, 0) 37%),
+ -webkit-linear-gradient(top,
+ rgba(255, 255, 255, 0) 81%,
+ rgba(255, 255, 255, 1) 81%, rgba(255, 255, 255, 1) 89%,
+ rgba(255, 255, 255, 0) 89%);
+ color: #fff;
+ font-weight: bold;
+ text-shadow: 0 0 0.5px #fff;
+ text-transform: uppercase;
+ -webkit-text-fill-color: transparent;
+}
+
+.life-on-mars .e {
+ letter-spacing: 0.5em;
+}
+
+.life-on-mars .on {
+ text-shadow: 0 0 1px #fff;
+}
+
+.life-on-mars .mars {
+ text-shadow: 0 0 2px #fff;
+}
+
+.macgyver {
+ padding: 0.125em 0.5em;
+ background-color: #080a09;
+ color: #bb1e15;
+ font-family: "Copperplate Gothic Bold", serif;
+ font-size: 150%;
+ font-variant: small-caps;
+ font-weight: bold;
+
+ text-shadow:
+ -0.5px -0.5px #9f1512,
+ 0px -0.5px #9f1512,
+ 0.5px -0.5px #9f1512,
+ -0.5px 0px #9f1512,
+ 0.5px 0px #9f1512,
+ -0.5px 0.5px #9f1512,
+ 0px 0.5px #9f1512,
+ 0.5px 0.5px #9f1512,
+ -1px -1px 1px #d9ad7e,
+ 0px -1px 1px #d9ad7e,
+ 1px -1px 1px #d9ad7e,
+ -1px 0px 1px #d9ad7e,
+ 1px 0px 1px #d9ad7e,
+ -1px 1px 1px #d9ad7e,
+ 0px 1px 1px #d9ad7e,
+ 1px 1px 1px #d9ad7e;
+}
+
+@font-face {
+ font-family: "Gill Sans Ultra Bold";
+ src: local("Gill Sans Ultra Bold"), url(/styles/fonts/non-free/gilsanu0.TTF);
+}
+
+.monk {
+ color: #d1122a;
+ font-family: "Gill Sans Ultra Bold", sans-serif;
+ font-size: 110%;
+ text-transform: uppercase;
+ text-shadow: 1px 1px 1px black;
+}
+
+@font-face {
+ font-family: "Swiss 721 Black Extended BT";
+ src: local("Swiss 721 Black Extended BT"), url(/styles/fonts/non-free/swiss721_bke.TTF);
+}
+
+.moonlight {
+ padding: 0.125em 0.5em;
+ background-color: black;
+ color: #020109;
+ font-family: "Swiss 721 Black Extended BT", sans-serif;
+ text-transform: uppercase;
+ <?php
+ Mixins::radial_gradient('background-image',
+ '24% 50%, circle,
+ rgba(224, 211, 106, 1) 33%, rgba(224, 211, 106, 0) 36%, #100d04');
+ ?>
+}
+
+.moonlight .moon {
+ -webkit-mask-image: -webkit-linear-gradient(-80deg, rgba(0,0,0,0.33), rgba(0,0,0,1) 67%);
+ letter-spacing: -0.0625em;
+}
+
+.moonlight .moon .n {
+ letter-spacing: 0.125em;
+}
+
+.moonlight .light {
+ color: #ebf062;
+ text-shadow: 1px 1px 2px #070400;
+}
+
+.moonlighting {
+ padding: 0.125em 0.5em;
+ background-color: #933;
+ <?php Mixins::linear_gradient('background-image', '#5c3345, #6c2013'); ?>
+ color: #916ba6;
+ font: 116% "Futura Condensed", sans-serif;
+ <?php Mixins::prefix_property('outline', '', '1px solid #fff', array('-webkit-', '')); ?>
+ text-shadow:
+ /* glow */
+ -1px 0 1px white,
+ 0 -1px 1px white,
+ 1px 0 1px white,
+ 0 1px 1px white,
+
+ /* outline */
+ -1px 0 white,
+ 0 -1px white,
+ 1px 0 white,
+ 0 1px white;
+ text-transform: uppercase;
+}
+
+@font-face {
+ font-family: "Terminator";
+ src: url(/styles/fonts/TERMINAT.TTF);
+}
+
+.mutant-x {
+ position: relative;
+ padding: 0.25em 0.5em 0.125em 0.5em;
+ background-color: black;
+ color: #8f6442;
+ font-family: "Terminator", sans-serif;
+ font-size: 105%;
+ text-transform: uppercase;
+ white-space: nowrap;
+ -webkit-text-stroke: 0.5px rgba(255, 255, 255, 0.1);
+}
+
+.mutant-x .gradient {
+ position: absolute;
+ padding: 0.25em 0.5em 0.125em 0.5em;
+ left: 0;
+ top: 0;
+ -webkit-mask-image: -webkit-linear-gradient(
+ rgba(0, 0, 0, 1) 30%, transparent 55%, rgba(0, 0, 0, 1) 80%);
+ z-index: 2;
+}
+
+.mutant-x:after {
+ content: "Mutant X";
+ color: #fcf1eb;
+}
+
+@font-face {
+ font-family: "Walkway SemiBold";
+ src: local("Walkway SemiBold"), url(/styles/fonts/Walkway_SemiBold.ttf);
+}
+
+.numb3rs {
+ position: relative;
+ padding: 0.25em 0.5em 0.125em 0.5em;
+ background-color: #000200;
+ /*
+ background-image:
+ -webkit-repeating-linear-gradient(left, transparent, transparent 9px,
+ rgba(244, 247, 244, 0.5) 10px, rgba(244, 247, 244, 0.5) 10px),
+ -webkit-repeating-linear-gradient(top, transparent, transparent 4px,
+ rgba(244, 247, 244, 0.5) 5px, rgba(244, 247, 244, 0.5) 5px);
+ */
+ color: #f4f7f4;
+ font-family: "Walkway SemiBold", Helvetica, sans-serif;
+ font-size: 116%;
+ font-weight: lighter;
+ letter-spacing: 1px;
+ text-shadow: 0 0 2px #f4f7f4;
+ text-transform: uppercase;
+}
+
+.numb3rs .s {
+ letter-spacing: normal;
+}
+
+/*
+.numb3rs .gradient {
+ position: absolute;
+ left: 0;
+ top: 0;
+ padding: 0.25em 0.5em 0.125em 0.5em;
+ color: #f4f7f4;
+ -webkit-mask-image: -webkit-linear-gradient(rgba(0, 0, 0, 1), transparent 75%);
+ z-index: 2;
+}
+
+.numb3rs:after {
+ content: "Numb3rs";
+ color: #898b88;
+ text-transform: uppercase;
+} */
+
+@font-face {
+ font-family: "Unconform Round";
+ src: local("Unconform Round"), url(/styles/fonts/UNCON___.TTF);
+}
+
+.odyssey5 {
+ padding: 0.5em 0.5em 0.125em 0.5em;
+ background-color: #000;
+ color: #d1550b;
+ font-family: "Unconform Round", sans-serif;
+ text-transform: uppercase;
+ letter-spacing: 0.125em;
+}
+
+.odyssey5 .s2 {
+ letter-spacing: 0.25em;
+}
+
+.odyssey5 .e {
+ letter-spacing: 0.5em;
+}
+
+.odyssey5 .y2 {
+ letter-spacing: 0.5em;
+}
+
+.odyssey5 .five {
+ letter-spacing: normal;
+}
+
+@font-face {
+ font-family: "Dateline Bold";
+ src: local("Dateline Bold"), url(/styles/fonts/DatelineBold.ttf);
+}
+
+.psych {
+ font-family: "Dateline Bold", serif;
+ font-size: 110%;
+ letter-spacing: -0.125em;
+ color: #749f27;
+}
+
+@font-face {
+ font-family: "Swiss Cheesed";
+ src: local("SwissCheese"), url(/styles/fonts/SwissCheesed.ttf);
+}
+
+.quantum-leap {
+ position: relative;
+ display: inline-block;
+ left: 0;
+ top: 0;
+ padding: 0.5em 0.5em 0.25em 0.5em;
+ background-color: black;
+
+ color: #5598ff;
+ font-family: "Swiss Cheesed", sans-serif;
+ font-size: 110%;
+ letter-spacing: 0.0625em;
+ text-transform: uppercase;
+ text-align: center;
+ text-shadow:
+ -1px -1px #6f98e5,
+ 0 -1px #6f98e5,
+ 1px -1px #6f98e5,
+ -1px 0px #6f98e5,
+ 0 0px #6f98e5,
+ 1px 0px #6f98e5,
+ -1px 1px #6f98e5,
+ 0 1px #6f98e5,
+ 1px 1px #6f98e5,
+ -1px -1px 8px #5598ff,
+ 0 -1px 8px #5598ff,
+ 1px -1px 8px #5598ff,
+ -1px 0 8px #5598ff,
+ 0 0 8px #5598ff,
+ 1px 0 8px #5598ff,
+ -1px 1px 8px #5598ff,
+ 0 1px 8px #5598ff,
+ 1px 1px 8px #5598ff;
+}
+
+.quantum-leap .gradient {
+ position: absolute;
+ left: 0;
+ top: 0;
+ padding: 0.5em 0.5em 0.25em 0.5em;
+ color: #000;
+ -webkit-text-fill-color: #5598ff;
+ -webkit-mask-image: -webkit-linear-gradient(rgba(0, 0, 0, 1), transparent 33%);
+ z-index: 2;
+}
+.quantum-leap:after {
+ content: "Quantum Leap";
+ color: #000;
+}
+
+@font-face {
+ font-family: "Spleeny Decaf GD";
+ src: local("Spleeny Decaf GD"), url(/styles/fonts/non-free/Spleeny%20Decaf%20GD.ttf);
+}
+
+.reaper {
+ font-family: "Spleeny Decaf GD", fantasy;
+ text-transform: uppercase;
+}
+
+@font-face {
+ font-family: 'MicroExtendFLF-Bold';
+ src:
+ local('MicroExtendFLF-Bold'),
+ url('/styles/fonts/MicroExtendFLF-Bold.ttf.woff') format('woff'),
+ url('/styles/fonts/MicroExtendFLF-Bold.ttf.svg#MicroExtendFLF-Bold') format('svg'),
+ url('/styles/fonts/MicroExtendFLF-Bold.ttf.eot'),
+ url('/styles/fonts/MicroExtendFLF-Bold.ttf.eot?#iefix') format('embedded-opentype');
+ font-weight: normal;
+ font-style: normal;
+}
+
+.remington-steele {
+ display: inline-block;
+ background-color: white;
+ color: #506BA6;
+ font: bold 104% MicroExtendFLF-Bold, sans-serif;
+ text-align: center;
+ text-shadow: 1px 1px 1px #000;
+ text-transform: uppercase;
+}
+
+@font-face {
+ font-family: "Roswell";
+ src: local("Roswell"), url(/styles/fonts/Roswell.TTF);
+}
+
+.roswell {
+ display: inline-block;
+ padding: 0.25em 0.5em 0.125em 0.5em;
+ background-color: #000;
+ <?php
+ Mixins::linear_gradient('background-image', 'left, #6f3811, #000');
+ ?>
+ color: #ffffbc;
+ font-family: "Roswell", sans-serif;
+ letter-spacing: 0.25em;
+
+ text-shadow:
+ -1px -1px 1px rgba(138, 8, 0, 0.5),
+ 0px 1px 1px rgba(138, 8, 0, 0.5),
+ 1px 1px 1px rgba(138, 8, 0, 0.5);
+ text-transform: uppercase;
+ -webkit-text-stroke: 0.25px rgba(138, 8, 0, 0.75);
+}
+
+.roswell span {
+ letter-spacing: normal;
+}
+
+.samantha-who {
+ display: inline-block;
+ padding: 0.125em 0.25em 0.125em 0.25em;
+ background-color: #000;
+ color: #e3e5e2;
+ line-height: 1em;
+}
+
+.samantha-who .text {
+ display: inline-block;
+}
+
+.samantha-who .samantha {
+ display: block;
+ position: relative;
+ padding-top: 0.25em;
+ padding-left: 0.25em;
+ font-family: "a_Futura Orto", sans-serif;
+ text-transform: uppercase;
+}
+
+.samantha-who .samantha::after {
+ position: absolute;
+ left: -0.2em;
+ top: -1.05em;
+ right: 0.2em;
+ bottom: 1.05em;
+ background-image: -webkit-radial-gradient(10% 15%, 20% 20%, transparent 15%, #d29c13 26%, #d29c13 34%, transparent 45%);
+ content: "";
+ -webkit-transform: rotate(-27deg);
+ /*border: 1px solid red;*/
+}
+
+.samantha-who .who,
+.samantha-who .q {
+ color: #e81b04;
+}
+
+.samantha-who .who {
+ display: block;
+ font-weight: bold;
+ line-height: 0.75em;
+}
+
+.samantha-who .q {
+ font-family: cursive;
+ font-size: 200%;
+ font-weight: lighter;
+}
+
+@font-face {
+ font-family: "Scrubs";
+ src: local("TSS Scrubs Logo"), url(/styles/fonts/tsslogo.ttf);
+}
+
+.scrubs:before {
+ content: "[";
+}
+
+.scrubs {
+ padding: 0.125em 0.25em 0 0.25em;
+ background-color: #15121a;
+ color: #d0f9fb;
+ font-family: "Scrubs", sans-serif;
+ font-size: 150%;
+ text-shadow: 0 0 10px #d0f9fb;
+}
+
+.scrubs .s {
+ text-transform: uppercase;
+}
+
+.scrubs:after {
+ content: "]";
+}
+
+@font-face {
+ font-family: "seaQuest";
+ src: local("Seaquest"), url(/styles/fonts/SQDSV.TTF);
+}
+
+.seaQuest {
+ position: relative;
+ display: inline-block;
+ padding-top: 1.5em;
+ background-color: #00001e;
+<?php
+ // error_reporting(E_ALL | E_STRICT);
+ $lambda = 1;
+ for ($i = 0; $i < 200; ++$i)
+ {
+ $x = mt_rand(1, 99);
+ /*
+ * Decreasing probability of pixels near bottom through exponential distribution;
+ * TODO: If coord > 50%, decrease probability of appearance.
+ */
+ $max = $lambda * exp(-$lambda * mt_rand(0, 5)) * 99;
+ if (1 <= $max)
+ {
+ $y = mt_rand(1, $max);
+ $coords[] = array('x' => $x, 'y' => $y);
+ }
+ }
+
+ $dots = array_map(function ($coord) {
+ return "-webkit-radial-gradient({$coord['x']}% {$coord['y']}%, 1px 1px, rgba(255, 255, 255, 0.75), rgba(0, 0, 30, 0))";
+ }, $coords);
+?>
+ /* water bubbles */
+ background-image: <?php echo implode(",\n ", $dots); ?>,
+ /* sunlight */
+ -webkit-radial-gradient(50% 0%, 50% 200%, #00438c, rgba(0, 0, 31, 0)),
+ /* water */
+ -webkit-linear-gradient(#030129, #00000c);
+ color: #ffc50c;
+ font-family: "seaQuest", sans-serif;
+ font-size: 92%;
+}
+
+.seaQuest #seaQuest {
+ display: block;
+ padding: 0 0.25em;
+ text-transform: uppercase;
+ line-height: 1;
+}
+
+.seaQuest #seaQuest .s {
+ text-shadow:
+ 0.5px -0.25px 0.5px #f5bd46,
+ 1px -0.5px 0.5px #cd8d1f,
+ 1.5px -0.75px 0.5px #b37b1c,
+ 2px -1px 0.5px #805b17,
+ 2.5px -1.25px 0.5px #2e2000,
+ 3px -1.5px 0.5px #040400,
+ 3.5px -1.75px #000508;
+}
+
+.seaQuest #seaQuest .e {
+ text-shadow:
+ 0.5px -0.25px 0.5px #f5bd46,
+ 1px -0.5px 0.5px #cd8d1f,
+ 1.5px -0.75px 0.5px #b37b1c,
+ 2px -1px 0.5px #805b17,
+ 2.5px -1.25px 0.5px #2e2000,
+ 3px -1.5px #040400;
+}
+
+.seaQuest #seaQuest .a {
+ text-shadow:
+ 0.5px -0.25px 0.5px #fdb207,
+ 1px -0.5px 0.5px #eb950e,
+ 1.5px -0.75px 0.5px #ae5900,
+ 2px -1px 0.5px #642a00,
+ 2.5px -1.25px #261704;
+}
+
+.seaQuest #seaQuest .q {
+ position: relative;
+ visibility: hidden;
+ display: inline-block;
+ margin-right: 0.5em;
+ text-shadow: none;
+}
+
+.seaQuest #seaQuest .q:after {
+ position: absolute;
+ visibility: visible;
+ margin-right: 0.125em;
+ left: 0;
+ top: -0.5em;
+ right: 0;
+ bottom: 0;
+ content: "{";
+ text-align: center;
+ text-shadow:
+ 0.5px -0.25px 0.5px #ffb43b,
+ 1px -0.5px 0.5px #e28d23,
+ 1.5px -0.75px 0.5px #853400,
+ 2px -1px #510600;
+}
+
+.seaQuest #seaQuest .u {
+ text-shadow:
+ 0.5px -0.25px 0.5px #f7c35d,
+ 1px -0.5px 0.5px #a36729,
+ 1.5px -0.75px 0.5px #3c0800,
+ 2px -1px #1b011c;
+}
+
+.seaQuest #seaQuest .e2 {
+ text-shadow:
+ 0.5px -0.25px 0.5px #d8ab56,
+ 1px -0.5px 0.5px #5c3605;
+}
+
+.seaQuest #seaQuest .s2 {
+ text-shadow:
+ 0px -0.25px 0.5px #d8ab56,
+ -0.5px -0.5px 0.5px #5c3605,
+ -1px -0.75px #200d00,
+ 0.5px -0.25px #200d00;
+}
+
+.seaQuest #seaQuest .t {
+ text-shadow:
+ 0.5px -0.25px #e9bf73,
+ -0.5px -0.25px 0.5px #d8ab56,
+ -1px -0.5px 0.5px #5c3605,
+ -1.5px -0.75px #200d00,
+ 0.5px -0.25px #200d00;
+}
+
+.seaQuest #dsv {
+ position: relative;
+ visibility: hidden;
+ display: block;
+ margin-top: 0.5em;
+ padding-bottom: 0.25em;
+ line-height: 1;
+}
+
+.seaQuest #dsv:after {
+ position: absolute;
+ visibility: visible;
+ left: -0.75em;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ content: "|";
+ text-align: center;
+ text-shadow:
+ 0.5px -0.25px 0.5px #ffb43b,
+ 1px -0.5px 0.5px #e28d23,
+ 1.5px -0.75px 0.5px #853400,
+ 2px -1px #510600;
+}
+
+@font-face {
+ font-family: "London Tube";
+ src: local("P22 Johnston Underground"), url(/styles/fonts/non-free/p22-johnston-underground.ttf);
+}
+
+.sherlock {
+ font-family: "London Tube", sans-serif;
+ font-size: 120%;
+ text-transform: uppercase;
+}
+
+@font-face {
+ font-family: "Simpsonfont";
+ src: local("Simpsonfont"), url(/styles/fonts/Simpsonfont.ttf);
+}
+
+@font-face {
+ font-family: "Akbar";
+ src: local("Akbar"), url(/styles/fonts/akbar.ttf);
+}
+
+.simpsons {
+ position: relative;
+ display: inline-block;
+ min-width: 6em;
+ min-height: 2em;
+ padding: 0.125em 0.25em;
+ background-color: #6598DC;
+ color: #FFD166;
+ font-family: "Akbar", sans-serif;
+ text-align: center;
+ text-transform: uppercase;
+ overflow: hidden;
+}
+
+.simpsons span {
+ position: relative;
+ display: block;
+}
+
+<?php
+ Mixins::keyframes('zoom-in',
+ '0% {
+ opacity: 0;
+ -moz-transform: perspective(100px) translateX(0) translateY(0) translateZ(-400px);
+ -webkit-transform: perspective(100px) translateX(0) translateY(0) translateZ(-400px);
+ }
+
+ 20% {
+ opacity: 1;
+ }
+
+ 100% {
+ -moz-transform: perspective(100px) translateX(5px) translateY(-4px) translateZ(100px);
+ -webkit-transform: perspective(100px) translateX(5px) translateY(-4px) translateZ(100px);
+ }');
+?>
+
+.simpsons:hover span.text {
+ <?php
+ Mixins::animation('-name', 'zoom-in');
+ /* -webkit-animation-iteration-count: infinite; */
+ Mixins::animation('-duration', '3s');
+ ?>
+}
+
+@font-face {
+ font-family: 'Interdimensional';
+ src:
+ url('/styles/fonts/Interdimensional.ttf.woff') format('woff'),
+ url('/styles/fonts/Interdimensional.ttf.svg#Interdimensional') format('svg'),
+ url('/styles/fonts/Interdimensional.ttf.eot'),
+ url('/styles/fonts/Interdimensional.ttf.eot?#iefix') format('embedded-opentype');
+ font-weight: normal;
+ font-style: normal;
+}
+
+.sliders {
+ padding: 0.125em 0.5em;
+ background-color: #000;
+ color: #c1d4e2;
+ font-family: Interdimensional, sans-serif;
+ letter-spacing: 0.125em;
+ text-transform: uppercase;
+ text-shadow: 0 0 2px #c1d4e2;
+}
+
+.sliders .last {
+ letter-spacing: normal;
+}
+
+@font-face {
+ font-family: "Smallville";
+ src: local("Smallville"), url(/styles/fonts/Smallville1.ttf);
+}
+
+.smallville {
+ font-family: "Smallville", sans-serif;
+ font-size: 160%;
+ text-transform: uppercase;
+ color: #FE1318;
+}
+
+/* Symmetric "Superman" effect */
+.smallville span {
+ position: relative;
+ top: -0.1em;
+ font-size: 90%;
+}
+
+.space-above-beyond {
+ display: inline-block;
+ background-color: #222723;
+ color: #A7B2C4;
+ padding: 0.25em 0.5em;
+ text-transform: uppercase;
+}
+
+@font-face {
+ font-family: "Freedom Fighter";
+ src: local("Freedom Fighter"), url(/styles/fonts/freedomfighter.ttf);
+}
+
+.space-above-beyond .space {
+ display: block;
+ color: #5E5C5D;
+ font: 150% "Freedom Fighter", sans-serif;
+ text-align: justify;
+ text-shadow: 1px 1px 1px #0A0300, -1px -1px 1px #F5FBFF;
+}
+
+.space-above-beyond .space span {
+ letter-spacing: normal;
+}
+
+.space-above-beyond .above-beyond {
+ display: block;
+ font-size: 50%;
+ text-align: justify;
+ word-spacing: 0.125em;
+ -webkit-text-stroke: #A7B2C4 1px;
+}
+
+.space-above-beyond .above-beyond span {
+ word-spacing: normal;
+}
+
+@font-face {
+ font-family: "Stargate";
+ src: local("Stargate"), url(/styles/fonts/STARGATE.TTF);
+}
+
+.stargate {
+ display: inline-block;
+ font-family: "Stargate", serif;
+ font-size: 122%;
+ text-align: center;
+ text-transform: uppercase;
+}
+
+.stargate > span {
+ display: block;
+}
+
+.stargate.en {
+ letter-spacing: 0.125em;
+}
+
+.stargate.en span span:last-child {
+ letter-spacing: normal;
+}
+
+.stargate.en > span:first-child {
+ padding-bottom: 0;
+ border-bottom: 1px solid black;
+}
+
+.stargate.en > span:last-child {
+ padding-top: 0.125em;
+}
+
+.stargate.de > span:last-child {
+ font-size: 64%;
+}
+
+.stargate .a {
+ text-transform: lowercase;
+}
+
+.atlantis .stargate {
+ display: inline-block;
+ padding: 0 0.25em;
+ border-bottom: 1px solid black;
+ font-size: 81%;
+ letter-spacing: 0.125em;
+}
+
+.atlantis .atlantis {
+ margin-top: 0.125em;
+ position: relative;
+ top: -0.15em;
+ padding-top: 0.15em;
+ letter-spacing: 0.125em;
+}
+
+.atlantis span span:last-child
+{
+ letter-spacing: normal;
+}
+
+.sg-u {
+ padding: 0.25em 0.25em 0 0.25em;
+ background-color: #000;
+ color: #eee;
+ font-family: "Eurostile Extended", sans-serif;
+ font-size: 122%;
+ font-weight: bold;
+ letter-spacing: -0.125em;
+}
+
+.sg-u .ring {
+ letter-spacing: -0.2em;
+}
+
+@font-face {
+ font-family: "Torchwood";
+ src: local("Torchwood"), url(/styles/fonts/Torchwood.ttf);
+}
+
+@font-face {
+ font-family: "Federation Classic";
+ src: local("Federation Classic"), url(/styles/fonts/FEC_____.TTF);
+}
+
+.star-trek-tos {
+ padding: 0.125em 0.25em 0 0.25em;
+ background-color: #000;
+ color: #FBB72C;
+ font-family: "Federation Classic", sans-serif;
+ font-size: 150%;
+ text-transform: lowercase;
+}
+
+@font-face {
+ font-family: "Starnext";
+ src: local("Starnext"), url(/styles/fonts/StarNext.ttf);
+}
+
+.star-trek-tng {
+ display: inline-block;
+ padding: 0.25em 0.5em 0.25em 0.5em;
+ background-color: #000;
+ color: #2D7BCD;
+ font-family: "Starnext", sans-serif;
+ font-size: 120%;
+ line-height: 1;
+ text-transform: uppercase;
+ text-align: center;
+}
+
+.star-trek-tng span {
+ display: block;
+}
+
+.star-trek-tng .star {
+ text-align: left;
+}
+
+.star-trek-tng .trek {
+ position: relative;
+ top: -0.2em;
+ text-align: right;
+}
+
+.star-trek-tng .tng {
+ font-size: 44%;
+}
+
+.time-trax {
+ background-color: #fff;
+ color: #003ee5;
+ font-size: 120%;
+ font-weight: bold;
+ text-shadow: 2px 1px #00021c;
+}
+
+.torchwood {
+ padding: 0.125em 0.25em;
+ background-color: black;
+ color: #E72524;
+ font-family: "Torchwood", serif;
+ font-size: 106%;
+ text-transform: uppercase;
+}
+
+@font-face {
+ font-family: "True Blood";
+ src: local("True Blood"), url(/styles/fonts/non-free/TRUEBLOOD.ttf);
+}
+
+.true-blood {
+ font-family: "True Blood", sans-serif;
+}
+
+.true-blood .upper {
+ text-transform: uppercase;
+}
+
+.true-blood .blood {
+ color: #991b30;
+}
+
+.true-blood .lower {
+ text-transform: lowercase;
+}
+
+.tara {
+ font-family: sans-serif;
+ font-weight: bold;
+ text-transform: uppercase;
+}
+
+.visitors {
+ display: inline-block;
+ position: relative;
+ padding: 0.5em 0.5em 0.25em 0.5em;
+ background-color: #000;
+ color: #ff1700;
+ font-family: fantasy;
+ font-size: 80%;
+ line-height: 2em;
+}
+
+.visitors span {
+ vertical-align: middle;
+}
+
+.visitors .v {
+ position: absolute;
+ left: 0;
+ width: 100%;
+ font-size: 300%;
+ color: rgba(210, 0, 1, 0.8);
+ text-align: center;
+}
+
+.visitors .subtitle {
+ text-transform: uppercase;
+}
+
+@font-face {
+ font-family: "Gunplay";
+ src: local("Gunplay"), url(/styles/fonts/gunplay.ttf);
+}
+
+.warehouse-13 {
+ padding: 0 0.25em 0.125em 0.25em;
+ background-color: #000;
+ color: #BF311A;
+ font-family: "Gunplay", sans-serif;
+ text-transform: uppercase;
+}
+
+.warehouse-13 .numbers {
+ color: #B4B4B4;
+}
+
+div.box {
+ border: 1px solid black;
+ position: relative;
+ text-align: center;
+}
+
+div.meter, div.coverage {
+ position: absolute;
+ height: 100%;
+}
+
+div.meter {
+ background-color: rgba(0, 0, 128, 0.5);
+}
+
+div.season {
+ position: absolute;
+ border-left: 1px solid #333;
+ background-color: transparent;
+ color: #999;
+ overflow: hidden;
+ white-space: nowrap;
+}
+
+div.coverage {
+ background-color: rgba(0, 218, 0, 0.5);
+}
+
+.percentage {
+ position: relative;
+ background-color: rgba(255, 255, 255, 0.5);
+}
/live/media/video/series/style.css
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Index: live/media/video/series/.htaccess
===================================================================
--- live/media/video/series/.htaccess (revision 0)
+++ live/media/video/series/.htaccess (revision 198)
@@ -0,0 +1,3 @@
+<IfModule mod_php5.c>
+ AddHandler application/x-httpd-php .css
+</IfModule>
Index: live/media/video/series
===================================================================
--- live/media/video/series (revision 0)
+++ live/media/video/series (revision 198)
/live/media/video/series
Property changes:
Added: svn:ignore
## -0,0 +1,29 ##
+futurama
+
+hitchhiker
+
+The Tripods - Die Dreibeinigen Herrscher
+
+trek
+
+stargate
+
+_mnt_usb3
+
+b5
+
+_pe.localdomain_Downloadz_video
+
+doctor-who
+
+_mnt_usb2
+
+efc
+
+big-bang-theory
+
+_mnt_usb1
+
+space-night
+
+_pe.localdomain_*
Index: live/media/valid-css.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: live/media/valid-css.png
===================================================================
--- live/media/valid-css.png (revision 0)
+++ live/media/valid-css.png (revision 198)
/live/media/valid-css.png
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: live/media/valid-html401.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: live/media/valid-html401.png
===================================================================
--- live/media/valid-html401.png (revision 0)
+++ live/media/valid-html401.png (revision 198)
/live/media/valid-html401.png
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: live/media/anybrowser.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: live/media/anybrowser.gif
===================================================================
--- live/media/anybrowser.gif (revision 0)
+++ live/media/anybrowser.gif (revision 198)
/live/media/anybrowser.gif
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: live/tools/eazytrans/option-parser.sh
===================================================================
--- live/tools/eazytrans/option-parser.sh (revision 0)
+++ live/tools/eazytrans/option-parser.sh (revision 198)
@@ -0,0 +1,34 @@
+#!/bin/bash
+echo
+
+interactive=0
+
+echo $\*=$*
+for i in "$*"; do
+ opt=0
+ idx=1
+ while [ -n "`echo $i | cut -c $idx`" ] ; do
+ j=`echo $i | cut -c $idx`
+ let idx=$idx+1
+ if [ "$j" = "-" ]; then
+ opt=1
+ continue 1
+ else
+ if [ $opt -eq 1 ]; then
+ case "$j" in
+ "i") interactive=1 ;;
+ esac
+ lastopt=$j
+ else
+ phrase=$phrase" "$j
+ fi
+ fi
+ done
+done
+
+echo opt=$opt
+echo idx=$idx
+echo lastopt=$lastopt
+echo phrase=$phrase
+echo interactive=$interactive
+echo
/live/tools/eazytrans/option-parser.sh
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: live/tools/eazytrans/README
===================================================================
--- live/tools/eazytrans/README (revision 0)
+++ live/tools/eazytrans/README (revision 198)
@@ -0,0 +1,165 @@
+
+EasyTranslator 0.95a - Stream editor to manage dictionary files
+Requires 'basename', 'grep' and 'sed', optionally 'sort' and 'mktemp' in PATH
+
+Copyright (C) 2001 Thomas Lahn (webmaster@PointedEars.de)
+Be sure to have 'easyTrans' or similar in mail subject line for fast response.
+
+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 of the License, 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 this program (COPYING file); if not, write to the
+Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+
+EasyTranslator 0.95a - Stream editor to manage dictionary files
+Requires 'basename', 'grep' and 'sed', optionally 'sort' and 'mktemp' in PATH
+
+translate EXPRESSION DICTIONARY [OPTIONS]
+
+Tries to translate EXPRESSION looking up DICTIONARY and writes the result
+to standard output (stdout) in a single line followed by a newline (\n).
+
+Environment:
+
+TRANSLATE_DIR Dictionary folder root (absolute path '/')
+ If undefined, this is the program directory
+ (currently './').
+TRANSLATE_OPTIONS Default options to overwrite command-line options
+
+Arguments:
+
+EXPRESSION Word or (double-quoted) phrase to be translated
+DICTIONARY Path of dictionary file relative to TRANSLATE_DIR
+
+Translation OPTIONS:
+ -b, --brackets If not in DICTIONARY, writes given WORD or EXPRESSION
+ as [WORD] or [EXPRESSION].
+ -m, --messages Return error messages instead of null-strings.
+ -p, --phrase Translate EXPRESSION as entire phrase. If not given,
+ each WORD of EXPRESSION is translated seperately.
+ -r, --reverse Perform reverse translation. Recommended only if
+ no appropriate dictionary file for vice-versa translation is
+ available and -p is also used.
+ -s, --sound Beep on fatal errors.
+ -v, --verbose Display flow of operation. Includes -m behavior.
+ -z, --zero Return not translatable tokens as null-strings.
+ Overwrites -b.
+
+translate EXPRESSION DICTIONARY COMMAND TRANSLATION [INFO] [OPTIONS]
+translate COMMAND DICTIONARY [INFO] [OPTIONS]
+
+Dictionary file COMMANDs:
+ -a, --add If not in DICTIONARY, add EXPRESSION with TRANSLATION
+ to DICTIONARY and write TRANSLATION.
+ If DICTIONARY not exists, create the file with INFO
+ and add the entry; if INFO is a null-string,
+ default INFO is added, containing program version,
+ user name and timestamp. Requires 'sort'.
+ -ai, -addinfo Add information data INFO to DICTIONARY.
+ Must be used as first argument.
+ -c, --create Create new DICTIONARY with INFO (see -a).
+ Existing files are replaced. Must be used as first argument.
+ -d, --delete If used with EXPRESSION and DICTIONARY, remove EXPRESSION
+ from DICTIONARY instead of translating.
+ If used as first argument, delete DICTIONARY.
+ -i, --info Display information about DICTIONARY.
+ Must be used as first argument.
+
+ -o, --overwrite Like -a but overwrite a contained translation of
+ EXPRESSION with TRANSLATION without question.
+ Additionally requires 'mktemp'.
+ -R, --repair Repair DICTIONARY instead of translating. Requires 'mktemp'.
+ Info data is be kept but invalid entries are removed.
+ USE WITH CAUTION!
+ -s, --sort Sort DICTIONARY instead of translating. Requires 'sort'.
+ Includes --sound when used with -v.
+ Must be used as first argument.
+
+translate OPTION [OPTION]
+
+Help page OPTIONs:
+ --1 Display help on one page (without 'clear' and user input).
+ Useful with redirection
+ (try 'translate --1 --? > translate.doc.txt').
+ Must be given before all other help page options.
+ --a, --about Display information about the program.
+ --c, --cmd Display this help page.
+ --d, --dict Display help about dictionary files.
+ --dev, --emp Display special information for developers and employers.
+ --x, --example Display example.
+ --?, --help Display all help pages.
+
+
+EasyTranslator 0.95a - Stream editor to manage dictionary files
+Requires 'basename', 'grep' and 'sed', optionally 'sort' and 'mktemp' in PATH
+
+EXAMPLE: If you would like to translate the English words 'a few' into German,
+
+ translate ''a few'' en-de
+
+should write the German words
+
+ ein(e) wenig(e)\n
+
+(without indent) to stdout if the echo dictionary file 'en-de' contains
+a correct entry for it (see next page). You may also translate it as
+entire phrase (which seems to make more sense here):
+
+ translate ''a few'' en-de -p
+
+should instead write the German word 'einige\n'
+(replace '' in input with the double-quote character).
+
+
+EasyTranslator 0.95a - Stream editor to manage dictionary files
+Requires 'basename', 'grep' and 'sed', optionally 'sort' and 'mktemp' in PATH
+
+DICTIONARY FILES:
+You may create/improve dictionary files to be used with EasyTranslator
+of your own. Translation data must be contained therein as follows:
+
+#:File description displayed when option -i is used\n[#:File description\n]
+[Expression:translation\n[Next expression:next translation\n]]
+Last expression:last translation\z
+
+Parts enclosed in rectangle brackets are optional. The colon (:) is to be used
+as delimiter character between original and translated expression only.
+Dictionary file names should contain common language identifiers separated
+by a dash (such as 'en-de.dic' for an English-German dictionary file).
+
+Program updates and dictionaries can be obtained from
+'http://pointedears.de/dev/unix/translate/'.
+Thank you for using a program by PointedEars.
+
+
+EasyTranslator 0.95a - Stream editor to manage dictionary files
+Requires 'basename', 'grep' and 'sed', optionally 'sort' and 'mktemp' in PATH
+
+Copyright (C) 2001 Thomas Lahn (webmaster@PointedEars.de)
+Be sure to have 'easyTrans' or similar in mail subject line for fast response.
+
+INFORMATION FOR DEVELOPERS (KNOWN ISSUES)...
+
+1) As I have not found out the correct /REGEXP/ for 'sed' to remove all
+ characters before/after another one including this character (delimiter)
+ to date, removing each single printable character before/after
+ delimiter is, for the time being, my only solution in bash. Please mail
+ me if you have a more efficient solution, especially the correct /REGEXP/.
+2) Sorting the dictionary unfortunately also sorts its the info data by now.
+
+...AND FOR EMPLOYERS:
+
+BTW, if you have an idea for improving EasyTranslator or for another (field of)
+application you want me to develop for you (BASIC, DOS batch, Windows INF,
+Visual Basic, bash, Pascal, Delphi, C, HTML/JavaScript, and I am still learning
+other languages) feel free to mail me, too. THNX! -- PointedEars, 2001-03-28
+
Index: live/tools/eazytrans/dummy.dict
===================================================================
--- live/tools/eazytrans/dummy.dict (revision 0)
+++ live/tools/eazytrans/dummy.dict (revision 198)
@@ -0,0 +1 @@
+#:EasyTranslator 0.95a dictionary file created by 'pelinux' on Mit Mär 28 13:51:49 CEST 2001
Index: live/tools/eazytrans/install.sh
===================================================================
--- live/tools/eazytrans/install.sh (revision 0)
+++ live/tools/eazytrans/install.sh (revision 198)
@@ -0,0 +1,186 @@
+#!/bin/bash
+
+APPNAME="EazyTranslator"
+APPVER="0.96a Setup"
+APPFILEDIR=`pwd`
+APPFILENAME="translate"
+
+function title {
+ clear
+ echo $APPNAME" "$APPVER" - (C) 2001 Thomas Lahn (webmaster@PointedEars.de)"
+}
+
+function Error {
+ echo
+ pause "c"
+}
+
+function EFailed {
+ echo -e "$rc_failed"
+ Error
+}
+
+X=""
+function val2x {
+ case $1 in
+ -1) X="-";;
+ 0) X=" ";;
+ 1) X="x";;
+ esac
+}
+
+
+# Acquire default text values for process success/failure messages
+. /etc/rc.config
+
+if [ -n "$1" ]; then CPDEST=$1 ; else CPDEST="/opt/EazyTrans" ; fi
+CREATELNK=1
+MODI_USERS=1
+MODI_ROOT=1
+MODI_SKEL=1
+YES="Yes!"
+NO="No."
+DEF="Default"
+YESNO="$YES $NO"
+YESNODEF="$YES $NO $DEF"
+
+CONTINUE=0
+while [ $CONTINUE -eq 0 ]; do
+ title
+ echo
+# if [ `whoami` != "root" ]; then echo "Sorry, only 'root' can do this!" ; echo ; exit 1 ; fi
+ echo "This program will do the following:"
+ echo
+ echo "1) Copy the program files to: '"$CPDEST"'"
+ val2x $CREATELNK
+ echo "2) ["$X"] Create a symbolic link to /usr/bin"
+ val2x $MODI_USERS
+ echo "3) ["$X"] Modify the ~/.bashrc file of existing users (default)"
+ val2x $MODI_ROOT
+ echo "4) ["$X"] Modify the /root/.bashrc file (default)"
+ val2x $MODI_SKEL
+ echo "5) ["$X"] Modify the /etc/skel/.bashrc file (default)"
+ echo
+ echo "Select the value to be changed, proceed with these values or cancel:"
+ OPT_PROCEED="Proceed!"
+ OPT_CANCEL="Cancel."
+ OPTIONS="1 2 3 4 5 $OPT_PROCEED $OPT_CANCEL"
+ select SELOPT in $OPTIONS; do
+ case $SELOPT in
+ "1")
+ echo
+ echo "Where should the program files be copied to? (RETURN cancels):"
+ echo -n "> "
+ read S
+ if [ -n "$S" ]; then CPDEST=$S ; fi
+ break;;
+ "2")
+ echo
+ echo "Should a symbolic link '/usr/bin/"$APPFILENAME"' be created"
+ echo "so that the program becomes available to all users?"
+ select SELOPT in $YESNODEF; do
+ case $SELOPT in
+ $YES)
+ CREATELNK=1
+ break;