Skip to content

Commit 9325a7b

Browse files
committed
Added SubSelctor
1 parent 804c5bf commit 9325a7b

17 files changed

+407
-88
lines changed

channels/furk.ch

+10-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version=0.35
1+
version=0.37
22

33
scriptdef furkSubs {
44
release='1
@@ -83,6 +83,13 @@ scriptdef furkUploadUrl {
8383
}
8484
8585
macrodef furkMacro {
86+
folder {
87+
type=exec
88+
name=Delete
89+
matcher=id: '([^']+)'
90+
order=url
91+
url=http://api.furk.net/api/file/unlink?id=
92+
}
8693
folder {
8794
# <a class="button-large button-play" href="http://icd0q6s14tvhto8tuv82gg9ttb9j0t3ds40r71g.gcdn.biz/pls/JM56JAwhydBTrZo2Kw7FQCJxxfFEEjR9J2gZKiT7myqYD6g42PI7bMWCx49sSKKOyZC5kFkwQVDcckU3yP4SryQcf6eNKqam_CRwEXATzEA/Harry%20Potter%20and%20the%20Deathly%20Hallows%20Part%202%202011%20TS%20UnKnOwN.xspf">Play</a><br />
8895
matcher=a class=\"button-large button-play\" href=\"([^\"]+)\">(Play)<
@@ -91,14 +98,13 @@ macrodef furkMacro {
9198
media {
9299
matcher=<title>([^<]+)</title>\s+<location>([^<]+)</location>
93100
order=name,url
94-
subtitle=swesub,s4u
101+
subtitle=swesub,s4u,ut.se
95102
#,subscene
96103
prop=name_index=0
97104
}
98105
}
99106
}
100107
101-
102108
macrodef furkFolder {
103109
folder {
104110
matcher=a href=\"(/df/[^\"]+)\">([^<]+)<
@@ -109,6 +115,7 @@ macrodef furkFolder {
109115
# <a class="playlist-item" href="http://ie9hajrspg5sg9mgqs4s1tf9nb9j0t3ds40r71g.gcdn.biz/d/R/KNoWaBGevj73PXNXuxaZiISdFFw__hnNo159OhQLI5epxWrSyuW_X1oi88NmdnIZ/01_Enter_Sandman.mp3" class="first" title="Metallica - Metallica (1991)/Metallica - Metallica/01 Enter Sandman.mp3">Metallica - Metallica (1991)/Metallica - Metallica/01 Enter Sandman.mp3</a>
110116
matcher=a class=\"playlist-item\" href=\"([^\"]+)\" .*?title=\"([^\"]+)\"
111117
order=url,name
118+
subtitle=swesub,s4u,ut.se
112119
}
113120
}
114121
}

channels/kanal5.ch

+21-7
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,36 @@
1-
version=0.11
1+
version=0.20
22

