* ant task for website auto-deploy

* ant now reads version information from application properties
* moved website directory to main source tree
This commit is contained in:
Reinhard Pointner 2011-08-27 02:20:40 +00:00
parent 4a22b9d684
commit 2dacfe4fbf
44 changed files with 871 additions and 13 deletions

View File

@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<project name="FileBot" default="fatjar"> <project name="filebot" default="fatjar">
<property name="title" value="${ant.project.name}" /> <!-- include application properties -->
<property name="version" value="1.98" /> <property file="source/net/sourceforge/filebot/Settings.properties" />
<property name="title" value="${application.name}" />
<property name="version" value="${application.version}" />
<tstamp> <tstamp>
<format property="today" pattern="yyyy-MM-dd" /> <format property="today" pattern="yyyy-MM-dd" />
@ -13,12 +15,16 @@
<property name="dir.build" location="${basedir}/build" /> <property name="dir.build" location="${basedir}/build" />
<property name="dir.dist" location="${basedir}/dist" /> <property name="dir.dist" location="${basedir}/dist" />
<property name="dir.lib" location="${basedir}/lib" /> <property name="dir.lib" location="${basedir}/lib" />
<property name="dir.website" location="${basedir}/website" />
<property name="dir.installer" location="${basedir}/installer" /> <property name="dir.installer" location="${basedir}/installer" />
<property name="path.fatjar" location="${dir.dist}/${title}_${version}.jar" /> <property name="path.fatjar" location="${dir.dist}/${title}_${version}.jar" />
<property name="path.appbundle.zip" location="${dir.dist}/${title}_${version}.app.zip" /> <property name="path.appbundle.zip" location="${dir.dist}/${title}_${version}.app.zip" />
<property name="path.source.zip" location="${dir.dist}/filebot-${version}-src.zip" /> <property name="path.source.zip" location="${dir.dist}/filebot-${version}-src.zip" />
<property name="deploy.release" value="web.sourceforge.net:/home/frs/project/f/fi/filebot/filebot" />
<property name="deploy.website" value="web.sourceforge.net:htdocs" />
<target name="jar" depends="build"> <target name="jar" depends="build">
<!-- create dist dir --> <!-- create dist dir -->
@ -329,15 +335,7 @@
</target> </target>
<target name="run-fatjar" depends="fatjar"> <target name="deploy-release" depends="fatjar, appbundle, deb, msi, webstart">
<java jar="${path.fatjar}" fork="true" />
</target>
<target name="deploy" depends="fatjar, appbundle, deb, msi, webstart">
<property name="deploy.release" value="web.sourceforge.net:/home/frs/project/f/fi/filebot/filebot" />
<property name="deploy.webstart" value="web.sourceforge.net:htdocs/webstart" />
<!-- ask for sourceforge password --> <!-- ask for sourceforge password -->
<property name="sf.user" value="rednoah,filebot" /> <property name="sf.user" value="rednoah,filebot" />
<input message="Please enter password:" addproperty="sf.password" /> <input message="Please enter password:" addproperty="sf.password" />
@ -384,12 +382,43 @@
</scp> </scp>
<!-- deploy webstart jars and jnlp descriptors --> <!-- deploy webstart jars and jnlp descriptors -->
<scp todir="${sf.user}:${sf.password}@${deploy.webstart}" trust="yes" verbose="true"> <scp todir="${sf.user}:${sf.password}@${deploy.website}/webstart" trust="yes" verbose="true">
<fileset dir="${dir.dist}/webstart" /> <fileset dir="${dir.dist}/webstart" />
</scp> </scp>
</target> </target>
<target name="deploy-website">
<!-- prepare website resource -->
<copy todir="${dir.dist}/website">
<fileset dir="${dir.website}">
<include name="*.html" />
<include name="*.css" />
<include name="*.js" />
<include name="*.png" />
<include name="*.ico" />
<include name="images/**" />
<include name="screenshots/**" />
</fileset>
</copy>
<!-- replace variables for new release -->
<replace dir="${dir.dist}/website" encoding="utf-8" summary="yes">
<include name="**/*.html" />
<replacefilter token="@{version}" value="${version}" />
</replace>
<!-- ask for sourceforge password -->
<property name="sf.user" value="rednoah,filebot" />
<input message="Please enter password:" addproperty="sf.password" />
<!-- upload -->
<scp todir="${sf.user}:${sf.password}@${deploy.website}" trust="yes" verbose="true">
<fileset dir="${dir.dist}/website" />
</scp>
</target>
<target name="deploy-test-package" depends="fatjar"> <target name="deploy-test-package" depends="fatjar">
<!-- ask for sourceforge password --> <!-- ask for sourceforge password -->
<property name="sf.user" value="rednoah" /> <property name="sf.user" value="rednoah" />

262
website/base.css Normal file
View File

