├── .dockerignore ├── .gitignore ├── public ├── robots.txt ├── favicon.ico ├── fonts │ ├── vjs.ttf │ └── vjs.woff ├── css │ ├── images │ │ ├── logo.png │ │ ├── about.png │ │ ├── alert.png │ │ ├── arrow.png │ │ ├── poster.png │ │ ├── flags │ │ │ ├── ad.png │ │ │ ├── ae.png │ │ │ ├── af.png │ │ │ ├── ag.png │ │ │ ├── ai.png │ │ │ ├── al.png │ │ │ ├── am.png │ │ │ ├── an.png │ │ │ ├── ao.png │ │ │ ├── aq.png │ │ │ ├── ar.png │ │ │ ├── as.png │ │ │ ├── at.png │ │ │ ├── au.png │ │ │ ├── aw.png │ │ │ ├── az.png │ │ │ ├── ba.png │ │ │ ├── bb.png │ │ │ ├── bd.png │ │ │ ├── be.png │ │ │ ├── bf.png │ │ │ ├── bg.png │ │ │ ├── bh.png │ │ │ ├── bi.png │ │ │ ├── bj.png │ │ │ ├── bm.png │ │ │ ├── bn.png │ │ │ ├── bo.png │ │ │ ├── br.png │ │ │ ├── bs.png │ │ │ ├── bt.png │ │ │ ├── bw.png │ │ │ ├── by.png │ │ │ ├── bz.png │ │ │ ├── ca.png │ │ │ ├── cd.png │ │ │ ├── cf.png │ │ │ ├── cg.png │ │ │ ├── ch.png │ │ │ ├── ci.png │ │ │ ├── ck.png │ │ │ ├── cl.png │ │ │ ├── cm.png │ │ │ ├── cn.png │ │ │ ├── co.png │ │ │ ├── cr.png │ │ │ ├── cu.png │ │ │ ├── cv.png │ │ │ ├── cy.png │ │ │ ├── cz.png │ │ │ ├── de.png │ │ │ ├── dj.png │ │ │ ├── dk.png │ │ │ ├── dm.png │ │ │ ├── do.png │ │ │ ├── dz.png │ │ │ ├── ec.png │ │ │ ├── ee.png │ │ │ ├── eg.png │ │ │ ├── eh.png │ │ │ ├── er.png │ │ │ ├── es.png │ │ │ ├── et.png │ │ │ ├── fi.png │ │ │ ├── fj.png │ │ │ ├── fm.png │ │ │ ├── fo.png │ │ │ ├── fr.png │ │ │ ├── ga.png │ │ │ ├── gb.png │ │ │ ├── gd.png │ │ │ ├── ge.png │ │ │ ├── gg.png │ │ │ ├── gh.png │ │ │ ├── gi.png │ │ │ ├── gl.png │ │ │ ├── gm.png │ │ │ ├── gn.png │ │ │ ├── gp.png │ │ │ ├── gq.png │ │ │ ├── gr.png │ │ │ ├── gt.png │ │ │ ├── gu.png │ │ │ ├── gw.png │ │ │ ├── gy.png │ │ │ ├── hk.png │ │ │ ├── hn.png │ │ │ ├── hr.png │ │ │ ├── ht.png │ │ │ ├── hu.png │ │ │ ├── id.png │ │ │ ├── ie.png │ │ │ ├── il.png │ │ │ ├── im.png │ │ │ ├── in.png │ │ │ ├── iq.png │ │ │ ├── ir.png │ │ │ ├── is.png │ │ │ ├── it.png │ │ │ ├── je.png │ │ │ ├── jm.png │ │ │ ├── jo.png │ │ │ ├── jp.png │ │ │ ├── ke.png │ │ │ ├── kg.png │ │ │ ├── kh.png │ │ │ ├── ki.png │ │ │ ├── km.png │ │ │ ├── kn.png │ │ │ ├── kp.png │ │ │ ├── kr.png │ │ │ ├── kw.png │ │ │ ├── ky.png │ │ │ ├── kz.png │ │ │ ├── la.png │ │ │ ├── lb.png │ │ │ ├── lc.png │ │ │ ├── li.png │ │ │ ├── lk.png │ │ │ ├── lr.png │ │ │ ├── ls.png │ │ │ ├── lt.png │ │ │ ├── lu.png │ │ │ ├── lv.png │ │ │ ├── ly.png │ │ │ ├── ma.png │ │ │ ├── mc.png │ │ │ ├── md.png │ │ │ ├── me.png │ │ │ ├── mg.png │ │ │ ├── mh.png │ │ │ ├── mk.png │ │ │ ├── ml.png │ │ │ ├── mm.png │ │ │ ├── mn.png │ │ │ ├── mo.png │ │ │ ├── mq.png │ │ │ ├── mr.png │ │ │ ├── ms.png │ │ │ ├── mt.png │ │ │ ├── mu.png │ │ │ ├── mv.png │ │ │ ├── mw.png │ │ │ ├── mx.png │ │ │ ├── my.png │ │ │ ├── mz.png │ │ │ ├── na.png │ │ │ ├── nc.png │ │ │ ├── ne.png │ │ │ ├── ng.png │ │ │ ├── ni.png │ │ │ ├── nl.png │ │ │ ├── no.png │ │ │ ├── np.png │ │ │ ├── nr.png │ │ │ ├── nz.png │ │ │ ├── om.png │ │ │ ├── pa.png │ │ │ ├── pe.png │ │ │ ├── pf.png │ │ │ ├── pg.png │ │ │ ├── ph.png │ │ │ ├── pk.png │ │ │ ├── pl.png │ │ │ ├── pr.png │ │ │ ├── ps.png │ │ │ ├── pt.png │ │ │ ├── pw.png │ │ │ ├── py.png │ │ │ ├── qa.png │ │ │ ├── re.png │ │ │ ├── ro.png │ │ │ ├── rs.png │ │ │ ├── ru.png │ │ │ ├── rw.png │ │ │ ├── sa.png │ │ │ ├── sb.png │ │ │ ├── sc.png │ │ │ ├── sd.png │ │ │ ├── se.png │ │ │ ├── sg.png │ │ │ ├── si.png │ │ │ ├── sk.png │ │ │ ├── sl.png │ │ │ ├── sm.png │ │ │ ├── sn.png │ │ │ ├── so.png │ │ │ ├── sr.png │ │ │ ├── st.png │ │ │ ├── sv.png │ │ │ ├── sy.png │ │ │ ├── sz.png │ │ │ ├── tc.png │ │ │ ├── td.png │ │ │ ├── tg.png │ │ │ ├── th.png │ │ │ ├── tj.png │ │ │ ├── tl.png │ │ │ ├── tm.png │ │ │ ├── tn.png │ │ │ ├── to.png │ │ │ ├── tr.png │ │ │ ├── tt.png │ │ │ ├── tv.png │ │ │ ├── tw.png │ │ │ ├── tz.png │ │ │ ├── ua.png │ │ │ ├── ug.png │ │ │ ├── us.png │ │ │ ├── uy.png │ │ │ ├── uz.png │ │ │ ├── va.png │ │ │ ├── vc.png │ │ │ ├── ve.png │ │ │ ├── vg.png │ │ │ ├── vi.png │ │ │ ├── vn.png │ │ │ ├── vu.png │ │ │ ├── ws.png │ │ │ ├── xx.png │ │ │ ├── ye.png │ │ │ ├── za.png │ │ │ ├── zm.png │ │ │ ├── zw.png │ │ │ ├── _CIS.png │ │ │ ├── _NATO.png │ │ │ ├── _OPEC.png │ │ │ ├── _ASEAN.png │ │ │ ├── _CARICOM.png │ │ │ ├── _England.png │ │ │ ├── _Kosovo.png │ │ │ ├── _Wales.png │ │ │ ├── _Red Cross.png │ │ │ ├── _Scotland.png │ │ │ ├── _Arab League.png │ │ │ ├── _Commonwealth.png │ │ │ ├── _Somaliland.png │ │ │ ├── _European Union.png │ │ │ ├── _Northern Cyprus.png │ │ │ ├── _Northern Ireland.png │ │ │ ├── _Olimpic Movement.png │ │ │ ├── _African Union(OAS).png │ │ │ └── _Islamic Conference.png │ │ ├── pocholin.png │ │ └── white_arrow_down.gif │ └── fonts │ │ ├── icomoon.eot │ │ ├── icomoon.ttf │ │ ├── icomoon.woff │ │ ├── FontAwesome.otf │ │ ├── OpenSans-Extrabold.eot │ │ ├── OpenSans-Extrabold.ttf │ │ ├── OpenSans-Extrabold.woff │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ ├── opensans-regular-webfont.eot │ │ ├── opensans-regular-webfont.ttf │ │ ├── opensans-regular-webfont.woff │ │ └── opensans-regular-webfont.woff2 ├── js │ ├── mousetrap-pause.min.js │ ├── api.js │ ├── scrappers │ │ ├── subtitles │ │ │ ├── ysubs.js │ │ │ └── torrentsapi.js │ │ ├── tv │ │ │ ├── t4p_tv.js │ │ │ └── anime.js │ │ └── movies │ │ │ ├── yts.js │ │ │ ├── t4p_movies.js │ │ │ └── anime.js │ ├── ui.settings_page.js │ ├── ui.loading_wrapper.js │ ├── app.config.js │ ├── app.favs.js │ ├── ui.torrentstime.js │ ├── app.history.js │ ├── ui.vpn_page.js │ ├── fetcher.js │ ├── app.js │ ├── mousetrap.min.js │ ├── utils.js │ ├── locale.js │ └── app.keyboardNav.js ├── README.md └── locale │ ├── locale │ ├── kr.json │ ├── en.json │ ├── nl.json │ ├── tr.json │ ├── es.json │ ├── pt.json │ ├── ro.json │ ├── he.json │ ├── ar.json │ ├── it.json │ ├── pl.json │ ├── ru.json │ ├── de.json │ └── fr.json │ ├── kr.json │ ├── en.json │ ├── sv.json │ ├── tr.json │ ├── nl.json │ ├── es.json │ ├── ro.json │ ├── pt.json │ ├── he.json │ ├── it.json │ ├── pl.json │ ├── ar.json │ ├── ru.json │ ├── de.json │ └── fr.json ├── Dockerfile ├── README.md ├── package.json └── app.js /.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | tmp 3 | npm-debug.log 4 | -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: / 3 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/fonts/vjs.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/fonts/vjs.ttf -------------------------------------------------------------------------------- /public/fonts/vjs.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/fonts/vjs.woff -------------------------------------------------------------------------------- /public/css/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/logo.png -------------------------------------------------------------------------------- /public/css/fonts/icomoon.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/fonts/icomoon.eot -------------------------------------------------------------------------------- /public/css/fonts/icomoon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/fonts/icomoon.ttf -------------------------------------------------------------------------------- /public/css/images/about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/about.png -------------------------------------------------------------------------------- /public/css/images/alert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/alert.png -------------------------------------------------------------------------------- /public/css/images/arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/arrow.png -------------------------------------------------------------------------------- /public/css/images/poster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/poster.png -------------------------------------------------------------------------------- /public/css/fonts/icomoon.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/fonts/icomoon.woff -------------------------------------------------------------------------------- /public/css/images/flags/ad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ad.png -------------------------------------------------------------------------------- /public/css/images/flags/ae.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ae.png -------------------------------------------------------------------------------- /public/css/images/flags/af.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/af.png -------------------------------------------------------------------------------- /public/css/images/flags/ag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ag.png -------------------------------------------------------------------------------- /public/css/images/flags/ai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ai.png -------------------------------------------------------------------------------- /public/css/images/flags/al.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/al.png -------------------------------------------------------------------------------- /public/css/images/flags/am.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/am.png -------------------------------------------------------------------------------- /public/css/images/flags/an.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/an.png -------------------------------------------------------------------------------- /public/css/images/flags/ao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ao.png -------------------------------------------------------------------------------- /public/css/images/flags/aq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/aq.png -------------------------------------------------------------------------------- /public/css/images/flags/ar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ar.png -------------------------------------------------------------------------------- /public/css/images/flags/as.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/as.png -------------------------------------------------------------------------------- /public/css/images/flags/at.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/at.png -------------------------------------------------------------------------------- /public/css/images/flags/au.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/au.png -------------------------------------------------------------------------------- /public/css/images/flags/aw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/aw.png -------------------------------------------------------------------------------- /public/css/images/flags/az.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/az.png -------------------------------------------------------------------------------- /public/css/images/flags/ba.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ba.png -------------------------------------------------------------------------------- /public/css/images/flags/bb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/bb.png -------------------------------------------------------------------------------- /public/css/images/flags/bd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/bd.png -------------------------------------------------------------------------------- /public/css/images/flags/be.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/be.png -------------------------------------------------------------------------------- /public/css/images/flags/bf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/bf.png -------------------------------------------------------------------------------- /public/css/images/flags/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/bg.png -------------------------------------------------------------------------------- /public/css/images/flags/bh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/bh.png -------------------------------------------------------------------------------- /public/css/images/flags/bi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/bi.png -------------------------------------------------------------------------------- /public/css/images/flags/bj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/bj.png -------------------------------------------------------------------------------- /public/css/images/flags/bm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/bm.png -------------------------------------------------------------------------------- /public/css/images/flags/bn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/bn.png -------------------------------------------------------------------------------- /public/css/images/flags/bo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/bo.png -------------------------------------------------------------------------------- /public/css/images/flags/br.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/br.png -------------------------------------------------------------------------------- /public/css/images/flags/bs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/bs.png -------------------------------------------------------------------------------- /public/css/images/flags/bt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/bt.png -------------------------------------------------------------------------------- /public/css/images/flags/bw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/bw.png -------------------------------------------------------------------------------- /public/css/images/flags/by.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/by.png -------------------------------------------------------------------------------- /public/css/images/flags/bz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/bz.png -------------------------------------------------------------------------------- /public/css/images/flags/ca.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ca.png -------------------------------------------------------------------------------- /public/css/images/flags/cd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/cd.png -------------------------------------------------------------------------------- /public/css/images/flags/cf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/cf.png -------------------------------------------------------------------------------- /public/css/images/flags/cg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/cg.png -------------------------------------------------------------------------------- /public/css/images/flags/ch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ch.png -------------------------------------------------------------------------------- /public/css/images/flags/ci.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ci.png -------------------------------------------------------------------------------- /public/css/images/flags/ck.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ck.png -------------------------------------------------------------------------------- /public/css/images/flags/cl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/cl.png -------------------------------------------------------------------------------- /public/css/images/flags/cm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/cm.png -------------------------------------------------------------------------------- /public/css/images/flags/cn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/cn.png -------------------------------------------------------------------------------- /public/css/images/flags/co.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/co.png -------------------------------------------------------------------------------- /public/css/images/flags/cr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/cr.png -------------------------------------------------------------------------------- /public/css/images/flags/cu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/cu.png -------------------------------------------------------------------------------- /public/css/images/flags/cv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/cv.png -------------------------------------------------------------------------------- /public/css/images/flags/cy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/cy.png -------------------------------------------------------------------------------- /public/css/images/flags/cz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/cz.png -------------------------------------------------------------------------------- /public/css/images/flags/de.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/de.png -------------------------------------------------------------------------------- /public/css/images/flags/dj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/dj.png -------------------------------------------------------------------------------- /public/css/images/flags/dk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/dk.png -------------------------------------------------------------------------------- /public/css/images/flags/dm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/dm.png -------------------------------------------------------------------------------- /public/css/images/flags/do.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/do.png -------------------------------------------------------------------------------- /public/css/images/flags/dz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/dz.png -------------------------------------------------------------------------------- /public/css/images/flags/ec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ec.png -------------------------------------------------------------------------------- /public/css/images/flags/ee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ee.png -------------------------------------------------------------------------------- /public/css/images/flags/eg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/eg.png -------------------------------------------------------------------------------- /public/css/images/flags/eh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/eh.png -------------------------------------------------------------------------------- /public/css/images/flags/er.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/er.png -------------------------------------------------------------------------------- /public/css/images/flags/es.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/es.png -------------------------------------------------------------------------------- /public/css/images/flags/et.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/et.png -------------------------------------------------------------------------------- /public/css/images/flags/fi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/fi.png -------------------------------------------------------------------------------- /public/css/images/flags/fj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/fj.png -------------------------------------------------------------------------------- /public/css/images/flags/fm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/fm.png -------------------------------------------------------------------------------- /public/css/images/flags/fo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/fo.png -------------------------------------------------------------------------------- /public/css/images/flags/fr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/fr.png -------------------------------------------------------------------------------- /public/css/images/flags/ga.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ga.png -------------------------------------------------------------------------------- /public/css/images/flags/gb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/gb.png -------------------------------------------------------------------------------- /public/css/images/flags/gd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/gd.png -------------------------------------------------------------------------------- /public/css/images/flags/ge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ge.png -------------------------------------------------------------------------------- /public/css/images/flags/gg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/gg.png -------------------------------------------------------------------------------- /public/css/images/flags/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/gh.png -------------------------------------------------------------------------------- /public/css/images/flags/gi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/gi.png -------------------------------------------------------------------------------- /public/css/images/flags/gl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/gl.png -------------------------------------------------------------------------------- /public/css/images/flags/gm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/gm.png -------------------------------------------------------------------------------- /public/css/images/flags/gn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/gn.png -------------------------------------------------------------------------------- /public/css/images/flags/gp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/gp.png -------------------------------------------------------------------------------- /public/css/images/flags/gq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/gq.png -------------------------------------------------------------------------------- /public/css/images/flags/gr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/gr.png -------------------------------------------------------------------------------- /public/css/images/flags/gt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/gt.png -------------------------------------------------------------------------------- /public/css/images/flags/gu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/gu.png -------------------------------------------------------------------------------- /public/css/images/flags/gw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/gw.png -------------------------------------------------------------------------------- /public/css/images/flags/gy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/gy.png -------------------------------------------------------------------------------- /public/css/images/flags/hk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/hk.png -------------------------------------------------------------------------------- /public/css/images/flags/hn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/hn.png -------------------------------------------------------------------------------- /public/css/images/flags/hr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/hr.png -------------------------------------------------------------------------------- /public/css/images/flags/ht.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ht.png -------------------------------------------------------------------------------- /public/css/images/flags/hu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/hu.png -------------------------------------------------------------------------------- /public/css/images/flags/id.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/id.png -------------------------------------------------------------------------------- /public/css/images/flags/ie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ie.png -------------------------------------------------------------------------------- /public/css/images/flags/il.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/il.png -------------------------------------------------------------------------------- /public/css/images/flags/im.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/im.png -------------------------------------------------------------------------------- /public/css/images/flags/in.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/in.png -------------------------------------------------------------------------------- /public/css/images/flags/iq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/iq.png -------------------------------------------------------------------------------- /public/css/images/flags/ir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ir.png -------------------------------------------------------------------------------- /public/css/images/flags/is.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/is.png -------------------------------------------------------------------------------- /public/css/images/flags/it.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/it.png -------------------------------------------------------------------------------- /public/css/images/flags/je.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/je.png -------------------------------------------------------------------------------- /public/css/images/flags/jm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/jm.png -------------------------------------------------------------------------------- /public/css/images/flags/jo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/jo.png -------------------------------------------------------------------------------- /public/css/images/flags/jp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/jp.png -------------------------------------------------------------------------------- /public/css/images/flags/ke.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ke.png -------------------------------------------------------------------------------- /public/css/images/flags/kg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/kg.png -------------------------------------------------------------------------------- /public/css/images/flags/kh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/kh.png -------------------------------------------------------------------------------- /public/css/images/flags/ki.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ki.png -------------------------------------------------------------------------------- /public/css/images/flags/km.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/km.png -------------------------------------------------------------------------------- /public/css/images/flags/kn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/kn.png -------------------------------------------------------------------------------- /public/css/images/flags/kp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/kp.png -------------------------------------------------------------------------------- /public/css/images/flags/kr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/kr.png -------------------------------------------------------------------------------- /public/css/images/flags/kw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/kw.png -------------------------------------------------------------------------------- /public/css/images/flags/ky.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ky.png -------------------------------------------------------------------------------- /public/css/images/flags/kz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/kz.png -------------------------------------------------------------------------------- /public/css/images/flags/la.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/la.png -------------------------------------------------------------------------------- /public/css/images/flags/lb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/lb.png -------------------------------------------------------------------------------- /public/css/images/flags/lc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/lc.png -------------------------------------------------------------------------------- /public/css/images/flags/li.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/li.png -------------------------------------------------------------------------------- /public/css/images/flags/lk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/lk.png -------------------------------------------------------------------------------- /public/css/images/flags/lr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/lr.png -------------------------------------------------------------------------------- /public/css/images/flags/ls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ls.png -------------------------------------------------------------------------------- /public/css/images/flags/lt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/lt.png -------------------------------------------------------------------------------- /public/css/images/flags/lu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/lu.png -------------------------------------------------------------------------------- /public/css/images/flags/lv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/lv.png -------------------------------------------------------------------------------- /public/css/images/flags/ly.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ly.png -------------------------------------------------------------------------------- /public/css/images/flags/ma.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ma.png -------------------------------------------------------------------------------- /public/css/images/flags/mc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/mc.png -------------------------------------------------------------------------------- /public/css/images/flags/md.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/md.png -------------------------------------------------------------------------------- /public/css/images/flags/me.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/me.png -------------------------------------------------------------------------------- /public/css/images/flags/mg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/mg.png -------------------------------------------------------------------------------- /public/css/images/flags/mh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/mh.png -------------------------------------------------------------------------------- /public/css/images/flags/mk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/mk.png -------------------------------------------------------------------------------- /public/css/images/flags/ml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ml.png -------------------------------------------------------------------------------- /public/css/images/flags/mm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/mm.png -------------------------------------------------------------------------------- /public/css/images/flags/mn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/mn.png -------------------------------------------------------------------------------- /public/css/images/flags/mo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/mo.png -------------------------------------------------------------------------------- /public/css/images/flags/mq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/mq.png -------------------------------------------------------------------------------- /public/css/images/flags/mr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/mr.png -------------------------------------------------------------------------------- /public/css/images/flags/ms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ms.png -------------------------------------------------------------------------------- /public/css/images/flags/mt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/mt.png -------------------------------------------------------------------------------- /public/css/images/flags/mu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/mu.png -------------------------------------------------------------------------------- /public/css/images/flags/mv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/mv.png -------------------------------------------------------------------------------- /public/css/images/flags/mw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/mw.png -------------------------------------------------------------------------------- /public/css/images/flags/mx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/mx.png -------------------------------------------------------------------------------- /public/css/images/flags/my.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/my.png -------------------------------------------------------------------------------- /public/css/images/flags/mz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/mz.png -------------------------------------------------------------------------------- /public/css/images/flags/na.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/na.png -------------------------------------------------------------------------------- /public/css/images/flags/nc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/nc.png -------------------------------------------------------------------------------- /public/css/images/flags/ne.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ne.png -------------------------------------------------------------------------------- /public/css/images/flags/ng.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ng.png -------------------------------------------------------------------------------- /public/css/images/flags/ni.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ni.png -------------------------------------------------------------------------------- /public/css/images/flags/nl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/nl.png -------------------------------------------------------------------------------- /public/css/images/flags/no.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/no.png -------------------------------------------------------------------------------- /public/css/images/flags/np.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/np.png -------------------------------------------------------------------------------- /public/css/images/flags/nr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/nr.png -------------------------------------------------------------------------------- /public/css/images/flags/nz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/nz.png -------------------------------------------------------------------------------- /public/css/images/flags/om.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/om.png -------------------------------------------------------------------------------- /public/css/images/flags/pa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/pa.png -------------------------------------------------------------------------------- /public/css/images/flags/pe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/pe.png -------------------------------------------------------------------------------- /public/css/images/flags/pf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/pf.png -------------------------------------------------------------------------------- /public/css/images/flags/pg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/pg.png -------------------------------------------------------------------------------- /public/css/images/flags/ph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ph.png -------------------------------------------------------------------------------- /public/css/images/flags/pk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/pk.png -------------------------------------------------------------------------------- /public/css/images/flags/pl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/pl.png -------------------------------------------------------------------------------- /public/css/images/flags/pr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/pr.png -------------------------------------------------------------------------------- /public/css/images/flags/ps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ps.png -------------------------------------------------------------------------------- /public/css/images/flags/pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/pt.png -------------------------------------------------------------------------------- /public/css/images/flags/pw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/pw.png -------------------------------------------------------------------------------- /public/css/images/flags/py.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/py.png -------------------------------------------------------------------------------- /public/css/images/flags/qa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/qa.png -------------------------------------------------------------------------------- /public/css/images/flags/re.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/re.png -------------------------------------------------------------------------------- /public/css/images/flags/ro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ro.png -------------------------------------------------------------------------------- /public/css/images/flags/rs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/rs.png -------------------------------------------------------------------------------- /public/css/images/flags/ru.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ru.png -------------------------------------------------------------------------------- /public/css/images/flags/rw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/rw.png -------------------------------------------------------------------------------- /public/css/images/flags/sa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/sa.png -------------------------------------------------------------------------------- /public/css/images/flags/sb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/sb.png -------------------------------------------------------------------------------- /public/css/images/flags/sc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/sc.png -------------------------------------------------------------------------------- /public/css/images/flags/sd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/sd.png -------------------------------------------------------------------------------- /public/css/images/flags/se.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/se.png -------------------------------------------------------------------------------- /public/css/images/flags/sg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/sg.png -------------------------------------------------------------------------------- /public/css/images/flags/si.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/si.png -------------------------------------------------------------------------------- /public/css/images/flags/sk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/sk.png -------------------------------------------------------------------------------- /public/css/images/flags/sl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/sl.png -------------------------------------------------------------------------------- /public/css/images/flags/sm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/sm.png -------------------------------------------------------------------------------- /public/css/images/flags/sn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/sn.png -------------------------------------------------------------------------------- /public/css/images/flags/so.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/so.png -------------------------------------------------------------------------------- /public/css/images/flags/sr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/sr.png -------------------------------------------------------------------------------- /public/css/images/flags/st.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/st.png -------------------------------------------------------------------------------- /public/css/images/flags/sv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/sv.png -------------------------------------------------------------------------------- /public/css/images/flags/sy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/sy.png -------------------------------------------------------------------------------- /public/css/images/flags/sz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/sz.png -------------------------------------------------------------------------------- /public/css/images/flags/tc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/tc.png -------------------------------------------------------------------------------- /public/css/images/flags/td.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/td.png -------------------------------------------------------------------------------- /public/css/images/flags/tg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/tg.png -------------------------------------------------------------------------------- /public/css/images/flags/th.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/th.png -------------------------------------------------------------------------------- /public/css/images/flags/tj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/tj.png -------------------------------------------------------------------------------- /public/css/images/flags/tl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/tl.png -------------------------------------------------------------------------------- /public/css/images/flags/tm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/tm.png -------------------------------------------------------------------------------- /public/css/images/flags/tn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/tn.png -------------------------------------------------------------------------------- /public/css/images/flags/to.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/to.png -------------------------------------------------------------------------------- /public/css/images/flags/tr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/tr.png -------------------------------------------------------------------------------- /public/css/images/flags/tt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/tt.png -------------------------------------------------------------------------------- /public/css/images/flags/tv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/tv.png -------------------------------------------------------------------------------- /public/css/images/flags/tw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/tw.png -------------------------------------------------------------------------------- /public/css/images/flags/tz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/tz.png -------------------------------------------------------------------------------- /public/css/images/flags/ua.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ua.png -------------------------------------------------------------------------------- /public/css/images/flags/ug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ug.png -------------------------------------------------------------------------------- /public/css/images/flags/us.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/us.png -------------------------------------------------------------------------------- /public/css/images/flags/uy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/uy.png -------------------------------------------------------------------------------- /public/css/images/flags/uz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/uz.png -------------------------------------------------------------------------------- /public/css/images/flags/va.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/va.png -------------------------------------------------------------------------------- /public/css/images/flags/vc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/vc.png -------------------------------------------------------------------------------- /public/css/images/flags/ve.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ve.png -------------------------------------------------------------------------------- /public/css/images/flags/vg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/vg.png -------------------------------------------------------------------------------- /public/css/images/flags/vi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/vi.png -------------------------------------------------------------------------------- /public/css/images/flags/vn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/vn.png -------------------------------------------------------------------------------- /public/css/images/flags/vu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/vu.png -------------------------------------------------------------------------------- /public/css/images/flags/ws.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ws.png -------------------------------------------------------------------------------- /public/css/images/flags/xx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/xx.png -------------------------------------------------------------------------------- /public/css/images/flags/ye.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/ye.png -------------------------------------------------------------------------------- /public/css/images/flags/za.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/za.png -------------------------------------------------------------------------------- /public/css/images/flags/zm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/zm.png -------------------------------------------------------------------------------- /public/css/images/flags/zw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/zw.png -------------------------------------------------------------------------------- /public/css/images/pocholin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/pocholin.png -------------------------------------------------------------------------------- /public/css/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /public/css/images/flags/_CIS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/_CIS.png -------------------------------------------------------------------------------- /public/css/images/flags/_NATO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/_NATO.png -------------------------------------------------------------------------------- /public/css/images/flags/_OPEC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/_OPEC.png -------------------------------------------------------------------------------- /public/css/images/flags/_ASEAN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/_ASEAN.png -------------------------------------------------------------------------------- /public/css/images/flags/_CARICOM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/_CARICOM.png -------------------------------------------------------------------------------- /public/css/images/flags/_England.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/_England.png -------------------------------------------------------------------------------- /public/css/images/flags/_Kosovo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/_Kosovo.png -------------------------------------------------------------------------------- /public/css/images/flags/_Wales.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/_Wales.png -------------------------------------------------------------------------------- /public/css/images/flags/_Red Cross.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/_Red Cross.png -------------------------------------------------------------------------------- /public/css/images/flags/_Scotland.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/_Scotland.png -------------------------------------------------------------------------------- /public/css/images/white_arrow_down.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/white_arrow_down.gif -------------------------------------------------------------------------------- /public/css/fonts/OpenSans-Extrabold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/fonts/OpenSans-Extrabold.eot -------------------------------------------------------------------------------- /public/css/fonts/OpenSans-Extrabold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/fonts/OpenSans-Extrabold.ttf -------------------------------------------------------------------------------- /public/css/fonts/OpenSans-Extrabold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/fonts/OpenSans-Extrabold.woff -------------------------------------------------------------------------------- /public/css/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /public/css/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /public/css/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /public/css/images/flags/_Arab League.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/_Arab League.png -------------------------------------------------------------------------------- /public/css/images/flags/_Commonwealth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/_Commonwealth.png -------------------------------------------------------------------------------- /public/css/images/flags/_Somaliland.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/_Somaliland.png -------------------------------------------------------------------------------- /public/css/images/flags/_European Union.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/_European Union.png -------------------------------------------------------------------------------- /public/css/fonts/opensans-regular-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/fonts/opensans-regular-webfont.eot -------------------------------------------------------------------------------- /public/css/fonts/opensans-regular-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/fonts/opensans-regular-webfont.ttf -------------------------------------------------------------------------------- /public/css/fonts/opensans-regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/fonts/opensans-regular-webfont.woff -------------------------------------------------------------------------------- /public/css/images/flags/_Northern Cyprus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/_Northern Cyprus.png -------------------------------------------------------------------------------- /public/css/images/flags/_Northern Ireland.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/_Northern Ireland.png -------------------------------------------------------------------------------- /public/css/images/flags/_Olimpic Movement.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/_Olimpic Movement.png -------------------------------------------------------------------------------- /public/css/fonts/opensans-regular-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/fonts/opensans-regular-webfont.woff2 -------------------------------------------------------------------------------- /public/css/images/flags/_African Union(OAS).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/_African Union(OAS).png -------------------------------------------------------------------------------- /public/css/images/flags/_Islamic Conference.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/G-Ray/candyflix/HEAD/public/css/images/flags/_Islamic Conference.png -------------------------------------------------------------------------------- /public/js/mousetrap-pause.min.js: -------------------------------------------------------------------------------- 1 | (function(a){var b=a.prototype.stopCallback;a.prototype.stopCallback=function(a,c,d){return this.paused?!0:b.call(this,a,c,d)};a.prototype.pause=function(){this.paused=!0};a.prototype.unpause=function(){this.paused=!1};a.init()})(Mousetrap); 2 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:6 2 | 3 | # Create app directory 4 | RUN mkdir -p /usr/src/app 5 | WORKDIR /usr/src/app 6 | 7 | # Install app dependencies 8 | COPY package.json /usr/src/app/ 9 | RUN npm install 10 | RUN npm install -g peerflix 11 | 12 | # Bundle app source 13 | COPY . /usr/src/app 14 | 15 | EXPOSE 3000 16 | 17 | CMD [ "npm", "start" ] 18 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | candyflix 2 | ========= 3 | 4 | Popcorn Time Online as a node app! 5 | Torrents are downloaded remotely on the server with peerflix 6 | 7 | Installation 8 | ------- 9 | 10 | 1. Install Node.js 11 | 2. Install peerflix 12 | 4. run `npm install` 13 | 5. run `node app.js` 14 | 15 | Credits 16 | ------- 17 | Based on the UI of https://github.com/PopcornRepos/PopcornTimeOnline 18 | 19 | Popcorn Time and Time4popcorn 20 | 21 | Dageiko for the candyfloss logo (http://dageiko.deviantart.com/) 22 | -------------------------------------------------------------------------------- /public/README.md: -------------------------------------------------------------------------------- 1 | # Popcorn Time Online 2 | A web version based on the beloved Popcorn Time application, Allows to anyone to create a full Popcorn Time's style streaming website, out of the box, using the [Torrents Time](https://torrents-time.com) technology. 3 | 4 | #Getting started 5 | Just copy the files to your web directory and enjoy. 6 | 7 | #Content source 8 | All torrents are fetched from the awesome [Vodo.net](http://vodo.net) website 9 | 10 | *** 11 | Released under the [GPL v3 license](LICENSE.txt). 12 | -------------------------------------------------------------------------------- /public/js/api.js: -------------------------------------------------------------------------------- 1 | var api = { 2 | 3 | 4 | url_response: function (data) { 5 | 6 | if (typeof utils.url_response[data[0]] == 'function') { 7 | utils.url_response[data[0]](data[1]); 8 | delete utils.url_response[data[0]]; 9 | } 10 | 11 | }, 12 | 13 | focus: function () { 14 | window.focus(); 15 | }, 16 | 17 | 18 | progress: function (d) { 19 | 20 | if (!d) 21 | return; 22 | 23 | 24 | if (d[1] < 1) 25 | var msg = locale.translate('startingDownload'); 26 | else 27 | var msg = locale.translate('downloading'); 28 | 29 | 30 | ui.loading_wrapper.change_stats(Math.round(d[0]), 0, 0, 0, msg); 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "candyflix", 3 | "version": "0.1.0", 4 | "description": "Popcorn Time in you browser. No plugin needed.", 5 | "main": "app.js", 6 | "scripts": { 7 | "start": "node app.js", 8 | "test": "echo \"Error: no test specified\" && exit 1" 9 | }, 10 | "repository": { 11 | "type": "git", 12 | "url": "git+https://github.com/G-Ray/candyflix.git" 13 | }, 14 | "author": "Geoffrey Bonneville", 15 | "license": "GPL-3.0", 16 | "bugs": { 17 | "url": "https://github.com/G-Ray/candyflix/issues" 18 | }, 19 | "homepage": "https://github.com/G-Ray/candyflix#readme", 20 | "dependencies": { 21 | "express": "^4.13.4", 22 | "getport": "^0.1.0", 23 | "parse-torrent": "^5.7.0", 24 | "socket.io": "^1.4.5" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /public/js/scrappers/subtitles/ysubs.js: -------------------------------------------------------------------------------- 1 | fetcher.scrappers.ysubs = function(movie_id, callback){ 2 | 3 | var 4 | baseUrl = 'http://api.yifysubtitles.com/subs/', 5 | prefix = 'http://www.yifysubtitles.com'; 6 | 7 | utils.url_request(baseUrl + movie_id, function(json){ 8 | 9 | try{ 10 | 11 | json = jQuery.type( json ) === "string"? JSON.parse(json): json; 12 | var subs = json.subs && json.subs[movie_id] || false; 13 | 14 | if(subs){ 15 | var subs_list = []; 16 | for(var i in subs){ 17 | 18 | var 19 | lang_code = locale.lang2iso[i] ? locale.lang2iso[i] : 'xx', 20 | lang_name = locale.langs[lang_code] ? locale.langs[lang_code] : i.capitalize() 21 | most_rated = []; 22 | 23 | if(subs[i] instanceof Array){ 24 | for(var x=0;xmost_rated[1]){ 26 | 27 | most_rated = [[ 28 | 29 | prefix + subs[i][x].url, 30 | lang_code, 31 | lang_name.capitalize() 32 | 33 | ], subs[i][x].rating]; 34 | } 35 | 36 | subs_list.push(most_rated[0]); 37 | } 38 | 39 | } 40 | 41 | callback(subs_list); 42 | } 43 | else 44 | callback(false); 45 | 46 | 47 | } 48 | catch(e){ 49 | callback(false); 50 | logger.log('error_scrap_ysubs_' + movie_id) 51 | } 52 | 53 | }) 54 | 55 | } 56 | -------------------------------------------------------------------------------- /public/locale/locale/kr.json: -------------------------------------------------------------------------------- 1 | { 2 | "noTorrents": "사용 가능한 토렌트가 없습니다", 3 | "torrents": "토렌트", 4 | "episode": "에피소드", 5 | "sortBy": "정렬", 6 | "genres": "장르", 7 | "genre": "장르", 8 | "back":"뒤로", 9 | "settings":"설정", 10 | "quit": "종료", 11 | "cancel": "취소", 12 | "beforeQuit": "정말 종료하시겠습니까?", 13 | "loading": "잠시 기다려주세요...", 14 | "loadingVideo": "버퍼링 중입니다, 잠시 기다려주세요", 15 | "searchLoading": "검색 중...", 16 | "noResults": "검색 결과가 없습니다.", 17 | "search": "검색", 18 | "movies": "영화", 19 | "tv_shows": "TV 방송", 20 | "trailer": "예고편", 21 | "subtitledIn": "자막 언어", 22 | "quality": "화질선택", 23 | "watchItNow": "지금 시청하기", 24 | "durationUnit": "분", 25 | "connecting": "연결 중...", 26 | "startingDownload": "다운로드 시작 중...", 27 | "downloading": "다운로드 중...", 28 | "UpgradeVersion": "팝콘타임 업데이트하기", 29 | "UpgradeVersionDescription": "팝콘타임 %s이(가) 출시되었습니다. 지금 업데이트 하시죠!", 30 | "min_window": "최소화", 31 | "max_window": "최대화", 32 | "close_window": "닫기", 33 | "error": "에러", 34 | "season": "시즌", 35 | "no_movies": "영화가 없습니다", 36 | "all": "인기순", 37 | "action": "액션", 38 | "adventure": "모험", 39 | "animation": "애니메이션", 40 | "biography": "전기", 41 | "comedy": "코미디", 42 | "crime": "범죄", 43 | "documentary": "다큐멘터리", 44 | "drama": "드라마", 45 | "family": "가족", 46 | "fantasy": "판타지", 47 | "film-noir": "느와르", 48 | "history": "역사", 49 | "horror": "공포", 50 | "music": "음악", 51 | "musical": "뮤지컬", 52 | "mystery": "미스터리", 53 | "romance": "로맨스", 54 | "sci-fi": "공상과학", 55 | "short": "단편", 56 | "sport": "스포츠", 57 | "thriller": "스릴러", 58 | "war": "전쟁", 59 | "western": "서부" 60 | } 61 | -------------------------------------------------------------------------------- /public/locale/kr.json: -------------------------------------------------------------------------------- 1 | { 2 | "noTorrents": "사용 가능한 토렌트가 없습니다", 3 | "torrents": "토렌트", 4 | "episode": "에피소드", 5 | "sortBy": "정렬", 6 | "genres": "장르", 7 | "genre": "장르", 8 | "back":"뒤로", 9 | "settings":"설정", 10 | "quit": "종료", 11 | "cancel": "취소", 12 | "beforeQuit": "정말 종료하시겠습니까?", 13 | "loading": "잠시 기다려주세요...", 14 | "loadingVideo": "버퍼링 중입니다, 잠시 기다려주세요", 15 | "searchLoading": "검색 중...", 16 | "noResults": "검색 결과가 없습니다.", 17 | "search": "검색", 18 | "movies": "영화", 19 | "tv_shows": "TV 방송", 20 | "trailer": "예고편", 21 | "subtitledIn": "자막 언어", 22 | "quality": "화질선택", 23 | "watchItNow": "지금 시청하기", 24 | "durationUnit": "분", 25 | "connecting": "연결 중...", 26 | "startingDownload": "다운로드 시작 중...", 27 | "downloading": "다운로드 중...", 28 | "UpgradeVersion": "팝콘타임 업데이트하기", 29 | "UpgradeVersionDescription": "팝콘타임 %s이(가) 출시되었습니다. 지금 업데이트 하시죠!", 30 | "min_window": "최소화", 31 | "max_window": "최대화", 32 | "close_window": "닫기", 33 | "error": "에러", 34 | "season": "시즌", 35 | "no_movies": "영화가 없습니다", 36 | "all": "인기순", 37 | "action": "액션", 38 | "adventure": "모험", 39 | "animation": "애니메이션", 40 | "biography": "전기", 41 | "comedy": "코미디", 42 | "crime": "범죄", 43 | "documentary": "다큐멘터리", 44 | "drama": "드라마", 45 | "family": "가족", 46 | "fantasy": "판타지", 47 | "film-noir": "느와르", 48 | "history": "역사", 49 | "horror": "공포", 50 | "music": "음악", 51 | "musical": "뮤지컬", 52 | "mystery": "미스터리", 53 | "romance": "로맨스", 54 | "sci-fi": "공상과학", 55 | "short": "단편", 56 | "sport": "스포츠", 57 | "thriller": "스릴러", 58 | "war": "전쟁", 59 | "western": "서부", 60 | 61 | 62 | "VpnDisabled":"VPN DISABLED!", 63 | "VpnAlert":"IT IS HIGHLY RECOMMENDED TO USE VPN
TO AVOID UNNECESSARY RISKS", 64 | "TurnOnVpn": "TURN ON VPN", 65 | "continue":"Continue" 66 | } 67 | -------------------------------------------------------------------------------- /public/locale/locale/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "noTorrents": "There is no available torrents", 3 | "torrents": "Torrents", 4 | "episode": "Episode", 5 | "sortBy": "Sort By", 6 | "genres": "Genres", 7 | "genre": "Genre", 8 | "back":"Back", 9 | "settings":"Settings", 10 | "quit": "Quit", 11 | "cancel": "Cancel", 12 | "beforeQuit": "Are you sure you want to quit?", 13 | "loading": "Please wait...", 14 | "loadingVideo": "Buffering video, please wait", 15 | "searchLoading": "Searching...", 16 | "noResults": "No results found for your query.", 17 | "search": "Search", 18 | "movies": "Movies", 19 | "tv_shows": "TV-Shows", 20 | "trailer": "Trailer", 21 | "subtitledIn": "Subtitled in", 22 | "quality": "Quality", 23 | "watchItNow": "WATCH IT NOW", 24 | "durationUnit": "min", 25 | "connecting": "Connecting...", 26 | "startingDownload": "Starting Download...", 27 | "downloading": "Downloading...", 28 | "UpgradeVersion": "Update Popcorn Time", 29 | "UpgradeVersionDescription": "Popcorn Time %s was just released. You should get it now!", 30 | "min_window": "Minimize window", 31 | "max_window": "Maximize window", 32 | "close_window": "Close", 33 | "error": "Error", 34 | "season": "Season", 35 | "no_movies": "No movies found", 36 | "all": "Popular", 37 | "action": "Action", 38 | "adventure": "Adventure", 39 | "animation": "Animation", 40 | "biography": "Biography", 41 | "comedy": "Comedy", 42 | "crime": "Crime", 43 | "documentary": "Documentary", 44 | "drama": "Drama", 45 | "family": "Family", 46 | "fantasy": "Fantasy", 47 | "film-noir": "Film-Noir", 48 | "history": "History", 49 | "horror": "Horror", 50 | "music": "Music", 51 | "musical": "Musical", 52 | "mystery": "Mystery", 53 | "romance": "Romance", 54 | "sci-fi": "Sci-Fi", 55 | "short": "Short", 56 | "sport": "Sport", 57 | "thriller": "Thriller", 58 | "war": "War", 59 | "western": "Western" 60 | } 61 | -------------------------------------------------------------------------------- /public/locale/locale/nl.json: -------------------------------------------------------------------------------- 1 | { 2 | "noTorrents": "Er zijn geen torrents beschikbaar", 3 | "torrents": "Torrents", 4 | "episode": "Aflevering", 5 | "sortBy": "Sorteren op", 6 | "genres": "Genres", 7 | "genre": "Genre", 8 | "back":"Terug", 9 | "settings":"Instellingen", 10 | "quit": "Afsluiten", 11 | "cancel": "Annuleren", 12 | "beforeQuit": "Weet je zeker dat je wilt afsluiten?", 13 | "loading": "Een moment geduld...", 14 | "loadingVideo": "Video bufferen, een moment geduld alsjeblieft", 15 | "searchLoading": "Zoeken...", 16 | "noResults": "Geen resultaten gevonden voor jouw zoekwoord.", 17 | "search": "Zoeken", 18 | "movies": "Films", 19 | "tv_shows": "TV-Shows", 20 | "trailer": "Trailer", 21 | "subtitledIn": "Vertaald in", 22 | "quality": "Kwaliteit", 23 | "watchItNow": "NU BEKIJKEN", 24 | "durationUnit": "min", 25 | "connecting": "Verbinden...", 26 | "startingDownload": "Download starten...", 27 | "downloading": "Downloaden...", 28 | "UpgradeVersion": "Popcorn Time updaten", 29 | "UpgradeVersionDescription": "Popcorn Time %s is zojuist uitgebracht. Download het meteen!", 30 | "min_window": "Scherm minimaliseren", 31 | "max_window": "Scherm maximaliseren", 32 | "close_window": "Sluit", 33 | "error": "Foutmelding", 34 | "season": "Seizoen", 35 | "no_movies": "Geen films gevonden", 36 | "all": "Populair", 37 | "action": "Actie", 38 | "adventure": "Avontuur", 39 | "animation": "Animatie", 40 | "biography": "Biografie", 41 | "comedy": "Komedie", 42 | "crime": "Misdaad", 43 | "documentary": "Documentaire", 44 | "drama": "Drama", 45 | "family": "Familie", 46 | "fantasy": "Fantasie", 47 | "film-noir": "Film-Noir", 48 | "history": "Historie", 49 | "horror": "Horror", 50 | "music": "Muziek", 51 | "musical": "Musical", 52 | "mystery": "Mysterie", 53 | "romance": "Romantiek", 54 | "sci-fi": "Sci-Fi", 55 | "short": "Kort", 56 | "sport": "Sport", 57 | "thriller": "Thriller", 58 | "war": "Oorlog", 59 | "western": "Westerse" 60 | } 61 | -------------------------------------------------------------------------------- /public/locale/locale/tr.json: -------------------------------------------------------------------------------- 1 | { 2 | "noTorrents": "Şu an için, aktif bir torrent bulunamadı", 3 | "torrents": "Torrentler", 4 | "episode": "Bölüm", 5 | "sortBy": "Sırala", 6 | "genres": "Türler", 7 | "genre": "Tür", 8 | "back":"Geri", 9 | "settings":"Ayarlar", 10 | "quit": "Çıkış", 11 | "cancel": "Vazgeç", 12 | "beforeQuit": "Programdan çıkmak istediğinize emin misiniz?", 13 | "loading": "Lütfen Bekleyiniz...", 14 | "loadingVideo": "Video ara belleğe alınıyor, lütfen bekleyiniz", 15 | "searchLoading": "Aranıyor...", 16 | "noResults": "Sorgunuza karşılık gelen bir sonuç bulunamadı.", 17 | "search": "Ara", 18 | "movies": "Filmler", 19 | "tv_shows": "TV-Dizileri", 20 | "trailer": "Fragmanlar", 21 | "subtitledIn": "Altyazılar :", 22 | "quality": "Kalite", 23 | "watchItNow": "HEMEN İZLE", 24 | "durationUnit": "min", 25 | "connecting": "Bağlanıyor...", 26 | "startingDownload": "Yükleme başlıyor...", 27 | "downloading": "İndiriliyor...", 28 | "UpgradeVersion": "Popcorn Time'ı güncelle", 29 | "UpgradeVersionDescription": "Popcorn Time için %s versiyonu yayınlandı. Hemen indirmek ister misiniz?", 30 | "min_window": "Pencereyi küçült", 31 | "max_window": "Pencereyi büyüt", 32 | "close_window": "Kapat", 33 | "error": "Hata", 34 | "season": "Sezon", 35 | "no_movies": "Film bulunamadı", 36 | "all": "Popüler", 37 | "action": "Aksiyon", 38 | "adventure": "Macera", 39 | "animation": "Animasyon", 40 | "biography": "Biyografi", 41 | "comedy": "Komedi", 42 | "crime": "Suç", 43 | "documentary": "Belgesel", 44 | "drama": "Dram", 45 | "family": "Aile", 46 | "fantasy": "Fantazi", 47 | "film-noir": "Karanlık Film", 48 | "history": "Tarihi", 49 | "horror": "Korku", 50 | "music": "Müzik", 51 | "musical": "Müzikal", 52 | "mystery": "Gizem", 53 | "romance": "Duygusal", 54 | "sci-fi": "Sci-Fi", 55 | "short": "Kısa", 56 | "sport": "Spor", 57 | "thriller": "Gerilim", 58 | "war": "Savaş", 59 | "western": "Western" 60 | } 61 | -------------------------------------------------------------------------------- /public/locale/locale/es.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | "noTorrents": "No hay torrents disponibles", 4 | "torrents": "Torrents", 5 | "episode": "episodio ", 6 | "sortBy": "Ordenado por", 7 | "genres": "Géneros", 8 | "genre": "género", 9 | 10 | 11 | "back":"volver", 12 | "settings":"Configuración", 13 | "quit": "Salir", 14 | "cancel": "Cancelar", 15 | "beforeQuit": "¿Está seguro de que desea salir?", 16 | "loading": "Cargando...", 17 | "loadingVideo": "Cargando vídeo, espere por favor", 18 | "searchLoading": "Buscando...", 19 | "noResults": "No se encontraron resultados.", 20 | "search": "Buscar", 21 | "movies": "Películas", 22 | "subtitledIn": "Subtítulos", 23 | "quality": "Calidad", 24 | "watchItNow": "Ver Ahora", 25 | "durationUnit": "min", 26 | "connecting": "Conectando...", 27 | "startingDownload": "Iniciando la descarga...", 28 | "downloading": "Descargando...", 29 | "UpgradeVersion": "Actualizar Popcorn Time", 30 | "UpgradeVersionDescription": "Popcorn Time %s acaba de salir. ¡Descargala ahora!", 31 | "tv_shows":"series TV", 32 | "trailer":"tráiler", 33 | "min_window":"minimizar ventana", 34 | "max_window":"maximizar ventana", 35 | "close_window":"cerrar", 36 | "error":"error", 37 | "season":"temporada", 38 | "no_movies":"ninguna película encontrada", 39 | "all": "Popular", 40 | "action": "Acción", 41 | "adventure": "Aventura", 42 | "animation": "Animación", 43 | "biography": "Biografía", 44 | "comedy": "Comedia", 45 | "crime": "Crimen", 46 | "documentary": "Documental", 47 | "drama": "Drama", 48 | "family": "Familiar", 49 | "fantasy": "Fantasía", 50 | "film-noir": "Cine negro", 51 | "history": "Historia", 52 | "horror": "Horror", 53 | "music": "Música", 54 | "musical": "Musical", 55 | "mystery": "Misterio", 56 | "romance": "Romance", 57 | "sci-fi": "Sci-Fi", 58 | "short": "Corto", 59 | "sport": "Deportes", 60 | "thriller": "Thriller", 61 | "war": "Bélica", 62 | "western": "Western" 63 | } 64 | -------------------------------------------------------------------------------- /public/locale/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "noTorrents": "There is no available torrents", 3 | "torrents": "Torrents", 4 | "episode": "Episode", 5 | "sortBy": "Sort By", 6 | "genres": "Genres", 7 | "genre": "Genre", 8 | "back":"Back", 9 | "settings":"Settings", 10 | "quit": "Quit", 11 | "cancel": "Cancel", 12 | "beforeQuit": "Are you sure you want to quit?", 13 | "loading": "Please wait...", 14 | "loadingVideo": "Buffering video, please wait", 15 | "searchLoading": "Searching...", 16 | "noResults": "No results found for your query.", 17 | "search": "Search", 18 | "movies": "Movies", 19 | "tv_shows": "TV shows", 20 | "trailer": "Trailer", 21 | "subtitledIn": "Subtitled in", 22 | "quality": "Quality", 23 | "watchItNow": "WATCH IT NOW", 24 | "durationUnit": "min", 25 | "connecting": "Connecting...", 26 | "startingDownload": "Starting Download...", 27 | "downloading": "Downloading...", 28 | "UpgradeVersion": "Update Popcorn Time", 29 | "UpgradeVersionDescription": "Popcorn Time %s was just released. You should get it now!", 30 | "min_window": "Minimize window", 31 | "max_window": "Maximize window", 32 | "close_window": "Close", 33 | "error": "Error", 34 | "season": "Season", 35 | "no_movies": "No movies found", 36 | "all": "Popular", 37 | "action": "Action", 38 | "adventure": "Adventure", 39 | "animation": "Animation", 40 | "biography": "Biography", 41 | "comedy": "Comedy", 42 | "crime": "Crime", 43 | "documentary": "Documentary", 44 | "drama": "Drama", 45 | "family": "Family", 46 | "fantasy": "Fantasy", 47 | "film-noir": "Film-Noir", 48 | "history": "History", 49 | "horror": "Horror", 50 | "music": "Music", 51 | "musical": "Musical", 52 | "mystery": "Mystery", 53 | "romance": "Romance", 54 | "sci-fi": "Sci-Fi", 55 | "short": "Short", 56 | "sport": "Sport", 57 | "thriller": "Thriller", 58 | "war": "War", 59 | "western": "Western", 60 | 61 | 62 | "VpnDisabled":"VPN DISABLED!", 63 | "VpnAlert":"IT IS HIGHLY RECOMMENDED TO USE VPN
TO AVOID UNNECESSARY RISKS", 64 | "TurnOnVpn": "TURN ON VPN", 65 | "continue":"Continue" 66 | } 67 | -------------------------------------------------------------------------------- /public/locale/locale/pt.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | "noTorrents": "Não há torrents disponíveis", 4 | "torrents": "Torrents", 5 | "episode": "episódio", 6 | "sortBy": "Classificar por", 7 | "genres": "gêneros", 8 | "genre": "gênero", 9 | 10 | "back":"Voltar", 11 | "settings":"Configurações", 12 | 13 | "quit": "Sair", 14 | "cancel": "Cancelar", 15 | "beforeQuit": "Você tem certeza que deseja sair?", 16 | "loading": "Por Favor Aguarde...", 17 | "loadingVideo": "Bufferizando vídeo, por favor aguarde", 18 | "searchLoading": "Procurando...", 19 | "noResults": "Nenhum resultado encontrado.", 20 | 21 | "search": "Procurar", 22 | "movies": "Filmes", 23 | 24 | "subtitledIn": "Legendas em", 25 | "quality": "Qualidade", 26 | "watchItNow": "Assistir Agora", 27 | "durationUnit": "min", 28 | 29 | "connecting": "Conectando...", 30 | "startingDownload": "Começando Download...", 31 | "downloading": "Baixando...", 32 | 33 | "UpgradeVersion": "Atualizar Popcorn Time", 34 | "UpgradeVersionDescription": " acaba de ser lançado. Atualize agora!", 35 | 36 | "tv_shows":"Programas TV", 37 | "trailer":"trailer", 38 | "min_window":"minimizar a janela", 39 | "max_window":"janela maximizar", 40 | "close_window":"perto", 41 | "error":"erro", 42 | "season":"temporada", 43 | "no_movies":"nenhum filme encontrado", 44 | 45 | "all": "Popular", 46 | "action": "Ação", 47 | "adventure": "Aventura", 48 | "animation": "Animação", 49 | "biography": "Biografia", 50 | "comedy": "Comédia", 51 | "crime": "Crime", 52 | "documentary": "Documentário", 53 | "drama": "Drama", 54 | "family": "Família", 55 | "fantasy": "Fantasia", 56 | "film-noir": "Noir", 57 | "history": "História", 58 | "horror": "Terror", 59 | "music": "Música", 60 | "musical": "Musical", 61 | "mystery": "Mistério", 62 | "romance": "Romance", 63 | "sci-fi": "Sci-Fi", 64 | "short": "Curta", 65 | "sport": "Esporte", 66 | "thriller": "Thriller", 67 | "war": "Guerra", 68 | "western": "Western" 69 | 70 | } 71 | -------------------------------------------------------------------------------- /public/locale/locale/ro.json: -------------------------------------------------------------------------------- 1 | { 2 | "noTorrents": "There is no available torrents", 3 | "torrents": "Torrents", 4 | "episode": "Episode", 5 | "sortBy": "Sort By", 6 | "genres": "Genres", 7 | "genre": "Genre", 8 | 9 | "back":"înapoi", 10 | "settings":"Setări", 11 | "quit": "Închide", 12 | "cancel": "Anulează", 13 | "beforeQuit": "Ești sigur că vrei să închizi?", 14 | "loading": "Te rugăm să aștepți...", 15 | "loadingVideo": "Filmul se încarcă, te rugăm să așteapți", 16 | "searchLoading": "Se caută...", 17 | "noResults": "Nu s-a găsit niciun rezultat.", 18 | 19 | "search": "Caută", 20 | "movies": "Filme", 21 | 22 | "subtitledIn": "Subtitrat în", 23 | "quality": "Calitate", 24 | "watchItNow": "Vizionează acum", 25 | "durationUnit": "min", 26 | 27 | "connecting": "Se conectează...", 28 | "startingDownload": "Începe descărcarea...", 29 | "downloading": "Se descarcă...", 30 | 31 | "UpgradeVersion": "Actualizează Popcorn Time", 32 | "UpgradeVersionDescription": " a fost lansat. Îți sugerăm să treci la noua versiune!", 33 | 34 | "tv_shows":"emisiuni TV", 35 | "trailer":"rulotă", 36 | "min_window":"minimiza fereastra", 37 | "max_window":"fereastra maximiza", 38 | "close_window":"închide", 39 | "error":"eroare", 40 | "season":"sezon", 41 | "no_movies":"ici un film găsit", 42 | 43 | "all": "Popular", 44 | "action": "Acțiune", 45 | "adventure": "Aventură", 46 | "animation": "Animație", 47 | "biography": "Biografic", 48 | "comedy": "Comedie", 49 | "crime": "Crimă", 50 | "documentary": "Documentar", 51 | "drama": "Dramă", 52 | "family": "De familie", 53 | "fantasy": "Fantezie", 54 | "film-noir": "Film-Noir", 55 | "history": "Istoric", 56 | "horror": "Horror", 57 | "music": "Muzică", 58 | "musical": "Muzical", 59 | "mystery": "Mister", 60 | "romance": "Romantic", 61 | "sci-fi": "SF", 62 | "short": "Scurt-metraj", 63 | "sport": "Sport", 64 | "thriller": "Thriller", 65 | "war": "Război", 66 | "western": "Western" 67 | 68 | } 69 | -------------------------------------------------------------------------------- /public/locale/sv.json: -------------------------------------------------------------------------------- 1 | { 2 | "noTorrents": "Det finns inga torrents tillgängliga", 3 | "torrents": "Torrents", 4 | "episode": "Episod", 5 | "sortBy": "Sortera efter", 6 | "genres": "Genrer", 7 | "genre": "Genre", 8 | "back":"Tillbaka", 9 | "settings":"Inställningar", 10 | "quit": "Avsluta", 11 | "cancel": "Avbryt", 12 | "beforeQuit": "Vill du verkligen avsluta?", 13 | "loading": "Vänta...", 14 | "loadingVideo": "Buffrar film, vänta", 15 | "searchLoading": "Söker...", 16 | "noResults": "Inga sökresultat hittades.", 17 | "search": "Sök", 18 | "movies": "Filmer", 19 | "tv_shows": "TV-program", 20 | "trailer": "Trailer", 21 | "subtitledIn": "Textad på", 22 | "quality": "Kvalitet", 23 | "watchItNow": "SE DEN NU", 24 | "durationUnit": "min", 25 | "connecting": "Ansluter...", 26 | "startingDownload": "Startar nedladdning...", 27 | "downloading": "Laddar ner...", 28 | "UpgradeVersion": "Uppdatera Popcorn Time", 29 | "UpgradeVersionDescription": "Popcorn Time %s har just släppts. Du borde hämta den nu!", 30 | "min_window": "Minimera fönstret", 31 | "max_window": "Maximera fönstret", 32 | "close_window": "Stäng", 33 | "error": "Fel", 34 | "season": "Säsong", 35 | "no_movies": "Inga filmer hittades", 36 | "all": "Populärt", 37 | "action": "Action", 38 | "adventure": "Äventyr", 39 | "animation": "Animerat", 40 | "biography": "Biografi", 41 | "comedy": "Komedi", 42 | "crime": "Brott", 43 | "documentary": "Dokumentär", 44 | "drama": "Drama", 45 | "family": "Familj", 46 | "fantasy": "Fantasi", 47 | "film-noir": "Film-Noir", 48 | "history": "Historia", 49 | "horror": "Skräck", 50 | "music": "Musik", 51 | "musical": "Musikal", 52 | "mystery": "Mystik", 53 | "romance": "Romantik", 54 | "sci-fi": "Sci-Fi", 55 | "short": "Kort", 56 | "sport": "Sport", 57 | "thriller": "Thriller", 58 | "war": "Krig", 59 | "western": "Västern", 60 | 61 | 62 | "VpnDisabled":"VPN INAKTIVERAD!", 63 | "VpnAlert":"DET ÄR STARKT REKOMMENDERAT ATT ANVÄNDA VPN
FÖR ATT UNDVIKA ONÖDIGT RISKTAGANDE", 64 | "TurnOnVpn": "AKTIVERA VPN", 65 | "continue":"Fortsätt" 66 | } 67 | -------------------------------------------------------------------------------- /public/locale/tr.json: -------------------------------------------------------------------------------- 1 | { 2 | "noTorrents": "Şu an için, aktif bir torrent bulunamadı", 3 | "torrents": "Torrentler", 4 | "episode": "Bölüm", 5 | "sortBy": "Sırala", 6 | "genres": "Türler", 7 | "genre": "Tür", 8 | "back":"Geri", 9 | "settings":"Ayarlar", 10 | "quit": "Çıkış", 11 | "cancel": "Vazgeç", 12 | "beforeQuit": "Programdan çıkmak istediğinize emin misiniz?", 13 | "loading": "Lütfen Bekleyiniz...", 14 | "loadingVideo": "Video ara belleğe alınıyor, lütfen bekleyiniz", 15 | "searchLoading": "Aranıyor...", 16 | "noResults": "Sorgunuza karşılık gelen bir sonuç bulunamadı.", 17 | "search": "Ara", 18 | "movies": "Filmler", 19 | "tv_shows": "TV-Dizileri", 20 | "trailer": "Fragmanlar", 21 | "subtitledIn": "Altyazılar :", 22 | "quality": "Kalite", 23 | "watchItNow": "HEMEN İZLE", 24 | "durationUnit": "min", 25 | "connecting": "Bağlanıyor...", 26 | "startingDownload": "Yükleme başlıyor...", 27 | "downloading": "İndiriliyor...", 28 | "UpgradeVersion": "Popcorn Time'ı güncelle", 29 | "UpgradeVersionDescription": "Popcorn Time için %s versiyonu yayınlandı. Hemen indirmek ister misiniz?", 30 | "min_window": "Pencereyi küçült", 31 | "max_window": "Pencereyi büyüt", 32 | "close_window": "Kapat", 33 | "error": "Hata", 34 | "season": "Sezon", 35 | "no_movies": "Film bulunamadı", 36 | "all": "Popüler", 37 | "action": "Aksiyon", 38 | "adventure": "Macera", 39 | "animation": "Animasyon", 40 | "biography": "Biyografi", 41 | "comedy": "Komedi", 42 | "crime": "Suç", 43 | "documentary": "Belgesel", 44 | "drama": "Dram", 45 | "family": "Aile", 46 | "fantasy": "Fantazi", 47 | "film-noir": "Karanlık Film", 48 | "history": "Tarihi", 49 | "horror": "Korku", 50 | "music": "Müzik", 51 | "musical": "Müzikal", 52 | "mystery": "Gizem", 53 | "romance": "Duygusal", 54 | "sci-fi": "Sci-Fi", 55 | "short": "Kısa", 56 | "sport": "Spor", 57 | "thriller": "Gerilim", 58 | "war": "Savaş", 59 | "western": "Western", 60 | 61 | 62 | "VpnDisabled":"VPN DISABLED!", 63 | "VpnAlert":"IT IS HIGHLY RECOMMENDED TO USE VPN
TO AVOID UNNECESSARY RISKS", 64 | "TurnOnVpn": "TURN ON VPN", 65 | "continue":"Continue" 66 | } 67 | -------------------------------------------------------------------------------- /public/locale/locale/he.json: -------------------------------------------------------------------------------- 1 | { 2 | "noTorrents": "לא נמצאו טורנטים", 3 | "torrents": "טורנטים", 4 | "episode": "פרק", 5 | "sortBy": "סדר לפי", 6 | "genres": "ז'אנרים", 7 | "genre": "ז'אנר", 8 | "back":"חזור", 9 | "settings":"הגדרות", 10 | "quit": "יציאה", 11 | "cancel": "ביטול", 12 | "beforeQuit": "לצאת? בטוח/ה?", 13 | "loading": "נא להמתין...", 14 | "loadingVideo": "טוען סרט, נא להמתין", 15 | "searchLoading": "מחפש...", 16 | "noResults": "לא נמצאו תוצאות לחיפוש.", 17 | "search": "חיפוש", 18 | "movies": "סרטים", 19 | "subtitledIn": "כתוביות", 20 | "quality": "איכות", 21 | "watchItNow": "צפה עכשיו", 22 | "durationUnit": "דקות", 23 | "connecting": "מתחבר...", 24 | "startingDownload": "מתחיל בהורדה...", 25 | "downloading": "מוריד...", 26 | "UpgradeVersion": "עדכון Popcorn Time", 27 | "UpgradeVersionDescription": "Popcorn Time %s שוחררה. כדאי לעדכן עכשיו!", 28 | "tv_shows":"סדרות", 29 | "trailer":"טריילר", 30 | "min_window":"מזער חלון", 31 | "max_window":"הגדל חלון", 32 | "close_window":"סגור", 33 | "error":"תקלה", 34 | "season":"עונה", 35 | "no_movies":"לא נמצא סרט", 36 | 37 | "all": "פופולרי", 38 | "action": "פעולה", 39 | "adventure": "הרפתקאות", 40 | "animation": "הנפשה", 41 | "biography": "ביוגרפיה", 42 | "comedy": "קומדיה", 43 | "crime": "פשע", 44 | "documentary": "תיעודי", 45 | "drama": "דרמה", 46 | "family": "משפחה", 47 | "fantasy": "פנטזיה", 48 | "film-noir": "סרט אפל", 49 | "history": "היסטוריה", 50 | "horror": "אימה", 51 | "music": "מוזיקה", 52 | "musical": "מוזיקלי", 53 | "mystery": "מסתורין", 54 | "romance": "רומנטיקה", 55 | "sci-fi": "מדע בדיוני", 56 | "short": "סרט קצר", 57 | "sport": "ספורט", 58 | "thriller": "מותחן", 59 | "war": "מלחמה", 60 | "western": "מערבון", 61 | 62 | "french": "צרפתית", 63 | "english": "אנגלית", 64 | "spanish": "ספרדית", 65 | "swedish": "שוודית", 66 | "portuguese": "פורטוגזית", 67 | "romanian": "רומנית", 68 | "turkish": "טורקית", 69 | "dutch": "הולנדית", 70 | "italian": "איטלקית", 71 | "hebrew": "עברית", 72 | "arabic": "ערבית" 73 | } 74 | -------------------------------------------------------------------------------- /public/locale/nl.json: -------------------------------------------------------------------------------- 1 | { 2 | "noTorrents": "Er zijn geen torrents beschikbaar", 3 | "torrents": "Torrents", 4 | "episode": "Aflevering", 5 | "sortBy": "Sorteren op", 6 | "genres": "Genres", 7 | "genre": "Genre", 8 | "back":"Terug", 9 | "settings":"Instellingen", 10 | "quit": "Afsluiten", 11 | "cancel": "Annuleren", 12 | "beforeQuit": "Weet je zeker dat je wilt afsluiten?", 13 | "loading": "Een moment geduld...", 14 | "loadingVideo": "Video bufferen, een moment geduld alsjeblieft", 15 | "searchLoading": "Zoeken...", 16 | "noResults": "Geen resultaten gevonden voor jouw zoekwoord.", 17 | "search": "Zoeken", 18 | "movies": "Films", 19 | "tv_shows": "TV-Shows", 20 | "trailer": "Trailer", 21 | "subtitledIn": "Vertaald in", 22 | "quality": "Kwaliteit", 23 | "watchItNow": "NU BEKIJKEN", 24 | "durationUnit": "min", 25 | "connecting": "Verbinden...", 26 | "startingDownload": "Download starten...", 27 | "downloading": "Downloaden...", 28 | "UpgradeVersion": "Popcorn Time updaten", 29 | "UpgradeVersionDescription": "Popcorn Time %s is zojuist uitgebracht. Download het meteen!", 30 | "min_window": "Scherm minimaliseren", 31 | "max_window": "Scherm maximaliseren", 32 | "close_window": "Sluit", 33 | "error": "Foutmelding", 34 | "season": "Seizoen", 35 | "no_movies": "Geen films gevonden", 36 | "all": "Populair", 37 | "action": "Actie", 38 | "adventure": "Avontuur", 39 | "animation": "Animatie", 40 | "biography": "Biografie", 41 | "comedy": "Komedie", 42 | "crime": "Misdaad", 43 | "documentary": "Documentaire", 44 | "drama": "Drama", 45 | "family": "Familie", 46 | "fantasy": "Fantasie", 47 | "film-noir": "Film-Noir", 48 | "history": "Historie", 49 | "horror": "Horror", 50 | "music": "Muziek", 51 | "musical": "Musical", 52 | "mystery": "Mysterie", 53 | "romance": "Romantiek", 54 | "sci-fi": "Sci-Fi", 55 | "short": "Kort", 56 | "sport": "Sport", 57 | "thriller": "Thriller", 58 | "war": "Oorlog", 59 | "western": "Westerse", 60 | 61 | 62 | 63 | "VpnDisabled":"VPN UITGESCHAKELD!", 64 | "VpnAlert":"Om de vele risico's verbonden aan het downloaden van torrents te vermijden Het wordt sterk aanbevolen om VPN te gebruiken.", 65 | "TurnOnVpn": "Zet VPN aan", 66 | "continue":"Voortzetten" 67 | } 68 | -------------------------------------------------------------------------------- /public/js/ui.settings_page.js: -------------------------------------------------------------------------------- 1 | ui.settings_page = { 2 | 3 | show:function(){ 4 | 5 | if(ui.sliders.slider.settings){ 6 | ui.sliders.slider.settings.hide() 7 | return; 8 | } 9 | 10 | var 11 | cacheFolder = app.config.hostApp.tempPath, 12 | opts = '', 13 | fontSizesTokesn = '', 14 | fontSizes = { 15 | "2":"Extra large", 16 | "1":"Large", 17 | "0":"Normal", 18 | "-1":"Small", 19 | "-2":"Extra small", 20 | 21 | }, 22 | curfontSize = (app.config.hostApp.subsFontSize || "0").toString(); 23 | 24 | for(var i in locale.langs) 25 | opts += ''; 26 | 27 | for(var i in fontSizes) 28 | fontSizesTokesn += ''; 29 | 30 | 31 | if(app.config.hostApp.hideGlare==1){ 32 | $('body').addClass('hideGlare'); 33 | $('.hideGlare_input').attr('checked',1); 34 | } 35 | else 36 | $('.hideGlare_input').removeAttr('checked'); 37 | 38 | 39 | if(app.config.hostApp.vpnAlert!='off') 40 | $('input.vpnalert').attr('checked',1); 41 | else 42 | $('input.vpnalert').removeAttr('checked'); 43 | 44 | 45 | var 46 | slider = new ui.slider('settings', 'left'), 47 | tokens = { 48 | languages:opts, 49 | cache_path: app.config.hostApp.tempPath, 50 | fontSizes: fontSizesTokesn 51 | }, 52 | html = utils.tokenizer(tokens, $('#settings_page_html').html()); 53 | 54 | 55 | slider.el.append(html) 56 | 57 | if(app.config.hostApp.cleanOnExit) 58 | $('#slider_settings input.cf_checkbox')[0].checked=true; 59 | 60 | 61 | $('#slider_settings select.langs').change(function(){ 62 | var 63 | c = $(this).val(), 64 | language = locale.langs[c]; 65 | 66 | //if(confirm('This will change your language to: ' + language)){ 67 | 68 | localStorage.setItem('locale', c); 69 | localStorage.removeItem('locale_words'); 70 | 71 | locale.construct(function(){ 72 | locale.translate_interface(); 73 | }); 74 | 75 | //} 76 | //else return false; 77 | }); 78 | 79 | 80 | slider.show(); 81 | } 82 | 83 | } 84 | -------------------------------------------------------------------------------- /public/locale/es.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | "noTorrents": "No hay torrents disponibles", 4 | "torrents": "Torrents", 5 | "episode": "episodio ", 6 | "sortBy": "Ordenado por", 7 | "genres": "Géneros", 8 | "genre": "género", 9 | 10 | 11 | "back":"volver", 12 | "settings":"Configuración", 13 | "quit": "Salir", 14 | "cancel": "Cancelar", 15 | "beforeQuit": "¿Está seguro de que desea salir?", 16 | "loading": "Cargando...", 17 | "loadingVideo": "Cargando vídeo, espere por favor", 18 | "searchLoading": "Buscando...", 19 | "noResults": "No se encontraron resultados.", 20 | "search": "Buscar", 21 | "movies": "Películas", 22 | "subtitledIn": "Subtítulos", 23 | "quality": "Calidad", 24 | "watchItNow": "Ver Ahora", 25 | "durationUnit": "min", 26 | "connecting": "Conectando...", 27 | "startingDownload": "Iniciando la descarga...", 28 | "downloading": "Descargando...", 29 | "UpgradeVersion": "Actualizar Popcorn Time", 30 | "UpgradeVersionDescription": "Popcorn Time %s acaba de salir. ¡Descargala ahora!", 31 | "tv_shows":"series TV", 32 | "trailer":"tráiler", 33 | "min_window":"minimizar ventana", 34 | "max_window":"maximizar ventana", 35 | "close_window":"cerrar", 36 | "error":"error", 37 | "season":"temporada", 38 | "no_movies":"ninguna película encontrada", 39 | "all": "Popular", 40 | "action": "Acción", 41 | "adventure": "Aventura", 42 | "animation": "Animación", 43 | "biography": "Biografía", 44 | "comedy": "Comedia", 45 | "crime": "Crimen", 46 | "documentary": "Documental", 47 | "drama": "Drama", 48 | "family": "Familiar", 49 | "fantasy": "Fantasía", 50 | "film-noir": "Cine negro", 51 | "history": "Historia", 52 | "horror": "Horror", 53 | "music": "Música", 54 | "musical": "Musical", 55 | "mystery": "Misterio", 56 | "romance": "Romance", 57 | "sci-fi": "Sci-Fi", 58 | "short": "Corto", 59 | "sport": "Deportes", 60 | "thriller": "Thriller", 61 | "war": "Bélica", 62 | "western": "Western", 63 | 64 | 65 | "VpnDisabled":"¡VPN DESCONECTADO!", 66 | "VpnAlert":"Se recomienda usar una conexión VPN para evitar
riesgos innecesarios.", 67 | "TurnOnVpn": "Conectar VPN", 68 | "continue":"Continuar" 69 | 70 | } 71 | -------------------------------------------------------------------------------- /public/locale/ro.json: -------------------------------------------------------------------------------- 1 | { 2 | "noTorrents": "There is no available torrents", 3 | "torrents": "Torrents", 4 | "episode": "Episode", 5 | "sortBy": "Sort By", 6 | "genres": "Genres", 7 | "genre": "Genre", 8 | 9 | "back":"înapoi", 10 | "settings":"Setări", 11 | "quit": "Închide", 12 | "cancel": "Anulează", 13 | "beforeQuit": "Ești sigur că vrei să închizi?", 14 | "loading": "Te rugăm să aștepți...", 15 | "loadingVideo": "Filmul se încarcă, te rugăm să așteapți", 16 | "searchLoading": "Se caută...", 17 | "noResults": "Nu s-a găsit niciun rezultat.", 18 | 19 | "search": "Caută", 20 | "movies": "Filme", 21 | 22 | "subtitledIn": "Subtitrat în", 23 | "quality": "Calitate", 24 | "watchItNow": "Vizionează acum", 25 | "durationUnit": "min", 26 | 27 | "connecting": "Se conectează...", 28 | "startingDownload": "Începe descărcarea...", 29 | "downloading": "Se descarcă...", 30 | 31 | "UpgradeVersion": "Actualizează Popcorn Time", 32 | "UpgradeVersionDescription": " a fost lansat. Îți sugerăm să treci la noua versiune!", 33 | 34 | "tv_shows":"emisiuni TV", 35 | "trailer":"rulotă", 36 | "min_window":"minimiza fereastra", 37 | "max_window":"fereastra maximiza", 38 | "close_window":"închide", 39 | "error":"eroare", 40 | "season":"sezon", 41 | "no_movies":"ici un film găsit", 42 | 43 | "all": "Popular", 44 | "action": "Acțiune", 45 | "adventure": "Aventură", 46 | "animation": "Animație", 47 | "biography": "Biografic", 48 | "comedy": "Comedie", 49 | "crime": "Crimă", 50 | "documentary": "Documentar", 51 | "drama": "Dramă", 52 | "family": "De familie", 53 | "fantasy": "Fantezie", 54 | "film-noir": "Film-Noir", 55 | "history": "Istoric", 56 | "horror": "Horror", 57 | "music": "Muzică", 58 | "musical": "Muzical", 59 | "mystery": "Mister", 60 | "romance": "Romantic", 61 | "sci-fi": "SF", 62 | "short": "Scurt-metraj", 63 | "sport": "Sport", 64 | "thriller": "Thriller", 65 | "war": "Război", 66 | "western": "Western", 67 | 68 | 69 | "VpnDisabled":"VPN DISABLED!", 70 | "VpnAlert":"IT IS HIGHLY RECOMMENDED TO USE VPN
TO AVOID UNNECESSARY RISKS", 71 | "TurnOnVpn": "TURN ON VPN", 72 | "continue":"Continue" 73 | 74 | } 75 | -------------------------------------------------------------------------------- /public/locale/pt.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | "noTorrents": "Não há torrents disponíveis", 4 | "torrents": "Torrents", 5 | "episode": "episódio", 6 | "sortBy": "Classificar por", 7 | "genres": "Gêneros", 8 | "genre": "Gênero", 9 | 10 | "back":"Voltar", 11 | "settings":"Configurações", 12 | 13 | "quit": "Sair", 14 | "cancel": "Cancelar", 15 | "beforeQuit": "Você tem certeza que deseja sair?", 16 | "loading": "Por Favor Aguarde...", 17 | "loadingVideo": "Bufferizando vídeo, por favor aguarde", 18 | "searchLoading": "Procurando...", 19 | "noResults": "Nenhum resultado encontrado.", 20 | 21 | "search": "Procurar", 22 | "movies": "Filmes", 23 | 24 | "subtitledIn": "Legendas em", 25 | "quality": "Qualidade", 26 | "watchItNow": "Assistir Agora", 27 | "durationUnit": "min", 28 | 29 | "connecting": "Conectando...", 30 | "startingDownload": "Começando Download...", 31 | "downloading": "Baixando...", 32 | 33 | "UpgradeVersion": "Atualizar Popcorn Time", 34 | "UpgradeVersionDescription": " acaba de ser lançado. Atualize agora!", 35 | 36 | "tv_shows":"Programas TV", 37 | "trailer":"trailer", 38 | "min_window":"minimizar a janela", 39 | "max_window":"janela maximizar", 40 | "close_window":"perto", 41 | "error":"erro", 42 | "season":"temporada", 43 | "no_movies":"nenhum filme encontrado", 44 | 45 | "all": "Popular", 46 | "action": "Ação", 47 | "adventure": "Aventura", 48 | "animation": "Animação", 49 | "biography": "Biografia", 50 | "comedy": "Comédia", 51 | "crime": "Crime", 52 | "documentary": "Documentário", 53 | "drama": "Drama", 54 | "family": "Família", 55 | "fantasy": "Fantasia", 56 | "film-noir": "Noir", 57 | "history": "História", 58 | "horror": "Terror", 59 | "music": "Música", 60 | "musical": "Musical", 61 | "mystery": "Mistério", 62 | "romance": "Romance", 63 | "sci-fi": "Sci-Fi", 64 | "short": "Curta", 65 | "sport": "Esporte", 66 | "thriller": "Thriller", 67 | "war": "Guerra", 68 | "western": "Western", 69 | 70 | 71 | "VpnDisabled":"VPN DESATIVADA!", 72 | "VpnAlert":"é altamente recomendado o uso da VPN
para evitar riscos desnecessários.", 73 | "TurnOnVpn": "Ligar VPN", 74 | "continue":"Prossiga" 75 | 76 | } 77 | -------------------------------------------------------------------------------- /public/locale/locale/ar.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | "noTorrents": "ليس هناك السيول متاحة", 4 | "torrents": "السيول", 5 | "episode": "حادثة", 6 | "sortBy": "الترتيب حسب", 7 | "genres": "الأنواع", 8 | "genre": "نوع أدبي", 9 | 10 | 11 | "back":"ظهر", 12 | "settings":"إعدادات", 13 | 14 | "quit": "إنهاء", 15 | "cancel": "إلغاء", 16 | "beforeQuit": "هل أنت متأكد من أنك ترغب بالخروج؟", 17 | "loading": "...رجاء انتظر", 18 | "loadingVideo": ".يرجى الانتظار، الفلم تحت التحضير ", 19 | "searchLoading": "...يبحث", 20 | "noResults": ".عذراً ، لا يوجد أي نتائج لما طلبت البحث عنه", 21 | "search": "...ابحث هنا", 22 | "movies": "افلام", 23 | "subtitledIn": "هذا الفلم مترجم الى", 24 | "quality": "الجودة", 25 | "watchItNow": "ابدء", 26 | "durationUnit": "دقيقه", 27 | "connecting": "...جاري الاتصال", 28 | "startingDownload": "...بدء التحميل", 29 | "downloading": "...جاري التحميل.", 30 | "UpgradeVersion": "Popcorn Time حدث", 31 | "UpgradeVersionDescription": "!تم إصداره للتو, وهو متاح للتحميل الان Popcorn Time %s ", 32 | "tv_shows":"تلفزيون", 33 | "trailer":"فيلم مقطورة", 34 | "min_window":"تقليل النافذة", 35 | "max_window":"تكبير النافذة", 36 | "close_window":"أغلق", 37 | "error":"خطأ", 38 | "season":"الموسم", 39 | "no_movies":"لا فيلم وجدت", 40 | 41 | "all": "اكثر افلام شهره", 42 | "action": "الآكشن", 43 | "adventure": "مغامرة", 44 | "animation": "رسوم المتحركة", 45 | "biography": "بيوغرافيا", 46 | "comedy": "كوميديا", 47 | "crime": "جرائم", 48 | "documentary": "وثائقي", 49 | "drama": "دراما", 50 | "family": "عائليه", 51 | "fantasy": "خيال", 52 | "film-noir": "فيلم نوار", 53 | "history": "تاريخيه", 54 | "horror": "رعب", 55 | "music": "موسيقى", 56 | "musical": "موسيقية", 57 | "mystery": "غموض", 58 | "romance": "رومانسية", 59 | "sci-fi": "خيال علمي", 60 | "short": "قصيرة", 61 | "sport": "رياضه", 62 | "thriller": "إثارة", 63 | "war": "حرب", 64 | "western": "افلام غربية", 65 | 66 | "french": "الفرنسية", 67 | "english": "الإنكليزية", 68 | "spanish": "الإسبانية", 69 | "portuguese": "البرتغالية", 70 | "romanian": "الرومانية", 71 | "turkish": "التركية", 72 | "dutch": "الهولنديه", 73 | "italian": "الايطالية", 74 | "arabic": "العربية" 75 | } 76 | -------------------------------------------------------------------------------- /public/locale/locale/it.json: -------------------------------------------------------------------------------- 1 | { 2 | "noTorrents": "Non ci sono torrent disponibili", 3 | "torrents": "Torrent", 4 | "episode": "episodio", 5 | "sortBy": "Ordina per", 6 | "genres": "generi", 7 | "genre": "genere", 8 | 9 | "back":"Indietro", 10 | "settings":"Impostazioni", 11 | "quit": "Esci", 12 | "cancel": "Annulla", 13 | "beforeQuit": "Sei sicuro di voler uscire?", 14 | "loading": "Attendi...", 15 | "loadingVideo": "Caricamento del video, attendere prego", 16 | "searchLoading": "Ricerca...", 17 | "noResults": "Nessun risultato trovato per i tuoi criteri di ricerca.", 18 | 19 | "search": "Cerca", 20 | "movies": "Film", 21 | 22 | "subtitledIn": "Sottotitoli in", 23 | "quality": "Qualità", 24 | "watchItNow": "Guarda ora", 25 | "durationUnit": "min", 26 | 27 | "connecting": "Connessione...", 28 | "startingDownload": "Inizio Download...", 29 | "downloading": "Download in corso...", 30 | 31 | "UpgradeVersion": "Aggiorna Popcorn Time", 32 | "UpgradeVersionDescription": "Popcorn Time %s é stato rilasciato. Dovresti scaricarlo ora!", 33 | 34 | "tv_shows":"Programmi TV", 35 | "trailer":"trailer", 36 | "min_window":"Riduci a icona", 37 | "max_window":"Ingrandisci", 38 | "close_window":"Chiudi", 39 | "error":"errore", 40 | "season":"stagione", 41 | "no_movies":"Nessun film trovato", 42 | 43 | 44 | "all": "Popolari", 45 | "action": "Azione", 46 | "adventure": "Avventura", 47 | "animation": "Animazione", 48 | "biography": "Biografia", 49 | "comedy": "Commedia", 50 | "crime": "Crimine", 51 | "documentary": "Documentario", 52 | "drama": "Drammatico", 53 | "family": "Per famiglie", 54 | "fantasy": "Fantasy", 55 | "film-noir": "Noir", 56 | "history": "Storico", 57 | "horror": "Horror", 58 | "music": "Musica", 59 | "musical": "Musical", 60 | "mystery": "Mistero", 61 | "romance": "Romantico", 62 | "sci-fi": "Sci-Fi", 63 | "short": "Corto", 64 | "sport": "Sport", 65 | "thriller": "Thriller", 66 | "war": "Guerra", 67 | "western": "Western", 68 | 69 | "french": "Francese", 70 | "english": "Inglese", 71 | "spanish": "Spagnolo", 72 | "swedish": "Svedese", 73 | "portuguese": "Portoghese", 74 | "romanian": "Rumeno", 75 | "turkish": "Turco", 76 | "italian":"Italiano" 77 | } 78 | -------------------------------------------------------------------------------- /public/locale/locale/pl.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | "noTorrents": "Brak dostępnych torrentów", 4 | "torrents": "torrenty", 5 | "episode": "epizod", 6 | "sortBy": "Sortuj według", 7 | "genres": "Gatunki", 8 | "genre": "genre", 9 | "back":"Wstecz", 10 | "settings":"Ustawienia ", 11 | "quit": "Wyjdź", 12 | "cancel": "Anuluj", 13 | "beforeQuit": "Na pewno chcesz wyjść z programu?", 14 | "loading": "Proszę czekać...", 15 | "loadingVideo": "Buforowanie wideo, proszę czekać", 16 | "searchLoading": "Wyszukiwanie...", 17 | "noResults": "Brak wyników dla podanej frazy.", 18 | "search": "Szukaj", 19 | "movies": "Filmy", 20 | "subtitledIn": "Napisy po", 21 | "quality": "Jakość", 22 | "watchItNow": "Oglądaj", 23 | "durationUnit": "min", 24 | "connecting": "Łączenie...", 25 | "startingDownload": "Rozpoczęcie pobierania...", 26 | "downloading": "Pobieranie...", 27 | "UpgradeVersion": "Zaktualizuj Popcorn Time", 28 | "UpgradeVersionDescription": "Popcorn Time %s właśnie został wydany. Pobierz już teraz!", 29 | "tv_shows":"Programy TV", 30 | "trailer":"przyczepa", 31 | "min_window":"okno zminimalizować", 32 | "max_window":"okno zmaksymalizować", 33 | "close_window":"blisko", 34 | "error":"błąd", 35 | "season":"sezon", 36 | "no_movies":"Film nie znaleziono", 37 | 38 | "all": "Popularne", 39 | "action": "Akcja", 40 | "adventure": "Przygodowy", 41 | "animation": "Animacja", 42 | "biography": "Biograficzny", 43 | "comedy": "Komedia", 44 | "crime": "Kryminał", 45 | "documentary": "Dokumentalny", 46 | "drama": "Dramat", 47 | "family": "Familijny", 48 | "fantasy": "Fantasy", 49 | "film-noir": "Film Noir", 50 | "history": "History", 51 | "horror": "Horror", 52 | "music": "Muzyczny", 53 | "musical": "Musical", 54 | "mystery": "Zagadkowy", 55 | "romance": "Romans", 56 | "sci-fi": "Sci-Fi", 57 | "short": "Krótki", 58 | "sport": "Sportowy", 59 | "thriller": "Thriller", 60 | "war": "Wojenny", 61 | "western": "Western", 62 | 63 | "french": "francusku", 64 | "english": "angielsku", 65 | "spanish": "hiszpańsku", 66 | "swedish": "szwedzku", 67 | "portuguese": "portugalsku", 68 | "romanian": "rumuńsku", 69 | "turkish": "turecku", 70 | "dutch": "holendersku", 71 | "italian": "włosku", 72 | "polish": "polsku" 73 | } 74 | -------------------------------------------------------------------------------- /public/js/ui.loading_wrapper.js: -------------------------------------------------------------------------------- 1 | ui.loading_wrapper = { 2 | 3 | init:function(){ 4 | for(var i=0;i<50;i++) 5 | $('
').appendTo('#loading_wrapper .incont .bars_cont') 6 | 7 | var elems = document.getElementsByClassName('bar'); 8 | 9 | var increase = Math.PI * 2 / elems.length; 10 | var x = 0, y = 0, angle = 0; 11 | 12 | for (var i = 0; i < elems.length; i++) { 13 | var elem = elems[i]; 14 | var radius = 115; 15 | x = radius * Math.cos(angle) + radius; 16 | y = radius * Math.sin(angle) +radius; 17 | elem.style.position = 'absolute'; 18 | elem.style.left = x + 'px'; 19 | elem.style.top = y + 'px'; 20 | var rot = angle * 180 / Math.PI - 90; 21 | elem.style['-webkit-transform'] = "rotate("+rot+"deg)"; 22 | angle += increase; 23 | } 24 | }, 25 | 26 | show: function(f){ 27 | 28 | this.percent = 0; 29 | ui.loading_wrapper.change_stats(0,0,0,0,'Loading'); 30 | 31 | $('#loading_wrapper').addClass('activated'); 32 | $('body').addClass('loading'); 33 | 34 | $('#loading_wrapper .f')[f ? 'hide' : 'show']() 35 | 36 | /* 37 | if(!hostApp.vpn_isConnected()) 38 | $('#loading_wrapper .icon.locked').css('visibility','hidden'); 39 | 40 | else 41 | $('#loading_wrapper .icon.locked').css('visibility','visible'); 42 | 43 | 44 | */ 45 | }, 46 | 47 | hide: function(native_call){ 48 | 49 | $('#loading_wrapper').removeClass('activated'); 50 | $('body').removeClass('loading'); 51 | $('#loading_wrapper .bar').removeClass('on') 52 | this.percent=0; 53 | if(!native_call) { 54 | app.torrent.cancel(); 55 | Mousetrap.unpause(); 56 | } 57 | }, 58 | 59 | change_stats: function(percentage, speed, seeders, peers, msg){ 60 | 61 | percentage = Math.round(percentage); 62 | var to = Math.ceil(percentage/2); 63 | 64 | if(to){ 65 | $('#loading_wrapper .bar').removeClass('on'); 66 | $('#loading_wrapper .bar').slice(0, to).addClass('on'); 67 | } 68 | speed = (speed/1024).toFixed(2); 69 | if(speed>1024) { 70 | speed = (speed/1024).toFixed(2) + ' Mb/s'; 71 | } else { 72 | speed = speed + ' Kb/s'; 73 | } 74 | 75 | $('#loading_wrapper .percents').html(percentage+'%'); 76 | $('#loading_wrapper .peers .val').html(seeders + ' / ' + peers ); 77 | $('#loading_wrapper .speed .val').html(speed); 78 | $('#loading_wrapper .msg').html(locale.translate(msg)); 79 | 80 | }, 81 | 82 | 83 | } 84 | -------------------------------------------------------------------------------- /public/locale/he.json: -------------------------------------------------------------------------------- 1 | { 2 | "noTorrents": "לא נמצאו טורנטים", 3 | "torrents": "טורנטים", 4 | "episode": "פרק", 5 | "sortBy": "סדר לפי", 6 | "genres": "ז'אנרים", 7 | "genre": "ז'אנר", 8 | "back":"חזור", 9 | "settings":"הגדרות", 10 | "quit": "יציאה", 11 | "cancel": "ביטול", 12 | "beforeQuit": "לצאת? בטוח/ה?", 13 | "loading": "נא להמתין...", 14 | "loadingVideo": "טוען סרט, נא להמתין", 15 | "searchLoading": "מחפש...", 16 | "noResults": "לא נמצאו תוצאות לחיפוש.", 17 | "search": "חיפוש", 18 | "movies": "סרטים", 19 | "subtitledIn": "כתוביות", 20 | "quality": "איכות", 21 | "watchItNow": "צפה עכשיו", 22 | "durationUnit": "דקות", 23 | "connecting": "מתחבר...", 24 | "startingDownload": "מתחיל בהורדה...", 25 | "downloading": "מוריד...", 26 | "UpgradeVersion": "עדכון Popcorn Time", 27 | "UpgradeVersionDescription": "Popcorn Time %s שוחררה. כדאי לעדכן עכשיו!", 28 | "tv_shows":"סדרות", 29 | "trailer":"טריילר", 30 | "min_window":"מזער חלון", 31 | "max_window":"הגדל חלון", 32 | "close_window":"סגור", 33 | "error":"תקלה", 34 | "season":"עונה", 35 | "no_movies":"לא נמצא סרט", 36 | 37 | "all": "פופולרי", 38 | "action": "פעולה", 39 | "adventure": "הרפתקאות", 40 | "animation": "הנפשה", 41 | "biography": "ביוגרפיה", 42 | "comedy": "קומדיה", 43 | "crime": "פשע", 44 | "documentary": "תיעודי", 45 | "drama": "דרמה", 46 | "family": "משפחה", 47 | "fantasy": "פנטזיה", 48 | "film-noir": "סרט אפל", 49 | "history": "היסטוריה", 50 | "horror": "אימה", 51 | "music": "מוזיקה", 52 | "musical": "מוזיקלי", 53 | "mystery": "מסתורין", 54 | "romance": "רומנטיקה", 55 | "sci-fi": "מדע בדיוני", 56 | "short": "סרט קצר", 57 | "sport": "ספורט", 58 | "thriller": "מותחן", 59 | "war": "מלחמה", 60 | "western": "מערבון", 61 | 62 | "french": "צרפתית", 63 | "english": "אנגלית", 64 | "spanish": "ספרדית", 65 | "swedish": "שוודית", 66 | "portuguese": "פורטוגזית", 67 | "romanian": "רומנית", 68 | "turkish": "טורקית", 69 | "dutch": "הולנדית", 70 | "italian": "איטלקית", 71 | "hebrew": "עברית", 72 | "arabic": "ערבית", 73 | 74 | 75 | "VpnDisabled":"
VPN לא פעיל!
", 76 | "VpnAlert":"
בכדי להמנע מסיכונים רבים הקשורים בהורדה
מומלץ להפעיל את החיבור ל-VPN
", 77 | "TurnOnVpn": "
הפעל VPN
", 78 | "continue":"המשך" 79 | } 80 | -------------------------------------------------------------------------------- /public/js/app.config.js: -------------------------------------------------------------------------------- 1 | app.config={ 2 | 3 | init:function(){ 4 | 5 | this.fetcher = { 6 | mode: 'imdb', 7 | sortBy: 'seeds' 8 | 9 | } 10 | 11 | this.api_keys = { 12 | 13 | //tmdb: ["9b939aee0aaafc12a65bf448e4af9543"][(Math.floor(Math.random()*1))], 14 | tmdb: '9b939aee0aaafc12a65bf448e4af9543', 15 | tmdb_url: 'http://api.themoviedb.org/3/', 16 | tmdb_src: 'http://image.tmdb.org/t/p/', 17 | 18 | } 19 | 20 | this.locale = { 21 | 22 | preferredSubs: localStorage.getItem('conf_locale_preferredSubs') 23 | 24 | } 25 | 26 | 27 | var storage = { 28 | ui:{ 29 | coverScale: 1.1, 30 | coverWidth: 133, 31 | coverTiteSize: 12, 32 | coverYearSize: 12, 33 | coverToolsSize: 12, 34 | coverStarsSize: 17, 35 | } 36 | } 37 | 38 | for(var i in storage){ 39 | this[i] = {}; 40 | for(var key in storage[i]) 41 | this[i][key] = localStorage.getItem('conf_' + i + '_' + key) || storage[i][key]; 42 | } 43 | }, 44 | 45 | set:function(values){ 46 | for(var i in values){ 47 | for(var key in values[i]){ 48 | this[i][key] = values[i][key] 49 | localStorage.setItem('conf_' + i + '_' + key, values[i][key]) 50 | } 51 | } 52 | 53 | }, 54 | 55 | hostApp:{ 56 | 57 | isVpnConnected: true, 58 | tempPath: localStorage.getItem('conf_hostApp_tempPath') || '', 59 | subsFontSize: localStorage.getItem('conf_hostApp_subsFontSize') || "0", 60 | cleanOnExit: localStorage.getItem('conf_hostApp_cleanOnExit') && localStorage.getItem('conf_hostApp_cleanOnExit')!="0", 61 | hideGlare: localStorage.getItem('conf_hostApp_hideGlare') || false, 62 | //vpnAlert: localStorage.getItem('conf_hostApp_vpnAlert') || "on", 63 | vpnAlert: localStorage.getItem('conf_hostApp_vpnAlert') || "off", 64 | isVPN: 1, 65 | vpnInstalled: function(mode){ 66 | app.config.hostApp.isVpnInstalled = (mode ? 1:0); 67 | ui.vpn_page.updateDisplay(); 68 | }, 69 | vpn_connect:function(){ 70 | if(torrentsTime.pt.vpn_connect) { 71 | torrentsTime.pt.vpn_connect(); 72 | } 73 | }, 74 | vpn_disconnect:function(){ 75 | if(torrentsTime.pt.vpn_disconnect) { 76 | torrentsTime.pt.vpn_disconnect(); 77 | } 78 | } 79 | 80 | }, 81 | 82 | updateView:function(){ 83 | 84 | $('.temp_path.txt').val(app.config.hostApp.tempPath); 85 | app.config.set({hostApp:{ 86 | tempPath:app.config.hostApp.tempPath 87 | } 88 | }); 89 | } 90 | 91 | 92 | } 93 | -------------------------------------------------------------------------------- /public/locale/locale/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | "noTorrents": "Нет доступных торрентов", 4 | "torrents": "Торренты", 5 | "episode": "Эпизоды", 6 | "sortBy": "Сортировать по", 7 | "genres": "Жанры", 8 | "genre": "Жанр", 9 | 10 | "back":"назад ", 11 | "settings":"настройки", 12 | "quit": "Выход", 13 | "cancel": "Отмена", 14 | "beforeQuit": "Вы уверены, что хотите выйти?", 15 | "loading": "Пожалуйста, подождите...", 16 | "loadingVideo": "Буферизация видео, пожалуйста, подождите", 17 | "searchLoading": "Поиск...", 18 | "noResults": "Нет результатов по вашему запросу.", 19 | "search": "Поиск", 20 | "movies": "Фильмы", 21 | "subtitledIn": "Субтитры", 22 | "quality": "Качество", 23 | "watchItNow": "Смотреть прямо сейчас", 24 | "durationUnit": "мин", 25 | "connecting": "Соединение...", 26 | "startingDownload": "Начинается загрузка...", 27 | "downloading": "Загружается...", 28 | "UpgradeVersion": "Обновить Popcorn Time", 29 | "UpgradeVersionDescription": "Popcorn Time %s был выпущен. Вы должны загрузить его сейчас!", 30 | 31 | "tv_shows":"ТВ-шоу", 32 | "trailer":"трейлер", 33 | "min_window":"минимизировать окно", 34 | "max_window":"максимально окно", 35 | "close_window":"близко", 36 | "error":"ошибка", 37 | "season":"сезон", 38 | "no_movies":"нет фильма найдено", 39 | 40 | "all": "Популярное", 41 | "action": "Боевик", 42 | "adventure": "Приключения", 43 | "animation": "Анимационный", 44 | "biography": "Биография", 45 | "comedy": "Комедия", 46 | "crime": "Криминальный", 47 | "documentary": "Документальный", 48 | "drama": "Драма", 49 | "family": "Семейное", 50 | "fantasy": "Фантастика", 51 | "film-noir": "Фильм-Нуар", 52 | "history": "Исторический", 53 | "horror": "Фильм ужасов", 54 | "music": "Музыкальный", 55 | "musical": "Мюзикл", 56 | "mystery": "Мистика", 57 | "romance": "Романтический", 58 | "sci-fi": "Научная фантастика", 59 | "short": "Короткометражный", 60 | "sport": "Спортивный", 61 | "thriller": "Триллер", 62 | "war": "Военный", 63 | "western": "Вестерн", 64 | 65 | "french": "Французский", 66 | "english": "Английский", 67 | "spanish": "Испанский", 68 | "swedish": "Шведский", 69 | "portuguese": "Португальский", 70 | "romanian": "Румынский", 71 | "turkish": "Турецкий", 72 | "dutch": "Голландский", 73 | "italian": "Итальянский", 74 | "danish": "Датский", 75 | "arabic": "Арабский" 76 | } 77 | -------------------------------------------------------------------------------- /public/locale/it.json: -------------------------------------------------------------------------------- 1 | { 2 | "noTorrents": "Non ci sono torrent disponibili", 3 | "torrents": "Torrent", 4 | "episode": "episodio", 5 | "sortBy": "Ordina per", 6 | "genres": "Generi", 7 | "genre": "Genere", 8 | 9 | "back":"Indietro", 10 | "settings":"Impostazioni", 11 | "quit": "Esci", 12 | "cancel": "Annulla", 13 | "beforeQuit": "Sei sicuro di voler uscire?", 14 | "loading": "Attendi...", 15 | "loadingVideo": "Caricamento del video, attendere prego", 16 | "searchLoading": "Ricerca...", 17 | "noResults": "Nessun risultato trovato per i tuoi criteri di ricerca.", 18 | 19 | "search": "Cerca", 20 | "movies": "Film", 21 | 22 | "subtitledIn": "Sottotitoli in", 23 | "quality": "Qualità", 24 | "watchItNow": "Guarda ora", 25 | "durationUnit": "min", 26 | 27 | "connecting": "Connessione...", 28 | "startingDownload": "Inizio Download...", 29 | "downloading": "Download in corso...", 30 | 31 | "UpgradeVersion": "Aggiorna Popcorn Time", 32 | "UpgradeVersionDescription": "Popcorn Time %s é stato rilasciato. Dovresti scaricarlo ora!", 33 | 34 | "tv_shows":"Programmi TV", 35 | "trailer":"trailer", 36 | "min_window":"Riduci a icona", 37 | "max_window":"Ingrandisci", 38 | "close_window":"Chiudi", 39 | "error":"errore", 40 | "season":"stagione", 41 | "no_movies":"Nessun film trovato", 42 | 43 | 44 | "all": "Popolari", 45 | "action": "Azione", 46 | "adventure": "Avventura", 47 | "animation": "Animazione", 48 | "biography": "Biografia", 49 | "comedy": "Commedia", 50 | "crime": "Crimine", 51 | "documentary": "Documentario", 52 | "drama": "Drammatico", 53 | "family": "Per famiglie", 54 | "fantasy": "Fantasy", 55 | "film-noir": "Noir", 56 | "history": "Storico", 57 | "horror": "Horror", 58 | "music": "Musica", 59 | "musical": "Musical", 60 | "mystery": "Mistero", 61 | "romance": "Romantico", 62 | "sci-fi": "Sci-Fi", 63 | "short": "Corto", 64 | "sport": "Sport", 65 | "thriller": "Thriller", 66 | "war": "Guerra", 67 | "western": "Western", 68 | 69 | "french": "Francese", 70 | "english": "Inglese", 71 | "spanish": "Spagnolo", 72 | "swedish": "Svedese", 73 | "portuguese": "Portoghese", 74 | "romanian": "Rumeno", 75 | "turkish": "Turco", 76 | "italian":"Italiano", 77 | 78 | 79 | "VpnDisabled":"VPN DISATTIVATA!", 80 | "VpnAlert":"per evitare inutili rischi si consiglia di usare la VPN.", 81 | "TurnOnVpn": "Abilita VPN", 82 | "continue":"Continua" 83 | } 84 | -------------------------------------------------------------------------------- /public/locale/locale/de.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | "noTorrents": "Es gibt keine verfügbaren Torrents", 4 | "Torrents": "Torrents" 5 | "Episode": "Episode", 6 | "sortBy": "Sortieren nach", 7 | "genres": "Genres", 8 | "genre": "Genre", 9 | 10 | "back":"Zurück", 11 | "settings":"Einstellungen", 12 | "quit": "Beenden", 13 | "cancel": "Abbrechen", 14 | "beforeQuit": "Sind Sie sicher, dass Sie beenden wollen?", 15 | "loading": "Bitte warten...", 16 | "loadingVideo": "Das Video wird geladen, bitte warten...", 17 | "loadingSeeders" : "Seeders", 18 | "loadingPeers" : "Peers", 19 | "loadingSpeed" : "KB/s", 20 | "searchLoading": "Suchen...", 21 | "noResults": "Es wurden keine Suchergebnisse gefunden.", 22 | "search": "Suchen", 23 | "movies": "Filme", 24 | "subtitledIn": "Untertitel", 25 | "quality": "Qualität", 26 | "watchItNow": "Jetzt anschauen", 27 | "durationUnit": "min", 28 | "connecting": "Verbinden...", 29 | "startingDownload": "Download starten...", 30 | "downloading": "Downloaden...", 31 | "UpgradeVersion": "Popcorn Time aktualisieren", 32 | "UpgradeVersionDescription": "Popcorn Time %s wurde gerade veröffentlicht. Hol es dir jetzt!", 33 | "tv_shows":"TV Shows", 34 | "trailer":"Trailer ansehen", 35 | "min_window":"minimaliseren venster", 36 | "max_window":"maximaliseren raam ", 37 | "close_window":"dicht", 38 | "error":"fout", 39 | "season":"seizoen", 40 | "no_movies":"geen film gevonden", 41 | 42 | "all": "Beliebt", 43 | "action": "Action", 44 | "adventure": "Abenteuer", 45 | "animation": "Animation", 46 | "biography": "Biographie", 47 | "comedy": "Komödie", 48 | "crime": "Krimi", 49 | "documentary": "Dokumentation", 50 | "drama": "Drama", 51 | "family": "Familie", 52 | "fantasy": "Fantasy", 53 | "film-noir": "Film noir", 54 | "history": "Geschichte", 55 | "horror": "Horror", 56 | "music": "Musik", 57 | "musical": "Musical", 58 | "mystery": "Mystery", 59 | "romance": "Romantik", 60 | "sci-fi": "Sci-Fi", 61 | "short": "Kurzfilm", 62 | "sport": "Sport", 63 | "thriller": "Thriller", 64 | "war": "Krieg", 65 | "western": "Western", 66 | 67 | "french": "Französisch", 68 | "english": "Englisch", 69 | "spanish": "Spanisch", 70 | "swedish": "Schwedisch", 71 | "portuguese": "Portugiesisch", 72 | "romanian": "Rumänisch", 73 | "turkish": "Türkisch", 74 | "dutch": "Niederländisch", 75 | "italian": "Italienisch", 76 | "arabic": "Arabisch", 77 | "danish": "Dänisch" 78 | } 79 | -------------------------------------------------------------------------------- /public/locale/pl.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | "noTorrents": "Brak dostępnych torrentów", 4 | "torrents": "torrenty", 5 | "episode": "epizod", 6 | "sortBy": "Sortuj według", 7 | "genres": "Gatunki", 8 | "genre": "Genre", 9 | "back":"Wstecz", 10 | "settings":"Ustawienia ", 11 | "quit": "Wyjdź", 12 | "cancel": "Anuluj", 13 | "beforeQuit": "Na pewno chcesz wyjść z programu?", 14 | "loading": "Proszę czekać...", 15 | "loadingVideo": "Buforowanie wideo, proszę czekać", 16 | "searchLoading": "Wyszukiwanie...", 17 | "noResults": "Brak wyników dla podanej frazy.", 18 | "search": "Szukaj", 19 | "movies": "Filmy", 20 | "subtitledIn": "Napisy po", 21 | "quality": "Jakość", 22 | "watchItNow": "Oglądaj", 23 | "durationUnit": "min", 24 | "connecting": "Łączenie...", 25 | "startingDownload": "Rozpoczęcie pobierania...", 26 | "downloading": "Pobieranie...", 27 | "UpgradeVersion": "Zaktualizuj Popcorn Time", 28 | "UpgradeVersionDescription": "Popcorn Time %s właśnie został wydany. Pobierz już teraz!", 29 | "tv_shows":"Programy TV", 30 | "trailer":"przyczepa", 31 | "min_window":"okno zminimalizować", 32 | "max_window":"okno zmaksymalizować", 33 | "close_window":"blisko", 34 | "error":"błąd", 35 | "season":"sezon", 36 | "no_movies":"Film nie znaleziono", 37 | 38 | "all": "Popularne", 39 | "action": "Akcja", 40 | "adventure": "Przygodowy", 41 | "animation": "Animacja", 42 | "biography": "Biograficzny", 43 | "comedy": "Komedia", 44 | "crime": "Kryminał", 45 | "documentary": "Dokumentalny", 46 | "drama": "Dramat", 47 | "family": "Familijny", 48 | "fantasy": "Fantasy", 49 | "film-noir": "Film Noir", 50 | "history": "History", 51 | "horror": "Horror", 52 | "music": "Muzyczny", 53 | "musical": "Musical", 54 | "mystery": "Zagadkowy", 55 | "romance": "Romans", 56 | "sci-fi": "Sci-Fi", 57 | "short": "Krótki", 58 | "sport": "Sportowy", 59 | "thriller": "Thriller", 60 | "war": "Wojenny", 61 | "western": "Western", 62 | 63 | "french": "francusku", 64 | "english": "angielsku", 65 | "spanish": "hiszpańsku", 66 | "swedish": "szwedzku", 67 | "portuguese": "portugalsku", 68 | "romanian": "rumuńsku", 69 | "turkish": "turecku", 70 | "dutch": "holendersku", 71 | "italian": "włosku", 72 | "polish": "polsku", 73 | 74 | 75 | "VpnDisabled":"VPN DISABLED!", 76 | "VpnAlert":"IT IS HIGHLY RECOMMENDED TO USE VPN
TO AVOID UNNECESSARY RISKS", 77 | "TurnOnVpn": "TURN ON VPN", 78 | "continue":"Continue" 79 | } 80 | -------------------------------------------------------------------------------- /public/locale/ar.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | "noTorrents": "ليس هناك السيول متاحة", 4 | "torrents": "السيول", 5 | "episode": "حادثة", 6 | "sortBy": "الترتيب حسب", 7 | "genres": "الأنواع", 8 | "genre": "نوع أدبي", 9 | 10 | 11 | "back":"ظهر", 12 | "settings":"إعدادات", 13 | 14 | "quit": "إنهاء", 15 | "cancel": "إلغاء", 16 | "beforeQuit": "هل أنت متأكد من أنك ترغب بالخروج؟", 17 | "loading": "...رجاء انتظر", 18 | "loadingVideo": ".يرجى الانتظار، الفلم تحت التحضير ", 19 | "searchLoading": "...يبحث", 20 | "noResults": ".عذراً ، لا يوجد أي نتائج لما طلبت البحث عنه", 21 | "search": "...ابحث هنا", 22 | "movies": "افلام", 23 | "subtitledIn": "هذا الفلم مترجم الى", 24 | "quality": "الجودة", 25 | "watchItNow": "ابدء", 26 | "durationUnit": "دقيقه", 27 | "connecting": "...جاري الاتصال", 28 | "startingDownload": "...بدء التحميل", 29 | "downloading": "...جاري التحميل.", 30 | "UpgradeVersion": "Popcorn Time حدث", 31 | "UpgradeVersionDescription": "!تم إصداره للتو, وهو متاح للتحميل الان Popcorn Time %s ", 32 | "tv_shows":"تلفزيون", 33 | "trailer":"فيلم مقطورة", 34 | "min_window":"تقليل النافذة", 35 | "max_window":"تكبير النافذة", 36 | "close_window":"أغلق", 37 | "error":"خطأ", 38 | "season":"الموسم", 39 | "no_movies":"لا فيلم وجدت", 40 | 41 | "all": "اكثر افلام شهره", 42 | "action": "الآكشن", 43 | "adventure": "مغامرة", 44 | "animation": "رسوم المتحركة", 45 | "biography": "بيوغرافيا", 46 | "comedy": "كوميديا", 47 | "crime": "جرائم", 48 | "documentary": "وثائقي", 49 | "drama": "دراما", 50 | "family": "عائليه", 51 | "fantasy": "خيال", 52 | "film-noir": "فيلم نوار", 53 | "history": "تاريخيه", 54 | "horror": "رعب", 55 | "music": "موسيقى", 56 | "musical": "موسيقية", 57 | "mystery": "غموض", 58 | "romance": "رومانسية", 59 | "sci-fi": "خيال علمي", 60 | "short": "قصيرة", 61 | "sport": "رياضه", 62 | "thriller": "إثارة", 63 | "war": "حرب", 64 | "western": "افلام غربية", 65 | 66 | "french": "الفرنسية", 67 | "english": "الإنكليزية", 68 | "spanish": "الإسبانية", 69 | "portuguese": "البرتغالية", 70 | "romanian": "الرومانية", 71 | "turkish": "التركية", 72 | "dutch": "الهولنديه", 73 | "italian": "الايطالية", 74 | "arabic": "العربية", 75 | 76 | "VpnDisabled":"
VPN غير مٌتاح!
", 77 | "VpnAlert":"
ينصح بشدة استخدام VPN لتجنب المخاطر الغير ضرورية.
", 78 | "TurnOnVpn": "
تشغيل VPN
", 79 | "continue":"استمرار" 80 | } 81 | -------------------------------------------------------------------------------- /public/locale/ru.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | "noTorrents": "Нет доступных торрентов", 4 | "torrents": "Торренты", 5 | "episode": "Эпизоды", 6 | "sortBy": "Сортировать по", 7 | "genres": "Жанры", 8 | "genre": "Жанр", 9 | 10 | "back":"назад ", 11 | "settings":"настройки", 12 | "quit": "Выход", 13 | "cancel": "Отмена", 14 | "beforeQuit": "Вы уверены, что хотите выйти?", 15 | "loading": "Пожалуйста, подождите...", 16 | "loadingVideo": "Буферизация видео, пожалуйста, подождите", 17 | "searchLoading": "Поиск...", 18 | "noResults": "Нет результатов по вашему запросу.", 19 | "search": "Поиск", 20 | "movies": "Фильмы", 21 | "subtitledIn": "Субтитры", 22 | "quality": "Качество", 23 | "watchItNow": "Смотреть прямо сейчас", 24 | "durationUnit": "мин", 25 | "connecting": "Соединение...", 26 | "startingDownload": "Начинается загрузка...", 27 | "downloading": "Загружается...", 28 | "UpgradeVersion": "Обновить Popcorn Time", 29 | "UpgradeVersionDescription": "Popcorn Time %s был выпущен. Вы должны загрузить его сейчас!", 30 | 31 | "tv_shows":"ТВ-шоу", 32 | "trailer":"трейлер", 33 | "min_window":"минимизировать окно", 34 | "max_window":"максимально окно", 35 | "close_window":"близко", 36 | "error":"ошибка", 37 | "season":"сезон", 38 | "no_movies":"нет фильма найдено", 39 | 40 | "all": "Популярное", 41 | "action": "Боевик", 42 | "adventure": "Приключения", 43 | "animation": "Анимационный", 44 | "biography": "Биография", 45 | "comedy": "Комедия", 46 | "crime": "Криминальный", 47 | "documentary": "Документальный", 48 | "drama": "Драма", 49 | "family": "Семейное", 50 | "fantasy": "Фантастика", 51 | "film-noir": "Фильм-Нуар", 52 | "history": "Исторический", 53 | "horror": "Фильм ужасов", 54 | "music": "Музыкальный", 55 | "musical": "Мюзикл", 56 | "mystery": "Мистика", 57 | "romance": "Романтический", 58 | "sci-fi": "Научная фантастика", 59 | "short": "Короткометражный", 60 | "sport": "Спортивный", 61 | "thriller": "Триллер", 62 | "war": "Военный", 63 | "western": "Вестерн", 64 | 65 | "french": "Французский", 66 | "english": "Английский", 67 | "spanish": "Испанский", 68 | "swedish": "Шведский", 69 | "portuguese": "Португальский", 70 | "romanian": "Румынский", 71 | "turkish": "Турецкий", 72 | "dutch": "Голландский", 73 | "italian": "Итальянский", 74 | "danish": "Датский", 75 | "arabic": "Арабский", 76 | 77 | 78 | "VpnDisabled":"VPN DISABLED!", 79 | "VpnAlert":"IT IS HIGHLY RECOMMENDED TO USE VPN
TO AVOID UNNECESSARY RISKS", 80 | "TurnOnVpn": "TURN ON VPN", 81 | "continue":"Continue" 82 | } 83 | -------------------------------------------------------------------------------- /public/locale/de.json: -------------------------------------------------------------------------------- 1 | { 2 | "noTorrents": "Es gibt keine verfügbaren Torrents", 3 | "Torrents": "Torrents", 4 | "Episode": "Episode", 5 | "sortBy": "Sortieren nach", 6 | "genres": "Genres", 7 | "genre": "Genre", 8 | "back": "Zurück", 9 | "settings": "Einstellungen", 10 | "quit": "Beenden", 11 | "cancel": "Abbrechen", 12 | "beforeQuit": "Sind Sie sicher, dass Sie beenden wollen?", 13 | "loading": "Bitte warten...", 14 | "loadingVideo": "Das Video wird geladen, bitte warten...", 15 | "loadingSeeders": "Seeders", 16 | "loadingPeers": "Peers", 17 | "loadingSpeed": "KB/s", 18 | "searchLoading": "Suchen...", 19 | "noResults": "Es wurden keine Suchergebnisse gefunden.", 20 | "search": "Suchen", 21 | "movies": "Filme", 22 | "subtitledIn": "Untertitel", 23 | "quality": "Qualität", 24 | "watchItNow": "Jetzt anschauen", 25 | "durationUnit": "min", 26 | "connecting": "Verbinden...", 27 | "startingDownload": "Download starten...", 28 | "downloading": "Downloaden...", 29 | "UpgradeVersion": "Popcorn Time aktualisieren", 30 | "UpgradeVersionDescription": "Popcorn Time %s wurde gerade veröffentlicht. Hol es Dir jetzt!", 31 | "tv_shows": "TV Shows", 32 | "trailer": "Trailer ansehen", 33 | "min_window": "Fenster minimieren", 34 | "max_window": "Fenster maximieren", 35 | "close_window": "Schließen", 36 | "error": "Fehler", 37 | "season": "Staffel", 38 | "no_movies": "Kein Film gefunden", 39 | "all": "Beliebt", 40 | "action": "Action", 41 | "adventure": "Abenteuer", 42 | "animation": "Animation", 43 | "biography": "Biographie", 44 | "comedy": "Komödie", 45 | "crime": "Krimi", 46 | "documentary": "Dokumentation", 47 | "drama": "Drama", 48 | "family": "Familie", 49 | "fantasy": "Fantasy", 50 | "film-noir": "Film noir", 51 | "history": "Geschichte", 52 | "horror": "Horror", 53 | "music": "Musik", 54 | "musical": "Musical", 55 | "mystery": "Mystery", 56 | "romance": "Romantik", 57 | "sci-fi": "Sci-Fi", 58 | "short": "Kurzfilm", 59 | "sport": "Sport", 60 | "thriller": "Thriller", 61 | "war": "Krieg", 62 | "western": "Western", 63 | "french": "Französisch", 64 | "english": "Englisch", 65 | "spanish": "Spanisch", 66 | "swedish": "Schwedisch", 67 | "portuguese": "Portugiesisch", 68 | "romanian": "Rumänisch", 69 | "turkish": "Türkisch", 70 | "dutch": "Niederländisch", 71 | "italian": "Italienisch", 72 | "arabic": "Arabisch", 73 | "danish": "Dänisch", 74 | "VpnDisabled": "VPN DEAKTIVIERT!", 75 | "VpnAlert": "Es wird dringend empfohlen, einen VPN zu benutzen,
um unnötige Risiken zu vermeiden.", 76 | "TurnOnVpn": "VPN aktivieren", 77 | "continue": "Weiter" 78 | } 79 | -------------------------------------------------------------------------------- /public/js/scrappers/tv/t4p_tv.js: -------------------------------------------------------------------------------- 1 | fetcher.scrappers.t4p_tv = function(genre, keywords, page, callback, fallback){ 2 | 3 | var domain = '//api.apidomain.info'; 4 | if(fallback) { 5 | domain = '//apinc.apidomain.info'; 6 | } 7 | 8 | 9 | if(genre=='all') 10 | genre = !1; 11 | 12 | 13 | var url = ''+domain+'/shows?cb='+Math.random()+'&sort=' + app.config.fetcher.sortBy + '&page=' + ui.home.catalog.page; 14 | 15 | if (keywords) { 16 | url += '&keywords=' + keywords; 17 | } 18 | 19 | if (genre) { 20 | url += '&genre=' + genre; 21 | } 22 | 23 | if (page && page.toString().match(/\d+/)) { 24 | url += '&set=' + page; 25 | } 26 | 27 | $.ajax({ 28 | url: url, 29 | dataType:'json', 30 | error:function(){ 31 | if(!fallback) { 32 | fetcher.scrappers.t4p_tv(genre, keywords, page, callback, true); 33 | } else { 34 | callback(false) 35 | } 36 | }, 37 | success:function(data){ 38 | 39 | var movies = [], 40 | memory = {}; 41 | 42 | if (data.error || typeof data.MovieList === 'undefined') { 43 | if(!fallback) { 44 | fetcher.scrappers.t4p_tv(genre, keywords, page, callback, true); 45 | } else { 46 | callback(false) 47 | } 48 | return; 49 | } 50 | 51 | data.MovieList.forEach(function (movie){ 52 | // No imdb, no movie. 53 | 54 | if( typeof movie.imdb != 'string' || movie.imdb.replace('tt', '') == '' ){ return;} 55 | 56 | try{ 57 | 58 | // Temporary object 59 | var movieModel = { 60 | id: movie.imdb, 61 | imdb: movie.imdb, 62 | title: movie.title, 63 | year: movie.year ? movie.year : ' ', 64 | runtime: movie.runtime, 65 | synopsis: "", 66 | imdb_rating: parseFloat(movie.rating), 67 | 68 | poster_small: movie.poster_med, 69 | poster_big: movie.poster_big, 70 | seeders: movie.torrent_seeds, 71 | leechers: movie.torrent_peers, 72 | trailer: movie.trailer ? 'http://www.youtube.com/embed/' + movie.trailer + '?autoplay=1': false, 73 | stars: utils.movie.rateToStars(parseFloat(movie.rating)), 74 | 75 | }; 76 | 77 | 78 | 79 | var stored = memory[movie.imdb]; 80 | 81 | // Create it on memory map if it doesn't exist. 82 | if (typeof stored === 'undefined') { 83 | stored = memory[movie.imdb] = movieModel; 84 | } 85 | 86 | // Push it if not currently on array. 87 | if (movies.indexOf(stored) === -1) { 88 | movies.push(stored); 89 | } 90 | }catch(e){ console.log(e.message);} 91 | 92 | }); 93 | 94 | callback(movies) 95 | }, 96 | }); 97 | 98 | } 99 | -------------------------------------------------------------------------------- /public/js/scrappers/tv/anime.js: -------------------------------------------------------------------------------- 1 | fetcher.scrappers.anime_tv = function(genre, keywords, page, callback, fallback){ 2 | 3 | 4 | 5 | if(genre=='all') 6 | genre = !1; 7 | var domain = '//api.anime.apidomain.info'; 8 | if(fallback) { 9 | domain = '//apinc.anime.apidomain.info'; 10 | } 11 | var url = domain+'/shows?cb='+Math.random()+'&sort=' + app.config.fetcher.sortBy + '&page=' + ui.home.catalog.page; 12 | 13 | if (keywords) { 14 | url += '&keywords=' + keywords; 15 | } 16 | 17 | if (genre) { 18 | url += '&genre=' + genre; 19 | } 20 | 21 | if (page && page.toString().match(/\d+/)) { 22 | url += '&set=' + page; 23 | } 24 | 25 | $.ajax({ 26 | url: url, 27 | dataType:'json', 28 | error:function(){ 29 | if(!fallback) { 30 | fetcher.scrappers.anime_tv(genre, keywords, page, callback, true); 31 | } else { 32 | callback(false) 33 | } 34 | }, 35 | success:function(data){ 36 | 37 | var movies = [], 38 | memory = {}; 39 | 40 | if (data.error || typeof data.MovieList === 'undefined') { 41 | if(!fallback) { 42 | fetcher.scrappers.anime_tv(genre, keywords, page, callback, true); 43 | } else { 44 | callback(false) 45 | } 46 | return; 47 | } 48 | 49 | 50 | data.MovieList.forEach(function (movie){ 51 | // No imdb, no movie. 52 | 53 | if( typeof movie.imdb != 'string' || movie.imdb.replace('tt', '') == '' ){ return;} 54 | 55 | try{ 56 | 57 | // Temporary object 58 | var movieModel = { 59 | id: movie.imdb, 60 | imdb: movie.imdb, 61 | title: movie.title, 62 | year: movie.year ? movie.year : ' ', 63 | runtime: movie.runtime, 64 | synopsis: movie.description, 65 | imdb_rating: parseFloat(movie.rating), 66 | 67 | poster_small: movie.poster_med, 68 | poster_big: movie.poster_big, 69 | seeders: movie.torrent_seeds, 70 | leechers: movie.torrent_peers, 71 | trailer: movie.trailer ? 'http://www.youtube.com/embed/' + movie.trailer + '?autoplay=1': false, 72 | stars: utils.movie.rateToStars(parseFloat(movie.rating)), 73 | 74 | }; 75 | 76 | 77 | 78 | var stored = memory[movie.imdb]; 79 | 80 | // Create it on memory map if it doesn't exist. 81 | if (typeof stored === 'undefined') { 82 | stored = memory[movie.imdb] = movieModel; 83 | } 84 | 85 | // Push it if not currently on array. 86 | if (movies.indexOf(stored) === -1) { 87 | movies.push(stored); 88 | } 89 | }catch(e){ console.log(e.message);} 90 | 91 | }); 92 | 93 | callback(movies) 94 | }, 95 | }); 96 | 97 | } 98 | -------------------------------------------------------------------------------- /public/js/scrappers/movies/yts.js: -------------------------------------------------------------------------------- 1 | fetcher.scrappers.yts = function(genre, keywords, page, callback){ 2 | 3 | 4 | 5 | var url = '//yts.to/api/list.json?genre=' + genre + '&sort=seeds&limit=50&set=' + ui.home.catalog.page; 6 | 7 | if (keywords) { 8 | url += '&keywords=' + keywords; 9 | } 10 | 11 | if (genre) { 12 | url += '&genre=' + genre; 13 | } 14 | 15 | if (page && page.toString().match(/\d+/)) { 16 | url += '&set=' + page; 17 | } 18 | 19 | 20 | 21 | $.ajax({ 22 | url: url, 23 | dataType:'json', 24 | timeout:8000, 25 | error:function(){callback(false)}, 26 | success:function(data){ 27 | var movies = [], 28 | memory = {}; 29 | 30 | if (data.error || typeof data.MovieList === 'undefined') { 31 | callback(false) 32 | return; 33 | } 34 | 35 | data.MovieList.forEach(function (movie){ 36 | // No imdb, no movie. 37 | if( typeof movie.ImdbCode != 'string' || movie.ImdbCode.replace('tt', '') == '' ){ return;} 38 | 39 | 40 | var torrent = { 41 | 42 | "type": 0, 43 | "torrent_url": movie.TorrentUrl, 44 | "torrent_seeds": movie.TorrentSeeds, 45 | "torrent_peers": movie.TorrentPeers, 46 | "file": false, 47 | "quality": movie.Quality, 48 | "language": "", 49 | "subtitles": "", 50 | "size_bytes": movie.SizeByte, 51 | "id": movie.TorrentHash 52 | 53 | } 54 | 55 | 56 | if(memory[ movie.ImdbCode ]){ 57 | 58 | memory[ movie.ImdbCode ].torrents.push(torrent) 59 | 60 | 61 | } 62 | else{ 63 | 64 | memory[ movie.ImdbCode ] = { 65 | 66 | 67 | id: movie.ImdbCode, 68 | imdb: movie.ImdbCode, 69 | title: movie.MovieTitleClean, 70 | year: movie.MovieYear ? movie.MovieYear : ' ', 71 | runtime: "", 72 | synopsis: "", 73 | voteAverage:parseFloat(movie.MovieRating), 74 | 75 | poster_small: movie.CoverImage, 76 | poster_big: movie.CoverImage.replace('_med','_large'), 77 | image: movie.CoverImage, 78 | bigImage: movie.CoverImage.replace('_med','_large'), 79 | 80 | quality: movie.Quality, 81 | torrents: [torrent], 82 | 83 | seeders: movie.TorrentSeeds, 84 | leechers: movie.TorrentPeers, 85 | trailer: false, 86 | stars: utils.movie.rateToStars(parseFloat(movie.MovieRating)), 87 | 88 | } 89 | 90 | 91 | } 92 | 93 | 94 | }); 95 | 96 | for(var i in memory) 97 | movies.push(memory[i]) 98 | 99 | callback(movies) 100 | }, 101 | }); 102 | 103 | } 104 | -------------------------------------------------------------------------------- /public/locale/locale/fr.json: -------------------------------------------------------------------------------- 1 | { 2 | "noTorrents": "Il n'y a pas de torrents disponibles", 3 | "torrents": "Torrents", 4 | "episode": "épisode", 5 | "sortBy": "Trier par", 6 | "genres": "Genres", 7 | "genre": "Genre", 8 | 9 | "back":"Retour", 10 | "settings":"Paramètres", 11 | "quit": "Quitter", 12 | "cancel": "Annuler", 13 | "beforeQuit": "Êtes-vous sûr de vouloir quitter ?", 14 | "loading": "Patientez...", 15 | "loadingVideo": "Chargement de la vidéo, merci de patienter...", 16 | "searchLoading": "Recherche...", 17 | "noResults": "Aucun résultat trouvé pour votre recherche.", 18 | 19 | "search": "Recherche", 20 | "movies": "Films", 21 | 22 | "subtitledIn": "Sous-titres", 23 | "quality": "Qualité", 24 | "watchItNow": "Regarder", 25 | "durationUnit": "min", 26 | 27 | "connecting": "Connexion...", 28 | "startingDownload": "Démarrage du téléchargement...", 29 | "downloading": "Téléchargement...", 30 | 31 | "UpgradeVersion": "Mettre à jour Popcorn Time", 32 | "UpgradeVersionDescription": "Popcorn Time %s a été mis à jour. Vous devriez le télécharger maintenant !", 33 | 34 | "tv_shows":"Séries", 35 | "trailer":"Bande annonce", 36 | "min_window":"Minimiser la fenêtre ", 37 | "max_window":"Maximiser la fenêtre", 38 | "close_window":"Fermer", 39 | "error":"Erreur", 40 | "season":"Saison", 41 | "no_movies":"Pas de films trouvés", 42 | 43 | 44 | "all": "Populaire", 45 | "action": "Action", 46 | "adventure": "Aventure", 47 | "animation": "Animation", 48 | "biography": "Biographie", 49 | "comedy": "Comédie", 50 | "crime": "Crime", 51 | "documentary": "Documentaire", 52 | "drama": "Drame", 53 | "family": "Famille", 54 | "fantasy": "Fantastique", 55 | "film-noir": "Film Noir", 56 | "history": "Histoire", 57 | "horror": "Horreur", 58 | "music": "Musique", 59 | "musical": "Musical", 60 | "mystery": "Mystère", 61 | "romance": "Romance", 62 | "sci-fi": "Sci-Fi", 63 | "short": "Court métrage", 64 | "sport": "Sport", 65 | "thriller": "Thriller", 66 | "war": "Guerre", 67 | "western": "Western", 68 | 69 | "french": "Français", 70 | "english": "Anglais", 71 | "spanish": "Espagnol", 72 | "swedish": "Suédois", 73 | "portuguese": "Portugais", 74 | "romanian": "Roumain", 75 | "turkish": "Turc", 76 | "dutch": "Néerlandais", 77 | "italian": "Italien", 78 | "danish": "Danois", 79 | "arabic": "Arabe", 80 | "korean": "Coréen", 81 | "hungarian": "Hongrois", 82 | "bulgarian": "Bulgare", 83 | 84 | "Settings": "Paramètres", 85 | "Cache": "Cache", 86 | "Cache location": "Répertoire de téléchargement", 87 | "Browse...": "Parcourir...", 88 | "Save": "Enregistrer", 89 | "Auto clear cache": "Vider automatiquement le cache" 90 | } 91 | -------------------------------------------------------------------------------- /public/locale/fr.json: -------------------------------------------------------------------------------- 1 | { 2 | "noTorrents": "Il n'y a pas de torrents disponibles", 3 | "torrents": "Torrents", 4 | "episode": "épisode", 5 | "sortBy": "Trier par", 6 | "genres": "Genres", 7 | "genre": "Genre", 8 | 9 | "back":"Retour", 10 | "settings":"Paramètres", 11 | "quit": "Quitter", 12 | "cancel": "Annuler", 13 | "beforeQuit": "Êtes-vous sûr de vouloir quitter ?", 14 | "loading": "Patientez...", 15 | "loadingVideo": "Chargement de la vidéo, merci de patienter...", 16 | "searchLoading": "Recherche...", 17 | "noResults": "Aucun résultat trouvé pour votre recherche.", 18 | 19 | "search": "Recherche", 20 | "movies": "Films", 21 | 22 | "subtitledIn": "Sous-titres", 23 | "quality": "Qualité", 24 | "watchItNow": "Regarder", 25 | "durationUnit": "min", 26 | 27 | "connecting": "Connexion...", 28 | "startingDownload": "Démarrage du téléchargement...", 29 | "downloading": "Téléchargement...", 30 | 31 | "UpgradeVersion": "Mettre à jour Popcorn Time", 32 | "UpgradeVersionDescription": "Popcorn Time %s a été mis à jour. Vous devriez le télécharger maintenant !", 33 | 34 | "tv_shows":"Séries", 35 | "trailer":"Bande annonce", 36 | "min_window":"Minimiser la fenêtre ", 37 | "max_window":"Maximiser la fenêtre", 38 | "close_window":"Fermer", 39 | "error":"Erreur", 40 | "season":"Saison", 41 | "no_movies":"Pas de films trouvés", 42 | 43 | 44 | "all": "Populaire", 45 | "action": "Action", 46 | "adventure": "Aventure", 47 | "animation": "Animation", 48 | "biography": "Biographie", 49 | "comedy": "Comédie", 50 | "crime": "Crime", 51 | "documentary": "Documentaire", 52 | "drama": "Drame", 53 | "family": "Famille", 54 | "fantasy": "Fantastique", 55 | "film-noir": "Film Noir", 56 | "history": "Histoire", 57 | "horror": "Horreur", 58 | "music": "Musique", 59 | "musical": "Musical", 60 | "mystery": "Mystère", 61 | "romance": "Romance", 62 | "sci-fi": "Sci-Fi", 63 | "short": "Court métrage", 64 | "sport": "Sport", 65 | "thriller": "Thriller", 66 | "war": "Guerre", 67 | "western": "Western", 68 | 69 | "french": "Français", 70 | "english": "Anglais", 71 | "spanish": "Espagnol", 72 | "swedish": "Suédois", 73 | "portuguese": "Portugais", 74 | "romanian": "Roumain", 75 | "turkish": "Turc", 76 | "dutch": "Néerlandais", 77 | "italian": "Italien", 78 | "danish": "Danois", 79 | "arabic": "Arabe", 80 | "korean": "Coréen", 81 | "hungarian": "Hongrois", 82 | "bulgarian": "Bulgare", 83 | 84 | "Settings": "Paramètres", 85 | "Cache": "Cache", 86 | "Cache location": "Répertoire de téléchargement", 87 | "Browse...": "Parcourir...", 88 | "Save": "Enregistrer", 89 | "Auto clear cache": "Vider automatiquement le cache", 90 | 91 | 92 | "VpnDisabled":"RPV DÉSACTIVÉ !", 93 | "VpnAlert":"Il est fortement recommandé d'utiliser le RPV
pour éviter des risques inutiles.", 94 | "TurnOnVpn": "Activer RPV", 95 | "continue":"Continuer" 96 | } 97 | -------------------------------------------------------------------------------- /public/js/app.favs.js: -------------------------------------------------------------------------------- 1 | app.favs={ 2 | 3 | list:{}, 4 | order: [], 5 | 6 | init:function(){ 7 | 8 | try{ 9 | 10 | var 11 | favs_data = localStorage.getItem('favs-data'), 12 | favs_order = localStorage.getItem('favs-order'); 13 | 14 | app.favs.list = favs_data ? JSON.parse(favs_data) : {}; 15 | app.favs.order = favs_order ? favs_order.split(',') : []; 16 | } 17 | catch(e){} 18 | 19 | }, 20 | toggle: function( id ){ 21 | 22 | if(!id) 23 | return; 24 | 25 | 26 | if( this.list[id] ){ 27 | delete this.list[id]; 28 | $('#movie-' + id + ' .fav-btn').removeClass('infavs'); 29 | $('#slider_movie.movie_' + id + ' .fav-btn').removeClass('infavs'); 30 | } 31 | else{ 32 | this.list[id] = ui.home.catalog.items[id]; 33 | this.list[id].infavs = 'infavs'; 34 | this.list[id].section = $('#movie-' + id).data('section'); 35 | this.order.push(id); 36 | $('#movie-' + id + ' .fav-btn').addClass('infavs'); 37 | $('#slider_movie.movie_' + id + ' .fav-btn').addClass('infavs'); 38 | } 39 | 40 | try{ 41 | localStorage.setItem('favs-data', JSON.stringify(app.favs.list)); 42 | localStorage.setItem('favs-order', app.favs.order.join(',')); 43 | } 44 | catch(e){} 45 | }, 46 | show:function(){ 47 | 48 | $('#header .activated').removeClass('activated'); 49 | $('#menu_panel .favs').addClass('activated'); 50 | 51 | ui.sliders.close_all(); 52 | ui.home.catalog.clear(); 53 | ui.home.catalog.section = 'favs'; 54 | 55 | var favs_count = 0; 56 | 57 | 58 | this.order.forEach(function(item_id, i){ 59 | if(item_id && app.favs.list[item_id] && !document.getElementById('movie-' + item_id)){ 60 | 61 | if(!ui.home.catalog.items[item_id]) 62 | ui.home.catalog.items[item_id] = app.favs.list[item_id]; 63 | 64 | ui.home.catalog.appendItem(app.favs.list[item_id], app.favs.list[item_id].section, i); 65 | favs_count++; 66 | } 67 | 68 | }) 69 | 70 | 71 | ui.home.catalog.scroller.refresh(); 72 | 73 | if(!favs_count){ 74 | $('#catalog_scroller').html('
No bookmarks found...
') 75 | } 76 | else{ 77 | /* 78 | $('#movies_catalog .movie') 79 | .mousedown(function(e){ 80 | app.favs.mousedownTime=(new Date).getTime(); 81 | }) 82 | .mouseup(function(e){ 83 | 84 | if(app.favs.mousedownTime && (new Date).getTime()-app.favs.mousedownTime<300) 85 | if(e.target.className.indexOf('-btn')>-1) 86 | $(e.target).click(); 87 | else 88 | $(this).click(); 89 | }); 90 | */ 91 | $( "#catalog_scroller" ).sortable({ disabled: true, tolerance: "pointer", containment: "parent", scroll: false, update:function(){ 92 | 93 | app.favs.order = []; 94 | $('#movies_catalog .movie').each(function(){ 95 | var id = $(this).data('movie_id'); 96 | if(id) 97 | app.favs.order.push( id ) 98 | }) 99 | 100 | }}); 101 | } 102 | 103 | app.history.show(); 104 | 105 | } 106 | 107 | } 108 | -------------------------------------------------------------------------------- /public/js/scrappers/subtitles/torrentsapi.js: -------------------------------------------------------------------------------- 1 | fetcher.scrappers.torrentsapi_subs = function(movie_id, season, episode, callback){ 2 | 3 | var 4 | baseUrl = '//sub.apidomain.info/list?imdb=' + movie_id.replace('tt','').replace(/^0+/,'') + '&s=' + season + '&e=' + episode; 5 | 6 | $.get(baseUrl, function(json){ 7 | 8 | try{ 9 | 10 | json = jQuery.type( json ) === "string"? JSON.parse(json): json; 11 | var subs = json.subs || false; 12 | 13 | if(subs){ 14 | var subs_list = []; 15 | for(var i in subs){ 16 | 17 | var 18 | lang_code = i || 'xx', 19 | lang_name = locale.iso2lang[i] ? locale.iso2lang[i] : i.capitalize() 20 | most_rated = []; 21 | 22 | 23 | if(subs[i] instanceof Array){ 24 | for(var x=0;xmost_rated[1]){ 26 | 27 | most_rated = [[ 28 | 29 | subs[i][x].url, 30 | lang_code, 31 | lang_name.capitalize() 32 | 33 | ], subs[i][x].rating]; 34 | } 35 | 36 | subs_list.push(most_rated[0]); 37 | } 38 | 39 | } 40 | 41 | callback(subs_list); 42 | } 43 | else 44 | callback(false); 45 | 46 | 47 | } 48 | catch(e){ 49 | console.log(e.message) 50 | callback(false); 51 | logger.log('error_scrap_torrentsapi_' + movie_id) 52 | } 53 | 54 | },'json') 55 | 56 | }; 57 | fetcher.scrappers.torrentsapi_subs_movie = function(movie_id, callback){ 58 | 59 | var 60 | baseUrl = '//sub.apidomain.info/list?imdb=' + movie_id.replace('tt','').replace(/^0+/,''); 61 | 62 | $.get(baseUrl, function(json){ 63 | 64 | try{ 65 | 66 | json = jQuery.type( json ) === "string"? JSON.parse(json): json; 67 | var subs = json.subs || false; 68 | 69 | if(subs){ 70 | var subs_list = []; 71 | for(var i in subs){ 72 | 73 | var 74 | lang_code = i || 'xx', 75 | lang_name = locale.iso2lang[i] ? locale.iso2lang[i] : i.capitalize() 76 | most_rated = []; 77 | 78 | 79 | if(subs[i] instanceof Array){ 80 | for(var x=0;xmost_rated[1]){ 82 | 83 | most_rated = [[ 84 | 85 | subs[i][x].url, 86 | lang_code, 87 | lang_name.capitalize() 88 | 89 | ], subs[i][x].rating]; 90 | } 91 | 92 | subs_list.push(most_rated[0]); 93 | } 94 | 95 | } 96 | 97 | callback(subs_list); 98 | } 99 | else 100 | callback(false); 101 | 102 | 103 | } 104 | catch(e){ 105 | console.log(e.message) 106 | callback(false); 107 | logger.log('error_scrap_torrentsapi_' + movie_id) 108 | } 109 | 110 | },'json') 111 | 112 | } 113 | -------------------------------------------------------------------------------- /public/js/ui.torrentstime.js: -------------------------------------------------------------------------------- 1 | ui.torrentsTime = { 2 | 3 | isVisible: false, 4 | isInstallingHide : false, 5 | show:function(){ 6 | ui.torrentsTime.isVisible = true; 7 | $('.torrentsTime, #ttbar').addClass('visible'); 8 | ui.loading_wrapper.hide(1); 9 | }, 10 | 11 | hide:function(){ 12 | ui.torrentsTime.isVisible = false; 13 | $('.torrentsTime, #ttbar').removeClass('visible'); 14 | torrentsTime.init({id:"pt", source:null}); 15 | Mousetrap.unpause(); 16 | }, 17 | downloadHandler : function() { 18 | var arrowimg = (new Image); 19 | switch(torrentsTime.setup.browser) { 20 | case 'firefox': 21 | arrowimg.src='css/images/arrow.png'; 22 | document.body.appendChild(arrowimg); 23 | arrowimg.setAttribute('style', 'position:fixed;right:130px;top:10px;z-index:99999;animation:fadeInOut 1s linear infinite'); 24 | arrowimg.setAttribute('id','_tt_arrowimg'); 25 | break; 26 | case 'chrome': 27 | arrowimg.src='css/images/arrow.png'; 28 | document.body.appendChild(arrowimg); 29 | arrowimg.setAttribute('style', 'position:fixed;left:40px;bottom:10px;transform:rotate(180deg);z-index:99999;animation:fadeInOut 1s linear infinite'); 30 | arrowimg.setAttribute('id','_tt_arrowimg'); 31 | break; 32 | case 'trident': 33 | arrowimg.src='css/images/arrow.png'; 34 | document.body.appendChild(arrowimg); 35 | arrowimg.setAttribute('style', 'position:fixed;right:50%;bottom:90px;z-index:99999;transform:rotate(180deg);animation:fadeInOut 1s linear infinite'); 36 | arrowimg.setAttribute('id','_tt_arrowimg'); 37 | break; 38 | default: 39 | break; 40 | } 41 | 42 | }, 43 | checkPluginSupportFF : function() { 44 | setTimeout(function(){ 45 | if(torrentsTime.pt.setup.poster && !torrentsTime.pt.wrapper.firstChild.style.background){ 46 | torrentsTime.pt.wrapper.firstChild.style.background='#000 url('+torrentsTime.pt.setup.poster[0]+') no-repeat center center'; 47 | torrentsTime.pt.wrapper.firstChild.style.backgroundSize='cover'; 48 | } 49 | 50 | setTimeout(function(){ 51 | if(window.top==window.self && torrentsTime.setup.browser=='firefox' && torrentsTime.setup.isInstalled && torrentsTime.pt.plugin && !torrentsTime.pt.plugin.isInitialized){ 52 | var arrowimg = (new Image); 53 | arrowimg.src='css/images/arrow.png'; 54 | document.body.appendChild(arrowimg); 55 | arrowimg.setAttribute('style', 'position:fixed;right:40px;top:10px;z-index:99999;animation:fadeInOut 1s linear infinite'); 56 | arrowimg.setAttribute('id','_tt_arrowimg_ff_unblock'); 57 | 58 | torrentsTime.functions.initialized = function(){ 59 | var arrowimg = document.getElementById('_tt_arrowimg_ff_unblock'); 60 | arrowimg.parentNode.removeChild(arrowimg); 61 | } 62 | } 63 | },1000) 64 | 65 | },1300) 66 | }, 67 | installHandler : function() { 68 | $('#_tt_arrowimg').remove(); 69 | $('#downloadTorrentsTime').hide(); 70 | if(!$('#loading_wrapper').hasClass('activated')) 71 | ui.loading_wrapper.show(1); 72 | var percent = 0; 73 | var interval = setInterval(function() { 74 | if(ui.torrentsTime.isInstallingHide){ 75 | clearInterval(interval); 76 | return; 77 | } 78 | ui.loading_wrapper.change_stats(percent,0,0,0, "Installing... Please wait."); 79 | percent = percent + (Math.floor(Math.random() * 3) + 1 ); 80 | },3000); 81 | }, 82 | hideInstallingWrapper : function() { 83 | //ui.loading_wrapper.hide(1); 84 | ui.torrentsTime.checkPluginSupportFF(); 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /public/js/app.history.js: -------------------------------------------------------------------------------- 1 | app.history={ 2 | 3 | list:{}, 4 | tv:{}, 5 | order: [], 6 | 7 | init:function(){ 8 | 9 | try{ 10 | 11 | var 12 | history_data = localStorage.getItem('history-data'), 13 | history_tv = localStorage.getItem('history-tv'), 14 | history_order = localStorage.getItem('history-order'); 15 | 16 | app.history.list = history_data ? JSON.parse(history_data) : {}; 17 | app.history.tv = history_tv ? JSON.parse(history_tv) : {}; 18 | app.history.order = history_order ? JSON.parse(history_order) : []; 19 | } 20 | catch(e){console.log(e.message);} 21 | 22 | }, 23 | add: function( data ){ 24 | 25 | 26 | if(data instanceof Array){ 27 | data.forEach(function(dat){ 28 | 29 | if(!dat.id) 30 | return; 31 | 32 | //clone the obj - maybe there is a better way to do so.. 33 | var item = {}; 34 | for(var i in dat) 35 | item[i] = dat[i]; 36 | 37 | 38 | app.history.order.unshift([item.id, (item.info || item.year), item.image]); 39 | 40 | delete item.image; 41 | delete item.info; 42 | delete item.subtitles; 43 | 44 | if(item.section=='tv') 45 | delete item.torrent; 46 | 47 | app.history.list[ item.id ] = item; 48 | }) 49 | } 50 | 51 | this.save(); 52 | }, 53 | 54 | remove:function(){ 55 | 56 | }, 57 | 58 | tv_episode:function(id){ 59 | 60 | if(this.tv[id]) 61 | delete this.tv[id] 62 | else 63 | this.tv[id]=1; 64 | 65 | this.save(); 66 | 67 | }, 68 | 69 | save:function(){ 70 | 71 | if(this.order.length>50){ 72 | var 73 | data = {}, 74 | order =[]; 75 | 76 | for(var i=0; i<50; i++){ 77 | order.push(this.order[i]); 78 | data[this.order[i]] = this.list[this.order[i]] 79 | } 80 | 81 | this.order = order; 82 | this.list = data; 83 | } 84 | 85 | try{ 86 | localStorage.setItem('history-data', JSON.stringify(app.history.list)); 87 | localStorage.setItem('history-tv', JSON.stringify(app.history.tv)); 88 | localStorage.setItem('history-order', JSON.stringify(app.history.order)); 89 | } 90 | catch(e){} 91 | }, 92 | 93 | 94 | 95 | 96 | 97 | show:function(cont){ 98 | 99 | $('#history_panel .scroller').html(''); 100 | app.history.order.forEach(function(item){ 101 | 102 | if(!ui.home.catalog.items[item[0]]) 103 | ui.home.catalog.items[item[0]] = app.history.list[item[0]]; 104 | 105 | $('
' + app.history.list[item[0]].title + '
' + item[1] + '
').appendTo('#history_panel .scroller') 106 | .click(function(){ 107 | ui[$(this).data('section')].show($(this).data('id')) 108 | }) 109 | 110 | }) 111 | 112 | $('#history_panel').show(); 113 | $('#history_panel .scroller').width($('#history_panel .item').length * 140) 114 | 115 | if(app.history.scroller) 116 | app.history.scroller.refresh(); 117 | else{ 118 | app.history.scroller = new IScroll('#history_cont .incont',{ 119 | mouseWheel: true, 120 | mouseWheelSpeed: 30, 121 | scrollbars: true, 122 | scrollX: true, 123 | scrollY: false, 124 | click: true, 125 | fadeScrollbars: true, 126 | interactiveScrollbars: true, 127 | resizeScrollbars: true, 128 | shrinkScrollbars: 'scale' 129 | 130 | }); 131 | } 132 | 133 | } 134 | 135 | } 136 | -------------------------------------------------------------------------------- /public/js/ui.vpn_page.js: -------------------------------------------------------------------------------- 1 | ui.vpn_page = { 2 | 3 | show:function(){ 4 | 5 | if(ui.sliders.slider.vpn){ 6 | ui.sliders.slider.vpn.hide() 7 | return; 8 | } 9 | 10 | ui.vpn_page.alert.hide(); 11 | ui.loading_wrapper.hide(); 12 | 13 | var slider = new ui.slider('vpn','left'); 14 | $('#slider_vpn *').not('.close').remove(); 15 | 16 | app.state = 'vpn_page'; 17 | slider.destruct = function(){ 18 | app.state='mainWindow'; 19 | } 20 | 21 | slider.el.append($('#vpn_page_html').html()) 22 | 23 | ui.vpn_page.updateDisplay(); 24 | 25 | 26 | slider.show(); 27 | 28 | 29 | }, 30 | 31 | updateDisplay:function(){ 32 | 33 | //var hostApp = {vpn_isConnected:function(){return 0},vpn_connect:function(){},vpn_disconnect:function(){}} 34 | $('#slider_vpn .vpn_icon span.icon').removeClass('spinner').parent().removeClass('rotation'); 35 | 36 | if(app.config.hostApp.isVpnConnected){ 37 | 38 | $('#slider_vpn .awaiting_msg').remove(); 39 | $('#slider_vpn .vpn_icon span.icon').removeClass('unlocked').addClass('locked'); 40 | $('#slider_vpn .vpn_button').html('Your IP is protected behind this server').unbind('click').click(function(){ 41 | //app.config.hostApp.vpn_disconnect(); 42 | ui.vpn_page.show(); 43 | }); 44 | 45 | } 46 | else{ 47 | 48 | $('#slider_vpn .vpn_icon span.icon').removeClass('locked').addClass('unlocked'); 49 | 50 | if(!app.config.hostApp.isVpnInstalled){ 51 | 52 | $('#slider_vpn .vpn_button').html('  Create VPN Account  ').unbind('click').click(function(){ 53 | 54 | $('#slider_vpn .vpn_icon span.icon').removeClass('unlocked').addClass('spinner'); 55 | $('#slider_vpn .vpn_icon div').addClass('rotation'); 56 | if(!$('.awaiting_msg').length) 57 | $('#slider_vpn .vpn_button').parent().prepend('
Waiting for registration completion...
').unbind('click'); 58 | 59 | ui.vpn_page.createAccountWindow(); 60 | 61 | }); 62 | 63 | } 64 | else{ 65 | 66 | $('#slider_vpn .awaiting_msg').remove(); 67 | $('#slider_vpn .vpn_button').html('Connect').unbind('click').click(function(){ 68 | 69 | app.config.hostApp.vpn_connect(); 70 | $('#slider_vpn .vpn_icon span.icon').removeClass('unlocked'); 71 | $('#slider_vpn .vpn_icon span.icon').addClass('spinner'); 72 | $('#slider_vpn .vpn_icon div').addClass('rotation'); 73 | $('#slider_vpn .vpn_button').html('Connecting...').unbind('click'); 74 | 75 | setTimeout(function(){ 76 | if(ui.sliders.slider.vpn) 77 | ui.vpn_page.updateDisplay(); 78 | },33000) 79 | 80 | }); 81 | } 82 | 83 | } 84 | }, 85 | 86 | alert:{ 87 | check:function(callback){ 88 | if(app.config.hostApp.isVPN && app.config.hostApp.vpnAlert!='off' && !app.config.hostApp.isVpnConnected){ 89 | ui.vpn_page.alert.show(); 90 | $('#vpn_alert .continue').attr('onclick', callback + '(1)'); 91 | app.state = 'vpn_alert'; 92 | return true; 93 | } 94 | }, 95 | show:function(){ 96 | if(app.config.hostApp.isVpnConnected) { 97 | torrentsTime.pt.start(); 98 | } else { 99 | 100 | $('#vpn_alert').show() 101 | $('#vpn_alert .continue').attr('onclick', "ui.vpn_page.alert.hide();torrentsTime.pt.start()"); 102 | } 103 | }, 104 | 105 | hide:function(){ 106 | $('#vpn_alert').hide(); 107 | } 108 | 109 | }, 110 | 111 | createAccountWindow:function(e){ 112 | utils.popupwindow(vpnPageUrl, 'vpn', 571, 680); 113 | 114 | //if there is a bug we don't want to 115 | torrentsTime.setup.isVpnConnected = true; 116 | } 117 | 118 | } 119 | -------------------------------------------------------------------------------- /app.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var app = express(); 3 | var server = require('http').Server(app); 4 | var io = require('socket.io')(server); 5 | var getport = require('getport'); 6 | var spawn = require('child_process').spawn; 7 | var parseTorrent = require('parse-torrent'); 8 | 9 | var processes = {}; // Peerflix processes 10 | var users = 0; 11 | 12 | server.listen(3000, function () { 13 | console.log('app listening on port 3000!'); 14 | }); 15 | 16 | app.use(express.static('public')); 17 | 18 | function printProcesses() { 19 | console.log("------------------RUNNING PROCESSES------------------"); 20 | for(var p in processes) { 21 | console.log(processes[p].name + " | Port:" + processes[p].port + " | Spectators: " + processes[p].spectators); 22 | } 23 | console.log("-----------------------------------------------------"); 24 | } 25 | 26 | io.on('connection', function (socket) { 27 | users++; 28 | console.log("Connected users : " + users); 29 | 30 | socket.on('disconnect', function() { 31 | users--; 32 | console.log("Connected users : " + users); 33 | 34 | if(socket.playing != undefined) { 35 | processes[socket.playing].spectators--; 36 | if(processes[socket.playing].spectators === 0) { 37 | processes[socket.playing].child.kill(); 38 | delete processes[socket.playing]; 39 | } 40 | } 41 | printProcesses(); 42 | }); 43 | 44 | socket.on('cancelTorrent', function () { 45 | if(!socket.playing) return; 46 | processes[socket.playing].spectators--; 47 | if(processes[socket.playing].spectators === 0) { 48 | processes[socket.playing].child.kill(); 49 | delete processes[socket.playing]; 50 | } 51 | socket.playing = null; 52 | printProcesses(); 53 | }); 54 | 55 | socket.on('getTorrent', function (data) { 56 | var torrent = data.torrent 57 | 58 | // There is already a stream running, kill it 59 | if(socket.playing && process[socket.playing] != torrent) { 60 | processes[socket.playing].spectators--; 61 | if(processes[socket.playing].spectators === 0) { 62 | processes[socket.playing].child.kill(); 63 | delete processes[socket.playing]; 64 | } 65 | socket.playing = null; 66 | } 67 | 68 | // A process already exists for this torrent 69 | if(processes[torrent]) { 70 | port = processes[torrent].port; 71 | processes[torrent].spectators++; 72 | socket.playing = torrent; 73 | socket.emit('port', port); 74 | printProcesses(); 75 | return; 76 | } 77 | 78 | // Create a new process 79 | getport(function (err, port) { 80 | if (err) console.log(err); 81 | 82 | var process = {}; 83 | var child = spawn('peerflix', [torrent, '--port='+ port, '--tmp=./tmp', '--remove'], {}); 84 | process.child = child; 85 | process.port = port; 86 | process.spectators = 0; 87 | 88 | processes[torrent] = process; 89 | processes[torrent].spectators++; 90 | 91 | parseTorrent.remote(torrent, function (err, parsedTorrent) { 92 | if (err) throw err 93 | processes[torrent].name = parsedTorrent.name; 94 | printProcesses(); 95 | }) 96 | 97 | socket.playing = torrent; 98 | socket.emit('port', port); 99 | 100 | child.stdout.on('data', function(data) { 101 | //console.log('stdout: ' + data); 102 | }); 103 | child.stderr.on('data', function(data) { 104 | console.log('stderr: ' + data); 105 | }); 106 | child.on('close', function (code, signal) { 107 | console.log('child closed'); 108 | }); 109 | }); 110 | }); 111 | }); 112 | -------------------------------------------------------------------------------- /public/js/scrappers/movies/t4p_movies.js: -------------------------------------------------------------------------------- 1 | fetcher.scrappers.t4p_movies = function(genre, keywords, page, callback,fallback){ 2 | 3 | if(genre=='all') 4 | genre = !1; 5 | var domain = '//api.apidomain.info'; 6 | if(fallback) { 7 | domain = '//apinc.apidomain.info'; 8 | } 9 | 10 | var url = domain+'/list?sort=' + app.config.fetcher.sortBy + '&cb='+Math.random()+'&quality=720p,1080p,3d&page=' + ui.home.catalog.page; 11 | 12 | 13 | if (keywords) { 14 | url += '&keywords=' + keywords; 15 | } 16 | 17 | if (genre) { 18 | url += '&genre=' + genre; 19 | } 20 | 21 | if (page && page.toString().match(/\d+/)) { 22 | url += '&set=' + page; 23 | } 24 | 25 | $.ajax({ 26 | url: url, 27 | dataType:'json', 28 | timeout:9000, 29 | error:function(){ 30 | if(!fallback) { 31 | fetcher.scrappers.t4p_movies(genre, keywords, page, callback, true); 32 | } else { 33 | callback(false) 34 | } 35 | }, 36 | success:function(data){ 37 | 38 | var movies = [], 39 | memory = {}; 40 | 41 | if (data.error || typeof data.MovieList === 'undefined') { 42 | if(!fallback) { 43 | fetcher.scrappers.t4p_movies(genre, keywords, page, callback, true); 44 | } else { 45 | callback(false) 46 | } 47 | return; 48 | } 49 | 50 | data.MovieList.forEach(function(movie){ 51 | if( typeof movie.imdb != 'string' || movie.imdb.replace('tt', '') == '' ){ return;} 52 | 53 | try{ 54 | var torrents = {}; 55 | movie.items.forEach(function(torrent){ 56 | if(torrent.type===0 && !torrents[torrent.quality]){ 57 | torrents[torrent.quality] = torrent.torrent_url 58 | } 59 | }); 60 | 61 | 62 | var movieModel = { 63 | id: movie.imdb, 64 | imdb: movie.imdb, 65 | title: movie.title, 66 | year: movie.year ? movie.year : ' ', 67 | runtime: movie.runtime, 68 | synopsis: "", 69 | voteAverage:parseFloat(movie.rating), 70 | 71 | poster_small: movie.poster_med, 72 | poster_big: movie.poster_big, 73 | 74 | quality: movie.items[0].quality, 75 | torrent: movie.items[0].torrent_url, 76 | magnet : movie.items[0].torrent_magnet, 77 | torrents: movie.items, 78 | videos: {}, 79 | seeders: movie.torrent_seeds, 80 | leechers: movie.torrent_peers, 81 | trailer: movie.trailer ? 'http://www.youtube.com/embed/' + movie.trailer + '?autoplay=1': false, 82 | stars: utils.movie.rateToStars(parseFloat(movie.rating)), 83 | 84 | hasMetadata:false, 85 | hasSubtitle:false 86 | }; 87 | 88 | 89 | 90 | var stored = memory[movie.imdb]; 91 | 92 | // Create it on memory map if it doesn't exist. 93 | if (typeof stored === 'undefined') { 94 | stored = memory[movie.imdb] = movieModel; 95 | } 96 | 97 | if (stored.quality !== movieModel.quality && movieModel.quality === '720p') { 98 | stored.torrent = movieModel.torrent; 99 | stored.quality = '720p'; 100 | } 101 | 102 | // Set it's correspondent quality torrent URL. 103 | stored.torrents[movie.Quality] = movie.TorrentUrl; 104 | 105 | // Push it if not currently on array. 106 | if (movies.indexOf(stored) === -1) { 107 | movies.push(stored); 108 | } 109 | }catch(e){} 110 | 111 | }); 112 | 113 | if(keywords && !movies.length){ 114 | console.log(movies.length) 115 | fetcher.scrappers.yts(genre, encodeURIComponent($('#search_input').val()), page, callback); 116 | } 117 | else{ 118 | callback(movies) 119 | } 120 | }, 121 | }); 122 | 123 | } 124 | -------------------------------------------------------------------------------- /public/js/scrappers/movies/anime.js: -------------------------------------------------------------------------------- 1 | fetcher.scrappers.anime_movies = function(genre, keywords, page, callback, fallback){ 2 | 3 | if(genre=='all') 4 | genre = !1; 5 | var domain = '//api.anime.apidomain.info'; 6 | if(fallback) { 7 | domain = '//apinc.anime.apidomain.info'; 8 | } 9 | 10 | var url = domain+'/list?sort=' + app.config.fetcher.sortBy + '&cb='+Math.random()+'&quality=720p,1080p,3d&page=' + ui.home.catalog.page; 11 | 12 | 13 | if (keywords) { 14 | url += '&keywords=' + keywords; 15 | } 16 | 17 | if (genre) { 18 | url += '&genre=' + genre; 19 | } 20 | 21 | if (page && page.toString().match(/\d+/)) { 22 | url += '&set=' + page; 23 | } 24 | 25 | $.ajax({ 26 | url: url, 27 | dataType:'json', 28 | timeout:9000, 29 | error:function(){ 30 | if(!fallback) { 31 | fetcher.scrappers.anime_movies(genre, keywords, page, callback, true); 32 | } else { 33 | callback(false) 34 | } 35 | }, 36 | success:function(data){ 37 | 38 | var movies = [], 39 | memory = {}; 40 | 41 | if (data.error || typeof data.MovieList === 'undefined') { 42 | if(!fallback) { 43 | fetcher.scrappers.anime_movies(genre, keywords, page, callback, true); 44 | } else { 45 | callback(false) 46 | } 47 | return; 48 | } 49 | 50 | data.MovieList.forEach(function(movie){ 51 | if( typeof movie.imdb != 'string' || movie.imdb.replace('tt', '') == '' ){ return;} 52 | 53 | try{ 54 | var torrents = {}; 55 | movie.items.forEach(function(torrent){ 56 | if(torrent.type===0 && !torrents[torrent.quality]){ 57 | torrents[torrent.quality] = torrent.torrent_url 58 | } 59 | }); 60 | 61 | 62 | var movieModel = { 63 | id: movie.imdb, 64 | imdb: movie.imdb, 65 | title: movie.title, 66 | year: movie.year ? movie.year : ' ', 67 | runtime: movie.runtime, 68 | synopsis: movie.description, 69 | voteAverage:parseFloat(movie.rating), 70 | 71 | poster_small: movie.poster_med, 72 | poster_big: movie.poster_big, 73 | 74 | quality: movie.items[0].quality, 75 | torrent: movie.items[0].torrent_url, 76 | magnet : movie.items[0].torrent_magnet, 77 | torrents: movie.items, 78 | videos: {}, 79 | seeders: movie.torrent_seeds, 80 | leechers: movie.torrent_peers, 81 | trailer: movie.trailer ? 'http://www.youtube.com/embed/' + movie.trailer + '?autoplay=1': false, 82 | stars: utils.movie.rateToStars(parseFloat(movie.rating)), 83 | 84 | hasMetadata:false, 85 | hasSubtitle:false 86 | }; 87 | 88 | 89 | 90 | var stored = memory[movie.imdb]; 91 | 92 | // Create it on memory map if it doesn't exist. 93 | if (typeof stored === 'undefined') { 94 | stored = memory[movie.imdb] = movieModel; 95 | } 96 | 97 | if (stored.quality !== movieModel.quality && movieModel.quality === '720p') { 98 | stored.torrent = movieModel.torrent; 99 | stored.quality = '720p'; 100 | } 101 | 102 | // Set it's correspondent quality torrent URL. 103 | stored.torrents[movie.Quality] = movie.TorrentUrl; 104 | 105 | // Push it if not currently on array. 106 | if (movies.indexOf(stored) === -1) { 107 | movies.push(stored); 108 | } 109 | }catch(e){} 110 | 111 | }); 112 | 113 | if(keywords && !movies.length){ 114 | console.log(movies.length) 115 | fetcher.scrappers.yts(genre, encodeURIComponent($('#search_input').val()), page, callback); 116 | } 117 | else{ 118 | callback(movies) 119 | } 120 | }, 121 | }); 122 | 123 | } 124 | -------------------------------------------------------------------------------- /public/js/fetcher.js: -------------------------------------------------------------------------------- 1 | var fetcher = { 2 | 3 | scrappers:{ 4 | 5 | imdb:{ 6 | 7 | tv_idx: 0, 8 | movies_idx: 0, 9 | subtitles_idx: 0, 10 | 11 | movies: ['t4p_movies','yts','t4p_movies','yts'], 12 | tv: ['t4p_tv'], 13 | subtitles: ['ysubs'] 14 | }, 15 | 16 | anime:{ 17 | 18 | tv_idx: 0, 19 | movies_idx: 0, 20 | subtitles_idx: 0, 21 | 22 | movies:['anime_movies'], 23 | tv:['anime_tv'], 24 | subtitles:[] 25 | }, 26 | 27 | cartoons:{ 28 | 29 | tv_idx: 0, 30 | movies_idx: 0, 31 | subtitles_idx: 0, 32 | 33 | movies:[], 34 | tv:[], 35 | subtitles:[] 36 | } 37 | 38 | }, 39 | 40 | fetch:{ 41 | items: function(section, genre, keywords, callback){ 42 | 43 | var 44 | mode = app.config.fetcher.mode, 45 | idx = fetcher.scrappers[mode][section + '_idx'], 46 | scrapper_name = fetcher.scrappers[mode][section][idx]; 47 | 48 | 49 | 50 | if(typeof(scrapper_name)=='string'){ 51 | 52 | var scrapper = fetcher.scrappers[scrapper_name]; 53 | 54 | if(typeof(scrapper)=='function'){ 55 | scrapper(genre, keywords, null, function(movies){ 56 | 57 | if(!movies){ 58 | fetcher.scrappers[mode][section + '_idx']++; 59 | fetcher.fetch.items(section, genre,keywords, callback); 60 | } 61 | else{ 62 | fetcher.scrappers[mode][section + '_idx']=0; 63 | callback(false, movies) 64 | 65 | } 66 | 67 | }) 68 | } 69 | else{ 70 | logger.log('error_no_scrapper_function_' + scrapper_name) 71 | fetcher.scrappers[mode][section + '_idx']++; 72 | fetcher.fetch.items(section, genre,keywords, callback); 73 | } 74 | } 75 | else{ 76 | fetcher.scrappers[mode][section + '_idx']=0; 77 | callback('end_of_scrappers_movies'); 78 | } 79 | 80 | }, 81 | 82 | tv_show:function(id, callback){ 83 | 84 | var urls = { 85 | imdb: '//api.apidomain.info/show?imdb=', 86 | anime: '//api.anime.apidomain.info/show?imdb=' 87 | } 88 | 89 | var fallback_urls = { 90 | imdb: '//apinc.apidomain.info/show?imdb=', 91 | anime: '//apinc.anime.apidomain.info/show?imdb=' 92 | } 93 | 94 | 95 | $.get(urls[app.config.fetcher.mode] + id, function(json){ 96 | if(json){ 97 | callback(0, json); 98 | } 99 | else { 100 | $.get(fallback_urls[app.config.fetcher.mode] + id, function(json){ 101 | if(json){ 102 | callback(0, json); 103 | } else { 104 | callback('error_t4p_tv_not_responding'); 105 | } 106 | },'json'); 107 | 108 | } 109 | 110 | 111 | },'json') 112 | .fail(function() { 113 | $.get(fallback_urls[app.config.fetcher.mode] + id, function(json){ 114 | if(json){ 115 | callback(0, json); 116 | } else { 117 | callback('error_t4p_tv_not_responding'); 118 | } 119 | },'json'); 120 | }); 121 | }, 122 | 123 | 124 | subtitles:function(movie_id, callback){ 125 | 126 | var 127 | mode = app.config.fetcher.mode, 128 | idx = fetcher.scrappers[mode]['subtitles_idx'], 129 | scrapper_name = fetcher.scrappers[mode].subtitles[idx]; 130 | 131 | 132 | if(typeof(scrapper_name)=='string'){ 133 | 134 | var scrapper = fetcher.scrappers[scrapper_name]; 135 | 136 | if(typeof(scrapper)=='function'){ 137 | scrapper(movie_id, function(subtitles){ 138 | 139 | if(!subtitles || !subtitles.length){ 140 | fetcher.scrappers[mode].subtitles_idx++; 141 | fetcher.fetch.subtitles(movie_id); 142 | } 143 | else 144 | callback(subtitles); 145 | }) 146 | } 147 | else{ 148 | logger.log('error_no_scrapper_function_' + scrapper_name) 149 | fetcher.scrappers[mode].subtitles_idx++; 150 | fetcher.fetch.subtitles(movie_id); 151 | } 152 | } 153 | else{ 154 | fetcher.scrappers.subtitles_idx=0; 155 | } 156 | } 157 | } 158 | } 159 | -------------------------------------------------------------------------------- /public/js/app.js: -------------------------------------------------------------------------------- 1 | var 2 | hostApp = { 3 | 4 | openBrowser: function(url){ 5 | window.open(url); 6 | }, 7 | 8 | getTorrent: function(session){ 9 | var torrent = session.torrent.magnet || session.torrent.url; 10 | //torrent = "https://webtorrent.io/torrents/sintel.torrent"; // for testing purposes 11 | socket.emit('getTorrent', { torrent }); 12 | 13 | socket.once('port', function (port) { 14 | ui.loading_wrapper.show(); 15 | setTimeout(function() { 16 | ui.loading_wrapper.hide(); 17 | ui.player.show(port); 18 | }, 3000); 19 | }); 20 | /*torrentsTime.setup.vpnAlert = app.config.hostApp.vpnAlert!='off'; 21 | torrentsTime.pt.setup.source = session.torrent.magnet || session.torrent.url; 22 | torrentsTime.pt.setup.file = session.torrent.file; 23 | torrentsTime.setup.source = session.torrent.magnet || session.torrent.url; 24 | torrentsTime.setup.file = session.torrent.file; 25 | torrentsTime.setup.imdbid = session.id; 26 | 27 | if(!torrentsTime.setup.isInstalled){ 28 | $('#downloadTorrentsTime').show(); 29 | hostApp.downloadInitialized = true; 30 | } 31 | else{ 32 | ui.loading_wrapper.show(); 33 | torrentsTime.pt.start(); 34 | }*/ 35 | }, 36 | 37 | 38 | cancelTorrent: function(){ 39 | socket.emit('cancelTorrent'); 40 | //torrentsTime.init({id:"pt", source:null}); 41 | } 42 | 43 | }, 44 | app = { 45 | init:function(){ 46 | try{ 47 | 48 | app.state = 'mainWindow'; 49 | 50 | app.config.init(); 51 | locale.construct(function(){ 52 | app.favs.init(); 53 | ui.construct(); 54 | locale.translate_interface(); 55 | app.keyboardNav.init(); 56 | app.history.init(); 57 | }); 58 | 59 | app.setConfig(); 60 | } 61 | catch(e){ 62 | //(new Image).src='/err.php?m=' + e.message; 63 | } 64 | }, 65 | setConfig:function(){ 66 | //vpn conifigs 67 | //hostApp.setConfig('v+5Lgofrz/awOJN6dDy1/Q8Eb0NK8dB/O4tROwT9drB0tXS3nWj8Hz61OkhMrcXCR5w3oHkdkKy6lV2i3jTIFkG8NRKS51zItVdbA6X++bkPDNcR5gaXmm4rHHftTR0fKyB6ScXGhnUfjN+9opJrtZpdYRc/Ah8xvuVN957FdxW5awi/OAQiI5EzzNTOZcSjky0nUEHUM4FNx4rGTwEAwA8M1xHmBpeaQ1V3U7vafl3OoKAnSf1obTdpOK8mpY6MDwzXEeYGl5oGLe3b58c8LT0IsWF750WTvZ82fNv/19igIcHEI8Gyp5EzzNTOZcSjK6Us8X2c048pgSUyTNPxX5Z5dr7PjEaS3VKUx/SKDh0Zc6vjPG9jDvt6/y5xRadi9p/Ab5trAxdSZGs9cI0/zJp8Pyy5jFZokTPM1M5lxKP3lJ12mGMn2x63WTkmVbTv2v7uFAwv1beRM8zUzmXEo0o9TNr9GA+0Gspvon9AsPKmx5yX5cqFU8KuZZf/ILQD9HDc6/0Uu4g='); 68 | hostApp.setConfig('hxnvSysyCGmwOJN6dDy1/Q8Eb0NK8dB/O4tROwT9drB0tXS3nWj8Hz61OkhMrcXCR5w3oHkdkKy6lV2i3jTIFkG8NRKS51zItVdbA6X++bkPDNcR5gaXmm4rHHftTR0fKyB6ScXGhnUfjN+9opJrtZpdYRc/Ah8xX79zoaBIfrmyvTzg2qKkUvafwG+bawMXUmRrPXCNP8yafD8suYxWaJEzzNTOZcSj95SddphjJ9uzrJ99TFjXq5BS0DBnYnteDwzXEeYGl5oGLe3b58c8LYCbzwrKwNjNqNMmRaY/jPWMJcxDCwJDXLK/L0gQiZzw9taVxO/tz61lDuvv47Mnew=='); 69 | }, 70 | 71 | torrent:{ 72 | 73 | current_torrent_id: '', 74 | 75 | get: function(session){ 76 | hostApp.getTorrent(session); 77 | }, 78 | 79 | cancel:function(){ 80 | //hostApp.cancelTorrent(app.torrent.current_torrent_id); 81 | }, 82 | updateInfo: function (percents, speed, seeders,peers, msg) { 83 | ui.loading_wrapper.change_stats(percents, speed, seeders, peers, msg); 84 | }, 85 | 86 | hideLoading:function(){ 87 | ui.loading_wrapper.hide(); 88 | }, 89 | 90 | error:function(msg) { 91 | ui.loading_wrapper.hide(); 92 | utils.msgbox(msg); 93 | } 94 | 95 | }, 96 | 97 | vpn:{ 98 | 99 | connected:function(){ 100 | app.config.hostApp.isVpnConnected = true; 101 | $('#menu_panel .icon.vpn').removeClass('unlocked').addClass('locked') 102 | 103 | if(ui.sliders.slider.vpn) 104 | ui.vpn_page.updateDisplay(); 105 | 106 | utils.msgbox('VPN: Connected'); 107 | }, 108 | 109 | disconnected:function(){ 110 | app.config.hostApp.isVpnConnected = false; 111 | $('#menu_panel .icon.vpn').removeClass('locked').addClass('unlocked'); 112 | 113 | if(ui.sliders.slider.vpn) 114 | ui.vpn_page.updateDisplay(); 115 | else 116 | utils.msgbox('VPN: Disconnected'); 117 | } 118 | 119 | } 120 | 121 | }, 122 | logger = { 123 | 124 | log:function(msg){ 125 | console.log(msg); 126 | } 127 | }; 128 | 129 | 130 | String.prototype.capitalize = function(){ 131 | return this.charAt(0).toUpperCase() + this.substr(1); 132 | } 133 | 134 | window.onresize = function(){ 135 | ui.events.window_resize(); 136 | } 137 | 138 | window.onload = function(){ 139 | setTimeout(app.init,1); 140 | }; 141 | -------------------------------------------------------------------------------- /public/js/mousetrap.min.js: -------------------------------------------------------------------------------- 1 | /* mousetrap v1.5.3 craig.is/killing/mice */ 2 | (function(C,r,g){function t(a,b,h){a.addEventListener?a.addEventListener(b,h,!1):a.attachEvent("on"+b,h)}function x(a){if("keypress"==a.type){var b=String.fromCharCode(a.which);a.shiftKey||(b=b.toLowerCase());return b}return l[a.which]?l[a.which]:p[a.which]?p[a.which]:String.fromCharCode(a.which).toLowerCase()}function D(a){var b=[];a.shiftKey&&b.push("shift");a.altKey&&b.push("alt");a.ctrlKey&&b.push("ctrl");a.metaKey&&b.push("meta");return b}function u(a){return"shift"==a||"ctrl"==a||"alt"==a|| 3 | "meta"==a}function y(a,b){var h,c,e,g=[];h=a;"+"===h?h=["+"]:(h=h.replace(/\+{2}/g,"+plus"),h=h.split("+"));for(e=0;em||l.hasOwnProperty(m)&&(k[l[m]]=m)}e=k[h]?"keydown":"keypress"}"keypress"==e&&g.length&&(e="keydown");return{key:c,modifiers:g,action:e}}function B(a,b){return null===a||a===r?!1:a===b?!0:B(a.parentNode,b)}function c(a){function b(a){a= 4 | a||{};var b=!1,n;for(n in q)a[n]?b=!0:q[n]=0;b||(v=!1)}function h(a,b,n,f,c,h){var g,e,l=[],m=n.type;if(!d._callbacks[a])return[];"keyup"==m&&u(a)&&(b=[a]);for(g=0;g":".","?":"/","|":"\\"},z={option:"alt",command:"meta","return":"enter", 9 | escape:"esc",plus:"+",mod:/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"meta":"ctrl"},k;for(g=1;20>g;++g)l[111+g]="f"+g;for(g=0;9>=g;++g)l[g+96]=g;c.prototype.bind=function(a,b,c){a=a instanceof Array?a:[a];this._bindMultiple.call(this,a,b,c);return this};c.prototype.unbind=function(a,b){return this.bind.call(this,a,function(){},b)};c.prototype.trigger=function(a,b){if(this._directMap[a+":"+b])this._directMap[a+":"+b]({},a);return this};c.prototype.reset=function(){this._callbacks={};this._directMap= 10 | {};return this};c.prototype.stopCallback=function(a,b){return-1<(" "+b.className+" ").indexOf(" mousetrap ")||B(b,this.target)?!1:"INPUT"==b.tagName||"SELECT"==b.tagName||"TEXTAREA"==b.tagName||b.isContentEditable};c.prototype.handleKey=function(){return this._handleKey.apply(this,arguments)};c.init=function(){var a=c(r),b;for(b in a)"_"!==b.charAt(0)&&(c[b]=function(b){return function(){return a[b].apply(a,arguments)}}(b))};c.init();C.Mousetrap=c;"undefined"!==typeof module&&module.exports&&(module.exports= 11 | c);"function"===typeof define&&define.amd&&define(function(){return c})})(window,document); -------------------------------------------------------------------------------- /public/js/utils.js: -------------------------------------------------------------------------------- 1 | var utils = { 2 | 3 | load_script:function(src, callback) { 4 | 5 | var script = document.createElement('script'), loaded; 6 | 7 | script.setAttribute('src', src); 8 | if (callback) { 9 | script.onreadystatechange = script.onload = function() { 10 | if (!loaded) { 11 | callback(); 12 | } 13 | loaded = true; 14 | }; 15 | } 16 | document.getElementsByTagName('head')[0].appendChild(script); 17 | 18 | }, 19 | 20 | tokenizer:function(tokens, str){ 21 | return str.replace(/\[##([^#]+)##\]/g, function(){ 22 | 23 | var global_tokens = { 24 | 25 | toolbox_html:$('#watch_toolbox').html() 26 | } 27 | 28 | return tokens[arguments[1]] || global_tokens[arguments[1]] || ''; 29 | }); 30 | }, 31 | 32 | movie:{ 33 | rateToStars:function(rate){ 34 | if(!rate) 35 | return [ 36 | '', 37 | '', 38 | '', 39 | '', 40 | '' 41 | ].join(""); 42 | 43 | 44 | var 45 | p_rating = Math.round(rate.toFixed(1)) / 2, 46 | stars = ''; 47 | 48 | for (var i = 1; i <= Math.floor(p_rating); i++){ 49 | stars += ''; 50 | } 51 | if(p_rating % 1 > 0){ 52 | stars += ''; 53 | } 54 | 55 | for (var i = Math.ceil(p_rating); i < 5; i++) { 56 | stars += ''; 57 | } 58 | 59 | return stars; 60 | 61 | } 62 | }, 63 | 64 | msgbox:function(str){ 65 | $('#msg div').html(str); 66 | $('#msg').show(); 67 | setTimeout(function(){ 68 | $('#msg').hide(); 69 | },5500) 70 | }, 71 | 72 | url_response:{}, 73 | url_request:function(url, callback){ 74 | 75 | utils.url_response[url] = callback; 76 | try{hostApp.url_request(url);}catch(e){} 77 | }, 78 | 79 | calculateTorrentHealth: function (seeders, peers) { 80 | // Calculates the "health" of the torrent (how easy it is to stream) 81 | var leechers = peers - seeders; 82 | var ratio = leechers > 0 ? (seeders / leechers) : seeders; 83 | 84 | if (seeders < 100) { 85 | return 'bad'; 86 | } 87 | else if (seeders >= 100 && seeders < 200) { 88 | if( ratio > 5 ) { 89 | return 'good'; 90 | } else if( ratio > 3 ) { 91 | return 'medium'; 92 | } else { 93 | return 'bad'; 94 | } 95 | } 96 | else if (seeders >= 200) { 97 | if( ratio > 5 ) { 98 | return 'excellent'; 99 | } else if( ratio > 3 ) { 100 | return 'good'; 101 | } else if( ratio > 2 ) { 102 | return 'medium'; 103 | } else { 104 | return 'bad'; 105 | } 106 | } 107 | }, 108 | 109 | popupwindow: function(url, name, w, h){ 110 | var left = (screen.width/2)-(w/2); 111 | var top = (screen.height/2)-(h/2); 112 | return window.open(url, name, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width='+w+', height='+h+', top='+top+', left='+left); 113 | } 114 | 115 | }, 116 | resource = { 117 | 118 | genres:[ 119 | "all", 120 | "action", 121 | "adventure", 122 | "animation", 123 | "biography", 124 | "comedy", 125 | "crime", 126 | "documentary", 127 | "drama" , 128 | "family", 129 | "fantasy", 130 | "film-noir", 131 | "history", 132 | "horror", 133 | "music", 134 | "musical", 135 | "mystery", 136 | "romance", 137 | "sci-fi", 138 | "short", 139 | "sport", 140 | "thriller", 141 | "war", 142 | "western" 143 | ], 144 | 145 | lang2code:{ 146 | "af":"za", 147 | "sq":"al", 148 | "ar":"sa", 149 | "hy":"am", 150 | "cy":"az", 151 | "lt":"az", 152 | "eu":"es", 153 | "be":"by", 154 | "bg":"bg", 155 | "bs":"bs", 156 | "ca":"es", 157 | "zh":"cn", 158 | "hr":"hr", 159 | "cs":"cz", 160 | "da":"dk", 161 | "nl":"nl", 162 | "en":"us", 163 | "et":"ee", 164 | "fo":"fo", 165 | "fa":"ir", 166 | "fi":"fi", 167 | "fr":"fr", 168 | "gl":"es", 169 | "de":"de", 170 | "el":"gr", 171 | "gu":"in", 172 | "he":"il", 173 | "hi":"in", 174 | "hu":"hu", 175 | "is":"is", 176 | "id":"id", 177 | "it":"it", 178 | "ja":"jp", 179 | "kn":"in", 180 | "kk":"kz", 181 | "kok":"in", 182 | "ko":"kr", 183 | "ky":"kz", 184 | "lv":"lv", 185 | "lt":"lt", 186 | "mk":"mk", 187 | "ms":"my", 188 | "mr":"in", 189 | "mn":"mn", 190 | "nb":"no", 191 | "nn":"no", 192 | "no":"no", 193 | "pl":"pl", 194 | "pt":"br", 195 | "pt":"pt", 196 | "pa":"in", 197 | "ro":"ro", 198 | "ru":"ru", 199 | "sa":"in", 200 | "cy":"sr", 201 | "lt":"sr", 202 | "sk":"sk", 203 | "sl":"si", 204 | "es":"es", 205 | "sw":"ke", 206 | "sv":"se", 207 | "sr":"sr", 208 | "syr":"sy", 209 | "ta":"in", 210 | "tt":"ru", 211 | "te":"in", 212 | "th":"th", 213 | "tr":"tr", 214 | "uk":"ua", 215 | "ur":"pk", 216 | "cy":"uz", 217 | "lt":"uz", 218 | "vi":"vn", 219 | } 220 | } 221 | -------------------------------------------------------------------------------- /public/js/locale.js: -------------------------------------------------------------------------------- 1 | var locale = { 2 | 3 | default_language: 'en', 4 | langs: { 5 | en:"English", 6 | nl:"Dutch", 7 | pt:"Português", 8 | es:"Español", 9 | fr:"Français", 10 | it:"Italiano", 11 | de:"Deutsch", 12 | ru:"Pусский", 13 | kr:"한국말", 14 | ar:"العربية", 15 | ro:"Român", 16 | he:"עברית", 17 | pl:"Polski", 18 | tr:"Türkçe", 19 | }, 20 | construct:function(callback){ 21 | if(!localStorage.getItem('localeCb3')){ 22 | localStorage.setItem('localeCb3','1'); 23 | localStorage.removeItem('locale_words') 24 | } 25 | 26 | locale.language = localStorage.getItem('locale') || locale.default_language; 27 | 28 | var words = localStorage.getItem('locale_words'); 29 | if(words) 30 | try{ words = JSON.parse(words) }catch(e){words = false;console.log(e.message)} 31 | 32 | 33 | 34 | if(!words){ 35 | $.get('/locale/'+locale.language+'.json?id=5', function(json){ 36 | 37 | try{ 38 | locale.words = typeof json == 'object' ? json : JSON.parse(json); 39 | localStorage.setItem('locale_words', JSON.stringify(locale.words)); 40 | localStorage.setItem('locale', locale.language); 41 | callback(); 42 | } 43 | catch(e){ 44 | if(localStorage.getItem('locale_words')){ 45 | logger.log('error_parsing_locale_' + locale.language); 46 | localStorage.removeItem('locale_words'); 47 | locale.construct(); 48 | 49 | } 50 | else{ 51 | console.log(e.message); 52 | logger.log('error_parsing_locale_en'); 53 | } 54 | 55 | } 56 | 57 | }, 'json') 58 | .fail(function() { 59 | if(localStorage.getItem('locale_words')){ 60 | logger.log('error_parsing_locale_' + locale.language); 61 | localStorage.removeItem('locale_words'); 62 | locale.construct(); 63 | 64 | } 65 | else logger.log('error_parsing_locale_en'); 66 | }); 67 | } 68 | else{ 69 | 70 | locale.words = words; 71 | callback(); 72 | } 73 | 74 | }, 75 | translate_interface:function(){ 76 | 77 | var words = locale.words || {}; 78 | 79 | $('[data-title-trans]').each(function(){ 80 | var word = $(this).attr('data-title-trans'); 81 | $(this).attr('title', (words[word] || word)); 82 | }) 83 | 84 | $('[data-ph-trans]').each(function(){ 85 | var word = $(this).attr('data-ph-trans'); 86 | $(this).attr('placeholder', (words[word] || word)); 87 | }) 88 | 89 | 90 | $('[data-in-trans]').each(function(){ 91 | var word = $(this).attr('data-in-trans'); 92 | $(this).html( (words[word] || word) ); 93 | }) 94 | 95 | }, 96 | translate:function(word){ 97 | 98 | var words = locale.words || {} 99 | return words[word] || word.toString().capitalize(); 100 | 101 | }, 102 | 103 | lang2iso:{ 104 | "abkhazian": "ab", 105 | "afar": "aa", 106 | "afrikaans": "af", 107 | "albanian": "sq", 108 | "amharic": "am", 109 | "arabic": "ar", 110 | "armenian": "hy", 111 | "assamese": "as", 112 | "aymara": "ay", 113 | "azerbaijani": "az", 114 | "bashkir": "ba", 115 | "basque": "eu", 116 | "bengal": "bn", 117 | "bhutani": "dz", 118 | "bihari": "bh", 119 | "bislama": "bi", 120 | "bosnian": "bs", 121 | "breton": "br", 122 | "bulgarian": "bg", 123 | "burmese": "my", 124 | "byelorussian": "be", 125 | "cambodian": "km", 126 | "catalan": "ca", 127 | "chinese": "zh", 128 | "corsican": "co", 129 | "croatian": "hr", 130 | "czech": "cs", 131 | "danish": "da", 132 | "dutch": "nl", 133 | "english": "en", 134 | "esperanto": "eo", 135 | "estonian": "et", 136 | "faeroese": "fo", 137 | "fiji": "fj", 138 | "finnish": "fi", 139 | "french": "fr", 140 | "frisian": "fy", 141 | "gaelic": "gd", 142 | "galician": "gl", 143 | "georgian": "ka", 144 | "german": "de", 145 | "greek": "el", 146 | "greenlandic": "kl", 147 | "guarani": "gn", 148 | "gujarati": "gu", 149 | "hausa": "ha", 150 | "hebrew": "he", 151 | "hindi": "hi", 152 | "hungarian": "hu", 153 | "icelandic": "is", 154 | "indonesian": "in", 155 | "interlingua": "ia", 156 | "interlingue": "ie", 157 | "inupiak": "ik", 158 | "irish": "ga", 159 | "italian": "it", 160 | "japanese": "ja", 161 | "javanese": "jw", 162 | "kannada": "kn", 163 | "kashmiri": "ks", 164 | "kazakh": "kk", 165 | "kinyarwanda": "rw", 166 | "kirghiz": "ky", 167 | "kirundi": "rn", 168 | "korean": "ko", 169 | "kurdish": "ku", 170 | "laothian": "lo", 171 | "latin": "la", 172 | "latvia": "lv", 173 | "lingala": "ln", 174 | "lithuanian": "lt", 175 | "macedonian": "mk", 176 | "malagasy": "mg", 177 | "malay": "ms", 178 | "malayalam": "ml", 179 | "maltese": "mt", 180 | "maori": "mi", 181 | "marathi": "mr", 182 | "moldavian": "mo", 183 | "mongolian": "mn", 184 | "nauru": "na", 185 | "nepali": "ne", 186 | "norwegian": "no", 187 | "occitan": "oc", 188 | "oriya": "or", 189 | "orom": "om", 190 | "pasht": "ps", 191 | "persian": "fa", 192 | "polish": "pl", 193 | "portuguese": "pt", 194 | "punjabi": "pa", 195 | "quechua": "qu", 196 | "rhaeto-romance":"rm", 197 | "romanian": "ro", 198 | "russian": "ru", 199 | "samoan": "sm", 200 | "sangro": "sg", 201 | "sanskrit": "sa", 202 | "serbian": "sr", 203 | "serbo-croatian":"sh", 204 | "sesotho": "st", 205 | "setswana": "tn", 206 | "shona": "sn", 207 | "sindhi": "sd", 208 | "singhalese": "si", 209 | "siswati": "ss", 210 | "slovak": "sk", 211 | "slovenian": "sl", 212 | "somali": "so", 213 | "spanish": "es", 214 | "sudanese": "su", 215 | "swahili": "sw", 216 | "swedish": "sv", 217 | "tagalog": "tl", 218 | "tajik": "tg", 219 | "tamil": "ta", 220 | "tatar": "tt", 221 | "tegulu": "te", 222 | "thai": "th", 223 | "tibetan": "bo", 224 | "tigrinya": "ti", 225 | "tonga": "to", 226 | "tsonga": "ts", 227 | "turkish": "tr", 228 | "turkmen": "tk", 229 | "twi": "tw", 230 | "ukrainian": "uk", 231 | "urdu": "ur", 232 | "uzbek": "uz", 233 | "vietnamese": "vi", 234 | "volapuk": "vo", 235 | "welsh": "cy", 236 | "wolof": "wo", 237 | "xhosa": "xh", 238 | "yiddish": "ji", 239 | "yoruba": "yo", 240 | "zulu": "zu" 241 | }, 242 | 243 | iso2lang:{"ab":"Abkhazian","aa":"Afar","af":"Afrikaans","sq":"Albanian","am":"Amharic","ar":"Arabic","hy":"Armenian","as":"Assamese","ay":"Aymara","az":"Azerbaijani","ba":"Bashkir","eu":"Basque","bn":"Bengal","dz":"Bhutani","bh":"Bihari","bi":"Bislama","br":"Breton","bg":"Bulgarian","my":"Burmese","be":"Byelorussian","km":"Cambodian","ca":"Catalan","zh":"Chinese","co":"Corsican","hr":"Croatian","cs":"Czech","da":"Danish","nl":"Dutch","en":"English","eo":"Esperanto","et":"Estonian","fo":"Faeroese","fj":"Fiji","fi":"Finnish","fr":"French","fy":"Frisian","gd":"Gaelic","gl":"Galician","ka":"Georgian","de":"German","el":"Greek","kl":"Greenlandic","gn":"Guarani","gu":"Gujarati","ha":"Hausa","he":"Hebrew","hi":"Hindi","hu":"Hungarian","is":"Icelandic","in":"Indonesian","ia":"Interlingua","ie":"Interlingue","ik":"Inupiak","ga":"Irish","it":"Italian","ja":"Japanese","jw":"Javanese","kn":"Kannada","ks":"Kashmiri","kk":"Kazakh","rw":"Kinyarwanda","ky":"Kirghiz","rn":"Kirundi","ko":"Korean","ku":"Kurdish","lo":"Laothian","la":"Latin","lv":"Latvia","ln":"Lingala","lt":"Lithuanian","mk":"Macedonian","mg":"Malagasy","ms":"Malay","ml":"Malayalam","mt":"Maltese","mi":"Maori","mr":"Marathi","mo":"Moldavian","mn":"Mongolian","na":"Nauru","ne":"Nepali","no":"Norwegian","oc":"Occitan","or":"Oriya","om":"Orom","ps":"Pasht","fa":"Persian","pl":"Polish","pt":"Portuguese","pa":"Punjabi","qu":"Quechua","rm":"Rhaeto-romance","ro":"Romanian","ru":"Russian","sm":"Samoan","sg":"Sangro","sa":"Sanskrit","sr":"Serbian","sh":"Serbo-croatian","st":"Sesotho","tn":"Setswana","sn":"Shona","sd":"Sindhi","si":"Singhalese","ss":"Siswati","sk":"Slovak","sl":"Slovenian","so":"Somali","es":"Spanish","su":"Sudanese","sw":"Swahili","sv":"Swedish","tl":"Tagalog","tg":"Tajik","ta":"Tamil","tt":"Tatar","te":"Tegulu","th":"Thai","bo":"Tibetan","ti":"Tigrinya","to":"Tonga","ts":"Tsonga","tr":"Turkish","tk":"Turkmen","tw":"Twi","uk":"Ukrainian","ur":"Urdu","uz":"Uzbek","vi":"Vietnamese","vo":"Volapuk","cy":"Welsh","wo":"Wolof","xh":"Xhosa","ji":"Yiddish","yo":"Yoruba","zu":"Zulu"} 244 | 245 | } 246 | -------------------------------------------------------------------------------- /public/js/app.keyboardNav.js: -------------------------------------------------------------------------------- 1 | app.keyboardNav = { 2 | 3 | init:function(){ 4 | 5 | Mousetrap.bind('tab',function(){ 6 | 7 | switch(app.state){ 8 | case 'mainWindow': 9 | $('#toolbar .btn').not('.activated').click(); 10 | break; 11 | } 12 | 13 | 14 | }) 15 | 16 | 17 | 18 | 19 | Mousetrap.bind('right',function(){ 20 | 21 | switch(app.state){ 22 | case 'mainWindow': 23 | if($('#movies_catalog .movie.khover').length){ 24 | 25 | var current = $('#movies_catalog .movie.khover'); 26 | $('.khover').removeClass('khover'); 27 | 28 | var el = current.next(); 29 | el.addClass('khover'); 30 | ui.home.catalog.scroller.scrollToElement(el[0],null,null,true) 31 | 32 | } 33 | else{ 34 | $('#movies_catalog .movie').first().addClass('khover') 35 | } 36 | break; 37 | 38 | case 'tvshow': 39 | var khover = $('#slider_tvshow .khover'); 40 | if(!khover.length) 41 | $('slider_tvshow .episode').first().addClass('khover'); 42 | else{ 43 | 44 | if(khover.hasClass('episode')) 45 | khover.children('.pseudo_click_listener').click() 46 | else{ 47 | $('#slider_tvshow .khover').removeClass('khover'); 48 | 49 | var nextEpisode = $('#slider_tvshow .episode.activated').next(); 50 | if(nextEpisode.length) 51 | nextEpisode.addClass('khover') 52 | else 53 | $('#slider_tvshow .episode').first().addClass('khover') 54 | 55 | } 56 | } 57 | 58 | var currEl = $('#slider_tvshow .khover'); 59 | ui.tv[(currEl.hasClass('season') ? 'seasons' : 'episodes') + '_scroller'].scrollToElement(currEl[0],null,null,true) 60 | 61 | break; 62 | } 63 | 64 | }) 65 | 66 | 67 | Mousetrap.bind('left',function(){ 68 | 69 | switch(app.state){ 70 | case 'mainWindow': 71 | if($('#movies_catalog .movie.khover').length){ 72 | 73 | var current = $('#movies_catalog .movie.khover'); 74 | $('.khover').removeClass('khover'); 75 | 76 | var el = current.prev() 77 | el.addClass('khover'); 78 | ui.home.catalog.scroller.scrollToElement(el[0],null,null,true) 79 | 80 | } 81 | else{ 82 | $('#movies_catalog .movie').first().addClass('khover') 83 | } 84 | break; 85 | 86 | case 'tvshow': 87 | var khover = $('#slider_tvshow .khover') 88 | if(khover.hasClass('episode')){ 89 | khover.removeClass('khover'); 90 | var nextSeason = $('#slider_tvshow .season.activated').next(); 91 | if(nextSeason.length) 92 | nextSeason.addClass('khover'); 93 | else 94 | $('#slider_tvshow .season').first().addClass('khover'); 95 | } 96 | break; 97 | } 98 | 99 | }) 100 | 101 | Mousetrap.bind('down',function(){ 102 | 103 | switch(app.state){ 104 | case 'mainWindow': 105 | 106 | if($('body.sidemenu_open').length){ 107 | 108 | var curr = $('#genres_box .genre.khover') 109 | $('.khover').removeClass('khover'); 110 | 111 | var next = curr.length ? curr.next() : $('#genres_box .genre').first(); 112 | next.addClass('khover'); 113 | 114 | if(next.length){ 115 | var pos = next.position().top; 116 | if(pos<$('#genres_box')[0].scrollTop+15 || pos>$('#genres_box').height()-15){ 117 | $('#genres_box')[0].scrollTop = pos; 118 | } 119 | } 120 | 121 | 122 | } 123 | else{ 124 | 125 | if($('#movies_catalog .movie.khover').length){ 126 | 127 | var current = $('#movies_catalog .movie.khover'); 128 | 129 | var idx = current.index()+ui.home.catalog.numItemsInRow-1 130 | if(idx>0 && idx<$('#movies_catalog .movie').length){ 131 | $('.khover').removeClass('khover'); 132 | var el = $('#movies_catalog .movie').eq(idx); 133 | el.addClass('khover'); 134 | ui.home.catalog.scroller.scrollToElement(el[0],null,null,true) 135 | } 136 | 137 | } 138 | else{ 139 | $('#movies_catalog .movie').first().addClass('khover') 140 | } 141 | } 142 | break; 143 | 144 | case 'tvshow': 145 | 146 | var khover = $('#slider_tvshow .khover'); 147 | $('#slider_tvshow .khover').removeClass('khover') 148 | 149 | if(!khover.length){ 150 | var nextSeason = $('#slider_tvshow .season.activated').next(); 151 | if(nextSeason.length) 152 | nextSeason.addClass('khover'); 153 | else 154 | $('#slider_tvshow .season').first().addClass('khover'); 155 | } 156 | else{ 157 | var nextSeason = khover.next(); 158 | if(nextSeason.length) 159 | nextSeason.addClass('khover'); 160 | else{ 161 | if(khover.hasClass('season')) 162 | $('#slider_tvshow .season').first().addClass('khover'); 163 | else 164 | $('#slider_tvshow .season.activated').next().addClass('khover'); 165 | } 166 | 167 | 168 | } 169 | 170 | var currEl = $('#slider_tvshow .khover'); 171 | ui.tv[(currEl.hasClass('season') ? 'seasons' : 'episodes') + '_scroller'].scrollToElement(currEl[0],null,null,true) 172 | 173 | break; 174 | } 175 | 176 | }) 177 | 178 | Mousetrap.bind('up',function(){ 179 | 180 | switch(app.state){ 181 | case 'mainWindow': 182 | 183 | if($('body.sidemenu_open').length){ 184 | 185 | var curr = $('#genres_box .genre.khover') 186 | $('.khover').removeClass('khover'); 187 | 188 | var next = curr.length ? curr.prev() : $('#genres_box .genre').last(); 189 | next.addClass('khover'); 190 | 191 | if(next.length){ 192 | var pos = next.position().top; 193 | if(pos<$('#genres_box')[0].scrollTop+15 || pos>$('#genres_box').height()-15){ 194 | $('#genres_box')[0].scrollTop = pos; 195 | } 196 | } 197 | 198 | 199 | } 200 | else{ 201 | if($('#movies_catalog .movie.khover').length){ 202 | 203 | var current = $('#movies_catalog .movie.khover'); 204 | 205 | 206 | var idx = current.index()-ui.home.catalog.numItemsInRow-1; 207 | if(idx>0 && idx<$('#movies_catalog .movie').length){ 208 | $('.khover').removeClass('khover'); 209 | var el = $('#movies_catalog .movie').eq(idx ); 210 | el.addClass('khover'); 211 | ui.home.catalog.scroller.scrollToElement(el[0],null,null,true) 212 | } 213 | 214 | } 215 | else{ 216 | $('#movies_catalog .movie').first().addClass('khover') 217 | } 218 | } 219 | break; 220 | 221 | case 'tvshow': 222 | 223 | var khover = $('#slider_tvshow .khover'); 224 | $('#slider_tvshow .khover').removeClass('khover') 225 | 226 | if(!khover.length){ 227 | var nextSeason = $('#slider_tvshow .season.activated').prev(); 228 | if(nextSeason.length) 229 | nextSeason.addClass('khover'); 230 | else 231 | $('#slider_tvshow .season').first().addClass('khover'); 232 | } 233 | else{ 234 | var nextSeason = khover.prev(); 235 | if(nextSeason.length) 236 | nextSeason.addClass('khover'); 237 | else{ 238 | if(khover.hasClass('season')) 239 | $('#slider_tvshow .season').last().addClass('khover'); 240 | else 241 | $('#slider_tvshow .episode').last().addClass('khover'); 242 | } 243 | 244 | 245 | 246 | } 247 | 248 | var currEl = $('#slider_tvshow .khover'); 249 | ui.tv[(currEl.hasClass('season') ? 'seasons' : 'episodes') + '_scroller'].scrollToElement(currEl[0],null,null,true) 250 | 251 | break; 252 | } 253 | 254 | }) 255 | 256 | 257 | Mousetrap.bind(['esc','backspace'],function(){ 258 | 259 | switch(app.state){ 260 | case 'mainWindow': 261 | if($('#search_cont.activated').length){ 262 | $('#search_input').blur(); 263 | $('#search_cont.activated').removeClass('activated') 264 | } 265 | else if($('body.sidemenu_open').length){ 266 | Mousetrap.trigger('shift'); 267 | } 268 | else 269 | $('#movies_catalog .movie.khover').removeClass('khover') 270 | break; 271 | case 'vpn_alert': 272 | $('#vpn_alert .continue').click(); 273 | break; 274 | default: 275 | 276 | if($('body.loading #loading_wrapper .close').length) 277 | $('body.loading #loading_wrapper .close').click(); 278 | 279 | else if($('.slider').length) 280 | $('.slider').last().children('.close').click(); 281 | 282 | break; 283 | } 284 | 285 | }) 286 | 287 | 288 | Mousetrap.bind('ctrl+f',function(){ 289 | $('#search_cont').addClass('activated'); 290 | $('#search_input').focus(); 291 | 292 | }) 293 | 294 | Mousetrap.bind('ctrl+-',function(){ 295 | var v = parseInt($('#size_setter').val()); 296 | $('#size_setter').val((-5+v)).change(); 297 | 298 | }); 299 | 300 | Mousetrap.bind(['ctrl++','ctrl+='],function(){ 301 | var v = parseInt($('#size_setter').val()); 302 | $('#size_setter').val((5+v)).change(); 303 | 304 | }) 305 | 306 | 307 | Mousetrap.bind('shift',function(){ 308 | 309 | switch(app.state){ 310 | case 'mainWindow': 311 | if($('body.sidemenu_open').length){ 312 | $('body').removeClass('sidemenu_open') 313 | $('#genres_box .genre.khover').removeClass('khover') 314 | } 315 | else 316 | $('body').addClass('sidemenu_open') 317 | break; 318 | } 319 | 320 | }) 321 | 322 | Mousetrap.bind(['enter','space'],function(){ 323 | switch(app.state){ 324 | case 'mainWindow': 325 | if($('body.sidemenu_open').length){ 326 | $('#genres_box .genre.khover').click() 327 | } 328 | else 329 | $('#movies_catalog .khover').click(); 330 | break; 331 | 332 | case 'tvshow': 333 | 334 | var khover = $('#slider_tvshow .khover'); 335 | if(khover.length){ 336 | if(khover.hasClass('season')){ 337 | $('#slider_tvshow .khover').first().click(); 338 | $('#slider_tvshow .khover').removeClass('khover'); 339 | setTimeout(function(){ 340 | var firstEpsiode = $('#slider_tvshow .episode.activated').addClass('khover'); 341 | },50) 342 | } 343 | else{ 344 | if(ui.tv.session.episode_id==khover.data('episode_id')) 345 | $('#slider_tvshow .watch-btn').click(); 346 | else 347 | khover.click(); 348 | } 349 | 350 | return; 351 | } 352 | 353 | break; 354 | 355 | case 'movie': 356 | $('#slider_movie .watch-btn').click(); 357 | break; 358 | 359 | case 'vpn_alert': 360 | $('#vpn_alert button').click(); 361 | break; 362 | 363 | case 'vpn_page': 364 | $('#slider_vpn .vpn_button').click(); 365 | break; 366 | } 367 | }) 368 | 369 | Mousetrap.bind(['f5'],function(){location.reload();}) 370 | 371 | Mousetrap.bind('v',function(){ 372 | switch(app.state){ 373 | 374 | case 'tvshow': 375 | var episode = $('#slider_tvshow .episode.khover'); 376 | if(episode.length) 377 | episode.children('.pseudo_click_listener').click(); 378 | break 379 | 380 | } 381 | }) 382 | 383 | Mousetrap.bind(['f','insert'],function(){ 384 | switch(app.state){ 385 | 386 | case 'movie': 387 | $('#slider_movie .fav-btn').click(); 388 | break 389 | 390 | case 'mainWindow': 391 | $('#movies_catalog .khover .fav-btn').click() 392 | break; 393 | 394 | } 395 | }) 396 | 397 | Mousetrap.bind('q',function(){ 398 | switch(app.state){ 399 | 400 | case 'movie': 401 | var next_quality = $('#slider_movie .quality_selector.activated').next('.enabled'); 402 | if(next_quality.length){ 403 | next_quality.click(); 404 | } 405 | else 406 | $('#slider_movie .quality_selector.enabled').first().click(); 407 | 408 | break 409 | 410 | } 411 | }) 412 | 413 | Mousetrap.bind('t',function(){ 414 | switch(app.state){ 415 | 416 | case 'movie': 417 | if($('#slider_movie .trailer').is(':visible')) 418 | $('#slider_movie .trailer').click(); 419 | break 420 | 421 | } 422 | }) 423 | 424 | Mousetrap.bind('b',function(){ 425 | switch(app.state){ 426 | 427 | case 'mainWindow': 428 | $('#menu_panel .favs').click(); 429 | break 430 | 431 | } 432 | }) 433 | 434 | }, 435 | 436 | }; 437 | --------------------------------------------------------------------------------