amilajack / popcorn-time-desktop Goto Github PK
View Code? Open in Web Editor NEW๐ฟ ๐ ๐ A Modern Popcorn Time Client
License: MIT License
๐ฟ ๐ ๐ A Modern Popcorn Time Client
License: MIT License
I enter a show, click a different episode or season... nothing happens. I can't switch. The ep or season aren't clickable at all.
On latest 0.0.6 alpha
MacOS Sierra
When playing through external players, such as chromecast and vlc, sleep needs to be prevented.
This would be great if you use the keyboard a lot and it would increase the flow of the client (IMO)
Thoughts?
I can't find any option to add subtitles. Drag/Drop subtitle file is also not working. (I am on 16A254g)
Retaining all the images that have been loaded into the application can have significant performance implications. Setting the src attribute of an img
element to a #
may be enough to garbage collect it:
document.getElementById('img').src = "#";
There is only a mac binary there. I tried to build linux x86_64 but failed miserably.
assert.js:89
throw new assert.AssertionError({
^
AssertionError: Current node version is not supported for development, expected "4.5.0" to satisfy "6.x".
at Object.<anonymous> (/tmp/popcorn-time-desktop/node_modules/fbjs-scripts/node/check-dev-engines.js:39:3)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Function.Module.runMain (module.js:441:10)
at startup (node.js:139:18)
at node.js:974:3
I'm guessing here that probably is the version of nodejs of my distro... but anyway, I'm just a simple user. So, could you please add some binary for linux x86_64?
When I switched off Internet, and opened up the application, it just shows the loading symbol. No notification saying that it was unable to connect to the Internet.
Same thing happens if I switch off the Internet while using the application. I try to scroll, and it just shows that it's loading and it goes on infinitely. No notification of "No Internet connectivity".
I think there should be some notification saying that there are some Internet connectivity issues.
I have contributed to FreeCodeCamp and they have a very nice Issue and PR templates.
And when PRs are merged, the corresponding Issue mentioned in the template is closed. I don't know how it happens, but somewhere it was mentioned that GitHub does it automatically. Do check out about it.
And Issue template is very useful. You can ask if the person is a user/tester/ developer and you can ask the version of the App he/she is using, for testers(or) the branch he/she is on, for developers and ask them the issue's description, their OS details and then may be even a screenshot. You can add more to the template. The above was was just a suggestion. And yeah, this will make the issue more elaborate and you won't have to ask redundant questions to the people who report the issues.
Hi,
First of all, thanks for working on this. After looking around your codebase, I have some suggestions:
/app/api/Player.js
.document.querySelector('.plyr')
can be document.getElementsByClassName('plyr').first
. I admit it's more to type but if you do some benchmark, you'll see the different between themI can send a PR if you're interested in this
These are good blog posts outlining a migration path to webpack 2:
https://blog.engineyard.com/2016/tree-shaking
https://gist.github.com/nikolasleblanc/b7680bfa8aa007fd84ffc8a32db613ea
I've noticed that certain movies or tv shows do not play sound corrrectly. This may be because of the file format of certain torrents. Possible places of error: electron support for mkv, peerflix
After finishing an TV episode, the next one doesn't load up correctly. It either always loads the one I just watched when switching to a new ep, or it loads only audio, with placeholder image on the viewer.
PT 0.0.5-alpha
Mac OS Sierra Golden Master
I'm having a hard time setting the dev environment on both Windows and ElementaryOS.
The install stucks at this step:
> [email protected] postinstall /home/khoa/web/popcorn/node_modules/wcjs-prebuilt
> node install.js
Fetching WebChimera prebuilt for Electron:
WebChimera version: v0.2.6
Electron version: v1.2.6
Platform: linux
Arch: x64
Target dir: ./bin
Looking for WebChimera download at https://api.github.com/repos/RSATom/WebChimera.js/releases/tags/v0.2.6
WebChimera.js_electron_0.33.9_ia32_win.zip doesn't include VLC
WebChimera.js_electron_0.37.6_ia32_win.zip doesn't include VLC
WebChimera.js_electron_0.37.6_x64_osx.zip doesn't include VLC
WebChimera.js_electron_0.37.8_ia32_win.zip doesn't include VLC
WebChimera.js_electron_0.37.8_x64_osx.zip doesn't include VLC
WebChimera.js_electron_1.2.6_ia32_win.zip doesn't include VLC
WebChimera.js_electron_1.2.6_x64_osx.zip doesn't include VLC
WebChimera.js_electron_1.2.6_x64_win.zip doesn't include VLC
WebChimera.js_nw_0.15.4_ia32_win.zip doesn't include VLC
WebChimera.js_nw_0.15.4_x64_osx.zip doesn't include VLC
WebChimera.js_nw_0.15.4_x64_win.zip doesn't include VLC
WebChimera.js_v0.2.6_electron_v0.33.9_VLC_v2.2.4_ia32_win.zip not matching environment
WebChimera.js_v0.2.6_electron_v0.37.6_VLC_v2.2.4_ia32_win.zip not matching environment
WebChimera.js_v0.2.6_electron_v0.37.6_VLC_v2.2.4_x64_osx.tar.gz not matching environment
WebChimera.js_v0.2.6_electron_v0.37.8_VLC_v2.2.4_ia32_win.zip not matching environment
WebChimera.js_v0.2.6_electron_v0.37.8_VLC_v2.2.4_x64_osx.tar.gz not matching environment
WebChimera.js_v0.2.6_electron_v1.2.6_VLC_v2.2.4_ia32_win.zip not matching environment
WebChimera.js_v0.2.6_electron_v1.2.6_VLC_v2.2.4_x64_osx.tar.gz not matching environment
WebChimera.js_v0.2.6_electron_v1.2.6_VLC_v2.2.4_x64_win.zip not matching environment
WebChimera.js_v0.2.6_nw_v0.15.4_VLC_v2.2.4_ia32_win.zip not matching environment
WebChimera.js_v0.2.6_nw_v0.15.4_VLC_v2.2.4_x64_osx.tar.gz not matching environment
WebChimera.js_v0.2.6_nw_v0.15.4_VLC_v2.2.4_x64_win.zip not matching environment
No WebChimera release found matching your environment
Did you setup an dev environment on ElementaryOS ? Any advice?
I tried working on this and using preact-compat
but every time the app runs, this error appears:
I commit a lot and this is pretty annoying to me. I think that you only need to run test before pushing to remote server since you can make a mess in a branch and then rebase it.
@amilajack
I use Ubuntu. I was checking for .deb files in the latest release and couldn't find one. Can you please build it for Debian Distributions too ?
On MacOs Sierra, the official popcorn time doesn't work. This fork is working and starting to have faith on it, since the original popcorn time using custom made NWjs which is seem buggy on Sierra.
I guess this version of popcorn time will be a good alternative.
Anyway. Any plan for adding subtitle support ?
I am in the release-0.0.6-alpha
branch. I have built using it and I have noticed that the Tv Shows section wouldn't show up, instead only the Movies section would be visible even after clicking Shows
. But when I did testing using npm run test
, somehow my tests passed a few times, but a while ago they didn't pass. An error showed up and said the Shows section isn't shown, which is true.
And after trying the test command a few more times, the tests finally started to pass and the Shows section actually showed up while doing npm run test
.
What is this strange behavior ? And when I package the App, the Tv Shows section is visible perfectly. But that can possible because of Webpack's different environments for production and developement.
But why does this strange behavior happen even within different tests on the Dev build ?
When the electron application starts i get a 404 not found for bundle.js
I'm using Windows 10 and Node version 6.5
we can use this thread for discussion
@amilajack Hey, I got the App's src files and npm packages and modified some source code and finally did
npm run dev
and was trying to watch a movie. But all it said was "Fetching torrents". Later, I discarded all my changes and tried it all again and still wasn't able to get the torrents loaded.
I was confused, and then I deleted everything and got all the src files again from scratch and redid everything. Still wasn't able to load the torrents. Finally to be sure, I packaged the App using
npm run package
and it packaged the App in the releases
directory and when I run the packaged App, I am able to fetch the torrents and the "Start 720p" and other buttons get enabled. I am pretty confused now.
What have I done wrong ? Is it something about the .env
file ? But I just copied it from the .env.example
file and never changed it. And I think it looks fine.
And when I do API tests using npm run test-api
, a lot of tests are failing, including "getting torrents and their magnets for 720p and 1080p" test. I am attaching the images of the test over here.
Please do help me with this!
Currently, this feature doesn't work correctly. It fetches subtitles for the correct show/movie but it retrieves subtitles with different starting times. This means that movies and subtitles are usually out of sync.
Waiting on vankasteelj/opensubtitles-api#16
We cant run flow with any meaningful effect until we have type declarations for our dependencies. Unfortunately, there currently isn't a programatic way of doing this.
Possible solution: Convert Typescript Definitions to Flow
This can be solved by limiting the maximum number of connections that the torrent clients can make. Ideally, this would be configured by an ENV
variable.
Currently, torrent playback isnt tested at all. (capture-frame)[https://github.com/feross/capture-frame] will allow us to easily capture the video playback in intervals and diff the images to see if they movie is in fact playing.
This line is holding back support for external playback methods (vlc, dlna, chromecast, airplay). When webpack bundles, the files loaded through ProtoBuf.loadProtoFile
are not included because they are not imported natively through require
. So in this cannot be solved by Webpack's ContextReplacementPlugin.
A possible solution that I have this is extremely hacky.
First, use good old sed
to change the path this line to this:
var builder = ProtoBuf.loadProtoFile("./cast_channel.proto");
at postinstall time (in postinstall.js
).
Note that this can also easily be done in a fork, which I've already done.
Then, we'll need to copy that file and its dependencies that are not bundled with webpack ('cast_channel.proto'). They'll need to be moved to the app/dist
directory.
In previous versions, the data was either saved in
var/folders/tx....
OR
tmp/PopcornTime
In v0.0.5, I don't see them there.
@amilajack I see that the port 9090 has been used as a static port for serving the video, srt and the image files. But what happens if the port has already been occupied by some other software or by the user ( considering if the user is a developer running a web server or something ).
I think it's a bad idea to use a static port. And even if the user is a developer, he/she would have a hard time finding out why the video doesn't play in the application. I found out that the files are being served through a local server when I opened up a video in VLC. And VLC said "localhost:9090" at the place where subtitles are shown.
I started experimenting and found out that only a static port is used and there is no notification shown in the application saying some error occurred. It just says "Loading torrent..." or it shows the play symbol in the default player, but of course, doesn't play, since I was already running a dummy server at port 9090 to do the testing.
And from my testing, I see that the local server stops ( if it was already started ) when I go back to the main page of the application. And it starts again when I click "Start" in the movie pages, didn't check for TV Shows. Assuming something similar happens there.
A decent fix would be - whenever the start is gonna start, look for open ports and start the server and listen with that port.
Shall I take this issue up and fix it ?
The slow down the download time of movies. They have a pretty noticeable impact, since subtitles are downloaded at a higher priority than the movie. The current implementation also does not start the movie until the subtitles have been download.
A possible solution to this is to asynchronously add the subtitles instead synchronously waiting on them.
When using this method, show torrents are almost always guaranteed but it retrieving complete show torrents uses a significant amount of memory and causes the main process to drop frames.
Possible solutions include
childProcess
Design seems to be broken, compared to the images shown here.
Sometimes a show with multiple seasons, the first season's episode list loads but you can't see a link for season 1 on the sidebar, only season 2 and next.
PT 0.0.5-alpha
Mac OS Sierra Golden Master
Not sure if this is a known issue or not but the audio works fine when using VLC instead. Could it be the video format? (Only happens on some videos)
If you want to test or anything I was trying to watch: South Park > Season 18 > Episode 2 (720p)
I'm also using the latest public beta version 0.05 on MacOS Sierra.
Thanks for all you do. Super hyped for the next release, this app is great!
Here are my reasons/thoughts on transitioning towards flow.
1. Learning Barrier: Ideally, people that know standard Javascript should be able to contribute. Flow isn't that hard to learn and its pretty easy to learn.
Note that adding Flow support is a lower priority than enabling all the FP eslint rules
Thoughts?
When will the .exe file for testing.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.