lbry.io => lbry.com

This commit is contained in:
Sean Yesmunt 2019-03-20 17:43:00 -04:00
parent e85ad6a2c6
commit 93bcba4512
40 changed files with 176 additions and 226 deletions

View file

@ -7,7 +7,7 @@ Before reporting any issues, please make sure that you're using the latest versi
- App releases: https://github.com/lbryio/lbry-desktop/releases - App releases: https://github.com/lbryio/lbry-desktop/releases
- Standalone daemon: https://github.com/lbryio/lbry/releases - Standalone daemon: https://github.com/lbryio/lbry/releases
We are also available on live chat at https://chat.lbry.io We are also available on live chat at https://chat.lbry.com
--> -->
## The Issue ## The Issue

View file

@ -1,77 +1,77 @@
matrix: matrix:
include: include:
- os: osx - os: osx
env: TARGET=mac env: TARGET=mac
osx_image: xcode9.2 osx_image: xcode9.2
language: node_js language: node_js
node_js: '10' node_js: '10'
- os: linux - os: linux
env: TARGET=windows env: TARGET=windows
services: docker services: docker
language: node_js language: node_js
node_js: '10' node_js: '10'
- os: linux - os: linux
env: TARGET=linux env: TARGET=linux
language: node_js language: node_js
node_js: '10' node_js: '10'
cache: false cache: false
before_install: before_install:
- | - |
unset TRAVIS_COMMIT_MESSAGE; unset TRAVIS_COMMIT_MESSAGE;
if [ "$TRAVIS_OS_NAME" == "osx" ]; then if [ "$TRAVIS_OS_NAME" == "osx" ]; then
mkdir -p /tmp/git-lfs && curl -L https://github.com/github/git-lfs/releases/download/v2.3.1/git-lfs-$([ "$TRAVIS_OS_NAME" == "linux" ] && echo "linux" || echo "darwin")-amd64-2.3.1.tar.gz | tar -xz -C /tmp/git-lfs --strip-components 1 mkdir -p /tmp/git-lfs && curl -L https://github.com/github/git-lfs/releases/download/v2.3.1/git-lfs-$([ "$TRAVIS_OS_NAME" == "linux" ] && echo "linux" || echo "darwin")-amd64-2.3.1.tar.gz | tar -xz -C /tmp/git-lfs --strip-components 1
export PATH="/tmp/git-lfs:$PATH" export PATH="/tmp/git-lfs:$PATH"
else else
sudo apt-get -qq update sudo apt-get -qq update
sudo apt-get install -y libsecret-1-dev sudo apt-get install -y libsecret-1-dev
sudo apt-get install --no-install-recommends -y gcc-multilib g++-multilib sudo apt-get install --no-install-recommends -y gcc-multilib g++-multilib
curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version 1.6.0 curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version 1.6.0
export PATH="$HOME/.yarn/bin:$PATH" export PATH="$HOME/.yarn/bin:$PATH"
fi fi
before_script: before_script:
- git lfs pull - git lfs pull
- if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then unset WIN_CSC_LINK; unset CSC_LINK; fi - if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then unset WIN_CSC_LINK; unset CSC_LINK; fi
script: script:
- | - |
if [ "$TARGET" == "windows" ]; then if [ "$TARGET" == "windows" ]; then
# Remove any special characters before adding to our list of ENVs # Remove any special characters before adding to our list of ENVs
# https://github.com/electron-userland/electron-builder/issues/2450#issuecomment-421788155 # https://github.com/electron-userland/electron-builder/issues/2450#issuecomment-421788155
ENVS=`env | grep -iE '(DEBUG|NODE_|ELECTRON_|YARN_|NPM_|CI|CIRCLE|TRAVIS|APPVEYOR_|CSC_|_TOKEN|_KEY|AWS_|STRIP|BUILD_|TARGET)([A-Z]|_)*=' | sed -n '/^[^\t]/s/=.*//p' | sed '/^$/d' | sed 's/^/-e /g' | tr '\n' ' '` ENVS=`env | grep -iE '(DEBUG|NODE_|ELECTRON_|YARN_|NPM_|CI|CIRCLE|TRAVIS|APPVEYOR_|CSC_|_TOKEN|_KEY|AWS_|STRIP|BUILD_|TARGET)([A-Z]|_)*=' | sed -n '/^[^\t]/s/=.*//p' | sed '/^$/d' | sed 's/^/-e /g' | tr '\n' ' '`
docker run $ENVS --rm \ docker run $ENVS --rm \
-v ${PWD}:/project \ -v ${PWD}:/project \
electronuserland/builder:wine \ electronuserland/builder:wine \
/bin/bash -c "env | grep -v '\r' | grep -iE 'DEBUG|TARGET|NODE_|ELECTRON_|YARN_|NPM_|CI|CIRCLE|TRAVIS|APPVEYOR_|CSC_|GH_|GITHUB_|BT_|AWS_|STRIP|BUILD_|WIN_' && yarn --link-duplicates --pure-lockfile && yarn build --win --publish onTag"; /bin/bash -c "env | grep -v '\r' | grep -iE 'DEBUG|TARGET|NODE_|ELECTRON_|YARN_|NPM_|CI|CIRCLE|TRAVIS|APPVEYOR_|CSC_|GH_|GITHUB_|BT_|AWS_|STRIP|BUILD_|WIN_' && yarn --link-duplicates --pure-lockfile && yarn build --win --publish onTag";
fi fi
- if [ "$TARGET" == "mac" ]; then yarn build --publish onTag; fi - if [ "$TARGET" == "mac" ]; then yarn build --publish onTag; fi
- if [ "$TARGET" == "linux" ]; then yarn --link-duplicates --pure-lockfile && yarn - if [ "$TARGET" == "linux" ]; then yarn --link-duplicates --pure-lockfile && yarn
build --linux --publish onTag; fi build --linux --publish onTag; fi
addons: addons:
artifacts: artifacts:
working_dir: dist working_dir: dist
paths: paths:
- $(git ls-files -o dist/{*.dmg,*.exe,*.deb} | tr "\n" ":") - $(git ls-files -o dist/{*.dmg,*.exe,*.deb} | tr "\n" ":")
target_paths: target_paths:
- "/app/build-${TRAVIS_BUILD_NUMBER}_commit-${TRAVIS_COMMIT:0:7}$([ ! -z ${TRAVIS_TAG} - '/app/build-${TRAVIS_BUILD_NUMBER}_commit-${TRAVIS_COMMIT:0:7}$([ ! -z ${TRAVIS_TAG}
] && echo _tag-${TRAVIS_TAG})" ] && echo _tag-${TRAVIS_TAG})'
env: env:
global: global:
- ARTIFACTS_REGION=us-east-1 - ARTIFACTS_REGION=us-east-1
- ARTIFACTS_BUCKET=build.lbry.io - ARTIFACTS_BUCKET=build.lbry.io
- DANGER_GITHUB_API_TOKEN=f8b612049cbda985c251e18ae36c7a2b9c6c92df - DANGER_GITHUB_API_TOKEN=f8b612049cbda985c251e18ae36c7a2b9c6c92df
- ARTIFACTS_DEBUG=1 - ARTIFACTS_DEBUG=1
- WIN_CSC_LINK=https://s3.amazonaws.com/files.lbry.io/cert/win-csc-2018-2019-08.p12 - WIN_CSC_LINK=https://s3.amazonaws.com/files.lbry.io/cert/win-csc-2018-2019-08.p12
- CSC_LINK=https://s3.amazonaws.com/files.lbry.io/cert/osx-cert.p12 - CSC_LINK=https://s3.amazonaws.com/files.lbry.io/cert/osx-cert.p12
#AWS_SECRET_ACCESS_KEY #AWS_SECRET_ACCESS_KEY
- secure: aF0dZ1ub0r6X5SaTH7YYRpV8cl2gkU2tA7y2tkvGZQL0+Vv2FvkhwaXREa9IM9djm7r3W7I8vEekk6Skn300kIBwQ04COxgu+Oeqjsc2a529wmF9AN5EwKExKkVQFIjMjpMBmd/fE05PD29C0vULdtIMX8uhDe5zFE+tGD1QmwKVZ+55oCxJmt7vsQwQr46s/BsPODrZhvSUPWTUG4HSsc5DJwe/XYY+35vWQsnpCkBVabAZg+lnOpqLioRNzTsBX1oSkqTX9uvOC6fN+NlpbJWetzXsBciFcMHQCx9UHxu+Ibn3W3V8FVYRuFLAinhIg+JoVQHU8mH60ggjizATpgx12riP9e/Uwho5x5bgIYmnIBf4AHqupPv40iC/THMvsS08hCQHicu+/WiAvvN8wNQ1sqpj0+RTreB+4/qdRdwTs70t4jNV83cP+nAuekMCC7uYQ08GLmFNaa+x8NgDZa3JQv7EmXU0ALWVPeJ9UEV+dhEs5iI+7bLEhTUOuvBBWo17F4pst3pfS1j7md1x4wKFRWyP7IFmjK+L1KiAH94c/LIz2Nlp5yCDfbcwU5W/wCHYAxu5c8qnAlkxeub0GpxtZ66j6oOehk1lsHYxaZcBxyn7XhM1A6Mjxgy9OG0WGyYun8iH3aa4WcY0BO21l7je75s7l0qNSRS80st8kUE= - secure: aF0dZ1ub0r6X5SaTH7YYRpV8cl2gkU2tA7y2tkvGZQL0+Vv2FvkhwaXREa9IM9djm7r3W7I8vEekk6Skn300kIBwQ04COxgu+Oeqjsc2a529wmF9AN5EwKExKkVQFIjMjpMBmd/fE05PD29C0vULdtIMX8uhDe5zFE+tGD1QmwKVZ+55oCxJmt7vsQwQr46s/BsPODrZhvSUPWTUG4HSsc5DJwe/XYY+35vWQsnpCkBVabAZg+lnOpqLioRNzTsBX1oSkqTX9uvOC6fN+NlpbJWetzXsBciFcMHQCx9UHxu+Ibn3W3V8FVYRuFLAinhIg+JoVQHU8mH60ggjizATpgx12riP9e/Uwho5x5bgIYmnIBf4AHqupPv40iC/THMvsS08hCQHicu+/WiAvvN8wNQ1sqpj0+RTreB+4/qdRdwTs70t4jNV83cP+nAuekMCC7uYQ08GLmFNaa+x8NgDZa3JQv7EmXU0ALWVPeJ9UEV+dhEs5iI+7bLEhTUOuvBBWo17F4pst3pfS1j7md1x4wKFRWyP7IFmjK+L1KiAH94c/LIz2Nlp5yCDfbcwU5W/wCHYAxu5c8qnAlkxeub0GpxtZ66j6oOehk1lsHYxaZcBxyn7XhM1A6Mjxgy9OG0WGyYun8iH3aa4WcY0BO21l7je75s7l0qNSRS80st8kUE=
#AWS_ACCESS_KEY_ID #AWS_ACCESS_KEY_ID
- secure: HHlUGaEjk0qsW9qb/93jdFhJypiDuJ0e6Z4UClW3ciMfdZ22Ur4D0oL0mgVguigTjdkf1Yy4Z1kWtWvtvQ8DBI+mdOl5GTMpX5nMattcuK/4gFXmqz30S3c07IPkilGKkAT64JqRGT7AvQTaV/tXqNNN9BbWCTAJSnhfzYJFvZQjnSmAAQvbqzMWEEein53244fWbDio462T7vzfbEHJD1pVUSrAMrKDgFSrIKJf4GQHceUk+fqWBjAsWN8USboo88JSLXn5qhD3ZczsgtZ2gi2KTvdfrHfZ5SpOzwc2AGr8U1laQzzW8c8xsPJPmM/3dCri/clcXassa4t/+2INYTPhKbmaD9hvjFRRMpoNjMCmPRJOmojxit8tqzCrw4nSGdr3/Bt0JjpLq90mfyL83YYU4gJXF97KzTl0lCy/DFXjBiHA9riRJVaXn3CI6L0i1RLCJI+C/rT9ErFB767t0aQtXlIWSZQ+IqWaoUdp57t0e2EtbRcjK7IYIXLNgZSbR0bY/TS005D/xZkexCpAtcV9F6iqDYP3HbGyiQqC75se0MqpNrZAx1a7WsSnumOcmtuU6LRriwjM0GXEACfGLCp4w4LBzKPwrOOg4QOhewHKgxpUff8KMlfTZ+Z8B7NBNjKSPbxiMedmpsiWpPRy6VeyvwNz32PUpjdsF3tIYMk= - secure: HHlUGaEjk0qsW9qb/93jdFhJypiDuJ0e6Z4UClW3ciMfdZ22Ur4D0oL0mgVguigTjdkf1Yy4Z1kWtWvtvQ8DBI+mdOl5GTMpX5nMattcuK/4gFXmqz30S3c07IPkilGKkAT64JqRGT7AvQTaV/tXqNNN9BbWCTAJSnhfzYJFvZQjnSmAAQvbqzMWEEein53244fWbDio462T7vzfbEHJD1pVUSrAMrKDgFSrIKJf4GQHceUk+fqWBjAsWN8USboo88JSLXn5qhD3ZczsgtZ2gi2KTvdfrHfZ5SpOzwc2AGr8U1laQzzW8c8xsPJPmM/3dCri/clcXassa4t/+2INYTPhKbmaD9hvjFRRMpoNjMCmPRJOmojxit8tqzCrw4nSGdr3/Bt0JjpLq90mfyL83YYU4gJXF97KzTl0lCy/DFXjBiHA9riRJVaXn3CI6L0i1RLCJI+C/rT9ErFB767t0aQtXlIWSZQ+IqWaoUdp57t0e2EtbRcjK7IYIXLNgZSbR0bY/TS005D/xZkexCpAtcV9F6iqDYP3HbGyiQqC75se0MqpNrZAx1a7WsSnumOcmtuU6LRriwjM0GXEACfGLCp4w4LBzKPwrOOg4QOhewHKgxpUff8KMlfTZ+Z8B7NBNjKSPbxiMedmpsiWpPRy6VeyvwNz32PUpjdsF3tIYMk=
#GH_TOKEN #GH_TOKEN
- secure: g0gSiOmCKFzxLFV//oogmex+MkumCcGJ8CtvLzojAw1qhI1P6dGRH06yuCgBNW4PQGbbrYR2tntGEeq66LZ1bU7BJ2bdkv5lBi15JPH4POpA3OSc88YebitKIyIBI2WHA3VNCkF1JEFvrfTUX+4PjP+9h6vZ9tdfzezNTpc70SrGkWMhaoe+F8u6jCL63VBpnncf0foz3WlqUFNoIdinQLYxI6S2QmHz1p1HToC+MOosBgWDufX2+6B/Efq7JDFZgx/zItFzR1OCafKx8rScUd4woAqK+8mt862IzzEbztTv6IPSdhx/hsbO7rHMcjDFk/MuDeC9TaaXqMvvKmLuvWKH+dy4BvIiJJ/WuDfzumrw+8BvTbcnXFXkEXTlkQnZD0otBZsmI4/OPH5vIGUmVIwBFXjPBcNq/Xwig8hRCxrdioEZPO4C17fMCdOn3gAx+GcMddfAIKnrlG/XK2jL8kCylL7++OEkedzYiHWA7p9eaJDjxYmIxKcfYTyF4VIMYS/wAC5W1zi1AjM5BiUhBGp/Vd+f3UUTOsqWOmS4A8cqhK/rbx4xgdwUuv2DoljeQtWd2xdZFr10L2ErmEIdfdtZBVyauaGOhhXUqpSAB5PAwSRNNWkZFCJXmqMHemih4jlfN/KS+rujh5dbyXz81BPjyxrDAziO4Q19rz7hmVI= - secure: g0gSiOmCKFzxLFV//oogmex+MkumCcGJ8CtvLzojAw1qhI1P6dGRH06yuCgBNW4PQGbbrYR2tntGEeq66LZ1bU7BJ2bdkv5lBi15JPH4POpA3OSc88YebitKIyIBI2WHA3VNCkF1JEFvrfTUX+4PjP+9h6vZ9tdfzezNTpc70SrGkWMhaoe+F8u6jCL63VBpnncf0foz3WlqUFNoIdinQLYxI6S2QmHz1p1HToC+MOosBgWDufX2+6B/Efq7JDFZgx/zItFzR1OCafKx8rScUd4woAqK+8mt862IzzEbztTv6IPSdhx/hsbO7rHMcjDFk/MuDeC9TaaXqMvvKmLuvWKH+dy4BvIiJJ/WuDfzumrw+8BvTbcnXFXkEXTlkQnZD0otBZsmI4/OPH5vIGUmVIwBFXjPBcNq/Xwig8hRCxrdioEZPO4C17fMCdOn3gAx+GcMddfAIKnrlG/XK2jL8kCylL7++OEkedzYiHWA7p9eaJDjxYmIxKcfYTyF4VIMYS/wAC5W1zi1AjM5BiUhBGp/Vd+f3UUTOsqWOmS4A8cqhK/rbx4xgdwUuv2DoljeQtWd2xdZFr10L2ErmEIdfdtZBVyauaGOhhXUqpSAB5PAwSRNNWkZFCJXmqMHemih4jlfN/KS+rujh5dbyXz81BPjyxrDAziO4Q19rz7hmVI=
#ARTIFACTS_KEY #ARTIFACTS_KEY
- secure: giJRkODdgvMpaLh58c3UKTy6j3IjUVQ2wVvLmECN8caVLuBnEp3U56rUT7sQPzeMoaF9goOLKXD1o+qKdGsLz2Dedi/3vFr3IXTgpYwO03eMkylYUDUwKXV1Fv14ME+wknw/Fshmty1XAc/RwlTaCks9usIRT9OE75HvV8ILVfLdSwwRR/TKFEdEDjAY/3ROVFsleDKBIe1AG/AHeN37Mwqfo39zpN5Zidm3HUegujsMsHtPQtUUCvCxiaiBtqIz79WQuiXjelLWrV53k+ulpptz4T6M8FO5jxBCL5HQMbYy4J8BhukAPHUcTVzarsDe1XEmP6xtClcAydMiHmzUBh9VbvRF8AKwGGO41g6OasgMaJ/eUlACGWTIS2AsqgkXCEgWRtswwI4edLgT/F74fKxGV82zRYLcmjWceGc9H6m2YfIIQZ2PNsDloFgTWa63oZ1sT20fWmNohD3IgVK21rjrCnMbp5/RfBdihR1+GsS8wMA15nhUW3SHfSHKV0009FZdDjxgmigjjmFt1/SM8YGZDijQc7DoUsrScR9n2JR+KVqEED3BYOviw0M0blb6b2dqK0A3+N5C1RGt8Uu8AAuAzdPDviL38m4n1UOdI1Tij1boSfr1USvfipPfQXrqSWHIY3RITMmjPREmcdj2dbhjoUEFaFfp/b3sJxUI3I4= - secure: giJRkODdgvMpaLh58c3UKTy6j3IjUVQ2wVvLmECN8caVLuBnEp3U56rUT7sQPzeMoaF9goOLKXD1o+qKdGsLz2Dedi/3vFr3IXTgpYwO03eMkylYUDUwKXV1Fv14ME+wknw/Fshmty1XAc/RwlTaCks9usIRT9OE75HvV8ILVfLdSwwRR/TKFEdEDjAY/3ROVFsleDKBIe1AG/AHeN37Mwqfo39zpN5Zidm3HUegujsMsHtPQtUUCvCxiaiBtqIz79WQuiXjelLWrV53k+ulpptz4T6M8FO5jxBCL5HQMbYy4J8BhukAPHUcTVzarsDe1XEmP6xtClcAydMiHmzUBh9VbvRF8AKwGGO41g6OasgMaJ/eUlACGWTIS2AsqgkXCEgWRtswwI4edLgT/F74fKxGV82zRYLcmjWceGc9H6m2YfIIQZ2PNsDloFgTWa63oZ1sT20fWmNohD3IgVK21rjrCnMbp5/RfBdihR1+GsS8wMA15nhUW3SHfSHKV0009FZdDjxgmigjjmFt1/SM8YGZDijQc7DoUsrScR9n2JR+KVqEED3BYOviw0M0blb6b2dqK0A3+N5C1RGt8Uu8AAuAzdPDviL38m4n1UOdI1Tij1boSfr1USvfipPfQXrqSWHIY3RITMmjPREmcdj2dbhjoUEFaFfp/b3sJxUI3I4=
#ARTIFACTS_SECRET #ARTIFACTS_SECRET
- secure: RtPES82DBisaCkernDm10u8mzNc8K4EyyTJUCopcFFJHfFpleuJOoXNFZGXixjHXWTxqc5+IjLThBZFG6krTpD4ocftfkBNeVDXL91JsGRW6X4VBpKaJp1UJZZiYjpPZRJDwVuIb570WcX3xXmsvAwwdODkeXgBZoOw+LZIz4HV3OACi5iaWCx4+2WvQiaz/6mRkLlw9iY1m9gCGQXXUSWyY+bGWsOdGWpfp/VfzpX7mBJbcIYjvRYSnBtVUFkEzxHlaR/CFc7Jio45EUImhBKqKV8QGAiv9AowcWqQn8y2SuW8J66bkaZGbGpyEdsRQDJKUU5naRIFJ/002e4XjI2moBfSHHnFTMH/AawA4b+gCjein8jDiRugJw8AqC4KpG660SFJwC4A8IxfPcXWcykahrL6kJhs+NFbyxQEJIMUqP6UAAiPAuUr/Whq1F8x5b39pEibRZ3Vv0Bix/lUj4cWZYRBL1ckoUgSCeG7llkAdnxLuQKfDvTw+HFcWGq7yg/ye7H7CwpBJkSSOlnQ61nuucC82hVqBGoPGbFW3vjS0BqesLcaO7kwW/fdBnIxwLiWWHDWol0aLfQLEzjUzpS+tA1YYKvrG+yNMEeYtHEK9ZcltQD52uEtjK26DIY8tQU8PxMlXha6/XTOlt8MIcl8IPULmVWKT9k8LPTFQiXc= - secure: RtPES82DBisaCkernDm10u8mzNc8K4EyyTJUCopcFFJHfFpleuJOoXNFZGXixjHXWTxqc5+IjLThBZFG6krTpD4ocftfkBNeVDXL91JsGRW6X4VBpKaJp1UJZZiYjpPZRJDwVuIb570WcX3xXmsvAwwdODkeXgBZoOw+LZIz4HV3OACi5iaWCx4+2WvQiaz/6mRkLlw9iY1m9gCGQXXUSWyY+bGWsOdGWpfp/VfzpX7mBJbcIYjvRYSnBtVUFkEzxHlaR/CFc7Jio45EUImhBKqKV8QGAiv9AowcWqQn8y2SuW8J66bkaZGbGpyEdsRQDJKUU5naRIFJ/002e4XjI2moBfSHHnFTMH/AawA4b+gCjein8jDiRugJw8AqC4KpG660SFJwC4A8IxfPcXWcykahrL6kJhs+NFbyxQEJIMUqP6UAAiPAuUr/Whq1F8x5b39pEibRZ3Vv0Bix/lUj4cWZYRBL1ckoUgSCeG7llkAdnxLuQKfDvTw+HFcWGq7yg/ye7H7CwpBJkSSOlnQ61nuucC82hVqBGoPGbFW3vjS0BqesLcaO7kwW/fdBnIxwLiWWHDWol0aLfQLEzjUzpS+tA1YYKvrG+yNMEeYtHEK9ZcltQD52uEtjK26DIY8tQU8PxMlXha6/XTOlt8MIcl8IPULmVWKT9k8LPTFQiXc=
#CSC_KEY_PASSWORD #CSC_KEY_PASSWORD
- secure: TDKeF7/WGwR+di+JhNp29x7NPzVMO/q+72n58zB5goI1NUKaeKgjeWbfVYx9f+4G9a9/pdDVUfORt8i6OW8ZhhqYS4E8G5F56q+oX3nrjNqM8NqoK09ehZS/wdYGbenG9oTfXYenDdwusZV4Fq0BRRLjqAIXPQCKg3//MKseh/1fHDGVGXpYUimHRSCkwspbbfB/9Qw9KEBjweeXiAwB+5F+E7fPlVtqsIvtkkED1hKe0Z8HdECC6JTZ0ZHPDDFGV3aondXQDgUlfchnZ6HDdNDO5y/hPEj0laiZQ7BssenJ8Z7qjHc5O9AKXfG+6WFICHvtgjQ0+x6rk6gpvJcyI1x2+Kck/s0EcSkFY+Yz81BxdehIeKPn9U8LpGaFbtxsp01661yeaIpAqT/PqFsdj/kFXFT6gwZlGGPMBm2WgQR4A61qkOO1jokqz/z6CnY+MNeE8E1Fh4bFoZ0JwUJFJugoyDahHpVlLw5lZaSipJO6RZ1xjoZ3XGmxvtkM4dQ16xQ++Q8EgD878uCWn2jZ5YTQdKANfXYTKSiQfoEjLeX0T6I6GSdim4ZURjcolmGNMH/3jhISOXj+e2UkLc6jwO4Ek084o6ciJ2JjqEhXvXOCeRJ2I9cf2dEk7CvtbitiDly6XATo2FP4hqNdcNNWyj/jFvuTwFT6hzBqLk1BCBc= - secure: TDKeF7/WGwR+di+JhNp29x7NPzVMO/q+72n58zB5goI1NUKaeKgjeWbfVYx9f+4G9a9/pdDVUfORt8i6OW8ZhhqYS4E8G5F56q+oX3nrjNqM8NqoK09ehZS/wdYGbenG9oTfXYenDdwusZV4Fq0BRRLjqAIXPQCKg3//MKseh/1fHDGVGXpYUimHRSCkwspbbfB/9Qw9KEBjweeXiAwB+5F+E7fPlVtqsIvtkkED1hKe0Z8HdECC6JTZ0ZHPDDFGV3aondXQDgUlfchnZ6HDdNDO5y/hPEj0laiZQ7BssenJ8Z7qjHc5O9AKXfG+6WFICHvtgjQ0+x6rk6gpvJcyI1x2+Kck/s0EcSkFY+Yz81BxdehIeKPn9U8LpGaFbtxsp01661yeaIpAqT/PqFsdj/kFXFT6gwZlGGPMBm2WgQR4A61qkOO1jokqz/z6CnY+MNeE8E1Fh4bFoZ0JwUJFJugoyDahHpVlLw5lZaSipJO6RZ1xjoZ3XGmxvtkM4dQ16xQ++Q8EgD878uCWn2jZ5YTQdKANfXYTKSiQfoEjLeX0T6I6GSdim4ZURjcolmGNMH/3jhISOXj+e2UkLc6jwO4Ek084o6ciJ2JjqEhXvXOCeRJ2I9cf2dEk7CvtbitiDly6XATo2FP4hqNdcNNWyj/jFvuTwFT6hzBqLk1BCBc=
#WIN_CSC_KEY_PASSWORD #WIN_CSC_KEY_PASSWORD
- secure: LBwkNMw5paoxpeLcNvAbrSLghLH0kXmgctBkUK6hgqJ/6WReWKlERUCwWQp/NcAB5Nb8fUTV8hXz1UjeQG1HH65geRcxya9sf9xu446e2gRdYGfYk7AhZdIw97IlwTYv2tpnjejiVXIoClQjKRYtOkRC4BIGW+Ydun1hwEUXTVMCplOzPhpLrkJCIDDDdM4eJjWm6ZMshCKRlnt42sNdx63FHBAH72rqBnt2jd+ISIadASnWz0nQlN5aIvXR6cLZfSl8Qt/JDL+LXzWX+pNA4BegCtW3hBoLrW18QdNPxrvPCvKjRCC3LHuv+KEGbzGv/QkXg5f9BKZehIZ/hjYgxysjeHBI8yOfCoyrDafxSIso5ja2TtL9lLpW90gbkbtEFiaL2XOMUbQcwWQ6RShSoLZxgiAl6zUmrq3UtS30OjnjWgMj+WnU2BcgpmpPzU0Hz/fblX6/EnwXhPNRYZvm5JyhVRYLZypLWuV4XsWGuLbUOOrsYi7UvU+xo+3AaxbUW4A6XuQ/DUh0ZVNlpPGcVi7A2tx4/46Wm0oLwQ5NYVukHbEiHWZ4HuKqSionwtgG0T2a6/7JQdH7gb+/86z4YHmK89dd/aE84hBUGTB/pNvvtDBYBE3c60SzL0CFPJZrbz9E0gVhLfsHO+5/VCFIipgM8mYoVzsq+cONKbqUPCg= - secure: LBwkNMw5paoxpeLcNvAbrSLghLH0kXmgctBkUK6hgqJ/6WReWKlERUCwWQp/NcAB5Nb8fUTV8hXz1UjeQG1HH65geRcxya9sf9xu446e2gRdYGfYk7AhZdIw97IlwTYv2tpnjejiVXIoClQjKRYtOkRC4BIGW+Ydun1hwEUXTVMCplOzPhpLrkJCIDDDdM4eJjWm6ZMshCKRlnt42sNdx63FHBAH72rqBnt2jd+ISIadASnWz0nQlN5aIvXR6cLZfSl8Qt/JDL+LXzWX+pNA4BegCtW3hBoLrW18QdNPxrvPCvKjRCC3LHuv+KEGbzGv/QkXg5f9BKZehIZ/hjYgxysjeHBI8yOfCoyrDafxSIso5ja2TtL9lLpW90gbkbtEFiaL2XOMUbQcwWQ6RShSoLZxgiAl6zUmrq3UtS30OjnjWgMj+WnU2BcgpmpPzU0Hz/fblX6/EnwXhPNRYZvm5JyhVRYLZypLWuV4XsWGuLbUOOrsYi7UvU+xo+3AaxbUW4A6XuQ/DUh0ZVNlpPGcVi7A2tx4/46Wm0oLwQ5NYVukHbEiHWZ4HuKqSionwtgG0T2a6/7JQdH7gb+/86z4YHmK89dd/aE84hBUGTB/pNvvtDBYBE3c60SzL0CFPJZrbz9E0gVhLfsHO+5/VCFIipgM8mYoVzsq+cONKbqUPCg=