@ -0,0 +1,262 @@
body {
font-family: arial, dejavu sans, freesans;
font-size: 16px;
background-color: #e6e6e6;
}
a,acronym {
color: #5c7684;
text-decoration: none;
border: none;
}
a:hover {
text-decoration: underline;
}
a img {
border: none;
}
table {
border-collapse: collapse;
}
th, td {
padding: 5px 20px;
}
td {
border-top: thin dotted lavender;
}
code {
display: block;
font: Arial, Helvetica, sans-serif;
line-height: 1.2em;
background-color: #f5f5f5;
border: thin dashed #a2a2a2;
padding: 5px;
margin: 5px 0px;
}
.page {
position: relative;
margin: 20px auto;
width: 760px;
min-height: 800px;
padding: 20px;
background: white;
border: 1px solid #a2a2a2;
margin: 20px auto;
border-radius: 7px;
-moz-border-radius: 7px;
-webkit-border-radius: 7px;
box-shadow: 0px 2px 5px #a2a2a2;
-moz-box-shadow: 0px 2px 5px #a2a2a2;
}
.header {
margin-left: 25px;
margin-right: 80px;
margin-bottom: 50px;
}
.header img {
float: left;
margin-top: 2px;
}
img.logo {
float: left;
}
h1 {
font-size: 24px;
font-weight: bold;
margin-left: 65px;
letter-spacing: 0.03em;
}
h1 .description {
display: block;
color: #888888;
font-size: 70%;
font-weight: normal;
font-style: italic;
letter-spacing: normal;
}
.screenshot {
float: right;
background-color: #E6E6E6;
border: 1px solid lightgray;
box-shadow: 0px 2px 5px #a2a2a2;
-moz-box-shadow: 0px 2px 5px #a2a2a2;
}
.screenshot a {
display: block;
border: none;
outline: none;
}
.screencast {
position: relative;
}
div.screencast .play {
position: absolute;
top: 2px;
right: 4px;
opacity: 0.2;
}
div.screencast:hover .play {
opacity: 1.0;
}
.content>.screenshot {
margin-top: 10px;
margin-left: 20px;
}
.webstart {
margin: 15px;
min-height: 25px;
text-align: center;
}
.comment {
font-size:xx-small;
color: lightgray;
margin-left: 2px;
}
.webstart a img {
box-shadow: 0px 0px 5px lightgray;
-moz-box-shadow: 0px 0px 5px lightgray;
}
.webstart a:hover img {
box-shadow: 0px 1px 8px darkorange;
-moz-box-shadow: 0px 1px 8px darkorange;
}
.section.features {
clear: both;
margin-top: 20px;
}
.section.download,.section.contact {
clear: both;
margin-top: 40px;
}
.section .icon {
float: left;
margin-right: 10px;
}
.section h2 {
font-size: 20px;
padding-top: 12px;
margin-bottom: 20px;
}
.section p {
margin-left: 10px;
}
.section .quote {
float: right;
margin-top: 12px;
color: #888;
font-size: 11px;
}
.quote:before {
content: open-quote;
}
.quote:after {
content: close-quote;
}
.section>ul>li {
margin-top: 10px;
margin-bottom: 10px;
}
.section>ul>li li {
margin-top: 2px;
}
.note {
font-size: 80%;
font-style: italic;
}
.note.mediainfo {
color: #3E8D39;
}
.note.mediainfo:before {
content: url("images/plugin.png");
position: relative;
top: 2px;
margin-right: 2px;
}
.note.anime {
color: #D76F04;
}
.note.anime:before {
content: url("images/asterisk.png");
position: relative;
top: 3px;
margin-left: 2px;
margin-right: 2px;
}
.section.features>ul.next {
clear: both;
padding-top: 5px;
border-top: 1px dashed lightgray;
}
.section.features .screenshot {
position: relative;
margin-bottom: 10px;
}
.section.features .screenshot.dialog {
position: absolute;
}
.metrics {
margin: 25px;
min-height: 15px;
text-align: center;
}
.footer {
font-size: 60%;
text-align: center;
}
#sflogo {
position: relative;
text-align: right;
height: 0px;
top: -10px;
}
#donate {
position: relative;
text-align: left;
height: 0px;
left: 20px;
top: -57px;
}

BIN
website/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
website/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 854 B

125
website/gallery.css Normal file
View File

@ -0,0 +1,125 @@
.galleria {
list-style: none;
width: 200px;
height: 50px;
}
.galleria li {
display: block;
width: 80px;
height: 80px;
overflow: hidden;
float: left;
margin: 0 10px 10px 0
}
.galleria li a {
display: none
}
.galleria li div {
position: absolute;
display: none;
top: 0;
left: 180px
}
.galleria li div img {
cursor: pointer
}
.galleria li.active div img,.galleria li.active div {
display: block
}
.galleria li img.thumb {
cursor: pointer;
top: auto;
left: auto;
display: block;
width: auto;
height: auto
}
.galleria li .caption {
display: block;
padding-top: .5em
}
/* MSIE bug */
* html .galleria li div span {
width: 400px
}
* {
margin: 0;
padding: 0
}
body {
padding: 20px;
background: white;
text-align: center;
background: black;
color: #bba;
font: 80%/ 140% georgia, serif;
}
h1,h2 {
font: bold 80% 'helvetica neue', sans-serif;
letter-spacing: 3px;
text-transform: uppercase;
}
a {
color: #348;
text-decoration: none;
outline: none;
}
a:hover {
color: #67a;
}
.caption {
font-style: italic;
color: #887;
}
.demo {
position: relative;
margin-top: 2em;
}
.gallery_demo {
width: 702px;
margin: 0 auto;
}
.gallery_demo li {
width: 68px;
height: 50px;
border: 3px double #111;
margin: 0 2px;
background: #000;
}
.gallery_demo li div {
left: 240px
}
.gallery_demo li div .caption {
font: italic 0.7em/ 1.4 georgia, serif;
}
#main_image {
margin: 0 auto 60px auto;
height: 600px;
width: 800px;
background: black;
}
#main_image img {
margin-bottom: 10px;
border: 1px solid lightgray;
}

