From 18456f686498f54556969c0ab48a02848bff7c4b Mon Sep 17 00:00:00 2001 From: Reinhard Pointner Date: Sat, 13 Jun 2009 09:53:48 +0000 Subject: [PATCH] + subtitle list displays found subtitles and download phase + download and extract selected subtitle packages (not displayed yet though) * SubtitleDescriptor provides download function (Callable) * updated sublight webservice * lazy-initialize SubtitlesAPI2Soap (Sublight) because loading all the jax-ws classes will can take more than 1s (while blocking EDT) * better sublight subtitle display names * added archive files to media.types * added icons for subtitle list * refactoring --- fw/package.fetch.png | Bin 0 -> 23829 bytes lib/junrar-custom.jar | Bin 102068 -> 102102 bytes lib/sublight-ws.jar | Bin 120716 -> 124293 bytes .../sourceforge/filebot/FileBotUtilities.java | 22 ++- source/net/sourceforge/filebot/Main.java | 7 +- .../net/sourceforge/filebot/MediaTypes.java | 9 +- .../filebot/format/ExpressionFormat.java | 14 +- source/net/sourceforge/filebot/media.types | 28 ++- .../filebot/resources/bullet.green.png | Bin 0 -> 295 bytes .../filebot/resources/bullet.yellow.png | Bin 0 -> 287 bytes .../filebot/resources/package.extract.png | Bin 0 -> 781 bytes .../filebot/resources/package.fetch.png | Bin 0 -> 759 bytes .../similarity/SeasonEpisodeMatcher.java | 14 +- .../sourceforge/filebot/ui/SelectDialog.java | 30 ++-- .../ui/panel/analyze/FileTreePanel.java | 16 +- .../filebot/ui/panel/list/ListPanel.java | 7 +- .../filebot/ui/panel/rename/History.java | 28 ++- .../filebot/ui/panel/subtitle/Archive.java | 3 +- .../ui/panel/subtitle/ArchiveType.java | 17 +- .../filebot/ui/panel/subtitle/RarArchive.java | 7 +- .../subtitle/SubtitleListCellRenderer.java | 37 ++-- .../panel/subtitle/SubtitleListComponent.java | 68 ++++++-- .../ui/panel/subtitle/SubtitlePackage.java | 159 ++++++++++++++++-- .../ui/panel/subtitle/SubtitlePanel.java | 6 +- .../filebot/ui/panel/subtitle/ZipArchive.java | 17 +- .../filebot/web/MovieDescriptor.java | 10 +- .../web/OpenSubtitlesSubtitleClient.java | 4 +- .../web/OpenSubtitlesSubtitleDescriptor.java | 23 +-- .../sourceforge/filebot/web/SearchResult.java | 5 +- .../filebot/web/SublightSubtitleClient.java | 68 +++++--- .../web/SublightSubtitleDescriptor.java | 66 ++++++-- .../web/SubsceneSubtitleDescriptor.java | 22 ++- .../filebot/web/SubtitleDescriptor.java | 11 +- .../web/SubtitleSourceSubtitleDescriptor.java | 16 +- .../sourceforge/filebot/web/WebRequest.java | 42 +++++ .../tuned/ByteBufferOutputStream.java | 44 +++-- .../net/sourceforge/tuned/FileUtilities.java | 14 +- .../net/sourceforge/tuned/XPathUtilities.java | 4 +- .../sourceforge/tuned/ui/TunedUtilities.java | 59 +------ .../web/SublightSubtitleClientTest.java | 6 +- .../sourceforge/tuned/PreferencesMapTest.java | 18 +- 41 files changed, 608 insertions(+), 293 deletions(-) create mode 100644 fw/package.fetch.png create mode 100644 source/net/sourceforge/filebot/resources/bullet.green.png create mode 100644 source/net/sourceforge/filebot/resources/bullet.yellow.png create mode 100644 source/net/sourceforge/filebot/resources/package.extract.png create mode 100644 source/net/sourceforge/filebot/resources/package.fetch.png diff --git a/fw/package.fetch.png b/fw/package.fetch.png new file mode 100644 index 0000000000000000000000000000000000000000..77f7aa27fb56bdd06cee67c244baf31dcff6e374 GIT binary patch literal 23829 zcmb@u2UHYKvp5POqJp3V0ZAevB1u4USOm#QvPe{NmK>K=k)UJ&$w`vroWqI&OJ4Gl zm%M}}FD$!k`1AYj{qBA5p7YN6pL<@Pp6Tl8uAb`Z?&_+knfdx!NA=F_2e(N`Nbabs zz0$u*@BVY#ym58rI3>QjO0Ih=svF+C3L!UbqptF|KB$>`laP=m{Bw|UqW41osq3Ts z#>c?J-pBu)mmP`rI~y+#H#=LWcMnyZyzKlvyj;8=N;W!91YF@ze(*9j3CP-?w(tsj zNFVWzwp>8q>C6r7+Hz}Ma|apMCzRVYsRwzy^SN3Q4_gB`pzk(zGsA{22!VvVJf3a* z`k{in)xwpT4Ss_Q^gp=!(qzJ0ZVGRlaE2$~+K%6?hN0!RXyv1D&#uV&kMMB;eWd#d zcStDTKRulSk6R>$=uHD4uWbo!yD`j{?j~C}K4A^JQ)v9PSh0k$70$45wr46b+L1snIX<0R^G z=Vn@#q`IT`+CR|56JpIMC?pDkDCL`)+fupQwD+8<&XZ;)Zp=%CusA!c;|r7|>!?*n zSEKTQ6snQ)&<}lcElZLI-J*MDV;rv1e-p)i#qGrcgCyO-0y6t*m9^>oGRD#>YHOHF6t{AX`W-Xp?;|@u?;ox#FgL{c-BQIy z_YAji+xK-m5B@E@FfB-u8b5C)=~r}zwzig8JnXuw54U&~%O4fp-+h%LuKc2+(h(yo zo=mdTVI_krr6K`k>pFWB0U92QJ4a2vRKHSKXS>0LWJkOdAIvUEhR;Z?ug_d7rp#f! zPUo)Wm{IijMK-;oM%Irn#XU}=u0=@?`BNG0`n~n_EBrhEun;X(==&X#zvZRC;jJJ; zQcTg&Qrft>Acox2O?k`xBf@FZtvM6o3DNbDw$yy*c3wnw4BTR67BdXiTtKbUo<@KN_%{j_`^ysNvkM)i`!dSEJ4^i zIp?XKb3(=0Z~7>!RiSn01x8dUkTO22&g0vEz&#@!pBV2x;x zFTioyu+koDFD5POF!g<>VulvMn(@1=XshzyrlO23VjLwj){9m5w_iMITdB&PtlOb_ zko~ei)Y0cg>}cM&(wOYVm@BD``A6UCzX-98z&O9Wq zYAr~95(MP9k~nQezPLstjNGj={T*q0M>#~2>b8ls>U}EZ#YOUSEOQz%gFJLV?U~(k zX0?L8{1?IM-St#<#Ya*SY4!qaX)LV6Zq_ZL8r>bolXr5tOO=a5Xy5=xj_-6Y%w6yB zHP*Xt`}wsB>`oO}jw=82w41R!$Nt#Jbyq{aA4XAK2*UM7Z zz2%+IQkV6qO1J0(qFZc5wwWS!YD9088WlhTic6?0n+HCJJTc4Q5vPo_r+>6D{HEld zZT(;;{cR2XpLXfb8V0E#49zE)RWNmxG&mHuxLpa~VavkIh#T zd`qH?Z+bdUrQG*kgUM6puICH75B$e3NLq~emG#%vy!!aONBI^!t+Ars*R*uA1HU;8 z3To4|&$sjIXMN+F41_v2J$|R6w3OLO;388J;s5ALA#kT&?ik7Y!Zzvly$?T&qFbev z-(Ory^D&UwfZv!`eh@Kotw!%bq58lti+tw5_|1O$5DQz|wIzrx^1S~JXlUuUd4pj7 z6tOU%b2oUG)6-#w`_aK*|CgA6`HoMbCddgT?z%k+`B%p=PgHrUMBdpwxz0|I_4t064;XM#Ms(6mRimzr!( z>1h2=H^>LikZqm%R8Y?(L&>Y3Yv(@EvuE{&5Qd@H?PZ#=cy=vqX@ldCb_5# zeRff#(5DIzmSJ1hn_nzwU_SpbR8unZ^GAaH(`SiKxZ+6Y3YwYMOTzt^BGKPub@``S zwbqGIQ{c4kB3a#TC50`0Pt_lARha6*AGN4lYq67IX}Ko(_f$^(+E`W@upJN`8=7&h?`RgiJ3%D{+U za|_T&!9|hbzij}2PqG-U@RBR%DD$j{;?2INX<19sp#A!7m-_Cs zUc0jv_p?83)86_Y)B2d(-2w{j^$fxvo|=Zqf99wes;_v29^X1ggq>T85Z=InRe_SV zVbQk?nI3RwzI#J$vu*pareZ_Mf}B&6W3x2%t~paxf`k-{zKh;aVe@dWgq$O~!TOd? zop7_EBA<5Su0{n4)f9ZLZOvF52;?Bv+QS zba<{7bJF0gID@kN#xhf~L8)xO>sQ>8#NrtZ3s%%*Iz`FoRz6P|^nKaC@OYFu06Se% zkem3>U-Bh?Wunb!-S=Wi5$%Yn+m~7I;%>~1#5S246;_?6O(v6I_Y+Q%#OxyqqiY8d38E{ik!jQ?a3acC*<|RVQO+IRAy2h-=@?6POB90#!{DB z)kni6mFVujXTEXQ><#oBQZTDM|mD`2xwU1j%QJL zlk@Zk_ho~(cg}nw4I5X>jPeFwrZVd5)}1U?QWY;Twf`aE)Q=cq-M1DLw?$)oUlKPwW<^bDExw6E>owfaIgx3(-tojAflz6i|NW|E+JAW>ld zfxJq!Vf(eBJJXw=8~5(SZHJQ{ewF5_Rh87vph|dR)BD8c*B14s8CQwzWWP+d1)C9G z@pb#>-)z{{C_{zcC$-VbdeH_ywo28S;db=Hv&)4OS_qU+v9hzRw>xxKCm4aL(5Roq zzK#CBo7Q|8MwU`ZaO2|b82J#m+p5f)3?u`eG@gZmntAOmh4xf0{mRJJ5VIN}jhv)i!Qvouj}iqb~U)-b=h7%i^_QJio|obG@K_ z#TD*>pV+Jke`vaAi6a0^}FN~=>mt6EKkjM1kSrBbKfTL9-#=PkB+rVGbk9a2T zR4AhZo(r7k_8_6EmA4Cwi}H-woyBe?cEv~L4cZdbhY2B5Wg^Z-l+JefGh8~AY+Zt9 zTszHq-X~F$s=j>#Q=%v1b$yPee2(eiKhTl_doR+1c64il2xT>tR=XRWnC%S_=~nXW zx-q8_nuFKIvwQv?za!PeMowX7cikbFACN z(v6RSIA6F775jhmn7ts2ad%cJH}=L`U6;GO%M%sxY0C_*TpWOOFIg*|J2^YOP4BMX zbrT;R`@t|@r(|Z)u@}&xc?_*F zJo5$34Z1}RraQK!JA3<;{<&Y3(MMnG-n!aFt|u1M_-#B|X_{%4-L+ItK!(gjV(oS8 z@@ztI@;6@Nw#%XS-+V{uhbNR9!|DLH#8qaC4M!E)F8L`lAe@dNyy^BOYZQ#n+1uiX z5I?h`?X9x}yYBYB)%~#rf_r~!&d-m|#&<3r>3nvhBd$GeG1)bht3j zJ-=+-N`t&%V#(@0i|oHzTb8)C=Ul;gRX*j^p?y7b#XEVMDR^9e}(&Q}uhlRIwatax906u3S z{(W1PApb%mRR@YTPJ4P!&p^C3(XsN;;JAd(X5DZ$>3$TWabZ}B!pwD{_@s~vp+;w` z)dT1wO#7tkVvJwLr@#@?+Q0HfA~tVKBcUuoe@oLCSuTcNvhF)~OztkmJXnyqIR5NI zjN2Oj>Gpzf`TLnGa4CVPsBUw~oply`!1R%WuI2pY_PkQiEoj%w3Jg~wKJm<_p@R9S z#HIM0EyVvFP3T`B5X;^63|apBUN%9)$DUmNj^t;v^)Un36Pu~Fd55VNxUa;*oqSOk znM2plqUR>_W}ycrvjt;w@z)%p*NP~g$P&aDDj!?allhags0&f&71fPRP=T~^*~dNh zJ30CILM^tls@hT2HHs#(h5m^a&WG=zskzSs<4wcBi#_?b?|qs)jCvqqoK%iuzcJce zm{|SNV^nRDrug-$=gP3sv%!uv07UpP3ul!`Vfn0c=3QOgDOT`q&N;_NFhq(6w|M8R z8S!gm%u{lF|C!5&PWFrX7rKAE;$wg(Y#qOILn0}BB1I2GeqlLU-nP{#mBXrzLZEaIm;cL!0SZff|=%3e|_PZ^{@r$(H{I!R(wrP79O;I50gxi2naV|-J{)E1U4>YJ@(&|I3cr=4F)sV(QPZSm}d?>}I+ zoBPiwPtgo&W|m6nX7LY*n3`b=ptiba^{?v|WEV>97Rf(>Uc-0;4J zW~Zm6DlcsS#%9}xiXf;NC^MWOi1N<|i|!u!R)IkerEsJ<=o^nq$6(=IIn7;7lt7E^ zJw+?TaNKp2Z+<1Eo1DL!8^e6tKaCnYyO5g@pOj-_6b-6B77LbPZfoOXbHQ5Lhx2b(B?7_VCRhdyIG-mGGa4|Vozd++B}3s=OAX0l=aCuVu0FWEs{-QB!O z;<8b3B@f`{iNQ9%sdshch0R+F?<4c`3FOy}x$leDp|J(3+@DMeuz#=Jc?9Dco;;Au zD|N}Z0|K^K`9AUEF=e-N@+xHg8**{isrQ1~Mz}9*%_OAGJMWkNnxB0ftI5c)r(^ZV zX9R6v75~U1p?7tHi#y3=&yj@Nt!ZSzC+IqHVz3>WpQA@5xHFCxGz zQNa7=R@{3VdK;1V5q^PT6W3Y})jyhDhdl1}+zI#~*Auoj`@WMr>6Za{8S~N7Bk1oh z0Q`M=EgRSn?NafAd7zGHW#hNWrql88^J^`hTs^U=S^k9l&XJL?@wd)IA84zwI75$w z{v=Ie%1Wk5JQ?N3Gg%WDos$p`FK&y<_ZzW$vLxBbvS4V=)Hy~ugh)mJe>~0Yw#Vn> zP6m=ix-ccLJqUODEFuwsQ!IU70f}~s?yqFdZZ%cox_9pjq`n&y zZ-2NsGzhHB6+!q@#61bteayfa7kJaJh-MigCihPCp+Stv!41B<-XByrw#_~Z=XaIr z@qcbApuurMc#Lv|#+vescK#B#MQ85+VMf2>SoZ(T6?+;u4xl5r+?BWq^iMaF*YjA| z(BzyL_G0;Ht^ShSyVURv7d~Xf{_91+-_R-UMM@n1Nh@eA1H&^LT5$HBtMEw7Bk=M4 zu3i70(z@*3q|r_dOrh$h(@B8coj9%=hpPr%;6yJ}*ld)f6Dp~EB3_=L?pdH4`b`$Q zg8y3pq7}tTWL%hTw@5yvCdFtN5yk1BY6Y*^aML>FoIm`cf|By0uU086spTLTp>_H^ zC;lG!mJ#Ii^Ad3lcew9Q<~Fb^DuzbX(#~T@M|^BvbTLm&HqVSjROj!fOpfgl(!iP9 zyNare(rsho;c=EP*{)0d;^<%`%+!wT}c;}+UVjv=wrj7*o4*~Ll1rw08kV2K{S zv?rCqPq`d_1|{Iste)+pIp&L(uB%`S0wc5fK+1POTE zcYb@VZ0SBp+rsX0j1EoHF;BNuy}j(5!w(Htp-^VkgIhU!T8EeqYs3*$7tI$5vB~z) z==MVr9`o^-FDnQh^P#VedzrEt%b#UHJ+i^n2P*Q7D|DDC&dfbUm&rxN=PH8ZAx3R) zQ!yXVVEq}{=WhdU*dLBdyZu2w6frEy7kCC|Et-;!%^soq>YORdOcn1O|myjEs3@F$rx zQN&3;9_l&&IF?-*cVi?m)v=1zMSR@l*95c9oMbH(W=nEG7G9f;hs#zSg6f@wKLzVXa*f;{61^yoZyiHYG~w zHCApdQGQM@^F_F7Mz_VyNSvnQM#Zu%26x<8ZB=9Pj*!6BR!!3UJTinX_{=Kbx1s*E z4w7$b*x+J4|2!<>&@l)=w*2c@Oz)S_U}%W_cXG&?zT5=+FRQ`im&nAeqo*Z~`mZ7h z`;P+F;qRu%*!5_{j&;hWR}y$WP#35f9|V+jhzL1UU~o0+Q(dnsZuaj^r}H7F@rhd` zpiiQ3PY>**erHE;N6!A|-Bl?5TQl8T08gAN_AD~6NL-6EIGh(%37C0F>wEu6DLg?| z$MKkMgxzA|+kt67qB`1SC+vG6O_z2H;h7VI#%=jzv^_#5wdK~jbH%2ep19cpU2Gkn z=4SgH@XwQLqw|k-V>UmgmQ%7vpqDjtZHyY!iKzj;HnFaO+&{@*$(_~xI{sp?&iFH; zKbSw`k$;{E$BQN%o!2(evgsoOiHp*K3N35c>!=L#L7LqSBao_UP{@zzYtGE{^|kZ< zsN5SH;rZy!v^gmxU^Ms6>OtlUL@4!5%gHQ6CKC|%rRC-+3?Xm4<1;TY$X6Z6XL3g< zh<(4RNgE1|V7J7cHowU}^t5EFxf!>m{lsCbT!nqCEJb8&zDU|PrtZn((qQ%vx){HELD4f9n0mh<{SZl0(>wp`-Lu5wqMA=B@=+|B8aeRUeuv{y&nLmCeJs zVWs*v+!YM%atu;L{9Zy!wdz&x+ie~txh)h5-RHhkU$^`sKdM+D_DxXmP0G}S<75di zI=wkA&VSnRt)vycn5^oGiz{u=f|#) z6$axZXEf$*Fy}4tO0G)fCPo|G?y1Y?aeGMp1kE@q-fj%yxowJ)%<8+mKQS-89)>NvF|eiBUTdGByN zW_$hk9R>YKOXGAW^K>&!1lN`SEVKJiz{&v*lbx6&n9%?$_mvyY)scyQ>n#!!kP&xa z)QC<}#^~w?+dszsk|KR0eqlOJ&2zPKGgi&9UMx9Woaw?1N_ctJk|Xr@|b$Eax`5Ccd6MIWzJraJKirgQKC=iEZrZTeIs2 z-S_<3!y}KLR0_gx(8nAb?|l?wV?COg5qEPF`?d4i?ZyXtGNIYt%-!`vGZ1r}#;o7$ zmaxm)0KB_5N9LhSKpfdV^#XEjzw2=7)>PR2{J`tkF6?Y;6!1^$55S9uD+BAt?g$cH zz;>4Pr1i+l$eZ;`Qawq2O)`?B1u!;6y!8&5FZ4#! zuzZ+cr#ZbbpUe3Q0**Kbp>`6~pTd{I2s+3daIJip4&^}-85=k2PLrrk5o>R4HrR5&++%PIgzDF!q(M%-Qo2YSq_B{ zt7@V=Lwp?JF)L)VAzHDJ2Vr7uQwj?`r!U`Y+BkpI^NVY$-FIhu4SQQ%Bc=T0V_2l> zhwjyTKX1v8ce|{#hE>AyTrH9BVY>4%kPDgL=P#P1gB23YUkg}r_|oV2v}kLG9V5<3 zor~By;OCT!U~iI&4p7V9p`@JqM4kK0*yjTgvr!A?q%SgBzuBI^jnq3dgYLZW@~3

b1#{`|cv;7e1@|jsJYM%+=F&QB%Ex->nbKuOQnKYPT0h&obU-#=i4HljE%cJ z8fik&5Vkr$NVWiNA(5hBpX(>PalYf#dlgikYzP)In`29P^xH|SWzVv z4=nF~w=i=4P{2*YBkcX%8?Qu|)b_mU{9rdJ)*b;As2}st1tvBxaUJV5MGt(rQ@hA* zy8p#ojm-Q<`pk&`Rd;39ycY;)`KbfCc7F7O(AwSM8 z&2;nEHd)S*8&)DG7uDMvP~i34`<8|T8; zvzSdQw;m@dqQ37M!MlOOV&qMh8%K$i!zHh&=`t@3)@{oI7RaAkSK&7QFepNJU^nAG zc^RP01c4{1*1$@LryfFwrYB2ScJp1AHu1BnfG-e18}Jg3vyEz9{vinPW|FL17RcD$d~z;01mi|_A_#r<_~aG2c1t<2ooriOe$ zEdE9bC|d5Fx>z{?hEMXURRCE9_2mzVDN8WF=OH1pabqmAAUQ~h8u)eJ!GZ(A8`-=r z1aah;O*~e=1M$HxhBCr}6HgFWcgqssr>4WVTNgBKfvbx~ zXySK-Dk{-sW8vL@bXjZje3W&_&vYeewwIEMhmQe+3R_o<4XFD`v$G~&X4a+$=#kwC zR#tF*FvmKxd)M-*XwdKp^nBa*c5ZjE>jIy6I~MNOaF8jR9s#@iw>t7pmy3i2QOI@D zhQ-VpuRDK^8FL4A!Vo7JU&;?D6IBP{dvUclGGIMHJ_+|)EdAgcBD^4gjEP&H*O^#0 zj?H7k=A5HGm!KYm1Yo<;;uCcb&_My{nBdkYvk=b9aJ$wZK|(369iNSxWSr`KG+sTv zUkF0oXjtX|hdl2puOjRubd&kexs`VT2DGgMPRiNYc~kcG->sAqLax|6S) zJ!5K;JXjDsO;`d}RE_MNWL1UcyhHwb#A-6kd>g=-d`A)&27aCue-DvcGnMCoqv43# zY@LAR&xxRTAX8KRX4Zo@7=-_RZ&TvD-!K5aSpzRULccm9eu~GuT}V0-@D%z1fY%?( zfp=x^4Go7j#bicu;o);zmBhKNcKN2sITaUT%)%p2!bMOGsaGXfZ` zL1l^ih^d(j>wbyHmNY3ZNP(tBz#3K}Fe?#_dm22-QVXxnG?>^gS;Dp}RR3w*grDVV zZX8N+Y#-oe^1uTvNg#O|>0I}2(H#cFZ7VaP)icnZn@^368}hG`{Dx;C(SXnptCe(d z7jjd!4uGJQb^jSZUhU3F{39=iMl8vmbcjPhGMIHpIm#P{-X<*m*LD@W5-=2#Zr%%8 z{wKtr3&W#|_GegyZp)cy8z#CLJK zVXq?iI39dz^xh!U4^u)Yuxv#eQRzzPKHUkC;lmg}cT`ch7a@RI`+bfE;uyN=835uH zmx?wCg^EBudUXgt=5hzGq=5lJiU!7c2?T$AqN{vkt%B0I6t7MF8^z7RrO%u%Efy5EZt76!om zfrO=tL!6bMR>SF5FA=4Kc0J zTLiRL`xIVuf@q7=*h4noZ<9=pi{X)9`~F5@?MDaos9wdT9{$1mf|YqsR9yCnf52Bt zR#cEJ9Bqcu4Z*muO9NYvM;(@=(b;a zEwfp&45RCvBSRw|H6H|XeAsGT!-z=ve-uwUeRgJjC_@ika#9&iYRB{^OK$ow39(yNDcvuLwATvA>qw+e18*{ z!*vK!pn{d9-@ue$#l9RapBvRXX|RBUg!So4@Ax+ZV3+C`g9;Ag{Y;$DG@{*CL(XHD zN)-=2l8v5j*Ww`-)SYTooJiAbyt1ehUv#dp&rUya&`R689+WLq%{SX=795ujXKV91 zT2ex3SDC^*i$hnp&DvRm;{&5R3aU;<0w3J6A@2`*2`*ViwWAW3WhM{&55JVxeuPM+ zR?r0vcn6t)lP}e(vQCkw#*yy=M2RGMpRo^Dz}y8SB-F6~R$#w>`X9RJ|0??*3M?xx zRXAG|o##X9p0AR3Db`-G_FL}k%EQ_n)D@sm!kcPmXNPvDyRi?O?tUL_>%K{N`kd?!SsfLNF(raHwDx z@bX;dutvh}I_gqYW$LmaCnZPs417&|oKSUcb*6{)ODRr*?ZYwI7KSGk8`mu!bXpb- zRXOZ;1j~PLMwAEbAvrc(;J&R59>MGxG=b!0gz7-Mv$)G#0EmDN-WHg^UmUNaI|Cxx zehE>&lI~>R5q(9-d2$lf(aLC7ZmGryI}6;+bK(-xRb@j3;bNg>LGvT!fzq3gRy@tuNf$h77UbJcY_+rl*-jxkaataHX6C&D=Ot_|?S~t8Y|l+Vk%uGL zr@$qA{I2+c=Mw&L7gs$XXiWUaj^bqLh!bP~;W-3wqJ`UJ9+9ZxTo*;^TIm7Da!Gy9 z4tG76;j9_#={sgvxtt;zAD5#3=*tW3-^9eeLrxx`5ZT$)Tg+`^ULu$QD~J*{l6YA6 z3n!ggirQ&o`}Z`FmPDs6fksX|y5(BF@JR}sz5w?wK!we|cI{N9MLJI9ba zj~WxP3! zBiuq56#;mO#`2XDNv9E`yjXT}L_k7#NEVstPQ}EhK8AJ&b|(;OJE04N5F$sSzBknCR_Vqni$b-CC*nVSsa%bnTbt#2NcVPoiL9g)&Md=!hQU=!T8DW$Dpryy8mc<*_rq;PC!0lHP(KUg#56?qOjswdw<1JYg5ZMvkDj1w0B2P*#2_J;%te^|hHM6uC>J}L2-L|P z*=%R}G#ZY{A!WwNZ~AVU1XkKs3|3TCPuK>r{(JE}+g>yWm`MIsE%-hJcAcaKFE0?V9du3N4EhJ;VfP==rk#`H$_GT~=TNs`sc> ze;qasW5IE73nIK0;2?9xk8p=ibdt?`_)E4~RMk(wQV7*h_q?gAIDI32KHJu)%v(M?;#U+7gLivDqQbS zC-uSDGDWp9R6gCz>Z*Q=j&8F7nvFS^LG<5yVF&0pVtf8jujPAlm)Sb|VHa%n_bop= zkghqsi=`yVOmh4$GCx_;y|?d!+N$doD9lOYR_Pz;B0m(xRg=HJ-{t-|^!^dBqKg{h zu^p5m%5*%QcE?R~opQT;-Os3Rlwe`m?$n^uMzg%xV#4akGSB92ndPCJM4z;InAYG#p}s?JVlGoENAoUz?Rj>>SND&IX7Clz!1&TlMBDzay#7D1#^6wSO2%{ z7o?535DvMx%;R8_-4^VU@Wkci^=uirrRL3(0M_|Ex(}B!9t!f<%;f&Gog0ScQ*n4c zcBR^+8*~PN`sqZCKi|<3;}V%g7xW#jd?UuR?4|!wWVu!I`PJM zPY8kZ3^cgT>o@Tf@oPPAFcAnvg3VMnuODOB{C{QT9zfczu`Qt1g9X;YJW!piiw11A zuoSDIoWoIA*dXCTWOIs5#>wzWuKzRms6RHcIXy}G#?+0r5(vZrR@szfK+w%!r|=#| zE<49B?Y13qzl}8uwHm6n-I=LsE~s6- zF}?|1e0C*T7Ui^uqcfimNj+X##v^JDWaL!!^XmawBs+e{>e~A=GP3CVsKC$74?XV3 zKh`-AW6A)an1mQHFMbrTdO>)d zL;yz{O>udolRnb-8zzbH0Tg~&iq3Y&% zy>nP-tqTZuBd`?8Wz|e{_MixT6=<|c^SjEj44Y#uMl8tr5YtAndH>R-^&rxt5g=X2 zIz3c{A5el&H?|)5&kaz3s&KhOd-8xuO+V_u{MFB`9+6x*8%07iKG^(UF7Ccm#;rvzz#x3%xVf; zbcr`FO)ySKRU3xTKHl}4Y&`<9In@5e9fJ6HQO{vu3e9>Bh{vzY_sIXTaqagC_XkPi zeyb->>%8jP{t#QL#NrM`N;{(rWK3G32Z=5*R#44xX!2>Lq@obTQg^l^W?LCLoyU>N z6D_st4*+S(Oaw@u1h5>nk<0!-hA1@AEZEfdKs&1#B1$! zWlVtE4W7R>WX<3E@?zrU} zBa*cfsNu;wvYCGmFF=)MPoQ!*kUcTZEF^-6ra41<*90BBM({GLZf|bSb(aBy-@?L2 zMa%2c-6eXR35*{uO-{k1{`Q+b=Z7uIV1FnEZU*Uu$%LW9Yl+sbfPYKPe{XXC*b_(S z)qBC?bC;;Z?oc{n#d&8vWCHGV&)P%lJn)OWuSe-$xRbf(SES}?2#|R5kYs}9QX*%- zz|U7|L>0Y%T#Bp)+x+R`I-lE-Z{~+OdmL4s_y?a&M_}3SM$WJ-)kSJuUdPClyP0h7 zp7e|OS{0thRuCm;tAA|nRdp}L$9zGaCmM0ImoRe0+08nn36~RrABg9 z^pENdNW2Sy)TiX|y@8y_ z)@4Z1L@hM1L1*3ys9Swt2g4+9C3Y^vpReGLe6&`w48(Iit(A!T!_KVs_y*A*TthpH zHCIN!v@j)cXJ2iNJ4zYpP4_}HyIjUw%9za7$o3yWx7Oo6uOY>3ZXu#ETcH- zwsKq} zqX~O^E*jzRusZfstxMV+D+8n4C3lI<(^GFE7K`-`9r7(H-A@O3hwrJJppa z;^pO~kcMwX5TJnQbO~J{rpwFAht89Dle!gD@x}Oc`-V>^UNDSynr8S8OV&4F>wR^Y zCjf;eujL1YHM|SInK&5}5x7LWm9OTJG6(T1v?WT&D{B~2@F&V@EyF=G#l!+uo0C4G zY|4IO<2rcCZ&sXZm}SbM)^6B!bvx>&Obl^~*{fhb7=chy_qmvP;mdT?4<4Rj`)skx;sW@ zyLx_*SX8IiMfSt(GB_A5w*MIa`|`TecyYiMJ<&n7@A1i_5z8)axm{fKzeXy@Aax!w z;&W&xgqca+dzf1D4#+an<$^^|Sv8&qHUcW7rZNUxM}lG}h(I?k@Tn>sr|H63k%>BW zc{(JutBP9}ZU-kXZwLK=@mK1BpB%W3I2mt&zv1f^FS)E{WKXir|A@AZ=D0mZTS__H zNez~IQsZC$q+>yPD1Gm%Z~U44Oa``1KO8MR)2YShW&%MmCzx0ku$S}%aii5!I}eIP zatjVpT|Ej2(6=m2_JA&z7w0A&ix7cru8PyjTL5DrWU7rNv6&Oic{iBZcert|!Kird z^ub&+k?v*II6jf6YA3G>BmjDe%%F2Zg5O$JCv)6|C~@EoU8r*>HY+vw+C`9I3F>9D zt|jzjux4DI4qXrM&JK(p45?~50>M>zb6*$B3JK2$hl>0d&w)kc>I?m0lDLQ`VVUf@ z>+OaHad>;hpQI5nphu@q&n}mU^&+|DHUwxZn+z)SyRX36F)uI-95p1{WOO0i?!eTv zftN-(_w9?>8coP8mRej1+=268#(bmMUw%$e&a7Kr4Y3igMZ&F}(M;iGNu2d8N-Mfi)6uC@ zL9Po0{?7&ZuT^QGEpzYx_mC*F!4a7n=R7A9mv!|?yup79p`!5rAy58S*()J5v+5LP zO&_60;dzh3^Dd+3-G6}Ej!%@$#hk=%w-BF{GIcNav|UFHzCTv~ACY6+lNHf*sEd#q zYV=2g+jP+$7BFvCh<8RY1d3$B^P{IaeeVy|$y!35Q-Qi7eGcnvQh@dE{3=H-0CCL%YTuEMgQ|tg8#d4p#Zpzsc6xke`ZfYLeKf%>}|M` z`6Q(Oca8ji*Scb_d1c!kKV4>$TMh{=8im#`j{3cOh)X`^2rSNd-D&KE^~aQeOK|psmUvpDc-+i}ADWEdekr zpCilI!7I!29c0LX@W3xXwtqfW&piTadpd@?O{znZ#k@iT3eAAaJnwUjH|v)S_*f-c zv+uzADgMRLx~`rlAptLmSV|R-aqmiaJWmXGn*Q|>Xc1^YMG|uhoDI4{{CIeq>@6u{ z2N~CqSx2grq`;Z=V^KQ(>*xik4=-<67XvdqBsT-D&0nw@>K9g%J(qbLo@Y6F~so<+@?3OJB=4Eqx)rF{2bBWx(~7+270wxm##z zg)tho6AG@o+5VixMq!)_oscvN5ap!fSZ=ea&-QJOMHjXz8--IV)rUnL=z>U(?{<+Xb*C*hg<&hrh^McciEyzzlB2U@8b9}m zyVa&VU&ioxMO2>kxA)mGO#2j>v*hk zu|2lWIRm!lhgJ?Axj+uBliRX~{(`0ddPjow8rMt)zoo;$^1X2xs_Ml~mkm*yk5O&x zB!#>ywiVnvoxw6tz8z`^h41T=fXn_{c+D;8bdVUSF})SbjBmU z%8k3n6%528}Y9f}nb6t2|PT zsE+n!EZ=toow@-_Pz%4~SGMnS0{y6p=W3*s8z*IMTthLk%;Y#P7&=8>II^mtg(#lU z-pxYrzCMIGEgf(G?>>#~?)sg64MU_IVKI=>?|4{>AOo79P%n|F~ zz*3s{0L-hjDH}OFD`93SMr-zbL%^;>WcZrz<)?xQ;Zg$SrlGrap{c!1I8IiJ94Y+e z>gL(k2iB=(*Y)~EYC~NjonXgO=<-_b<$F!?(Ij~W?uGDyv1+RhS*#*NF8hp(xBIi) zgqmAeY=VfL@gVM(Bdz}1%CdIYoSn%-Jx3iLyN|fmYL7rd-AKG^)&{CiR+k#3r=*U% zgvsaw%f?_8zy2M`(M+wq>_72ZwS)p|9h*^Ge2JQN43{$~ta<|7zb#WVsL%VXmv>;I z_LcO#s|Bxno%)zdwxd`WLwae|nr-!)oG@%BX7C?u)ydF5D@w-Qh0Lan%$VX8-d{{i zYsLNeGHx<{QksrcGDDi0EQ&E-NN<|#EkyQn!t-yTm2_8izyuj(Rb|iRF5FlA`maxO zo)aZVUE*I0?re30ap0~gg$jHHqk(s@CRfyxK${4PQ55Hsy*`|ps4&u_Jl)jms31`W zO~zH3aczBtzTh>sOU3MK&P%6D`5qQakZoPBdNo-e;+}~0%tyNrtO4M1u%i$HLX*(p zhR`;T#kY8J93CUD1^R@=1!&f>5*cHgwb}I2zuk}AA5tlB3WpR_GdxxUpodZ1im6ZW z*MVCyjHJD%cvnE7^l6F;V^)?z@@8Rj(T@pjQWgaCEG)KQ~^=ysj9s7&W`pgNI> z7QR$CrmOXX=v5Hr&yWb$GPP)KoXE3=)oz0-Y3DElIedWE!|!vmS6_Ebn!fB9O%X4= z)|KdsTG!pR@=#Fkd%;WEfRK2SqVTe7-*^AiMG%RY?NJwe@PnYri12Im3sKr9 z@Ur?`JNEiFSy2-a>sRm%tHz0x12-~;^MJ2P)4#|(3w>CQtF0HubzO;`)+9NmOsDFX z=0FF$)#U^d334pX(|hk!aflm6r6n9HZgWxl#C7DC7KA7NcD7Fx;ec-BH=ZAFVVSy=QG>S>Bl#2dCJgxVV}P z+RPtBtO_GP0Rv%E+xFHScZ{C%t>f+=ur)N=eZxCfXbxERyq`g3iQI?4GzX~8N6U>= z+mEO4gbfpXl#=HrZq=%%CL7Gu7m)7uvY_w@ZE)zkUPga`caH=2>A81|SFNK|;4~X2 z1_r2BbZ_H46^G9pLIHX8{e6w^5BcZDLGgTx?^iURq9}xh-QID98QfB{&OO^UHOq5^oMeI-YVr<`jV=duC*nZHP?qe!;yOyAVLX=LhN2BIkZ2y zuc``*xR8r9n-ru&d*b7_g^YPt%@Mo^9mu2oJ31pYgAg1nJ_ zfiw@m-R9c0iUk(VSVLg8Rau5-*0(@vofEo;5^@Hu>$mW{|2ks-cNy*%eyJLd`x?cj zGz<=FGgA~pG1200T~OY@MA*k4beasHp={X0wz@{2Pc zN%&{;U4f?!2Kw+sfuvDx?Y#%~YVT0G zx+u)GK$_HV*G)~kd*AzmEEHKAaZ*+3QDyuwl~eJ}sKOAh5dE#&#fv@8kAtV%wdFD~ z-H*2UQ`PsN)_;oqJ?%`|QhsUJp~<7C9Q|WBRyQv?{Iz8dl3~L9*GLINVSvnZd@( zR7M*r!>1TM*$7egcwepOAu=uUAZ;9wV*r0hdpO&kV%&tj#EZ+D8?7SF=6N=xq=wTl1))QoOt6^K z+)4l=Zb^u@9DeWj%(u zg8F=AlbOFjpc-pgld+#{Llp1deq;tp|6&@Q*Td3(_oD&=$$6U#5#_Ju8t$7#*tD;= zaqam@U`g9pcqw0*I(VASf}UwqW_q;Rv~xXiPzu*s=L$L|z5wn5L?S7p2_#u;2If~H zIF@=O+&fn`Ai6;Swfskcj_O;Is%GaawtE0WqGXS#8HoPlqO;r2l>2?TE4Ppra>}0- znD`nc33I#8c?}%V`D6E0Gk}bNh!giuoN6ufh%jErRZ;~%A$v5+jH?WDOLM=}GI#({ z7)a=tdEyRd;e+N~9=>d4iw>!YCt0P3y-)k;0at$2Dp#yc`M^ao_47=U*T9|Zm=8_k zy{i&KkKJcBdgssc>Y=XG0V5>gK;ATM8y~D6Zb6SM7P5L6Pfj)fwEeR<#%gRNx?+Xp zU3ch}_hq_m-O-YPKKyB7H@`!?P;gOdZ_ui+9QCJ+>~-LdXsK7auH!#8bxj7yH%#Ws zG~s|$c+-AYWr{aX`rLZ$xWivKlk3!@k-iYV@>e+J$W4H@duabo$gAj*Yr;!fn4{vz z%qo60a#{lUEdgwzbMwI$k=w)P)l{`G-K@oogpMc;I4#)clzCz9uzUIJh?4GRlf313 z7H;-B_cHB~6++GgY6)nuxM1U18b1t-SJ*9wrUTgC&|_7os6L3)kDa(pX}VcQnfz2Z3pH!a#`_-i~% z0l)ER0ZG7}w_zIdSBqOeF<0u~Q=5LM6O&o=#BC22_VZ4&4S4u-={U+o>xzxM z#9B&1v5Vw<>dk_JFPS<9<0t!XQ+z~0artc52}68cLLjzv5t5z?QON`*B=st+x;}cC z&#`q<3RrC9_u)+JZNW&>t{V^}2Bf6}_q(Ba7-W`RVo6wdP6s@iGIuxq{ z0jkfYe&T5Juoel0`r}WW5#J;L8J*Ghye^F6=}EngoByHuO-M@`tuQV5Hwf?;$!ElV z{mAL#ZHadsWK5it#yY>eJ?j8(F?Tq;{xVQ8MM#5$RASwIsRGS-1%jVC&_69nS-!e; zjnWC`t+m%ZG~(*soAgm|?TVuv(ce)%rNJbY39G!R9qiHFTmtChF+pIb)pnSH9;J!+ z^7rDdR76hY&6tBOdqN{_aMsbI#0AzpA8`BTNyhs`;e@~8d$}wxSMQ?hRMfKguSG!Hio>quFGF_C_bI1kxsUQ3=$}Jrrmdo}bL}pjgqLuPx}ACo?S;60n@6)%*m^tadNxxo(SXo23w3=oU&f!aVowhuY7!tA!xTe<>| z91O=C8h4^Oio=`cOHx_-vYh!8BwAnS1EdbsQgpe*`~HA$kf_7g^qbow0x`uho+n?m zb`r7AziN-#sP<;(@pS0@Ma~&ne|Vf#TErb0Jv+fvbGG1{L4 zX-*i?hqjrF=dAZc{`$d%vl2x%wya}9x}_*;n&0qRL9vl!3$pKZ6#vlb3e@!09e_WM zN%v*c9(-4mO}&UPdpD3V#88#)m(-Bmk(0zpAke#qLXt7HZz@Fa62o?3N< z=#5+plHkp%L55PM2Sev2(@*rN#>dZc+NPI+v1lG9cZx6J5>-7CKUNzq+~$LPHLr^M zk|06=>kmcP>u8a-c~hK0NCHc;{39FYt5hXS>Nw@HyDSO%r21buQz+jPTyp z>YDrq+gZ*nn-J8M(NjUoHvjo-RXZ&xABW8l&%Iv%7UKQ;I{M`TD!-d39@5_TNWEXKMqO7J{t zr`}^Pdue_*Zn6f7SnfdAlaF>Rqb6>SP5HeJdkcFI|5>$M z)SdgU#KREc1)dv7kmiqvu(R) zb&4oQ-Ge{%zpe8Q!9nbMlkI!SGlwDjS+l>szeYKx%=?*u|Mxuncgs~^2aXW|^;@cY z)}{ae9{9g_|1I<1ZU1lXZ+V}4{c6$$(C10!PQ)Tj#1ips!E#~H(3ts852cT3eWWD? zJ9y#aqMP@`{8WWc(9@b-FXZLX3AJh4~ z?@DBRK)+VaSkKhw%f!hNr$T&sda5Vm{-mlyA+I_|=FrezDd~ot-0)%i3diY z*ClaESkSBx0yVsNs28$inSJ(dESIF^m;JHyR5C4GA7S}bM!u(~=OfHEvZ<-5j79v* z?23>DBB)~{3K=vz{|#Hoti5zlmvIBzdFyu458nB8dr(8^t0(!#$H(1SSy}oCjB5Kp zVd4C!1eU#{_^s=}9(HP|jD`m7@T9oa@Z?9B)!Uxhd*#nf*mLJt*N-o|_xJbzbCAaf zHt6K6Y`!w^tZ^$K{KD_Yfd#O%r30aJ8YyfcS^EahF%D#rhS{^L?J$`^m>h1y)P2Qf z$~JNffI&`N9|6?jc=oaWR~Q#U|Xmb-j(Z zy$?ilv1-s6kEyb9_65sFj~)?=h=|-_{uBD*?E%1M3M{sFF!j7n%<$jJV2clGMtA8Q z*O(P&yB=aBrM|5$bOk%ElHbuZG3d!;kjgt@G8&Y9Tw$PyWXN9DD@>yP{_7CsVNmnK zn3KiBLwdIxq~i4T3S|#A2WYa7D!1+a~KD@J%M23GQ5|n zoABDJI&OY7G%Ps1E-G4(EeJ7HJ8Sr1cj%Lwf$BBBZKAp<9%gjOg%o!nR}NcewmW)c zb5;HyyzPJVpd*|rK>x?{&iD7#Z%>EDbyri8*O!QkOp0ZG*`&~x-}f) zUy~l^yyim6M7nZ=%>_S+2#vN6HPBbTgx<53jyMu3CpDz{1mpBHPi0V0BFCqYD^&P# zUR+$9IP6FU@CB&ZBHzg-=!WYy&r_?HJ+Hv|s}oU26Urb5NY-`!p{-s}mv7ELvA7sp zsqhx?lqAjf9((w72D$WwhgCOqdrgHXY${Ln-9PxVrS=TPs00dS3ifbsQh)&=m%J;i z^9tg3?)P`;tIaz!qn%az&yXHdzcbz~^MeNK(uIx1)xG zFoMs#F*r&26HRq%L0#>{^oKezv>n?=_WF00T4q5uPmNu%c=&z1A&HnRHCBP8AkKI>YDs1>bvhgkoe-A2baBjU^j$mg=XHVX53EBk&z5kJ?u z6=pnm;=^e%STD>-Dh$aK(3_Lu z-)F}q{@~G4m^W24(MFPZU;G?}6+r7n0#fAwy8swuxws#LHJ{|`1cmTCY1 literal 0 HcmV?d00001 diff --git a/lib/junrar-custom.jar b/lib/junrar-custom.jar index 2410215eb556aeef1a75d0a786c37073f0a9ecca..d05c48754f7b2c6fb1748976a59a4c632bc96a68 100644 GIT binary patch delta 4812 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 Ox^mEKPG(|s(tiPH{5rh= diff --git a/lib/sublight-ws.jar b/lib/sublight-ws.jar index b465f0d9e2badc4af450ab0f4102d6dd7227e2f4..a5dde473ea3f90b6840828cbd22f4fc14e64c296 100644 GIT binary patch delta 30912 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 z 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 delta 27732 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 diff --git a/source/net/sourceforge/filebot/FileBotUtilities.java b/source/net/sourceforge/filebot/FileBotUtilities.java index 7ce2a96a..892230ab 100644 --- a/source/net/sourceforge/filebot/FileBotUtilities.java +++ b/source/net/sourceforge/filebot/FileBotUtilities.java @@ -2,10 +2,11 @@ package net.sourceforge.filebot; -import java.io.FileFilter; import java.util.regex.Matcher; import java.util.regex.Pattern; +import net.sourceforge.tuned.FileUtilities.ExtensionFileFilter; + public final class FileBotUtilities { @@ -15,7 +16,7 @@ public final class FileBotUtilities { public static final String INVALID_CHARACTERS = "\\/:*?\"<>|\r\n"; public static final Pattern INVALID_CHARACTERS_PATTERN = Pattern.compile(String.format("[%s]+", Pattern.quote(INVALID_CHARACTERS))); - + /** * Strip filename of invalid characters * @@ -32,6 +33,7 @@ public final class FileBotUtilities { return INVALID_CHARACTERS_PATTERN.matcher(filename).find(); } + /** * A {@link Pattern} that will match checksums enclosed in brackets ("[]" or "()"). A * checksum string is a hex number with at least 8 digits. Capturing group 0 will contain @@ -39,7 +41,7 @@ public final class FileBotUtilities { */ public static final Pattern EMBEDDED_CHECKSUM_PATTERN = Pattern.compile("(?<=\\[|\\()(\\p{XDigit}{8,})(?=\\]|\\))"); - + public static String getEmbeddedChecksum(CharSequence string) { Matcher matcher = EMBEDDED_CHECKSUM_PATTERN.matcher(string); String embeddedChecksum = null; @@ -57,13 +59,15 @@ public final class FileBotUtilities { return string.replaceAll("[\\(\\[]\\p{XDigit}{8}[\\]\\)]", ""); } - public static final FileFilter TORRENT_FILES = MediaTypes.getDefault().filter("application/torrent"); - public static final FileFilter LIST_FILES = MediaTypes.getDefault().filter("application/list"); - public static final FileFilter VIDEO_FILES = MediaTypes.getDefault().filter("video"); - public static final FileFilter SUBTITLE_FILES = MediaTypes.getDefault().filter("subtitle"); - public static final FileFilter SFV_FILES = MediaTypes.getDefault().filter("verification/sfv"); - + + public static final ExtensionFileFilter TORRENT_FILES = MediaTypes.getDefault().filter("application/torrent"); + public static final ExtensionFileFilter LIST_FILES = MediaTypes.getDefault().filter("application/list"); + public static final ExtensionFileFilter VIDEO_FILES = MediaTypes.getDefault().filter("video"); + public static final ExtensionFileFilter SUBTITLE_FILES = MediaTypes.getDefault().filter("subtitle"); + public static final ExtensionFileFilter ARCHIVE_FILES = MediaTypes.getDefault().filter("archive"); + public static final ExtensionFileFilter SFV_FILES = MediaTypes.getDefault().filter("verification/sfv"); + /** * Dummy constructor to prevent instantiation. */ diff --git a/source/net/sourceforge/filebot/Main.java b/source/net/sourceforge/filebot/Main.java index ad6b574c..4c6a6d9d 100644 --- a/source/net/sourceforge/filebot/Main.java +++ b/source/net/sourceforge/filebot/Main.java @@ -18,6 +18,9 @@ import javax.swing.JFrame; import javax.swing.SwingUtilities; import javax.swing.UIManager; +import org.kohsuke.args4j.CmdLineException; +import org.kohsuke.args4j.CmdLineParser; + import net.sf.ehcache.CacheManager; import net.sourceforge.filebot.format.ExpressionFormat; import net.sourceforge.filebot.ui.MainFrame; @@ -25,9 +28,6 @@ import net.sourceforge.filebot.ui.NotificationLoggingHandler; import net.sourceforge.filebot.ui.SinglePanelFrame; import net.sourceforge.filebot.ui.panel.sfv.SfvPanelBuilder; -import org.kohsuke.args4j.CmdLineException; -import org.kohsuke.args4j.CmdLineParser; - public class Main { @@ -108,6 +108,7 @@ public class Main { */ private static void initializeSettings() { Settings.userRoot().putDefault("thetvdb.apikey", "58B4AA94C59AD656"); + Settings.userRoot().putDefault("sublight.apikey", "afa9ecb2-a3ee-42b1-9225-000b4038bc85"); } diff --git a/source/net/sourceforge/filebot/MediaTypes.java b/source/net/sourceforge/filebot/MediaTypes.java index aa4932ca..91bf6ba1 100644 --- a/source/net/sourceforge/filebot/MediaTypes.java +++ b/source/net/sourceforge/filebot/MediaTypes.java @@ -4,7 +4,6 @@ package net.sourceforge.filebot; import static java.util.Collections.*; -import java.io.FileFilter; import java.util.ArrayList; import java.util.List; @@ -24,8 +23,9 @@ public class MediaTypes { @XmlElement(name = "type") private Type[] types; - + private static class Type { + @XmlAttribute(name = "name") private String name; @@ -33,9 +33,10 @@ public class MediaTypes { private String[] extensions; } + private static MediaTypes instance; - + public static synchronized MediaTypes getDefault() { if (instance == null) { try { @@ -52,7 +53,7 @@ public class MediaTypes { } - public FileFilter filter(String name) { + public ExtensionFileFilter filter(String name) { return new ExtensionFileFilter(extensions(name)); } diff --git a/source/net/sourceforge/filebot/format/ExpressionFormat.java b/source/net/sourceforge/filebot/format/ExpressionFormat.java index 00c320cc..fea60dd1 100644 --- a/source/net/sourceforge/filebot/format/ExpressionFormat.java +++ b/source/net/sourceforge/filebot/format/ExpressionFormat.java @@ -33,12 +33,12 @@ import javax.script.ScriptEngine; import javax.script.ScriptException; import javax.script.SimpleScriptContext; -import net.sourceforge.tuned.ExceptionUtilities; - import org.mozilla.javascript.EcmaError; import com.sun.phobos.script.javascript.RhinoScriptEngine; +import net.sourceforge.tuned.ExceptionUtilities; + public class ExpressionFormat extends Format { @@ -48,7 +48,7 @@ public class ExpressionFormat extends Format { private ScriptException lastException; - + public ExpressionFormat(String expression) throws ScriptException { this.expression = expression; this.compilation = secure(compile(expression, (Compilable) initScriptEngine())); @@ -180,13 +180,13 @@ public class ExpressionFormat extends Format { return permissions; } - + private static class PrivilegedBindings implements InvocationHandler { private final Bindings bindings; private final AccessControlContext context; - + private PrivilegedBindings(Bindings bindings, AccessControlContext context) { this.bindings = bindings; this.context = context; @@ -232,7 +232,7 @@ public class ExpressionFormat extends Format { private final CompiledScript compiledScript; private final AccessControlContext sandbox; - + private SecureCompiledScript(CompiledScript compiledScript, AccessControlContext sandbox) { this.compiledScript = compiledScript; this.sandbox = sandbox; @@ -271,7 +271,7 @@ public class ExpressionFormat extends Format { } - + @Override public Object parseObject(String source, ParsePosition pos) { throw new UnsupportedOperationException(); diff --git a/source/net/sourceforge/filebot/media.types b/source/net/sourceforge/filebot/media.types index d5f2157f..6774e175 100644 --- a/source/net/sourceforge/filebot/media.types +++ b/source/net/sourceforge/filebot/media.types @@ -31,6 +31,18 @@ + + + zip + + + + rar + + + @@ -42,20 +54,20 @@ mp4 m4a - + flac - + wma - + ogg - - - + + + @@ -88,6 +100,10 @@ wmv + + flv + +