songs2slides

A tool that automatically finds song lyrics and creates lyric slideshows
git clone https://git.ashermorgan.net/songs2slides/
Log | Files | Refs | README

commit 0a7420c9822a76ea4eff1ca120ae4df5cd9cfda1
parent f2e485f61fd16139755da58ea4d48a0b65df708a
Author: AsherMorgan <59518073+AsherMorgan@users.noreply.github.com>
Date:   Sun, 19 Apr 2020 09:48:43 -0700

Allow blank slides in the middle of songs.

Diffstat:
MSongs2Slides.py | 43++++++++++++++++++++++++++++---------------
1 file changed, 28 insertions(+), 15 deletions(-)

diff --git a/Songs2Slides.py b/Songs2Slides.py @@ -41,22 +41,38 @@ def GetLyrics(artist, song): # Parses the lyrics into blocks def ParseLyrics(lyrics, settings): - # Parse lyrics + # Split lyrics rawLines = lyrics.split("\n") + + # Remove starting and ending newlines + del rawLines[0] + del rawLines[0] + del rawLines[-1] + del rawLines[-1] + + # Parse lyrics into lines lines = [] - BlockSize = settings["lines-per-slide"] + slideSize = settings["lines-per-slide"] for i in range(0, len(rawLines)): - if (rawLines[i] == "" or rawLines[i][0] == "["): - # Start new block on the next line - BlockSize = settings["lines-per-slide"] - elif (BlockSize == settings["lines-per-slide"]): - # Start a new block + if (rawLines[i] == ""): + # Start a new slide without content + lines.append("") + slideSize = 0 + elif (rawLines[i][0] == "["): + # Ignore + pass + elif (slideSize == settings["lines-per-slide"]): + # Start a new slide with content lines.append(rawLines[i]) - BlockSize = 1 + slideSize = 1 + elif (slideSize == 0): + # Continue a blank slide + lines[-1] = lines[-1] + rawLines[i] + slideSize += 1 else: - # Continue a block + # Continue a slide lines[-1] = lines[-1] + "\n" + rawLines[i] - BlockSize += 1 + slideSize += 1 return lines @@ -182,11 +198,8 @@ if (__name__ == "__main__"): rawLines = f.read() # Parse lyrics - newLyrics = [] - for song in rawLines.split("\n\n\n"): - newLyrics += ParseLyrics(song, settings) - if (newLyrics[-1] != ""): - newLyrics += [""] + newLyrics = rawLines.split("\n\n") + del newLyrics[-1] lyrics = newLyrics except: print("There was an error while reviewing the lyrics. The unrevised lyrics will be used instead.")