70
website/gallery.html Normal file
View File

@ -0,0 +1,70 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>FileBot Gallery</title>
<link href="gallery.css" rel="stylesheet" type="text/css" media="screen">
<link rel="icon" href="favicon.png" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
<script type="text/javascript" src="jquery.galleria.pack.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('.gallery_demo_unstyled').addClass('gallery_demo'); // adds new class name to maintain degradability
$('ul.gallery_demo').galleria({
history : true, // activates the history object for bookmarking, back-button etc.
clickNext : true, // helper for making the image clickable
insert : '#main_image', // the containing selector for our main image
onImage : function(image,caption,thumb) { // let's add some image effects for demonstration purposes
caption.css('display','none').fadeIn(1000);
// fetch the thumbnail container
var _li = thumb.parents('li');
// fade out inactive thumbnail
_li.siblings().children('img.selected').fadeTo(500,0.3);
// fade in active thumbnail
thumb.fadeTo('fast',1).addClass('selected');
// add a title for the clickable image
image.attr('title','Next image >>');
},
onThumb : function(thumb) { // thumbnail effects goes here
// fetch the thumbnail container
var _li = thumb.parents('li');
// if thumbnail is active, fade all the way.
var _fadeTo = _li.is('.active') ? '1' : '0.3';
// fade in the thumbnail when finnished loading
thumb.css({display:'none',opacity:_fadeTo}).fadeIn(1500);
// hover effects
thumb.hover(
function() { thumb.fadeTo('fast',1); },
function() { _li.not('.active').children('img').fadeTo('fast',0.3); } // don't fade out if the parent is active
)
}
});
});
</script>
</head>
<body>
<h1>FileBot Gallery</h1>
<div class="demo">
<div id="main_image"></div>
<ul class="gallery_demo_unstyled">
<li><a href="screenshots/original/panel.rename.png" title="Rename episodes"><img src="screenshots/thumb/panel.rename.png" /></a></li>
<li><a href="screenshots/original/dialog.format.png" title="Define your own episode format"><img src="screenshots/thumb/dialog.format.png" /></a></li>
<li><a href="screenshots/original/dialog.format.bindings.png" title="Use any kind of media info for your episode format"><img src="screenshots/thumb/dialog.format.bindings.png" /></a></li>
<li><a href="screenshots/original/dialog.rename.history.png" title="Reverse rename files using internal history"><img src="screenshots/thumb/dialog.rename.history.png" /></a></li>
<li><a href="screenshots/original/panel.episodes.png" title="Fetch list of episodes"><img src="screenshots/thumb/panel.episodes.png" /></a></li>
<li><a href="screenshots/original/panel.subtitle.png" title="Download subtitles"><img src="screenshots/thumb/panel.subtitle.png" /></a></li>
<li><a href="screenshots/original/dialog.subtitle.viewer.png" title="Preview subtitles"><img src="screenshots/thumb/dialog.subtitle.viewer.png" /></a></li>
<li><a href="screenshots/original/dialog.subtitle.download.png" title="Find perfectly matching subtitles via hash value"><img src="screenshots/thumb/dialog.subtitle.download.png" /></a></li>
<li><a href="screenshots/original/panel.sfv.png" title="Verify sfv, md5 and sha1 files"><img src="screenshots/thumb/panel.sfv.png" /></a></li>
</ul>
</div>
</body>
</html>

BIN
website/images/asterisk.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 760 B

BIN
website/images/contact.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

BIN
website/images/donate.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

BIN
website/images/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

BIN
website/images/lists.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
website/images/package.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
website/images/play.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 592 B

BIN
website/images/plugin.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 591 B

153
website/index.html Normal file
View File

