Coder Social home page Coder Social logo

qascade / yast Goto Github PK

View Code? Open in Web Editor NEW
32.0 3.0 10.0 4.38 MB

Yet Another Streaming Tool

License: BSD 3-Clause "New" or "Revised" License

Go 100.00%
bubbletea command-line-tool gocolly golang movies streaming terminal-user-interface torrent tui tv-series

yast's Introduction

Hi ๐Ÿ‘‹, I'm Shubh Karman Singh

A Computer Science Engineer, guitarist and self-proclaimed computer science lover. I work as a Data Engineer at LiveRamp

  • ๐Ÿ”ญ I built a Data Clean Room Solution: dcr

  • ๐Ÿ“ I'm accepting PR's for my projects dcr, Yet Another Streaming Tool.

  • ๐ŸŒฑ Iโ€™m currently learning Distributed Systems, Scala and Spark.

  • ๐Ÿ‘จโ€๐Ÿ’ป All of my projects are available at https://github.com/qascade

  • ๐Ÿ’ฌ Ask me about golang, rust, databases, differential privacy, confidential computing, containers, docker, binary exploitation, computer-networks

  • ๐Ÿ“ซ How to reach me [email protected]

  • ๐Ÿ“„ Know about my experiences here

  • โšก Fun fact I am very passionate about everything jazz, neo-soul and RnB. I have collected and completed all the AC Games...

Connect with me:

qascade qascade

Languages and Tools:

bash c cplusplus docker git go javascript linux mysql nodejs postgresql python rust

My GitHub Language Stats SK's GitHub stats

yast's People

Contributors

ash-kamrip avatar katarzynakawala avatar moazfarrukh avatar monika-sivakumar-3 avatar qascade avatar shivams21 avatar tiklup11 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

Watchers

 avatar  avatar  avatar

yast's Issues

test(tui): refactor tui tests to include tui tests in github actions workflow

For now, tests written to check and render tui are just written locally and are commented, before pushing on GitHub. The tests fail because BubbleTea can't find a terminal to render on while running an actions workflow. We need to find a way to make these tests run on GitHub actions as well to catch any unwanted behavior before pushing it to the main. We need to find a way to fool bubbletea that it is throwing output on a terminal and convert the output to a byte buffer, hash it using any hashing algorithm. Some functions to hash a string using SHA algo, already exist in the repo. and compare the hash with the desired output's hash, which was stored separately after manually verifying the correct output.

migrate from webtorrent-cli to webtorrent-api

No library for webtorrent-api is available in golang. Will need to either implement it or find a different bit-torrent library as a base to build upon. Might look into possibility of calling js code from go.

Add Windows support to yast

Description

As the config utilities were developed keeping Unix FileSystem in mind. We need to add support for creating config files of yast in the Windows File System. This issue was brought to the notice by @notafk-rajat in #28.

Hey @qascade , So I was going through readme.md to setup yast on my local environment. I got stuck at step 6 for a while so I had to do go run main.go to run the program. So we might need to check into that too.

But still I'm not able to anything after that. .yast/setup is not working

Screenshot 2022-10-04 233759

Also webtorrent-cli is not installing correctly

image

How are you planning to resolve on this issue?

First I would check which operating system, I am currently running yast on. Then accordingly I will choose a path for YAST_WORKDIR defined in utils/constants.go. Then, make changes to config functions.

Acceptance Criteria

  1. No behavioral changes should be observed while running yast on environments other than windows.
  2. yast should show the same behavior as other environments on windows.
  3. TUI should behave almost identically to its behavior in Unix environments, If this is not possible, we have to find alternatives or fallback accordingly.

Are you raising this issue under hacktoberfest?

Yes, I'm raising this issue under hacktoberfest 2022. This is a issue for experienced developer. You need experience of working with different environments. Have understanding of how all modules of yast work internally and have knowledge of both Unix and
Windows File System APIs and how to work with both of them in Go.

testing linux support for yast

Description

We believe that yast supports linux environments because the same FileSystem API works on both Linux and MacOS. yast has been tested and vetted for properly working on macOS. But we need to test the same for Linux OSes such as Ubuntu, Fedora, Debian based distros.
If in some environment, it does not work? Is there a way to fix it? Do we need to make some changes to the code or provide additional documentation instructions/installation instructions for different environments?

Are you raising this issue under hacktoberfest?

Yes, I'm raising this issue under hacktoberfest 2022. This is a beginner issue, should only require small code changes and some documentation changes.

bug- player field in config.json comes out empty if user does not choose a player

Description:
If you run ./yast setup and do not choose a player. The config.json gets created with empty string. This is not a desired behaviour intended for the aforementioned command.

How to fix this bug

  • Option 1: Throw an error if user does not choose a player.
    Removing Option 2: We should let the user quit as per his/her discretion and the config file should not be created, if the setup model was quit before chosing a player. The reason is very simple, we can't force the user to setup yast, its his/her choice.
  • Option2: We can refresh the model to ask the user to choose a player until he finally chooses.

Also, please make sure that config.json is not created or deleted if created, if user does not choose a player while running yast setup for the first time.

Please note yast setup and yast config --reset are aliases of each other. So, if you could find a way to remove duplicacy of code anywhere, it is highly appreciated.

