Git Product home page Git Product logo

lyricurator's People

Contributors

abbassalloum avatar asyncdeveloper245 avatar cloneartist avatar jbarbaran avatar kurtsley avatar mohamedyasser97 avatar redromnon avatar rohitranjan-2702 avatar westerandr avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

lyricurator's Issues

Add a CLI argument that gets all song names for artist

Adding the CLI argument -ls or --listsongs should print all song names for the randomly selected artist instead of printing/tweeting lyrics.
If the user sets a predefined artist with -a/--artist then print all song names for that specific artist

Refactor CLI args controller

The file lyricurator.py calls different functions based on the user's choice of CLI arguments. However, running the bot with just -hs or -hal for example won't work as in the code it requires notwitter to be set to true while it should work alone just fine

Upgrade the CLI argument -la/--listartists

The current implementation of -la/--listartists uses the function get_artist_names which uses get_artists_links inside of it.

The problem is that get_artists_links selects a random first character of an artist's name and fetches this page for example https://www.azlyrics.com/m.html. This means that it only gets artists with names starting with m which is not "all" artists.

One solution is just loop for all letters but this is time consuming and will risk an IP ban from azlyrics.

So the required solution is to edit the argument -la/--listartists and make it accept a letter as an input and then only get artist names that start with that input character.

Note: get_artists_links is used by other functions too so be careful what you change.

Get the list of hot songs

Create the CLI argument -hs/--hotsongs that gets the list of hot songs on the homepage of azlyrics.com and then exits the program.

Running lyricurator without CLI arguments

On running python lyricurator.py without any CLI arguments, it sends a tweet by default.

Instead of this behavior, it is required to force users to at least add -nt/--notwitter or the new CLI argument you would create -t/--twitter that sends the lyrics in a tweet.

If a user executes lyricurator without any arguments, print out argparse's help screen and exit the program.

Restructure CLI arguments

Currently, it's mandatory to use either one of -nt or -t. It makes no sense to use one of those when we only want to print something in the terminal and exit like -la, -ls or the upcoming -hal and -hs.

It's required to make -nt or -t only mandatory when used with any arguments except the ones mentioned above.

Add a Readme file

  • Add a readme file to explain how the program works with its possible argument combinations.
  • Try to make it look good with different markdown styles.
  • Also make a section that explains how people should contribute.
  • Screenshot examples would be a nice bonus.

Get the list of hot albums

Create the CLI argument -hal/--hotalbums that gets the list of hot albums on the homepage of azlyrics.com and then exits the program.

Refactor into modules

It would be nice if someone could refactor this project into modules so it can just act as a CLI lyrics tool with the Twitter feature just as an added feature

Add a CLI argument that gets a full song

Instead of scraping 2 or 3 lines of lyrics, the CLI argument -fs or --fullsong should get the whole song lyrics.

Notes:

  • When this CLI argument is chosen, you must set the -nt/--notwitter to true.
  • If the user didn't write -nt with -fs, then execute -fs and print this below/above the lyrics: 'Full song lyrics can't be tweeted'.
  • If the user wrote both -nt and -fs, then just print the full song lyrics.

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.