Skip to content

Commit

Permalink
v1.0.0 (#262)
Browse files Browse the repository at this point in the history
* Initial commit

* Added CI support and release publishes for macOS

* CI fix attempt

* Add snap and AppImage targets for electron-builder

* Downgraded plyr, fixed subtitle fixed port, updated infra

* Skip movie playback e2e test

* Added test for player dropdown

* Fixed test preventing item page movie test playback

* Initial working tv shows fix

* Add yarn to travis cache (#260)

* Run `yarn build-e2e` in CI, disable unstable torrent providers

* Removed fixed torrent port 9090

* WIP: Add VSCode syntax highlighting for certain config files (#257)

* Update README.md

* Reduce cache timing of repo badges

* added vscode syntax highlighting for certain config files

* set .testcafe-electron-rc to be recognized as jsonc

* Fixed broken year for tv shows

* Fixed eslint errors

* Added wait timeout for fetching torrents

* Added necessary linux deps to travis ci

* Fixed torrent port issue

* WIP: Reactstrap Header (#272)

* Header reactstrapped & cleanup

* fix flow in header

* fix type imports

* removed unneeded void type declarations

* Video player upgrades (#274)

* Movie player upgrades

* fix(item): fix video item playback

* test(e2e): fix e2e tests by fixing Plyr component prop

* test(item): change close button from text to icon

* test(e2e): temporarily disable trailer feature

* test(ci): add spacing between configurations
  • Loading branch information
amilajack authored Aug 25, 2018
1 parent b40e229 commit 75f8c3f
Show file tree
Hide file tree
Showing 65 changed files with 3,053 additions and 1,880 deletions.
49 changes: 36 additions & 13 deletions .babelrc
Original file line number Diff line number Diff line change
@@ -1,23 +1,46 @@
{
"presets": [
["env", {
"targets": { "node": 10 },
"useBuiltIns": true
}],
"stage-0",
"react"
],
"plugins": [
"add-module-exports"
],
"presets": ["stage-0", "react"],
"env": {
"production": {
"presets": ["react-optimize"],
"presets": [
[
"env",
{
"targets": { "node": 10 },
"modules": false,
"useBuiltIns": true
}
],
"react-optimize"
],
"plugins": ["dev-expression"]
},
"test": {
"presets": [
[
"env",
{
"targets": { "node": 10 },
"useBuiltIns": true
}
]
],
"plugins": [
"dev-expression"
"transform-class-properties",
"transform-es2015-classes",
"dynamic-import-node"
]
},
"development": {
"presets": [
[
"env",
{
"targets": { "node": 10 },
"useBuiltIns": true
}
]
],
"plugins": [
"transform-class-properties",
"transform-es2015-classes"
Expand Down
13 changes: 4 additions & 9 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -1,10 +1,5 @@
{
"extends": [
"airbnb",
"prettier",
"prettier/flowtype",
"prettier/react"
],
"extends": ["airbnb", "prettier", "prettier/flowtype", "prettier/react"],
"parser": "babel-eslint",
"env": {
"browser": true,
Expand Down Expand Up @@ -36,9 +31,9 @@
"no-use-before-define": "off",
"no-console": "off",
"promise/avoid-new": "off",
"react/sort-comp": ["error", {
"order": ["type-annotations", "properties", "constructor", "static-methods", "everything-else", "lifecycle", "render"]
}]
"react/sort-comp": "off",
"react/destructuring-assignment": "off",
"react/jsx-filename-extension": "off"
},
"settings": {
"import/extensions": [".jsx", ".js"],
Expand Down
93 changes: 63 additions & 30 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,52 +1,85 @@
sudo: required
sudo: true

dist: trusty
matrix:
include:
- os: osx
osx_image: xcode9.4
language: node_js
node_js:
- node
- 9
env:
- ELECTRON_CACHE=$HOME/.cache/electron
- ELECTRON_BUILDER_CACHE=$HOME/.cache/electron-builder
- os: linux
language: node_js
node_js:
- node
- 9
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-4.8
- icnsutils
- graphicsmagick
- xz-utils
- xorriso
- gcc-multilib
- g++-multilib
- rpm
- libavahi-compat-libdnssd-dev
- avahi-daemon
- avahi-discover
- libnss-mdns

language: node_js

node_js:
- 9
before_cache:
- rm -rf $HOME/.cache/electron-builder/wine

cache:
yarn: true
directories:
- node_modules
- app/node_modules
- "$(npm config get prefix)/lib/node_modules"
- flow-typed
- $(npm config get prefix)/lib/node_modules
- $HOME/.electron

addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-4.8
- icnsutils
- graphicsmagick
- xz-utils
- gcc-multilib
- g++-multilib
- rpm
- libavahi-compat-libdnssd-dev
- "$HOME/.cache/electron"
- "$HOME/.cache/electron-builder"
- "$HOME/docker"

before_install: yarn global add greenkeeper-lockfile@1

install:
- export CXX="g++-4.8"
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export CXX="g++-4.8"; fi
- yarn
- "/sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1280x1024x16"
- |
if [ "$TRAVIS_OS_NAME" == "linux" ]; then
/sbin/start-stop-daemon \
--start \
--quiet \
--pidfile /tmp/custom_xvfb_99.pid \
--make-pidfile \
--background \
--exec /usr/bin/Xvfb \
-- :99 -ac -screen 0 1280x1024x16
else
:
fi
before_script:
- export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start &
- sleep 3
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export DISPLAY=:99.0; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sh -e /etc/init.d/xvfb start; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sleep 3; fi
- greenkeeper-lockfile-update

script:
# - yarn lint
# - yarn test
- yarn package-ci
- yarn test-e2e
- yarn build-e2e
- yarn test-e2e --quarantine-mode

after_script: greenkeeper-lockfile-upload

env:
global:
secure: h08lERRuaRxR+8HLA8Z7DD/ZqK3iKL5l3mokNK18RxY5iFRdlZxRoIMLck8oXsrkiqIzI0Ah9a8I524wW9rqiuy0nw8V0QpbXyPQI7UXs1ZqiUcivyinc59juURE6rXFtnQVmL3W5bjjpiJRNSgw6T1j9Csls4cdH/OEEgUczP1a0ijFCAWszs1v3FYykhQ/2v5Dsji5ZV2IkXMelVu6FdWGjWHknmpfemCogqGB9z6wHCONfGXBF+HGI1pJPnva0pnLVVUb8Qy8RK/sQ8Qn3eGYDlSMDZiRwd9zDmqQvCTMeEbU9Gs8QmmgelKqmNBN6FPHElNsJq1B8Z4X7rnaR/jNbbfZanmZvt+nL5j6SRVn96IwDlXufS4IfhSo56d9Eervvyz1nWQB0KnUVBf8UV7s2U9dpw/RCYDKR1mVFGYpQT+0d9cbxrEau1pVDbl9Hj5dubG99fUHNS5uwef/UuSn/oAOw9crAzOCtfSfOBc5jrpDlj4/QEcCGcR58GvR2awF2mxw39WlgQt5YJr2Zbzzrhr2pd/F991J5wmynhxjfD2DXEwxqteaEDJa4fTPjS2UDIRHjLqxWwirXzFCaHFV9449Tnp7SpYuzbYeu81yzq1XIS8zzla3nQ/GY+By78ny6twgnNSPdNAk8dAA3MPGEpWzRphOmGrM1ubKt34=
14 changes: 14 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
{
"files.associations": {
".stylelintrc": "jsonc",
".testcafe-electron-rc": "jsonc",

".env": "ignore",
".env.example": "ignore",
".eslintignore": "ignore",
".flowconfig": "ignore"
},

"javascript.validate.enable": false,
"javascript.format.enable": false,
"typescript.validate.enable": false,
"typescript.format.enable": false,

"flow.useNPMPackagedFlow": true,
"search.exclude": {
".git": true,
Expand Down
25 changes: 20 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,24 @@
# PopcornTime Experimental Version History
## v0.0.8

### Dev

- Significant infrastructural and testing enhancements

## v0.0.5-alpha

### API

- CC support (opensubtitles, etc), SubtitleAdapter
- Favorites, Watch List, Recently Watched

### Dev

- Drop Webchimera support, migrate to native
- Add initial Flow support
- Add initial Redux support

### Feature

- Embedded subtitle support, **behind flag**
- Support external playback methods, **behind flag**
- Save preferences/App State to `~/.popcorn-time-desktop/{config, cache}.json`
Expand All @@ -20,44 +27,52 @@
- Half-star ratings

### Perf

- Infinite scrolling performance improvements

## v0.0.4-alpha

### Feature

- Significant improvements in tv shows seeder count
- Query Season torrents and play individual episodes for increased torrent seeders **(HUGE seeder count win)**
- Get network speed, download speed, other diagnostic information
- Get torrent download speed, progress in percentage and mb
- Filter torrents with low seeder count

### API
- Set a timeout for `TorrentProvider`'s, should fail and return if they exceed the timeout

- Set a timeout for `TorrentProvider`'s, should fail and return if they exceed the timeout
- Get status of all `Providers` to notify users of endpoint downtime
- Metadata and Torrent API caching for faster responses

### Dev

- Screenshot testing
- Migrated to `webtorrent` from `peerflix`

## v0.0.3-alpha

### API

- Added concatenated torrent metadata (name, title, etc) as single metadata property, allow for imporoved torrent heuristics
- Added season summary to MetadataAdapter
- Added season summary to MetadataAdapter

### Dev

- Added support for non-native video formats using WebChimera, macOS, Windows
- Stabilized WebChimera, provide proper fallback methods, progress and buffering loading bindings
- Added initial electron-builder support

### Feature:

- Warn user if seeders count is low

## v0.0.2-alpha

### Features
* Initial support for TV shows
* Improved Butter API, added KatShowsTorrentProvider for further torrent support
* Fixed issue preventing search pagination

- Initial support for TV shows
- Improved Butter API, added KatShowsTorrentProvider for further torrent support
- Fixed issue preventing search pagination
25 changes: 19 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,22 +43,34 @@

## Requirements:

* [Node >= 10](https://nodejs.org)
* For packaging, see [packaging requirements](https://github.com/amilajack/popcorn-time-desktop/wiki/Packaging-Requirements)
- [Node >= 10](https://nodejs.org)
- For packaging, see [packaging requirements](https://github.com/amilajack/popcorn-time-desktop/wiki/Packaging-Requirements)

## Getting started:

- **I am a tester:** Download the latest build from the [releases](https://github.com/amilajack/popcorn-time-desktop/releases) section.

- **I am a developer:** Compile the project with the installation steps below.

## Requirements:

- [Node >= 10](https://nodejs.org)
- Mac, Linux, Windows
- For packaging, see [packaging requirements](https://github.com/amilajack/popcorn-time-desktop/wiki/Packaging-Requirements)
- For casting support, you will need to [satisfy mdns's requirements](https://github.com/agnat/node_mdns#installation)

## Installation:

```bash
git clone https://github.com/amilajack/popcorn-time-desktop.git
cd popcorn-time-desktop

# 💡 For casting support, you will need to satisfy mdns's requirements:
# For windows install bonjour: https://support.apple.com/downloads/bonjour_for_windows
# For linux, make sure you have these dependencies installed with apt-get: https://github.com/amilajack/popcorn-time-desktop/blob/v1.0.0/.travis.yml#L26-L38

# Install dependencies
# Have a cup of coffee ☕️ this might take a while
# Run `yarn electron-rebuild` if get a 'module version mismatch' error
yarn

# Customize Build
Expand All @@ -70,21 +82,22 @@ yarn dev

# Production build
yarn package

# 💡 For casting support, you will need to satisfy mdns's requirements:
# https://github.com/agnat/node_mdns#installation
```

## Contributing:

Please see the [contributing guide](https://github.com/amilajack/popcorn-time-desktop/blob/master/CONTRIBUTING.md)

## Todos:

See the [roadmap](https://github.com/amilajack/popcorn-time-desktop/wiki/Road-Map-and-Progress) for the full list.

## Goals/Mockups:

### Home Page:

![Home Page](https://github.com/amilajack/popcorn-time-desktop-design/raw/master/Desktop.jpg)

### Movie Page:

![Movie page](https://raw.github.com/amilajack/popcorn-time-desktop/master/images/movie-page.jpg)
5 changes: 1 addition & 4 deletions app/actions/homePageActions.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
// @flow
import type {
activeModeOptionsType,
itemType
} from '../components/home/Home.jsx';
import type { activeModeOptionsType, itemType } from '../components/home/Home';

export function setActiveMode(
activeMode: string,
Expand Down
Loading

0 comments on commit 75f8c3f

Please sign in to comment.