This repository has been archived by the owner. It is now read-only.
Permalink
Browse files

1.5.15

don't require python.path to be set if youtube-dl.path is executable
update list of youtube-dl-compatible sites
workaround for verbose logging
update dependencies
  • Loading branch information...
chocolateboy committed May 30, 2012
1 parent 5a6be97 commit 3c0a23274d454b09b33d8cd39cdc26d58d456a00
View
@@ -1,3 +1,9 @@
+1.5.15 Wed May 30 01:32:33 2012
+ - don't require python.path to be set if youtube-dl.path is executable
+ - update list of youtube-dl-compatible sites
+ - workaround for verbose logging
+ - update dependencies
+
1.5.14 Sun Mar 25 04:05:11 2012
- fix an incompatibility in 1.5.13 that broke support for PMS 1.50.0 and 1.50.1
View
@@ -10,7 +10,7 @@ These instructions assume you have the [latest version](http://www.ps3mediaserve
# Installation <a name="Install"></a>
-* download the [PMSEncoder jar file](https://github.com/downloads/chocolateboy/pmsencoder/pmsencoder-1.5.14.jar) and place it in the PMS `plugins` directory
+* download the [PMSEncoder jar file](https://github.com/downloads/chocolateboy/pmsencoder/pmsencoder-1.5.15.jar) and place it in the PMS `plugins` directory
* shut down PMS; open `PMS.conf` in a text editor; and add `pmsencoder` to the front of the list of engines e.g.
* `engines = pmsencoder,mencoder,tsmuxer,mplayeraudio` &c.
* restart PMS
@@ -20,7 +20,7 @@ These instructions assume you have the [latest version](http://www.ps3mediaserve
To upgrade to a new version of the plugin:
* check the [release notes](https://github.com/chocolateboy/pmsencoder/wiki/Release-Notes) to see if there any breaking changes or other incompatibilities
-* replace the old jar file in the `plugins` directory with the [new version](https://github.com/downloads/chocolateboy/pmsencoder/pmsencoder-1.5.14.jar) and restart PMS
+* replace the old jar file in the `plugins` directory with the [new version](https://github.com/downloads/chocolateboy/pmsencoder/pmsencoder-1.5.15.jar) and restart PMS
## Uninstalling <a name="Uninstall"></a>
@@ -68,7 +68,7 @@ For more details, discussion and troubleshooting tips, see the [wiki](http://wik
# Version <a name="Version"></a>
-1.5.14
+1.5.15
# License <a name="License"></a>
View
@@ -10,7 +10,7 @@ videofeed.Web,The Onion=http://feeds.theonion.com/onionnewsnetwork
# TED
videofeed.Web,TED=http://feeds.feedburner.com/tedtalks_video
-videofeed.WEB,TED=http://feeds.feedburner.com/TedtalksHD
+videofeed.Web,TED=http://feeds.feedburner.com/TedtalksHD
# YouTube: Freddie Wong
videofeed.Web,YouTube=http://gdata.youtube.com/feeds/base/users/freddiew/uploads?alt=rss&v=2&orderby=published
@@ -1,6 +1,6 @@
#!/bin/sh
-curl --silent https://raw.github.com/rg3/youtube-dl/master/youtube-dl \
+curl --silent https://raw.github.com/rg3/youtube-dl/master/youtube_dl/InfoExtractors.py \
| ack "_VALID_URL\s*=\s*r('[^']+')" --output '$1' \
| perl -pe "chomp; s/\$/,\\n/; s{^'(?!\\^)}{'^}; s{\\\\}{\\\\\\\\}g; s{\?P<\w+>}{}g" \
| sort \
View
10 pom.xml
@@ -4,14 +4,14 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.chocolatey.pmsencoder</groupId>
<artifactId>pmsencoder</artifactId>
- <version>1.5.14</version>
+ <version>1.5.15</version>
<name>PMSEncoder</name>
<description>A plugin for PS3 Media Server that adds support for scriptable web video streaming.</description>
<properties>
<groovypp-repo>http://groovypp.artifactoryonline.com/groovypp</groovypp-repo>
<groovypp-version>0.9.0_1.7.10</groovypp-version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <junit-version>4.9</junit-version>
+ <junit-version>4.10</junit-version>
<pms-version>1.52.0</pms-version>
<regexplus-version>2010-04-16</regexplus-version>
</properties>
@@ -26,13 +26,13 @@
<dependency>
<groupId>org.codehaus.groovy.modules.http-builder</groupId>
<artifactId>http-builder</artifactId>
- <version>0.5.1</version>
+ <version>0.5.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
- <version>1.2.16</version>
+ <version>1.2.17</version>
</dependency>
<dependency>
<groupId>mockit</groupId>
@@ -150,7 +150,7 @@
<configuration>
<source>
<!-- http://veithen.blogspot.com/2010/03/improve-your-maven-builds-with-groovy.html -->
- <!-- This generates a manifest of scripts for use by Matcher.loadDefaultsScripts -->
+ <!-- This generates a manifest of scripts for use by Matcher.loadDefaultScripts -->
<![CDATA[
def resources = 'src/main/resources'
def manifest = new File(project.basedir, "$resources/lib.txt")
@@ -23,8 +23,11 @@ import no.geosoft.cc.io.FileMonitor
import org.apache.log4j.xml.DOMConfigurator
+import ch.qos.logback.classic.Logger
+import org.slf4j.LoggerFactory
+
public class Plugin implements ExternalListener, FileListener {
- private static final String VERSION = '1.5.14'
+ private static final String VERSION = '1.5.15'
private static final String DEFAULT_SCRIPT_DIRECTORY = 'pmsencoder'
private static final String LOG_CONFIG = 'pmsencoder.log.config'
private static final String LOG_DIRECTORY = 'pmsencoder.log.directory'
@@ -139,6 +142,12 @@ public class Plugin implements ExternalListener, FileListener {
loadDefaultLogConfig()
}
+ // FIXME hack to shut httpclient and htmlunit the hell up
+ Logger logger = (Logger) LoggerFactory.getLogger("org.apache.http");
+ logger.setLevel(ch.qos.logback.classic.Level.WARN)
+ logger = (Logger) LoggerFactory.getLogger("com.gargoylesoftware.htmlunit");
+ logger.setLevel(ch.qos.logback.classic.Level.ERROR)
+
// make sure we have a matcher before we create the transcoding engine
createMatcher()
@@ -30,17 +30,24 @@ check {
'^gvsearch(\\d+|all)?:[\\s\\S]+',
'^(?:http://)?(?:[a-z0-9]+\\.)?photobucket\\.com/.*[\\?\\&]current=(.*\\.flv)',
'^(?:http://)?(?:[a-z]+\\.)?video\\.yahoo\\.com/(?:watch|network)/([0-9]+)(?:/|\\?v=)([0-9]+)(?:[#\\?].*)?',
+ '^(?:https?://)?openclassroom.stanford.edu(/?|(/MainFolder/(?:HomePage|CoursePage|VideoPage)\\.php([?]course=([^&]+)(&video=([^&]+))?(&.*)?)?))$',
'^(?:https?://)?(?:\\w+\\.)?blip\\.tv(/.+)$',
- '^(?:https?://)?(?:\\w+\\.)?facebook.com/video/video.php\\?(?:.*?)v=(\\d+)(?:.*)',
- '^(https?://)?(www\\.)?escapistmagazine.com/videos/view/([^/]+)/([^/?]+)[/?]?.*$',
+ '^(?:https?://)?(?:\\w+\\.)?facebook\\.com/(?:video/video|photo)\\.php\\?(?:.*?)v=(\\d+)(?:.*)',
+ '^(?:https?://)?(?:www\\.)?collegehumor\\.com/video/([0-9]+)/(.*)$',
+ '^(https?://)?(www\\.)?escapistmagazine\\.com/videos/view/([^/]+)/([^/?]+)[/?]?.*$',
+ '^(?:https?://)?(?:www\\.)?infoq\\.com/[^/]+/[^/]+$',
+ '^(?:https?://)?(?:www\\.)?mixcloud\\.com/([\\w\\d-]+)/([\\w\\d-]+)',
+ '^(https?://)?(?:www\\.)?mtv\\.com/videos/[^/]+/([0-9]+)/[^/]+$',
'^(?:https?://)?(?:(?:www|player).)?vimeo\\.com/(?:groups/[^/]+/)?(?:videos?/)?([0-9]+)',
+ '^(?:https?://)?(?:www\\.)?soundcloud\\.com/([\\w\\d-]+)/([\\w\\d-]+)',
+ '^(?:https?://)?(?:www\\.)?xvideos\\.com/video([0-9]+)(?:.*)',
+ '^(?:https?://)?(?:\\w+\\.)?youtube\\.com/(?:(?:course|view_play_list|my_playlists|artist|playlist)\\?.*?(p|a|list)=|user/.*?/user/|p/|user/.*?#[pg]/c/)(?:PL)?([0-9A-Za-z-_]+)(?:/.*?/([0-9A-Za-z_-]+))?.*',
+ '^(?:(?:(?:https?://)?(?:\\w+\\.)?youtube\\.com/user/)|ytuser:)([A-Za-z0-9_-]+)',
'^((?:https?://)?(?:youtu\\.be/|(?:\\w+\\.)?youtube(?:-nocookie)?\\.com/)(?!view_play_list|my_playlists|artist|playlist)(?:(?:(?:v|embed|e)/)|(?:(?:watch(?:_popup)?(?:\\.php)?)?(?:\\?|#!?)(?:.+&)?v=))?)?([0-9A-Za-z_-]+)(?(1).+)?$',
'^(?:http://)?video\\.google\\.(?:com(?:\\.au)?|co\\.(?:uk|jp|kr|cr)|ca|de|es|fr|it|nl|pl)/videoplay\\?docid=([^\\&]+).*',
- '^(?:http://)?(?:\\w+\\.)?depositfiles.com/(?:../(?#locale))?files/(.+)',
+ '^(?:http://)?(?:\\w+\\.)?depositfiles\\.com/(?:../(?#locale))?files/(.+)',
'^(?:http://)?(?:www\\.)?metacafe\\.com/watch/([^/]+)/([^/]+)/.*',
'^(?:http://)?(?:www\\.)?myvideo\\.de/watch/([0-9]+)/([^?/]+).*',
- '^(?:(?:(?:http://)?(?:\\w+\\.)?youtube.com/user/)|ytuser:)([A-Za-z0-9_-]+)',
- '^(?:http://)?(?:\\w+\\.)?youtube.com/(?:(?:view_play_list|my_playlists|artist|playlist)\\?.*?(p|a|list)=|user/.*?/user/|p/|user/.*?#[pg]/c/)([0-9A-Za-z]+)(?:/.*?/([0-9A-Za-z_-]+))?.*',
'^(?i)(?:https?://)?(?:www\\.)?dailymotion\\.[a-z]{2,3}/video/([^_/]+)_([^/]+)',
'^(:(tds|thedailyshow|cr|colbert|colbertnation|colbertreport))|(https?://)?(www\\.)?(thedailyshow|colbertnation)\\.com/full-episodes/(.*)$',
'^ytsearch(\\d+|all)?:[\\s\\S]+',
@@ -50,7 +57,7 @@ check {
action {
// XXX: keep this up-to-date
- $youtube_dl_compatible = '2011.09.18c' // version the regexes were copied from
+ $youtube_dl_compatible = '2012.02.27' // version the regexes were copied from
}
}
@@ -63,18 +70,29 @@ check {
// rather than repeating the regex
profile ('YouTube-DL') {
+ def YOUTUBE_DL_PATH
+
+ if (YOUTUBE_DL) {
+ if ((new File(YOUTUBE_DL)).canExecute()) {
+ YOUTUBE_DL_PATH = YOUTUBE_DL
+ } else if (PYTHON) {
+ YOUTUBE_DL_PATH = "$PYTHON $YOUTUBE_DL"
+ }
+ }
+
pattern {
match 'YouTube-DL Compatible'
- match { PYTHON && YOUTUBE_DL }
+ match { YOUTUBE_DL_PATH }
}
action {
$youtube_dl_enabled = true
$URI = quoteURI($URI)
+
if (YOUTUBE_DL_MAX_QUALITY) {
- $DOWNLOADER = "$PYTHON $YOUTUBE_DL --max-quality $YOUTUBE_DL_MAX_QUALITY --quiet -o $DOWNLOADER_OUT ${$URI}"
+ $DOWNLOADER = "$YOUTUBE_DL_PATH --max-quality $YOUTUBE_DL_MAX_QUALITY --quiet -o $DOWNLOADER_OUT ${$URI}"
} else {
- $DOWNLOADER = "$PYTHON $YOUTUBE_DL --quiet -o $DOWNLOADER_OUT ${$URI}"
+ $DOWNLOADER = "$YOUTUBE_DL_PATH --quiet -o $DOWNLOADER_OUT ${$URI}"
}
}
}
@@ -7,13 +7,24 @@ import net.pms.configuration.PmsConfiguration
import net.pms.PMS
import org.apache.log4j.xml.DOMConfigurator
+import ch.qos.logback.classic.Logger
+import org.slf4j.LoggerFactory
+
// there's no point trying to optimize this while we're still using JUnit:
// http://tinyurl.com/6k6z6dj
abstract class PMSEncoderTestCase extends GroovyTestCase {
protected Matcher matcher
private PMS pms
private URL defaultScript
+ static {
+ // FIXME hack to shut httpclient and htmlunit the hell up
+ Logger logger = (Logger) LoggerFactory.getLogger("org.apache.http");
+ logger.setLevel(ch.qos.logback.classic.Level.WARN)
+ logger = (Logger) LoggerFactory.getLogger("com.gargoylesoftware.htmlunit");
+ logger.setLevel(ch.qos.logback.classic.Level.ERROR)
+ }
+
void setUp() {
def log4jConfig = this.getClass().getResource('/log4j_test.xml')
DOMConfigurator.configure(log4jConfig)

0 comments on commit 3c0a232

Please sign in to comment.