GithubHelp home page GithubHelp logo

lbryio / lbry-desktop Goto Github PK

View Code? Open in Web Editor NEW
3.6K 99.0 409.0 76.91 MB

A browser and wallet for LBRY, the decentralized, user-controlled content marketplace.

Home Page: https://lbry.tech

License: MIT License

JavaScript 88.81% HTML 0.13% SCSS 11.07%
lbry electron blockchain ui javascript translation react cool

lbry-desktop's Introduction

LBRY App

This repo contains the UI code that powers the official LBRY desktop app. The LBRY app is a graphical browser for the decentralized content marketplace provided by the LBRY protocol. It is essentially the lbry daemon bundled with a UI using Electron.

npm Build Status GitHub contributors

App GIF

Table of Contents

  1. Install
  2. Usage
  3. Running from Source
  4. Contributing
  5. License
  6. Security
  7. Contact

Install

Windows Linux MacOS

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
Latest Stable Release Download Download Download
Latest Pre-release Download Download Download

Our releases page also contains the latest release, pre-releases, and past builds. Note: If the deb fails to install using the Ubuntu Software Center, install manually via sudo dpkg -i <path to deb>. You'll need to run sudo apt-get install -f if this is the first time installing it to install dependencies

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. Note: If coming from a deb install, the directory structure is different and you'll need to migrate data.

Flatpak Arch Nixpkgs ARM/ARM64
Latest Release FlatHub Page AUR Package Nixpkgs Build Guide
Maintainers N/A @RubenKelevra @Enderger @Madiator2011

Usage

Start the installed application to interact with the LBRY network.

Running from Source

Prerequisites

  1. Clone (or fork) this repository: git clone https://github.com/lbryio/lbry-desktop
  2. Change directory into the cloned repository: cd lbry-desktop
  3. If corepack is not enabled, run sudo corepack enable (the sudo is necessary for system-wide installation, if you use container, nvm etc... you might not be forced to use it)
  4. Install the dependencies: yarn

Run the electron app

yarn dev

  • If you want to build and launch the production app you can run yarn build. This will give you an executable inside the /dist folder. We use electron-builder to create distributable packages.

Resetting your Packages

If the app isn't building, or yarn xxx commands aren't working you may need to just reset your node_modules. To do so you can run: rm -r node_modules && yarn or del /s /q node_modules && yarn on Windows.

If you really think something might have gone wrong, you can force your repo to clear everything that doesn't match the repo with git reset --hard HEAD && git clean -fxd && git pull -r

Contributing

We ❤️ contributions from everyone and contributions to this project are encouraged, and compensated. We welcome bug reports, bug fixes and feedback is always appreciated. For more details, see CONTRIBUTING.md.

contributions welcome GitHub contributors

License

This project is MIT licensed. For the full license, see LICENSE.

Security

We take security seriously. Please contact [email protected] regarding any security issues. Our PGP key is here if you need it. Previous versions up to v0.50.2 were signed by Sean Yesmunt. New Releases are signed by Jessop Breth.

Contact

The primary contact for this project is @jessopb.

lbry-desktop's People

Contributors

6ea86b96 avatar akinwale avatar alexliebowitz avatar amelzer avatar btzr-io avatar dalhill avatar dan1d avatar daovist avatar dependabot-preview[bot] avatar dependabot[bot] avatar dispatchcommit avatar eatdostacos avatar hackrush01 avatar igassmann avatar infinite-persistence avatar jackrobison avatar jeffslofish avatar jessopb avatar jobevers avatar kauffj avatar liamcardenas avatar lyoshenka avatar maxiboether avatar mayeaux avatar osilkin98 avatar rafael-xmr avatar ruk33 avatar skhameneh avatar tzarebczan avatar ykris45 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lbry-desktop's Issues

Download directory not checked for existence

The Issue

When changing the download directory string, lbry-app seems to assume it's a valid path.

Steps to reproduce

  1. Go to the settings page
  2. Append something to the download directory string (for instance "/LBRY")
  3. Try to watch something

Expected behaviour

The full path should be checked for existence. If it fails, throw a GUI visible error in lbry-app and possibly ask if the directory should be created.

Actual behaviour