feat: add filter support on query results

The filter function for query results is yet to be implemented. Implement the same, so that user can filter on the basis of Video Quality, No. of seeds or more such parameters as seems fit.

Update Readme before beta release

[ ] Add Installation process
[ ] Add docs for commands reference
[ ] Add WebTorrent installation steps as required for yast to work
[ ] Say that VLC is recommended for now, as it tried and tested
[ ] Add Contributions.md

wsl support for yast

Description

yast currently only supports Unix environments. We need to test whether it is possible to install and run yast on WSL (Windows SubSystem for Linux) or not. If not? Is there a way to fix it? Do we need to make some changes to the code or provide additional documentation instructions for the different environments? This issue was brought to notice by @notafk-rajat in #28

Are you raising this issue under hacktoberfest?

Yes, I'm raising this issue under hacktoberfest 2022. This is a beginner issue, should only require small code changes and some documentation changes.

Add CODE_OF_CONDUCT.md

Since this project is a part of hactoberfest and in general a CODE_OF_CONDUCT.md should be there and rename contributions.md to CONTRIBUTING.md as a general convention

fix: stacked error messages.

As our major focus was on streaming feature to start. Not much care was taken while writing err messages. Need to modify err messages to only show the direct cause of the err.

feat(tui): implement query history and model to render for the same.

We need to implement query history for users to directly choose magnets, they searched for previously.

Acceptance Criteria:

  1. No Duplicate Entries in the registry.
  2. Filter support for search based on name
  3. Add simple command to print out top queries searched recently and give options to choose and run the same.

Update Github actions node version to 16

Description

Node 12 has been out of support since April 2022. Github actions have started using node 16 and the usage of old version in the workflow config is leading to the following warning:
To see the warnings

  1. Go to Actions tab in Github
  2. Select any succeeded workflow run
  3. You will see warnings below the workflow run details.

Screenshots

Screenshot 2022-10-26 at 7 16 26 PM

Do you want to work on this issue?

No

How are you planning to resolve on this issue?

We need to upgrade the node version to 16 for the actions that shows warning. Follow this page for reference

Are you raising this issue under hacktoberfest? (Remove this section if you are not a hacktoberfest participant)

Yes, I'm raising this issue under hacktoberfest.

bug-UI tests fail on github actions

We should not use testing package for UI tests. It will pass in local terminal but will fail on github actions. This is because bubbletea is not able to understand where to render the view, as github actions is not a terminal type. It considers it as a file and fails.

implement yast setup and yast config

This is functionality must be there before we start creating a wrapper around webtorrent. Will be using json to persist the config data. Will create a directory .yast, it can be discussed where this directory should reside. This will be the directory where data for config generated on user preference and query history for the user will be stored.

refactor:depracate WebTorrent CLI and migrate to anacrolix/torrent.

Description

To remove external dependency as well as promote easier installation. The plan is to deprecate use of WebTorrent CLI, which is essentially a BitTorrent Client clubbed with an HTTP Server for Communication with Video Players.

How are you planning to resolve on this issue?

This Issue will be tackled in a separate branch and the acceptance criteria is that yast's behavior should work the same as the Alpha Release.

Build a website to store the documentation.

Will build a website to store the documentation(For the moment, suggestions are open). It will be easy for users to access how they can install yast at the moment. Preferred languages are simply HTML and CSS. It will be an easy UI. Will store it on Netlify and can be changed to your account if set up. I'm used to Netlify hosting.

testing out webtorrent api

We need also need to explore what APIs Webtorrent can offer. This might give us some ideas for improving yast design. For now trying out how webtorrent api do under the hood when provided with a magnet.

feat: create Docker Image for yast

Description

As per discussions done in issues, #51 and #53, we have come to an conclusion to create a docker image for yast to extend its support over multiple platforms. Initial Idea, is to club yast and webtorrent-cli into one container and vlc into a separate container. You docker-swarm or some custom scripts to connect both of them. One thing is sure that both containers must share same volume to ensure that vlc container can access movie as it gets downloaded by webtorrent-cli.

Acceptance Criteria

  1. The setup of yast should be as minimal as possible.
  2. The size of the container images created should be as minimum as possible.
  3. The behaviour of the image after running should be same as normal native installation in macOS/Linux.

feat(tui): headerModel for the start of yast.

Description

  • HeaderModel is the name we are using for the first model that will run in interactive tui mode.
    Should give options for config, search for movie, series.

  • We can add some random metadata like versions, and developer names.

  • Also generate a yast logo. Let's just go for a single logo first.

  • We can try out different things for later like generating random logos at the start or any other ideas.

Logo Generator Site.

feat(target): add support for more targets.

We need support for more targets for yast search. This will increase the no. of results displayed on the list model. Need to find targets that do not require VPN access.

Make the repo Community Standard Compliant

The doc named contribution.md should be changed to contributing.md according to community standards.

Refer to this link - https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions/setting-guidelines-for-repository-contributors

The issue can be noticed when one goes to - Insights->Community Standards.

It Looks like this right now

community standards

Our goal should be to get green ticks on all the standards eventually. This issue is only of contribution standard.

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.