Skip to content

Commit

Permalink
misc
Browse files Browse the repository at this point in the history
  • Loading branch information
amilajack committed Apr 16, 2020
1 parent 78a864c commit a1b359b
Show file tree
Hide file tree
Showing 91 changed files with 1,151 additions and 962 deletions.
50 changes: 20 additions & 30 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -1,34 +1,24 @@
{
"extends": [
"airbnb",
"bliss"
],
"parser": "babel-eslint",
"env": {
"browser": true,
"node": true
module.exports = {
extends: 'erb/typescript',
rules: {
// A temporary hack related to IDE not resolving correct package.json
'import/no-extraneous-dependencies': 'off',
"@typescript-eslint/no-implied-eval": "off",
"@typescript-eslint/no-throw-literal": "off",
"react/state-in-constructor": "off"
},
"rules": {
"class-methods-use-this": "off",
"no-let": "off",
"no-plusplus": "off",
"no-console": "off",
"promise/avoid-new": "off",
"react/sort-comp": "off",
"react/static-property-placement": "off",
"react/jsx-props-no-spreading": "off",
"react/state-in-constructor": "off",
"react/jsx-filename-extension": "off",
"import/no-extraneous-dependencies": "off",
"no-nested-ternary": "off"
parserOptions: {
project: {
tsconfigRootDir: __dirname
}
},
"settings": {
"import/extensions": [
".jsx",
".js"
],
"webpack": {
"config": "./configs/webpack.config.eslint.babel.js"
settings: {
'import/resolver': {
// See https://github.com/benmosher/eslint-plugin-import/issues/1396#issuecomment-575727774 for line below
node: {},
webpack: {
config: require.resolve('./configs/webpack.config.eslint.js')
}
}
}
}
};
6 changes: 0 additions & 6 deletions .stylelintrc

This file was deleted.

1 change: 0 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,6 @@ install:
before_script:
- 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

script:
Expand Down
7 changes: 0 additions & 7 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,10 @@
"files.associations": {
".stylelintrc": "jsonc",
".testcafe-electron-rc": "jsonc",

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

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

"search.exclude": {
".git": true,
".eslintcache": true,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import type { activeModeOptionsType, itemType } from "../components/home/Home";
import { ActiveModeOptions, Item } from "../components/home/Home";

export function setActiveMode(
activeMode: string,
activeModeOptions?: activeModeOptionsType = {}
activeModeOptions: ActiveModeOptions = {}
) {
return {
type: "SET_ACTIVE_MODE",
Expand All @@ -11,7 +11,7 @@ export function setActiveMode(
};
}

export function paginate(items: Array<itemType>) {
export function paginate(items: Array<Item>) {
return {
type: "PAGINATE",
items,
Expand Down
File renamed without changes.
19 changes: 9 additions & 10 deletions app/api/Butter.js → app/api/Butter.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
/**
* The highest level abstraction layer for querying torrents and metadata
*
*/
import TorrentAdapter from "./torrents/TorrentAdapter";
import {
Expand All @@ -25,15 +24,15 @@ export default class Butter {
return getTrending();
}

getMovies(page: number = 1, limit: number = 50) {
getMovies(page = 1, limit = 50) {
return getMovies(page, limit);
}

getMovie(itemId: string) {
return getMovie(itemId);
}

getShows(page: number = 1, limit: number = 50) {
getShows(page = 1, limit = 50) {
return getShows(page, limit);
}

Expand All @@ -53,7 +52,7 @@ export default class Butter {
return getEpisode(itemId, season, episode);
}

getSimilar(type: string = "movies", itemId: string) {
getSimilar(type = "movies", itemId: string) {
return getSimilar(type, itemId, 5);
}

Expand All @@ -67,33 +66,33 @@ export default class Butter {
itemId: string,
type: string,
extendedDetails: { [option: string]: string | number } = {},
returnAll: boolean = false
returnAll = false
) {
return TorrentAdapter(itemId, type, extendedDetails, returnAll);
}

search(query: string, page: number = 1) {
search(query: string, page = 1) {
return search(query, page);
}

getSubtitles(
itemId: string,
filename: string,
length: number,
metadata: Object
metadata: Record<string, any>
) {
return getSubtitles(itemId, filename, length, metadata);
}

favorites(method: string, metadata: Object) {
favorites(method: string, metadata?: Record<string, any>) {
return favorites(method, metadata);
}

recentlyWatched(method: string, metadata: Object) {
recentlyWatched(method: string, metadata: Record<string, any>) {
return recentlyWatched(method, metadata);
}

watchList(method: string, metadata: Object) {
watchList(method: string, metadata?: Record<string, any>) {
return watchList(method, metadata);
}
}
12 changes: 6 additions & 6 deletions app/api/Player.js → app/api/Player.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,21 @@ import childProcess from "child_process";
import network from "network-address";
import vlcCommand from "vlc-command";
import ChromecastPlayerProvider from "./players/ChromecastPlayerProvider";
import type { metadataType } from "./players/PlayerProviderInterface";
import { Metadata } from "./players/PlayerProviderInterface";

export type subtitleType = { kind: string, src: string, srclang: string };
export type Subtitle = { kind: string; src: string; srclang: string };

const { powerSaveBlocker } = remote;

export default class Player {
currentPlayer = "plyr";

powerSaveBlockerId: number;
powerSaveBlockerId?: number;

/**
* @private
*/
player: plyr;
player?: plyr;

static nativePlaybackFormats = [
"mp4",
Expand Down Expand Up @@ -64,8 +64,8 @@ export default class Player {
async initCast(
provider: ChromecastPlayerProvider,
streamingUrl: string,
metadata: metadataType,
subtitles: Array<subtitleType>
metadata: Metadata,
subtitles: Array<Subtitle>
) {
this.powerSaveBlockerId = powerSaveBlocker.start("prevent-app-suspension");
const addr = streamingUrl.replace("localhost", network());
Expand Down
16 changes: 8 additions & 8 deletions app/api/Subtitle.js → app/api/Subtitle.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,20 @@ import srt2vtt from "srt2vtt";
import rndm from "rndm";
import getPort from "get-port";

export type subtitleType = {
filename: string,
basePath: string,
port: number,
fullPath: string,
buffer: Buffer,
export type Subtitle = {
filename: string;
basePath: string;
port: number;
fullPath: string;
buffer: Buffer;
};

export default class SubtitleServer {
basePath = os.tmpdir();

server: express;

port: ?number;
port?: number;

async startServer(): Promise<void> {
// Find a port at runtime. Default to 4000 if it is available
Expand Down Expand Up @@ -53,7 +53,7 @@ export default class SubtitleServer {
}
}

convertFromBuffer(srtBuffer: Buffer): Promise<subtitleType> {
convertFromBuffer(srtBuffer: Buffer): Promise<Subtitle> {
const randomString = rndm(16);
const filename = `${randomString}.vtt`;
const { basePath, port } = this;
Expand Down
39 changes: 18 additions & 21 deletions app/api/Torrent.js → app/api/Torrent.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
/**
* Torrents controller, responsible for playing, stoping, etc
*
*/
import os from "os";
import WebTorrent from "webtorrent";
// 'get-port' lib doesn't work here for some reason. Not sure why
import findFreePort from "find-free-port";
import { isExactEpisode } from "./torrents/BaseTorrentProvider";

type metadataType = {
season: number,
episode: number,
activeMode: string,
type Metadata = {
season: number;
episode: number;
activeMode: string;
};

/**
Expand All @@ -20,7 +19,7 @@ type metadataType = {
export function selectSubtitleFile(
files: Array<{ name: string }> = [],
activeMode: string,
metadata: { season: number, episode: number }
metadata: { season: number; episode: number }
): { name: string } | boolean {
return (
files.find((file) => {
Expand All @@ -44,26 +43,26 @@ export function selectSubtitleFile(
}

export default class Torrent {
inProgress: boolean = false;
inProgress = false;

finished: boolean = false;
finished = false;

checkDownloadInterval: number;

engine: WebTorrent;

magnetURI: string;
magnetURI?: string;

server:
| {}
| {
close: () => void,
listen: (port: number) => void,
close: () => void;
listen: (port: number) => void;
};

async start(
magnetURI: string,
metadata: metadataType,
metadata: Metadata,
supportedFormats: Array<string>,
cb: (
servingUrl: string,
Expand Down Expand Up @@ -201,17 +200,15 @@ export default class Torrent {
}
}

type torrentSpeedsType = {
downloadSpeed: number,
uploadSpeed: number,
progress: number,
numPeers: number,
ratio: number,
type TorrentSpeeds = {
downloadSpeed: number;
uploadSpeed: number;
progress: number;
numPeers: number;
ratio: number;
};

export function formatSpeeds(
torrentSpeeds: torrentSpeedsType
): torrentSpeedsType {
export function formatSpeeds(torrentSpeeds: TorrentSpeeds): TorrentSpeeds {
const {
downloadSpeed,
uploadSpeed,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
//
import { set, get } from "../../utils/Config";
import type { contentType, methodType } from "./MetadataProviderInterface";
import { Content, Method } from "./MetadataProviderInterface";

type configType = "favorites" | "recentlyWatched" | "watchList";
type Config = "favorites" | "recentlyWatched" | "watchList";

export default class BaseMetadataProvider {
/**
Expand All @@ -12,7 +11,7 @@ export default class BaseMetadataProvider {
*
* @private
*/
updateConfig(type: configType, method: methodType, metadata: contentType) {
updateConfig(type: Config, method: Method, metadata: Content) {
const property = String(type);

switch (method) {
Expand Down
Loading

0 comments on commit a1b359b

Please sign in to comment.