@ -0,0 +1,153 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="keywords" content="tv, renamer, subtitle, file validation, open source, Java, Web Start" />
<title>FileBot - The ultimate tv renamer / subtitle downloader / sfv validator</title>
<link rel="stylesheet" href="base.css" type="text/css" />
<link rel="icon" href="favicon.png" />
</head>
<body>
<div class="page">
<div class="header">
<img class="logo" alt="logo" src="images/icon.png" width="48" height="48" />
<h1>
FileBot
<span class="description">The ultimate tv renamer / subtitle downloader / sfv validator</span>
</h1>
</div>
<div class="content">
<div class="screenshot screencast">
<a href="gallery.html#screenshots/original/panel.rename.png" title="How to use FileBot" target="_blank">
<img class="play" alt="play" src="images/play.png" width="16" height="16" />
<img alt="screenshot" src="screenshots/medium/panel.rename.png" width="300" height="238" />
</a>
</div>
<div class="section about">
<img class="icon" src="images/information.png" alt="about" width="48" height="48" />
<h2>About</h2>
<p>
<strong>FileBot</strong> is the ultimate tool for renaming your tv shows and anime,
downloading subtitles from various sources or just simple file verification.
<small class="comment">(and we seriously need to think of a better about text)</small>
</p>
<p>
FileBot can be launched via Java Web Start. No manual download or installation required.
</p>
</div>
<div class="webstart">
<script type="text/javascript" src="http://www.java.com/js/deployJava.js"></script>
<script type="text/javascript">deployJava.createWebStartLaunchButton("http://filebot.sourceforge.net/webstart/filebot.jnlp", '1.6.0')</script>
</div>
<div class="section features">
<img class="icon" src="images/lists.png" alt="features" width="48" height="48" />
<span class="quote">Automatic for the people</span>
<h2>Some Features</h2>
<ul>
<li>A simple user-interface tuned for drag-n-drop <small class="comment">(no need to bother with file dialogs)</small></li>
<li>Platform-independent and straight-forward application deployment</li>
</ul>
<ul class="next">
<li>
<div class="screenshot">
<a href="gallery.html#screenshots/original/dialog.format.png" target="_blank">
<img class="screenshot dialog" style="top: 29px; right: 20px" width="75" height="55" src="screenshots/small/dialog.format.png" alt="Episode naming scheme" />
</a>
<a href="gallery.html#screenshots/original/panel.rename.png" target="_blank">
<img width="150" height="118" src="screenshots/small/panel.rename.png" alt="Rename files" />
</a>
</div>
Rename hundreds of media files in a matter of seconds
</li>
<li>Fetch episode info from <a href="http://www.tvrage.com">TVRage</a>, <a href="http://anidb.net">AniDB</a>, <a href="http://www.imdb.com">IMDb</a>, <a href="http://thetvdb.com">TheTVDB</a> or <a href="http://www.serienjunkies.de">Serienjunkies</a></li>
<li>Highly accurate file / episode matching</li>
<li>Series / Anime name auto-detection</li>
<li>Powerful and highly customizable <a href="naming.html">episode naming scheme</a><br/><span class="note mediainfo">MediaInfo optional</span></li>
<li>Supports language preferences for series and episode titles</li>
<li>Supports movie identification and renaming via <a href="http://www.opensubtitles.org">OpenSubtitles</a> or <a href="http://www.themoviedb.org">TheMovieDB</a></li>
<li>Reverse rename files using internal history or the original torrent file</li>
</ul>
<ul class="next">
<li>
<div class="screenshot">
<a href="gallery.html#screenshots/original/panel.subtitle.png" target="_blank">
<img width="150" height="118" src="screenshots/small/panel.subtitle.png" alt="Download subtitles" />
</a>
</div>
Download subtitles from <a href="http://www.opensubtitles.org">OpenSubtitles</a>, <a href="http://subscene.com">Subscene</a> and <a href="http://www.sublight.si">Sublight</a>
</li>
<li>Find <dfn>exact</dfn> subtitles on OpenSubtitles</li>
<li>Find <dfn>linked</dfn> subtitles on Sublight<br/><span class="note mediainfo">MediaInfo required</span></li>
<li>Auto-extract zip and rar archives</li>
<li>Integrated subtitle viewer for <acronym title="SubRip">srt</acronym>, <acronym title="Advanced SubStation Alpha">ass</acronym> and <acronym title="MicroDVD and SubViewer">sub</acronym> files</li>
</ul>
<ul class="next">
<li>
<div class="screenshot">
<a href="gallery.html#screenshots/original/panel.sfv.png" target="_blank">
<img width="150" height="118" src="screenshots/small/panel.sfv.png" alt="Verify SFV files" />
</a>
</div>
Easily create and verify <acronym title="simple file verification">sfv</acronym>, <acronym title="md5sum">md5</acronym> and <acronym title="sha1sum">sha1</acronym> files
</li>
<li>Aware of checksums that are embedded in the filename<br/><span class="note anime">common in anime releases</span></li>
<li>Directly compare two or more directory trees</li>
<li>Auto-lookup of any existing file verification</li>
</ul>
</div>
<div class="section download">
<img class="icon" src="images/package.png" alt="download" width="48" height="48" />
<span class="quote">Today is the day</span>
<h2>Download</h2>
<ul>
<li>Executable Jar: <a href="http://sourceforge.net/projects/filebot/files/filebot/FileBot_@{version}/FileBot_@{version}.jar/download">FileBot_@{version}.jar</a> (<strong>10.5MB</strong>) <small class="comment">for Windows, Linux, Mac OS X, BSD and Solaris</small>
<ul>
<li>This package does not include the <a href="http://mediainfo.sourceforge.net/en/Download">MediaInfo native libraries</a>.</li>
</ul>
</li>
<li>Mac OS X app bundle: <a href="http://sourceforge.net/projects/filebot/files/filebot/FileBot_@{version}/FileBot_@{version}.app.zip/download">FileBot_@{version}.app</a> (<strong>12MB</strong>)</li>
<li>Windows installer: <a href="http://sourceforge.net/projects/filebot/files/filebot/FileBot_@{version}/FileBot_@{version}_x86.msi/download">FileBot_@{version}_x86.msi</a> or <a href="http://sourceforge.net/projects/filebot/files/filebot/FileBot_@{version}/FileBot_@{version}_x64.msi/download">FileBot_@{version}_x64.msi</a> (<strong>11.5MB</strong>)</li>
<li>Debian packages: <a href="http://sourceforge.net/projects/filebot/files/filebot/FileBot_@{version}/filebot_@{version}_i386.deb/download">filebot_@{version}_i386.deb</a> or <a href="http://sourceforge.net/projects/filebot/files/filebot/FileBot_@{version}/filebot_@{version}_amd64.deb/download">filebot_@{version}_amd64.deb</a> (<strong>10.5MB</strong>)</li>
<li>Source Zip: <a href="http://sourceforge.net/projects/filebot/files/filebot/FileBot_@{version}/filebot-@{version}-src.zip/download">filebot-@{version}-src.zip</a> (<strong>450KB</strong>)</li>
</ul>
</div>
<div class="section contact">
<img class="icon" src="images/contact.png" alt="contact" width="48" height="48" />
<span class="quote">Will you join us?</span>
<h2>Contact</h2>
<p>
The project is continuously seeking for improvements, so anykind of <a href="http://sourceforge.net/projects/filebot/reviews">feedback</a> is more than welcome
and if there's any questions or problems just start posting in the <a href="http://sourceforge.net/projects/filebot/forums/forum/723389">forums</a>.
Make sure to visit us on our <a href="http://sourceforge.net/projects/filebot">project home</a> and become a fan on <a href="http://www.facebook.com/pages/FileBot/102742293101063">facebook</a>.
You might also like to check out our <a href="http://www.ohloh.net/p/filebot">ohloh</a> project page.
</p>
</div>
</div>
<div class="metrics">
<script type="text/javascript" src="http://www.ohloh.net/p/16945/widgets/project_partner_badge.js"></script>
</div>
<div class="footer">
<div id="sflogo">
<a href="http://sourceforge.net/projects/filebot">
<img src="http://sflogo.sourceforge.net/sflogo.php?group_id=202747&amp;type=1" width="88" height="31" border="0" alt="SourceForge.net Logo" />
</a>
</div>
<div id="donate">
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" style="display:inline">
<input type="hidden" name="cmd" value="_s-xclick" />
<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----MIIHNwYJKoZIhvcNAQcEoIIHKDCCByQCAQExggEwMIIBLAIBADCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwDQYJKoZIhvcNAQEBBQAEgYBOY1pI25A2C4SZ+iVDHkFo19SvO81rJPwLrh+e13RWDAg+qbo4HbMgbyhiAT+rYw+8nD7Iegs7A2IZJ2Fc5B2Z7qBTfAjjin6HbEyuJTdbZUBbosYAiihhutTkSR94tWbNqH9Fpvl502zutMviTRcAy4EGQfTcQP3TQmLZC9cxxTELMAkGBSsOAwIaBQAwgbQGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQIwkN+XtfUJTmAgZDp17/1C1h5m7tGRoMTdffNByh5GElib5j+wWtZQbvAms/t/6y7PGRGNp3Ad7W31caczjF4e4jso5gAxAVlAOyfB1o9xB/IjNoSf/5v6cIByR6TQROIdq+2zUAZ5zSsnnlLX0JjUD+8pHGB3AdsQxmnW5v7i1onpVdB9YYFgriqYNPycDC8cJyzShUR2AJ8fMGgggOHMIIDgzCCAuygAwIBAgIBADANBgkqhkiG9w0BAQUFADCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20wHhcNMDQwMjEzMTAxMzE1WhcNMzUwMjEzMTAxMzE1WjCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMFHTt38RMxLXJyO2SmS+Ndl72T7oKJ4u4uw+6awntALWh03PewmIJuzbALScsTS4sZoS1fKciBGoh11gIfHzylvkdNe/hJl66/RGqrj5rFb08sAABNTzDTiqqNpJeBsYs/c2aiGozptX2RlnBktH+SUNpAajW724Nv2Wvhif6sFAgMBAAGjge4wgeswHQYDVR0OBBYEFJaffLvGbxe9WT9S1wob7BDWZJRrMIG7BgNVHSMEgbMwgbCAFJaffLvGbxe9WT9S1wob7BDWZJRroYGUpIGRMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbYIBADAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAIFfOlaagFrl71+jq6OKidbWFSE+Q4FqROvdgIONth+8kSK//Y/4ihuE4Ymvzn5ceE3S/iBSQQMjyvb+s2TWbQYDwcp129OPIbD9epdr4tJOUNiSojw7BHwYRiPh58S1xGlFgHFXwrEBb3dgNbMUa+u4qectsMAXpVHnD9wIyfmHMYIBmjCCAZYCAQEwgZQwgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tAgEAMAkGBSsOAwIaBQCgXTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xMDExMDgwNzE1MjlaMCMGCSqGSIb3DQEJBDEWBBQxOz+EhIKN690rQ57KLzHBZDiMEzANBgkqhkiG9w0BAQEFAASBgCa61dPlT6Y8ZQSkQs8DXuuGFqZhTPVCp6wAx0qyDhNi6rAdPsOQwoBiUEEFz327g7rUn+HcCVBGqEwv4ExMrZThz9ZHROWc9PbAC1dHHtrrA3SInH0HpIZG5RgDhLcgH1agjGbGGv4k/eKr9Bffte3kf6l3Qd92ZX5AUS1Rf/dD-----END PKCS7-----" />
<input type="image" src="images/donate.png" name="submit" alt="PayPal - The safer, easier way to pay online." />
</form>
</div>
Hosted on <a href="http://sourceforge.net">sourceforge.net</a>
| Creative Commons License: Attribution-NonCommercial-ShareAlike. &copy; 2011
</div>
</div>
</body>
</html>

