Revert "rm lbry.tv, rm lbryfirst, rm DOMAIN, etc"

This reverts commit 041127bbce.
This commit is contained in:
jessopb 2021-12-04 22:20:24 -05:00
parent 797c18fd15
commit 5be27a5e2c
20 changed files with 151 additions and 89 deletions

View file

@ -26,15 +26,14 @@ MATOMO_URL=https://analytics.lbry.com/
MATOMO_ID=4 MATOMO_ID=4
# OG # OG
OG_TITLE_SUFFIX=| LBRY OG_TITLE_SUFFIX=| lbry.tv
OG_HOMEPAGE_TITLE=LBRY OG_HOMEPAGE_TITLE=lbry.tv
OG_IMAGE_URL= OG_IMAGE_URL=
#SITE_CANONICAL_URL= SITE_CANONICAL_URL=https://lbry.tv
# UI # UI
## Custom Site info ## Custom Site info
DOMAIN=lbry.tv DOMAIN=lbry.tv
SHARE_DOMAIN_URL=odysee.com
URL=https://lbry.tv URL=https://lbry.tv
SITE_TITLE=LBRY SITE_TITLE=LBRY
SITE_NAME=LBRY SITE_NAME=LBRY
@ -44,7 +43,7 @@ LOGO_TITLE=LBRY
CLOUD_CONNECT_SITE_NAME=Odysee CLOUD_CONNECT_SITE_NAME=Odysee
## Social media ## Social media
TWITTER_ACCOUNT=LBRYcom TWITTER_ACCOUNT=LBRYcom
#BRANDED_SITE= BRANDED_SITE=odysee
## IMAGE ASSETS ## IMAGE ASSETS
YRBL_HAPPY_IMG_URL=https://cdn.lbryplayer.xyz/api/v3/streams/free/yrbl-happy/7aa50a7e5adaf48691935d55e45d697547392929/839d9a YRBL_HAPPY_IMG_URL=https://cdn.lbryplayer.xyz/api/v3/streams/free/yrbl-happy/7aa50a7e5adaf48691935d55e45d697547392929/839d9a

View file