View file

@ -181,11 +181,11 @@ will earn you an extra 50 LBC on top of what we would otherwise tip you.
| Name | Role | Discord | Email | | Name | Role | Discord | Email |
| --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------------ | --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------------
| [Tom](https://github.com/tzarebczan) | Community manager. He knows more than anyone about the app and all of its flaws. Reach out to him with any questions about how the app works, if a bug has been reported, or if a feature should be requested. | jiggytom | tom@lbry.io | | [Tom](https://github.com/tzarebczan) | Community manager. He knows more than anyone about the app and all of its flaws. Reach out to him with any questions about how the app works, if a bug has been reported, or if a feature should be requested. | jiggytom | tom@lbry.com |
| [Sean](https://github.com/seanyesmunt) | The primary engineer working on the app. Feel free to ask any questions about the code. | sean | sean@lbry.io | | [Sean](https://github.com/seanyesmunt) | The primary engineer working on the app. Feel free to ask any questions about the code. | sean | sean@lbry.com |
Join our Discord [here](https://chat.lbry.io/). Join our Discord [here](https://chat.lbry.com/).
# More Information # More Information
More information about contributing to LBRY [here](https://lbry.io/faq/contributing). More information about contributing to LBRY [here](https://lbry.com/faq/contributing).

View file

@ -4,12 +4,12 @@
[![GitHub release](https://img.shields.io/github/release/lbryio/lbry-desktop.svg)](https://GitHub.com/lbryio/lbry-desktop/releases/) [![GitHub release](https://img.shields.io/github/release/lbryio/lbry-desktop.svg)](https://GitHub.com/lbryio/lbry-desktop/releases/)
[![Build Status](https://travis-ci.org/lbryio/lbry-desktop.svg?branch=master)](https://travis-ci.org/lbryio/lbry-desktop) [![Build Status](https://travis-ci.org/lbryio/lbry-desktop.svg?branch=master)](https://travis-ci.org/lbryio/lbry-desktop)
[![Dependencies](https://david-dm.org/lbryio/lbry-desktop/status.svg)](https://david-dm.org/lbryio/lbry-desktop) [![Dependencies](https://david-dm.org/lbryio/lbry-desktop/status.svg)](https://david-dm.org/lbryio/lbry-desktop)
[![chat on Discord](https://img.shields.io/discord/362322208485277697.svg?logo=discord)](https://chat.lbry.io) [![chat on Discord](https://img.shields.io/discord/362322208485277697.svg?logo=discord)](https://chat.lbry.com)
[![forthebadge](https://forthebadge.com/images/badges/60-percent-of-the-time-works-every-time.svg)](https://forthebadge.com) [![forthebadge](https://forthebadge.com/images/badges/60-percent-of-the-time-works-every-time.svg)](https://forthebadge.com)
The LBRY app is a graphical browser for the decentralized content marketplace provided by the The LBRY app is a graphical browser for the decentralized content marketplace provided by the
[LBRY](https://lbry.io) protocol. It is essentially the [LBRY](https://lbry.com) protocol. It is essentially the
[lbry daemon](https://github.com/lbryio/lbry) bundled with a UI using [lbry daemon](https://github.com/lbryio/lbry) bundled with a UI using
[Electron](https://electron.atom.io/). [Electron](https://electron.atom.io/).
@ -19,10 +19,10 @@ The LBRY app is a graphical browser for the decentralized content marketplace pr
We provide installers for Windows, macOS (v10.12.4, Sierra, or greater), and Debian-based Linux. See community maintained builds section for alternative Linux installations. We provide installers for Windows, macOS (v10.12.4, Sierra, or greater), and Debian-based Linux. See community maintained builds section for alternative Linux installations.
| | Windows | macOS | Linux | | | Windows | macOS | Linux |
| --------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | | --------------------- | --------------------------------------------- | --------------------------------------------- | --------------------------------------------- |
| Latest Stable Release | [Download](https://lbry.io/get/lbry.exe) | [Download](https://lbry.io/get/lbry.dmg) | [Download](https://lbry.io/get/lbry.deb) | | Latest Stable Release | [Download](https://lbry.com/get/lbry.exe) | [Download](https://lbry.com/get/lbry.dmg) | [Download](https://lbry.com/get/lbry.deb) |
| Latest Pre-release | [Download](https://lbry.io/get/lbry.pre.exe) | [Download](https://lbry.io/get/lbry.pre.dmg) | [Download](https://lbry.io/get/lbry.pre.deb) | | Latest Pre-release | [Download](https://lbry.com/get/lbry.pre.exe) | [Download](https://lbry.com/get/lbry.pre.dmg) | [Download](https://lbry.com/get/lbry.pre.deb) |
Our [releases page](https://github.com/lbryio/lbry-desktop/releases) also contains the latest Our [releases page](https://github.com/lbryio/lbry-desktop/releases) also contains the latest
release, pre-releases, and past builds. release, pre-releases, and past builds.
@ -31,7 +31,7 @@ _Note: If the deb fails to install using the Ubuntu Software Center, install man
To install from source or make changes to the application, continue to the next section below. To install from source or make changes to the application, continue to the next section below.
**Community maintained** builds for Arch Linux and Flatpak are available, see below. These installs will need to be updated manually as the in-app update process only supports Debian installs at this time. **Community maintained** builds for Arch Linux and Flatpak are available, see below. These installs will need to be updated manually as the in-app update process only supports Debian installs at this time.
_Note: If coming from a deb install, the directory structure is different and you'll need to [migrate data](https://lbry.io/faq/backup-data)._ _Note: If coming from a deb install, the directory structure is different and you'll need to [migrate data](https://lbry.com/faq/backup-data)._
| | Flatpak | Arch | Raspberry Pi | | | Flatpak | Arch | Raspberry Pi |
| -------------- | ------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ------------------------------------------- | | -------------- | ------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ------------------------------------------- |
@ -44,8 +44,6 @@ Double click the installed application to interact with the LBRY network.
## Running from Source ## Running from Source
*Note: We are currently undergoing a lot of internal build changes. If you find any issues, please report them to us.*
#### Prerequisites #### Prerequisites
- [Git](https://git-scm.com/downloads) - [Git](https://git-scm.com/downloads)
@ -80,7 +78,7 @@ This project is MIT licensed. For the full license, see [LICENSE](LICENSE).
## Security ## Security
We take security seriously. Please contact security@lbry.io regarding any security issues. Our PGP key is [here](https://keybase.io/lbry/key.asc) if you need it. We take security seriously. Please contact security@lbry.com regarding any security issues. Our PGP key is [here](https://keybase.io/lbry/key.asc) if you need it.
## Contact ## Contact

View file

@ -6,7 +6,7 @@
"lbry" "lbry"
], ],
"license": "MIT", "license": "MIT",
"homepage": "https://lbry.io/", "homepage": "https://lbry.com/",
"bugs": { "bugs": {
"url": "https://github.com/lbryio/lbry-desktop/issues" "url": "https://github.com/lbryio/lbry-desktop/issues"
}, },
@ -16,7 +16,7 @@
}, },
"author": { "author": {
"name": "LBRY Inc.", "name": "LBRY Inc.",
"email": "hello@lbry.io" "email": "hello@lbry.com"
}, },
"main": "./dist/electron/main.js", "main": "./dist/electron/main.js",
"scripts": { "scripts": {

View file

@ -71,7 +71,7 @@ const startDaemon = async() => {
'Daemon has Exited', 'Daemon has Exited',
'The daemon may have encountered an unexpected error, or another daemon instance is already running. \n\n' + 'The daemon may have encountered an unexpected error, or another daemon instance is already running. \n\n' +
'For more information please visit: \n' + 'For more information please visit: \n' +
'https://lbry.io/faq/startup-troubleshooting' 'https://lbry.com/faq/startup-troubleshooting'
); );
} }
app.quit(); app.quit();

View file

@ -1,5 +1,4 @@
export default async function installDevtools() { export default async function installDevtools() {
console.log('installing');
const { const {
default: installExtension, default: installExtension,
REACT_DEVELOPER_TOOLS, REACT_DEVELOPER_TOOLS,
@ -18,6 +17,4 @@ export default async function installDevtools() {
await installExtension(REACT_PERF) await installExtension(REACT_PERF)
.then(name => console.log(`Added Extension: ${name}`)) .then(name => console.log(`Added Extension: ${name}`))
.catch(err => console.log('An error occurred: ', err)); .catch(err => console.log('An error occurred: ', err));
console.log('all done');
} }

View file

@ -42,14 +42,14 @@ export default () => {
if (browserWindow) { if (browserWindow) {
browserWindow.webContents.send('open-menu', '/help'); browserWindow.webContents.send('open-menu', '/help');
} else { } else {
shell.openExternal('https://lbry.io/faq'); shell.openExternal('https://lbry.com/faq');
} }
}, },
}, },
{ {
label: 'Frequently Asked Questions', label: 'Frequently Asked Questions',
click: () => { click: () => {
shell.openExternal('https://lbry.io/faq'); shell.openExternal('https://lbry.com/faq');
}, },
}, },
{ type: 'separator' }, { type: 'separator' },

View file

@ -9,7 +9,7 @@ type Props = {
const TransactionLink = (props: Props) => { const TransactionLink = (props: Props) => {
const { id } = props; const { id } = props;
const href = `https://explorer.lbry.io/tx/${id}`; const href = `https://explorer.lbry.com/tx/${id}`;
const label = id.substr(0, 7); const label = id.substr(0, 7);
return <Button button="link" href={href} label={label} />; return <Button button="link" href={href} label={label} />;

View file

@ -36,7 +36,7 @@ class FileActions extends React.PureComponent<Props> {
)} )}
{!claimIsMine && ( {!claimIsMine && (
<Tooltip onComponent body={__('Report content')}> <Tooltip onComponent body={__('Report content')}>
<Button icon={ICONS.REPORT} href={`https://lbry.io/dmca?claim_id=${claimId}`} /> <Button icon={ICONS.REPORT} href={`https://lbry.com/dmca?claim_id=${claimId}`} />
</Tooltip> </Tooltip>
)} )}
</React.Fragment> </React.Fragment>

View file

@ -42,13 +42,13 @@ class FormInviteNew extends React.PureComponent<FormProps, FormState> {
return ( return (
<Form onSubmit={this.handleSubmit}> <Form onSubmit={this.handleSubmit}>
<FormField <FormField
type='text' type="text"
label='Email' label="Email"
placeholder='youremail@example.org' placeholder="youremail@example.org"
name='email' name="email"
value={this.state.email} value={this.state.email}
error={errorMessage} error={errorMessage}
inputButton={<Submit label='Invite' disabled={isPending} />} inputButton={<Submit label="Invite" disabled={isPending} />}
onChange={event => { onChange={event => {
this.handleEmailChanged(event); this.handleEmailChanged(event);
}} }}
@ -71,16 +71,16 @@ class InviteNew extends React.PureComponent<Props> {
const { errorMessage, inviteNew, isPending, rewardAmount, referralLink } = this.props; const { errorMessage, inviteNew, isPending, rewardAmount, referralLink } = this.props;
return ( return (
<section className='card card--section'> <section className="card card--section">
<header className='card__header'> <header className="card__header">
<h2 className='card__title'>{__('Invite a Friend')}</h2> <h2 className="card__title">{__('Invite a Friend')}</h2>
<p className='card__subtitle'> <p className="card__subtitle">
{__('When your friends start using LBRY, the network gets stronger!')} {__('When your friends start using LBRY, the network gets stronger!')}
</p> </p>
</header> </header>
<div className='card__content'> <div className="card__content">
<FormInviteNew <FormInviteNew
errorMessage={errorMessage} errorMessage={errorMessage}
inviteNew={inviteNew} inviteNew={inviteNew}
@ -88,16 +88,16 @@ class InviteNew extends React.PureComponent<Props> {
rewardAmount={rewardAmount} rewardAmount={rewardAmount}
/> />
</div> </div>
<div className='card__content'> <div className="card__content">
<CopyableText <CopyableText
label={__('Or share this link with your friends')} label={__('Or share this link with your friends')}
copyable={referralLink} copyable={referralLink}
/> />
<p className='help'> <p className="help">
{__('Earn')} <Button button='link' navigate='/rewards' label={__('rewards')} />{' '} {__('Earn')} <Button button="link" navigate="/rewards" label={__('rewards')} />{' '}
{__('for inviting your friends.')} {__('Read our')}{' '} {__('for inviting your friends.')} {__('Read our')}{' '}
<Button button='link' label={__('FAQ')} href='https://lbry.io/faq/referrals' />{' '} <Button button="link" label={__('FAQ')} href="https://lbry.com/faq/referrals" />{' '}
{__('to learn more about referrals')}. {__('to learn more about referrals')}.
</p> </p>
</div> </div>

View file

@ -372,7 +372,11 @@ class PublishForm extends React.PureComponent<Props> {
? __('You are currently editing a claim.') ? __('You are currently editing a claim.')
: __('What are you publishing?')}{' '} : __('What are you publishing?')}{' '}
{__('Read our')}{' '} {__('Read our')}{' '}
<Button button="link" label={__('FAQ')} href="https://lbry.io/faq/how-to-publish" />{' '} <Button
button="link"
label={__('FAQ')}
href="https://lbry.com/faq/how-to-publish"
/>{' '}
{__('to learn more.')} {__('to learn more.')}
</p> </p>
</header> </header>
@ -505,7 +509,7 @@ class PublishForm extends React.PureComponent<Props> {
<Button <Button
button="link" button="link"
label={__('Learn more')} label={__('Learn more')}
href="https://lbry.io/faq/naming" href="https://lbry.com/faq/naming"
/> />
</p> </p>
</header> </header>
@ -622,7 +626,7 @@ class PublishForm extends React.PureComponent<Props> {
{__('By continuing, you accept the')}{' '} {__('By continuing, you accept the')}{' '}
<Button <Button
button="link" button="link"
href="https://www.lbry.io/termsofservice" href="https://www.lbry.com/termsofservice"
label={__('LBRY Terms of Service')} label={__('LBRY Terms of Service')}
/> />
. .

View file

@ -58,7 +58,7 @@ class RewardSummary extends React.Component<Props> {
<p className="help"> <p className="help">
{__('Read our')}{' '} {__('Read our')}{' '}
<Button button="link" label={__('FAQ')} href="https://lbry.io/faq/rewards" />{' '} <Button button="link" label={__('FAQ')} href="https://lbry.com/faq/rewards" />{' '}
{__('to learn more about LBRY Rewards')}. {__('to learn more about LBRY Rewards')}.
</p> </p>
</div> </div>

View file

@ -34,7 +34,7 @@ class SocialShare extends React.PureComponent<Props> {
const channelClaimId = const channelClaimId =
value && value.publisherSignature && value.publisherSignature.certificateId; value && value.publisherSignature && value.publisherSignature.certificateId;
const speechPrefix = 'https://spee.ch/'; const speechPrefix = 'https://spee.ch/';
const lbryPrefix = 'https://open.lbry.io/'; const lbryPrefix = 'https://open.lbry.com/';
let speechURL; let speechURL;
let lbryURL; let lbryURL;

View file

@ -47,11 +47,11 @@ class LoadScreen extends React.PureComponent<Props> {
)} )}
</p> </p>
<p> <p>
{__('Reach out to hello@lbry.io for help, or check out')}{' '} {__('Reach out to hello@lbry.com for help, or check out')}{' '}
<Button <Button
button="link" button="link"
className="load-screen__button" className="load-screen__button"
href="https://lbry.io/faq/startup-troubleshooting" href="https://lbry.com/faq/startup-troubleshooting"
label="this link" label="this link"
/> />
. .

View file

@ -63,7 +63,7 @@ export default class SplashScreen extends React.PureComponent<Props, State> {
this.setState({ this.setState({
message: __('Connection Failure'), message: __('Connection Failure'),
details: __( details: __(
'Try closing all LBRY processes and starting again. If this still happens, your anti-virus software or firewall may be preventing LBRY from connecting. Contact hello@lbry.io if you think this is a software bug.' 'Try closing all LBRY processes and starting again. If this still happens, your anti-virus software or firewall may be preventing LBRY from connecting. Contact hello@lbry.com if you think this is a software bug.'
), ),
}); });
}); });

View file

@ -90,7 +90,7 @@ class TransactionList extends React.PureComponent<Props> {
<Button <Button
button="link" button="link"
icon={icons.HELP} icon={icons.HELP}
href="https://lbry.io/faq/transaction-types" href="https://lbry.com/faq/transaction-types"
title={__('Help')} title={__('Help')}
/> />
} }

View file

@ -71,8 +71,8 @@ class UserEmailVerify extends React.PureComponent<Props> {
</div> </div>
<p className="help"> <p className="help">
{__('Email')} <Button button="link" href="mailto:help@lbry.io" label="help@lbry.io" />{' '} {__('Email')} <Button button="link" href="mailto:help@lbry.com" label="help@lbry.com" />{' '}
or join our <Button button="link" href="https://chat.lbry.io" label="chat" />{' '} or join our <Button button="link" href="https://chat.lbry.com" label="chat" />{' '}
{__('if you encounter any trouble verifying.')} {__('if you encounter any trouble verifying.')}
</p> </p>
</div> </div>

View file

@ -45,20 +45,20 @@ class UserPhoneVerify extends React.PureComponent<Props, State> {
const { cancelButton, phoneErrorMessage, phone, countryCode } = this.props; const { cancelButton, phoneErrorMessage, phone, countryCode } = this.props;
return ( return (
<React.Fragment> <React.Fragment>
<section className='card__content'> <section className="card__content">
<p> <p>
{' '} {' '}
{__( {__(
`Please enter the verification code sent to +${countryCode}${phone}. Didn't receive it? ` `Please enter the verification code sent to +${countryCode}${phone}. Didn't receive it? `
)} )}
<Button button='link' onClick={this.reset.bind(this)} label='Go back.' /> <Button button="link" onClick={this.reset.bind(this)} label="Go back." />
</p> </p>
</section> </section>
<Form className='card__content' onSubmit={this.handleSubmit.bind(this)}> <Form className="card__content" onSubmit={this.handleSubmit.bind(this)}>
<FormField <FormField
type='text' type="text"
name='code' name="code"
placeholder='1234' placeholder="1234"
value={this.state.code} value={this.state.code}
onChange={event => { onChange={event => {
this.handleCodeChanged(event); this.handleCodeChanged(event);
@ -68,12 +68,12 @@ class UserPhoneVerify extends React.PureComponent<Props, State> {
inputButton={<Submit label={__('Verify')} />} inputButton={<Submit label={__('Verify')} />}
/> />
<div className='card__actions'>{cancelButton}</div> <div className="card__actions">{cancelButton}</div>
</Form> </Form>
<p className='help'> <p className="help">
{__('Email')} <Button button='link' href='mailto:help@lbry.io' label='help@lbry.io' /> or {__('Email')} <Button button="link" href="mailto:help@lbry.com" label="help@lbry.com" />{' '}
join our <Button button='link' href='https://chat.lbry.io' label='chat' />{' '} or join our <Button button="link" href="https://chat.lbry.com" label="chat" />{' '}
{__('if you encounter any trouble with your code.')} {__('if you encounter any trouble with your code.')}
</p> </p>
</React.Fragment> </React.Fragment>

View file

@ -64,7 +64,7 @@ class UserVerify extends React.PureComponent<Props> {
{__('A $1 authorization may temporarily appear with your provider.')}{' '} {__('A $1 authorization may temporarily appear with your provider.')}{' '}
<Button <Button
button="link" button="link"
href="https://lbry.io/faq/identity-requirements" href="https://lbry.com/faq/identity-requirements"
label={__('Read more about why we do this.')} label={__('Read more about why we do this.')}
/> />
</div> </div>
@ -95,7 +95,7 @@ class UserVerify extends React.PureComponent<Props> {
<div className="help"> <div className="help">
{__('Standard messaging rates apply. Having trouble?')}{' '} {__('Standard messaging rates apply. Having trouble?')}{' '}
<Button button="link" href="https://lbry.io/faq/phone" label={__('Read more.')} /> <Button button="link" href="https://lbry.com/faq/phone" label={__('Read more.')} />
</div> </div>
</div> </div>
</section> </section>
@ -116,7 +116,7 @@ class UserVerify extends React.PureComponent<Props> {
<div className="card__content"> <div className="card__content">
<div className="card__actions"> <div className="card__actions">
<Button <Button
href="https://chat.lbry.io" href="https://chat.lbry.com"
button="primary" button="primary"
icon={icons.CHAT} icon={icons.CHAT}
label={__('Join LBRY Chat')} label={__('Join LBRY Chat')}

View file

@ -103,7 +103,11 @@ class WalletSendTip extends React.PureComponent<Props, State> {
helper={ helper={
<p> <p>
{__(`This will appear as a tip for "${title}".`)}{' '} {__(`This will appear as a tip for "${title}".`)}{' '}
<Button label={__('Learn more')} button="link" href="https://lbry.io/faq/tipping" /> <Button
label={__('Learn more')}
button="link"
href="https://lbry.com/faq/tipping"
/>
</p> </p>
} }
/> />

View file

@ -1,5 +0,0 @@
export const NO_DEPOSITS = 'no_deposits';
export const RECEIVED = 'received';
export const COMPLETE = 'complete';
export const AVAILABLE = 'available';
export const UNAVAILABLE = 'unavailable';

View file

@ -26,7 +26,7 @@ class ModalAuthFailure extends React.PureComponent<Props> {
<section className="card__content"> <section className="card__content">
<p> <p>
{__( {__(
'If reloading does not fix this, or you see this at every start up, please email help@lbry.io.' 'If reloading does not fix this, or you see this at every start up, please email help@lbry.com.'
)} )}
</p> </p>
</section> </section>

View file

@ -31,7 +31,7 @@ class ModalIncompatibleDaemon extends React.PureComponent<Props> {
<Button <Button
button="link" button="link"
label={__('Learn more')} label={__('Learn more')}
href="https://lbry.io/faq/incompatible-protocol-version" href="https://lbry.com/faq/incompatible-protocol-version"
/> />
. .
</p> </p>

View file

@ -50,7 +50,7 @@ class ModalRewardCode extends React.PureComponent<Props, State> {
{'. '} {'. '}
<Button <Button
button="link" button="link"
href="https://lbry.io/faq/rewards#reward-code" href="https://lbry.com/faq/rewards#reward-code"
label={__('Learn more')} label={__('Learn more')}
/> />
. .

View file

@ -18,7 +18,7 @@ class ModalTransactionFailed extends React.PureComponent<Props> {
onConfirmed={closeModal} onConfirmed={closeModal}
> >
<section className="card__content"> <section className="card__content">
<p>{__('Sorry about that. Contact help@lbry.io if you continue to have issues.')}</p> <p>{__('Sorry about that. Contact help@lbry.com if you continue to have issues.')}</p>
</section> </section>
</Modal> </Modal>
); );

View file

@ -55,7 +55,7 @@ class ModalWalletDecrypt extends React.PureComponent<Props, State> {
<Button <Button
button="link" button="link"
label={__('Learn more')} label={__('Learn more')}
href="https://lbry.io/faq/wallet-encryption" href="https://lbry.com/faq/wallet-encryption"
/> />
. .
</p> </p>

View file

@ -94,21 +94,21 @@ class ModalWalletEncrypt extends React.PureComponent<Props, State> {
isOpen isOpen
title={__('Encrypt Wallet')} title={__('Encrypt Wallet')}
contentLabel={__('Encrypt Wallet')} contentLabel={__('Encrypt Wallet')}
type='confirm' type="confirm"
confirmButtonLabel={__('Encrypt Wallet')} confirmButtonLabel={__('Encrypt Wallet')}
abortButtonLabel={__('Cancel')} abortButtonLabel={__('Cancel')}
onConfirmed={() => this.submitEncryptForm()} onConfirmed={() => this.submitEncryptForm()}
onAborted={closeModal} onAborted={closeModal}
> >
<Form className='card__content' onSubmit={() => this.submitEncryptForm()}> <Form className="card__content" onSubmit={() => this.submitEncryptForm()}>
<p> <p>
{__( {__(
'Encrypting your wallet will require a password to access your local wallet data when LBRY starts. Please enter a new password for your wallet.' 'Encrypting your wallet will require a password to access your local wallet data when LBRY starts. Please enter a new password for your wallet.'
)}{' '} )}{' '}
<Button <Button
button='link' button="link"
label={__('Learn more')} label={__('Learn more')}
href='https://lbry.io/faq/wallet-encryption' href="https://lbry.com/faq/wallet-encryption"
/> />
. .
</p> </p>
@ -118,8 +118,8 @@ class ModalWalletEncrypt extends React.PureComponent<Props, State> {
error={passwordMismatch === true ? 'Passwords do not match' : false} error={passwordMismatch === true ? 'Passwords do not match' : false}
label={__('Password')} label={__('Password')}
placeholder={__('Shh...')} placeholder={__('Shh...')}
type='password' type="password"
name='wallet-new-password' name="wallet-new-password"
onChange={event => this.onChangeNewPassword(event)} onChange={event => this.onChangeNewPassword(event)}
/> />
</fieldset-section> </fieldset-section>
@ -128,13 +128,13 @@ class ModalWalletEncrypt extends React.PureComponent<Props, State> {
error={passwordMismatch === true ? 'Passwords do not match' : false} error={passwordMismatch === true ? 'Passwords do not match' : false}
label={__('Confirm Password')} label={__('Confirm Password')}
placeholder={__('Your eyes only')} placeholder={__('Your eyes only')}
type='password' type="password"
name='wallet-new-password-confirm' name="wallet-new-password-confirm"
onChange={event => this.onChangeNewPasswordConfirm(event)} onChange={event => this.onChangeNewPasswordConfirm(event)}
/> />
</fieldset-section> </fieldset-section>
<div className='help help--warning'> <div className="help help--warning">
{__( {__(
'If your password is lost, it cannot be recovered. You will not be able to access your wallet without a password.' 'If your password is lost, it cannot be recovered. You will not be able to access your wallet without a password.'
)} )}
@ -143,11 +143,11 @@ class ModalWalletEncrypt extends React.PureComponent<Props, State> {
error={understandError === true ? 'You must enter "I understand"' : false} error={understandError === true ? 'You must enter "I understand"' : false}
label={__('Enter "I understand"')} label={__('Enter "I understand"')}
placeholder={__('Dear computer, I understand')} placeholder={__('Dear computer, I understand')}
type='text' type="text"
name='wallet-understand' name="wallet-understand"
onChange={event => this.onChangeUnderstandConfirm(event)} onChange={event => this.onChangeUnderstandConfirm(event)}
/> />
{failMessage && <div className='error-text'>{__(failMessage)}</div>} {failMessage && <div className="error-text">{__(failMessage)}</div>}
</Form> </Form>
</Modal> </Modal>
); );

View file

@ -42,23 +42,23 @@ class ModalWalletUnlock extends React.PureComponent<Props, State> {
isOpen isOpen
title={__('Unlock Wallet')} title={__('Unlock Wallet')}
contentLabel={__('Unlock Wallet')} contentLabel={__('Unlock Wallet')}
type='confirm' type="confirm"
shouldCloseOnOverlayClick={false} shouldCloseOnOverlayClick={false}
confirmButtonLabel={__('Unlock')} confirmButtonLabel={__('Unlock')}
abortButtonLabel={__('Exit')} abortButtonLabel={__('Exit')}
onConfirmed={() => unlockWallet(password)} onConfirmed={() => unlockWallet(password)}
onAborted={quit} onAborted={quit}
> >
<section className='card__content'> <section className="card__content">
<Form onSubmit={() => unlockWallet(password)}> <Form onSubmit={() => unlockWallet(password)}>
<p> <p>
{__( {__(
'Your wallet has been encrypted with a local password. Please enter your wallet password to proceed.' 'Your wallet has been encrypted with a local password. Please enter your wallet password to proceed.'
)}{' '} )}{' '}
<Button <Button
button='link' button="link"
label={__('Learn more')} label={__('Learn more')}
href='https://lbry.io/faq/wallet-encryption' href="https://lbry.com/faq/wallet-encryption"
/> />
. .
</p> </p>
@ -66,8 +66,8 @@ class ModalWalletUnlock extends React.PureComponent<Props, State> {
autoFocus autoFocus
error={walletUnlockSucceded === false ? 'Incorrect Password' : false} error={walletUnlockSucceded === false ? 'Incorrect Password' : false}
label={__('Wallet Password')} label={__('Wallet Password')}
type='password' type="password"
name='wallet-password' name="wallet-password"
onChange={event => this.onChangePassword(event)} onChange={event => this.onChangePassword(event)}
/> />
</Form> </Form>

View file

@ -56,7 +56,7 @@ class BackupPage extends React.PureComponent<Props> {
For more details on backing up and best practices,{' '} For more details on backing up and best practices,{' '}
<Button <Button
button="link" button="link"
href="https://lbry.io/faq/how-to-backup-wallet" href="https://lbry.com/faq/how-to-backup-wallet"
label={__('see this article')} label={__('see this article')}
/> />
. .

View file

@ -27,7 +27,7 @@ const GetCreditsPage = () => (
<div className="card__actions"> <div className="card__actions">
<Button <Button
button="primary" button="primary"
href="https://lbry.io/faq/earn-credits" href="https://lbry.com/faq/earn-credits"
label={__('Read More')} label={__('Read More')}
/> />
</div> </div>

View file

@ -107,13 +107,13 @@ class HelpPage extends React.PureComponent<Props, State> {
osName = parseInt(ver.os_release.match(/^\d+/), 10) < 16 ? 'Mac OS X' : 'Mac OS'; osName = parseInt(ver.os_release.match(/^\d+/), 10) < 16 ? 'Mac OS X' : 'Mac OS';
platform = `${osName} ${ver.os_release}`; platform = `${osName} ${ver.os_release}`;
newVerLink = 'https://lbry.io/get/lbry.dmg'; newVerLink = 'https://lbry.com/get/lbry.dmg';
} else if (ver.os_system === 'Linux') { } else if (ver.os_system === 'Linux') {
platform = `Linux (${ver.platform})`; platform = `Linux (${ver.platform})`;
newVerLink = 'https://lbry.io/get/lbry.deb'; newVerLink = 'https://lbry.com/get/lbry.deb';
} else { } else {
platform = `Windows (${ver.platform})`; platform = `Windows (${ver.platform})`;
newVerLink = 'https://lbry.io/get/lbry.msi'; newVerLink = 'https://lbry.com/get/lbry.msi';
} }
} else { } else {
ver = null; ver = null;
@ -130,7 +130,7 @@ class HelpPage extends React.PureComponent<Props, State> {
<div className="card__content"> <div className="card__content">
<div className="card__actions"> <div className="card__actions">
<Button <Button
href="https://lbry.io/faq" href="https://lbry.com/faq"
label={__('Read the FAQ')} label={__('Read the FAQ')}
icon={icons.HELP} icon={icons.HELP}
button="primary" button="primary"
@ -155,7 +155,7 @@ class HelpPage extends React.PureComponent<Props, State> {
button="primary" button="primary"
label={__('Join Our Chat')} label={__('Join Our Chat')}
icon={icons.CHAT} icon={icons.CHAT}
href="https://chat.lbry.io" href="https://chat.lbry.com"
/> />
</div> </div>
</div> </div>
@ -167,7 +167,7 @@ class HelpPage extends React.PureComponent<Props, State> {
<p className="card__subtitle"> <p className="card__subtitle">
{__('Did something go wrong? Have a look in your log file, or send it to')}{' '} {__('Did something go wrong? Have a look in your log file, or send it to')}{' '}
<Button button="link" label={__('support')} href="https://lbry.io/faq/support" />. <Button button="link" label={__('support')} href="https://lbry.com/faq/support" />.
</p> </p>
</header> </header>
@ -193,7 +193,7 @@ class HelpPage extends React.PureComponent<Props, State> {
<p className="card__subtitle"> <p className="card__subtitle">
{__('Did you find something wrong? Think LBRY could add something useful and cool?')}{' '} {__('Did you find something wrong? Think LBRY could add something useful and cool?')}{' '}
<Button button="link" label={__('Learn more')} href="https://lbry.io/faq/support" />. <Button button="link" label={__('Learn more')} href="https://lbry.com/faq/support" />.
</p> </p>
</header> </header>
@ -244,7 +244,7 @@ class HelpPage extends React.PureComponent<Props, State> {
{user.primary_email}{' '} {user.primary_email}{' '}
<Button <Button
button="link" button="link"
href={`https://lbry.io/list/edit/${accessToken}`} href={`https://lbry.com/list/edit/${accessToken}`}
label={__('Update mailing preferences')} label={__('Update mailing preferences')}
/> />
</React.Fragment> </React.Fragment>

View file

@ -104,7 +104,7 @@ class ReportPage extends React.Component {
</p> </p>
<p> <p>
{__('Join our')}{' '} {__('Join our')}{' '}
<Button button="link" href="https://discourse.lbry.io/" label={__('tech forum')} />. <Button button="link" href="https://discourse.lbry.com/" label={__('tech forum')} />.
</p> </p>
</div> </div>
</section> </section>

View file

@ -63,7 +63,7 @@ class RewardsPage extends PureComponent<Props> {
)} )}
</p> </p>
<p> <p>
{`${__('If you continue to see this message, send us an email to help@lbry.io.')} ${__( {`${__('If you continue to see this message, send us an email to help@lbry.com.')} ${__(
'Please enjoy free content in the meantime!' 'Please enjoy free content in the meantime!'
)}`} )}`}
</p> </p>
@ -132,8 +132,8 @@ class RewardsPage extends PureComponent<Props> {
<p className="card__content"> <p className="card__content">
{claimed && claimed.length {claimed && claimed.length
? __( ? __(
"You have claimed all available rewards! We're regularly adding more so be sure to check back later." "You have claimed all available rewards! We're regularly adding more so be sure to check back later."
) )
: __('There are no rewards available at this time, please check back later.')} : __('There are no rewards available at this time, please check back later.')}
</p> </p>
</section> </section>

View file

@ -376,7 +376,7 @@ class SettingsPage extends React.PureComponent<Props, State> {
<Button <Button
button="link" button="link"
label={__('Learn more')} label={__('Learn more')}
href="https://lbry.io/faq/wallet-encryption" href="https://lbry.com/faq/wallet-encryption"
/> />
. .
</React.Fragment> </React.Fragment>

View file

@ -83,7 +83,7 @@ class ShowPage extends React.PureComponent<Props> {
</p> </p>
</div> </div>
<div className="card__actions"> <div className="card__actions">
<Button button="link" href="https://lbry.io/faq/dmca" label={__('Read More')} /> <Button button="link" href="https://lbry.com/faq/dmca" label={__('Read More')} />
</div> </div>
</section> </section>
</Page> </Page>

View file

@ -187,7 +187,7 @@ function handleLoadVideoError(uri: string, errorType: string = '') {
} else { } else {
dispatch( dispatch(
doError( doError(
`Failed to download ${uri}, please try again or see error details:\n\n${errorText}\n\nIf this problem persists, visit https://lbry.io/support for help. ` `Failed to download ${uri}, please try again or see error details:\n\n${errorText}\n\nIf this problem persists, visit https://lbry.com/support for help. `
) )
); );
} }

View file

@ -98,7 +98,7 @@ export function doDownloadLanguage(langFile) {
headers: { headers: {
'Content-Type': 'text/html', 'Content-Type': 'text/html',
}, },
host: 'i18n.lbry.io', host: 'i18n.lbry.com',
path: `/langs/${langFile}`, path: `/langs/${langFile}`,
}, },
response => { response => {
@ -153,7 +153,7 @@ export function doDownloadLanguages() {
// return response.json(); // return response.json();
// } // }
// //
// return fetch("http://i18n.lbry.io") // return fetch("http://i18n.lbry.com")
// .then(checkStatus) // .then(checkStatus)
// .then(parseJSON) // .then(parseJSON)
// .then(files => { // .then(files => {

View file

@ -17,11 +17,11 @@ export const selectUpdateUrl = createSelector(
platform => { platform => {
switch (platform) { switch (platform) {
case 'darwin': case 'darwin':
return 'https://lbry.io/get/lbry.dmg'; return 'https://lbry.com/get/lbry.dmg';
case 'linux': case 'linux':
return 'https://lbry.io/get/lbry.deb'; return 'https://lbry.com/get/lbry.deb';
case 'win32': case 'win32':
return 'https://lbry.io/get/lbry.exe'; return 'https://lbry.com/get/lbry.exe';
default: default:
throw Error('Unknown platform'); throw Error('Unknown platform');
} }

View file

@ -1,48 +0,0 @@
// these don't need to be exact
// Shapeshift does a more thorough check on validity
// just general matches to prevent unnecessary api calls
export const coinRegexPatterns = {
BTC: /^[13][a-km-zA-HJ-NP-Z1-9]{25,34}$/,
BCH: /^[13][a-km-zA-HJ-NP-Z1-9]{25,34}$/,
ETH: /^(0x)?[0-9a-fA-F]{40}$/,
DASH: /^X([0-9a-zA-Z]){33}/,
LTC: /^L[a-zA-Z0-9]{26,33}$/,
XMR: /^4[0-9ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{94}$/,
};
const validateAddress = (coinType, address) => {
if (!coinType || !address) return false;
const coinRegex = coinRegexPatterns[coinType.toUpperCase()];
if (!coinRegex) return false;
return coinRegex.test(address);
};
export const validateShapeShiftForm = vals => {
const errors = {};
if (!vals.returnAddress) {
return errors;
}
const isValidAddress = validateAddress(vals.originCoin, vals.returnAddress);
if (!isValidAddress) {
errors.returnAddress = `Enter a valid ${vals.originCoin} address`;
}
return errors;
};
const exampleCoinAddresses = {
BTC: '1745oPaHeW7Fmpb1fUKTtasYfxr4zu9bwq',
BCH: '1745oPaHeW7Fmpb1fUKTtasYfxr4zu9bwq',
ETH: '0x8507cA6a274123fC8f80d929AF9D83602bC4e8cC',
DASH: 'XedBP7vLPFXbS3URjrH2Z57Fg9SWftBmQ6',
LTC: 'LgZivMvFMTDoqcA5weCQ2QrmRp7pa56bBk',
XMR:
'466XMeJEcowYGx7RzUJj3VDWBZgRWErVQQX6tHYbsacS5QF6v3tidE6LZZnTJgzeEh6bKEEJ6GC9jHirrUKvJwVKVj9e7jm',
};
export const getExampleAddress = coin => exampleCoinAddresses[coin];