An error is printed on stdout if launced from a terminal, otherwise the stream silently fails with either the message "Requesting stream" or, on a single for me non-repeatable occasion, something about having acquired 0 blocks out of the total amount.

System Configuration

  • LBRY Daemon version: 0.9.1
  • LBRY App version: 0.9.1
  • LBRY Installation ID: A1tVXWpgt4vqV9eUZz7Q
  • Operating system: Linux (Linux-4.11.0-041100rc3-generic-x86_64-with-Ubuntu-16.04-xenial)

Anything Else

Optionally check for write permissions by creating a dummy file?

Search doesn't work for many

The Issue

Steps to reproduce

Expected behaviour

Tell us what should happen

Actual behaviour

Tell us what happens instead

System Configuration

  • LBRY Daemon version:
  • LBRY App version:
  • LBRY Installation ID:
  • Operating system:

Anything Else

Screenshots

build.sh can fail on lbry requirements

./build.sh can fail if lbry requirements get of date. I wasn't sure if it was proper to add pip install -U -r requirements.txt to ./build.sh, so I opened an issue instead.

LBRY daemon does not always launch when the app runs

The Issue

I've heard of this issue on Reddit and from several people on Slack, but I have not experienced it myself.

Several people report that the daemon does not launch when the app is run and that they have to launch it manually to get it to work.

Steps to reproduce

I can't :(

Expected behaviour

App launches daemon.

Actual behaviour

Sometimes it doesn't, apparently.

Channel Subscriptions

The barebones version of this feature consist of the following changes:

  • A button on channel and file pages that allows a user to subscribe and unsubscribe to a channel.
  • User subscriptions are written and stored to local state (and optionally to api.lbry.io).
  • The landing page is modified to indicate recent content from subscribed channels.

gui message: could not authenticate user

The Issue

when loading up the version 10 for the gui for lbry, it stops at the message

LBRY Early Access
An error was encountered that we cannot continue from.

At least we're earning the name beta.

Message: Could not authenticate user

and gives me the option to reload, but wont succeed in anything else

Steps to reproduce

1.run lbry gui from the wisker menu
2.
3.

Expected behaviour

Tell us what should happen
it should open the menu for the gui, just the same way it did for the 9.2 version

Actual behaviour

Tell us what happens instead

System Configuration

{
"id": null,
"jsonrpc": "2.0",
"result": {
"build": "rc",
"lbrynet_update_available": false,
"lbrynet_version": "0.10.0",
"lbryum_version": "2.7.18",
"os_release": "4.4.0-72-generic",
"os_system": "Linux",
"platform": "Linux-4.4.0-72-generic-x86_64-with-LinuxMint-18.1-serena",
"processor": "x86_64",
"python_version": "2.7.12",
"remote_lbrynet": "0.9.1"
}
}

  • LBRY Daemon version:
  • LBRY App version:
  • LBRY Installation ID:
  • Operating system:

Anything Else

the thing is, just a few hours earlier i had the 9.2 version, and it was working ok but the search wasnt working, but realised that a newer version was out and thought that getting that version would probably fix it, so i downloaded that, and let the packadge manager handle the upgrade, which it did without error, then loaded the new gui and then the above problem happens

however, everything still works fine on the command line, and my wallet still has my starter 25 LBC, so im not sure what to do, lol...
lbry gui error

Screenshots

lbrynet-cli does not provide proper usage information

The Issue

The CLI app does not give proper usage messages when a command is issued. There are also several tracebacks reported as shown below.