View File

@ -0,0 +1 @@
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(5($){4 q;q=$.23.7=5(k){6(!q.1o()){Q J}$.1p(q.1b);4 l={Z:\'.1q\',K:E,10:E,1c:5(a,b,c){},1r:5(a){}};4 m=$.11(l,k);1d(4 i 24 m){6(i){$.7[i]=m[i]}}4 n=($(m.Z).R(m.Z))?$(m.Z):3(B.12(\'1e\')).25(8);4 o=$(B.12(\'1e\')).u(\'1s\');4 p=$(B.12(\'1f\')).u(\'1g\');n.u(\'1q\').13(o).13(p);Q 8.1t(5(){$(8).u(\'7\');$(8).1u(\'L\').1t(5(i){4 b=$(8);4 c=$.26?$.11({},m,b.27()):m;c.10=$(8).R(\':28-S\')?J:c.10;4 d=$(8).T(\'a\').R(\'a\')?$(8).T(\'a\'):J;4 e=$(8).1u(\'F\').C(\'M\',\'U\');4 f=d?d.9(\'1v\'):e.9(\'1h\');4 g=d?d.9(\'14\'):e.9(\'14\');4 j=1w 1x();6(c.K&&(N.r.t&&N.r.t.V(/\\#/,\'\')==f)){b.G(\'.D\').W(\'D\');b.u(\'D\')}$(j).29(5(){$(8).9(\'1y\',e.9(\'1y\'));4 a=d?d.T(\'F\').u(\'1z 1A\').C(\'M\',\'U\'):e.2a(E).u(\'1z\').C(\'M\',\'U\');6(d){d.2b(a)}6(!a.1B(\'1A\')){4 w=1i.1C(e.v()/e.y()*b.y());4 h=1i.1C(e.y()/e.v()*b.v());6(w<h){a.C({y:\'1D\',v:b.v(),1E:-(h-b.y())/2})}s{a.C({v:\'1D\',y:b.y(),1F:-(w-b.v())/2})}}s{N.1G(5(){a.C({1F:-(a.v()-b.v())/2,1E:-(a.y()-b.y())/2})},1)}a.9(\'O\',f);a.9(\'14\',g);a.1H(5(){$.7.X(f)});a.P(5(){$(8).u(\'P\')},5(){$(8).W(\'P\')});b.P(5(){b.u(\'P\')},5(){b.W(\'P\')});b.1I(a);a.C(\'M\',\'2c\');c.1r(3(a));6(b.1B(\'D\')){$.7.X(f)}e.1J()}).1K(5(){b.2d(\'<1f 2e="1K" 1L="2f:2g">2h 2i 2j: \'+f+\'</1f>\')}).9(\'1h\',f)})})};q.1M=5(a){Q $(a).R(\':1N-S\')?$(a).G(\':1O-S\'):$(a).1j()};q.1P=5(a){Q $(a).R(\':1O-S\')?$(a).G(\':1N-S\'):$(a).1Q()};q.1o=5(){$(\'1R\').13($(B.12(\'1e\')).9(\'1S\',\'1k\').C({v:\'1T\',y:\'1T\',M:\'U\'}));4 a=($(\'#1k\').v()!=1)?J:E;$(\'#1k\').1J();Q a};q.1b=5(a){4 b=$(\'.1s\');4 c=$(\'.7 F[O="\'+a+\'"]\');6(a){6($.7.K){N.r=N.r.1v.V(/\\#.*/,\'\')+\'#\'+a}c.15(\'L\').G(\'.D\').W(\'D\');c.15(\'L\').u(\'D\');4 d=$(1w 1x()).9(\'1h\',a).u(\'2k\');b.1U().13(d);b.G(\'.1g\').2l(c.9(\'14\'));$.7.1c(d,b.G(\'.1g\'),c);6($.7.10){d.C(\'2m\',\'2n\').1H(5(){$.7.1j()})}}s{b.G().2o().1U();$(\'.7 L.D\').W(\'D\')}$.7.16=a};$.11({7:{16:\'\',1c:5(){},X:5(a){6($.7.K){$.1V(a)}s{q.1b(a)}},1j:5(){4 a=$(q.1M($(\'.7 F[O="\'+$.7.16+\'"]\').15(\'L\'))).T(\'F\').9(\'O\');$.7.X(a)},1Q:5(){4 a=$(q.1P($(\'.7 F[O="\'+$.7.16+\'"]\').15(\'L\'))).T(\'F\').9(\'O\');$.7.X(a)}}})})(3);3.11({z:17,x:17,1p:5(a){3.x=a;4 b=r.t;3.z=b;6(3.H.1l){6(3.z===\'\'){3.z=\'#\'}$("1R").1I(\'<1W 1S="18" 1L="M: U;"></1W>\');4 c=$("#18")[0];4 d=c.1m.B;d.1X();d.1Y();d.r.t=b}s 6($.H.19){3.A=[];3.A.I=K.I;3.1a=[];3.Y=E}3.x(b.V(/^#/,\'\'));2p(3.1Z,2q)},20:5(a){3.A.21(a);3.1a.I=0;8.Y=E},1Z:5(){6(3.H.1l){4 a=$("#18")[0];4 b=a.2r||a.1m.B;4 c=b.r.t;6(c!=3.z){r.t=c;3.z=c;3.x(c.V(/^#/,\'\'))}}s 6($.H.19){6(!3.1n){4 d=K.I-3.A.I;6(d){3.Y=J;4 i;6(d<0){1d(i=0;i<1i.2s(d);i++){3.1a.2t(3.A.2u())}}s{1d(i=0;i<d;i++){3.A.21(3.1a.2v())}}4 e=3.A[3.A.I-1];6(e!==17){3.z=r.t;3.x(e)}}s 6(3.A[3.A.I-1]===17&&!3.Y){6(B.22.2w(\'#\')>=0){3.x(B.22.2x(\'#\')[1])}s{c=r.t;3.x(\'\')}3.Y=E}}}s{c=r.t;6(c!=3.z){3.z=c;3.x(c.V(/^#/,\'\'))}}},1V:5(a){4 b;6(3.H.19){b=a}s{b=\'#\'+a;r.t=b}3.z=b;6(3.H.1l){4 c=$("#18")[0];4 d=c.1m.B;d.1X();d.1Y();d.r.t=b;3.x(a)}s 6(3.H.19){3.1n=E;8.20(a);4 e=5(){3.1n=J};N.1G(e,2y);3.x(a);r.t=b}s{3.x(a)}}});',62,159,'|||jQuery|var|function|if|galleria|this|attr||||||||||||||||||location|else|hash|addClass|width||historyCallback|height|historyCurrentHash|historyBackStack|document|css|active|true|img|siblings|browser|length|false|history|li|display|window|rel|hover|return|is|child|find|none|replace|removeClass|activate|isFirst|insert|clickNext|extend|createElement|append|title|parents|current|undefined|jQuery_history|safari|historyForwardStack|onPageLoad|onImage|for|div|span|caption|src|Math|next|css_test|msie|contentWindow|dontCheck|hasCSS|historyInit|galleria_container|onThumb|galleria_wrapper|each|children|href|new|Image|alt|thumb|noscale|hasClass|ceil|auto|marginTop|marginLeft|setTimeout|click|prepend|remove|error|style|nextSelector|last|first|previousSelector|prev|body|id|1px|empty|historyLoad|iframe|open|close|historyCheck|historyAddHistory|push|URL|fn|in|insertBefore|meta|data|only|load|clone|replaceWith|block|html|class|color|red|Error|loading|image|replaced|text|cursor|pointer|andSelf|setInterval|100|contentDocument|abs|unshift|pop|shift|indexOf|split|200'.split('|'),0,{}))

218
website/naming.html Normal file
View File

@ -0,0 +1,218 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Episode Format Expression</title>
<link rel="stylesheet" href="base.css" type="text/css" />
<link rel="icon" href="favicon.png" />
</head>
<body>
<div class="page">
<div class="header">
<img class="logo" alt="logo" src="images/icon.png" />
<h1>
Episode Format Expressions
<span class="description">User defined episode naming scheme</span>
</h1>
</div>
<div class="content">
<div class="screenshot">
<a href="gallery.html#screenshots/original/dialog.format.png" title="Episode Format Dialog" target="_blank">
<img alt="screenshot" src="screenshots/medium/dialog.format.png" />
</a>
</div>
<div class="section about">
<h2>About</h2>
<p>
You can easily define your own episode naming scheme. It uses Groovy expressions,
which means that you can do pretty much anything, especially if you know a little bit about programming.
You even get media info bindings.
</p>
<h2>Examples</h2>
<p>
<code>{n} - {s}.{e} - {t}</code>
Dark Angel - 3.1 - Labyrinth
</p>
<p>
<code>{n} - {'S'+s.pad(2)}E{e.pad(2)} - {t}</code>Dark Angel - S03E01 - Labyrinth
</p>
<p>
<code>{n} - {s+'x'}{e.pad(2)}</code>Dark Angel - 3x01 - Labyrinth
</p>
<p>
<code>{n.space('.').lower()}.{s}{e.pad(2)}</code>dark.angel.301
</p>
<h2>Advanced Examples</h2>
<p>
<code>{n.space('_')}_-_{e.pad(2)}_[{resolution}_{vc}_{ac}][{crc32}]</code>Juuni_Kokuki_-_01_[1280x720_XviD_MP3][3E16AF40]
</p>
<p>
<code>{n.space('.')}.{'s'+s.pad(2)}e{e.pad(2)}.{t.space('.')}.{vf}.{vc.lower()}.{ac.lower()}</code>Firefly.s01e01.Serenity.720p.x264.ac3
</p>
<p>
<code>{n} [{airdate.format("yyyy.MM.dd")}] {t}</code>The Daily Show [2010.01.05] George Lucas
</p>
<p>
<code>E:/Complete/{n}{'/Season '+s}/{s+'x'}{e.pad(2)} - {t}</code>Rename and move. The directory structure is completely up to you.
</p>
<p>
<code>{n.replaceTrailingBraces()} - {s+'x'}{e.pad(2)} - {t.replaceAll(/[!?.]+$/).replaceAll(/[`´]/, "'").lowerTrail().replacePart(', Part $1')}</code>My personal favorite. Pretty much 1x01, but with lots of cleanup operations.
</p>
<h2>Binding Reference</h2>
<table>
<tr>
<th>Name</th>
<th>Description</th>
<th>Example</th>
</tr>
<tr>
<td>n</td>
<td>series name</td>
<td>Dark Angel</td>
</tr>
<tr>
<td>s</td>
<td>season number</td>
<td>3</td>
</tr>
<tr>
<td>e</td>
<td>episode number</td>
<td>1</td>
</tr>
<tr>
<td>t</td>
<td>episode title</td>
<td>Labyrinth</td>
</tr>
<tr>
<td>airdate</td>
<td>episode airdate</td>
<td>2009-06-01</td>
</tr>
<tr>
<td>absolute</td>
<td>absolute episode number</td>
<td>42</td>
</tr>
<tr>
<td>special</td>
<td>special epsiode number</td>
<td>1</td>
</tr>
<tr>
<td>vc</td>
<td>video codec</td>
<td>x264</td>
</tr>
<tr>
<td>ac</td>
<td>audio codec</td>
<td>ac3</td>
</tr>
<tr>
<td>cf</td>
<td>container format</td>
<td>mkv</td>
</tr>
<tr>
<td>vf</td>
<td>video format</td>
<td>720p</td>
</tr>
<tr>
<td>resolution</td>
<td>video size</td>
<td>1280x720</td>
</tr>
<tr>
<td>crc32</td>
<td>crc32 checksum</td>
<td>3E16AF40</td>
</tr>
<tr>
<td>fn</td>
<td>file name</td>
<td>Serenity</td>
</tr>
<tr>
<td>ext</td>
<td>file extension</td>
<td>mkv</td>
</tr>
<tr>
<td>episode</td>
<td>episode object</td>
<td>&lt;default name&gt;</td>
</tr>
<tr>
<td>file</td>
<td>file object</td>
<td>&lt;file path&gt;</td>
</tr>
<tr>
<td>media</td>
<td>general media info object</td>
<td>&lt;any general media parameter&gt;</td>
</tr>
<tr>
<td>video</td>
<td>video object [stream 0]</td>
<td>&lt;any video parameter&gt;</td>
</tr>
<tr>
<td>audio</td>
<td>audio object [stream 0]</td>
<td>&lt;any audio parameter&gt;</td>
</tr>
<tr>
<td>text</td>
<td>subtitle object [stream 0]</td>
<td>&lt;any subtitle parameter&gt;</td>
</tr>
</table>
<h2>Function Reference</h2>
<p>
<code>pad(length, padding = "0")</code>Pad strings or numbers with given characters ('0' by default).
</p>
<p>
<code>replaceAll(pattern, replacement = "")</code>Replace or remove all occurrences of the pattern.
</p>
<p>
<code>space(replacement)</code>Replace all spaces (e.g. "Doctor Who" -> "Doctor_Who").
</p>
<p>
<code>upperInitial()</code>Upper-case all initials (e.g. "The Day a new Demon was born" -> "The Day A New Demon Was Born").
</p>
<p>
<code>lowerTrail()</code>Lower-case all letters that are not initials (e.g. "Gundam SEED" -> "Gundam Seed").
</p>
<p>
<code>match(pattern)</code>Get a substring matching the given pattern or nothing at all.
</p>
<p>
<code>before(pattern)</code>Get the substring before the given pattern or the original value.
</p>
<p>
<code>after(pattern)</code>Get the substring after the given pattern or the original value.
</p>
<p>
<code>replaceTrailingBraces(replacement = "")</code>Replace trailing parenthesis including any leading whitespace (e.g. "The IT Crowd (UK)" -> "The IT Crowd").
</p>
<p>
<code>replacePart(replacement = "")</code>Replace part identifier (e.g. "Today Is the Day (1)" -> "Today Is the Day, Part 1").
</p>
</div>
<div class="footer" style="margin-top: 100px">
<div id="sflogo">
<a href="http://sourceforge.net/projects/filebot">
<img src="http://sflogo.sourceforge.net/sflogo.php?group_id=202747&amp;type=1" width="88" height="31" border="0" alt="SourceForge.net Logo" />
</a>
</div>
Hosted on <a href="http://sourceforge.net">sourceforge.net</a>
| Creative Commons License: Attribution-NonCommercial-ShareAlike. &copy; 2011
</div>
</div>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB