From 18da2250684d017a30ee2d9835c4038b41a20446 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sat, 30 Sep 2017 12:19:08 -0300 Subject: [PATCH 01/11] Preparativos para seccion de terror en novedades Doomtv agregado y funcionando --- plugin.video.alfa/channels/doomtv.json | 8 ++++++++ plugin.video.alfa/channels/doomtv.py | 6 ++++-- plugin.video.alfa/channels/news.py | 9 ++++++++- .../general/default/thumb_channels_horror.png | Bin 0 -> 16475 bytes 4 files changed, 20 insertions(+), 3 deletions(-) mode change 100755 => 100644 plugin.video.alfa/channels/doomtv.json mode change 100755 => 100644 plugin.video.alfa/channels/news.py create mode 100644 plugin.video.alfa/resources/media/general/default/thumb_channels_horror.png diff --git a/plugin.video.alfa/channels/doomtv.json b/plugin.video.alfa/channels/doomtv.json old mode 100755 new mode 100644 index 72bdbfd9..f972754b --- a/plugin.video.alfa/channels/doomtv.json +++ b/plugin.video.alfa/channels/doomtv.json @@ -47,6 +47,14 @@ "default": true, "enabled": true, "visible": true + }, + { + "id": "include_in_newest_terror", + "type": "bool", + "label": "Incluir en Novedades - terror", + "default": true, + "enabled": true, + "visible": true } ] } \ No newline at end of file diff --git a/plugin.video.alfa/channels/doomtv.py b/plugin.video.alfa/channels/doomtv.py index 0ab1fe6e..db8bf102 100644 --- a/plugin.video.alfa/channels/doomtv.py +++ b/plugin.video.alfa/channels/doomtv.py @@ -203,9 +203,11 @@ def newest(categoria): # categoria='peliculas' try: if categoria == 'peliculas': - item.url = host + item.url = host +'peliculas/page/1' elif categoria == 'infantiles': - item.url = host + 'category/animacion/' + item.url = host + 'categoria/animacion/' + elif categoria == 'terror': + item.url = host + '/categoria/terror/' itemlist = lista(item) if itemlist[-1].title == 'Siguiente >>>': itemlist.pop() diff --git a/plugin.video.alfa/channels/news.py b/plugin.video.alfa/channels/news.py old mode 100755 new mode 100644 index 068ba31d..416f1c2c --- a/plugin.video.alfa/channels/news.py +++ b/plugin.video.alfa/channels/news.py @@ -46,6 +46,13 @@ def mainlist(item): set_category_context(new_item) itemlist.append(new_item) + logger.debug('list_canales: %s'%list_canales) + if list_canales['terror']: + thumbnail = get_thumb("channels_horror.png") + new_item = Item(channel=item.channel, action="novedades", extra="terror", title="Peliculas de miedo!", + thumbnail=thumbnail) + set_category_context(new_item) + itemlist.append(new_item) if list_canales['infantiles']: thumbnail = get_thumb("channels_children.png") @@ -89,7 +96,7 @@ def set_category_context(item): def get_channels_list(): logger.info() - list_canales = {'peliculas': [], 'infantiles': [], 'series': [], 'anime': [], 'documentales': []} + list_canales = {'peliculas': [], 'terror': [], 'infantiles': [], 'series': [], 'anime': [], 'documentales': []} # Rellenar listas de canales disponibles channels_path = os.path.join(config.get_runtime_path(), "channels", '*.json') diff --git a/plugin.video.alfa/resources/media/general/default/thumb_channels_horror.png b/plugin.video.alfa/resources/media/general/default/thumb_channels_horror.png new file mode 100644 index 0000000000000000000000000000000000000000..a7a644144d0d498157cc59d0d237164ec61772a2 GIT binary patch literal 16475 zcma)jby!qS)bK8iG)PK_lr$*PA)s_9AzdOR-OZvRAl)G)u^`=DD+maS#1gA?NG#n; z?|1pV-~0c&&*fQm=FFTkXHLzzXTH4BQYN{_a1R6mk*KP?&;fzKOLu<+ctA_=WLGNi zMd+qtoYfR}Z_aJ!u9I z=pjh;g}k0$_U^oYhPihz27{D9OQK~0DbvFE!Pu&LWe?S(EzRC{>wJecE>06w(9~?D z>r~!WOx=5}XIj?iT|Q$hKWqG|hNs};gS~Ix5^6YEKkUGFJOw=kH_!u_nZp{kPvAzf z8`)PEEmfwhLgl>(%{^8tSg@FMhEO~3)T{OV4?QS%( zTBj552>&FdNkd=s0`~xavGuyZx^3Gar=#HPqg|e!(cjsHhsGZgt~V1u3Uq`tqMjs3 z<8$1YBI0fS`Z{haqSZZ!k^iC%@elfA>)Lm1s!alePQTVq>uJdqmuoFyg^S0X#5m^V zS6tIOBzCRS7rdUSoO%z~8BMY!`}pJOBW1IM?hPq#)^p*c>&GSe90@=o@CUi_+9$IH-%Y#6LDS z=v@R#VV!aibUPLi$6v*rhS@-mGPbrPIDQqthdm;WDQ;L9n$UMuI@-mpgt8m4B$>6o zHfhq+q{|0d|&uTu+m>I`cQUi_KkpNo@mF@a8C^Y zddLe*CF+tAyat`O@INKGTx{#8r^svr@hw!{#&mVJ+P4u~_S`cHhz*F-EQMfXqJB+7 zRdD97Laes9@6yq&2dEqTlO-bq#P)u{03R4u%#@DqM4*#upDJ6X45 zAFuh16gC;=48=Aq9X-2Tx6D`A~4%Ko|eTW*2C#5Fmwum1q!EJ5w!B0qVOyGy8AAhztxtyY%v z@efKCW{-2b{eCRz^EF{5?Y8W-jYzk?1=cR>U^D`;|NT^u=;}v)|5A5H;NQmTkY$(@ zLR7}$8?_KwOooc;2yJgJ6)Arx#(h;d-OPO)rhH7_Lu*gn9UL&|MF>-99IWfA(iOda zV@O8K5xUsyelcTktF_2K--q{9;W?2+JXI~Zpjq9ieojrkSWE;iGwgxbP{^$Vl%;Np zz+Ps+8`*f7Av|FNigvH7Ycpb7`at>2i*4MBMePkm-f2jXl#y=QqYo$aso(v&|c!$_spt3Jz%|e7G>3_Z-Bw z&Un+gsCmf%W9h0wV{)%z5FT=~IOLG+H~Kc7V4{`Xw>g&;_18{g$ZkrzJmU)jWIQ;d zG{JGJXzdxmHf9OPhMi*W;Fq|CzmdT{|u77;EwSf(BM@ zFj;LKNeDBY&inO-{bz1vz_AC0;rIt&e?|clvKZe4VxMT!HysLn(V`%0Ho2q@LKmfV z-rkuO7H6hJWVaE>=X>w?jxqTJU*M%YWoi@pJ`DWecvOLHzhYhFr9*tl9{ z$QjB!>yR;fpa~g-io#auq6z@Ej&DScotZd(YnS{vG5t%9$%PkvuNV-@mm4 zB=9b$;SQOM+2>*uB?w~pCL%pO@ZM6BMluMm<}tB6n*^gL*mPKG2Mqk2KM74_%rQ6L z5f05V6~ME64KQ4OrnBRZE~vzL01gK?JX{Y=d`K@SXiGr<{JZ2P7(0o;62uBGrjx*C z$D(`w>k0P+HE8@f2%A8kQ5S}THQ0OaR9Fi8GBfn0f3qRon z0Bh8!goRBBCVu#CN)k-00>C7UWB(7V{&vSM=)bO$P%te3qDPHI_un9T8B5qpU@$e9 z_`liSQqU}|xMGFAIwkRBVSPve11b1~g7Db?`^WOJa~sY>$~&x*LNES5VGN~zc=Y{e z!FQBL(uLrWvV~gxjFUl(+!U8T|MR~MzWd1|{;4N0>tbH{j59I>HXbKAOlakUGE@d1 zN>rV;cU_8lPfim6gIVDS#bj(=#HAFeFR}-(i`Jh$WDLXym_$Wj8CLZ-g*j;Dpn97G zRlUH~xoe%Yno&;lW42Au5uoe|0O11Ha%l1T*NuT`A{-YurnZ)mVQx-;)j|J_-}|7v zaqB7;tavGhRQtrXJoV{-{6CZmVv9o?`wP5gZqSp-1-C7EaW#FD_N%9WRe$seq_jy> zcWOWJ26c_B(d1Tb+JiqCAk&Zsv3Yg-2U%G(Ux8**lERklEG4n%@@EC;YI6?}i+qh>TC1qko$oa?4*Tl0aD^9#%Vhu$Qo1S{kgf}C~EHCl)Xx>RTs+=E? zp<>oh3ZCldGFgl_$_8kJ;`{#7NC&;R2ab8gYzsvASL^do0jhA?>;OE0v&3XG_xs>_HUh? z|F`p_xSn+jyV(&Zs=oPZQS=(nLvc!Q%-FdwMk?#eY>H?IXU5s`{EarSakh^_DZW08 zPtE>Q{L@)&yuMwqQs#yahIQ8-HI#AkCvGY4X|1M%y~w$pmDT1ARy`Zg5z!Qed}@=W z(;$Q)8jb@gJ^uI=lLJ>Y`BQwK8tsygPdpqBG-{ag{u1Rl-qKW;3n&6y`$Ir8!g}(BJoojE-imCNE)W82tW#DzaYzYv%fa?6~DwQj^u6&aWb z?*8HJTowF1H6GQ~{AI!Qot_$EGeM6z@x66~c3-U%_adkFnM$8P{j(-IEV>VYK@oao z8I?cWiy-Gk4c74|gUza_l)nMSeP}T%Sbr?3DmH%679)f(r&y2K8*(47$XeS=k^aLf z<_VVF+go3OyiT*W6HSE5pcluW*qi2)i23pS;Lj8!{UTz#J&cU!U0odx!nV( z%7?#gx|bW6v;~a+M5>1GhW4EjoH2@+sn*@Bd=ZU(;}2eOE)*QUp=^-TGv*S*-({jTCrOmc!`})u7R_tBeDydky zQb)6Xbt_Th6Qg}+D=i$Mv?7Q~+o=nRs`;zg^3D{j<^UPPjegMIiT8N1*srvnja?TsJq4z$oIyTg`T! zXK*k2O6#R>B9j{yfmFStVQ$|DEQjIlMb-0co#;jA6|<Em)R0C|6LWlzaR+0e(0~REBOn>dY$-&4XHV)p9x4I(4;39qBTi z>G)^7hg3U_H}g%mo2iK`!1T9g&B8w z17Hd4rzEP7<9L_R>ZxAeGVKMP&K+Y1`$>T2C2<5Y14FWKn-kGHMpl|KDGVPwcG@Jo z3J1BkpN5}g&K5O7*l*zJbJ0{n^8mYZA*l_X-6*w!{jN&qfXi3?Ui5?0&DuN{9m`#w znNpbcS79}R1WPn$n?7j7Wp_ZHm;IR6v+=Vfs=a)s_+240)dt~f#+q??UwC5Py&@q0N#( zu*|_4Y7)Atf`k}f7B;KkUupuf6-cTk7|Pl-xd`rXJ4z#%=#JbxPm1QP#_1u*36$k>A^|g4d3@HqNRn$q*02Xk$QH z->+D_N8MaLA7^P^^>Lz(e4F-|w}L-81YaR{i{UD1U)qBo$XZCG4XW+3I#IKQ(T0Jv zzOh`ZwH>^7pv6}XTR+=Zcg3`zc!papBIe7)S_8%m07IlUxS_;fT8_MtAPzg|AXo~! z7{}gAcx)2WgU%OhSjQ!`Xo=`E=qgJo3dtjzO(=RBkwSVwY^QMkonVRldLsv6=Sp@f zy}Uoqb#rT>&K3f3>;EVo=QTxwsAdr}Q}x@MohgpUHSXb7%P^~_818VD+{Kh_e0~(R z@d6a_Z6U$@${f|Q=xM;d7+f8g`6X|!E4}ae>sMthzFaJffDDPt`q)(iyS28&j6q+i z?HP^AR|J?pR`7d+<3=D_;SLcnxHIN5st%`6gp}M`Rl(_2J6bKBvMaIHI==lee4otd zbv;C=(j=t+px#vpZ=NNDx8cfnDV#R!fC5-Ug-P(gmu%X*sSC&Zh#B}Cu5RAd*FgN; zw=x}?m#fWf%W<3MXQM@A3r=lOmciF1on_O8L2J zcXRP1IRbQ?`H#FFwS%e)q*VE3p41T)O-i%GlajPG(_f57hhq@jDEz#{kPVHA)bncN zdat7g)9)88XS}!vYwRNQ&Mq2wRkzFq)`)JKxAi$`cg+6@InQ?dV}#-}CVjEmEG&&t zZC>CvyKF{qLmmQ=i)Vymr9kJ(KEdMSa9(_;%rQ} zLrwOQZcjLhc@GEX$*514NSl~1R+jcG-)wt(wI6rCHh5ssk(9E$`SMYyVqHihT2x65 z$JO+vn@oi^hl43AG;URS-_W)#>>VBR0Va)2b!Z*hM8`xj)5AJU?xkXDLKr*k?)E%j z{z}7OdEUC+v+WqkR1A;oRx*>k4;!nuc?sF{7v+~^)MO7U`oozMl#Svs&T`I@iC!v~ zi^Tla+i!LDUqOpStc=N`CwaT6CFj~hR=?vaW`Ib?FJB7${3s{tlmKK3a{Uw}SBdKz zO^@Y$t==%o)N+*z-ei0dlP*swN(9BJsY8dE#8BxpL{?bhFQUx|W1-ud2@B^+4%=@W zCOA=-+t6o@MH{k6Co}BcL#C*%+cfKz(_g#;iKN4x4`DjqCmBpDhw4P1g}{sj(5kTh z9&axdv4zJnHw`D+n1A7WdZYevnQg^ws{@B78t7jm*|!naT%8Z3z5K=#^Xe`(_b$w$ zXbA6+pM-w$9^`OwMLWADx2^xWHzBh`=z1A>vP4x}ZrI`*?2qf&Z9e6wg8^e^W4C+C zFB+Z`P{CN=a(D@ONTAlUpw+>elBl9W$ZjTu1dWHKp(I*xuJ=s=vs0Guy4Ut7>LviN z{2oBYDDD^-%`P4GC>p*PR34?<{7_F^y z$6CfOh)QI~dx?y!xTKnc_p*ef0LAZyv9Gvt(p)&Jlt9eJyCW| zGzW4~d)^@f5Ek`)WO<^z?{?y1Qqvtu;yaWlp*QXe{)lHtzTHM%gG-a>ysiUHbktx( zb7s|x%Z1{Ct}}RK400fKwZ*f$OMUZhp?qP4O9{1c+6*b;Pide>}ID~A<%=?{5O|8s|F|{CUtC~^WZZAmo}s7kzuMZDwZYf z_PkOD^XhyQb7CeFu*vNree}~o4IBT)69{w<%Qq{edalo9R_bGS}N)+O_A2Xo;NnZVKBk`nMN)tLC-0jvU9Y$!0ZAjSZMQi%dJAg5G zwtgVbxJR#C9dbnhggvA_Dgp3?3fYTY98+VbnWcP77pbjHmsn@zXo^*G&QKCdjuS)< zqzf&Y8!{94pg3rk8I|3g5OU)uw2S!-VXUr|bUnxwd9Zg-zxd?u^o&mfoiK?N)*ny+ zOnpNcv_G@fNs`!KV?U zkO2~XCxh?7XDln&*y!)LTAX!V%AqFeoO*Zigzoe0o}!(dCzSUsms9QHsD_6&6voYN zVm?Q!0>p;9J(^xwlgTAITxC)3CUlo`&IngWcnyqRZBl$ zI>Aix!jq!-LpJ+$`W^!Np|}Z-a9vfJpvKwHyHyVu--ZSgWrqhXI>S$4K3W||FUdW- zop(<{IwSq=kd0xRchp7nDJ^2UPUiP74b)TSJ-fZm))2vDEH~TCvpEy7&D8`Y-;2uA z0LNE=-i{}T5CS{>qAvk>T3e>?;6~{Cm5fByz#IjUdEEqzUDiizbjw~rTt%Vfx86{m zXW_ZQ!hXLnqC~qoQB;FL6yxNaSj61_pt^rfYwfkAYg?*aMT*L+l5&HdWCRpcJmKtI zH$zx-j>@Pymc<7p#+*Mn0dKl<-Q#mlRyYMR@|#;;x% zYlzBbJOgdUpmkA{4N@(lUzv<~F?mX=>!%G-7yT9*ldz|NPb+}K`W8^G2R{`m`mP4G zY0kW}#MEic*n?5(Kc=Z@eHVFUHc}CzVn%H%)?D@tJr==>F~sMyxi+dV1xyJv!W1&r zyzy$u9S=ipj|(wquG|FKGhx(3URr;_p)cPP;80=a*QmEmpFAVu@;$sH4o31 zd9a6WmI>%y{_>xWR+{ibol4~``3wtLooCo(u4_)}^O$5!*gL!p`?>Y2bl za@&=Gn(ye)r}QZQ(c}>+ZR5tF&iH0SFM~&9q;2W5t~2a6N9hQ*_?GA*a@{yKrn%KF zFu&9Ya4uL!4;u6dKxTUppT)TVJU&Be6V$_dz%&a-G$^v$=RAA|KYM=2qkBHN1}R<+ z8O%M+piul2G3R({$STtw@OyE2!)qo7^U^EqeowB}Ti+0FQHbB9lUn9+LA~#3itd~u zU&ubXqfwVfRcxNU6LW*m)xOYS=t=vnK9KXX=UXP;Rgq%gwPSUC#MJ2P)WP2@J+q>M z63Q2Tjv3DCIWH&lTdG=m=5@E91#vVZuP>46@v=Pgeub0syPcY0P8E-KZ9kt-sLAf# zH1ct?B#MC;xtAmW$AXpi((-bHAaoMYx_D{QDVVc9D6czUz9e&x|XQz`cJo;p}Q> zwdK&W+Do!`x=@@DFepm|hV?_ko`P*Em%o&I{NEI^n)#ZEk19N8RFYpkYQo*y zS8O;36xj_YyHnuWE@XuYA&BN4$>V;hK9N5v$9F0z;)|}P%wKnomj*LZ z&{~j>cy4*4cIu&G-9|Ira)0dR{Y%>M=?D!N($01wN8DZHzsI(UJ-qnPY7xU0%C>@r zn5dNi3@ZJ1rh%+TT)2GWfOf&;xx@JpaEm=WS>xx>e|yv}oF}4jW%2ll{|GHx2$mu@ zcT;YcE|z6Iz4R`}B8rl=eKx}OJ0=3TY~5b9of)H2t5f=Wx)&KZ_2Gjg%W8k~d~_Vn zZr@U-3%~f)9Kv&x=lFZt?Pw4IO;-~PEK{uA#=%T=Mq5 zZ`D(7ALrCE>iymOQczM-CGC_>ZGH)5V1FG%p%dl;GW4*71D$^!dor-mpyGy*POpA? zm*-@}ExprHJ}T%%!Fk`j27k|OzVJS*e=|j^+FD8kQko7|g||VU1f>L00&OWCVTnt~ z`qiKKV&1mhgW;xrp9`aTTiLK+_W@ZkyYO)6Wth+h$#Tc{ zU;X5>2!PQgRbnG82a^ea*!5@ewQ$T)`R<^d%WpSO?>;@+N5y=)Z>?ZSNVZLxhR2 z#Cre(O6!_%BX+f)ut{=)NL&M?1Y#2OaYdOdBe_}#A4{Bb0f+|5qBRY`=imRPob4rS zJ)1}!{vAKF3AQH1anmqNJ89j98r*iF)IcoHwh#*?1%bwCf?y3YIv|m0&2H0v{Np4n z@v$|vuejuUM&>m(ScaX}d?@@=r7zvg#0{fz&?XujJlKoyBp=4iU52GJEs(B2LXM2nSuRaE{6z4fl zq4>AD0fVi@yx<_AH(&ZQ$3t+0WGoqR!P(@z0Y$FC!!k8&eR(`9E`HA$=!Hx^AwgPD zqoNOmE0vND$9u3qAeOniS^#+`leXJNgbao=$EN`G9u!ZyCoIJ>cOXujTa1n_WDBL* zY|i7CIp;v_-+ttejI6bt*a@mZGS}oBm5{R2xQ-G|r6n(5kcehE0hv|yi7Ak}$eTpc z-KWP+Sae`u_+Ha)+8OJSJ3MGz?>dk|g2i$sU00>~WX1As(LM+vV^Eg85@*u?|uMs>{M4r2# zFJP~|p21#=Y_ZO>0HX5aQK;}>U6EYymy=C{BJJ*ZnFY$oqNDFpj7$zVLUD1RehOfD zjp?oO*XwX7qi+;j)Frx|sQzOQxd@gL$Xcs22O-xrZub3j1};8LNwF%v_o@MT)8;An z@S6{q*0nSP`DLI@5rJM{?>z7?E(aHXk5!F0`&#wZ$7;_=iH`ziSW`c(x_Fb~h2(-h zMSiWqqZ6AGj3vEXtU|KB!=gKW7+PyDD64!qMGGCh{p96T4Qz0$0qte59(3cA2!SOd z6F7!L^)EtSFrB$wGhl*u{lRJ4C^Hq0k#Ebri2Ogxffx#capq(iW3`30V5dp)biCH z$BLmVZ`pV$s6Vv2&?Z!+@uC9gim?$UCh5f^I8rvzMKE zv29YA;os~TxM1Q%J;$`Yknd&|7cWa(u3kpqsq2RCBj~x2>o-B>Ffx3!iu3L#;D{Lo&Hq8xA-j=IL6+7a-Qfx+HcP{Wk^>0L8frd zP{5wkMZYPVxm@5B^Kxx()@4h@72vSn_Y%~=FRlP@IrfCavium77FvG}vX*b! zAKjE9YuYYH`)svmMKP2MT50j-crWgB43~mK+!=iz2dr(icK27a+FR1#2-)fblcQFh z+pd22%-_6v-90nCuHD>j)(U@hYCI^e2D&n8HCgrQ>d+QRY5#iJ0F_^S$C7 zre#awd_Q|CI=tPdoicoCww}hZOuXDy_FisF5-=4jOEx$d6y!N0DL$Gb92)e)$A zcGY(F#Lz^D7j;W6uYE7INmlMqyUZNF^ChYf*LhYB{vetgaP*E@D4tMM6ceJBi|Jw? zEwjr!xBN0N{R(@KY6>K~VwL7~IaD?x(O9u)Y&PDeub)#}2hcbv{@9j~K~vr2%=UCC zE}MBS5m{Vv9N?y`rOo_H0Cju#O6CTqcPuh@RXcIUmN9EFi^ov^(Ka>wOQ+ zoRI4bEeoTmORD)-vcb@+ZBx!IRmzSZI%?W`qxQ316-~SFtz|O_nHIK^2;cQ#61G5Z z`#h0fLL!eiv(mN1y)U~TY?;hmjMuB$6|D^fI%1Fi1HysYdu@7+r?9gQ=0CE*ia|p@ zUPDn|wT#UtzQE`5v<=NC2s^#ed4Y~w4)K@-AOGR$s;-9IxxA^S8+w^m!E)!T`sDms z+WwXAHI2TMu*lrnp~TrF+bml1ih$Us`R-vVI0vS8%SPKYdN0mFz)=_L@90<-%?z{y z6=nLu1Ed(XxJBkIn#Cq{-5`6;u8*@ws|?Iajd=8(Nm6teD*s4|XCoFqG>{TQy)A{H zou3?bSv0m`uhg#aCuXEFrZ*L|lhl$-vu1fMqwxxgA>CKtaRy9a=9$CIi_UfJ3^w6M zOfVv0$ zcd-4qm3W(!I8L(!il!)Fk!3$V>Da{w(tomP<$CMSRB6?K|FmK057#3$izPR#7rONl zH@*2RG6o}I{lqvz!^Xd$o1uiCf+G|s;{7cHU>P4k;YK(@1w#(Z3mAB%3IPaATz`ZM z5s<Nuuw5>^?P--c52js2_)&4d(ml}B}q;Nw)H#TO#Jx7 zs7)X4BwD_==K`H@&@a~~AtwGVzwhKi1>T_s$8Zx^(jjY{{-!|z7~rWDc2T{jQ){Sa zXIH`p*D2LQz+j=Mq=HfRYkFD0{^5GUgsNE8t(&flYC1dT-JT8F7^S80n-o`72^gh8 zfBcZ|5p#-pVtEgXF7cICYq`epg*2}lw&iS7nxI9M>4?nJU`xyAg@uLT})x3Y_||hhchrU zi<(jsSZX{3U~Hrc*UwK3W%CR~;q#^DUOqlrw{lJ*3=E8nBBm7V4o6vx{P7^Acj9SK z4@t2L$ABN|>7yI^d^B7T86lx>oSyN|i^yS-DdUsNppi9?iv}E%Z&aKU49A(KseN;L@(!w0`l*m#CY`7_&96e^(5zjdj>j|VIXlQ1;s-S2B1n( z_%&`lIg?-KzY-rZurAZ%dA5r|Zf-tS)=<){M~&X}M9Kh6)m2@a%y?oU;qLTk9l5X| zyNjWYaDMTsei=__apI2Xf8t3>-hPoIP0lp$_(N@sCIY(GJTezt?@O$*2MuM@mXbaW(&0s&NvPaz4+LO11tres@~Yhdo>vBsVKr z9;9pvW!G2FCYrxP@>O?JeC6R6h5TU28dOjaw6{l>VMd_qH+LP zQ9jvhYipy6%6+?a?@+1m$F(3icE=~y8NmBzA;-qX8X!4p(8;MOoA2K@Gh6lzC_5K_ zt%68_f}s}{wYt{U*2+7M&W?`Oj|1i=$3ZSKQQ}H2LUH>zFD%Aoa2?&;4kF!9dwaRl zSB@{AMyyEO@T`b`q+GolEh=a;C-dW}U~03oiHwX)_`PVLc7bhV#hF&1i;A3VwR6d% zwL%U0WLM6n-l(y;IqN$QWy|+Rw&%w^;#hQtucSNBzD@a?BO@aYT=I=cnKI@9Fp2?2 zq5i|1P`_V|n#{9Edl3;KA-A9DCnqNj|E7yFKd8rxubdzMXqgUdRtTadwNN!I)r%7^ zev+!z_%EntReS!801e`Amh*cLYQAi$_*IA>11R81Z(UK($<)YcfZ5H>jdGAf z`7T**z$LZJQY2fba9nq3WO`5HY%EXe5CyI1pQg%%g@v?CGT^--l~2@5!wg`X%SpwTSu6!Q76Ugf_c zD11_Ad)q}H9``srPZ$@XP9gXCuYrVAT%lqFDU&;mhk=2?3K{AFb&=n;Er zF2->TsH6Hh%6AN-Vu%gDyu6J2LpwV$k$m1dUTRVYBn#AzH$L_PAljmkNwGTPN}r!Y zn_mkHTmK5lT_)p9X_-LrwA3JW5H#pCJ0brQmwiGmX)lk~beYo@Gl24u#Bqk;T zMKtB*yorhpzipHKmmXW6(?11l3K!f%(GMIR9lUeYnC{;@$m49KkM?O>HyX7i|rM+X7KK$12pa>l-BqQuW7aO^2G_mEN z4FC36zG8BT&EKY+?~0OTQ(OP`W0~Dvyi0mEgarZC*W9#{ROMSf^?qx6JL}q8G)r?h z$gTcwHemsin{lk6?>ho|bz zrCAt#<5o2U`qiL1*-f11{`8R?u#y|qqDgDDdCJbm$D_!}k0}O`3w)W@K zp>au|zBM|YsFqVa?y1E6`Gp1M*_#Hc=vt4~Y=i?u`JT|HoRw?4;b@Rj-FXMOqe7!` z4si{zw&%GN4LYSFt#r}mZm^@15Meniy1}H=5P=g@Jbe5qdy$mEcY1u6ixZ?@SH+WA z9^Lz_;IvV1{bAXT4+LB-hkPv`=@RVY&wVDG z4DIJ&zSi=B@~JYX*|@cj6#<>H{xE{xG4SAeYX~_J5TE#C0kX{$<-@4l_f|NKsE#w> z$3>8Nsh&{pDSzyR1s@;-{|0equ}hKL$)2U|(yZlo+o!7{C=MFNy!`;IJ>CYt3-_I$ zpCRC97#JAtok+-Mw9*mD4*kP2!HEO{|3nS2;7141EJ?qErGG*1=QM~FJ>@@*V$I-1 zyn6)n5@R##7mmMbG){dX_{RWTE%&?*kh)^x&bA8;vl!|De*HwMC1x*nD#&(%1|zn3 zwHmZQsgM<3*HS!2Ml5HY2oRww*=s(Gn_&omCwCU~C3)Zo(Evr2PmI!1q86FwYcz4( zBy-+~!oUAWT05fbJvU_UvQ98%d?H+}RG6;@ee|WzFt?CtH%(fK^)Ye^R3PnfyUa1LMDbMJg#N*^>o4#Xk^(C1!~HT)a%jtb)HGc zyacNMCdc`yrGU2zK#_hTyN}wI@!qZdBot8-XyMklV!l8=v0yElWpkLyA{p2^MUV(E zHIom{l&b|LL;HOtDIFKTuAfNxs;L_HU_=)^EnqJ``&Bl=-iRnm*DJf11uwh!-=-Ts zm0Uc=Q#1=uE})j6hR@fl=p~t(yceK#X|}yGWp%IRj=KMr`c?XQGp^~Svz2BKs`q)p z%@u0jrEz#yCwKtG#vtW~!2N`&qn#fQ4AP(-&gGBPwPw%9P=-*O(H?UVsWpL-)liZb zdQZ}03!ZW8SdyCPD8&tpq*(2`VA;q&k#LYGF=3qnY@#yHE^}1^xdi;Ru8zJgmUyZM zS^TDPS_>It7k7hay5L)&TA3aGf`H5NfsRWDI`HR;GdyV~YA@bczbs{b(Y3SBK(*xQ zp4x^}9ht2>P%5vI8y4m^;xW0HZI{54>w*f~Rhp^l~QoG_ww%1Y;6QAbY z)0j`v)^3>*M%-E67}Jd_88F3wuTT7{mq1ES>Nc%@iJ?70Krw3GnBK+ zkHWxVaUkFxMGr^;xc{L`0el0!Pw&2gyCe0iVPG8KvdFpu0X6|Sn3$1-mH6R993deV z1-j=T0!vF)0xOU#Tj&R%suO%33BsfKM2@#ag+*t`r$84<1^{pa0L&CHm<}+b^utiF zAn;oqz+?{mP6IB5Tt6qkHUw(f4~STaEh#$i+~(7HLW>@TeVAVMgFmkZORpTBK0hMw zdG1(KQ3qU@Az8ADuf|UTR%I+d2#+STeE2v_D8Wk!JA>7J$)3RK;g9Usg4JgXFnsAQ zW))clIu%Yh!@-e9HTXJg0Eu1sfgCSspsvZ!zjXlA#Ed=*`1To?93j2F*0+H5$3t3% z(Ov?Wkdef(9>7Mlr1uqAR5UP%)#j!j4(E@LZ*H*d4N-;5G+{U70)i4SGe8EruZ}%) ztQVio*&)#5!G1Gl{ouJ{0T=PljNs}G8foOx=2h-2$e5ay_~#T^hvzr`B6veFiJY=n0MVu_NTUMPhILcZy_-0 zC!64bc-w12OZde{!Cg>g968?GZx<4B#)ozU#!1soex``0L5^hhHpI%<vV%co! za!Dy9Clb$jSO2KNAaVM-{g*PkbGM(qF;fhapM-tDZlCnjP(`R?2a}Es(Z%6ir`NfT zRqcx5UPM|3!l*_KkB4X3H`Z9CiR{fz!oU#2>G(#wfzS8OElZcyL&-cv)=jxlrR2G| z4Fc<7V7Z;t#V>@7Makh+u@deFz5vs5r;16&zJj+Zu48=j(SQPycf8g|&?hGm%4 zB;8^3d%Z77NimRfEQ-L&@{lif5RnI5B}0Ec{dI5$A$R0Cc==Sdf(HEY1p#*ScuHzW z&e`6%Z3Y>M5A})DC0ed(&$=0o;J9~%4H{E3WFi?JeXYp79Xr!G-y9f1%M+tNR&Ua| zOlfqPRP?cyA@mJw%ihu_txV@qZTIh4o-MO00=Pn%YBSHO4v(1zvoo<04~sl9!ieoy zZIlj^f?Xl!v~^j62@SpWOwSR*T*MlU2AL;Bn&H*&BttnIw%M|Zt}~OcBz72J;tF&L z?=Y{l)`x`*q((WeUmDh<7IpP89|X%c{)DIs>gjD^C53-Bve%E>QZr(i&Sgq>Y>=az zwfa2*9$im4-QcmgiD0aJYIZNdaG0qN$#4+dt)@ELQIW8 z)QmJig;=?e+OSNmG@jSBGT!)H?ez{=+j|AYo2uDu5mzMyOrrw4cGpWgwf zBwH%IyR*sgn^wK;d7SxUhg4Kj=pWWF3XV8D8xyiY#OON{U;B--Kz4~@_>p2AmLI1t z^(iW;{!Lut8-%gZw1>p|^lTqhvn0vBpeI61tT9W^I8xaiU+5U6sU=Nushe=fa2k=p p$6XsXRO5K=?*ISaKCcfk*vyj46p! Date: Sun, 1 Oct 2017 16:21:20 -0500 Subject: [PATCH 02/11] Videoteca repelis MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Este canal ya tenia disponible la opción de añadir a la videoteca pero debido a su configuración solo en un par de secciones al dar click derecho para ver las opciones, no en su totalidad. update repelis.py --- plugin.video.alfa/channels/repelis.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/plugin.video.alfa/channels/repelis.py b/plugin.video.alfa/channels/repelis.py index a80b4fec..67fb5234 100644 --- a/plugin.video.alfa/channels/repelis.py +++ b/plugin.video.alfa/channels/repelis.py @@ -259,7 +259,15 @@ def findvideos(item): itemlist.append(Item(channel=item.channel, action="play", title=scrapedtitle, extra=title, url=url, fanart=item.thumbnail, thumbnail=item.thumbnail, plot=splot, language=scrapedlang, quality=scrapedquality, server=server)) - + if itemlist: + itemlist.append(Item(channel=item.channel)) + itemlist.append(item.clone(channel="trailertools", title="Buscar Tráiler", action="buscartrailer", + text_color="magenta")) + # Opción "Añadir esta película a la biblioteca de KODI" + if config.get_videolibrary_support(): + itemlist.append(Item(channel=item.channel, title="Añadir pelicula a la videoteca", text_color="green", + action="add_pelicula_to_library", url=item.url, thumbnail=item.thumbnail, + fulltitle=item.fulltitle)) return itemlist @@ -391,4 +399,4 @@ def decode(string): output = output.decode('utf8') - return output \ No newline at end of file + return output From d781e36e3816501d15da549fa5f9cc8a56d6627b Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 2 Oct 2017 10:30:25 -0300 Subject: [PATCH 03/11] Cambio de icono --- .../general/default/thumb_channels_horror.png | Bin 16475 -> 17547 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/plugin.video.alfa/resources/media/general/default/thumb_channels_horror.png b/plugin.video.alfa/resources/media/general/default/thumb_channels_horror.png index a7a644144d0d498157cc59d0d237164ec61772a2..cf5b7b1fbc23302af5fcead7de1a51b851d0a25a 100644 GIT binary patch literal 17547 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 p$6XsXRO5K=?*ISaKCcfk*vyj46p! Date: Mon, 2 Oct 2017 16:30:58 -0300 Subject: [PATCH 04/11] Nuevas Novedades --- plugin.video.alfa/channels/allcalidad.json | 16 ++++++ plugin.video.alfa/channels/allcalidad.py | 12 +++++ .../channels/cineasiaenlinea.json | 16 ++++++ plugin.video.alfa/channels/cineasiaenlinea.py | 19 +++++-- plugin.video.alfa/channels/cinecalidad.json | 8 +++ plugin.video.alfa/channels/cinecalidad.py | 2 + plugin.video.alfa/channels/estadepelis.json | 8 +++ plugin.video.alfa/channels/estadepelis.py | 6 ++- plugin.video.alfa/channels/inkapelis.json | 8 +++ plugin.video.alfa/channels/inkapelis.py | 18 +++++-- plugin.video.alfa/channels/lacajita.json | 8 +++ plugin.video.alfa/channels/lacajita.py | 24 +++++++++ plugin.video.alfa/channels/locopelis.json | 8 +++ plugin.video.alfa/channels/locopelis.py | 3 ++ plugin.video.alfa/channels/maxipelis.json | 3 +- plugin.video.alfa/channels/pedropolis.json | 8 +++ plugin.video.alfa/channels/pedropolis.py | 2 + plugin.video.alfa/channels/peliculasnu.json | 8 +++ plugin.video.alfa/channels/peliculasnu.py | 12 +++-- plugin.video.alfa/channels/pelisfox.json | 8 +++ plugin.video.alfa/channels/pelisfox.py | 9 ++-- plugin.video.alfa/channels/pelisgratis.json | 8 +++ plugin.video.alfa/channels/pelisgratis.py | 2 + plugin.video.alfa/channels/pelisplanet.json | 8 +++ plugin.video.alfa/channels/pelisplanet.py | 2 + plugin.video.alfa/channels/playmax.json | 8 --- plugin.video.alfa/channels/sipeliculas.json | 24 +++++++++ plugin.video.alfa/channels/sipeliculas.py | 27 ++++++++++ plugin.video.alfa/channels/vepelis.json | 16 ++++++ plugin.video.alfa/channels/vepelis.py | 27 ++++++++++ plugin.video.alfa/channels/verpelis.json | 48 ++++++++++++------ plugin.video.alfa/channels/verpelis.py | 25 +++++++++ plugin.video.alfa/channels/yaske.json | 8 +++ plugin.video.alfa/channels/yaske.py | 2 + plugin.video.alfa/channels/zonatorrent.json | 24 +++++++++ plugin.video.alfa/channels/zonatorrent.py | 27 ++++++++++ .../general/default/thumb_channels_horror.png | Bin 17547 -> 27812 bytes 37 files changed, 417 insertions(+), 45 deletions(-) diff --git a/plugin.video.alfa/channels/allcalidad.json b/plugin.video.alfa/channels/allcalidad.json index 324278a5..18c7397d 100755 --- a/plugin.video.alfa/channels/allcalidad.json +++ b/plugin.video.alfa/channels/allcalidad.json @@ -18,6 +18,14 @@ "direct" ], "settings": [ + { + "id": "modo_grafico", + "type": "bool", + "label": "Buscar información extra", + "default": true, + "enabled": true, + "visible": true + }, { "id": "include_in_global_search", "type": "bool", @@ -41,6 +49,14 @@ "default": true, "enabled": true, "visible": true + }, + { + "id": "include_in_newest_terror", + "type": "bool", + "label": "Incluir en Novedades - terror", + "default": true, + "enabled": true, + "visible": true } ] } diff --git a/plugin.video.alfa/channels/allcalidad.py b/plugin.video.alfa/channels/allcalidad.py index ede804b0..96d115d9 100755 --- a/plugin.video.alfa/channels/allcalidad.py +++ b/plugin.video.alfa/channels/allcalidad.py @@ -3,11 +3,20 @@ from core import httptools from core import scrapertools from core import servertools +from core import tmdb from core.item import Item from platformcode import config, logger +__channel__='allcalidad' + host = "http://allcalidad.com/" +try: + __modo_grafico__ = config.get_setting('modo_grafico', __channel__) +except: + __modo_grafico__ = True + + def mainlist(item): logger.info() itemlist = [] @@ -28,6 +37,8 @@ def newest(categoria): item.url = host elif categoria == 'infantiles': item.url = host + 'category/animacion/' + elif categoria == 'terror': + item.url = host + 'category/torror/' itemlist = peliculas(item) if "Pagina" in itemlist[-1].title: itemlist.pop() @@ -98,6 +109,7 @@ def peliculas(item): new_item.infoLabels['year'] = int(year) itemlist.append(new_item) url_pagina = scrapertools.find_single_match(data, 'next" href="([^"]+)') + tmdb.set_infoLabels_itemlist(itemlist, __modo_grafico__) if url_pagina != "": pagina = "Pagina: " + scrapertools.find_single_match(url_pagina, "page/([0-9]+)") itemlist.append(Item(channel = item.channel, action = "peliculas", title = pagina, url = url_pagina)) diff --git a/plugin.video.alfa/channels/cineasiaenlinea.json b/plugin.video.alfa/channels/cineasiaenlinea.json index 2ef9c1a6..b42bf5d5 100755 --- a/plugin.video.alfa/channels/cineasiaenlinea.json +++ b/plugin.video.alfa/channels/cineasiaenlinea.json @@ -26,6 +26,14 @@ "vos" ], "settings": [ + { + "id": "modo_grafico", + "type": "bool", + "label": "Buscar información extra", + "default": true, + "enabled": true, + "visible": true + }, { "id": "include_in_global_search", "type": "bool", @@ -42,6 +50,14 @@ "enabled": true, "visible": true }, + { + "id": "include_in_newest_terror", + "type": "bool", + "label": "Incluir en Novedades - terror", + "default": true, + "enabled": true, + "visible": true + }, { "id": "perfil", "type": "list", diff --git a/plugin.video.alfa/channels/cineasiaenlinea.py b/plugin.video.alfa/channels/cineasiaenlinea.py index 17a25c83..cefff938 100755 --- a/plugin.video.alfa/channels/cineasiaenlinea.py +++ b/plugin.video.alfa/channels/cineasiaenlinea.py @@ -5,10 +5,18 @@ import re from core import httptools from core import scrapertools from core import servertools +from core import tmdb from core.item import Item from platformcode import config, logger host = "http://www.cineasiaenlinea.com/" +__channel__='cineasiaenlinea' + +try: + __modo_grafico__ = config.get_setting('modo_grafico', __channel__) +except: + __modo_grafico__ = True + # Configuracion del canal __perfil__ = int(config.get_setting('perfil', 'cineasiaenlinea')) @@ -75,11 +83,13 @@ def newest(categoria): try: if categoria == 'peliculas': item.url = host + "archivos/peliculas" - item.action = "peliculas" - itemlist = peliculas(item) + elif categoria == 'terror': + item.url = host + "genero/terror" + item.action = "peliculas" + itemlist = peliculas(item) - if itemlist[-1].action == "peliculas": - itemlist.pop() + if itemlist[-1].action == "peliculas": + itemlist.pop() # Se captura la excepción, para no interrumpir al canal novedades si un canal falla except: @@ -110,6 +120,7 @@ def peliculas(item): thumbnail=scrapedthumbnail, infoLabels=infolab, contentTitle=title, contentType="movie", quality=calidad)) + tmdb.set_infoLabels_itemlist(itemlist, __modo_grafico__) next_page = scrapertools.find_single_match(data, '>>': itemlist.pop() diff --git a/plugin.video.alfa/channels/maxipelis.json b/plugin.video.alfa/channels/maxipelis.json index 98a27139..3231c6d0 100644 --- a/plugin.video.alfa/channels/maxipelis.json +++ b/plugin.video.alfa/channels/maxipelis.json @@ -14,8 +14,7 @@ } ], "categories": [ - "movie", - "adult" + "movie" ], "settings": [ { diff --git a/plugin.video.alfa/channels/pedropolis.json b/plugin.video.alfa/channels/pedropolis.json index f52134d9..6852cc86 100644 --- a/plugin.video.alfa/channels/pedropolis.json +++ b/plugin.video.alfa/channels/pedropolis.json @@ -67,6 +67,14 @@ "default": true, "enabled": true, "visible": true + }, + { + "id": "include_in_newest_terror", + "type": "bool", + "label": "Incluir en Novedades - terror", + "default": true, + "enabled": true, + "visible": true } ] } diff --git a/plugin.video.alfa/channels/pedropolis.py b/plugin.video.alfa/channels/pedropolis.py index 3bfec694..6baa5edc 100644 --- a/plugin.video.alfa/channels/pedropolis.py +++ b/plugin.video.alfa/channels/pedropolis.py @@ -222,6 +222,8 @@ def newest(categoria): item.url = host + 'movies/' elif categoria == 'infantiles': item.url = host + "genre/animacion/" + elif categoria == 'terror': + item.url = host + "genre/terror/" else: return [] diff --git a/plugin.video.alfa/channels/peliculasnu.json b/plugin.video.alfa/channels/peliculasnu.json index 38e44252..3a72a2c4 100755 --- a/plugin.video.alfa/channels/peliculasnu.json +++ b/plugin.video.alfa/channels/peliculasnu.json @@ -46,6 +46,14 @@ "enabled": true, "visible": true }, + { + "id": "include_in_newest_terror", + "type": "bool", + "label": "Incluir en Novedades - terror", + "default": true, + "enabled": true, + "visible": true + }, { "id": "modo_grafico", "type": "bool", diff --git a/plugin.video.alfa/channels/peliculasnu.py b/plugin.video.alfa/channels/peliculasnu.py index 8d8a5a5e..592862c6 100644 --- a/plugin.video.alfa/channels/peliculasnu.py +++ b/plugin.video.alfa/channels/peliculasnu.py @@ -78,12 +78,14 @@ def newest(categoria): try: if categoria == "peliculas": item.url = host - item.from_newest = True - item.action = "entradas" - itemlist = entradas(item) + elif categoria == "terror": + item.url = host+"terror/" + item.from_newest = True + item.action = "entradas" + itemlist = entradas(item) - if itemlist[-1].action == "entradas": - itemlist.pop() + if itemlist[-1].action == "entradas": + itemlist.pop() # Se captura la excepción, para no interrumpir al canal novedades si un canal falla except: diff --git a/plugin.video.alfa/channels/pelisfox.json b/plugin.video.alfa/channels/pelisfox.json index 3f94badb..ba226d07 100755 --- a/plugin.video.alfa/channels/pelisfox.json +++ b/plugin.video.alfa/channels/pelisfox.json @@ -49,6 +49,14 @@ "default": true, "enabled": true, "visible": true + }, + { + "id": "include_in_newest_terror", + "type": "bool", + "label": "Incluir en Novedades - terror", + "default": true, + "enabled": true, + "visible": true } ] } diff --git a/plugin.video.alfa/channels/pelisfox.py b/plugin.video.alfa/channels/pelisfox.py index fea2249c..fc499fe2 100644 --- a/plugin.video.alfa/channels/pelisfox.py +++ b/plugin.video.alfa/channels/pelisfox.py @@ -293,11 +293,12 @@ def newest(categoria): try: if categoria == 'peliculas': item.url = host + '/estrenos/' - item.extra = 'peliculas' elif categoria == 'infantiles': - item.url = host + 'http://pelisfox.tv/peliculas/animacion/' - item.extra = 'peliculas' - itemlist = todas(item) + item.url = host + '/peliculas/animacion/' + elif categoria == 'terror': + item.url = host + '/peliculas/terror/' + item.extra = 'peliculas' + itemlist = lista(item) if itemlist[-1].title == 'Siguiente >>>': itemlist.pop() except: diff --git a/plugin.video.alfa/channels/pelisgratis.json b/plugin.video.alfa/channels/pelisgratis.json index 7f5b5e5d..5bb39d64 100755 --- a/plugin.video.alfa/channels/pelisgratis.json +++ b/plugin.video.alfa/channels/pelisgratis.json @@ -40,6 +40,14 @@ "default": true, "enabled": true, "visible": true + }, + { + "id": "include_in_newest_terror", + "type": "bool", + "label": "Incluir en Novedades - terror", + "default": true, + "enabled": true, + "visible": true } ] } \ No newline at end of file diff --git a/plugin.video.alfa/channels/pelisgratis.py b/plugin.video.alfa/channels/pelisgratis.py index c415d561..1cb80530 100755 --- a/plugin.video.alfa/channels/pelisgratis.py +++ b/plugin.video.alfa/channels/pelisgratis.py @@ -254,6 +254,8 @@ def newest(categoria): item.url = host + 'estrenos' elif categoria == 'infantiles': item.url = host + 'animacion' + elif categoria == 'terror': + item.url = host + 'terror' itemlist = lista(item) if itemlist[-1].title == 'Siguiente >>>': itemlist.pop() diff --git a/plugin.video.alfa/channels/pelisplanet.json b/plugin.video.alfa/channels/pelisplanet.json index d5c61c97..9c5f62a3 100644 --- a/plugin.video.alfa/channels/pelisplanet.json +++ b/plugin.video.alfa/channels/pelisplanet.json @@ -60,6 +60,14 @@ "default": true, "enabled": true, "visible": true + }, + { + "id": "include_in_newest_terror", + "type": "bool", + "label": "Incluir en Novedades - terror", + "default": true, + "enabled": true, + "visible": true } ] } diff --git a/plugin.video.alfa/channels/pelisplanet.py b/plugin.video.alfa/channels/pelisplanet.py index 83306a3a..bca441ec 100644 --- a/plugin.video.alfa/channels/pelisplanet.py +++ b/plugin.video.alfa/channels/pelisplanet.py @@ -140,6 +140,8 @@ def newest(categoria): item.url = host elif categoria == 'infantiles': item.url = host + "genero/animacion-e-infantil/" + elif categoria == 'terror': + item.url = host + "genero/terror/" else: return [] diff --git a/plugin.video.alfa/channels/playmax.json b/plugin.video.alfa/channels/playmax.json index b850ccc6..5717c5a3 100755 --- a/plugin.video.alfa/channels/playmax.json +++ b/plugin.video.alfa/channels/playmax.json @@ -71,14 +71,6 @@ "enabled": true, "visible": true }, - { - "id": "include_in_newest_infantiles", - "type": "bool", - "label": "Incluir en Novedades - Infantiles", - "default": false, - "enabled": true, - "visible": true - }, { "id": "modo_grafico", "type": "bool", diff --git a/plugin.video.alfa/channels/sipeliculas.json b/plugin.video.alfa/channels/sipeliculas.json index 62377c04..d7f7a1f2 100755 --- a/plugin.video.alfa/channels/sipeliculas.json +++ b/plugin.video.alfa/channels/sipeliculas.json @@ -28,6 +28,30 @@ "default": false, "enabled": false, "visible": false + }, + { + "id": "include_in_newest_peliculas", + "type": "bool", + "label": "Incluir en Novedades - Peliculas", + "default": true, + "enabled": true, + "visible": true + }, + { + "id": "include_in_newest_infantiles", + "type": "bool", + "label": "Incluir en Novedades - Infantiles", + "default": true, + "enabled": true, + "visible": true + }, + { + "id": "include_in_newest_terror", + "type": "bool", + "label": "Incluir en Novedades - terror", + "default": true, + "enabled": true, + "visible": true } ] } \ No newline at end of file diff --git a/plugin.video.alfa/channels/sipeliculas.py b/plugin.video.alfa/channels/sipeliculas.py index 95ba9295..9d8a56e4 100755 --- a/plugin.video.alfa/channels/sipeliculas.py +++ b/plugin.video.alfa/channels/sipeliculas.py @@ -141,3 +141,30 @@ def play(item): server=enlaces[0][2], thumbnail=thumbnail, folder=False)) return itemlist + +def newest(categoria): + logger.info() + itemlist = [] + item = Item() + try: + if categoria == 'peliculas': + item.url = host + '/cartelera/' + elif categoria == 'infantiles': + item.url = host + "/online/animacion" + elif categoria == 'terror': + item.url = host + "/online/terror/" + else: + return [] + + itemlist = lista(item) + if itemlist[-1].title == "» Siguiente »": + itemlist.pop() + + # Se captura la excepción, para no interrumpir al canal novedades si un canal falla + except: + import sys + for line in sys.exc_info(): + logger.error("{0}".format(line)) + return [] + + return itemlist \ No newline at end of file diff --git a/plugin.video.alfa/channels/vepelis.json b/plugin.video.alfa/channels/vepelis.json index 535de3d5..e1c5517e 100755 --- a/plugin.video.alfa/channels/vepelis.json +++ b/plugin.video.alfa/channels/vepelis.json @@ -28,6 +28,22 @@ "label": "Incluir en busqueda global", "type": "bool", "visible": true + }, + { + "id": "include_in_newest_peliculas", + "type": "bool", + "label": "Incluir en Novedades - Peliculas", + "default": true, + "enabled": true, + "visible": true + }, + { + "id": "include_in_newest_terror", + "type": "bool", + "label": "Incluir en Novedades - terror", + "default": true, + "enabled": true, + "visible": true } ] } \ No newline at end of file diff --git a/plugin.video.alfa/channels/vepelis.py b/plugin.video.alfa/channels/vepelis.py index 574cce96..1e9f9ef7 100755 --- a/plugin.video.alfa/channels/vepelis.py +++ b/plugin.video.alfa/channels/vepelis.py @@ -10,6 +10,7 @@ from core import tmdb from core.item import Item from platformcode import config, logger +host = 'http://vepelis.com/' def mainlist(item): logger.info() @@ -250,3 +251,29 @@ def search(item, texto): for line in sys.exc_info(): logger.error("%s" % line) return [] + +def newest(categoria): + logger.info() + itemlist = [] + item = Item() + try: + if categoria == 'peliculas': + item.url = host + 'ultimas-peliculas' + itemlist = listarpeliculas(item) + elif categoria == 'terror': + item.url = host + "categoria-terror/" + itemlist = listado2(item) + else: + return [] + + if itemlist[-1].title == "!Pagina Siguiente ->": + itemlist.pop() + + # Se captura la excepción, para no interrumpir al canal novedades si un canal falla + except: + import sys + for line in sys.exc_info(): + logger.error("{0}".format(line)) + return [] + + return itemlist diff --git a/plugin.video.alfa/channels/verpelis.json b/plugin.video.alfa/channels/verpelis.json index 4ce5372b..d12fd5d7 100644 --- a/plugin.video.alfa/channels/verpelis.json +++ b/plugin.video.alfa/channels/verpelis.json @@ -23,21 +23,37 @@ "direct" ], "settings": [ - { - "id": "modo_grafico", - "type": "bool", - "label": "Buscar información extra", - "default": true, - "enabled": true, - "visible": true - }, - { - "id": "include_in_global_search", - "type": "bool", - "label": "Incluir en busqueda global", - "default": true, - "enabled": true, - "visible": true - } + { + "id": "modo_grafico", + "type": "bool", + "label": "Buscar información extra", + "default": true, + "enabled": true, + "visible": true + }, + { + "id": "include_in_global_search", + "type": "bool", + "label": "Incluir en busqueda global", + "default": true, + "enabled": true, + "visible": true + }, + { + "id": "include_in_newest_peliculas", + "type": "bool", + "label": "Incluir en Novedades - Peliculas", + "default": true, + "enabled": true, + "visible": true + }, + { + "id": "include_in_newest_terror", + "type": "bool", + "label": "Incluir en Novedades - terror", + "default": true, + "enabled": true, + "visible": true + } ] } \ No newline at end of file diff --git a/plugin.video.alfa/channels/verpelis.py b/plugin.video.alfa/channels/verpelis.py index 656298ce..5f9a2ac7 100644 --- a/plugin.video.alfa/channels/verpelis.py +++ b/plugin.video.alfa/channels/verpelis.py @@ -198,3 +198,28 @@ def play(item): )) return itemlist + +def newest(categoria): + logger.info() + itemlist = [] + item = Item() + try: + if categoria == 'peliculas': + item.url = host + '/ver/' + elif categoria == 'terror': + item.url = host + "/categoria/de-terror.htm" + else: + return [] + + itemlist = scraper(item) + if itemlist[-1].title == "» Siguiente »": + itemlist.pop() + + # Se captura la excepción, para no interrumpir al canal novedades si un canal falla + except: + import sys + for line in sys.exc_info(): + logger.error("{0}".format(line)) + return [] + + return itemlist diff --git a/plugin.video.alfa/channels/yaske.json b/plugin.video.alfa/channels/yaske.json index de44f7df..e46ecee0 100644 --- a/plugin.video.alfa/channels/yaske.json +++ b/plugin.video.alfa/channels/yaske.json @@ -70,6 +70,14 @@ "default": false, "enabled": true, "visible": true + }, + { + "id": "include_in_newest_terror", + "type": "bool", + "label": "Incluir en Novedades - terror", + "default": true, + "enabled": true, + "visible": true } ] } diff --git a/plugin.video.alfa/channels/yaske.py b/plugin.video.alfa/channels/yaske.py index 74024bc4..2f63fccc 100644 --- a/plugin.video.alfa/channels/yaske.py +++ b/plugin.video.alfa/channels/yaske.py @@ -73,6 +73,8 @@ def newest(categoria): item.url = HOST elif categoria == 'infantiles': item.url = HOST + "/genre/16/" + elif categoria == 'terror': + item.url = HOST + "/genre/27/" else: return [] diff --git a/plugin.video.alfa/channels/zonatorrent.json b/plugin.video.alfa/channels/zonatorrent.json index c12b81c3..add8e331 100644 --- a/plugin.video.alfa/channels/zonatorrent.json +++ b/plugin.video.alfa/channels/zonatorrent.json @@ -27,6 +27,30 @@ "default": true, "enabled": true, "visible": true + }, + { + "id": "include_in_newest_peliculas", + "type": "bool", + "label": "Incluir en Novedades - Peliculas", + "default": true, + "enabled": true, + "visible": true + }, + { + "id": "include_in_newest_infantiles", + "type": "bool", + "label": "Incluir en Novedades - Infantiles", + "default": true, + "enabled": true, + "visible": true + }, + { + "id": "include_in_newest_terror", + "type": "bool", + "label": "Incluir en Novedades - terror", + "default": true, + "enabled": true, + "visible": true } ] } diff --git a/plugin.video.alfa/channels/zonatorrent.py b/plugin.video.alfa/channels/zonatorrent.py index 8c637e7c..d9bede31 100644 --- a/plugin.video.alfa/channels/zonatorrent.py +++ b/plugin.video.alfa/channels/zonatorrent.py @@ -157,3 +157,30 @@ def findvideos(item): fulltitle=item.title, thumbnail=get_thumb("channels_torrent.png"))) return itemlist + +def newest(categoria): + logger.info() + itemlist = [] + item = Item() + try: + if categoria == 'peliculas': + item.url = HOST + elif categoria == 'infantiles': + item.url = HOST + "/animacion" + elif categoria == 'terror': + item.url = HOST + "/terror/" + else: + return [] + + itemlist = listado(item) + if itemlist[-1].title == ">> Página siguiente": + itemlist.pop() + + # Se captura la excepción, para no interrumpir al canal novedades si un canal falla + except: + import sys + for line in sys.exc_info(): + logger.error("{0}".format(line)) + return [] + + return itemlist diff --git a/plugin.video.alfa/resources/media/general/default/thumb_channels_horror.png b/plugin.video.alfa/resources/media/general/default/thumb_channels_horror.png index cf5b7b1fbc23302af5fcead7de1a51b851d0a25a..0d9abdf0ee2e3e4fc637df5a0e9bc2474b339a9a 100644 GIT binary patch literal 27812 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 literal 17547 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 Date: Tue, 3 Oct 2017 10:10:37 -0300 Subject: [PATCH 05/11] ajustes --- plugin.video.alfa/channels/hdfull.py | 2 +- plugin.video.alfa/channels/news.py | 1 - plugin.video.alfa/channels/zonatorrent.py | 12 +++++++++--- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/plugin.video.alfa/channels/hdfull.py b/plugin.video.alfa/channels/hdfull.py index ab5317da..bc2d90af 100644 --- a/plugin.video.alfa/channels/hdfull.py +++ b/plugin.video.alfa/channels/hdfull.py @@ -313,7 +313,7 @@ def fichas(item): for scrapedurl, scrapedthumbnail, scrapedlangs, scrapedrating, scrapedtitle, scrapedid in matches: thumbnail = scrapedthumbnail.replace("/tthumb/130x190/", "/thumbs/") - + language = '' title = scrapedtitle.strip() show = title contentTitle = scrapedtitle.strip() diff --git a/plugin.video.alfa/channels/news.py b/plugin.video.alfa/channels/news.py index 416f1c2c..7f384a67 100644 --- a/plugin.video.alfa/channels/news.py +++ b/plugin.video.alfa/channels/news.py @@ -46,7 +46,6 @@ def mainlist(item): set_category_context(new_item) itemlist.append(new_item) - logger.debug('list_canales: %s'%list_canales) if list_canales['terror']: thumbnail = get_thumb("channels_horror.png") new_item = Item(channel=item.channel, action="novedades", extra="terror", title="Peliculas de miedo!", diff --git a/plugin.video.alfa/channels/zonatorrent.py b/plugin.video.alfa/channels/zonatorrent.py index d9bede31..e983fdf8 100644 --- a/plugin.video.alfa/channels/zonatorrent.py +++ b/plugin.video.alfa/channels/zonatorrent.py @@ -123,7 +123,8 @@ def findvideos(item): logger.info() itemlist = [] - + language = '' + quality = '' data = re.sub(r"\n|\r|\t|\s{2}|()", "", httptools.downloadpage(item.url).data) data = re.sub(r""", '"', data) data = re.sub(r"<", '<', data) @@ -134,7 +135,9 @@ def findvideos(item): if len(titles) == len(urls): for i in range(0, len(titles)): if i > 0: - title = "Online %s " % titles[i].strip() + logger.debug('titles: %s' % titles[i].strip()) + language, quality = titles[i].split(' - ') + title = "%s" % titles[i].strip() else: title = titles[0] @@ -143,8 +146,11 @@ def findvideos(item): .headers.get("location", "") videourl = servertools.findvideos(urls[i]) if len(videourl) > 0: + server = videourl[0][0].capitalize() + title = '%s %s' % (server, title) itemlist.append(Item(channel=item.channel, action="play", title=title, url=videourl[0][1], - server=videourl[0][0], thumbnail=videourl[0][3], fulltitle=item.title)) + server=server, thumbnail=videourl[0][3], fulltitle=item.title, + language=language, quality=quality )) pattern = ']+href="([^"]+)"[^<]+]+>(.*?)]+>(.*?)' \ '(.*?)' From 4aa6208ae5182b28a9bd01296b1371f30c7cd113 Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 3 Oct 2017 12:22:51 -0300 Subject: [PATCH 06/11] Boton de todos/ninguno y categorias permanentes --- plugin.video.alfa/channels/news.py | 232 ++++++++++++++++------------- 1 file changed, 132 insertions(+), 100 deletions(-) diff --git a/plugin.video.alfa/channels/news.py b/plugin.video.alfa/channels/news.py index 7f384a67..9fd12030 100644 --- a/plugin.video.alfa/channels/news.py +++ b/plugin.video.alfa/channels/news.py @@ -37,49 +37,49 @@ def mainlist(item): logger.info() itemlist = [] - list_canales = get_channels_list() + list_canales, any_active = get_channels_list() - if list_canales['peliculas']: - thumbnail = get_thumb("channels_movie.png") - new_item = Item(channel=item.channel, action="novedades", extra="peliculas", title="Películas", - thumbnail=thumbnail) + #if list_canales['peliculas']: + thumbnail = get_thumb("channels_movie.png") + new_item = Item(channel=item.channel, action="novedades", extra="peliculas", title="Películas", + thumbnail=thumbnail) - set_category_context(new_item) - itemlist.append(new_item) - if list_canales['terror']: - thumbnail = get_thumb("channels_horror.png") - new_item = Item(channel=item.channel, action="novedades", extra="terror", title="Peliculas de miedo!", - thumbnail=thumbnail) - set_category_context(new_item) - itemlist.append(new_item) + set_category_context(new_item) + itemlist.append(new_item) + #if list_canales['terror']: + thumbnail = get_thumb("channels_horror.png") + new_item = Item(channel=item.channel, action="novedades", extra="terror", title="Peliculas de miedo!", + thumbnail=thumbnail) + set_category_context(new_item) + itemlist.append(new_item) - if list_canales['infantiles']: - thumbnail = get_thumb("channels_children.png") - new_item = Item(channel=item.channel, action="novedades", extra="infantiles", title="Para niños", - thumbnail=thumbnail) - set_category_context(new_item) - itemlist.append(new_item) + #if list_canales['infantiles']: + thumbnail = get_thumb("channels_children.png") + new_item = Item(channel=item.channel, action="novedades", extra="infantiles", title="Para niños", + thumbnail=thumbnail) + set_category_context(new_item) + itemlist.append(new_item) - if list_canales['series']: - thumbnail = get_thumb("channels_tvshow.png") - new_item = Item(channel=item.channel, action="novedades", extra="series", title="Episodios de series", - thumbnail=thumbnail) - set_category_context(new_item) - itemlist.append(new_item) + #if list_canales['series']: + thumbnail = get_thumb("channels_tvshow.png") + new_item = Item(channel=item.channel, action="novedades", extra="series", title="Episodios de series", + thumbnail=thumbnail) + set_category_context(new_item) + itemlist.append(new_item) - if list_canales['anime']: - thumbnail = get_thumb("channels_anime.png") - new_item = Item(channel=item.channel, action="novedades", extra="anime", title="Episodios de anime", - thumbnail=thumbnail) - set_category_context(new_item) - itemlist.append(new_item) + #if list_canales['anime']: + thumbnail = get_thumb("channels_anime.png") + new_item = Item(channel=item.channel, action="novedades", extra="anime", title="Episodios de anime", + thumbnail=thumbnail) + set_category_context(new_item) + itemlist.append(new_item) - if list_canales['documentales']: - thumbnail = get_thumb("channels_documentary.png") - new_item = Item(channel=item.channel, action="novedades", extra="documentales", title="Documentales", - thumbnail=thumbnail) - set_category_context(new_item) - itemlist.append(new_item) + #if list_canales['documentales']: + thumbnail = get_thumb("channels_documentary.png") + new_item = Item(channel=item.channel, action="novedades", extra="documentales", title="Documentales", + thumbnail=thumbnail) + set_category_context(new_item) + itemlist.append(new_item) return itemlist @@ -96,7 +96,7 @@ def get_channels_list(): logger.info() list_canales = {'peliculas': [], 'terror': [], 'infantiles': [], 'series': [], 'anime': [], 'documentales': []} - + any_active = False # Rellenar listas de canales disponibles channels_path = os.path.join(config.get_runtime_path(), "channels", '*.json') channel_language = config.get_setting("channel_language", default="all") @@ -119,13 +119,15 @@ def get_channels_list(): continue # Incluir en cada categoria, si en su configuracion el canal esta activado para mostrar novedades + for categoria in list_canales: include_in_newest = config.get_setting("include_in_newest_" + categoria, channel_id) if include_in_newest: channels_id_name[channel_id] = channel_parameters["title"] list_canales[categoria].append((channel_id, channel_parameters["title"])) + any_active = True - return list_canales + return list_canales, any_active def novedades(item): @@ -148,75 +150,80 @@ def novedades(item): multithread = True progreso = platformtools.dialog_progress(item.category, "Buscando canales...") - list_canales = get_channels_list() + list_canales, any_active = get_channels_list() + if any_active and len(list_canales[item.extra])>0: + import math + # fix float porque la division se hace mal en python 2.x + number_of_channels = float(100) / len(list_canales[item.extra]) - import math - # fix float porque la division se hace mal en python 2.x - number_of_channels = float(100) / len(list_canales[item.extra]) + for index, channel in enumerate(list_canales[item.extra]): + channel_id, channel_title = channel + percentage = int(math.ceil((index + 1) * number_of_channels)) - for index, channel in enumerate(list_canales[item.extra]): - channel_id, channel_title = channel - percentage = int(math.ceil((index + 1) * number_of_channels)) + # if progreso.iscanceled(): + # progreso.close() + # logger.info("Búsqueda cancelada") + # return itemlist - # if progreso.iscanceled(): - # progreso.close() - # logger.info("Búsqueda cancelada") - # return itemlist + # Modo Multi Thread + if multithread: + t = Thread(target=get_newest, args=[channel_id, item.extra], name=channel_title) + t.start() + threads.append(t) + progreso.update(percentage, "", "Buscando en '%s'..." % channel_title) - # Modo Multi Thread + # Modo single Thread + else: + logger.info("Obteniendo novedades de channel_id=" + channel_id) + progreso.update(percentage, "", "Buscando en '%s'..." % channel_title) + get_newest(channel_id, item.extra) + + # Modo Multi Thread: esperar q todos los hilos terminen if multithread: - t = Thread(target=get_newest, args=[channel_id, item.extra], name=channel_title) - t.start() - threads.append(t) - progreso.update(percentage, "", "Buscando en '%s'..." % channel_title) - - # Modo single Thread - else: - logger.info("Obteniendo novedades de channel_id=" + channel_id) - progreso.update(percentage, "", "Buscando en '%s'..." % channel_title) - get_newest(channel_id, item.extra) - - # Modo Multi Thread: esperar q todos los hilos terminen - if multithread: - pendent = [a for a in threads if a.isAlive()] - t = float(100) / len(pendent) - while pendent: - index = (len(threads) - len(pendent)) + 1 - percentage = int(math.ceil(index * t)) - - list_pendent_names = [a.getName() for a in pendent] - mensaje = "Buscando en %s" % (", ".join(list_pendent_names)) - progreso.update(percentage, "Finalizado en %d/%d canales..." % (len(threads) - len(pendent), len(threads)), - mensaje) - logger.debug(mensaje) - - if progreso.iscanceled(): - logger.info("Busqueda de novedades cancelada") - break - - time.sleep(0.5) pendent = [a for a in threads if a.isAlive()] + t = float(100) / len(pendent) + while pendent: + index = (len(threads) - len(pendent)) + 1 + percentage = int(math.ceil(index * t)) - mensaje = "Resultados obtenidos: %s | Tiempo: %2.f segundos" % (len(list_newest), time.time() - start_time) - progreso.update(100, mensaje, " ", " ") - logger.info(mensaje) - start_time = time.time() - # logger.debug(start_time) + list_pendent_names = [a.getName() for a in pendent] + mensaje = "Buscando en %s" % (", ".join(list_pendent_names)) + progreso.update(percentage, "Finalizado en %d/%d canales..." % (len(threads) - len(pendent), len(threads)), + mensaje) + logger.debug(mensaje) - result_mode = config.get_setting("result_mode", "news") - if result_mode == 0: # Agrupados por contenido - ret = group_by_content(list_newest) - elif result_mode == 1: # Agrupados por canales - ret = group_by_channel(list_newest) - else: # Sin agrupar - ret = no_group(list_newest) + if progreso.iscanceled(): + logger.info("Busqueda de novedades cancelada") + break - while time.time() - start_time < 2: - # mostrar cuadro de progreso con el tiempo empleado durante almenos 2 segundos - time.sleep(0.5) + time.sleep(0.5) + pendent = [a for a in threads if a.isAlive()] - progreso.close() - return ret + mensaje = "Resultados obtenidos: %s | Tiempo: %2.f segundos" % (len(list_newest), time.time() - start_time) + progreso.update(100, mensaje, " ", " ") + logger.info(mensaje) + start_time = time.time() + # logger.debug(start_time) + + result_mode = config.get_setting("result_mode", "news") + if result_mode == 0: # Agrupados por contenido + ret = group_by_content(list_newest) + elif result_mode == 1: # Agrupados por canales + ret = group_by_channel(list_newest) + else: # Sin agrupar + ret = no_group(list_newest) + + while time.time() - start_time < 2: + # mostrar cuadro de progreso con el tiempo empleado durante almenos 2 segundos + time.sleep(0.5) + + progreso.close() + return ret + else: + no_channels = platformtools.dialog_ok('Novedades - %s'%item.extra, 'No se ha definido ningun canal para la ' + 'busqueda.','Utilice el menu contextual ' + 'para agregar al menos uno') + return def get_newest(channel_id, categoria): @@ -463,10 +470,35 @@ def setting_channel(item): list_controls.append(control) caption = "Canales incluidos en Novedades " + item.title.replace("Canales incluidos en: ", "- ").strip() - return platformtools.show_channel_settings(list_controls=list_controls, callback="save_settings", item=item, - caption=caption, custom_button={"visible": False}) + if config.get_setting("custom_button_value_news", item.channel): + custom_button_label = "Ninguno" + else: + custom_button_label = "Todos" + + return platformtools.show_channel_settings(list_controls=list_controls, + caption="Canales incluidos en Novedades", + callback="save_settings", item=item, + custom_button={'visible': True, + 'function': "cb_custom_button", + 'close': False, + 'label': custom_button_label}) def save_settings(item, dict_values): for v in dict_values: config.set_setting("include_in_newest_" + item.extra, dict_values[v], v) + + +def cb_custom_button(item, dict_values): + value = config.get_setting("custom_button_value_news", item.channel) + if value == "": + value = False + + for v in dict_values.keys(): + dict_values[v] = not value + + if config.set_setting("custom_button_value_news", not value, item.channel) == True: + return {"label": "Ninguno"} + else: + return {"label": "Todos"} + From 6a1afb60fff7a594067091c14ab23f8f457af481 Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Tue, 3 Oct 2017 11:19:10 -0500 Subject: [PATCH 07/11] Actualizados --- plugin.video.alfa/channels/allpeliculas.py | 35 ++++++++++++---------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/plugin.video.alfa/channels/allpeliculas.py b/plugin.video.alfa/channels/allpeliculas.py index 63481210..f1119230 100644 --- a/plugin.video.alfa/channels/allpeliculas.py +++ b/plugin.video.alfa/channels/allpeliculas.py @@ -60,32 +60,39 @@ def generos(item): def findvideos(item): logger.info() itemlist = [] + infoLabels = {} data = httptools.downloadpage(item.url).data patron = 'data-link="([^"]+).*?' patron += '>([^<]+)' matches = scrapertools.find_multiple_matches(data, patron) for url, calidad in matches: - itemlist.append(Item( + itemlist.append(item.clone( channel = item.channel, action = "play", title = calidad, + fulltitle = item.title, + contentThumbnail = item.thumbnail, url = url, )) - itemlist = servertools.get_servers_itemlist(itemlist) - itemlist.append(Item(channel=item.channel)) - if config.get_videolibrary_support(): - itemlist.append(Item(channel=item.channel, title="Añadir a la videoteca", text_color="green", - filtro=True, action="add_pelicula_to_library", url=item.url, thumbnail = item.thumbnail, - infoLabels={'title': item.fulltitle}, fulltitle=item.fulltitle - )) try: tmdb.set_infoLabels(itemlist, __modo_grafico__) except: pass - + itemlist = servertools.get_servers_itemlist(itemlist) + itemlist.append(Item(channel=item.channel)) + if config.get_videolibrary_support(): + itemlist.append(Item(channel=item.channel, title="Añadir a la videoteca", text_color="green", + action="add_pelicula_to_library", url=item.url, thumbnail = item.thumbnail, + )) return itemlist +def play(item): + logger.info() + item.thumbnail = item.contentThumbnail + return [item] + + def lista(item): logger.info() itemlist = [] @@ -112,6 +119,10 @@ def lista(item): itemlist.append(item.clone(action="findvideos", title=title, fulltitle=title, url=url, thumbnail=thumb, plot=plot, context=["buscar_trailer"], contentTitle=title, contentType="movie")) + try: + tmdb.set_infoLabels(itemlist, __modo_grafico__) + except: + pass pagina = scrapertools.find_single_match(item.url, 'page=([0-9]+)') item.url = item.url.replace(pagina, "") if pagina == "": @@ -121,12 +132,6 @@ def lista(item): if item.extra != "busqueda": itemlist.append(Item(channel = item.channel, action="lista", title="Pagina %s" %pagina, url=item.url, extra1 = item.extra1 )) - try: - # Obtenemos los datos basicos de todas las peliculas mediante multihilos - tmdb.set_infoLabels_itemlist(itemlist, __modo_grafico__) - except: - pass - return itemlist def search(item, texto): From e4a0ad9709dc699482f96eb9df63d7e948319073 Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Tue, 3 Oct 2017 11:50:04 -0500 Subject: [PATCH 08/11] Update allpeliculas.py --- plugin.video.alfa/channels/allpeliculas.py | 1 - 1 file changed, 1 deletion(-) diff --git a/plugin.video.alfa/channels/allpeliculas.py b/plugin.video.alfa/channels/allpeliculas.py index f1119230..c67fca77 100644 --- a/plugin.video.alfa/channels/allpeliculas.py +++ b/plugin.video.alfa/channels/allpeliculas.py @@ -60,7 +60,6 @@ def generos(item): def findvideos(item): logger.info() itemlist = [] - infoLabels = {} data = httptools.downloadpage(item.url).data patron = 'data-link="([^"]+).*?' patron += '>([^<]+)' From 35ec60036d3404657dbac5fd73596e084e65d4d6 Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Tue, 3 Oct 2017 12:58:36 -0500 Subject: [PATCH 09/11] Update allcalidad.py --- plugin.video.alfa/channels/allcalidad.py | 33 ++++++++++++------------ 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/plugin.video.alfa/channels/allcalidad.py b/plugin.video.alfa/channels/allcalidad.py index ede804b0..2022104a 100755 --- a/plugin.video.alfa/channels/allcalidad.py +++ b/plugin.video.alfa/channels/allcalidad.py @@ -3,6 +3,7 @@ from core import httptools from core import scrapertools from core import servertools +from core import tmdb from core.item import Item from platformcode import config, logger @@ -84,19 +85,19 @@ def peliculas(item): year = scrapertools.find_single_match(varios, 'Año.*?kinopoisk">([^<]+)') year = scrapertools.find_single_match(year, '[0-9]{4}') mtitulo = titulo + " (" + idioma + ") (" + year + ")" - new_item = Item(channel = item.channel, - action = "findvideos", - title = mtitulo, - fulltitle = titulo, - thumbnail = thumbnail, - url = url, - contentTitle = titulo, - contentType="movie", - language = idioma - ) if year: - new_item.infoLabels['year'] = int(year) - itemlist.append(new_item) + item.infoLabels['year'] = int(year) + itemlist.append(item.clone(channel = item.channel, + action = "findvideos", + title = mtitulo, + fulltitle = titulo, + thumbnail = thumbnail, + url = url, + contentTitle = titulo, + contentType="movie", + language = idioma + )) + tmdb.set_infoLabels(itemlist, True) url_pagina = scrapertools.find_single_match(data, 'next" href="([^"]+)') if url_pagina != "": pagina = "Pagina: " + scrapertools.find_single_match(url_pagina, "page/([0-9]+)") @@ -121,13 +122,12 @@ def findvideos(item): elif "vimeo" in url: url += "|" + "http://www.allcalidad.com" itemlist.append( - Item(channel = item.channel, + item.clone(channel = item.channel, action = "play", title = titulo, - fulltitle = item.fulltitle, - thumbnail = item.thumbnail, url = url )) + tmdb.set_infoLabels(itemlist, True) itemlist = servertools.get_servers_itemlist(itemlist, lambda i: i.title % i.server.capitalize()) if itemlist: itemlist.append(Item(channel = item.channel)) @@ -137,8 +137,7 @@ def findvideos(item): if item.extra != "library": if config.get_videolibrary_support(): itemlist.append(Item(channel=item.channel, title="Añadir a la videoteca", text_color="green", - filtro=True, action="add_pelicula_to_library", url=item.url, thumbnail = item.thumbnail, - infoLabels={'title': item.fulltitle}, fulltitle=item.fulltitle + action="add_pelicula_to_library", url=item.url, thumbnail = item.thumbnail )) return itemlist From bc6fd2658d22618520f0c7cb12eb0bc5316101ae Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Tue, 3 Oct 2017 15:17:55 -0500 Subject: [PATCH 10/11] Update cinetux.py --- plugin.video.alfa/channels/cinetux.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/plugin.video.alfa/channels/cinetux.py b/plugin.video.alfa/channels/cinetux.py index f3682c1f..116895a5 100644 --- a/plugin.video.alfa/channels/cinetux.py +++ b/plugin.video.alfa/channels/cinetux.py @@ -152,6 +152,7 @@ def peliculas(item): new_item.infoLabels['year'] = int(year) itemlist.append(new_item) + tmdb.set_infoLabels(itemlist, __modo_grafico__) # Extrae el paginador next_page_link = scrapertools.find_single_match(data, ' 0: title += " (Calidad " + scrapedcalidad.strip() + ")" if filtro_idioma == 3 or item.filtro: lista_enlaces.append(item.clone(title=title, action="play", text_color=color2, - url=scrapedurl, server=scrapedserver, idioma=scrapedlanguage, + url=scrapedurl, server=scrapedserver, extra=item.url, contentThumbnail = item.thumbnail, - language=scrapedlanguage)) + language=language)) else: idioma = dict_idiomas[language] if idioma == filtro_idioma: - lista_enlaces.append(item.clone(title=title, text_color=color2, action="play", url=scrapedurl, + lista_enlaces.append(item.clone(title=title, action="play", text_color=color2, + url=scrapedurl, server=scrapedserver, extra=item.url, contentThumbnail = item.thumbnail, - language=scrapedlanguage)) + language=language)) else: if language not in filtrados: filtrados.append(language) + lista_enlaces = servertools.get_servers_itemlist(lista_enlaces, lambda i: i.title % i.server.capitalize()) if filtro_idioma != 3: if len(filtrados) > 0: - title = "Mostrar enlaces filtrados en %s" % ", ".join(filtrados) + title = "Mostrar también enlaces filtrados en %s" % ", ".join(filtrados) lista_enlaces.append(item.clone(title=title, action="findvideos", url=item.url, text_color=color3, filtro=True)) - lista_enlaces = servertools.get_servers_itemlist(lista_enlaces, lambda i: i.title % i.server.capitalize()) return lista_enlaces From 08d9361f8c04835ad4ea225bccfb6d9d3e308d2c Mon Sep 17 00:00:00 2001 From: Alfa-Addon Date: Tue, 3 Oct 2017 18:15:36 -0400 Subject: [PATCH 11/11] v2.1.3 Halloween's version --- plugin.video.alfa/addon.xml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/plugin.video.alfa/addon.xml b/plugin.video.alfa/addon.xml index 3f943f9b..577e9bf4 100755 --- a/plugin.video.alfa/addon.xml +++ b/plugin.video.alfa/addon.xml @@ -1,5 +1,5 @@  - + @@ -19,13 +19,12 @@ [B]Estos son los cambios para esta versión:[/B] [COLOR green][B]Canales agregados y arreglos[/B][/COLOR] - » cinecalidad » estadepelis - » datoporn » seriesyonkis - » allcalidad » allpeliculas - » cartoonlatino » pasateatorrent - » vidz7 » zonatorrent - » gvideo » okru - » openload ¤ arreglos internos + » repelis » allcalidad + » cinetux » allpeliculas + » hdfull » zonatorrent + ¤ arreglos internos + + [COLOR green]Gracias a [COLOR yellow]prpeaprendiz[/COLOR] por su colaboración en esta versión[/COLOR] Navega con Kodi por páginas web para ver sus videos de manera fácil. Browse web pages using Kodi