./lbrynet-cli get
Something went wrong, here's the usage for get:
{u'help': u"\nDownload stream from a LBRY name.\n\nArgs:\n 'name': (str) name to download\n 'file_name'(optional): (str) a user specified name for the downloaded file\n 'stream_info'(optional): (str) specified stream info overrides name\n 'timeout'(optional): (int) download timeout in number of seconds\n 'download_directory'(optional): (str) path to directory where file will be saved\n 'wait_for_write'(optional): (bool) defaults to True. When set, waits for the file to\n only start to be written before returning any results.\nReturns:\n (dict) Dictionary contaning information about the stream\n\n {\n 'completed': (bool) true if download is completed,\n 'file_name': (str) name of file,\n 'download_directory': (str) download directory,\n 'points_paid': (float) credit paid to download file,\n 'stopped': (bool) true if download is stopped,\n 'stream_hash': (str) stream hash of file,\n 'stream_name': (str) stream name ,\n 'suggested_file_name': (str) suggested file name,\n 'sd_hash': (str) sd hash of file,\n 'name': (str) name claim attached to file\n 'outpoint': (str) claim outpoint attached to file\n 'claim_id': (str) claim ID attached to file,\n 'download_path': (str) download path of file,\n 'mime_type': (str) mime type of file,\n 'key': (str) key attached to file,\n 'total_bytes': (int) file size in bytes, None if full_status is false\n 'written_bytes': (int) written size in bytes\n 'message': (str), None if full_status is false\n 'metadata': (dict) Metadata dictionary\n }\n\n"}
Here's the traceback for the error you encountered:
Traceback (most recent call last):
File "site-packages/lbrynet/lbrynet_daemon/DaemonRequest.py", line 94, in requestReceived

File "site-packages/twisted/web/server.py", line 190, in process

File "site-packages/twisted/web/server.py", line 241, in render

File "site-packages/lbrynet/lbrynet_daemon/auth/server.py", line 208, in render

--- ---
File "site-packages/twisted/internet/defer.py", line 150, in maybeDeferred

File "site-packages/twisted/internet/defer.py", line 1436, in unwindGenerator

exceptions.TypeError: jsonrpc_get() takes at least 2 arguments (1 given)

LBRY app does not upgrade properly on Ubuntu 16.10

The Issue

The upgrade process does not successfully update the installed version of LBRY app.

Steps to reproduce

  1. Run 0.9.0
  2. Click "Upgrade" when the app runs
  3. Watch as the updated version downloads successfully and the app closes
  4. And then nothing else happens...

Expected behaviour

At number 4 above, the app would re-open and be on 0.9.1.

Actual behaviour

I have to re-open the app manually and it is still 0.9.0.

System Configuration

  • LBRY Daemon version: 0.9.0
  • LBRY App version: 0.9.0rc15
  • LBRY Installation ID: 62jf7sawDBFBKBJ6vQJ2
  • Operating system: Ubuntu 16.10

Insufficient Funds Error When Publishing

