import java.text.SimpleDateFormat import org.serviio.library.metadata.* import org.serviio.library.online.* import org.serviio.util.* /** * Content URL extractor plugin for vplay.ro * * @author Cristian Serban * @date 7 April 2012 * */ class Vplay extends WebResourceUrlExtractor { final VALID_FEED_URL = '^http(s)*://vplay.ro/c/.*$' String getExtractorName() { return 'vplay' } boolean extractorMatches(URL feedUrl) { return feedUrl ==~ VALID_FEED_URL } WebResourceContainer extractItems(URL resourceUrl, int maxItems) { log("extractItems: "+resourceUrl.toString() ) // compute domain URL String rootURL=resourceUrl.toString() if (rootURL.endsWith("/")) rootURL=rootURL.substring(0,rootURL.length()-1) rootURL=rootURL.substring(0,rootURL.lastIndexOf("/")+1) rootURL="http://vplay.ro" String UA=getFFmpegUserAgent() // ensure logged in openURL(new URL("http://192.168.1.203:81/vplaylogin.php"),UA) // this will hold all available episodes List Episodes = [] println "getting movie page " + resourceUrl.toString() String moviepage= openURL(resourceUrl,UA,["PHPSESSID":"hocuspocus"]) // test logged in if (moviepage.indexOf("button type=\"submit\" name=\"\" value=\"Login\"")>0) { println "YOU NEED TO LOGIN FIRST!!!!!!" return } // get thumb String movie_title=getInBetween(moviepage,"","") // movie_title=movie_title.substring(0,movie_title.indexOf("<")) // println "movie title "+ movie_title moviepage=getInBetween(moviepage,"") // println moviepage // println seasons int pos=moviepage.lastIndexOf("href="); for (int i=0; pos>0;i++) { def season_href=new URL(rootURL+moviepage.substring(pos+6,moviepage.indexOf("\"",pos+6))) println "season "+ season_href pos=moviepage.lastIndexOf("href=",pos-1); // get season episodes String seasonpage=openURL(season_href,UA,["PHPSESSID":"hocuspocus"]) //trim seasonpage=getInBetween(seasonpage,"
","") int eppos=seasonpage.lastIndexOf("href=") for (;eppos>0;) { def ep_href=seasonpage.substring(eppos+6,seasonpage.indexOf("\"",eppos+6)) ep_href=new URL(rootURL+ep_href) println "ep_href: " + ep_href String ep_title =seasonpage.substring(eppos+31,seasonpage.indexOf("\"",eppos+31)) println "ep_title: "+ep_title int thu_index=seasonpage.indexOf("url(",eppos)+4 String ep_thumb=seasonpage.substring(thu_index,seasonpage.indexOf(")",thu_index)) println "ep_thumb: "+ ep_thumb String ep_streamUrl=getMovieRealURL(ep_href) //println ep_streamUrl //return WebResourceItem item = new WebResourceItem(title: ep_title, additionalInfo: ['WebResourceItemThumbnailUrl': ep_thumb, 'WebResourceItemUrl_LOW' : ep_streamUrl, 'WebResourceItemUrl_MEDIUM' : ep_streamUrl, 'WebResourceItemUrl_HIGH' : ep_streamUrl, 'WebResourceItemInfoUrl' : ep_streamUrl]) Episodes <>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>processing url for stream " +videoWeburl) //def streamUrl=getMovieRealURL(new URL(videoWeburl)) def streamUrl=videoWeburl return new ContentURLContainer(fileType: MediaFileType.VIDEO, contentUrl: streamUrl, thumbnailUrl: item.getAdditionalInfo()['WebResourceItemThumbnailUrl'],expiresImmediately: false, cacheKey:videoWeburl,live:false) } static void main(args) { def TestUrl = new URL("http://vplay.ro/c/g59g2vrk/") Vplay extractor = new Vplay() println "PluginName : " + extractor.getExtractorName(); println "TestMatch : " + extractor.extractorMatches(TestUrl); WebResourceContainer container = extractor.extractItems(TestUrl, 20); } }