@ -45,7 +45,7 @@ const config = {
YRBL_HAPPY_IMG_URL: process.env.YRBL_HAPPY_IMG_URL, YRBL_HAPPY_IMG_URL: process.env.YRBL_HAPPY_IMG_URL,
YRBL_SAD_IMG_URL: process.env.YRBL_SAD_IMG_URL, YRBL_SAD_IMG_URL: process.env.YRBL_SAD_IMG_URL,
LOGIN_IMG_URL: process.env.LOGIN_IMG_URL, LOGIN_IMG_URL: process.env.LOGIN_IMG_URL,
// SITE_CANONICAL_URL: process.env.SITE_CANONICAL_URL, SITE_CANONICAL_URL: process.env.SITE_CANONICAL_URL,
DEFAULT_LANGUAGE: process.env.DEFAULT_LANGUAGE, DEFAULT_LANGUAGE: process.env.DEFAULT_LANGUAGE,
AUTO_FOLLOW_CHANNELS: process.env.AUTO_FOLLOW_CHANNELS, AUTO_FOLLOW_CHANNELS: process.env.AUTO_FOLLOW_CHANNELS,
UNSYNCED_SETTINGS: process.env.UNSYNCED_SETTINGS, UNSYNCED_SETTINGS: process.env.UNSYNCED_SETTINGS,

View file

@ -7,6 +7,7 @@ import https from 'https';
import { app, dialog, ipcMain, session, shell, BrowserWindow } from 'electron'; import { app, dialog, ipcMain, session, shell, BrowserWindow } from 'electron';
import { autoUpdater } from 'electron-updater'; import { autoUpdater } from 'electron-updater';
import Lbry from 'lbry'; import Lbry from 'lbry';
import LbryFirstInstance from './LbryFirstInstance';
import Daemon from './Daemon'; import Daemon from './Daemon';
import isDev from 'electron-is-dev'; import isDev from 'electron-is-dev';
import createTray from './createTray'; import createTray from './createTray';
@ -99,51 +100,51 @@ const startDaemon = async () => {
} }
}; };
// let isLbryFirstRunning = false; let isLbryFirstRunning = false;
// const startLbryFirst = async () => { const startLbryFirst = async () => {
// if (isLbryFirstRunning) { if (isLbryFirstRunning) {
// console.log('LbryFirst already running'); console.log('LbryFirst already running');
// handleLbryFirstLaunched(); handleLbryFirstLaunched();
// return; return;
// } }
//
// console.log('LbryFirst: Starting...'); console.log('LbryFirst: Starting...');
//
// try { try {
// lbryFirst = new LbryFirstInstance(); lbryFirst = new LbryFirstInstance();
// lbryFirst.on('exit', e => { lbryFirst.on('exit', e => {
// if (!isDev) { if (!isDev) {
// lbryFirst = null; lbryFirst = null;
// isLbryFirstRunning = false; isLbryFirstRunning = false;
// if (!appState.isQuitting) { if (!appState.isQuitting) {
// dialog.showErrorBox( dialog.showErrorBox(
// 'LbryFirst has Exited', 'LbryFirst has Exited',
// 'The lbryFirst may have encountered an unexpected error, or another lbryFirst instance is already running. \n\n', 'The lbryFirst may have encountered an unexpected error, or another lbryFirst instance is already running. \n\n',
// e e
// ); );
// } }
// app.quit(); app.quit();
// } }
// }); });
// } catch (e) { } catch (e) {
// console.log('LbryFirst: Failed to create new instance\n\n', e); console.log('LbryFirst: Failed to create new instance\n\n', e);
// } }
//
// console.log('LbryFirst: Running...'); console.log('LbryFirst: Running...');
//
// try { try {
// await lbryFirst.launch(); await lbryFirst.launch();
// handleLbryFirstLaunched(); handleLbryFirstLaunched();
// } catch (e) { } catch (e) {
// isLbryFirstRunning = false; isLbryFirstRunning = false;
// console.log('LbryFirst: Failed to start\n', e); console.log('LbryFirst: Failed to start\n', e);
// } }
// }; };
//
// const handleLbryFirstLaunched = () => { const handleLbryFirstLaunched = () => {
// isLbryFirstRunning = true; isLbryFirstRunning = true;
// rendererWindow.webContents.send('lbry-first-launched'); rendererWindow.webContents.send('lbry-first-launched');
// }; };
// When we are starting the app, ensure there are no other apps already running // When we are starting the app, ensure there are no other apps already running
const gotSingleInstanceLock = app.requestSingleInstanceLock(); const gotSingleInstanceLock = app.requestSingleInstanceLock();
@ -399,15 +400,15 @@ ipcMain.on('version-info-requested', () => {
requestLatestRelease(); requestLatestRelease();
}); });
//
// ipcMain.on('launch-lbry-first', async () => { ipcMain.on('launch-lbry-first', async () => {
// try { try {
// await startLbryFirst(); await startLbryFirst();
// } catch (e) { } catch (e) {
// console.log('Failed to start LbryFirst'); console.log('Failed to start LbryFirst');
// console.log(e); console.log(e);
// } }
// }); });
process.on('uncaughtException', error => { process.on('uncaughtException', error => {
console.log(error); console.log(error);

View file

@ -111,7 +111,7 @@ Lbryio.getAuthToken = () =>
Lbryio.getCurrentUser = () => Lbryio.call('user', 'me'); Lbryio.getCurrentUser = () => Lbryio.call('user', 'me');
Lbryio.authenticate = (language) => { Lbryio.authenticate = (domain, language) => {
if (!Lbryio.enabled) { if (!Lbryio.enabled) {
const params = { const params = {
id: 1, id: 1,
@ -155,7 +155,10 @@ Lbryio.authenticate = (language) => {
.then( .then(
status => status =>
new Promise((res, rej) => { new Promise((res, rej) => {
const appId = status.installation_id; const appId =
domain && domain !== 'lbry.tv'
? (domain.replace(/[.]/gi, '') + status.installation_id).slice(0, 66)
: status.installation_id;
Lbryio.call( Lbryio.call(
'user', 'user',
'new', 'new',

View file

@ -1661,6 +1661,7 @@
"Short (< 4 minutes)": "Short (< 4 minutes)", "Short (< 4 minutes)": "Short (< 4 minutes)",
"Long (> 20 min)": "Long (> 20 min)", "Long (> 20 min)": "Long (> 20 min)",
"POWERED BY %lbry_link%": "POWERED BY %lbry_link%", "POWERED BY %lbry_link%": "POWERED BY %lbry_link%",
"Learn more about LBRY Credits on %DOMAIN%": "Learn more about LBRY Credits on %DOMAIN%",
"Results boosted by %lbc%": "Results boosted by %lbc%", "Results boosted by %lbc%": "Results boosted by %lbc%",
"This will be visible in a few minutes.": "This will be visible in a few minutes.", "This will be visible in a few minutes.": "This will be visible in a few minutes.",
"Turn on notifications": "Turn on notifications", "Turn on notifications": "Turn on notifications",
@ -2221,6 +2222,5 @@
"Your wallet is not currently using a cloud sync service. You are in control of backing up your wallet.": "Your wallet is not currently using a cloud sync service. You are in control of backing up your wallet.", "Your wallet is not currently using a cloud sync service. You are in control of backing up your wallet.": "Your wallet is not currently using a cloud sync service. You are in control of backing up your wallet.",
"Sending": "Sending", "Sending": "Sending",
"You sent %lbc%": "You sent %lbc%", "You sent %lbc%": "You sent %lbc%",
"Learn more about LBRY Credits": "Learn more about LBRY Credits",
"--end--": "--end--" "--end--": "--end--"
} }

View file

@ -1,5 +1,5 @@
// @flow // @flow
import { SHARE_DOMAIN_URL } from 'config'; import { URL, SHARE_DOMAIN_URL } from 'config';
import * as ICONS from 'constants/icons'; import * as ICONS from 'constants/icons';
import * as PAGES from 'constants/pages'; import * as PAGES from 'constants/pages';
import * as MODALS from 'constants/modal_types'; import * as MODALS from 'constants/modal_types';
@ -18,7 +18,7 @@ import {
import { useHistory } from 'react-router'; import { useHistory } from 'react-router';
import { buildURI, parseURI } from 'util/lbryURI'; import { buildURI, parseURI } from 'util/lbryURI';
const SHARE_DOMAIN = SHARE_DOMAIN_URL; const SHARE_DOMAIN = SHARE_DOMAIN_URL || URL;
const PAGE_VIEW_QUERY = 'view'; const PAGE_VIEW_QUERY = 'view';
const EDIT_PAGE = 'edit'; const EDIT_PAGE = 'edit';

View file

@ -1,4 +1,5 @@
// @flow // @flow
import { DOMAIN } from 'config';
import React from 'react'; import React from 'react';
import classnames from 'classnames'; import classnames from 'classnames';
import Button from 'component/button'; import Button from 'component/button';
@ -89,7 +90,7 @@ function CollectionForm(props: Props) {
onDone, onDone,
} = props; } = props;
const activeChannelName = activeChannelClaim && activeChannelClaim.name; const activeChannelName = activeChannelClaim && activeChannelClaim.name;
let prefix = 'lbry://'; let prefix = IS_WEB ? `${DOMAIN}/` : 'lbry://';
if (activeChannelName && !incognito) { if (activeChannelName && !incognito) {
prefix += `${activeChannelName}/`; prefix += `${activeChannelName}/`;
} }

View file

@ -1,3 +1,4 @@
import { DOMAIN } from 'config';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { doSetDaemonSetting } from 'redux/actions/settings'; import { doSetDaemonSetting } from 'redux/actions/settings';
import { doSetWelcomeVersion, doToggle3PAnalytics, doSignOut } from 'redux/actions/app'; import { doSetWelcomeVersion, doToggle3PAnalytics, doSignOut } from 'redux/actions/app';
@ -18,7 +19,8 @@ const perform = (dispatch) => ({
setShareDataInternal: (share) => dispatch(doSetDaemonSetting(DAEMON_SETTINGS.SHARE_USAGE_DATA, share)), setShareDataInternal: (share) => dispatch(doSetDaemonSetting(DAEMON_SETTINGS.SHARE_USAGE_DATA, share)),
setShareDataThirdParty: (share) => dispatch(doToggle3PAnalytics(share)), setShareDataThirdParty: (share) => dispatch(doToggle3PAnalytics(share)),
signOut: () => dispatch(doSignOut()), signOut: () => dispatch(doSignOut()),
authenticateIfSharingData: () => dispatch(doAuthenticate(appVersion, undefined, undefined, true)), authenticateIfSharingData: () =>
dispatch(doAuthenticate(appVersion, undefined, undefined, true, undefined, undefined, DOMAIN)),
}); });
export default connect(select, perform)(PrivacyAgreement); export default connect(select, perform)(PrivacyAgreement);

View file

@ -1,4 +1,5 @@
// @flow // @flow
import { DOMAIN } from 'config';
import { INVALID_NAME_ERROR } from 'constants/claim'; import { INVALID_NAME_ERROR } from 'constants/claim';
import React, { useState, useEffect } from 'react'; import React, { useState, useEffect } from 'react';
import { isNameValid } from 'util/lbryURI'; import { isNameValid } from 'util/lbryURI';
@ -31,7 +32,7 @@ function PublishName(props: Props) {
const [nameError, setNameError] = useState(undefined); const [nameError, setNameError] = useState(undefined);
const [blurred, setBlurred] = React.useState(false); const [blurred, setBlurred] = React.useState(false);
const activeChannelName = activeChannelClaim && activeChannelClaim.name; const activeChannelName = activeChannelClaim && activeChannelClaim.name;
let prefix = 'lbry://'; let prefix = IS_WEB ? `${DOMAIN}/` : 'lbry://';
if (activeChannelName && !incognito) { if (activeChannelName && !incognito) {
prefix += `${activeChannelName}/`; prefix += `${activeChannelName}/`;
} }

View file

@ -10,6 +10,7 @@ import ClaimRepostAuthor from 'component/claimRepostAuthor';
import I18nMessage from 'component/i18nMessage'; import I18nMessage from 'component/i18nMessage';
import { useHistory } from 'react-router'; import { useHistory } from 'react-router';
import LbcSymbol from 'component/common/lbc-symbol'; import LbcSymbol from 'component/common/lbc-symbol';
import { DOMAIN } from 'config';
type Props = { type Props = {
query: string, query: string,
@ -81,7 +82,11 @@ export default function SearchTopClaim(props: Props) {
<div className="search__header"> <div className="search__header">
{winningUri && ( {winningUri && (
<div className="claim-preview__actions--header"> <div className="claim-preview__actions--header">
<a className="media__uri" href="https://lbry.com/faq/trending" title={__('Learn more about LBRY Credits.')}> <a
className="media__uri"
href="https://lbry.com/faq/trending"
title={__('Learn more about LBRY Credits on %DOMAIN%', { DOMAIN })}
>
<LbcSymbol prefix={__('Most supported')} /> <LbcSymbol prefix={__('Most supported')} />
</a> </a>
</div> </div>

View file

@ -2,6 +2,7 @@
import * as MODALS from 'constants/modal_types'; import * as MODALS from 'constants/modal_types';
import * as THUMBNAIL_STATUSES from 'constants/thumbnail_upload_statuses'; import * as THUMBNAIL_STATUSES from 'constants/thumbnail_upload_statuses';
import Lbry from 'lbry'; import Lbry from 'lbry';
import { DOMAIN } from 'config';
import * as React from 'react'; import * as React from 'react';
import { FormField } from 'component/common/form'; import { FormField } from 'component/common/form';
import FileSelector from 'component/common/file-selector'; import FileSelector from 'component/common/file-selector';
@ -183,7 +184,9 @@ function SelectThumbnail(props: Props) {
{status === THUMBNAIL_STATUSES.IN_PROGRESS && <p>{__('Uploading thumbnail')}...</p>} {status === THUMBNAIL_STATUSES.IN_PROGRESS && <p>{__('Uploading thumbnail')}...</p>}
{!thumbUploaded && ( {!thumbUploaded && (
<p className="help"> <p className="help">
{manualInput ? __('Enter a URL for your thumbnail.') : __('Upload your thumbnail. Recommended size is 16:9.')} {manualInput
? __('Enter a URL for your thumbnail.')
: __('Upload your thumbnail to %domain%. Recommended size is 16:9.', { domain: DOMAIN })}
</p> </p>
)} )}
</> </>

View file

@ -1,5 +1,5 @@
// @flow // @flow
import { SHARE_DOMAIN_URL } from 'config'; import { SHARE_DOMAIN_URL, URL } from 'config';
import React from 'react'; import React from 'react';
import { FormField } from 'component/common/form'; import { FormField } from 'component/common/form';
@ -32,7 +32,7 @@ function SettingShareUrl(props: Props) {
<FormField <FormField
type="radio" type="radio"
name="use_default_share_url" name="use_default_share_url"
label={__('Default share url (%name%)', { name: SHARE_DOMAIN_URL })} label={__('Default share url (%name%)', { name: SHARE_DOMAIN_URL || URL })}
checked={!customShareUrlEnabled} checked={!customShareUrlEnabled}
onChange={(e) => { onChange={(e) => {
if (e.target.checked) { if (e.target.checked) {

View file

@ -6,9 +6,11 @@ import * as KEYCODES from 'constants/keycodes';
import React from 'react'; import React from 'react';
import Button from 'component/button'; import Button from 'component/button';
import classnames from 'classnames'; import classnames from 'classnames';
import Icon from 'component/common/icon';
import NotificationBubble from 'component/notificationBubble'; import NotificationBubble from 'component/notificationBubble';
import I18nMessage from 'component/i18nMessage';
import ChannelThumbnail from 'component/channelThumbnail'; import ChannelThumbnail from 'component/channelThumbnail';
import { ENABLE_UI_NOTIFICATIONS } from 'config'; import { DOMAIN, ENABLE_UI_NOTIFICATIONS } from 'config';
import { IS_MAC } from 'component/app/view'; import { IS_MAC } from 'component/app/view';
const HOME = { const HOME = {
@ -247,6 +249,23 @@ function SideNavigation(props: Props) {
return () => window.removeEventListener('keydown', handleKeydown); return () => window.removeEventListener('keydown', handleKeydown);
}, [sidebarOpen, setSidebarOpen, isAbsolute]); }, [sidebarOpen, setSidebarOpen, isAbsolute]);
const unAuthNudge =
DOMAIN === 'lbry.tv' ? null : (
<div className="navigation__auth-nudge">
<span>
<I18nMessage tokens={{ lbc: <Icon icon={ICONS.LBC} /> }}>
Sign up to earn %lbc% for you and your favorite creators.
</I18nMessage>
</span>
<Button
button="secondary"
label={__('Sign Up')}
navigate={`/$/${PAGES.AUTH}?src=sidenav_nudge`}
disabled={user === null}
/>{' '}
</div>
);
const helpLinks = ( const helpLinks = (
<ul className="navigation__tertiary navigation-links--small"> <ul className="navigation__tertiary navigation-links--small">
<li className="navigation-link"> <li className="navigation-link">
@ -326,6 +345,8 @@ function SideNavigation(props: Props) {
))} ))}
</ul> </ul>
)} )}
{!isAuthenticated && sidebarOpen && unAuthNudge}
</div> </div>
{sidebarOpen && helpLinks} {sidebarOpen && helpLinks}
@ -400,6 +421,7 @@ function SideNavigation(props: Props) {
))} ))}
</ul> </ul>
)} )}
{!isAuthenticated && unAuthNudge}
</div> </div>
</nav> </nav>
<div <div

View file

@ -9,9 +9,9 @@ import { useIsMobile } from 'effects/use-screensize';
import { FormField } from 'component/common/form'; import { FormField } from 'component/common/form';
import { hmsToSeconds, secondsToHms } from 'util/time'; import { hmsToSeconds, secondsToHms } from 'util/time';
import { generateLbryContentUrl, generateLbryWebUrl, generateEncodedLbryURL, generateShareUrl } from 'util/url'; import { generateLbryContentUrl, generateLbryWebUrl, generateEncodedLbryURL, generateShareUrl } from 'util/url';
import { TWITTER_ACCOUNT, SHARE_DOMAIN_URL } from 'config'; import { URL, TWITTER_ACCOUNT, SHARE_DOMAIN_URL } from 'config';
const SHARE_DOMAIN = SHARE_DOMAIN_URL; const SHARE_DOMAIN = SHARE_DOMAIN_URL || URL;
const IOS = !!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform); const IOS = !!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform);
const SUPPORTS_SHARE_API = typeof navigator.share !== 'undefined'; const SUPPORTS_SHARE_API = typeof navigator.share !== 'undefined';

View file

@ -88,6 +88,7 @@ export default function TagsSearch(props: Props) {
} }
}); });
// const countWithoutLbryFirst = selectedTagsSet.has('lbry-first') ? selectedTagsSet.size - 1 : selectedTagsSet.size;
const maxed = Boolean(limitSelect && countWithoutSpecialTags >= limitSelect); const maxed = Boolean(limitSelect && countWithoutSpecialTags >= limitSelect);
const suggestedTags = Array.from(suggestedTagsSet).filter(doesTagMatch).slice(0, limitShow); const suggestedTags = Array.from(suggestedTagsSet).filter(doesTagMatch).slice(0, limitShow);

View file

@ -1,5 +1,6 @@
// @flow // @flow
import * as PAGES from 'constants/pages'; import * as PAGES from 'constants/pages';
import { DOMAIN } from 'config';
import React, { useState } from 'react'; import React, { useState } from 'react';
import { FormField, Form } from 'component/common/form'; import { FormField, Form } from 'component/common/form';
import Button from 'component/button'; import Button from 'component/button';
@ -94,7 +95,7 @@ function UserEmailNew(props: Props) {
title={__('Cloud Connect')} title={__('Cloud Connect')}
subtitle={__('Connect your wallet to Odysee')} subtitle={__('Connect your wallet to Odysee')}
actions={ actions={
<div> <div className={classnames({ 'card--disabled': DOMAIN === 'lbry.tv' && IS_WEB })}>
<Form onSubmit={handleSubmit} className="section"> <Form onSubmit={handleSubmit} className="section">
<FormField <FormField
autoFocus autoFocus

View file

@ -1,4 +1,5 @@
// @flow // @flow
import { DOMAIN, ENABLE_NO_SOURCE_CLAIMS } from 'config';
import * as ICONS from 'constants/icons'; import * as ICONS from 'constants/icons';
import * as PAGES from 'constants/pages'; import * as PAGES from 'constants/pages';
import * as CS from 'constants/claim_search'; import * as CS from 'constants/claim_search';
@ -65,7 +66,11 @@ function DiscoverPage(props: Props) {
function getElemMeta() { function getElemMeta() {
return !dynamicRouteProps ? ( return !dynamicRouteProps ? (
<a className="help" href="https://lbry.com/faq/trending" title={__('Learn more about LBRY Credits')}> <a
className="help"
href="https://lbry.com/faq/trending"
title={__('Learn more about LBRY Credits on %DOMAIN%', { DOMAIN })}
>
<I18nMessage <I18nMessage
tokens={{ tokens={{
lbc: <LbcSymbol />, lbc: <LbcSymbol />,
@ -149,6 +154,7 @@ function DiscoverPage(props: Props) {
limitClaimsPerChannel={LIMIT_CLAIMS_PER_CHANNEL} limitClaimsPerChannel={LIMIT_CLAIMS_PER_CHANNEL}
meta={getElemMeta()} meta={getElemMeta()}
hasSource hasSource
showNoSourceClaims={ENABLE_NO_SOURCE_CLAIMS}
/> />
</Page> </Page>
); );

View file

@ -6,6 +6,7 @@ import * as MODALS from 'constants/modal_types';
import * as SETTINGS from 'constants/settings'; import * as SETTINGS from 'constants/settings';
import * as DAEMON_SETTINGS from 'constants/daemon_settings'; import * as DAEMON_SETTINGS from 'constants/daemon_settings';
import * as SHARED_PREFERENCES from 'constants/shared_preferences'; import * as SHARED_PREFERENCES from 'constants/shared_preferences';
import { DOMAIN } from 'config';
import Lbry from 'lbry'; import Lbry from 'lbry';
import { doFetchChannelListMine, doFetchCollectionListMine, doCheckPendingClaims } from 'redux/actions/claims'; import { doFetchChannelListMine, doFetchCollectionListMine, doCheckPendingClaims } from 'redux/actions/claims';
import { makeSelectClaimForUri, makeSelectClaimIsMine, selectMyChannelClaims } from 'redux/selectors/claims'; import { makeSelectClaimForUri, makeSelectClaimIsMine, selectMyChannelClaims } from 'redux/selectors/claims';
@ -332,7 +333,8 @@ export function doDaemonReady() {
analytics.trendingAlgorithmEvent(trendingAlgorithm); analytics.trendingAlgorithmEvent(trendingAlgorithm);
} }
}, },
undefined undefined,
DOMAIN
) )
); );
dispatch({ type: ACTIONS.DAEMON_READY }); dispatch({ type: ACTIONS.DAEMON_READY });

View file

@ -10,6 +10,7 @@ import { selectEmailToVerify, selectPhoneToVerify, selectUserCountryCode, select
import { doToast } from 'redux/actions/notifications'; import { doToast } from 'redux/actions/notifications';
import rewards from 'rewards'; import rewards from 'rewards';
import { Lbryio } from 'lbryinc'; import { Lbryio } from 'lbryinc';
import { DOMAIN } from 'config';
import { getDefaultLanguage } from 'util/default-languages'; import { getDefaultLanguage } from 'util/default-languages';
const AUTH_IN_PROGRESS = 'authInProgress'; const AUTH_IN_PROGRESS = 'authInProgress';
export let sessionStorageAvailable = false; export let sessionStorageAvailable = false;
@ -54,7 +55,10 @@ export function doInstallNew(appVersion, os = null, firebaseToken = null, callba
} }
Lbry.status().then((status) => { Lbry.status().then((status) => {
payload.app_id = status.installation_id; payload.app_id =
domain && domain !== 'lbry.tv'
? (domain.replace(/[.]/gi, '') + status.installation_id).slice(0, 66)
: status.installation_id;
payload.node_id = status.lbry_id; payload.node_id = status.lbry_id;
Lbry.version().then((version) => { Lbry.version().then((version) => {
payload.daemon_version = version.lbrynet_version; payload.daemon_version = version.lbrynet_version;
@ -140,7 +144,7 @@ export function doAuthenticate(
}); });
checkAuthBusy() checkAuthBusy()
.then(() => { .then(() => {
return Lbryio.authenticate(getDefaultLanguage()); return Lbryio.authenticate(DOMAIN, getDefaultLanguage());
}) })
.then((user) => { .then((user) => {
if (sessionStorageAvailable) window.sessionStorage.removeItem(AUTH_IN_PROGRESS); if (sessionStorageAvailable) window.sessionStorage.removeItem(AUTH_IN_PROGRESS);

View file

@ -1,7 +1,9 @@
const { DOMAIN } = require('../../config.js');
const AUTH_TOKEN = 'auth_token'; const AUTH_TOKEN = 'auth_token';
const SAVED_PASSWORD = 'saved_password'; const SAVED_PASSWORD = 'saved_password';
const domain = 'localhost'; const DEPRECATED_SAVED_PASSWORD = 'saved-password';
// typeof window === 'object' && window.location.hostname.includes('localhost') ? window.location.hostname : DOMAIN; const domain =
typeof window === 'object' && window.location.hostname.includes('localhost') ? window.location.hostname : DOMAIN;
const isProduction = process.env.NODE_ENV === 'production'; const isProduction = process.env.NODE_ENV === 'production';
const maxExpiration = 2147483647; const maxExpiration = 2147483647;
let sessionPassword; let sessionPassword;
@ -57,7 +59,7 @@ function deleteCookie(name) {
} }
function setSavedPassword(value, saveToDisk) { function setSavedPassword(value, saveToDisk) {
return new Promise((resolve) => { return new Promise(resolve => {
const password = value === undefined || value === null ? '' : value; const password = value === undefined || value === null ? '' : value;
sessionPassword = password; sessionPassword = password;
@ -72,17 +74,17 @@ function setSavedPassword(value, saveToDisk) {
} }
function getSavedPassword() { function getSavedPassword() {
return new Promise((resolve) => { return new Promise(resolve => {
if (sessionPassword) { if (sessionPassword) {
resolve(sessionPassword); resolve(sessionPassword);
} }
return getPasswordFromCookie().then((p) => resolve(p)); return getPasswordFromCookie().then(p => resolve(p));
}); });
} }
function getPasswordFromCookie() { function getPasswordFromCookie() {
return new Promise((resolve) => { return new Promise(resolve => {
let password; let password;
password = getCookie(SAVED_PASSWORD); password = getCookie(SAVED_PASSWORD);
resolve(password); resolve(password);
@ -90,7 +92,7 @@ function getPasswordFromCookie() {
} }
function deleteSavedPassword() { function deleteSavedPassword() {
return new Promise((resolve) => { return new Promise(resolve => {
deleteCookie(SAVED_PASSWORD); deleteCookie(SAVED_PASSWORD);
resolve(); resolve();
}); });
@ -105,14 +107,14 @@ function setAuthToken(value) {
} }
function deleteAuthToken() { function deleteAuthToken() {
return new Promise((resolve) => { return new Promise(resolve => {
deleteCookie(AUTH_TOKEN); deleteCookie(AUTH_TOKEN);
resolve(); resolve();
}); });
} }
function doSignOutCleanup() { function doSignOutCleanup() {
return new Promise((resolve) => { return new Promise(resolve => {
deleteAuthToken(); deleteAuthToken();
deleteSavedPassword(); deleteSavedPassword();
resolve(); resolve();
@ -127,6 +129,14 @@ function doAuthTokenRefresh() {
} }
} }
function doDeprecatedPasswordMigrationMarch2020() {
const savedPassword = getCookie(DEPRECATED_SAVED_PASSWORD);
if (savedPassword) {
deleteCookie(DEPRECATED_SAVED_PASSWORD);
setSavedPassword(savedPassword, true);
}
}
module.exports = { module.exports = {
setCookie, setCookie,
getCookie, getCookie,
@ -140,4 +150,5 @@ module.exports = {
deleteAuthToken, deleteAuthToken,
doSignOutCleanup, doSignOutCleanup,
doAuthTokenRefresh, doAuthTokenRefresh,
doDeprecatedPasswordMigrationMarch2020,
}; };