When trying to post a video with insufficient credits for bid the below error appears. There are three issues with this error:

  1. It is not user friendly
  2. The check doesn't come back until a long time after hitting publish (I'm guessing the whole upload happens first which for a multi-GB file is a big waste of time)
  3. Popup error window cannot be closed whole process must be killed (see #23)

Daemon: 0.9.1
lbryum: 2.7.13
Interface 0.9.2rc2
Platform: Win10-10.0.14393 x64

The following error occurred when attempting to publish your file: Traceback (most recent call last): File "site-packages\twisted\internet\defer.py", line 1445, in unwindGenerator File "site-packages\twisted\internet\defer.py", line 1299, in _inlineCallbacks File "site-packages\lbrynet\lbrynet_daemon\Publisher.py", line 56, in make_claim File "site-packages\twisted\internet\defer.py", line 1445, in unwindGenerator --- --- File "site-packages\twisted\internet\defer.py", line 1299, in _inlineCallbacks File "site-packages\lbrynet\core\Wallet.py", line 648, in claim_name lbrynet.core.Error.InsufficientFundsError:

image

Sticky LBRY player on select files that downloaded okay

The Issue

Sticky LBRY player on select files that downloaded okay

Steps to reproduce

  1. Load lbry://@AJJPS/ajjpsthecall
  2. Press play and wait for decentralized package
  3. Stays on black screen, controls will take instructions but player is stuck

Expected behaviour

Tell us what should happen
File replay

Actual behaviour

Tell us what happens instead
Nothing

System Configuration

Win7 x64 Nvidia GeForce

  • LBRY Daemon version:
  • LBRY App version:
  • LBRY Installation ID:
  • Operating system:

Anything Else

ReactDOM.js:73 Download the React DevTools and use an HTTP server (instead of a file: URL) for a better development experience: https://fb.me/react-devtools warning.js:36 Warning: Accessing PropTypes via the main React package is deprecated. Use the prop-types package from npm instead. printWarning @ warning.js:36 warning.js:36 Warning: Line: React.createClass is deprecated and will be removed in version 16. Use plain JavaScript classes instead. If you're not yet ready to migrate, create-react-class is available on npm as a drop-in replacement. printWarning @ warning.js:36 http://localhost:5279/lbryapi Failed to load resource: net::ERR_CONNECTION_REFUSED http://localhost:5279/lbryapi Failed to load resource: net::ERR_CONNECTION_REFUSED http://localhost:5279/lbryapi Failed to load resource: net::ERR_CONNECTION_REFUSED http://localhost:5279/lbryapi Failed to load resource: net::ERR_CONNECTION_REFUSED http://localhost:5279/lbryapi Failed to load resource: net::ERR_CONNECTION_REFUSED http://localhost:5279/lbryapi Failed to load resource: net::ERR_CONNECTION_REFUSED http://localhost:5279/lbryapi Failed to load resource: net::ERR_CONNECTION_REFUSED http://localhost:5279/lbryapi Failed to load resource: net::ERR_CONNECTION_REFUSED http://localhost:5279/lbryapi Failed to load resource: net::ERR_CONNECTION_REFUSED http://localhost:5279/lbryapi Failed to load resource: net::ERR_CONNECTION_REFUSED file:///C:/Users/AJJPS/AppData/Local/Programs/LBRY/resources/app/dist/undefined Failed to load resource: net::ERR_FILE_NOT_FOUND watch.js:189 Stream between 0 and undefined. watch.js:189 Stream between 24 and undefined. watch.js:189 Stream between 217327604 and undefined. mp4-remuxer.js:321 Uncaught TypeError: Cannot read property 'slice' of undefined at mp4-remuxer.js:321 at _combinedTickCallback (internal/process/next_tick.js:67) at process._tickCallback (internal/process/next_tick.js:98) (anonymous) @ mp4-remuxer.js:321 _combinedTickCallback @ internal/process/next_tick.js:67 _tickCallback @ internal/process/next_tick.js:98

Screenshots

We need an android lbry version

The Issue

Need android lbry version

Steps to reproduce

Expected behaviour

Tell us what should happen

Actual behaviour

Tell us what happens instead

System Configuration

  • LBRY Daemon version:
  • LBRY App version:
  • LBRY Installation ID:
  • Operating system:

Anything Else

Screenshots

image error in published main file display

The Issue

Thumbnail is not displayed correctly upon selecting published item, whereas is shown correctly under all published items

Steps to reproduce

  1. Publish content
  2. Check under Published, thumbnail is correct
  3. Click said published item, error appears, no thumbnail :(

Expected behaviour

Thumbnail should be displayed as per screenshot "1"

Actual behaviour

Thumbnail is not displayed tho correctly published, as per screenshot "2"

System Configuration

  • LBRY Daemon version: daemon (lbrynet) 0.10.0
  • LBRY App version: Version 0.10.0 (0.10.0.787)
  • LBRY Installation ID: 87CKm9XupPBoHgD3yGsG6pPayX9F2q2WXjVTDKRDUL5B5Xi6x6mMpKhAAkMHXscCHa
  • Operating system: macOS sierra

Anything Else

Reported for user @heymattsokol in Slack
-these uploads are .zip files, not videos
-each zip contains the mp3s of the album thumbnail is a .jpeg

Screenshots

1

2

A Javascript error occured in the main process

(I migrated, also known as copy/pasted, this issue from here.)

The Issue

Steps to reproduce

  1. just start the App in KDE Manjaro rolling release 17
  2. then close the app
  3. the error apear after 2-3 seconds on screen

Expected behaviour

App should close normally, without any error apearint

Actual behaviour

After closing the App in Manjaro KDE 17.0 Stable Rolling release, this error apear:

A Javascript error occured in the main process

Uncaught Exception:
TypeError: Cannot read property 'loadURL' of null
at ChildProcess.subpy.on (/opt/LBRY/resources/app/main.js:58:10)
at emitTwo (events.js:106:13)
at ChildProcess.emit (events.js:191:7)
at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12)

System Configuration

About

Your copy of LBRY is up to date.

daemon (lbrynet) 0.9.1
wallet (lbryum) 2.7.13
interface 0.9.1
Platform Linux (Linux-4.10.4-1-MANJARO-x86_64-with-ManjaroLinux-17.0-Gellivara)

Screenshots

auswahl_395

[Feature] Top Hall

Show a tab menu with the period (day/week/month/year) and another tab with the type (movie/music/game).
It is an advanced approach based in the Trending tab of YT.

Display Date of Publish for content

"regarding data displayed with content, date of publish would be quite useful. F.ex you are watching an episode on crypto currencies and hear some news ... you don't know how old they are, which is the key info in that case" - thorpe

Doesn't work on Vista

Installing LBRY.Setup.0.9.1.exe on Windows Vista and running LBRY shortcut produces this:

image

And nothing else happens.

Provide an AppImage for Linux distributions

It might be great in the long run to provide the Appimage format next to .deb and .rpm.
While I'd still like to see #44 to be a thing, it would come with even more advantages.

Based off of WaterfoxCo/Waterfox#127

  • Works for most Linux distributions (including Ubuntu, Fedora, openSUSE, CentOS, elementaryOS, Linux Mint, and others)
  • One app = one file = super simple for users: just download one AppImage file, make it executable, and run
  • No unpacking or installation necessary
  • No root needed
  • No system libraries changed
  • Just one format for all major distributions
  • Works out of the box, no installation of runtimes needed (unlike Snap and Flatpak)
  • Optional desktop integration with appimaged
  • Optional binary delta updates, e.g., for continuous builds (only download the binary diff) using AppImageUpdate
  • Can optionally GPG2-sign your AppImages (inside the file)
  • Works on Live ISOs (unlike Flatpak)
  • Can use the same AppImages when dual-booting multiple distributions

Here is an overview of projects that are already distributing upstream-provided, official AppImages.

It might also be great to provide the source files in a .tar.gz format too if it isn't possible.

Fedora version?

Not really a bug report, but I'd love to see a Fedora version, so I can use it.

Various UI Improvements

We could collect in here various small little UI tweaks?:

1.) Back button when in one file view
2.) Clickable categories in the discover view so you can focus in on one category

