Improve privacy #1074
10 changed files with 37 additions and 21 deletions
|
@ -64,8 +64,8 @@ app.on('ready', async () => {
|
|||
dialog.showErrorBox(
|
||||
'Daemon has Exited',
|
||||
'The daemon may have encountered an unexpected error, or another daemon instance is already running. \n\n' +
|
||||
'For more information please visit: \n' +
|
||||
'https://lbry.io/faq/startup-troubleshooting'
|
||||
'For more information please visit: \n' +
|
||||
'https://lbry.io/faq/startup-troubleshooting'
|
||||
);
|
||||
app.quit();
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
// @flow
|
||||
import mixpanel from 'mixpanel-browser';
|
||||
import Lbryio from 'lbryio';
|
||||
|
||||
mixpanel.init('691723e855cabb9d27a7a79002216967');
|
||||
|
||||
|
@ -7,6 +8,7 @@ type Analytics = {
|
|||
track: (string, ?Object) => void,
|
||||
setUser: Object => void,
|
||||
toggle: (boolean, ?boolean) => void,
|
||||
apiLog: (string, string, string) => void,
|
||||
};
|
||||
|
||||
let analyticsEnabled: boolean = false;
|
||||
|
@ -37,6 +39,15 @@ const analytics: Analytics = {
|
|||
}
|
||||
analyticsEnabled = enabled;
|
||||
},
|
||||
apiLog: (uri: string, outpoint: string, claimId: string): void => {
|
||||
if (analyticsEnabled) {
|
||||
Lbryio.call('file', 'view', {
|
||||
uri,
|
||||
outpoint,
|
||||
claim_id: claimId,
|
||||
}).catch(() => {});
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
export default analytics;
|
||||
|
|
|
@ -15,27 +15,27 @@ class FileList extends React.PureComponent {
|
|||
this._sortFunctions = {
|
||||
dateNew(fileInfos) {
|
||||
return fileInfos.slice().sort((fileInfo1, fileInfo2) => {
|
||||
const height1 = fileInfo1.height
|
||||
const height2 = fileInfo2.height
|
||||
const height1 = fileInfo1.height;
|
||||
const height2 = fileInfo2.height;
|
||||
if (height1 > height2) {
|
||||
return -1;
|
||||
} else if (height1 < height2) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
});
|
||||
});
|
||||
},
|
||||
dateOld(fileInfos) {
|
||||
return fileInfos.slice().sort((fileInfo1, fileInfo2) => {
|
||||
const height1 = fileInfo1.height
|
||||
const height2 = fileInfo2.height
|
||||
const height1 = fileInfo1.height;
|
||||
const height2 = fileInfo2.height;
|
||||
if (height1 < height2) {
|
||||
return -1;
|
||||
} else if (height1 > height2) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
});
|
||||
});
|
||||
},
|
||||
title(fileInfos) {
|
||||
return fileInfos.slice().sort((fileInfo1, fileInfo2) => {
|
||||
|
|
|
@ -15,9 +15,9 @@ const RewardSummary = (props: Props) => {
|
|||
<div className="card__title-primary">
|
||||
<h3>{__('Rewards')}</h3>
|
||||
<p className="help">
|
||||
{__('Read our')}{' '}
|
||||
<Link href="https://lbry.io/faq/rewards">{__('FAQ')}</Link>{' '}{__('to learn more about LBRY Rewards')}.
|
||||
</p>
|
||||
{__('Read our')} <Link href="https://lbry.io/faq/rewards">{__('FAQ')}</Link>{' '}
|
||||
{__('to learn more about LBRY Rewards')}.
|
||||
</p>
|
||||
</div>
|
||||
<div className="card__content">
|
||||
{unclaimedRewardAmount > 0 ? (
|
||||
|
|
|
@ -69,7 +69,7 @@ ipcRenderer.on('window-is-focused', () => {
|
|||
|
||||
document.addEventListener('dragover', event => {
|
||||
event.preventDefault();
|
||||
})
|
||||
});
|
||||
document.addEventListener('drop', event => {
|
||||
event.preventDefault();
|
||||
});
|
||||
|
|
|
@ -30,7 +30,12 @@ class ModalEmailCollection extends React.PureComponent {
|
|||
<Modal type="custom" isOpen contentLabel="Email">
|
||||
<section>
|
||||
<h3 className="modal__header">Can We Stay In Touch?</h3>
|
||||
{this.renderInner()}
|
||||
<div className="card__content">{this.renderInner()}</div>
|
||||
<div className="card__content">
|
||||
<div className="help">
|
||||
{`${__('Your email may be used to sync usage data across devices.')} `}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</Modal>
|
||||
);
|
||||
|
|
|
@ -68,7 +68,7 @@ export class AuthPage extends React.PureComponent {
|
|||
<div className="card__content">
|
||||
<div className="help">
|
||||
{`${__(
|
||||
'This information is disclosed only to LBRY, Inc. and not to the LBRY network. It is only required to earn LBRY rewards.'
|
||||
'This information is disclosed only to LBRY, Inc. and not to the LBRY network. It is only required to earn LBRY rewards and may be used to sync usage data across devices.'
|
||||
)} `}
|
||||
<Link onClick={() => navigate('/discover')} label={__('Return home')} />.
|
||||
</div>
|
||||
|
|
|
@ -308,7 +308,9 @@ class SettingsPage extends React.PureComponent {
|
|||
type="checkbox"
|
||||
onChange={this.onShareDataChange.bind(this)}
|
||||
defaultChecked={daemonSettings.share_usage_data}
|
||||
label={__('Help make LBRY better by contributing diagnostic data about my usage')}
|
||||
label={__(
|
||||
'Help make LBRY better by contributing analytics and diagnostic data and about my usage'
|
||||
)}
|
||||
/>
|
||||
</div>
|
||||
</section>
|
||||
|
|
|
@ -21,6 +21,7 @@ import { selectBalance } from 'redux/selectors/wallet';
|
|||
import batchActions from 'util/batchActions';
|
||||
import setBadge from 'util/setBadge';
|
||||
import setProgressBar from 'util/setProgressBar';
|
||||
import analytics from 'analytics';
|
||||
|
||||
const DOWNLOAD_POLL_INTERVAL = 250;
|
||||
|
||||
|
@ -226,11 +227,7 @@ export function doDownloadFile(uri, streamInfo) {
|
|||
return dispatch => {
|
||||
dispatch(doStartDownload(uri, streamInfo.outpoint));
|
||||
|
||||
Lbryio.call('file', 'view', {
|
||||
uri,
|
||||
outpoint: streamInfo.outpoint,
|
||||
claim_id: streamInfo.claim_id,
|
||||
}).catch(() => {});
|
||||
analytics.apiLog(uri, streamInfo.output, streamInfo.claim_id);
|
||||
|
||||
dispatch(doClaimEligiblePurchaseRewards());
|
||||
};
|
||||
|
|
|
@ -70,7 +70,8 @@ export function doUpdateIsNight() {
|
|||
const momentNow = moment();
|
||||
return {
|
||||
type: ACTIONS.UPDATE_IS_NIGHT,
|
||||
data: { isNight: (() => {
|
||||
data: {
|
||||
isNight: (() => {
|
||||
const startNightMoment = moment('21:00', 'HH:mm');
|
||||
const endNightMoment = moment('8:00', 'HH:mm');
|
||||
return !(momentNow.isAfter(endNightMoment) && momentNow.isBefore(startNightMoment));
|
||||
|
|
Loading…
Add table
Reference in a new issue