33
channel Kanal5Play {
44
img=http://www.kanal5play.se/themes/kanal5/images/logo.png
5+
var {
6+
disp_name=Bitrate
7+
var_name=br
8+
values=450,900,250
9+
suffix=Kbps
10+
}
511
folder {
612
name=A-Z
713
type=ATZ
814
url=http://www.kanal5play.se/program
915
folder {
10-
matcher=a title=\"[^\"]+\" class=\"[^\"]+\"\s+href=\"([^\"]+)\">\s+([^<]+)</a>
16+
matcher=a href=\"(/prog[^\"]+)\"[^>]+>([^<]+)</a>
1117
order=url,name
1218
url=http://www.kanal5play.se
1319
folder {
14-
matcher=a href=\"(/program[^\"]+)\" title=\"([^\"]+)\">\s+<img src=\"([^\"]+)\"
15-
order=url,name,thumb
20+
# Seasons
21+
matcher=class=\"season-header\">([^<]+)</h2>\s*[^>]+>\s*<a href=\"([^\"]+)\" class=\"ajax sbs-button sbs-button-list\">
22+
order=name,url
1623
url=http://www.kanal5play.se
17-
media {
18-
escript=get_flash_videos.bat
19-
prop=script.no_format
24+
folder {
25+
#<h4 class="title"><a href="/program/223047/video/280395" class="ajax">Storslagen final hägrar i 100 höjdare</a></h4>
26+
matcher=/video/([^\"]+)\"[^>]+>([^<]+)</a></h4>
27+
order=url,name
28+
url=http://www.kanal5play.se/api/getVideo?format=FLASH&videoId=
29+
media {
30+
matcher=\"bitrate\":@#br@#000,\"source\":\"([^\"]+)\",\"drmProtected\":false}],\"streamBaseUrl\":\"([^\"]+)\"
31+
order=playpath,url
32+
put=swfVfy=http://www.kanal5play.se/flash/StandardPlayer.swf
33+
}
2034
}
2135
}
2236
}

channels/rtmpgui.ch

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version=0.11
1+
version=0.12
22

33
channel RTMPGui {
44
folder {
@@ -20,7 +20,8 @@ channel RTMPGui {
2020
order=name,swfUrl,url,pageUrl,playpath,app
2121
}
2222
media {
23-
matcher=<title><!\[CDATA\[([^\]]+)\]\]></title>\s*.*?\s*<swfUrl><!\[CDATA\[([^\]]+)\]\]></swfUrl>\s*<link><!\[CDATA\[([^\]]+)\]\]></link>\s*<pageUrl><!\[CDATA\[([^\]]+)\]\]></pageUrl>\s*<playpath><!\[CDATA\[([^\]]+)\]\]></playpath>\s*.*?\s*<advanced><!\[CDATA\[-v -a ([^\]]+)\]\]></advanced>
23+
#matcher=<title><!\[CDATA\[([^\]]+)\]\]></title>\s*.*?\s*<swfUrl><!\[CDATA\[([^\]]+)\]\]></swfUrl>\s*<link><!\[CDATA\[([^\]]+)\]\]></link>\s*<pageUrl><!\[CDATA\[([^\]]+)\]\]></pageUrl>\s*<playpath><!\[CDATA\[([^\]]+)\]\]></playpath>\s*.*?\s*<advanced><!\[CDATA\[-v -a ([^\]]+)\]\]></advanced>
24+
matcher=<title><!\[CDATA\[([^>]+)\]\]></title>\s*.*?\s*<swfUrl><!\[CDATA\[([^>]+)\]\]></swfUrl>\s*<link><!\[CDATA\[([^>]+)\]\]></link>\s*<pageUrl><!\[CDATA\[([^>]+)\]\]></pageUrl>.*\s<playpath><!\[CDATA\[([^>]+)></playpath>.*\s*.*\s*.*<advanced><!\[CDATA\[-v -a ([^>]+)\]\]></advanced>
2425
order=name,swfUrl,url,pageUrl,playpath,app
2526
prop=live
2627
}

channels/subtitles.ch

+35-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version=0.56
1+
version=0.57
22

33
###########################
44
## s4u
@@ -43,11 +43,14 @@ subdef s4u {
4343
#Http://api.s4u.se/ Version / ApiKey / xml | json | serialize / movie | serie | all / imdb | tmdb | tvdb | title | rls | fname / SearchString /
4444
url=http://api.s4u.se/Beta/LL3ift66Sddwo1e/xml/
4545
# <div class="DL_Box"> <a href="dl.php?cat=film&amp;dl=9062">
46-
matcher=<download_zip>([^<]+)</download_zip>
47-
best_match=1
46+
#matcher=<download_zip>([^<]+)</download_zip>
47+
# best_match=1
48+
matcher=.*
4849
name_script=s4uName
4950
lang=swe
50-
prop=zip_force
51+
prop=zip_force,matcher_dotall
52+
select=<file_name>([^<]+)</file_name>.*?<download_zip>([^<]+)</download_zip>
53+
select_order=name,url
5154
}
5255
5356
###################################
@@ -343,4 +346,32 @@ subdef swesub {
343346
#<td class="smalltext border"> <a href="/download/28828/" rel="nofollow" class="ssg">Game of Thrones Season 1 BRRip XvidHD 720p-NPW (10 cd)</a><br/>
344347
select=<a href=\"(/download[^\"]+)\"[^>]+>([^<]+)</a>
345348
select_order=url,name
349+
}
350+
351+
############################################################
352+
## undertexter.se
353+
############################################################
354+
355+
scriptdef utName {
356+
url='?p=soek&add=arkiv&submit=S%F6k&select2=&str=
357+
escape s_url
358+
concat url s_url
359+
play
360+
}
361+
362+
scriptdef ut302 {
363+
s_action='geturl
364+
scrape
365+
url=v1
366+
play
367+
}
368+
369+
subdef ut.se {
370+
url=http://www.undertexter.se/
371+
name_script=utName
372+
lang=swe
373+
script=ut302
374+
select=title=\"[^\"]+" alt=\"[^\"]+\" href=\"(http://www.undertexter.se/laddatext[^\"]+)\">.*?Nedladdningar[^<]+<br>.*?<br>\s*([^<]+)</td>
375+
select_order=url,name
376+
prop=matcher_dotall
346377
}

channels/swetv.ch

+5-6
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
version=0.11
1+
version=0.12
22

33
macrodef sweswitch {
44
switch {
5-
matcher=<a href=\"magnet:[^=]+=urn:btih:([^&]+)&dn=([^&]+)&tr
5+
matcher=href=\"magnet:[^=]+=urn:btih:([^&]+)&amp;dn=([^&]+)&
66
order=url,name
77
name=Furk
88
action=upload
@@ -22,9 +22,8 @@ switch {
2222

2323
macrodef swemacro {
2424
folder {
25-
matcher=<a href=\"(torrents-details[^\"]+)\".*?src=([^>]+)>.*?<b>([^<]+)</b>.*?imdb\.com/title/tt(\d+)
25+
matcher=<a href=\'(http://swesub\.tv/torrents-details[^\']+)\'.*?src=([^ ]+) .*?title=\'([^\']+)\'.*?<b>([^<]+)</b>.*?imdb\.com/title/tt(\d+)
2626
order=url,thumb,name,imdb
27-
url=http://swesub.tv/
2827
prop=movieinfo,matcher_dotall
2928
macro=sweswitch
3029
}
@@ -33,12 +32,12 @@ folder {
3332
channel Swesub.tv {
3433
folder {
3534
name=TV Serier
36-
url=http://swesub.tv/torrents.php?parent_cat=Tv%20shows
35+
url=http://swesub.tv/torrents.php?parent_cat=Tv-serie
3736
macro=swemacro
3837
}
3938
folder {
4039
name=Filmer
41-
url=http://swesub.tv/torrents.php?parent_cat=Movies
40+
url=http://swesub.tv/torrents.php?parent_cat=Film
4241
macro=swemacro
4342
}
4443
folder {

src/com/sharkhunter/channel/ChannelCfg.java

+25
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ public class ChannelCfg {
5252
private boolean allPlay;
5353
private String proxyDNS;
5454
private int proxyDNSMode;
55+
private boolean longSaveName;
56+
private boolean oldSub;
5557

5658
public ChannelCfg(Channels top) {
5759
chPath=null;
@@ -73,6 +75,8 @@ public ChannelCfg(Channels top) {
7375
allPlay=true;
7476
proxyDNS=null;
7577
proxyDNSMode=PROXY_DNS_NONE;
78+
longSaveName=false;
79+
oldSub=false;
7680
}
7781

7882
///////////////////////////////////
@@ -141,6 +145,10 @@ public void setFavorite(boolean b) {
141145
favorite=b;
142146
}
143147

148+
public void setLongSvaeName(boolean b) {
149+
longSaveName=b;
150+
}
151+
144152
////////////////////////////////////////
145153
// Get methods
146154
////////////////////////////////////////
@@ -237,6 +245,14 @@ public String proxyDNS() {
237245
return proxyDNS;
238246
}
239247

248+
public boolean longSaveName() {
249+
return longSaveName;
250+
}
251+
252+
public boolean oldSub() {
253+
return oldSub;
254+
}
255+
240256
////////////////////////////////////////
241257
// Misc. methods
242258
////////////////////////////////////////
@@ -278,6 +294,9 @@ public void init() {
278294
String nul=(String)PMS.getConfiguration().getCustomProperty("channels.navix_upload");
279295
String ap=(String)PMS.getConfiguration().getCustomProperty("channels.all_play");
280296
String pdns=(String)PMS.getConfiguration().getCustomProperty("channels.proxy_dns");
297+
String lsn=(String)PMS.getConfiguration().getCustomProperty("channels.long_savename");
298+
String os=(String)PMS.getConfiguration().getCustomProperty("channels.old_sub");
299+
281300
if(rtmpMode!=null) {
282301
if(rtmpMode.trim().equalsIgnoreCase("1"))
283302
Channels.rtmpMethod(Channels.RTMP_MAGIC_TOKEN);
@@ -356,6 +375,10 @@ public void init() {
356375
if(tmp.length>1)
357376
navixUploadList2=tmp[1];
358377
}
378+
if(!ChannelUtil.empty(lsn)&&lsn.equalsIgnoreCase("true"))
379+
longSaveName=true;
380+
if(!ChannelUtil.empty(os)&&os.equalsIgnoreCase("true"))
381+
oldSub=true;
359382
}
360383

361384
private void configPath(String key,String val) {
@@ -390,6 +413,8 @@ public void commit() {
390413
PMS.getConfiguration().setCustomProperty("channels.subtitles",String.valueOf(Channels.doSubs()));
391414
PMS.getConfiguration().setCustomProperty("channels.group_folder",String.valueOf(Channels.useGroupFolder()));
392415
PMS.getConfiguration().setCustomProperty("channels.favorite",String.valueOf(favorite));
416+
PMS.getConfiguration().setCustomProperty("channels.long_savename",String.valueOf(longSaveName));
417+
PMS.getConfiguration().setCustomProperty("channels.oldSub",String.valueOf(oldSub));
393418
if(!ChannelUtil.empty(navixUploadList))
394419
PMS.getConfiguration().setCustomProperty("channels.navix_upload",
395420
ChannelUtil.append(navixUploadList,",",navixUploadList2));

src/com/sharkhunter/channel/ChannelFolder.java

+30-8
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ public class ChannelFolder implements ChannelProps, SearchObj{
3535
public static final int TYPE_NAVIX_SEARCH=8;
3636
public static final int TYPE_ACTION=9;
3737
public static final int TYPE_REMATCH=10;
38+
public static final int TYPE_EXEC=11;
3839

3940
public boolean Ok;
4041

@@ -359,6 +360,8 @@ private int parseType(String t) {
359360
return ChannelFolder.TYPE_ACTION;
360361
if(t.compareToIgnoreCase("rematch")==0)
361362
return ChannelFolder.TYPE_REMATCH;
363+
if(t.compareToIgnoreCase("exec")==0)
364+
return ChannelFolder.TYPE_EXEC;
362365
return ChannelFolder.TYPE_NORMAL;
363366
}
364367

@@ -550,6 +553,8 @@ public void match(DLNAResource res,ChannelFilter filter,String urlEnd,
550553
page="";
551554
}
552555
parent.debug("page "+page);
556+
if(type==ChannelFolder.TYPE_EXEC) // execfolders are done
557+
return;
553558
if(ChannelUtil.empty(page)) {
554559
if(cache&&oldCache) { // use the old cache no matter what
555560
urlobj=new URL(cFile.toURI().toURL().toString().replaceAll(" ", "%20"));
@@ -630,6 +635,7 @@ else if(oldCache)
630635
continue;
631636
}
632637
m.startMatch(page);
638+
parent.debug("media matching using "+m.getRegexp().pattern());
633639
while(m.match()) {
634640
//Channels.debug("allplay "+allPlay+" cfg "+Channels.cfg().allPlay());
635641
if(allPlay==null&&Channels.cfg().allPlay()) {
@@ -641,7 +647,6 @@ else if(oldCache)
641647
}
642648
}
643649
String someName=m.getMatch("name",false);
644-
parent.debug("media matching using "+m.getRegexp().pattern()+" name "+someName);
645650
if(Channels.isIllegal(someName, ChannelIllegal.TYPE_NAME))
646651
continue;
647652
if(filter!=null&&!filter.filter(someName))
@@ -811,8 +816,6 @@ else if(oldCache)
811816
boolean ignoreMatch = ChannelUtil.getProperty(prop, "ignore_match");
812817
while(m.match()) {
813818
String someName=m.getMatch("name",false);
814-
if(Channels.isIllegal(someName, ChannelIllegal.TYPE_NAME))
815-
continue;
816819
if(filter!=null&&!filter.filter(someName))
817820
continue;
818821
String fUrl=m.getMatch("url",true);
@@ -832,17 +835,21 @@ else if(oldCache)
832835
cf.thumb_script="imdbThumb";
833836
}
834837
else {
835-
//Channels.debug("thumb1 "+thumb);
836838
thumb=ChannelUtil.getThumb(thumb, pThumb, parent);
837-
//Channels.debug("thumb2 "+thumb);
838839

839840
}
840841
parent.debug("matching "+someName+" url "+fUrl+" thumb "+thumb+" group "+group+" imdb "+imdbId);
841-
if(ChannelUtil.empty(someName))
842-
someName=nName;
843-
//parent.debug("cf.name "+cf.name+" ignore "+ignoreMatch);
844842
if(ignoreMatch)
843+
someName=cf.name;
844+
if(ChannelUtil.empty(someName)) {
845+
if(ChannelUtil.empty(cf.name))
846+
someName=nName;
847+
else
845848
someName=cf.name;
849+
}
850+
if(Channels.isIllegal(someName, ChannelIllegal.TYPE_NAME))
851+
continue;
852+
//parent.debug("cf.name "+cf.name+" ignore "+ignoreMatch);
846853
if(ChannelUtil.getProperty(cf.prop, "prepend_parenturl"))
847854
fUrl=ChannelUtil.concatURL(realUrl,fUrl);
848855
fUrl=ChannelScriptMgr.runScript(post_script, fUrl, parent,page);
@@ -877,6 +884,21 @@ else if(oldCache)
877884
}
878885
if(cf.type==ChannelFolder.TYPE_EMPTY)
879886
cf.match(res,null,fUrl,thumb,someName,imdbId);
887+
else if(cf.type==ChannelFolder.TYPE_EXEC) {
888+
final String vvaUrl=fUrl;
889+
final ChannelFolder fcf=cf;
890+
final DLNAResource myRes=res;
891+
res.addChild(new VirtualVideoAction(someName,true) {
892+
public boolean enable() {
893+
try {
894+
fcf.match(myRes,null,vvaUrl,null,null,null);
895+
} catch (MalformedURLException e) {
896+
Channels.debug("bad match for exec folder "+e);
897+
}
898+
return true;
899+
}
900+
});
901+
}
880902
else {
881903
Channels.debug("add "+someName+" furl "+fUrl);
882904
ChannelPMSFolder cpf=new ChannelPMSFolder(cf,someName,null,fUrl,thumb);

0 commit comments

Comments
 (0)