maxcurzi / tplay

A terminal ASCII media player. View images, gifs, videos, webcam, YouTube, etc.. directly in the terminal as ASCII art.
MIT License
208 stars 13 forks source link

updating installation instructions, adding subsections, fixing code, removing libmpv code and deleting build.rs #9

Closed neon-mmd closed 1 year ago

neon-mmd commented 1 year ago

Since the build.rs didn't work I had to remove it and remove feature based approach in cargo.toml and I had to also change, remove and reimplement some code and now it works just fine with just the rodio crate so I find it unnecessary to have libmpv code in the project and I also updated the installation instructions in the README and under For Users section added several subsections for Arch Linux, Other Distros and Install using Cargo and also added your package to the aur and now it can be easily installed with this command:

paru -S tplay-git

Also you can view the package here.

Also here is the screenshot of the application working with just rodio crate: demo

Note: There seems to be a minor bug that just pops before the video appears and lasts for a few seconds but other than that everything fine.

maxcurzi commented 1 year ago

Thanks @neon-mmd ! I appreciate your work and enthusiasm!

A couple of notes:

This project is an opportunity for me to learn about some of Rust's characteristics and certain design decisions may not be optimal but they are useful learning opportunities: for example, I decided to retain both libmpv and rodio, but enable them with feature flags. This was to learn how to handle feature flags, build scripts, etcetera. This decision helped me restructure the audio module to reduce coupling and it provided valuable learning. I don't exclude removing libmpv altogether in a future release, but I'd rather keep it for now.

Finally, I tend to check that any significant feature works on both Ubuntu, WSL and Manjaro (I have a couple of VirtualBoxes running for this purpose) but I should soon setup a git workflow to automate some of the tests, thanks for checking and packaging the crate on Arch!!

Is this packaging process done manually every time there will be a new release on crates.io?

For now, give me some time to finalize the audio back-end selection, I have an issue with libmpv-sirno I'm trying to solve, it shouldn't take too long but it's possible I'll just remove that dependency altogether, the rest of the design including the new trait will stay (so there will be some updating to do in this PR).

Once I merge mpv-select back to main let's update this PR and pull it!

neon-mmd commented 1 year ago

Welcome!! :smile:

I respect your decision of keeping both the libmpv and rodio. Before I was just wondering why @maxcurzi has made this decision to have both because If a person knows like one product is better than the other and more profiting than why he would keep two of them like it didn't make sense but since you have made it clear I respect your decision even I learn't alot of things by contributing to your project. so I will not question your decision again.

For the aur packaging, you have to do it manually but it is not that difficult even you can maintain an aur package yourself if you wish so :smile: .

Also if you wish to learn more rust. you can take a look into my project as well. Not asking for a favor. I will leave the decision to look into my project up to you :smile: .

maxcurzi commented 1 year ago

I'm still trying to figure out how to package it in Ubuntu (too many things are going wrong when I try) but I'm slowly learning! I'm happy for you to keep the AUR up to date but ideally I'd like to have GitHub do it for us every time I make a tagged release...

Something to think about to automate a possibly boring manual work!

neon-mmd commented 1 year ago

Yes true!. Ok I guess you should make a post about the new release on reddit and other social media platforms so that people will come to about the new release.

Note: This is just my suggestion if you want to ignore it you can its ok :smile: .

maxcurzi commented 1 year ago

Yes true!. Ok I guess you should make a post about the new release on reddit and other social media platforms so that people will come to about the new release.

Note: This is just my suggestion if you want to ignore it you can its ok 😄 .

Thanks for the suggestion, and I will ignore it :) This new release does not need a public post because the update is invisible to the (few) users who already are happily using v0.3