Download fail of lbry://four

The Issue

Steps to reproduce

  1. Try to download lbry://four

Expected behaviour

download

Actual behaviour

hanging at connected
2017-04-24 22:55:26,101 INFO lbrynet.core.Wallet:579: get claim info lbry://four#70a4753a0648d45346580c5c3dd5363e417d6a02
2017-04-24 22:55:26,101 INFO lbrynet.lbrynet_daemon.Downloader:103: Download lbry://four status changed to initializing
2017-04-24 22:55:26,111 CRITICAL twisted:154: Unhandled error in Deferred:
2017-04-24 22:55:26,112 CRITICAL twisted:154:
Traceback (most recent call last):
File "site-packages\twisted\internet\defer.py", line 1297, in _inlineCallbacks
File "site-packages\twisted\python\failure.py", line 389, in throwExceptionIntoGenerator
File "site-packages\lbrynet\lbrynet_daemon\Downloader.py", line 177, in download
KeyError: 'currency'
2017-04-24 22:55:26,313 INFO lbrynet.lbrynet_daemon.Daemon:1016: Collected 0 lbry files

System Configuration

  • LBRY Daemon version:
    daemon (lbrynet) 0.10.0
    wallet (lbryum) 2.7.18
    interface 0.10.0rc5
    Platform Windows (Windows-10-10.0.10586)
    Installation ID 8eQ21PLjyYLSwM1EHxPB1RpzASaGmoQnpSaQrDu9PGafXrdmcEMsMoYz4yvZnB6zd1

Anything Else

Screenshots

Publish button gets stuck when publishing multiple files in a row

the client gets stuck like this regularly when trying to publish multiple files in a row. I don't know if this is a bug or if it is on my side, but I could not see why it would be on my side.

pasted image at 2017_03_24 12_40 am

Uploads are completed before I attempt another.

It only happens after I publish 2 or 3 files. I can cancel and retry

and another bug in the GUI: when trying to publish with a bid of 0, the user is notified that he must complete the bid field, but the button 'Publish' turns to 'Publishing' and is not accessible to the user, leaving him only the option of cancelling and going through the whole process again

Notify adir92 in Slack when it's fixed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.