-
Notifications
You must be signed in to change notification settings - Fork 414
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
213 changed files
with
4,477 additions
and
1,622 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,41 @@ | ||
# Copy this file to .env to make modifications | ||
|
||
# Base config | ||
MATOMO_URL=https://analytics.lbry.com/ | ||
MATOMO_ID=4 | ||
WEBPACK_WEB_PORT=9090 | ||
WEBPACK_ELECTRON_PORT=9091 | ||
WEB_SERVER_PORT=1337 | ||
DOMAIN=lbry.tv | ||
URL=https://lbry.tv | ||
SITE_TITLE=lbry.tv | ||
LOGO_TITLE=LBRY | ||
LBRY_WEB_API=https://api.lbry.tv | ||
LBRY_WEB_STREAMING_API=https://cdn.lbryplayer.xyz | ||
WELCOME_VERSION=1.0 | ||
|
||
# Custom Site info | ||
DOMAIN=lbry.tv | ||
URL=https://lbry.tv | ||
# UI | ||
SITE_TITLE=lbry.tv | ||
SITE_NAME=LBRY | ||
SITE_DESCRIPTION=Meet LBRY, an open, free, and community-controlled content wonderland. | ||
LOGO_TITLE=lbry.tv | ||
SIMPLE_SITE=false | ||
# OG | ||
|
||
OG_TITLE_SUFFIX=| lbry.tv | ||
OG_HOMEPAGE_TITLE=lbry.tv | ||
OG_IMAGE_URL= | ||
SITE_CANONICAL_URL=https://lbry.tv | ||
# LOCALE | ||
DEFAULT_LANGUAGE=en | ||
MATOMO_URL=https://analytics.lbry.com/ | ||
MATOMO_ID=6 | ||
|
||
# Custom Content | ||
# If the following is true, copy custom/homepage.example.js to custom/homepage.js and modify | ||
CUSTOM_HOMEPAGE=false | ||
# Add channels to auto-follow on first run | ||
AUTO_FOLLOW_CHANNELS=lbry://@lbrycast#4c29f8b013adea4d5cca1861fb2161d5089613ea lbry://@lbry#3fda836a92faaceedfe398225fb9b2ee2ed1f01a | ||
# Add up to 2 sidebar links: | ||
# PINNED_URI_1=@Lbrylatam#2/Integracionesporseguridad#4 | ||
# PINNED_LABEL_1=LBRY LATAM | ||
# PINNED_URI_2=$/discover?t=lbrytvpaidbeta&fee_amount=>0&claim_type=stream&channel_ids=5af39f818f668d8c00943c9326c5201c4fe3c423,cda9c4e92f19d6fe0764524a2012056e06ca2055,760da3ba3dd85830a843beaaed543a89b7a367e7,40c36948f0da072dcba3e4833e90f71e16de78be,e8f68563d242f6ac9784dcbc41dd86c28a9391d6,7236fc5d2783ea7314d9076ae6c8a250e3992d1a,cf7792c2a37d0d76aaaff84aff0b99a8c791429d,8316ac90764fedf3147799b7b81a6575a9cc398e,8627af93c1a1219150f06b698f4b33e6ed2f1c1e,8972a1bd06de5186e5e89292b05aac8aaa817791,c5b0b17838df2f6c31162f64d55f60f34ae8bfc6,f576d5dba905fc179de880c3fe3eb3281ea74f59,97dd77c93c9603cbb2583f3589f7f5a6c92baa43,f399d873e0c37cf24de9569b5f22bbb30a5c6709,dba870d0620d41b2b9a152c961e0c06cf875ccfc,ca1fd651c9d14bf2e5088bb2aa0146ee7aeb2ae0,50ad846a4b1543b847bf3fdafb7b45f6b2f5844c,e09ff5abe9fb44dd0dd0576894a6db60a6211603,7b6f7517f6b816827d076fa0eaad550aa315a4e7,2068452c41d8da3bd68961335da0072a99258a1a,5da63df97c8255ae94a88940695b8471657dd5a1,3645cf2f5d0bdac0523f945be1c3ff60758f7845,4da85b12244839d6368b9290f1619ff9514ab2a8,4ad942982e43326c7700b1b6443049b3cfd82161,55304f219244abf82f684f759cc0c7769242f3b4,8f42e5b592bb7f7a03f4a94a86a41b1236bb099f,e2a014d885a48f5be2dc6409610996337312facb,c18996ca488753f714d36d4654715927c1d7f9c2,ebc4214424cfa683a7046e1f794fea1e44788d84,06b6d6d6a893fb589ec2ded948f5122856921ed5,07e4546674268fc0222b2ca22d31d0549dc217ee,060940e41973d4f7f16d72a2733138e931c35f41,f8d6eccd887c9cebd36b1d42aa349279b7f5c3ed,68098b8426f967b8d04cc566348b5c128823219e,2bfe6cdb24a21bdc1b76fb7c416edd50e9e85945,1f9bb08bfa2259629f4aaa9ed40f97e9a41b6fa1,2f20148495612946675fe1c8ea99171e4d950b81,bc6938fa1e09e840056c2e831abf9664f397c472,2a6194792beac5130641e932b5ac6e5a99b5ca4f,185ba2bd547a5e4a77d29fe6c1484f47db5e058f,29cc7f6081268eaa5b3f2946e0cd0b952a94812c,49389450b1241f5d8f4c8c4271a3eb56bba33965,ffdc62ac2f7549398d3aca9d2119e83d80d588d5,d7a4d2808074b0c55d6b239f69d90e7a4930f943,d58aa4a0b2f6c2504c3abce8de3f1afb71800acc,77ae23dc7eb8a75609881d4548a79e4935a89d37,f79bce8a60fbece671f6265adc39f6469f3b9b8c,051995fdf0af634e4911704057a551e9392e62b1 | ||
# PINNED_LABEL_2=Paid Beta | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
const path = require('path'); | ||
const fs = require('fs'); | ||
const packageJSON = require('../package.json'); | ||
const fetch = require('node-fetch'); | ||
const decompress = require('decompress'); | ||
const os = require('os'); | ||
const del = require('del'); | ||
|
||
const downloadLBRYFirst = targetPlatform => | ||
new Promise((resolve, reject) => { | ||
const lbryFirstURLTemplate = packageJSON.lbrySettings.LBRYFirstUrlTemplate; | ||
const lbryFirstVersion = packageJSON.lbrySettings.LBRYFirstVersion; | ||
const lbryFirstDir = path.join(__dirname, '..', packageJSON.lbrySettings.LBRYFirstDir); | ||
let lbryFirstFileName = packageJSON.lbrySettings.LBRYFirstFileName; | ||
|
||
const currentPlatform = os.platform(); | ||
|
||
let lbryFirstPlatform = process.env.TARGET || targetPlatform || currentPlatform; | ||
if (lbryFirstPlatform === 'linux') lbryFirstPlatform = 'Linux'; | ||
if (lbryFirstPlatform === 'mac' || lbryFirstPlatform === 'darwin') lbryFirstPlatform = 'Darwin'; | ||
if (lbryFirstPlatform === 'win32' || lbryFirstPlatform === 'windows') { | ||
lbryFirstPlatform = 'Windows'; | ||
lbryFirstFileName += '.exe'; | ||
} | ||
const lbryFirstFilePath = path.join(lbryFirstDir, lbryFirstFileName); | ||
const lbryFirstVersionPath = path.join(__dirname, 'lbryFirst.ver'); | ||
const tmpZipPath = path.join(__dirname, '..', 'dist', 'lbryFirst.zip'); | ||
const lbryFirstURL = lbryFirstURLTemplate.replace(/LBRYFIRSTVER/g, lbryFirstVersion).replace(/OSNAME/g, lbryFirstPlatform); | ||
console.log('URL:', lbryFirstURL); | ||
|
||
// If a lbryFirst and lbryFirst.ver exists, check to see if it matches the current lbryFirst version | ||
const hasLbryFirstDownloaded = fs.existsSync(lbryFirstFilePath); | ||
const hasLbryFirstVersion = fs.existsSync(lbryFirstVersionPath); | ||
let downloadedLbryFirstVersion; | ||
|
||
if (hasLbryFirstVersion) { | ||
downloadedLbryFirstVersion = fs.readFileSync(lbryFirstVersionPath, 'utf8'); | ||
} | ||
|
||
if (hasLbryFirstDownloaded && hasLbryFirstVersion && downloadedLbryFirstVersion === lbryFirstVersion) { | ||
console.log('\x1b[34minfo\x1b[0m LbryFirst already downloaded'); | ||
resolve('Done'); | ||
} else { | ||
console.log('\x1b[34minfo\x1b[0m Downloading lbryFirst...'); | ||
fetch(lbryFirstURL, { | ||
method: 'GET', | ||
headers: { | ||
'Content-Type': 'application/zip', | ||
}, | ||
}) | ||
.then(response => response.buffer()) | ||
.then( | ||
result => | ||
new Promise((newResolve, newReject) => { | ||
const distPath = path.join(__dirname, '..', 'dist'); | ||
const hasDistFolder = fs.existsSync(distPath); | ||
|
||
if (!hasDistFolder) { | ||
fs.mkdirSync(distPath); | ||
} | ||
|
||
fs.writeFile(tmpZipPath, result, error => { | ||
if (error) return newReject(error); | ||
return newResolve(); | ||
}); | ||
}) | ||
) | ||
.then(() => del(`${lbryFirstFilePath}*`)) | ||
.then() | ||
.then(() => | ||
decompress(tmpZipPath, lbryFirstDir, { | ||
filter: file => path.basename(file.path) === lbryFirstFileName, | ||
}) | ||
) | ||
.then(() => { | ||
console.log('\x1b[32msuccess\x1b[0m LbryFirst downloaded!'); | ||
if (hasLbryFirstVersion) { | ||
del(lbryFirstVersionPath); | ||
} | ||
|
||
fs.writeFileSync(lbryFirstVersionPath, lbryFirstVersion, 'utf8'); | ||
resolve('Done'); | ||
}) | ||
.catch(error => { | ||
console.error(`\x1b[31merror\x1b[0m LbryFirst download failed due to: \x1b[35m${error}\x1b[0m`); | ||
reject(error); | ||
}); | ||
} | ||
}); | ||
|
||
downloadLBRYFirst(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
import path from 'path'; | ||
import { spawn, execSync } from 'child_process'; | ||
|
||
export default class LbryFirstInstance { | ||
static lbryFirstPath = | ||
process.env.LBRY_FIRST_DAEMON || | ||
(process.env.NODE_ENV === 'production' | ||
? path.join(process.resourcesPath, 'static/lbry-first', 'lbry-first') | ||
: path.join(__static, 'lbry-first/lbry-first')); | ||
|
||
static headersPath = | ||
process.env.LBRY_FIRST_DAEMON || | ||
(process.env.NODE_ENV === 'production' | ||
? path.join(process.resourcesPath, 'static/lbry-first', 'headers') | ||
: path.join(__static, 'lbry-first/headers')); | ||
|
||
subprocess; | ||
handlers; | ||
|
||
constructor() { | ||
this.handlers = []; | ||
} | ||
|
||
launch() { | ||
let flags = ['serve']; | ||
console.log(`LbryFirst: ${LbryFirstInstance.lbryFirstPath}`); | ||
this.subprocess = spawn(LbryFirstInstance.lbryFirstPath, flags); | ||
this.subprocess.stdout.on('data', data => console.log(`LbryFirst: ${data}`)); | ||
this.subprocess.stderr.on('data', data => console.error(`LbryFirst: ${data}`)); | ||
this.subprocess.on('exit', () => this.fire('exit')); | ||
this.subprocess.on('error', error => console.error(`LbryFirst error: ${error}`)); | ||
} | ||
|
||
quit() { | ||
if (process.platform === 'win32') { | ||
try { | ||
execSync(`taskkill /pid ${this.subprocess.pid} /t /f`); | ||
} catch (error) { | ||
console.error(error.message); | ||
} | ||
} else { | ||
this.subprocess.kill(); | ||
} | ||
} | ||
|
||
// Follows the publish/subscribe pattern | ||
|
||
// Subscribe method | ||
on(event, handler, context = handler) { | ||
this.handlers.push({ event, handler: handler.bind(context) }); | ||
} | ||
|
||
// Publish method | ||
fire(event, args) { | ||
this.handlers.forEach(topic => { | ||
if (topic.event === event) topic.handler(args); | ||
}); | ||
} | ||
} |
Oops, something went wrong.