* include omdb dump in movie index
* allow foreach for AssociativeScriptObjects * added sysenv script used for printing out system properties and environment variables
This commit is contained in:
parent
5f9dd965de
commit
ee6330a10c
|
@ -71,15 +71,22 @@ imdb_ids = new HashSet(imdb.collect{ it[0] })
|
||||||
|
|
||||||
// BUILD movies.txt.gz
|
// BUILD movies.txt.gz
|
||||||
def osdb_tsv = new URL("http://www.opensubtitles.org/addons/export_movie.php")
|
def osdb_tsv = new URL("http://www.opensubtitles.org/addons/export_movie.php")
|
||||||
def osdb = []
|
def osdb = new TreeSet({ a, b -> a[0].compareTo(b[0]) } as Comparator)
|
||||||
osdb_tsv.getText('UTF-8').eachLine{
|
osdb_tsv.getText('UTF-8').eachLine{
|
||||||
def line = it.split(/\t/)*.replaceAll(/\s+/, ' ')*.trim()
|
def line = it.split(/\t/)*.replaceAll(/\s+/, ' ')*.trim()
|
||||||
if (line.size() == 4 && line[0] =~ /\d+/) {
|
if (line.size() == 4 && line[0] =~ /\d+/) {
|
||||||
osdb << [line[1].toInteger(), line[2], line[3].toInteger()]
|
osdb << [line[1].toInteger(), line[2], line[3].toInteger()]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
osdb = osdb.findAll{ it[0] <= 9999999 && it[2] >= 1930 && it[1] =~ /^[A-Z0-9]/ && it[1] =~ /[\p{Alpha}]{3}/ }.collect{ [it[0].pad(7), it[1], it[2]] }
|
new File('omdb.txt').eachLine{
|
||||||
|
def line = it.split(/\t/)
|
||||||
|
if (line.length > 11 && line[5] =~ /h/ && line[3].toInteger() >= 1970 && (tryQuietly{ line[11].toFloat() } ?: 0) > 1 && (tryQuietly{ line[12].toInteger() } ?: 0) >= 10) {
|
||||||
|
line = line*.replaceAll(/\s+/, ' ')*.trim()
|
||||||
|
osdb << [line[0].toInteger(), line[2], line[3].toInteger()]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
osdb = osdb.findAll{ it[0] <= 9999999 && it[2] >= 1930 && it[1] =~ /^[A-Z0-9]/ && it[1] =~ /[\p{Alpha}]{3}/ }.collect{ [it[0].pad(7), it[1], it[2]] }
|
||||||
|
|
||||||
parallel(osdb.collect{ row ->
|
parallel(osdb.collect{ row ->
|
||||||
return {
|
return {
|
||||||
|
|
|
@ -9,13 +9,14 @@ import java.util.AbstractSet;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Map.Entry;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.TreeSet;
|
import java.util.TreeSet;
|
||||||
|
|
||||||
|
|
||||||
public class AssociativeScriptObject extends GroovyObjectSupport {
|
public class AssociativeScriptObject extends GroovyObjectSupport implements Iterable<Entry<Object, Object>> {
|
||||||
|
|
||||||
private final Map<?, ?> properties;
|
private final Map<Object, Object> properties;
|
||||||
|
|
||||||
|
|
||||||
public AssociativeScriptObject(Map<?, ?> properties) {
|
public AssociativeScriptObject(Map<?, ?> properties) {
|
||||||
|
@ -26,8 +27,10 @@ public class AssociativeScriptObject extends GroovyObjectSupport {
|
||||||
/**
|
/**
|
||||||
* Get the property with the given name.
|
* Get the property with the given name.
|
||||||
*
|
*
|
||||||
* @param name the property name
|
* @param name
|
||||||
* @param start the object where the lookup began
|
* the property name
|
||||||
|
* @param start
|
||||||
|
* the object where the lookup began
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Object getProperty(String name) {
|
public Object getProperty(String name) {
|
||||||
|
@ -41,6 +44,12 @@ public class AssociativeScriptObject extends GroovyObjectSupport {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Iterator<Entry<Object, Object>> iterator() {
|
||||||
|
return properties.entrySet().iterator();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
// all the properties in alphabetic order
|
// all the properties in alphabetic order
|
||||||
|
@ -92,7 +101,6 @@ public class AssociativeScriptObject extends GroovyObjectSupport {
|
||||||
public Set<Entry<Object, Object>> entrySet() {
|
public Set<Entry<Object, Object>> entrySet() {
|
||||||
return new AbstractSet<Entry<Object, Object>>() {
|
return new AbstractSet<Entry<Object, Object>>() {
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
@Override
|
@Override
|
||||||
public Iterator<Entry<Object, Object>> iterator() {
|
public Iterator<Entry<Object, Object>> iterator() {
|
||||||
return (Iterator) lookup.values().iterator();
|
return (Iterator) lookup.values().iterator();
|
||||||
|
|
|
@ -114,21 +114,21 @@
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<a href="http://filebot.sourceforge.net"><img class="logo" alt="logo" src="images/icon.png" width="48" height="48" /></a>
|
<a href="http://filebot.sourceforge.net"><img class="logo" alt="logo" src="images/icon.png" width="48" height="48" /></a>
|
||||||
<h1>
|
<h1>
|
||||||
Episode Format Expressions
|
Format Expressions
|
||||||
<span class="description">User defined episode naming scheme</span>
|
<span class="description">User defined episode / movie naming scheme</span>
|
||||||
</h1>
|
</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="screenshot">
|
<div class="screenshot">
|
||||||
<a href="gallery.html#screenshots/original/dialog.format.png" title="Episode Format Dialog" target="_blank">
|
<a href="gallery.html#screenshots/original/dialog.format.png" title="Format Dialog" target="_blank">
|
||||||
<img alt="screenshot" src="screenshots/medium/dialog.format.png" />
|
<img alt="screenshot" src="screenshots/medium/dialog.format.png" />
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="section about">
|
<div class="section about">
|
||||||
<h2>About</h2>
|
<h2>About</h2>
|
||||||
<p>
|
<p>
|
||||||
You can easily define your own episode naming scheme. It uses <a href="http://groovy.codehaus.org">Groovy</a> expressions,
|
You can easily define your own episode and movie naming schemes. It uses <a href="http://groovy.codehaus.org">Groovy</a> expressions,
|
||||||
which means that you can do pretty much anything, especially if you know a little bit about programming.
|
which means that you can do pretty much anything, especially if you know a little bit about programming.
|
||||||
You even get media info bindings. You can find <a href="http://filebot.sourceforge.net/forums/viewtopic.php?f=5&t=2#p51">predefined format expressions</a> for all kinds of scenarios in the forums. Ready for you to just copy & paste.
|
You even get media info bindings. You can find <a href="http://filebot.sourceforge.net/forums/viewtopic.php?f=5&t=2#p51">predefined format expressions</a> for all kinds of scenarios in the forums. Ready for you to just copy & paste.
|
||||||
</p>
|
</p>
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
// filebot -script fn:sysenv
|
||||||
|
|
||||||
|
println '# Java System Properties #'
|
||||||
|
_system.each{
|
||||||
|
println "$it.key: $it.value"
|
||||||
|
}
|
||||||
|
|
||||||
|
println '# Environment Variables #'
|
||||||
|
_environment.each{
|
||||||
|
println "$it.key: $it.value"
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
// filebot -script "fn:sysinfo"
|
// filebot -script fn:sysinfo
|
||||||
|
|
||||||
// FileBot 2.62 (r993)
|
// FileBot 2.62 (r993)
|
||||||
println net.sourceforge.filebot.Settings.applicationIdentifier
|
println net.sourceforge.filebot.Settings.applicationIdentifier
|
||||||
|
|
Loading…
Reference in New Issue