Merge branch 'develop'

This commit is contained in:
2020-03-08 02:04:13 +00:00
41 changed files with 16259 additions and 42179 deletions

8
Dockerfile Normal file
View File

@@ -0,0 +1,8 @@
FROM python:3.7.6-slim-buster
RUN mkdir /outputs && mkdir /inputs
COPY ./setup.py /inputs/setup.py
COPY ./src /inputs/src
RUN cd /inputs && python ./setup.py install && cd /outputs

View File

@@ -0,0 +1,19 @@
musicbrainzapi
===============
.. image:: https://img.shields.io/readthedocs/panaetius?style=for-the-badge :target: https://panaetius.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
.. image:: https://img.shields.io/github/v/tag/dtomlinson91/musicbrainzapi-cv-airelogic?style=for-the-badge :alt: GitHub tag (latest by date)
.. image:: https://img.shields.io/github/commit-activity/m/dtomlinson91/musicbrainzapi-cv-airelogic?style=for-the-badge :alt: GitHub commit activity
.. image:: https://img.shields.io/github/issues/dtomlinson91/musicbrainzapi-cv-airelogic?style=for-the-badge :alt: GitHub issues
.. image:: https://img.shields.io/github/license/dtomlinson91/musicbrainzapi-cv-airelogic?style=for-the-badge :alt: GitHubtbc
.. image:: https://img.shields.io/github/languages/code-size/dtomlinson91/musicbrainzapi-cv-airelogic?style=for-the-badge :alt: GitHub code size in bytes
.. image:: https://img.shields.io/github/languages/top/dtomlinson91/musicbrainzapi-cv-airelogic?style=for-the-badge :alt: GitHub top language
.. image:: https://img.shields.io/requires/github/dtomlinson91/musicbrainzapi-cv-airelogic?style=for-the-badge :alt: Requires.io

20
docs/Makefile Normal file
View File

@@ -0,0 +1,20 @@
# Minimal makefile for Sphinx documentation
#
# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = source
BUILDDIR = build
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
.PHONY: help Makefile
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

35
docs/make.bat Normal file
View File

@@ -0,0 +1,35 @@
@ECHO OFF
pushd %~dp0
REM Command file for Sphinx documentation
if "%SPHINXBUILD%" == "" (
set SPHINXBUILD=sphinx-build
)
set SOURCEDIR=source
set BUILDDIR=build
if "%1" == "" goto help
%SPHINXBUILD% >NUL 2>NUL
if errorlevel 9009 (
echo.
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
echo.installed, then set the SPHINXBUILD environment variable to point
echo.to the full path of the 'sphinx-build' executable. Alternatively you
echo.may add the Sphinx directory to PATH.
echo.
echo.If you don't have Sphinx installed, grab it from
echo.http://sphinx-doc.org/
exit /b 1
)
%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
goto end
:help
%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
:end
popd

View File

@@ -0,0 +1,87 @@
@import url("css/theme.css");
.modname {
font-size: 0.8em;
opacity: 0.4;
}
.modname::before {
content: '- ';
}
.title {
font-weight: bold;
font-size: 1.2em;
background-color: #eee;
display: block;
padding: 1px 5px;
border-left: 2px solid #ddd;
}
/*colour of the text in the toc*/
.wy-menu-vertical header, .wy-menu-vertical p.caption{
color: #b26d46;;
}
/*colour of the top left header*/
.wy-side-nav-search{
background-color: #31465a;
}
/*colours of the class definitions*/
.rst-content dl:not(.docutils) dt{
background: #e2d7d1;
color: #0b2852;
border-top: solid 3px #31465a;
}
/*colour of the link in the class defintions*/
.rst-content .viewcode-link, .rst-content .viewcode-back{
color: #4b674a;
}
/*colour of the function definitions*/
.rst-content dl:not(.docutils) dl dt{
border-left: solid 3px #31465a;
background: #e2d7d1;
color: #0b2852;
}
/*colour of the link in the function definitions*/
.rst-content .viewcode-link, .rst-content .viewcode-back{
color: #4b674a;
}
/*edit the width of the body*/
.wy-nav-content{
max-width: 1200px;
}
/*code example blocks*/
.rst-content pre.literal-block, .rst-content div[class^="highlight"] pre, .rst-content .linenodiv pre{
background: #b4bec8;
color: black;
/*border-style: solid;*/
/*border-width: thin;*/
}
/*colour of inline code blocks using ``*/
.rst-content tt.literal, .rst-content tt.literal, .rst-content code.literal{
color: #b26d46;
}
/* Change code blocks font and bump up font size slightly (normally 12px)*/
.rst-content pre.literal-block, .rst-content div[class^="highlight"] pre, .rst-content .linenodiv pre {
font-family: 'Inconsolata', monospace !important;
font-size: 14px !important;
white-space: pre-wrap;
}
/* Change code descriptions and literal blocks (inline code via ``) to match the normal font size being used in the sphinx_RTD_theme text (normally 14px)*/
.rst-content dl:not(.docutils) tt.descname,.rst-content dl:not(.docutils) tt.descclassname,.rst-content dl:not(.docutils) tt.descname,.rst-content dl:not(.docutils) code.descname,.rst-content dl:not(.docutils) tt.descclassname,.rst-content dl:not(.docutils) code.descclassname, code.docutils {
font-family: 'Inconsolata', monospace !important;
font-size: 14px !important;
}
/*variables text*/
dl.class > dd > table.docutils.field-list tbody tr.field-odd.field th.field-name::before{
content: '(Class Attributes) ';
}

20
docs/source/changelog.rst Normal file
View File

@@ -0,0 +1,20 @@
Changelog
==========
All notable changes to this project will be documented in this file.
The format is based on `Keep a Changelog`_
.. _https://keepachangelog.com/en/1.0.0/
and this project adheres to `Semantic Versioning`_
.. _https://semver.org/spec/v2.0.0.html
[1.0.0] - 2020-03-07
------------------------
Added
######
- Initial version

97
docs/source/conf.py Normal file
View File

@@ -0,0 +1,97 @@
# Configuration file for the Sphinx documentation builder.
#
# This file only contains a selection of the most common options. For a full
# list see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html
# -- Path setup --------------------------------------------------------------
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
# import os
# import sys
# sys.path.insert(0, os.path.abspath('.'))
import musicbrainzapi
from musicbrainzapi.__version__ import __version__
import sphinx_rtd_theme
import sphinx_click
# -- Project information -----------------------------------------------------
project = 'musicbrainzapi'
copyright = '2020, Daniel Tomlinson'
author = 'Daniel Tomlinson'
# The full version, including alpha/beta/rc tags
release = __version__
# -- General configuration ---------------------------------------------------
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
'sphinx.ext.autodoc',
'sphinx.ext.viewcode',
'sphinx.ext.napoleon',
'sphinx.ext.todo',
'sphinx_click.ext',
]
# -- Napoleon Settings -----------------------------------------------------
napoleon_google_docstring = False
napoleon_numpy_docstring = True
napoleon_include_init_with_doc = True
napoleon_include_private_with_doc = True
napoleon_include_special_with_doc = False
napoleon_use_admonition_for_examples = False
napoleon_use_admonition_for_notes = False
napoleon_use_admonition_for_references = False
napoleon_use_ivar = True
napoleon_use_param = True
napoleon_use_rtype = True
napoleon_use_keyword = True
autodoc_member_order = 'bysource'
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
# The master toctree document.
master_doc = 'introduction'
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = []
# -- Options for HTML output -------------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
html_theme = "sphinx_rtd_theme"
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_theme = "sphinx_rtd_theme"
html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
html_static_path = ['_static']
# html_context = {'css_files': ['_static/custom.css']}
html_theme_options = {
'collapse_navigation': True,
'display_version': True,
'prev_next_buttons_location': 'both',
#'navigation_depth': 3,
}
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
# Enable todo
todo_include_todos = True

5
docs/source/global.rst Normal file
View File

@@ -0,0 +1,5 @@
.. role:: modname
:class: modname
.. role:: title
:class: title

3
docs/source/index.rst Normal file
View File

@@ -0,0 +1,3 @@
Table of Contents
=================
.. include:: toc.rst

View File

@@ -0,0 +1 @@
.. include:: ../../toc.rst

View File

@@ -0,0 +1,10 @@
.. include:: ../global.rst
musicbrainzapi.api.authenticate :modname:`musicbrainzapi.api.authenticate module`
------------------------------------------------------------------------------------------
.. automodule:: musicbrainzapi.api.authenticate
:members:
:undoc-members:
:show-inheritance:
:private-members:

View File

@@ -0,0 +1,10 @@
.. include:: ../global.rst
musicbrainzapi.api.lyrics.builder :modname:`musicbrainzapi.api.lyrics.builder`
-------------------------------------------------------------------------------
.. automodule:: musicbrainzapi.api.lyrics.builder
:members:
:undoc-members:
:show-inheritance:
:private-members:

View File

@@ -0,0 +1,10 @@
.. include:: ../global.rst
musicbrainzapi.api.lyrics.concrete_builder :modname:`musicbrainzapi.api.lyrics.concrete_builder`
-------------------------------------------------------------------------------------------------
.. automodule:: musicbrainzapi.api.lyrics.concrete_builder
:members:
:undoc-members:
:show-inheritance:
:private-members:

View File

@@ -0,0 +1,10 @@
.. include:: ../global.rst
musicbrainzapi.api.lyrics.director :modname:`musicbrainzapi.api.lyrics.director`
----------------------------------------------------------------------------------
.. automodule:: musicbrainzapi.api.lyrics.director
:members:
:undoc-members:
:show-inheritance:
:private-members:

View File

@@ -0,0 +1,16 @@
.. include:: ../global.rst
musicbrainzapi.api.lyrics :modname:`musicbrainzapi.api.lyrics`
--------------------------------------------------------------------------
.. automodule:: musicbrainzapi.api.lyrics
:members:
:undoc-members:
:show-inheritance:
:private-members:
.. toctree::
musicbrainzapi.api.lyrics.builder
musicbrainzapi.api.lyrics.concrete_builder
musicbrainzapi.api.lyrics.director

View File

@@ -0,0 +1,19 @@
.. include:: ../global.rst
musicbrainzapi.api :modname:`musicbrainzapi.api`
--------------------------------------------------------------------------
.. automodule:: musicbrainzapi.api
:members:
:undoc-members:
:show-inheritance:
:private-members:
.. toctree::
musicbrainzapi.api.lyrics
.. toctree::
musicbrainzapi.api.authenticate

View File

@@ -0,0 +1,10 @@
.. include:: ../global.rst
musicbrainzapi.cli.cli :modname:`musicbrainzapi.cli.cli`
--------------------------------------------------------------------------
.. automodule:: musicbrainzapi.cli.cli
:members:
:undoc-members:
:show-inheritance:
:private-members:

View File

@@ -0,0 +1,16 @@
.. include:: ../global.rst
musicbrainzapi.cli.commands.cmd_lyrics :modname:`musicbrainzapi.cli.commands.cmd_lyrics`
------------------------------------------------------------------------------------------
.. automodule:: musicbrainzapi.cli.commands.cmd_lyrics
:members:
:undoc-members:
:show-inheritance:
:private-members:
lyrics subcommand. Use with...
.. click:: musicbrainzapi.cli.cli:cli
:prog: musicbrainzapi
:show-nested:

View File

@@ -0,0 +1,14 @@
.. include:: ../global.rst
musicbrainzapi.cli.commands :modname:`musicbrainzapi.cli.commands`
--------------------------------------------------------------------------
.. automodule:: musicbrainzapi.cli.commands
:members:
:undoc-members:
:show-inheritance:
:private-members:
.. toctree::
musicbrainzapi.cli.commands.cmd_lyrics

View File

@@ -0,0 +1,18 @@
.. include:: ../global.rst
musicbrainzapi.cli :modname:`musicbrainzapi.cli`
--------------------------------------------------------------------------
.. automodule:: musicbrainzapi.cli
:members:
:undoc-members:
:show-inheritance:
:private-members:
.. toctree::
musicbrainzapi.cli.commands
.. toctree::
musicbrainzapi.cli.cli

View File

@@ -0,0 +1,12 @@
.. include:: ../global.rst
musicbrainzapi :modname:`musicbrainzapi`
-----------------------------------------
.. automodule:: musicbrainzapi
:members:
:undoc-members:
:show-inheritance:
:private-members:
Main module text

View File

@@ -0,0 +1,10 @@
.. include:: ../global.rst
musicbrainzapi.wordcloud.resources :modname:`musicbrainzapi.wordcloud.resources`
---------------------------------------------------------------------------------
.. automodule:: musicbrainzapi.wordcloud.resources
:members:
:undoc-members:
:show-inheritance:
:private-members:

View File

@@ -0,0 +1,14 @@
.. include:: ../global.rst
musicbrainzapi.wordcloud :modname:`musicbrainzapi.wordcloud`
--------------------------------------------------------------------------
.. automodule:: musicbrainzapi.wordcloud
:members:
:undoc-members:
:show-inheritance:
:private-members:
.. toctree::
musicbrainzapi.wordcloud.resources

23
docs/source/toc.rst Normal file
View File

@@ -0,0 +1,23 @@
.. toctree::
:maxdepth: 1
:caption: Overview
:titlesonly:
introduction
changelog
.. toctree::
:maxdepth: 4
:caption: Modules
:titlesonly:
modules/musicbrainzapi.rst
.. toctree::
:maxdepth: 4
:caption: Submodules
:titlesonly:
modules/musicbrainzapi.api.rst
modules/musicbrainzapi.cli.rst
modules/musicbrainzapi.wordcloud.rst

15024
lyrics_count.json Normal file

File diff suppressed because it is too large Load Diff

301
poetry.lock generated
View File

@@ -6,6 +6,14 @@ optional = false
python-versions = "*" python-versions = "*"
version = "2.2.1" version = "2.2.1"
[[package]]
category = "dev"
description = "A configurable sidebar-enabled Sphinx theme"
name = "alabaster"
optional = false
python-versions = "*"
version = "0.7.12"
[[package]] [[package]]
category = "dev" category = "dev"
description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
@@ -48,6 +56,17 @@ version = "1.5"
[package.dependencies] [package.dependencies]
pycodestyle = ">=2.5.0" pycodestyle = ">=2.5.0"
[[package]]
category = "dev"
description = "Internationalization utilities"
name = "babel"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "2.8.0"
[package.dependencies]
pytz = ">=2015.7"
[[package]] [[package]]
category = "main" category = "main"
description = "Print ASCII tables for terminals" description = "Print ASCII tables for terminals"
@@ -93,7 +112,7 @@ python-versions = "*"
version = "3.0.4" version = "3.0.4"
[[package]] [[package]]
category = "dev" category = "main"
description = "Composable command line interface toolkit" description = "Composable command line interface toolkit"
name = "click" name = "click"
optional = false optional = false
@@ -120,6 +139,14 @@ version = "0.10.0"
[package.dependencies] [package.dependencies]
six = "*" six = "*"
[[package]]
category = "dev"
description = "Docutils -- Python Documentation Utilities"
name = "docutils"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
version = "0.16"
[[package]] [[package]]
category = "main" category = "main"
description = "Internationalized Domain Names in Applications (IDNA)" description = "Internationalized Domain Names in Applications (IDNA)"
@@ -128,6 +155,14 @@ optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "2.9" version = "2.9"
[[package]]
category = "dev"
description = "Getting image size from png/jpeg/jpeg2000/gif file"
name = "imagesize"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "1.2.0"
[[package]] [[package]]
category = "dev" category = "dev"
description = "Read metadata from Python packages" description = "Read metadata from Python packages"
@@ -158,6 +193,20 @@ parso = ">=0.5.2"
[package.extras] [package.extras]
testing = ["colorama (0.4.1)", "docopt", "pytest (>=3.9.0,<5.0.0)"] testing = ["colorama (0.4.1)", "docopt", "pytest (>=3.9.0,<5.0.0)"]
[[package]]
category = "dev"
description = "A very fast and expressive template engine."
name = "jinja2"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
version = "2.11.1"
[package.dependencies]
MarkupSafe = ">=0.23"
[package.extras]
i18n = ["Babel (>=0.8)"]
[[package]] [[package]]
category = "main" category = "main"
description = "A fast implementation of the Cassowary constraint solver" description = "A fast implementation of the Cassowary constraint solver"
@@ -169,6 +218,14 @@ version = "1.1.0"
[package.dependencies] [package.dependencies]
setuptools = "*" setuptools = "*"
[[package]]
category = "dev"
description = "Safely add untrusted strings to HTML/XML markup."
name = "markupsafe"
optional = false
python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*"
version = "1.1.1"
[[package]] [[package]]
category = "main" category = "main"
description = "Python plotting package" description = "Python plotting package"
@@ -255,6 +312,14 @@ optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
version = "0.7.0" version = "0.7.0"
[[package]]
category = "dev"
description = "Python Build Reasonableness"
name = "pbr"
optional = false
python-versions = "*"
version = "5.4.4"
[[package]] [[package]]
category = "main" category = "main"
description = "Python Imaging Library (Fork)" description = "Python Imaging Library (Fork)"
@@ -444,6 +509,14 @@ rope = ["rope (>0.10.5)"]
test = ["versioneer", "pylint", "pytest", "mock", "pytest-cov", "coverage", "numpy", "pandas", "matplotlib", "pyqt5"] test = ["versioneer", "pylint", "pytest", "mock", "pytest-cov", "coverage", "numpy", "pandas", "matplotlib", "pyqt5"]
yapf = ["yapf"] yapf = ["yapf"]
[[package]]
category = "dev"
description = "World timezone definitions, modern and historical"
name = "pytz"
optional = false
python-versions = "*"
version = "2019.3"
[[package]] [[package]]
category = "dev" category = "dev"
description = "Alternative regular expression module, to replace re." description = "Alternative regular expression module, to replace re."
@@ -497,6 +570,131 @@ optional = false
python-versions = "*" python-versions = "*"
version = "2.0.0" version = "2.0.0"
[[package]]
category = "dev"
description = "Python documentation generator"
name = "sphinx"
optional = false
python-versions = ">=3.5"
version = "2.4.4"
[package.dependencies]
Jinja2 = ">=2.3"
Pygments = ">=2.0"
alabaster = ">=0.7,<0.8"
babel = ">=1.3,<2.0 || >2.0"
colorama = ">=0.3.5"
docutils = ">=0.12"
imagesize = "*"
packaging = "*"
requests = ">=2.5.0"
setuptools = "*"
snowballstemmer = ">=1.1"
sphinxcontrib-applehelp = "*"
sphinxcontrib-devhelp = "*"
sphinxcontrib-htmlhelp = "*"
sphinxcontrib-jsmath = "*"
sphinxcontrib-qthelp = "*"
sphinxcontrib-serializinghtml = "*"
[package.extras]
docs = ["sphinxcontrib-websupport"]
test = ["pytest (<5.3.3)", "pytest-cov", "html5lib", "flake8 (>=3.5.0)", "flake8-import-order", "mypy (>=0.761)", "docutils-stubs"]
[[package]]
category = "dev"
description = "Sphinx extension that automatically documents click applications"
name = "sphinx-click"
optional = false
python-versions = "*"
version = "2.3.1"
[package.dependencies]
pbr = ">=2.0"
sphinx = ">=1.5,<3.0"
[[package]]
category = "dev"
description = "Read the Docs theme for Sphinx"
name = "sphinx-rtd-theme"
optional = false
python-versions = "*"
version = "0.4.3"
[package.dependencies]
sphinx = "*"
[[package]]
category = "dev"
description = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books"
name = "sphinxcontrib-applehelp"
optional = false
python-versions = ">=3.5"
version = "1.0.2"
[package.extras]
lint = ["flake8", "mypy", "docutils-stubs"]
test = ["pytest"]
[[package]]
category = "dev"
description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document."
name = "sphinxcontrib-devhelp"
optional = false
python-versions = ">=3.5"
version = "1.0.2"
[package.extras]
lint = ["flake8", "mypy", "docutils-stubs"]
test = ["pytest"]
[[package]]
category = "dev"
description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files"
name = "sphinxcontrib-htmlhelp"
optional = false
python-versions = ">=3.5"
version = "1.0.3"
[package.extras]
lint = ["flake8", "mypy", "docutils-stubs"]
test = ["pytest", "html5lib"]
[[package]]
category = "dev"
description = "A sphinx extension which renders display math in HTML via JavaScript"
name = "sphinxcontrib-jsmath"
optional = false
python-versions = ">=3.5"
version = "1.0.1"
[package.extras]
test = ["pytest", "flake8", "mypy"]
[[package]]
category = "dev"
description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document."
name = "sphinxcontrib-qthelp"
optional = false
python-versions = ">=3.5"
version = "1.0.3"
[package.extras]
lint = ["flake8", "mypy", "docutils-stubs"]
test = ["pytest"]
[[package]]
category = "dev"
description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)."
name = "sphinxcontrib-serializinghtml"
optional = false
python-versions = ">=3.5"
version = "1.1.4"
[package.extras]
lint = ["flake8", "mypy", "docutils-stubs"]
test = ["pytest"]
[[package]] [[package]]
category = "dev" category = "dev"
description = "Python Library for Tom's Obvious, Minimal Language" description = "Python Library for Tom's Obvious, Minimal Language"
@@ -586,7 +784,7 @@ docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
testing = ["jaraco.itertools", "func-timeout"] testing = ["jaraco.itertools", "func-timeout"]
[metadata] [metadata]
content-hash = "6755748d710bead6ddf5f543c09fb33a09b340dcff15466f7e6759ce9c659004" content-hash = "c39a5b0162f2941acee38685feb99d3b417a277744f8b74339775ee621d81872"
python-versions = "^3.7" python-versions = "^3.7"
[metadata.files] [metadata.files]
@@ -594,6 +792,10 @@ addict = [
{file = "addict-2.2.1-py3-none-any.whl", hash = "sha256:1948c2a5d93ba6026eb91aef2c971234aaf72488a9c07ab8a7950f82ae30eea7"}, {file = "addict-2.2.1-py3-none-any.whl", hash = "sha256:1948c2a5d93ba6026eb91aef2c971234aaf72488a9c07ab8a7950f82ae30eea7"},
{file = "addict-2.2.1.tar.gz", hash = "sha256:f22493f056032f50e4931a82444fcba8ef74c8fc994c5d06aa546a1433c2b8b0"}, {file = "addict-2.2.1.tar.gz", hash = "sha256:f22493f056032f50e4931a82444fcba8ef74c8fc994c5d06aa546a1433c2b8b0"},
] ]
alabaster = [
{file = "alabaster-0.7.12-py2.py3-none-any.whl", hash = "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359"},
{file = "alabaster-0.7.12.tar.gz", hash = "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"},
]
appdirs = [ appdirs = [
{file = "appdirs-1.4.3-py2.py3-none-any.whl", hash = "sha256:d8b24664561d0d34ddfaec54636d502d7cea6e29c3eaf68f3df6180863e2166e"}, {file = "appdirs-1.4.3-py2.py3-none-any.whl", hash = "sha256:d8b24664561d0d34ddfaec54636d502d7cea6e29c3eaf68f3df6180863e2166e"},
{file = "appdirs-1.4.3.tar.gz", hash = "sha256:9e5896d1372858f8dd3344faf4e5014d21849c756c8d5701f78f8a103b372d92"}, {file = "appdirs-1.4.3.tar.gz", hash = "sha256:9e5896d1372858f8dd3344faf4e5014d21849c756c8d5701f78f8a103b372d92"},
@@ -609,6 +811,10 @@ attrs = [
autopep8 = [ autopep8 = [
{file = "autopep8-1.5.tar.gz", hash = "sha256:0f592a0447acea0c2b0a9602be1e4e3d86db52badd2e3c84f0193bfd89fd3a43"}, {file = "autopep8-1.5.tar.gz", hash = "sha256:0f592a0447acea0c2b0a9602be1e4e3d86db52badd2e3c84f0193bfd89fd3a43"},
] ]
babel = [
{file = "Babel-2.8.0-py2.py3-none-any.whl", hash = "sha256:d670ea0b10f8b723672d3a6abeb87b565b244da220d76b4dba1b66269ec152d4"},
{file = "Babel-2.8.0.tar.gz", hash = "sha256:1aac2ae2d0d8ea368fa90906567f5c08463d98ade155c0c4bfedd6a0f7160e38"},
]
beautifultable = [ beautifultable = [
{file = "beautifultable-0.8.0-py2.py3-none-any.whl", hash = "sha256:28e2e93d44a4e84511c4869da4b907345435a06728925e295790f24e1d57300c"}, {file = "beautifultable-0.8.0-py2.py3-none-any.whl", hash = "sha256:28e2e93d44a4e84511c4869da4b907345435a06728925e295790f24e1d57300c"},
{file = "beautifultable-0.8.0.tar.gz", hash = "sha256:d44d9551bbed7bfa88675324f84efb9aa857384d44e9fb21eb530f0a0badb815"}, {file = "beautifultable-0.8.0.tar.gz", hash = "sha256:d44d9551bbed7bfa88675324f84efb9aa857384d44e9fb21eb530f0a0badb815"},
@@ -637,10 +843,18 @@ cycler = [
{file = "cycler-0.10.0-py2.py3-none-any.whl", hash = "sha256:1d8a5ae1ff6c5cf9b93e8811e581232ad8920aeec647c37316ceac982b08cb2d"}, {file = "cycler-0.10.0-py2.py3-none-any.whl", hash = "sha256:1d8a5ae1ff6c5cf9b93e8811e581232ad8920aeec647c37316ceac982b08cb2d"},
{file = "cycler-0.10.0.tar.gz", hash = "sha256:cd7b2d1018258d7247a71425e9f26463dfb444d411c39569972f4ce586b0c9d8"}, {file = "cycler-0.10.0.tar.gz", hash = "sha256:cd7b2d1018258d7247a71425e9f26463dfb444d411c39569972f4ce586b0c9d8"},
] ]
docutils = [
{file = "docutils-0.16-py2.py3-none-any.whl", hash = "sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af"},
{file = "docutils-0.16.tar.gz", hash = "sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc"},
]
idna = [ idna = [
{file = "idna-2.9-py2.py3-none-any.whl", hash = "sha256:a068a21ceac8a4d63dbfd964670474107f541babbd2250d61922f029858365fa"}, {file = "idna-2.9-py2.py3-none-any.whl", hash = "sha256:a068a21ceac8a4d63dbfd964670474107f541babbd2250d61922f029858365fa"},
{file = "idna-2.9.tar.gz", hash = "sha256:7588d1c14ae4c77d74036e8c22ff447b26d0fde8f007354fd48a7814db15b7cb"}, {file = "idna-2.9.tar.gz", hash = "sha256:7588d1c14ae4c77d74036e8c22ff447b26d0fde8f007354fd48a7814db15b7cb"},
] ]
imagesize = [
{file = "imagesize-1.2.0-py2.py3-none-any.whl", hash = "sha256:6965f19a6a2039c7d48bca7dba2473069ff854c36ae6f19d2cde309d998228a1"},
{file = "imagesize-1.2.0.tar.gz", hash = "sha256:b1f6b5a4eab1f73479a50fb79fcf729514a900c341d8503d62a62dbc4127a2b1"},
]
importlib-metadata = [ importlib-metadata = [
{file = "importlib_metadata-1.5.0-py2.py3-none-any.whl", hash = "sha256:b97607a1a18a5100839aec1dc26a1ea17ee0d93b20b0f008d80a5a050afb200b"}, {file = "importlib_metadata-1.5.0-py2.py3-none-any.whl", hash = "sha256:b97607a1a18a5100839aec1dc26a1ea17ee0d93b20b0f008d80a5a050afb200b"},
{file = "importlib_metadata-1.5.0.tar.gz", hash = "sha256:06f5b3a99029c7134207dd882428a66992a9de2bef7c2b699b5641f9886c3302"}, {file = "importlib_metadata-1.5.0.tar.gz", hash = "sha256:06f5b3a99029c7134207dd882428a66992a9de2bef7c2b699b5641f9886c3302"},
@@ -649,6 +863,10 @@ jedi = [
{file = "jedi-0.15.2-py2.py3-none-any.whl", hash = "sha256:1349c1e8c107095a55386628bb3b2a79422f3a2cab8381e34ce19909e0cf5064"}, {file = "jedi-0.15.2-py2.py3-none-any.whl", hash = "sha256:1349c1e8c107095a55386628bb3b2a79422f3a2cab8381e34ce19909e0cf5064"},
{file = "jedi-0.15.2.tar.gz", hash = "sha256:e909527104a903606dd63bea6e8e888833f0ef087057829b89a18364a856f807"}, {file = "jedi-0.15.2.tar.gz", hash = "sha256:e909527104a903606dd63bea6e8e888833f0ef087057829b89a18364a856f807"},
] ]
jinja2 = [
{file = "Jinja2-2.11.1-py2.py3-none-any.whl", hash = "sha256:b0eaf100007721b5c16c1fc1eecb87409464edc10469ddc9a22a27a99123be49"},
{file = "Jinja2-2.11.1.tar.gz", hash = "sha256:93187ffbc7808079673ef52771baa950426fd664d3aad1d0fa3e95644360e250"},
]
kiwisolver = [ kiwisolver = [
{file = "kiwisolver-1.1.0-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:7f4dd50874177d2bb060d74769210f3bce1af87a8c7cf5b37d032ebf94f0aca3"}, {file = "kiwisolver-1.1.0-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl", hash = "sha256:7f4dd50874177d2bb060d74769210f3bce1af87a8c7cf5b37d032ebf94f0aca3"},
{file = "kiwisolver-1.1.0-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:fe51b79da0062f8e9d49ed0182a626a7dc7a0cbca0328f612c6ee5e4711c81e4"}, {file = "kiwisolver-1.1.0-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:fe51b79da0062f8e9d49ed0182a626a7dc7a0cbca0328f612c6ee5e4711c81e4"},
@@ -688,6 +906,41 @@ kiwisolver = [
{file = "kiwisolver-1.1.0-cp38-none-win_amd64.whl", hash = "sha256:3b15d56a9cd40c52d7ab763ff0bc700edbb4e1a298dc43715ecccd605002cf11"}, {file = "kiwisolver-1.1.0-cp38-none-win_amd64.whl", hash = "sha256:3b15d56a9cd40c52d7ab763ff0bc700edbb4e1a298dc43715ecccd605002cf11"},
{file = "kiwisolver-1.1.0.tar.gz", hash = "sha256:53eaed412477c836e1b9522c19858a8557d6e595077830146182225613b11a75"}, {file = "kiwisolver-1.1.0.tar.gz", hash = "sha256:53eaed412477c836e1b9522c19858a8557d6e595077830146182225613b11a75"},
] ]
markupsafe = [
{file = "MarkupSafe-1.1.1-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161"},
{file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7"},
{file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183"},
{file = "MarkupSafe-1.1.1-cp27-cp27m-win32.whl", hash = "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b"},
{file = "MarkupSafe-1.1.1-cp27-cp27m-win_amd64.whl", hash = "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e"},
{file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f"},
{file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1"},
{file = "MarkupSafe-1.1.1-cp34-cp34m-macosx_10_6_intel.whl", hash = "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5"},
{file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_i686.whl", hash = "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1"},
{file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735"},
{file = "MarkupSafe-1.1.1-cp34-cp34m-win32.whl", hash = "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21"},
{file = "MarkupSafe-1.1.1-cp34-cp34m-win_amd64.whl", hash = "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235"},
{file = "MarkupSafe-1.1.1-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b"},
{file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f"},
{file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905"},
{file = "MarkupSafe-1.1.1-cp35-cp35m-win32.whl", hash = "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1"},
{file = "MarkupSafe-1.1.1-cp35-cp35m-win_amd64.whl", hash = "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-win32.whl", hash = "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_6_intel.whl", hash = "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-win32.whl", hash = "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c"},
{file = "MarkupSafe-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15"},
{file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2"},
{file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42"},
{file = "MarkupSafe-1.1.1-cp38-cp38-win32.whl", hash = "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b"},
{file = "MarkupSafe-1.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be"},
{file = "MarkupSafe-1.1.1.tar.gz", hash = "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b"},
]
matplotlib = [ matplotlib = [
{file = "matplotlib-3.2.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:0711b07920919951b2c508a773c433cbe07bdad952ea84ed9d18ca7853ccbe8b"}, {file = "matplotlib-3.2.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:0711b07920919951b2c508a773c433cbe07bdad952ea84ed9d18ca7853ccbe8b"},
{file = "matplotlib-3.2.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:b93377c6720e7db9cbba57e856a21aae2ff707677a6ee6b3b9d485f22ed82697"}, {file = "matplotlib-3.2.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:b93377c6720e7db9cbba57e856a21aae2ff707677a6ee6b3b9d485f22ed82697"},
@@ -770,6 +1023,10 @@ pathspec = [
{file = "pathspec-0.7.0-py2.py3-none-any.whl", hash = "sha256:163b0632d4e31cef212976cf57b43d9fd6b0bac6e67c26015d611a647d5e7424"}, {file = "pathspec-0.7.0-py2.py3-none-any.whl", hash = "sha256:163b0632d4e31cef212976cf57b43d9fd6b0bac6e67c26015d611a647d5e7424"},
{file = "pathspec-0.7.0.tar.gz", hash = "sha256:562aa70af2e0d434367d9790ad37aed893de47f1693e4201fd1d3dca15d19b96"}, {file = "pathspec-0.7.0.tar.gz", hash = "sha256:562aa70af2e0d434367d9790ad37aed893de47f1693e4201fd1d3dca15d19b96"},
] ]
pbr = [
{file = "pbr-5.4.4-py2.py3-none-any.whl", hash = "sha256:61aa52a0f18b71c5cc58232d2cf8f8d09cd67fcad60b742a60124cb8d6951488"},
{file = "pbr-5.4.4.tar.gz", hash = "sha256:139d2625547dbfa5fb0b81daebb39601c478c21956dc57e2e07b74450a8c506b"},
]
pillow = [ pillow = [
{file = "Pillow-7.0.0-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:5f3546ceb08089cedb9e8ff7e3f6a7042bb5b37c2a95d392fb027c3e53a2da00"}, {file = "Pillow-7.0.0-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:5f3546ceb08089cedb9e8ff7e3f6a7042bb5b37c2a95d392fb027c3e53a2da00"},
{file = "Pillow-7.0.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:9d2ba4ed13af381233e2d810ff3bab84ef9f18430a9b336ab69eaf3cd24299ff"}, {file = "Pillow-7.0.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:9d2ba4ed13af381233e2d810ff3bab84ef9f18430a9b336ab69eaf3cd24299ff"},
@@ -848,6 +1105,10 @@ python-language-server = [
{file = "python-language-server-0.31.8.tar.gz", hash = "sha256:f5685e1a6a3f6a2529ff75ea0676c59e769024302b2434564a5e7005d056eb82"}, {file = "python-language-server-0.31.8.tar.gz", hash = "sha256:f5685e1a6a3f6a2529ff75ea0676c59e769024302b2434564a5e7005d056eb82"},
{file = "python_language_server-0.31.8-py3-none-any.whl", hash = "sha256:c95470de6da223cdad7e60121bf5d220c292146caf2712eaef47a515c879e29d"}, {file = "python_language_server-0.31.8-py3-none-any.whl", hash = "sha256:c95470de6da223cdad7e60121bf5d220c292146caf2712eaef47a515c879e29d"},
] ]
pytz = [
{file = "pytz-2019.3-py2.py3-none-any.whl", hash = "sha256:1c557d7d0e871de1f5ccd5833f60fb2550652da6be2693c1e02300743d21500d"},
{file = "pytz-2019.3.tar.gz", hash = "sha256:b02c06db6cf09c12dd25137e563b31700d3b80fcc4ad23abb7a315f2789819be"},
]
regex = [ regex = [
{file = "regex-2020.2.20-cp27-cp27m-win32.whl", hash = "sha256:99272d6b6a68c7ae4391908fc15f6b8c9a6c345a46b632d7fdb7ef6c883a2bbb"}, {file = "regex-2020.2.20-cp27-cp27m-win32.whl", hash = "sha256:99272d6b6a68c7ae4391908fc15f6b8c9a6c345a46b632d7fdb7ef6c883a2bbb"},
{file = "regex-2020.2.20-cp27-cp27m-win_amd64.whl", hash = "sha256:974535648f31c2b712a6b2595969f8ab370834080e00ab24e5dbb9d19b8bfb74"}, {file = "regex-2020.2.20-cp27-cp27m-win_amd64.whl", hash = "sha256:974535648f31c2b712a6b2595969f8ab370834080e00ab24e5dbb9d19b8bfb74"},
@@ -888,6 +1149,42 @@ snowballstemmer = [
{file = "snowballstemmer-2.0.0-py2.py3-none-any.whl", hash = "sha256:209f257d7533fdb3cb73bdbd24f436239ca3b2fa67d56f6ff88e86be08cc5ef0"}, {file = "snowballstemmer-2.0.0-py2.py3-none-any.whl", hash = "sha256:209f257d7533fdb3cb73bdbd24f436239ca3b2fa67d56f6ff88e86be08cc5ef0"},
{file = "snowballstemmer-2.0.0.tar.gz", hash = "sha256:df3bac3df4c2c01363f3dd2cfa78cce2840a79b9f1c2d2de9ce8d31683992f52"}, {file = "snowballstemmer-2.0.0.tar.gz", hash = "sha256:df3bac3df4c2c01363f3dd2cfa78cce2840a79b9f1c2d2de9ce8d31683992f52"},
] ]
sphinx = [
{file = "Sphinx-2.4.4-py3-none-any.whl", hash = "sha256:fc312670b56cb54920d6cc2ced455a22a547910de10b3142276495ced49231cb"},
{file = "Sphinx-2.4.4.tar.gz", hash = "sha256:b4c750d546ab6d7e05bdff6ac24db8ae3e8b8253a3569b754e445110a0a12b66"},
]
sphinx-click = [
{file = "sphinx-click-2.3.1.tar.gz", hash = "sha256:793c68b41c4a9435f953e2a27f9bf5883729037b7431f32b2776257c2966bd1b"},
{file = "sphinx_click-2.3.1-py2.py3-none-any.whl", hash = "sha256:8c6274666730686a65efbae0b4465879b030372333de3114aeb63c44204da32e"},
]
sphinx-rtd-theme = [
{file = "sphinx_rtd_theme-0.4.3-py2.py3-none-any.whl", hash = "sha256:00cf895504a7895ee433807c62094cf1e95f065843bf3acd17037c3e9a2becd4"},
{file = "sphinx_rtd_theme-0.4.3.tar.gz", hash = "sha256:728607e34d60456d736cc7991fd236afb828b21b82f956c5ea75f94c8414040a"},
]
sphinxcontrib-applehelp = [
{file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"},
{file = "sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a"},
]
sphinxcontrib-devhelp = [
{file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"},
{file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"},
]
sphinxcontrib-htmlhelp = [
{file = "sphinxcontrib-htmlhelp-1.0.3.tar.gz", hash = "sha256:e8f5bb7e31b2dbb25b9cc435c8ab7a79787ebf7f906155729338f3156d93659b"},
{file = "sphinxcontrib_htmlhelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:3c0bc24a2c41e340ac37c85ced6dafc879ab485c095b1d65d2461ac2f7cca86f"},
]
sphinxcontrib-jsmath = [
{file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"},
{file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"},
]
sphinxcontrib-qthelp = [
{file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"},
{file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"},
]
sphinxcontrib-serializinghtml = [
{file = "sphinxcontrib-serializinghtml-1.1.4.tar.gz", hash = "sha256:eaa0eccc86e982a9b939b2b82d12cc5d013385ba5eadcc7e4fed23f4405f77bc"},
{file = "sphinxcontrib_serializinghtml-1.1.4-py2.py3-none-any.whl", hash = "sha256:f242a81d423f59617a8e5cf16f5d4d74e28ee9a66f9e5b637a18082991db5a9a"},
]
toml = [ toml = [
{file = "toml-0.10.0-py2.7.egg", hash = "sha256:f1db651f9657708513243e61e6cc67d101a39bad662eaa9b5546f789338e07a3"}, {file = "toml-0.10.0-py2.7.egg", hash = "sha256:f1db651f9657708513243e61e6cc67d101a39bad662eaa9b5546f789338e07a3"},
{file = "toml-0.10.0-py2.py3-none-any.whl", hash = "sha256:235682dd292d5899d361a811df37e04a8828a5b1da3115886b73cf81ebc9100e"}, {file = "toml-0.10.0-py2.py3-none-any.whl", hash = "sha256:235682dd292d5899d361a811df37e04a8828a5b1da3115886b73cf81ebc9100e"},

View File

@@ -1,8 +1,12 @@
[tool.poetry] [tool.poetry]
name = "musicbrainzapi" name = "musicbrainzapi"
version = "1.0.0" version = "1.0.0"
description = "" description = "Python module to calculate statistics and generate a wordcloud for a given artist. Uses the Musicbrainz API and the lyrics.ovh API."
license = "MIT"
authors = ["dtomlinson <dtomlinson@panaetius.co.uk>"] authors = ["dtomlinson <dtomlinson@panaetius.co.uk>"]
readme = "/Users/dtomlinson/git-repos/cv/musicbrainzapi/README.rst"
homepage = "https://github.com/dtomlinson91/musicbrainzapi-cv-airelogic"
repository = "https://github.com/dtomlinson91/musicbrainzapi-cv-airelogic"
[tool.poetry.dependencies] [tool.poetry.dependencies]
python = "^3.7" python = "^3.7"
@@ -14,6 +18,7 @@ numpy = "^1.18.1"
beautifultable = "^0.8.0" beautifultable = "^0.8.0"
wordcloud = "^1.6.0" wordcloud = "^1.6.0"
multidict = "^4.7.5" multidict = "^4.7.5"
click = "^7.0"
[tool.poetry.dev-dependencies] [tool.poetry.dev-dependencies]
pytest = "^5.2" pytest = "^5.2"
@@ -27,6 +32,9 @@ autopep8 = "^1.5"
YAPF = "^0.29.0" YAPF = "^0.29.0"
pudb = "^2019.2" pudb = "^2019.2"
pyls-black = "^0.4.4" pyls-black = "^0.4.4"
sphinx = "^2.4.4"
sphinx_rtd_theme = "^0.4.3"
sphinx-click = "^2.3.1"
[tool.poetry.plugins."console_scripts"] [tool.poetry.plugins."console_scripts"]
"musicbrainzapi" = "musicbrainzapi.cli.cli:cli" "musicbrainzapi" = "musicbrainzapi.cli.cli:cli"

71
requirements-dev.txt Normal file
View File

@@ -0,0 +1,71 @@
addict==2.2.1
alabaster==0.7.12
appdirs==1.4.3
atomicwrites==1.3.0; sys_platform == "win32"
attrs==19.3.0
autopep8==1.5
babel==2.8.0
beautifultable==0.8.0
black==19.10b0
certifi==2019.11.28
chardet==3.0.4
click==7.0
colorama==0.4.3; sys_platform == "win32"
cycler==0.10.0
docutils==0.16
idna==2.9
imagesize==1.2.0
importlib-metadata==1.5.0; python_version < "3.8"
jedi==0.15.2
jinja2==2.11.1
kiwisolver==1.1.0
markupsafe==1.1.1
matplotlib==3.2.0
mccabe==0.6.1
more-itertools==8.2.0
multidict==4.7.5
musicbrainzngs==0.7.1
numpy==1.18.1
packaging==20.1
parso==0.6.2
pathspec==0.7.0
pbr==5.4.4
pillow==7.0.0
pluggy==0.13.1
progress==1.5
pudb==2019.2
py==1.8.1
pycodestyle==2.5.0
pydocstyle==5.0.2
pyflakes==2.1.1
pygments==2.5.2
pyls-black==0.4.4
pyparsing==2.4.6
pytest==5.3.5
python-dateutil==2.8.1
python-jsonrpc-server==0.3.4
python-language-server==0.31.8
pytz==2019.3
regex==2020.2.20
requests==2.23.0
rope==0.16.0
six==1.14.0
snowballstemmer==2.0.0
sphinx==2.4.4
sphinx-click==2.3.1
sphinx-rtd-theme==0.4.3
sphinxcontrib-applehelp==1.0.2
sphinxcontrib-devhelp==1.0.2
sphinxcontrib-htmlhelp==1.0.3
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-qthelp==1.0.3
sphinxcontrib-serializinghtml==1.1.4
toml==0.10.0
typed-ast==1.4.1
ujson==1.35; platform_system != "Windows"
urllib3==1.25.8
urwid==2.1.0
wcwidth==0.1.8
wordcloud==1.6.0
yapf==0.29.0
zipp==3.0.0; python_version < "3.8"

View File

@@ -19,6 +19,10 @@ package_data = \
install_requires = \ install_requires = \
['addict>=2.2.1,<3.0.0', ['addict>=2.2.1,<3.0.0',
'beautifultable>=0.8.0,<0.9.0', 'beautifultable>=0.8.0,<0.9.0',
<<<<<<< HEAD
=======
'click>=7.0,<8.0',
>>>>>>> develop
'multidict>=4.7.5,<5.0.0', 'multidict>=4.7.5,<5.0.0',
'musicbrainzngs>=0.7.1,<0.8.0', 'musicbrainzngs>=0.7.1,<0.8.0',
'numpy>=1.18.1,<2.0.0', 'numpy>=1.18.1,<2.0.0',
@@ -32,13 +36,22 @@ entry_points = \
setup_kwargs = { setup_kwargs = {
'name': 'musicbrainzapi', 'name': 'musicbrainzapi',
'version': '1.0.0', 'version': '1.0.0',
<<<<<<< HEAD
'description': '', 'description': '',
'long_description': None, 'long_description': None,
=======
'description': 'Python module to calculate statistics and generate a wordcloud for a given artist. Uses the Musicbrainz API and the lyrics.ovh API.',
'long_description': '',
>>>>>>> develop
'author': 'dtomlinson', 'author': 'dtomlinson',
'author_email': 'dtomlinson@panaetius.co.uk', 'author_email': 'dtomlinson@panaetius.co.uk',
'maintainer': None, 'maintainer': None,
'maintainer_email': None, 'maintainer_email': None,
<<<<<<< HEAD
'url': None, 'url': None,
=======
'url': 'https://github.com/dtomlinson91/musicbrainzapi-cv-airelogic',
>>>>>>> develop
'package_dir': package_dir, 'package_dir': package_dir,
'packages': packages, 'packages': packages,
'package_data': package_data, 'package_data': package_data,

Binary file not shown.

View File

@@ -37,10 +37,6 @@ class Lyrics:
def show_summary(self) -> None: def show_summary(self) -> None:
"""Show the average word count for all lyrics """Show the average word count for all lyrics
Returns
-------
None
""" """
all_averages = [] all_averages = []
@@ -77,10 +73,6 @@ class Lyrics:
---------- ----------
group_by : str group_by : str
Parameter to group statistics by. Valid options are album or year Parameter to group statistics by. Valid options are album or year
Returns
-------
None
""" """
stats_obj = getattr(self, f'{group_by}_statistics') stats_obj = getattr(self, f'{group_by}_statistics')
stats = [ stats = [

View File

@@ -3,7 +3,6 @@ from collections import Counter
import html import html
import json import json
import math import math
import os
import string import string
from typing import Union, Dict from typing import Union, Dict
@@ -88,385 +87,10 @@ class LyricsBuilder(LyricsConcreteBuilder):
@staticmethod @staticmethod
def set_useragent() -> None: def set_useragent() -> None:
"""Sets the useragent for the Musicbrainz api.
"""
authenticate.set_useragent() authenticate.set_useragent()
def __init__(self) -> None:
self.reset()
def reset(self) -> None:
"""Reset the builder and create new product.
"""
self._product = Lyrics()
def find_artists(self) -> None:
"""Find artists from the musicbrainz api
Returns
-------
None
"""
self.musicbrainz_artists = musicbrainzngs.search_artists(
artist=self.artist, country=self.country
)
return self
def sort_artists(self) -> None:
"""Sort the artists from the Musicbrainzapi
Returns
-------
None
"""
self._sort_names = dict(
(i.get('id'), f'{i.get("name")} | {i.get("disambiguation")}')
if i.get('disambiguation') is not None
else (i.get('id'), f'{i.get("name")}')
for i in self.musicbrainz_artists['artist-list']
)
return self
def get_accuracy_scores(self) -> None:
"""Get accuracy scores from the Musicbrainzapi
Returns
-------
None
"""
self._accuracy_scores = dict(
(i.get('id'), int(i.get('ext:score', '0')))
for i in self.musicbrainz_artists['artist-list']
)
return self
def get_top_five_results(self) -> None:
"""Get the top five artists from the Musicbrainzapi
Returns
-------
None
"""
self._top_five_results = dict(
(i, self._accuracy_scores.get(i))
for i in sorted(
self._accuracy_scores,
key=self._accuracy_scores.get,
reverse=True,
)[0:5]
)
return self
def find_all_albums(self) -> None:
"""Find all albums for the chosen artist
Returns
-------
None
"""
limit, offset, page = (100, 0, 1)
resp_0 = addict.Dict(
musicbrainzngs.browse_release_groups(
artist=self.artist_id, release_type=['album'], limit=limit
)
)
total_releases = resp_0['release-group-count']
response_releases = len(resp_0['release-group-list'])
with click.progressbar(
length=total_releases,
label=f'Searching Musicbrainz for all albums from {self.artist}',
) as bar:
release_group_ids = addict.Dict(
(i.id, i.title)
for i in resp_0['release-group-list']
if i.type == 'Album'
)
bar.update(response_releases)
while response_releases > 0:
# Get next page
offset += limit
page += 1
resp_1 = addict.Dict(
musicbrainzngs.browse_release_groups(
artist=self.artist_id,
release_type=['album'],
limit=limit,
offset=offset,
)
)
response_releases = len(resp_1['release-group-list'])
release_group_ids = addict.Dict(
**release_group_ids,
**addict.Dict(
(i.id, i.title)
for i in resp_1['release-group-list']
if i.type == 'Album'
),
)
bar.update(response_releases)
self.release_group_ids = release_group_ids
click.echo(f'Found {len(release_group_ids)} albums for {self.artist}.')
del (resp_0, resp_1)
return self
def find_all_tracks(self) -> None:
"""Find all tracks from all albums.
Returns
-------
None
"""
self.all_albums = list()
total_albums = len(self.release_group_ids)
self.total_track_count = 0
with click.progressbar(
length=total_albums,
label=(
'Searching Musicbrainz for all tracks in all albums for '
f'{self.artist}'
),
) as bar:
for id, alb in self.release_group_ids.items():
resp_0 = addict.Dict(
musicbrainzngs.browse_releases(
release_group=id,
release_type=['album'],
includes=['recordings'],
limit=100,
)
)
album_track_count = [
i['medium-list'][0]['track-count']
for i in resp_0['release-list']
]
self.total_track_count += max(album_track_count)
max_track_pos = album_track_count.index(max(album_track_count))
album_tracks = resp_0['release-list'][max_track_pos]
try:
album_year = resp_0['release-list'][
max_track_pos
].date.split('-')[0]
except TypeError:
album_year = 'Missing'
album_tracks = addict.Dict(
(
alb + f' [{album_year}]',
[
i.recording.title
for i in resp_0['release-list'][max_track_pos][
'medium-list'
][0]['track-list']
],
)
)
self.all_albums.append(album_tracks)
bar.update(1)
# pprint(self.all_albums)
click.echo(
f'Found {self.total_track_count} tracks across'
f' {len(self.release_group_ids)} albums for {self.artist}'
)
del resp_0
return self
def find_lyrics_urls(self) -> None:
"""Construct the URL for the lyrics api.
Returns
-------
None
"""
self.all_albums_lyrics_url = list()
for x in self.all_albums:
for alb, tracks in x.items():
lyrics = addict.Dict(
(
alb,
[
self.construct_lyrics_url(self.artist, i)
for i in tracks
],
)
)
self.all_albums_lyrics_url.append(lyrics)
# pprint(self.all_albums_lyrics_url)
return self
def find_all_lyrics(self) -> None:
"""Get lyrics for each track from the lyrics api
Returns
-------
None
"""
self.all_albums_lyrics = list()
with click.progressbar(
length=self.total_track_count,
label=f'Finding lyrics for {self.total_track_count}'
f' tracks for {self.artist}. This may take some time! ☕️',
) as bar:
bar.update(5)
for x in self.all_albums_lyrics_url:
for alb, urls in x.items():
# bar.update(1)
update = len(urls)
lyrics = addict.Dict(
(alb, [self.request_lyrics_from_url(i) for i in urls])
)
self.all_albums_lyrics.append(lyrics)
bar.update(update)
with open(f'{os.getcwd()}/all_albums_lyrics.json', 'w') as f:
json.dump(self.all_albums_lyrics, f, indent=2)
return self
def count_words_in_lyrics(self) -> None:
"""Count all words in each track
Returns
-------
None
"""
self.all_albums_lyrics_count = list()
# print(self.total_track_count)
with click.progressbar(
length=self.total_track_count, label=f'Processing lyrics'
) as bar:
for x in self.all_albums_lyrics:
for alb, lyrics in x.items():
update = len(lyrics)
bar.update(1)
lyrics = addict.Dict(
(
alb,
[
Counter(i.split()).most_common()
if i is not None
else 'No Lyrics'
for i in lyrics
],
)
)
self.all_albums_lyrics_count.append(lyrics)
bar.update(update - 1)
click.echo(f'Processed lyrics for {self.total_track_count} tracks.')
return self
def calculate_average_all_albums(self) -> None:
"""Summary
Returns
-------
None
Description
"""
self.all_albums_lyrics_sum = list()
album_lyrics = self.all_albums_lyrics_count
# with open(f'{os.getcwd()}/lyrics_count.json', 'r') as f:
# album_lyrics = json.load(f)
count = 0
for i in album_lyrics:
count += len(i)
for album, lyrics_list in i.items():
album_avg = list()
d = addict.Dict()
# print(album)
for j in lyrics_list:
if j != 'No Lyrics':
song_total = 0
for k in j:
song_total += k[1]
else:
song_total = "No Lyrics"
album_avg.append(song_total)
# We want to avoid a ValueError when we loop through
# the first time
try:
d = addict.Dict(**d, **addict.Dict(album, album_avg))
except ValueError:
d = addict.Dict((album, album_avg))
# print(d)
self.all_albums_lyrics_sum.append(d)
# print(count)
# with open(f'{os.getcwd()}/lyrics_sum_all_album.json', 'w+') as f:
# json.dump(self.all_albums_lyrics_sum, f)
# return self
def calculate_final_average_by_album(self) -> None:
"""Calculates descriptive statistics by album.
"""
self.album_statistics = addict.Dict()
album_lyrics = self.all_albums_lyrics_sum
# with open(f'{os.getcwd()}/lyrics_sum_all_album.json', 'r') as f:
# album_lyrics = json.load(f)
for i in album_lyrics:
for album, count in i.items():
# We filter twice, once to remove strings, then to filter
# the integers
_count = [d for d in count if isinstance(d, int)]
_count = [d for d in _count if d > 1]
_d = self.get_descriptive_statistics(_count)
self.album_statistics = addict.Dict(
**self.album_statistics, **addict.Dict((album, _d))
)
# with open(f'{os.getcwd()}/album_statistics.json', 'w') as f:
# json.dump(self.album_statistics, f, indent=2)
# pprint(self.album_statistics)
def calculate_final_average_by_year(self) -> None:
"""Calculates descriptive statistic by year.
"""
group_by_years = addict.Dict()
self.year_statistics = addict.Dict()
album_lyrics = self.all_albums_lyrics_sum
# with open(f'{os.getcwd()}/lyrics_sum_all_album.json', 'r') as f:
# album_lyrics = json.load(f)
# Merge years together
for i in album_lyrics:
for album, count in i.items():
year = album.split('[')[-1].strip(']')
try:
group_by_years = addict.Dict(
**group_by_years, **addict.Dict((year, count))
)
# First loop returns value error for empty dict
except ValueError:
group_by_years = addict.Dict((year, count))
# Multiple years raise a TypeError - we append
except TypeError:
group_by_years.get(year).extend(count)
for year, y_count in group_by_years.items():
_y_count = [d for d in y_count if isinstance(d, int)]
_y_count = [d for d in _y_count if d > 1]
_d = self.get_descriptive_statistics(_y_count)
self.year_statistics = addict.Dict(
**self.year_statistics, **addict.Dict((year, _d))
)
# pprint(self.year_statistics)
@staticmethod @staticmethod
def construct_lyrics_url(artist: str, song: str) -> str: def construct_lyrics_url(artist: str, song: str) -> str:
"""Builds the URL for the lyrics api. """Builds the URL for the lyrics api.
@@ -566,3 +190,331 @@ class LyricsBuilder(LyricsConcreteBuilder):
('count', count), ('count', count),
) )
return _d return _d
def __init__(self) -> None:
self.reset()
def reset(self) -> None:
"""Reset the builder and create new product.
"""
self._product = Lyrics()
def find_artists(self) -> None:
"""Find artists from the musicbrainz api
"""
self.musicbrainz_artists = musicbrainzngs.search_artists(
artist=self.artist, country=self.country
)
return self
def sort_artists(self) -> None:
"""Sort the artists from the Musicbrainzapi
"""
self._sort_names = dict(
(i.get('id'), f'{i.get("name")} | {i.get("disambiguation")}')
if i.get('disambiguation') is not None
else (i.get('id'), f'{i.get("name")}')
for i in self.musicbrainz_artists['artist-list']
)
return self
def get_accuracy_scores(self) -> None:
"""Get accuracy scores from the Musicbrainzapi
"""
self._accuracy_scores = dict(
(i.get('id'), int(i.get('ext:score', '0')))
for i in self.musicbrainz_artists['artist-list']
)
return self
def get_top_five_results(self) -> None:
"""Get the top five artists from the Musicbrainzapi
"""
self._top_five_results = dict(
(i, self._accuracy_scores.get(i))
for i in sorted(
self._accuracy_scores,
key=self._accuracy_scores.get,
reverse=True,
)[0:5]
)
return self
def find_all_albums(self) -> None:
"""Find all albums for the chosen artist
"""
limit, offset, page = (100, 0, 1)
resp_0 = addict.Dict(
musicbrainzngs.browse_release_groups(
artist=self.artist_id, release_type=['album'], limit=limit
)
)
total_releases = resp_0['release-group-count']
response_releases = len(resp_0['release-group-list'])
with click.progressbar(
length=total_releases,
label=f'Searching Musicbrainz for all albums from {self.artist}',
) as bar:
release_group_ids = addict.Dict(
(i.id, i.title)
for i in resp_0['release-group-list']
if i.type == 'Album'
)
bar.update(response_releases)
while response_releases > 0:
# Get next page
offset += limit
page += 1
resp_1 = addict.Dict(
musicbrainzngs.browse_release_groups(
artist=self.artist_id,
release_type=['album'],
limit=limit,
offset=offset,
)
)
response_releases = len(resp_1['release-group-list'])
release_group_ids = addict.Dict(
**release_group_ids,
**addict.Dict(
(i.id, i.title)
for i in resp_1['release-group-list']
if i.type == 'Album'
),
)
bar.update(response_releases)
self.release_group_ids = release_group_ids
click.echo(f'Found {len(release_group_ids)} albums for {self.artist}.')
del (resp_0, resp_1)
return self
def find_all_tracks(self) -> None:
"""Find all tracks from all albums.
"""
self.all_albums = list()
total_albums = len(self.release_group_ids)
self.total_track_count = 0
with click.progressbar(
length=total_albums,
label=(
'Searching Musicbrainz for all tracks in all albums for '
f'{self.artist}'
),
) as bar:
for id, alb in self.release_group_ids.items():
resp_0 = addict.Dict(
musicbrainzngs.browse_releases(
release_group=id,
release_type=['album'],
includes=['recordings'],
limit=100,
)
)
album_track_count = [
i['medium-list'][0]['track-count']
for i in resp_0['release-list']
]
self.total_track_count += max(album_track_count)
max_track_pos = album_track_count.index(max(album_track_count))
album_tracks = resp_0['release-list'][max_track_pos]
try:
album_year = resp_0['release-list'][
max_track_pos
].date.split('-')[0]
except TypeError:
album_year = 'Missing'
album_tracks = addict.Dict(
(
alb + f' [{album_year}]',
[
i.recording.title
for i in resp_0['release-list'][max_track_pos][
'medium-list'
][0]['track-list']
],
)
)
self.all_albums.append(album_tracks)
bar.update(1)
# pprint(self.all_albums)
click.echo(
f'Found {self.total_track_count} tracks across'
f' {len(self.release_group_ids)} albums for {self.artist}'
)
del resp_0
return self
def find_lyrics_urls(self) -> None:
"""Construct the URL for the lyrics api.
"""
self.all_albums_lyrics_url = list()
for x in self.all_albums:
for alb, tracks in x.items():
lyrics = addict.Dict(
(
alb,
[
self.construct_lyrics_url(self.artist, i)
for i in tracks
],
)
)
self.all_albums_lyrics_url.append(lyrics)
# pprint(self.all_albums_lyrics_url)
return self
def find_all_lyrics(self) -> None:
"""Get lyrics for each track from the lyrics api
"""
self.all_albums_lyrics = list()
with click.progressbar(
length=self.total_track_count,
label=f'Finding lyrics for {self.total_track_count}'
f' tracks for {self.artist}. This may take some time! ☕️',
) as bar:
bar.update(5)
for x in self.all_albums_lyrics_url:
for alb, urls in x.items():
# bar.update(1)
update = len(urls)
lyrics = addict.Dict(
(alb, [self.request_lyrics_from_url(i) for i in urls])
)
self.all_albums_lyrics.append(lyrics)
bar.update(update)
return self
def count_words_in_lyrics(self) -> None:
"""Count all words in each track
"""
self.all_albums_lyrics_count = list()
# print(self.total_track_count)
with click.progressbar(
length=self.total_track_count, label=f'Processing lyrics'
) as bar:
for x in self.all_albums_lyrics:
for alb, lyrics in x.items():
update = len(lyrics)
bar.update(1)
lyrics = addict.Dict(
(
alb,
[
Counter(i.split()).most_common()
if i is not None
else 'No Lyrics'
for i in lyrics
],
)
)
self.all_albums_lyrics_count.append(lyrics)
bar.update(update - 1)
click.echo(f'Processed lyrics for {self.total_track_count} tracks.')
return self
def calculate_track_totals(self) -> None:
"""Calculates total words for each track across all albums.
"""
self.all_albums_lyrics_sum = list()
album_lyrics = self.all_albums_lyrics_count
# with open(f'{os.getcwd()}/lyrics_count.json', 'r') as f:
# album_lyrics = json.load(f)
count = 0
for i in album_lyrics:
count += len(i)
for album, lyrics_list in i.items():
album_avg = list()
d = addict.Dict()
for j in lyrics_list:
if j != 'No Lyrics':
song_total = 0
for k in j:
song_total += k[1]
else:
song_total = "No Lyrics"
album_avg.append(song_total)
# We want to avoid a ValueError when we loop through
# the first time
try:
d = addict.Dict(**d, **addict.Dict(album, album_avg))
except ValueError:
d = addict.Dict((album, album_avg))
# print(d)
self.all_albums_lyrics_sum.append(d)
return self
def calculate_final_average_by_album(self) -> None:
"""Calculates descriptive statistics by album.
"""
self.album_statistics = addict.Dict()
album_lyrics = self.all_albums_lyrics_sum
# with open(f'{os.getcwd()}/lyrics_sum_all_album.json', 'r') as f:
# album_lyrics = json.load(f)
for i in album_lyrics:
for album, count in i.items():
# We filter twice, once to remove strings, then to filter
# the integers
_count = [d for d in count if isinstance(d, int)]
_count = [d for d in _count if d > 1]
_d = self.get_descriptive_statistics(_count)
self.album_statistics = addict.Dict(
**self.album_statistics, **addict.Dict((album, _d))
)
# with open(f'{os.getcwd()}/album_statistics.json', 'w') as f:
# json.dump(self.album_statistics, f, indent=2)
# pprint(self.album_statistics)
def calculate_final_average_by_year(self) -> None:
"""Calculates descriptive statistic by year.
"""
group_by_years = addict.Dict()
self.year_statistics = addict.Dict()
album_lyrics = self.all_albums_lyrics_sum
# with open(f'{os.getcwd()}/lyrics_sum_all_album.json', 'r') as f:
# album_lyrics = json.load(f)
# Merge years together
for i in album_lyrics:
for album, count in i.items():
year = album.split('[')[-1].strip(']')
try:
group_by_years = addict.Dict(
**group_by_years, **addict.Dict((year, count))
)
# First loop returns value error for empty dict
except ValueError:
group_by_years = addict.Dict((year, count))
# Multiple years raise a TypeError - we append
except TypeError:
group_by_years.get(year).extend(count)
for year, y_count in group_by_years.items():
_y_count = [d for d in y_count if isinstance(d, int)]
_y_count = [d for d in _y_count if d > 1]
_d = self.get_descriptive_statistics(_y_count)
self.year_statistics = addict.Dict(
**self.year_statistics, **addict.Dict((year, _d))
)

View File

@@ -25,17 +25,13 @@ class LyricsClickDirector:
def _get_initial_artists(self, artist: str, country: str) -> None: def _get_initial_artists(self, artist: str, country: str) -> None:
"""Search Musicbrainz api for an artist """Search Musicbrainz api for an artist
Parameters Parameters
---------- ----------
artist : str artist : str
Artist to search for Artist to search for
country : str country : str
Country artist comes from. Country artist comes from.
Returns
-------
None
""" """
self.builder.artist = artist self.builder.artist = artist
self.builder.country = country self.builder.country = country
@@ -48,11 +44,7 @@ class LyricsClickDirector:
def _confirm_final_artist(self) -> None: def _confirm_final_artist(self) -> None:
"""Confirm the artist from the user. """Confirm the artist from the user.
Returns
-------
None
Raises Raises
------ ------
SystemExit SystemExit
@@ -107,10 +99,6 @@ class LyricsClickDirector:
def _query_for_data(self) -> None: def _query_for_data(self) -> None:
"""Query Musicbrainz api for albums + track data. """Query Musicbrainz api for albums + track data.
Returns
-------
None
""" """
self.builder.find_all_albums() self.builder.find_all_albums()
self.builder.find_all_tracks() self.builder.find_all_tracks()
@@ -119,10 +107,6 @@ class LyricsClickDirector:
def _get_lyrics(self) -> None: def _get_lyrics(self) -> None:
"""Get Lyrics for each track """Get Lyrics for each track
Returns
-------
None
""" """
self.builder.find_lyrics_urls() self.builder.find_lyrics_urls()
self.builder.find_all_lyrics() self.builder.find_all_lyrics()
@@ -130,13 +114,13 @@ class LyricsClickDirector:
self.builder.all_albums_lyrics self.builder.all_albums_lyrics
) )
self.builder.count_words_in_lyrics() self.builder.count_words_in_lyrics()
with open(f'{os.getcwd()}/lyrics_count.json', 'w+') as file: # with open(f'{os.getcwd()}/lyrics_count.json', 'w+') as file:
json.dump( # json.dump(
self.builder.all_albums_lyrics_count, # self.builder.all_albums_lyrics_count,
file, # file,
indent=2, # indent=2,
sort_keys=True, # sort_keys=True,
) # )
self.builder._product.all_albums_lyrics_count = ( self.builder._product.all_albums_lyrics_count = (
self.builder.all_albums_lyrics_count self.builder.all_albums_lyrics_count
) )
@@ -144,12 +128,8 @@ class LyricsClickDirector:
def _calculate_basic_statistics(self) -> None: def _calculate_basic_statistics(self) -> None:
"""Calculate a basic average for all tracks. """Calculate a basic average for all tracks.
Returns
-------
None
""" """
self.builder.calculate_average_all_albums() self.builder.calculate_track_totals()
self.builder._product.all_albums_lyrics_sum = ( self.builder._product.all_albums_lyrics_sum = (
self.builder.all_albums_lyrics_sum self.builder.all_albums_lyrics_sum
) )
@@ -157,10 +137,6 @@ class LyricsClickDirector:
def _calculate_descriptive_statistics(self) -> None: def _calculate_descriptive_statistics(self) -> None:
"""Calculate descriptive statistics for album and/or year. """Calculate descriptive statistics for album and/or year.
Returns
-------
None
""" """
self.builder.calculate_final_average_by_album() self.builder.calculate_final_average_by_album()
self.builder.calculate_final_average_by_year() self.builder.calculate_final_average_by_year()
@@ -170,10 +146,6 @@ class LyricsClickDirector:
def _dev(self) -> None: def _dev(self) -> None:
"""Dev function - used for testing """Dev function - used for testing
Returns
-------
None
""" """
self.builder.calculate_final_average_by_album() self.builder.calculate_final_average_by_album()
self.builder.calculate_final_average_by_year() self.builder.calculate_final_average_by_year()
@@ -188,12 +160,12 @@ class LyricsClickDirector:
@staticmethod @staticmethod
def _get_product(builder_inst: LyricsBuilder) -> Lyrics: def _get_product(builder_inst: LyricsBuilder) -> Lyrics:
"""Returns the constructed Lyrics object """Returns the constructed Lyrics object
Parameters Parameters
---------- ----------
builder_inst : LyricsBuilder builder_inst : LyricsBuilder
Builder class for Lyrics object Builder class for Lyrics object
Returns Returns
------- -------
Lyrics Lyrics

View File

@@ -30,17 +30,9 @@ class ComplexCLI(click.MultiCommand):
rv.sort() rv.sort()
return rv return rv
# def get_command(self, ctx, name):
# try:
# mod = import_module(f'musicbrainzapi.cli.commands.cmd_{name}')
# except ImportError as e:
# print(e)
# return
# return mod.cli
def get_command(self, ctx, name): def get_command(self, ctx, name):
mod = import_module(f'musicbrainzapi.cli.commands.cmd_{name}') mod = import_module(f'musicbrainzapi.cli.commands.cmd_{name}')
return mod.cli return getattr(mod, name)
@click.command(cls=ComplexCLI, context_settings=CONTEXT_SETTINGS) @click.command(cls=ComplexCLI, context_settings=CONTEXT_SETTINGS)

View File

@@ -54,7 +54,7 @@ from musicbrainzapi.api.lyrics.director import LyricsClickDirector
) )
@click.command() @click.command()
@pass_environment @pass_environment
def cli( def lyrics(
ctx, ctx,
artist: str, artist: str,
country: Union[str, None], country: Union[str, None],
@@ -64,23 +64,6 @@ def cli(
save_output: bool, save_output: bool,
) -> None: ) -> None:
"""Search for lyrics statistics of an Artist/Group. """Search for lyrics statistics of an Artist/Group.
Parameters
----------
ctx : musicbrainzapi.cli.cli.Environment
click environment class
artist : str
artist
country : Union[str, None]
country
dev : bool
dev flag - not to be used
show_summary : str
summary flag - used to display descriptive statistics
wordcloud : bool
wordcloud flag - used to create a wordcloud from lyrics
save_output : bool
save output flag - used to save output locally to disk
""" """
director = LyricsClickDirector() director = LyricsClickDirector()
builder = LyricsBuilder() builder = LyricsBuilder()

View File

@@ -1,121 +0,0 @@
[
{
"Up All Night [2011]": [
"You're insecure\nDon't know what for\nYou're turning heads when you walk through the door\nDon't need make-up to cover up\nBeing the way that you are is enough\n\nEveryone else in the room can see it\nEveryone else but you\n\nBaby, you light up my world like nobody else\nThe way that you flip your hair gets me overwhelmed\nBut when you smile at the ground, it ain't hard to tell\nYou don't know\nYou don't know you're beautiful\n\nIf only you saw what I can see\nYou'll understand why I want you so desperately\nRight now I'm looking at you and I can't believe\nYou don't know\nYou don't know you're beautiful, oh oh\nThat's what makes you beautiful\n\nSo come on\nYou got it wrong\nTo prove I'm right, I put it in a song\nI don't know why\nYou're being shy\nAnd turn away when I look into your eyes\n\nEveryone else in the room can see it\nEveryone else but you\n\nBaby, you light up my world like nobody else\nThe way that you flip your hair gets me overwhelmed\nBut when you smile at the ground, it ain't hard to tell\nYou don't know\nYou don't know you're beautiful\n\nIf only you saw what I can see\nYou'll understand why I want you so desperately\nRight now I'm looking at you and I can't believe\nYou don't know\nYou don't know you're beautiful, oh oh\nThat's what makes you beautiful\n\nBaby, you light up my world like nobody else\nThe way that you flip your hair gets me overwhelmed\nBut when you smile at the ground, it ain't hard to tell\nYou don't know\nYou don't know you're beautiful\n\nBaby, you light up my world like nobody else\nThe way that you flip your hair gets me overwhelmed\nBut when you smile at the ground, it ain't hard to tell\nYou don't know\nYou don't know you're beautiful\n\nIf only you saw what I can see\nYou'll understand why I want you so desperately\nRight now I'm looking at you and I can't believe\nYou don't know, oh oh\nYou don't know you're beautiful, oh oh\nYou don't know you're beautiful, oh oh\nThat's what makes you beautiful",
"Girl, I see it in your eyes, you're disappointed\n'Cause I'm the foolish one that you anointed with your heart\nI tore it apart\n\n\nAnd girl, what a mess I made upon your innocence...\nAnd no woman in the world deserves this\n\nBut here I am, asking you for one more chance\n\n\n\nCan we fall one more time?\n\nStop the tape and rewind\n\nOh, and if you walk away I know I'll fade\n\n'Cause there is nobody else\n\n\n\nIt's gotta be you\n\nOnly you\n\nIt's got to be you\n\nOh, only you\n\n\n\nNow girl, I hear it in your voice and how it trembles\n\nWhen you speak to me I don't resemble who I was\n\nYou've almost had enough\n\n\n\nAnd your actions speak louder than words\n\nAnd you're about to break from all you've heard\n\nBut don't be scared, I ain't going nowhere\n\n\n\nI'll be here, by your side\n\nNo more fears, no more crying\n\nBut if you walk away I know I'll fade\n\n'Cause there is nobody else\n\n\n\nIt's gotta be you\n\nOnly you\n\nIt's got to be you\n\nOh, only you\n\n\n\nOh girl, can we try one more, one more time?\n\nOne more, one more... Can we try\n\nOne more, one more time?\n\nI'll make it better\n\n\n\nOne more, one more... Can we try\n\nOne more, one more...\n\nCan we try one more time to make it all better?\n\n\n\n'Cause it's gotta be you\n\nIt's gotta be you\n\nOnly you\n\nOnly you\n\nIt's got to be you\n\nOh, only you, It's got to be you, only you",
"Liam\nI've tried playing it cool\nBut when I'm looking at you\nI can't ever be brave\n'Cause you make my heart race\n\nHarry\nShot me out of the sky\nYou're my kryptonite\nYou keep making me weak\nYeah, frozen and can't breathe\n\nZayn\nSomething's gotta give now\n'Cause I'm dying just to make you see\nThat I need you here with me now\n'Cause you've got that one thing\n\nSo get out, get out, get out of my head\nAnd fall into my arms instead\nI don't, I don't, don't know what it is\nBut I need that one thing\nAnd you've got that one thing\n\nNiall\nNow I'm climbing the walls\nBut you don't notice at all\nThat I'm going out of my mind\nAll day and all night\n\nLouis\nSomething's gotta give now\n'Cause I'm dying just to know your name\nAnd I need you here with me now\n'Cause you've got that one thing\n\nSo get out, get out, get out of my head\nAnd fall into my arms instead\nI don't, I don't, don't know what it is\nBut I need that one thing\n\nSo get out, get out, get out of my mind\nAnd come on, come into my life\nI don't, I don't, don't know what it is\nBut I need that one thing\nAnd you've got that one thing\n\nHarry\nYou've got that one thing\n\nLiam\nGet out, get out, get out of my head\nAnd fall into my arms instead\n\nSo get out, get out, get out of my head\nAnd fall into my arms instead\nI don't, I don't, don't know what it is\nBut I need that one thing\n\nSo get out, get out, get out of my mind (out of my mind)\nAnd come on, come into my life\nI don't, I don't, don't know what it is\nBut I need that one thing\nYeah, you've got that one thing",
"Ooh\nI'm broken,\nDo you hear me?\nI'm blinded,\n'Cause you are everything I see\nI'm dancing, alone\nI'm praying\nThat your heart will just turn around\n\nAnd as I walk up to your door\nMy head turns to face the floor\n'Cause I can't look you in the eyes and say\n\nWhen he opens his arms\nAnd holds you close tonight\nIt just won't feel right\n'Cause I can love you more than this, yeah\nWhen he lays you down, I might just die inside\nIt just don't feel right\n'Cause I can love you more than this\nI can love you more than this\n\nIf I'm louder\nWould you see me?\nWould you lay down in my arms and rescue me?\n'Cause we are, the same\nYou saved me, but when you leave it's gone again\n\nAnd then I see you on the street\nIn his arms, I get weak\nMy body fails, I'm on my knees\nPraying\n\nWhen he opens his arms\nAnd holds you close tonight\nIt just won't feel right\n'Cause I can love you more than this, yeah\nWhen he lays you down, I might just die inside\nIt just don't feel right\n'Cause I can love you more than this\n\nYeah, I've never had the words to say\nBut now I'm asking you to stay\nFor a little while inside my arms, yeah\nAnd as you close your eyes tonight\nI pray that you will see the light\nThat's shining from the stars above\n\nWhen he opens his arms\nAnd holds you close tonight\nIt just won't feel right\n'Cause I can love you more than this\n'Cause I can love you more than this, yeah\n\nWhen he lays you down, I might just die inside\nIt just don't feel right\n'Cause I can love you more than this, yeah\n\nWhen he opens his arms\nAnd holds you close tonight\nIt just won't feel right\n'Cause I can love you more than this, yeah\n\nWhen he lays you down, I might just die inside (I'm broken)\nIt just don't feel right\n'Cause I can love you more than this\n\nI can love you more than this",
"It feels like we've been livin' in fast forward\nAnother moment passing by\n(Up up all night)\nThe party's ending but it's now or never\nNobody's going home tonight\n(Up up all night)\n\nKaty Perry\u2019s on replay\nShe's on replay\nDJ got the floor to shake, the floor to shake\nPeople going all the way\nYeah, all the way\nI'm still wide awake\n\nI wanna stay up all night\nAnd jump around until we see the sun\nI wanna stay up all night\nAnd find a girl and tell her she's the one\nHold on to the feeling\nAnd don't let it go\n'Cause we got the flow now\nGet out of control\nI wanna stay up all night\nAnd do it all with you\nUp all night\nLike this, all night, (hey)\nUp all night\nLike this, all night, (hey)\nUp all night\n\nDon't even care about the table breaking\nWe only wanna have a laugh\n(Up up all night)\nI'm only thinking 'bout this girl I'm seeing\nI hope she\u2019ll wanna kiss me back\n(Up up all night)\n\nKaty Perry\u2019s on replay\nShe's on replay\nDJ got the floor to shake, the floor to shake\nPeople going all the way\nYeah, all the way\nI'm still wide awake\n\nI wanna stay up all night\nAnd jump around until we see the sun\nI wanna stay up all night\nAnd find a girl and tell her she's the one\nHold on to the feeling\nAnd don't let it go\n'Cause we got the flow now\nGet out of control\nI wanna stay up all night\nAnd do it all with you\nUp all night\nLike this, all night, (hey)\nUp all night\nLike this, all night, (hey)\nUp all night\n\nKaty Perry\u2019s on replay\n(Up all night)\nShe's on replay\n(We're gonna want to stay up all night)\nDJ got the floor to shake, the floor to shake\n(We're gonna want to stay up all night)\nUp all night, up all night\n(We're gonna want to stay up all night)\n\nI wanna stay up all night\nAnd jump around until we see the sun\nI wanna stay up all night\nAnd find a girl and tell her she's the one (she's the one)\nHold on to the feeling\nAnd don't let it go\n'Cause we got the flow now\nGet out of control\nI wanna stay up all night\nAnd do it all with you (do it all with you)\nUp all night\nLike this, all night, (hey)\nUp all night\nLike this, all night, (hey) (up all night)\nUp all night",
"He takes your hand\nI die a little\nI watch your eyes\nAnd I'm in riddles\nWhy can't you look at me like that?\n\nWhen you walk by\nI try to say it\nBut then I freeze\nAnd never do it\nMy tongue gets tied\nThe words gets trapped\n\nI hear the beat of my heart getting louder\nWhenever I'm near you\n\nBut I see you with him\nSlow dancing\nTearing me apart\n'Cause you don't see\nWhenever you kiss him\nI'm breaking\nOh, how I wish, that was me\n\nHe looks at you\nThe way that I would\nDoes all the things\nI know that I could\nIf only time could just turn back\n\n'Cause I got three little words\nThat I've always been dying to tell you\n\nBut, I see you with him\nSlow dancing\nTearing me apart\n'Cause you don't see\nWhenever you kiss him\nI'm breaking\nOh, how I wish, that was me\n\nWith my hands on your waist\nWhile we dance in the moonlight\nI wish it was me\nThat you'll call later on\n'Cause you wanna say good night\n\n'Cause, I see you with him\nSlow dancing\nTearing me apart\n'Cause you don't see\n\nBut I see you with him\nSlow dancing\nTearing me apart\n'Cause you don't see\nWhenever you kiss him\nI'm breaking\nOh, how I wish\nOh, how I wish\nOh, how I wish\nThat was me, me, me\nOh, how I wish, that was me",
"Can't ever get it right\nNo matter how hard I try\nAnd I've tried\n\nWell, I put up a good fight\nBut your words cut like knives\nAnd I'm tired\n\nAs you break my heart\nAgain this time\n\nTell me I'm a screwed up mess\nThan I never listen, listen\nTell me you don't want my kiss\nThat you need your distance, distance\nTell me anything, but don't you say\nHe's what you're missing, baby\nIf he's the reason\nThat you're leaving me tonight\nSpare me what you're thinking\nTell me a lie\n\nWell, you're the charming type\nThat little twinkle in your eye\nGets me every time\n\nAnd well, there must've been a time\nI was a reason for that smile\nSo, keep in mind\n\nAs you take what's left of 'You and I'\n\nTell me I'm a screwed up mess\nThan I never listen, listen\nTell me you don't want my kiss\nThat you need your distance, distance\nTell me anything, but don't you say\nHe's what you're missing, baby\nIf he's the reason\nThat you're leaving me tonight\nSpare me what you're thinking\nTell me a lie\n\nTell me a lie\nTell me a lie\nTell me a lie\n\nTell me I'm a screwed up mess\nThan I never listen, listen\nTell me you don't want my kiss\nThat you need your distance, distance\nTell me anything, but don't you say\nHe's what you're missing, baby\nIf he's the reason\nThat you're leaving me tonight\nSpare me what you're thinking\nTell me a lie\n\nTell me a lie\nTell me a lie\nTell me a lie\nTell me a lie",
"Now that you can't have me\nYou suddenly want me\nNow that I'm with somebody else\nYou tell me you love me\n\nI slept on your doorstep\nBegging for one chance\nNow that I finally moved on\nYou say that you missed me all along\n\nWho do you think you are?\nWho do you think I am?\nYou only love to see me breaking\nYou only want me 'cause I'm taken\nYou don't really want my heart\nNo, you just like to know you can\nStill be the one who gets it breaking\nYou only want me when I'm taken\n\nYou're messing with my head\nGirl that's what you do best\nSaying there's nothing you won't do\nTo get me to say yes\nYou're impossible to resist\nBut I wouldn't bet your heart on it\nIt's like I'm finally awake\nAnd you're just a beautiful mistake\n\nWho do you think you are?\nWho do you think I am?\nYou only love to see me breaking\nYou only want me 'cause I'm taken\nYou don't really want my heart\nNo, you just like to know you can\nStill be the one who gets it breaking\nYou only want me when I'm taken\n\nThank you for showing me\nWho you are underneath\nNo, thank you, I don't need\nAnother heartless misery\nYou think I'm doing this to make you jealous\nAnd I know that you hate to hear this\nBut this is not about you anymore\n\nWho do you think you are?\nWho do you think I am?\nYou only love to see me breaking\nYou only want me 'cause I'm taken\nYou don't really want my heart\nNo, you just like to know you can (No you don't, no you don't)\nStill be the one who gets it breaking (Breaking)\nYou only want me when I'm taken\n\nNow that you can't have me\nYou suddenly want me",
"Give you this, give you that\nBlow a kiss, take it back\nIf I look inside your brain\nI would find lots of things\nClothes, shoes, diamond rings\nStuff that's driving me insane\n\nYou could be preoccupied\nDifferent date, every night\nYou just got to say the word\nBut you're no into them at all\nYou just want materials\nI should know because I've heard\nWhen girls say...\n\nI want, I want, I want, but that's crazy\nI want, I want, I want, and that's not me\nI want, I want, I want, to be loved by you\n\nYou've got everything you need\nBut you want accessories\nGot to hold it in your hand\nIf I change the world for you\nI bet you wouldn't have a clue\nDon't you know that I can't stand\nWhen girls say...\n\nI want, I want, I want, but that's crazy\nI want, I want, I want, and that's not me\nI want, I want, I want, to be loved by you\n\nOh, and now the girls say\n\nI want, I want, I want, but that's crazy\nI want, I want, I want, and that's not me\nI want, I want, I want, to be loved by you\n\nBe loved by you\nI wanna, I'll stay true\nI wanna, if you knew\nWhat you put me through\nBut you want, you want, you want me to love you too\n\nI want, I want, I want, but that's crazy\nI want, I want, I want, but that's not me\nI want, I want, I want, to be loved by you\n\nOh, now the girls say\n\nI want, I want, I want, but that's crazy\nI want, I want, I want, and that's not me\nI want, I want, I want, to be loved by you\nI want, I want, I want, another girl say\nI want, I want, I want, and that's crazy\nI want, I want, I want, to be loved by you",
"You know I've always\nGot your back, girl\nSo, let me be the one\nYou come running to\nRunning to, r-r-running\n\nI say this is just a matter of fact, girl\nYou just call my name\nI'll be coming through\nComing through, I'll keep coming\n\nOn the other side of the world\nIt don't matter, I'll be there in two\nI'll be there in two, I'll be there in two\nI still feel it every time\nIt's just something that you do\nNow ask me why I want to\n\nIt's everything about you, you, you\nEverything that you do, do, do\nFrom the way that we touch, baby\nTo the way that you kiss on me\nIt's everything about you, you, you\nThe way you make it feel, new, new, new\nLike every party is just us two\nAnd there's nothing I could point to\nIt's everything about you, you, you\nEverything about you, you, you\nIt's everything that you do, do, do\nIt's everything about you\n\nGuess I like the way you smile\nWith your eyes\nOther guys see it, but don't realize\nThat it's m-my loving\n\nThere's something about your laugh\nThat makes me wanna have to\nThere's nothing funny, so\nWe laugh at n-n-nothing\n\nEvery minute's like the last, so\nLet's just take it real slow\nForget about the clock\nThat's tic-tic-ticking\n\nI still feel it every time\nIt's just something that you do\nNow ask me why I want to\n\nIt's everything about you, you, you\nEverything that you do, do, do\nFrom the way that we touch, baby\nTo the way that you kiss on me\nIt's everything about you, you, you\nThe way you make it feel, new, new, new\nLike every party is just us two\nAnd there's nothing I could point to\nIt's everything about you, you, you\nEverything about you, you, you\nIt's everything that you do, do, do\nIt's everything about you\n\nAnd you have always been\nThe only one I wanted\nAnd I wanted you to know\nWithout you, I can't face it\n\nAll we wanna have is fun\nBut they say that we're too young\nLet them say what they want\n\nIt's everything about you, you, you\nEverything that you do, do, do\nFrom the way that we touch, baby\nTo the way that you kiss on me\nIt's everything about you, you, you\nThe way you make it feel, new, new, new\nLike every party is just us two\nAnd there's nothing I could point to\nIt's everything about you, you, you\nEverything about you, you, you\nIt's everything that you do, do, do\nIt's everything about you",
"Circles, we going in circles\nDizzy's all it makes us\nWe know where it takes us we've been before\n\nCloser, maybe looking closer\nThere's more to discover\nFind that what went wrong without blaming each other\n\n\n\nThink that we got more time\n\nOne more falling behind\n\nGotta make up my mind\n\n\n\nOr else we'll play, play, play all the same old games\n\nAnd we wait, wait, wait for the end to change\n\nAnd we take, take, take it for granted\n\nThat will be the same\n\nBut we're making all the same mistakes\n\n\n\nWake up, we both need to wake up\n\nMaybe if we face up to this\n\nWe can make it through this\n\nCloser, maybe we'll be closer\n\nStronger than we were before\n\nIt made this something more, yeah\n\n\n\nThink that we got more time\n\nOne more falling behind\n\nGotta make up my mind\n\n\n\nOr else we'll play, play, play all the same old games\n\nAnd we wait, wait, wait for the end to change\n\nAnd we take, take, take it for granted\n\nThat will be the same\n\nBut we're making all the same mistakes\n\n\n\nYeah, yeah, that's what crazy is\n\nWhen it's broken, you say there's nothing to fix\n\nAnd you pray, pray, pray that everything will be okay\n\nWhile you're making all the same mistakes\n\n\n\nDon't look back\n\nBut if we don't look back\n\nWe're only running babe\n\nOut of me, cause ain't this\n\nSame mistakes again\n\n\n\nSo we play, play, play all the same old games\n\nAnd we wait, wait, wait for the end to change\n\nAnd we take, take, take it for granted\n\nThat will be the same\n\nBut we're making all the same mistakes\n\n\n\nYeah, yeah, that's what crazy is\n\nWhen it's broken, you say there's nothing to fix\n\nAnd you pray, pray, pray that everything will be okay\n\nWhy you're making all the same mistakes",
"I, I wanna save your\r\nWanna save your heart, tonight\r\nHe'll only break ya\r\n\nLeave you torn apart, oh\r\nIt's a quarter to three can't sleep at all\n\nIt's overrated\n\nIf you told me to jump, i'd take the fall\n\nAnd he wouldn't take it\n\n\n\nAll that you want is under your nose, yeah\n\nYou should open your eyes but they stay close, close\n\n\n\nI, I wanna save your\n\nWanna save your heart, tonight\n\nHe'll only break ya\n\nLeave you torn apart, oh\n\n\n\nI can't be no superman,\n\nBut for you I'll be super human\n\n\n\nI, I wanna save ya, save ya, save ya tonight\n\n\n\nOh now you're at home\n\nAnd he don't call\n\nCause he don't adore ya\n\nTo him you're just another doll\n\nAnd I tried to warn ya\n\n\n\nWhat you want, what you need\n\nHas been right here, yeah\n\nI can see that you're holding back those tears, tears\n\n\n\nI, I wanna save your\n\nWanna save your heart, tonight\n\nHe'll only break ya\n\nLeave you torn apart, oh\n\n\n\nI can't be no superman,\n\nBut for you I'll be super human\n\n\n\nI, I wanna save ya, save ya, save ya tonight\n\n\n\nUp, up and away\n\nI'll take you with me\n\nUp, up and away\n\nI'll take you with me\n\n\n\nI, I wanna save your\n\nWanna save your heart, tonight\n\nHe'll only break ya\n\nLeave you torn apart, oh\n\n\n\nI can't be no superman,\n\nBut for you I'll be super human\n\n\n\nI, I wanna save ya, save ya, save ya tonight",
"Waiting for a girl like you\n\nThe light shines\nIt's getting hot on my shoulders.\nI don't mind, this time it doesn't matter.\n'Cause your friends,\nThey look good and you look better.\nDon't you know all night\nI've been waiting for a girl like you to come around, round, round\n\nUnder the lights tonight\nYou turned around, and you stole my heart\nWith just one look, when I saw your face\nI fell in love\nIt took a minute girl,\nTo steal my heart tonight\nWith just one look, yeah\nBeen waiting for a girl like you\n\nI'm weaker\nMy worlds fall and they hit the ground\nOh life, come on head\nDon't you fail me now\nI start to say\n'I think I love you' but I make no sound\nYou know 'cause all my life \nI've been waiting for a girl like you to come around\n\nUnder the lights tonight\nYou turned around, and you stole my heart\nWith just one look, when I saw your face\nI fell in love\nIt took a minute girl, to steal my heart tonight\nWith just one look, yeah\nBeen waiting for a girl like you\n\nThere is no other place that I would rather be\nThan right here with you tonight\nAs we lay on the ground I put my arms around you\nAnd we can stay here tonight\n'Cause there's so much that I wanna say\nI wanna say\n\nUnder the lights tonight\nYou turned around, and you stole my heart\nWith just one look, when I saw your face\nI fell in love\nIt took a minute girl, to steal my heart\n\nUnder the lights tonight\nYou turned around, and you stole my heart\nWith just one look, when I saw your face\nI fell in love\nIt took a minute girl, to steal my heart tonight\nWith just one look, yeah\nBeen waiting for a girl like you\nBeen waiting for a girl like you",
"From the moment I met you, everything changed\nI knew I had to get you, whatever the pain\nI had to take you and make you mine (take you and make you mine)\n\nI would walk through the desert\nI would walk down the aisle\nI would swim all the oceans just to see you smile\nWhatever it takes is fine (whatever it takes is fine)\n\nOh oh oh oh\nSo put your hands up\nOh oh oh oh\n'Cause it's a stand up\nI won't be leaving\nTill I finish stealing\nEvery piece of your heart\nEvery piece of your heart\n\nI know your heart's been broken but don't you give up\nI'll be there, yeah I know it to fix you with love\nIt hurts me to think that you've ever cried (you've ever cried)\n\nOh oh oh oh\nSo put your hands up\nOh oh oh oh\n'Cause it's a stand up\nI won't be leaving\nTill I finish stealing\nEvery piece of your heart\nEvery piece of your heart\n\nOh oh oh oh\nSo put your hands up\nOh oh oh oh\n'Cause it's a stand up\nI won't be leaving\nTill I finish stealing\nEvery piece of your heart\n\nAnd I will steal us a car\nAnd we will drive to the stars.\nI will give you the moon.\nIt's the least I can do\nIf you give me the chance.\n\nOh oh oh oh\nSo put your hands up\nOh oh oh oh\n'Cause it's a stand up\n\n(I'm a thief, I'm a thief)\nYou can call me a thief\n(I'm a thief, I'm a thief)\nBut you should know your part\n\n(I'm a thief, I'm a thief)\nI'm only here\n(I'm a thief, I'm a thief)\nBecause you stole my heart\n\nOh oh oh oh (I'm a thief, I'm a thief)\nSo put your hands up\nOh oh oh oh (I'm a thief, I'm a thief)\n'Cause it's a stand up\nI won't be leaving\nTill I finish stealing\nEvery piece of your heart\n\n'Cause you stole my heart\n(I'm a thief, I'm a thief)\nCall me a thief\n(I'm a thief, I'm a thief)\nBut you should know your part\n(I'm a thief, I'm a thief)\nI'm only here\n(I'm a thief, I'm a thief)\nBecause you stole my heart",
"Shut the door, turn the light off\nI wanna be with you\nI wanna feel your love\nI wanna lay beside you\nI cannot hide this even though I try\n\nHeart beats harder\nTime escapes me\nTrembling hands touch skin\nIt makes this harder\nAnd the tears stream down my face\n\nIf we could only have this life for one more day\nIf we could only turn back time\n\nYou know I'll be\nYour life, your voice, your reason to be\nMy love, my heart\nIs breathing for this\nMoment in time\nI'll find the words to say\nBefore you leave me today\n\nClose the door\nThrow the key\nDon't wanna be reminded\nDon't wanna be seen\nDon't wanna be without you\nMy judgement's clouded\nLike tonight's sky\n\nHands are silent\nVoice is numb\nTry to scream out my lungs\nIt makes this harder\nAnd the tears stream down my face\n\nIf we could only have this life for one more day\nIf we could only turn back time\n\nYou know I'll be\nYour life, your voice, your reason to be\nMy love, my heart\nIs breathing for this\nMoment in time\nI'll find the words to say\nBefore you leave me today\n\nFlashing lights in my mind\nGoing back to the time\nPlaying games in the street\nKicking balls with my feet\nThere's a numb in my toes\nStanding close to the edge\nThere's a pile of my clothes\nAt the end of your bed\nAs I feel myself fall\nMake a joke of it all\n\nYou know I'll be\nYour life, your voice, your reason to be\nMy love, my heart\nIs breathing for this\nMoment in time\nI'll find the words to say\nBefore you leave me today\n\nYou know I'll be\nYour life, your voice your reason to be\nMy love, my heart\nIs breathing for this\nMoment in time\nI'll find the words to say\nBefore you leave me today",
"It's not me, it's not you\r\nThere's a reason\r\nI'm just trying to read the signals I'm receiving\r\n\nIt's like a storm on fire\r\nCan you feel it?\r\nI don't know about you girl\n\nBut I believe it\n\n\n\nWords will be just words\n\nTill you bring them to life\n\n\n\nI lift you up, I'll never stop\n\nYou know I'll take you to another world\n\nI build you up, I'll never stop\n\nYou know I'll take you to another world\n\nEveryday, in every way\n\nI lift you up, I'll never stop\n\nYou know I'll take you to another world\n\n\n\nOne for me, one for you\n\nWhat you doing?\n\nGirl, the music sounds so good\n\nWhen you're moving\n\nLet me take you high\n\nLet me prove it\n\n'Cause, ehy, ehy, pretty girl, I believe it\n\nWords will be just words\n\nTill you bring them to life\n\n\n\nI lift you up, I'll never stop\n\nYou know I'll take you to another world\n\nI build you up, I'll never stop\n\nYou know I'll take you to another world\n\nEveryday, in every way\n\nI lift you up, I'll never stop\n\nYou know I'll take you to another world\n\n\n\nBaby, let me find all your secrets\n\nJust let me in, let me show you that I keep it\n\nClose to my heart jump in the deep and\n\nJust let me in, let me show you what I'm meaning\n\n\n\nI lift you up, I'll never stop\n\nYou know I'll take you to another world\n\nI build you up, I'll never stop\n\nYou know I'll take you to another world\n\nEveryday, in every way\n\nI lift you up, I'll never stop\n\nYou know I'll take you to another world\n\nOh yeah, you know I'll take you to another world\n\nI build you up, I'll never stop\n\nYou know I'll take you to another world\n\nI lift you up, I'll never stop",
"We've got a bit of love/hate\nYou take me to the edge\nThen you hit the breaks\nI say it's over one day\nBut then I'm crawling back\nBegging you to stay\nWe make up and\nWe break up all the time\n\nI'll say that I hate a song\nThen you'll go request it\nThe whole night long\nSome people say it's so wrong\nBut, even when we fight\nGirl, you turn me on\nWe make up and\nWe break up all the time\n\nWe're like- na, na, na\nThen, we're like- yeah, yeah, yeah\nAlways like- na, na, na\nThen, we're like- yeah, yeah, yeah\nNo, we can't make up our minds\n'Cause when we think\nWe've got it right\nWe go- na, na, na\n\nYou wanna party too late\nBut when I do the same\nAll you do is complain\nYou know that\nIt drives me insane\nBut, when I get with you\nGirl, you make it okay\nWe make up and\nWe break up all the time\n\nWe're like- na, na, na\nThen, we're like- yeah, yeah, yeah\nAlways like- na, na, na\nThen, we're like- yeah, yeah, yeah\nNo, we can't make up our minds\n'Cause when we think\nWe've got it right\nWe go- na, na, na\n\nOh whoa, it drives me mad!\n\nWe're like- na, na, na\nThen, we're like- yeah, yeah, yeah\nAlways like- na, na, na\nThen, we're like- yeah, yeah, yeah\n\nWe're like- na, na, na\nThen, we're like- yeah, yeah, yeah\nAlways like- na, na, na\nThen, we're like- yeah, yeah, yeah\nNo, we can't make up our minds\n'Cause when we think\nWe've got it right\nWe go- na, na, na",
"I keep playing inside my head\r\nAll that you said to me\r\nI lie away just to convince myself\r\n\nThis wasn't just a dream\r\nCause you were right here\r\nAnd I should've taken the chance\n\nBut I got so scared\n\nAnd I lost the moment again\n\nIt's all that I can think about, oh\n\nYou're all that I can think about\n\n\n\nIs your heart taken?\n\nIs there somebody on your mind?\n\nI'm so sorry, I'm so confused\n\nJust tell me, am I out of time?\n\n\n\nIs your heart breaking?\n\nHow do you feel about me now?\n\nI can't believe I let you walk away\n\nWhen, when I Should Have Kissed You\n\n\n\nI should, I should oh, I should have kissed you\n\nI should, I should oh, I should have kissed you\n\nI should, I should oh, I should have kissed you\n\nI should, I should oh, I should have kissed you\n\n\n\nEvery morning when I leave my house\n\nI always look for you, yeah.\n\nI see you everytime I close my eyes\n\nWhat am I gonna do?\n\n\n\nAnd all my friends say\n\nThat I'm punching over my weight\n\nBut in your eyes I\n\nSaw how you were looking at me\n\n\n\nIt's all that I can think about, oh\n\nYou're all that I can think about\n\n\n\nIs your heart taken?\n\nIs there somebody else on your mind?\n\nI'm so sorry, I'm so confused\n\nJust tell me, am I out of time?\n\n\n\nIs your heart breaking?\n\nHow do you feel about me now?\n\nI can't believe I let you walk away\n\nWhen, when I should have kissed you\n\n\n\nI should, I should oh, I should have kissed you\n\nI should, I should oh, I should have kissed you\n\nI should, I should oh, I should have kissed you\n\nI should, I should oh, I should have kissed you\n\n\n\nWhen you stood there\n\nJust a heartbeat away\n\nWhen we were dancing,\n\nAnd you looked up at me\n\nIf I had known then\n\nThat I'd be feeling this way\n\nIf I could replay\n\nI would have never let you go\n\nNo, oh\n\nNever have let you go\n\nAm I out of time?\n\n\n\nIs your heart taken?\n\n(yeah yeah yeah yeah)\n\nIs there somebody else on your mind?\n\nI'm so sorry, I'm so confused\n\nJust tell me, am I out of time?\n\n\n\nIs your heart breaking?\n\nHow do you feel about me now?\n\nI can't believe I let you walk away\n\nWhen, when I should have kissed you\n\n\n\nI should, I should oh, I should have kissed you\n\nI should, I should oh, I should have kissed you\n\nI should, I should oh, I should have kissed you\n\nI should, I should oh, I should have kissed you\n\n\n\nI should have kissed you"
]
},
{
"Take Me Home [2013]": [
null,
"Oh I just wanna take you anywhere that you'd like\nWe could go out any day, any night\nBaby I'll take you there, take you there\nBaby I'll take you there, yeah\n\nOh tell me, tell me, tell me how to turn your love on\nYou can get, get anything that you want\nBaby just shout it out, shout it out\nBaby just shout it out, yeah\n\nAnd if you\nYou want me too\nLet's make a move\nYeah\nSo tell me girl if every time we\n\nTou-ou-ouch\nYou get this kinda\nRu-u-ush\nBaby say yeah yeah yeah\nYeah yeah yeah\nIf you don't wanna take it slow\nAnd you just wanna take me home\nBaby say yeah yeah yeah\nYeah yeah\nAnd let me kiss you\n\nOh baby, baby don't you know you got what I need\nLookin' so good from your head to your feet\nCome on come over here, over here\nCome on come over here, yeah\n\nOh I just want to show you off to all of my friends\nMakin' them drool down their chinny chin chins\nBaby be mine tonight, mine tonight\nBaby be mine tonight, yeah\n\nAnd if you\nYou want me too\nLet's make a move\n\nYeah\nSo tell me girl if every time we\n\nTou-ou-ouch\nYou get this kinda\nRu-u-ush\nBaby say yeah yeah yeah\nYeah yeah yeah\nIf you don't want to take it slow\nAnd you just want to take me home\nBaby say yeah yeah yeah\nYeah yeah\nAnd let me kiss you\n\nLet me kiss you, let me kiss you\nLet me kiss you, let me kiss you\n\nYeah\nSo tell me girl if every time we\n\nTou-ou-ouch\nYou get this kinda\nRu-u-ush\nBaby say yeah yeah yeah\nYeah yeah yeah\nIf you don't want to take it slow\nAnd you just want to take me home\nBaby say yeah yeah yeah\nYeah yeah yeah\n\nEvery time we\nTou-ou-ouch\nYou get this kinda\nRu-u-ush\nBaby say yeah yeah yeah\nYeah yeah yeah\nIf you don't want to take it slow\nAnd you just want to take me home\nBaby say yeah yeah yeah\nYeah yeah\nAnd let me kiss you",
"Your hand fits in mine\nLike it's made just for me\nBut bear this in mind\nIt was meant to be\nAnd I'm joining up the dots\nWith the freckles on your cheeks\nAnd it all makes sense to me\n\nI know you've never loved\nThe crinkles by your eyes\nWhen you smile\nYou've never loved\nYour stomach or your thighs\nThe dimples in your back\nAt the bottom of your spine\nBut I'll love them endlessly\n\nI won't let these little things\nSlip out of my mouth\nBut if I do\nIt's you\nOh it's you\nThey add up to\nI'm in love with you\nAnd all these little things\n\nYou can't go to bed\nWithout a cup of tea\nAnd maybe that's the reason\nThat you talk in your sleep\nAnd all those conversations\nAre the secrets that I keep\nThough it makes no sense to me\n\nI know you've never loved the sound of your voice on tape\nYou never want to know how much weigh\nYou still have to squeeze into your jeans\nBut you're perfect to me\n\nI won't let these little things\nSlip out of my mouth\nBut if it's true\nIt's you\nIt's you\nThey add up to\nI'm in love with you\nAnd all these little things\n\nYou'll never love yourself\nHalf as much as I love you\nYou'll never treat yourself right darlin'\nBut I want you to\nIf I let you know\nI'm here for you\nMaybe you'll love yourself like I love you\nOh...\n\nI've just let these little things\nSlip out of my mouth\n'Cause it's you\nOh it's you\nIt's you\nThey add up to\nAnd I'm in love with you\nAnd all these little things\n\nI won't let these little things\nSlip out of my mouth\nBut if it's true\nIt's you\nIt's you\nThey add up to\nI'm in love with you\nAnd all your little things",
null,
"Baby I, I want to know\nWhat you think when you're alone \nIs it me, yeah?\nAre you thinking of me, yeah?\n\nOh, we've been friends now for a while\nI want to know that when you smile\nIs it me, yeah?\nAre you thinking of me, yeah?\n\nGirl, what would you do?\nWould you want to stay?\nIf I were to say...\n\nI want to be last, yeah\nBaby let me be your\nLet me be your last first kiss\nI want to be first, yeah\nWant to be the first to\nTake it all the way like this\nAnd if you only knew\nI want to be last, yeah\nBaby let me be your last\nYour last first kiss\n\nBaby tell me what to change\nI'm afraid you'll run away\nIf I tell you\nWhat I've wanted to tell you\n\nMaybe I just got to wait\nMaybe this is a mistake\nI'm a fool, yeah\nBaby I'm just a fool, yeah, oh oh\n\nGirl, what would you do?\nWould you want to stay?\nIf I were to say...\n\nI want to be last, yeah\nBaby let me be your\nLet me be your last first kiss\nI want to be first, yeah\nWant to be the first to\nTake it all the way like this\nAnd if you only knew\nI want to be last, yeah\nBaby let me be your last\nYour last first kiss\nYour last first kiss\n\nGirl, what would you do?\nWould you want to stay?\nIf I were to say\n\nYour last first kiss!\n\nI want to be last, yeah\nBaby let me be your\nLet me be your last first kiss\nI want to be first, yeah\nWant to be the first to\nTake it all the way like this\nAnd if you only knew\nI want to be last, yeah\nBaby let me be your last\nYour last first kiss\n\nI want to be last, yeah\nBaby let me be your last\nYour last first kiss\n\nI want to be last, yeah\nBaby let me be your last\nYour last first kiss",
"Baby you got me sick\nI don't know what I did\nNeed to take a break and figure it out, yeah\nGot your voice in my head\nSayin' \"let's just be friends\"\nCan't believe the words came out of your mouth, yeah\n\nI'm tryin' to be okay\nI'm tryin' to be alright\nBut seein' you with him\nJust don't feel right\n\nAnd I'm like\nOw!\nNever thought it'd hurt so bad\nGetting over you and ow!\nYou're giving me a heart attack\nLookin' like you do\n'Cause you're all I ever wanted,\nThought you would be the one it's ...\nOw!\nGiving me a heart attack\nGetting over you\n\nYeah\nBaby now that you're gone\nI can't stand dumb love songs\nMissing you is all I'm thinkin' about, yeah.\n\nEveryone's telling me I'm just too blind to see\nHow you messed me up, I'm better off now\n\nI'm tryin' to be okay\nI'm tryin' to be alright\nBut seein' you with him\nJust don't feel right\n\nAnd I'm like ow!\nNever thought it'd hurt so bad\nGetting over you and ow!\nYou're giving me a heart attack\nLooking like you do\n'Cause you're all I ever wanted,\nThought you would be the one it's ...\nOw!\nGiving me a heart attack \nGetting over you\n\nOh, oh\nYeah every time you look like that, oh oh\nYou're givin' me a heart attack.\nBut seeing you with him\nJust don't feel right\n\nAnd I'm like\nOw!\nNever thought it'd hurt so bad\nGetting over you and ow!\nYou're giving me a heart attack\nLooking like you do \n'Cause you're all I ever wanted,\nThought you would be the one it's...\nOw!\nGiving me a heart attack \nGetting over you\n\nYou're all I ever wanted.\nOw!\n\nYeah\nEverytime you look like that\n\nYou're all I ever wanted\nYou're giving me a heart attack\nOooW!",
"Do you remember summer \u009109\r\nWanna go back there every night\r\nJust can't lie it was the best time of my life\r\n\nLying on the beach as the sun blew out\r\nPlaying this guitar by the fire too loud\r\nOh my my they could never shut us down\n\nI used to think that I was better alone\n\nWhy did I ever want to let you go\n\nUnder the moonlight as we stared at the sea\n\nThe words you whispered I will always believe\n\n\n\nI want you to rock me,rock me, rock me, yeah\n\nI want you to rock me, rock me, rock me, yeah\n\nI want you to hit the pedal heavy metal show me you care\n\nI want you to rock me, rock me, rock me yeah\n\n\n\nYeah we were together summer \u009109\n\nWanna roll back like press and rewind\n\nYou were mine and we never said goodbye\n\nI used to think that I was better alone\n\n\n\nWhy did I ever want to let you go?\n\nUnder the moonlight as we stared to the sea\n\nThe words you whispered I will always believe\n\nI want you to rock me, rock me, rock me, yeah\n\nI want you to rock me, rock me, rock me yeah\n\nI want you to hit the pedal heavy metal show me you care\n\n\n\nI want you to rock me, rock me,rock me yeah\n\n\n\nR-O-C-K me again\n\n\n\nR-O-C-K me again\n\n\n\nR-O-C-K me again yeah\n\n\n\nI want you to\n\n\n\nR-O-C-K me again\n\n\n\nR-O-C-K me again\n\n\n\nR-O-C-K me again yeah\n\n\n\nI want you to rock me, rock me, rock me, yeah\n\nI want you to rock me, rock me, rock me yeah\n\nI want you to hit the pedal heavy metal show me you care\n\nI want you to rock me, rock me, rock me yeah\n\nI want you to rock me, rock me, rock me, yeah\n\nI want you to rock me, rock me, rock me yeah\n\nI want you to hit the pedal heavy metal show me you care\n\nI want you to rock me, rock me, rock me yeah",
"The end of the night\nWe should say goodbye\nBut we carry on\nWhile everyone's gone\n\nNever felt like this before\nAre we friends or are we more?\nAs I'm walking towards the door\nI'm not sure\n\nBut baby if you say you want me to stay\nI'll change my mind\n'Cause I don't want to know I'm walking away\nIf you'll be mine\nWon't go, won't go\nSo baby if you say you want me to stay\nStay for the night\nI'll change my mind\n\nLean in when you laugh\nWe take photographs\nThere's no music on\nBut we dance alone\n\nNever felt like this before\nAre we friends or are we more?\nAs I'm walking towards the door\nI'm not sure\n\nBut baby if you say you want me to stay\nI'll change my mind\n'Cause I don't want to know I'm walking away\nIf you'll be mine\nWon't go, won't go\nSo baby if you say you want me to stay\nStay for the night\nI'll change my mind\nI'll change my mind\n\nBaby if you say you want me to stay\nI'll change my mind\n\nBut baby if you say you want me to stay\nI'll change my mind\n'Cause I don't want to know I'm walking away\nIf you'll be mine\nWon't go, won't go\nSo baby if you say you want me to stay\nStay for the night\nI'll change my mind",
"Lately I found myself thinking\r\nBeing dreaming about you a lot\r\nAnd up in my head I'm your boyfriend\r\n\nBut that's one thing you've already got\r\nHe drives to school every morning\n\nWhile I walk alone in the rain\n\nHe'd kill me without any warning\n\nIf he took a look in my brain\n\n\n\nWould he say he's in L-O-V-E?\n\nWell, if it was me then I would, I would\n\nWould he hold you when you're feeling low?\n\nBaby, you should know that I would, I would\n\n\n\nWould he say he's in L-O-V-E?\n\nWell, if it was me then I would, I would\n\nWould he hold you when you're feeling low?\n\nBaby, you should know that I would\n\n\n\nBack in my head we were kissing\n\nI thought things were going alright\n\nWith a sign on my back saying \"Kick me\"\n\nReality ruined my life\n\n\n\nFeels like I'm constantly playing\n\nA game that I'm destined to lose\n\n'Cause I can't compete with your boyfriend\n\nHe's got 27 tattoos!\n\n\n\nWould he say he's in L-O-V-E?\n\nWell, if it was me then I would, I would\n\nWould he hold you when you're feeling low?\n\nBaby, you should know that I would, I would\n\n\n\nWould he say he's in L-O-V-E?\n\nWell, if it was me then I would, I would\n\nWould he hold you when you're feeling low?\n\nBaby, you should know that I would\n\nI would, I would\n\n\n\nWould he please you?\n\nWould he kiss you?\n\nWould he treat you like I would?\n\nI would\n\n\n\nWould he touch you?\n\nWould he need you?\n\nWould he love you like I would?\n\n\n\nWould he say he's in L-O-V-E?\n\nWell, if it was me then I would\n\nWould he hold you when you're feeling low?\n\nBaby, you should know that I would\n\n\n\nWould he please you? Would he please you?\n\nWould he kiss you? Would he kiss you?\n\nWould he treat you like I would? Like I would?\n\n\n\nWould he touch you? Would he touch you?\n\nWould he need you? Would he need you?\n\nWould he love you like I would? Like I would?\n\n\n\nWould he say he's in L-O-V-E?\n\nWell, if it was me then I would, I would Like I would?\n\nWould he hold you when you're feeling low?\n\nBaby, you should know that I would, oh\n\n\n\nI would, yeah\n\nI would, yeah",
"Said I'd never leave her cause her hands fit like my t-shirt, tongue tied over three words, cursed.\nRunning over thoughts that make my feet hurt,\nBodies intertwined with her lips\n\n\nNow she's feeling so low since she went solo\nHole in the middle of my heart like a polo\n\nAnd it's no joke to me \n\nSo we can we do it all over again\n\n\n\nIf you're pretending from the start like this, \n\nWith a tight grip, then my kiss\n\nCan mend your broken heart\n\nI might miss everything you said to me\n\nAnd I can lend you broken parts\n\nThat might fit like this\n\nAnd I will give you all my heart \n\nSo we can start it all over again\n\n\n\nCan we take the same road two days in the same clothes\n\nAnd I know just what she'll say if i make all this pain go \n\nCan we stop this for a minute\n\nYou know, I can tell that your heart isn't in it or with it\n\n\n\nTell me with your mind, body and spirit \n\nI can make your tears fall down like the showers that are British \n\nWhether we're together or apart \n\nWe can both remove the masks and admit we regret it from the start\n\n\n\nIf you're pretending from the start like this, \n\nWith a tight grip, then my kiss\n\nCan mend your broken heart\n\nI might miss everything you said to me\n\nAnd I can lend you broken parts\n\nThat might fit like this\n\nAnd I will give you all my heart \n\nSo we can start it all over again\n\n\n\nYou'll never know how to make it on your own \n\nAnd you'll never show weakness for letting go \n\nI guess you're still hurt if this is over \n\nBut do you really want to be alone?\n\n\n\nIf you're pretending from the start like this, \n\nWith a tight grip, then my kiss\n\nCan mend your broken heart\n\nI might miss everything you said to me\n\n\n\nAnd I can lend you broken parts\n\nThat might fit like this\n\nAnd I will give you all my heart \n\nSo we can start it all over again\n\n\n\nIf you're pretending from the start like this, \n\nWith a tight grip, then my kiss\n\nCan mend your broken heart\n\nI might miss everything you said to me\n\nAnd I can lend you broken parts\n\nThat might fit like this\n\nAnd I will give you all my heart \n\n\n\nSo we can start it all over again",
"Whenever I close my eyes I picture you there\nI'm looking out at the crowd, you're everywhere\nI'm watching you from the sta-age, yeah\n\nYour smile is on every fa-ace now\n\nBut every time you wake up you're hearing me say\n\nGoodby-y-y-ye\n\n\n\nBaby, you don't have to worry\n\nI'll be coming back for you, back for you, back for you, yo-o-o-ou\n\nLately I've been going crazy\n\nSo I'm coming back for you, back for you, back for you, yo-o-o-ou\n\n\n\nI've never been so into somebody before\n\nAnd every time we both touch I only want more\n\nSo tell me nothing's gonna cha-ange, yeah\n\nAnd you won't ever walk awa-ay, yeah\n\n\n\n'Cause even though every night you'll know what I'll say\n\nGoodby-y-y-ye\n\n\n\n\n\nBaby, you don't have to worry\n\nI'll be coming back for you, back for you, back for you, yo-o-o-ou\n\nLately I've been going crazy\n\nSo I'm coming back for you, back for you, back for you, yo-o-o-ou\n\n\n\nRight back for you, woah\n\nRight back for you\n\nRight back for you\n\n\n\nLately I've been going crazy\n\nSo I'm coming back\n\nYeah, I am coming back\n\nFor yo-o-o-ooou\n\n\n\nBaby, you don't have to worry\n\nI'll be coming back for you, back for you, back for you, yo-o-o-ou\n\nLately I've been going crazy, yeah\n\nSo I'm coming back for you, back for you, back for you, yo-o-o-ou, yeah\n\n\n\nRight back for you, right back back\n\nRight back for you, right back back\n\nRight back for you, right back back\n\nRight back for yo-o-o-ou, come on\n\n\n\nLately I've been going crazy\n\nSo I'm coming back for you, back for you, back for you, yo-o-o-ou",
null,
"Yeah, ohh oh, ohh oh.\n\nCan't believe you're packing your bags\n\nTrying so hard not to cry\nHad the best time and now it's the worst time\nBut we have to say goodbye.\n\n\n\nDon't promise that you're gonna write\n\nDon't promise that you'll call \n\nJust promise that you won't forget we had it all \n\n\n\nCause you were mine for the summer\n\nNow we know it's nearly over\n\nFeels like snow in September \n\nBut I always will remember \n\nYou were my summer love\n\nYou always will be my summer love \n\n\n\nWish that we could be alone now \n\nWe could find some place to hide\n\nMake the last time just like the first time\n\nPush a button and rewind.\n\n\n\nDon't say the words that's on your lips\n\nDon't look at me that way \n\nJust promise you'll remember when the sky is grey \n\n\n\nCause you were mine for the summer\n\nNow we know it's nearly over\n\nFeels like snow in September \n\nBut I always will remember \n\nYou were my summer love\n\nYou always will be my summer love \n\n\n\nSo please don't make this any harder\n\nWe can't take this any further\n\nAnd I know there's nothing that I wanna change\n\nTo change \n\n\n\nCause you were mine for the summer\n\nNow we know it's nearly over\n\nFeels like snow in September \n\nBut I always will remember \n\nYou were my summer love (summer love)\n\nYou always will be my summer love (summer love)\n\nYou always will be my summer love\n\nYou always will be my summer love",
null,
"Girl it should be me, driving to your house\r\nKnocking on your door, kissing you on the mouth\r\nHolding on your hand, dancing in the dark\r\n\nCuz' I was the only one who loved you from the start\r\nBut now when I see you with him\n\nIt tears my world apart\n\n\n\nI've been waiting, all this time to finally say it\n\nBut now I see your hearts been taken\n\nAnd nothing could be worse, baby I loved you first\n\nHad my chances, could've been what he is\n\nStanding, that's what hurts the most\n\nGirl I came so close, but now you'll never know\n\nBaby I loved you first\n\n\n\nGirl it should be me, calling on your phone\n\nSaying that I'm the one, and that I'll never let you go\n\n\n\nI never understood, what love was really like\n\nBut I felt it for the first time looking in your eyes\n\n\n\nBut now when I see you with him\n\nMy whole world falls apart\n\n\n\nI've been waiting, all this time to finally say it\n\nBut now I see your hearts been taking\n\nAnd nothing could be worse, baby I loved you first\n\nHad my chances, could've been what he is\n\nStanding, that's what hurts the most\n\nGirl I came so close, but now you'll never know\n\nBaby I loved you first\n\n\n\nFirst touch, first kiss\n\nFirst girl who make me feel like this\n\nHeartbreak is killing me\n\nI loved you first why can't you see\n\n\n\nI've been waiting, all this time to finally say it\n\nBut now I see your hearts been taking\n\nAnd nothing could be worse,\n\n\n\nBaby I loved you first\n\n\n\nHad my chances, could've been what he is\n\nStanding, that's what hurts the most\n\nGirl I came so close, but now you'll never know\n\nBaby I loved you first\n\nBaby I loved you first\n\nBaby I loved you first\n\nBaby I loved you first",
"You're so pretty when you cry, when you cry\nWasn't ready to hear you say goodbye\nNow you're tearing me apart, tearing me apart\nYou're tearing me apart\n\nYou're so London, your own style, your own style\nAnd together we're so good, so girl why\nAre you tearing me apart, tearing me apart?\nYou're tearing me apart\n\nDid I do something stupid?\nYeah girl, if I blew it\nJust tell me what I did\nLet's work through it\nThere's gotta be some way\nTo get you to want me like before\n\n'Cause no one ever looked so good in a dress\nAnd it hurts 'cause I know you won't be mine tonight\nNo one ever makes me feel like you do when you smile\nBaby tell me how to make it right\nNow all of my friends say it's not really worth it\nBut even if that's true\nNo one in the world could stop me from not moving on\nBaby even if I wanted to\nNobody compares to you\n\nWe're so Paris when we kissed, when we kissed\nI remember the taste of your lipstick\nNow you're tearing up my heart, tearing up my heart\nYou're tearing up my heart\n\nDid I do something stupid?\nYeah girl, if I blew it\nJust tell me what I did\nLet's work through it\nThere's gotta be some way\nTo get you to want me like before\n\n'Cause no one ever looked so good in a dress\nAnd it hurts 'cause I know you won't be mine tonight\nNo one ever makes me feel like you do when you smile\nBaby tell me how to make it right\nNow all of my friends say it's not really worth it\nBut even if that's true\nNo one in the world could stop me from not moving on\nBaby even if I wanted to\nNobody compares to you\nNobody compares to you\n\nThere's gotta be some way\nTo get you to want me like before\n\n'Cause no one ever looked so good in a dress\nAnd it hurts 'cause I know you won't be mine tonight\nNo one ever makes me feel like you do when you smile\nBaby tell me how to make it right\nNow all of my friends say it's not really worth it\nBut even if that's true\nNo one in the world could stop me from not moving on\nBaby even if I wanted to\nNobody compares to you",
"Hello,hello, i know \nit's been a while \nbut baby,\n\ni got something that\ni really wanna let \nyou know, yeah\n\nsomething that i\n\nwanna let you know.\n\n\n\nYou say, you say,\n\nto everybody that \n\nyou hate me.\n\nCouldn't blame you\n\n'cause i know i left you\n\nall alone, yeah\n\ni know that i \n\nleft you all alone.\n\n\n\nNow i'm back\n\nat your door, you're\n\nlooking at me unshure,\n\ni should have seen\n\nit before.\n\nYou're all i think\n\nabout, baby.\n\n\n\nI was so stupid\n\nfor letting you go, \n\nbut i-i-i know\n\nyou're still the one.\n\nYou might have\n\nmoved on,but,girl\n\nyou should know:\n\nthat i-i-i know\n\nyou're still the one.\n\n\n\nI know i'm saying\n\ntoo much, but i will\n\nnever give up,\n\ni was so stupid \n\nfor letting you go,\n\nbut i-i-i know\n\nyou're still the one\n\n(i-i-i know \n\nyou're still the one)\n\n\n\nHello,hello i'm really\n\nhoping you forgive me\n\ni keep talking \n\nbegging-tell me\n\nwhat i wanna hear,yeah,\n\ngirl, just tell \n\nme what i wanna hear.\n\n\n\nI tried, i tried,\n\nto start again and\n\nfind somebody,\n\nbut i remember all the\n\ntimes and all the words\n\nwe said, yeah,\n\ni can't get it \n\nout of my head.\n\n\n\nNow i'm back\n\nat your door, you're\n\nlooking at me unshure,\n\ni should have seen\n\nit before.\n\nYou're all i think\n\nabout, baby.\n\n\n\nI was so stupid\n\nfor letting you go, \n\nbut i-i-i know\n\nyou're still the one.\n\nYou might have\n\nmoved on,but,girl\n\nyou should know:\n\nthat i-i-i know\n\nyou're still the one.\n\n\n\nI know i'm saying\n\ntoo much, but i will\n\nnever give up,\n\ni was so stupid \n\nfor letting you go,\n\nbut i-i-i know\n\nyou're still the one\n\n\n\nhey,you you're\n\nstill the one)\n\nhey\n\n\n\nyou\n\nyou're still the one)\n\nhey\n\n\n\nyou\n\nyou're still the one\n\n(hey, you...)\n\n\n\nyou're still the one\n\n\n\nI know i'm saying\n\ntoo much, but i will\n\nnever give up,\n\ni was so stupid \n\nfor letting you go,\n\nbut i-i-i know\n\nyou're still the one\n\n(i-i-i know \n\nyou're still the one)",
"Am I asleep, am I awake, or somewhere in between?\nI can't believe that you are here and lying next to me\nOr did I dream that we were perfectly entwined\nLike branches on a tree or twigs caught on a vine?\n\nLike all those days and weeks and months I tried to steal a kiss\nAnd all those sleepless nights and daydreams where I pictured this\nI'm just the underdog who finally got the girl\nAnd I am not ashamed to tell it to the world\n\nTruly madly deeply, I am\nFoolishly completely falling\nAnd somehow you kicked all my walls in\nSo baby say you'll always keep me\nTruly madly crazy deeply in love with you\nIn love with you\n\nShould I put coffee and granola on a tray in bed\nAnd wake you up with all the words that I still haven't said?\nAnd tender touches just to show you how I feel\nOr should I act all cool like it was no big deal?\n\nWish I could freeze this moment in a frame and stay like this\nOr put this day back on replay and keep reliving it\n'Cause here's the tragic truth, if you don't feel the same\nMy heart would fall apart if someone said your name\n\nTruly madly deeply, I am\nFoolishly completely falling\nAnd somehow you kicked all my walls in\nSo baby say you'll always keep me\nTruly madly crazy deeply in love with you\n\nI hope I'm not a casualty\nHope you won't get up and leave\nMight not mean that much to you\nBut to me it's everything\nEverything\n\nTruly madly deeply, I am\nFoolishly completely fallen\nAnd somehow you kicked all my walls in\nSo baby say you'll always keep me\nTruly madly crazy deeply in love with you\nIn love with you\nIn love with you\nWith you",
"B-b-b-baby c'mon over\r\nI don't care if people find out\r\nThey say that we're no good together\r\n\nAnd this never gonna work out.\r\nBut baby you got me moving too fast\n\nCause I know you wanna be back\n\nAnd girl when you're lookin' like that\n\nI can't hold back.\n\n\n\nCause you, you've got this spell on me\n\nI don't know what to believe\n\nKiss you once know I can't leave\n\nCause everything you do is magic\n\nBut everything you do is magic.\n\n\n\nSo l-l-let them take pictures\n\nSpread it all around the world now\n\nI wanna put it on my record\n\nI want everyone to know now.\n\n\n\nBut baby you got me moving too fast\n\nCause I know you wanna be back\n\nAnd girl when you're lookin' like that\n\nI can't hold back.\n\n\n\nCause you, you've got this spell on me\n\nI don't know what to believe\n\nKiss you once know I can't leave\n\nCause everything you do is magic\n\nBut everything you do is magic.\n\n\n\nOh oh oh oh oh\n\nOh oh oh oh oh\n\nOh oh oh oh oh\n\nEverything you do is magic.\n\n\n\nThey say that we're no good together\n\nAnd this never gonna work out\n\nI wanna put it on my record\n\nI want everyone to know now.\n\n\n\nEverything you do is magic\n\nEverything you do is magic\n\nEverything you do is magic\n\nEverything you do is magic.\n\n\n\nCause you, you've got this spell on me\n\nI don't know what to believe\n\nKiss you once know I can't leave\n\nCause everything you do is magic\n\nBut everything you do is magic.\n\n\n\nOh oh oh oh oh\n\nOh oh oh oh oh\n\nC'mon\n\nKiss you once know I can't leave\n\nCause everything you do is magic\n\nBut everything you do is magic.",
"Don't try to make me stay\nOr ask if I'm okay\nI don't have the answer\nDon't make me stay the night\nOr ask if I'm alright\nI don't have the answer\n\nHeartache doesn't last forever\nI'll say I'm fine\nMidnight ain't no time for laughing\nWhen you say goodbye\n\nIt makes your lips so kissable\nAnd your kiss unmissable\nYour fingertips so touchable\nAnd your eyes irresistible\n\nI've tried to ask myself\nShould I see someone else?\nI wish I knew the answer\n\nBut I know if I go now, if I leave\nThen I'm on my own tonight\nI'll never know the answer\n\nMidnight doesn't last forever\nDark turns to light\nHeartache flips my world around\nI'm falling down down down\nThat's why\n\nI find your lips so kissable\nAnd your kiss unmissable\nYour fingertips so touchable\nAnd your eyes irresistible\n\nIrresistible (Irresistible)\nIrresistible (Irresistible)\nIrresistible (Irresistible)\nIrresistible\n\nIt's in your lips and in your kiss\nIt's in your touch and your fingertips\nAnd it's in all the things and other things\nThat make you who you are and your eyes irresistible\n\nIt makes your lips so kissable\nAnd your kiss unmissable\nYour fingertips so touchable\nAnd your eyes, your eyes, your eyes\nYour eyes, your eyes, your eyes \nIrresistible",
null,
"Oh I just wanna take you anywhere that you'd like\nWe could go out any day, any night\nBaby I'll take you there, take you there\nBaby I'll take you there, yeah\n\nOh tell me, tell me, tell me how to turn your love on\nYou can get, get anything that you want\nBaby just shout it out, shout it out\nBaby just shout it out, yeah\n\nAnd if you\nYou want me too\nLet's make a move\nYeah\nSo tell me girl if every time we\n\nTou-ou-ouch\nYou get this kinda\nRu-u-ush\nBaby say yeah yeah yeah\nYeah yeah yeah\nIf you don't wanna take it slow\nAnd you just wanna take me home\nBaby say yeah yeah yeah\nYeah yeah\nAnd let me kiss you\n\nOh baby, baby don't you know you got what I need\nLookin' so good from your head to your feet\nCome on come over here, over here\nCome on come over here, yeah\n\nOh I just want to show you off to all of my friends\nMakin' them drool down their chinny chin chins\nBaby be mine tonight, mine tonight\nBaby be mine tonight, yeah\n\nAnd if you\nYou want me too\nLet's make a move\n\nYeah\nSo tell me girl if every time we\n\nTou-ou-ouch\nYou get this kinda\nRu-u-ush\nBaby say yeah yeah yeah\nYeah yeah yeah\nIf you don't want to take it slow\nAnd you just want to take me home\nBaby say yeah yeah yeah\nYeah yeah\nAnd let me kiss you\n\nLet me kiss you, let me kiss you\nLet me kiss you, let me kiss you\n\nYeah\nSo tell me girl if every time we\n\nTou-ou-ouch\nYou get this kinda\nRu-u-ush\nBaby say yeah yeah yeah\nYeah yeah yeah\nIf you don't want to take it slow\nAnd you just want to take me home\nBaby say yeah yeah yeah\nYeah yeah yeah\n\nEvery time we\nTou-ou-ouch\nYou get this kinda\nRu-u-ush\nBaby say yeah yeah yeah\nYeah yeah yeah\nIf you don't want to take it slow\nAnd you just want to take me home\nBaby say yeah yeah yeah\nYeah yeah\nAnd let me kiss you"
]
},
{
"Midnight Memories [2013]": [
"Maybe it\u2019s the way she walked (ow)\nStraight into my heart and stole it\nThrough the doors and past the guards (ow)\nJust like she already owned it\n\nI said, \"Can you give it back to me?\"\nShe said, \"Never in your wildest dreams.\"\n\nAnd we danced all night to the best song ever\nWe knew every line, now I can\u2019t remember\nHow it goes but I know that I won\u2019t forget her\n'Cause we danced all night to the best song ever\nI think it went, \"oh oh oh\"\nI think it went, \"yeah yeah yeah\"\nI think it goes... (woooo)\n\nSaid her name was Georgia Rose (ow)\nAnd her daddy was a dentist\nSaid I had a dirty mouth (I had a dirty mouth)\nBut she kissed me like she meant it\n\nI said, \"Can I take you home with me?\"\nShe said, \"Never in your wildest dreams.\"\n\nAnd we danced all night to the best song ever\nWe knew every line, now I can\u2019t remember\nHow it goes but I know that I won\u2019t forget her\n'Cause we danced all night to the best song ever\nI think it went, \"oh oh oh\"\nI think it went, \"yeah yeah yeah\"\nI think it goes... (woooo)\n\nYou know, I know, you know I\u2019ll remember you\nI know, you know, I know you\u2019ll remember me\nYou know, I know, you know I\u2019ll remember you\nI know, you know, I hope you remember how we danced\n\n(Oh oh oh)\n(Yeah yeah yeah)\n(How we danced)\n\nOne, two, one two three\nOw!\n\nAnd we danced all night to the best song ever\nWe knew every line, now I can\u2019t remember\nHow it goes but I know that I won\u2019t forget her\n'Cause we danced all night to the best song ever\n(We danced, we danced)\n(And it goes something like this)\nAnd we danced all night to the best song ever\nWe knew every line, now I can\u2019t remember\n(How it goes but I know that I won\u2019t forget her)\nHow it goes but I know that I won\u2019t forget her\n(Best song ever)\n'Cause we danced all night to the best song ever\nI think it went, \"oh oh oh\"\nI think it went, \"yeah yeah yeah\"\nI think its goes... (woooo)\n\nBest song ever\nIt was the best song ever\nIt was the best song ever\nIt was the best song ever",
"Written in these wallks are the stories that I can't explain\r\nI leave my heart open but it stays right here empty for days\r\n\nShe told me in the morning she don't feel the same about us in her bones\r\nIt seems to me that when I die these words will be written on my stone\n\nAnd I'll be gone gone tonight\n\nThe ground beneath my feet is open wide\n\nThe way that I been holdin' on too tight\n\nWith nothing in between\n\n\n\nThe story of my life I take her home\n\nI drive all night to keep her warm and time\n\nIs frozen (the story of, the story of)\n\nThe story of my life I give her hope\n\nI spend her love until she's broke inside\n\nThe story of my life (the story of, the story of)\n\n\n\nWritten on these walls are the colors that I can't change\n\nLeave my heart open but it stays right here in its cage\n\nI know that in the morning now I see us in the light upon a hill\n\nAlthough I am broken, my heart is untamed, still\n\n\n\nAnd I'll be gone gone tonight\n\nThe fire beneath my feet is burning bright\n\nThe way that I been holdin' on so tight\n\nWith nothing in between\n\n\n\nThe story of my life I take her home\n\nI drive all night to keep her warm and time\n\nIs frozen (the story of, the story of)\n\nThe story of my life I give her hope\n\nI spend her love until she's broke inside\n\nThe story of my life (the story of, the story of)\n\n\n\nAnd I been waiting for this time to come around\n\nBut baby running after you is like chasing the clouds\n\n\n\nThe story of my life I take her home\n\nI drive all night to keep her warm and time\n\nIs frozen\n\n\n\nThe story of my life I give her hope (give her hope)\n\nI spend her love until she's broke inside (until she's broke inside)\n\nThe story of my life (the story of, the story of)\n\nThe story of my life\n\nThe story of my life (the story of, the story of)\n\nThe story of my life",
"Diana\nThe front pages are your pictures,\nThey make you look so small,\n\nHow could someone not miss you at all?\n(Oh-ah-oh)\n\n\nI never would mistreat ya,\n\nOh I'm not a criminal,\n\nI speak a different language but I still hear your call.\n\n\n\nDiana,\n\nLet me be the one to light a fire inside those eyes,\n\nYou've been lonely, you don't even know me,\n\nBut I can feel you crying,\n\nDiana,\n\nLet me be the one to lift your heart up and save your life,\n\nI don't think you even realize baby you'd be saving mine.\n\n\n\nDiana\n\nIt's only been four months but,\n\nYou've fallen down so far,\n\nHow could someone mislead you at all?\n\n\n\n(Oh-ah-oh)\n\n\n\nI wanna reach out for you,\n\nI wanna break these walls,\n\nI speak a different language but I still hear you call.\n\n\n\nDiana,\n\nLet me be the one to light a fire inside those eyes,\n\nYou've been lonely, you don't even know me,\n\nBut I can feel you crying,\n\nDiana,\n\nLet me be the one to lift your heart up and save your life,\n\nI don't think you even realize baby you'd be saving mine.\n\n\n\nWe all need something,\n\nThis can't be over now,\n\nIf I could hold you,\n\nSwear I'd never put you down.\n\n\n\nDiana,\n\nLet me be the one to light a fire inside those eyes,\n\nYou've been lonely, you don't even know me,\n\nBut I can feel you crying,\n\nDiana,\n\nLet me be the one to lift your heart up and save your life,\n\nI don't think you even realize baby you'd be saving mine.\n\n\n\n(Oh-ah-oh)\n\nDiana,\n\n(Oh-ah-oh-oh-oh-oh-oh-oh)\n\nDiana,\n\nBaby you'd be saving mine,\n\n(Oh-ah-oh)\n\nDiana,\n\n(Oh-ah-oh-oh-oh-oh-oh-oh)\n\nDiana,\n\nBaby you'd be saving mine",
"1, 2, 3\n\nStraight off the plane to a new hotel\nJust touched down, you could never tell\nBig house party with a crowded kitchen\nPeople talk shh but we don't listen\n\nTell me that I'm wrong but I do what I please\nWay too many people in the Addison Lee\nNow I'm at the age when I know what I need, oh whoa\n\nMidnight memories, oh oh oh\nBaby you and me\nStumbling in the street\nSinging, singing, singing, singing\nMidnight memories, oh oh oh\nAnywhere we go\nNever say no\nJust do it, do it, do it, do it\n\n5 foot something with the skinny jeans\nDon't look back, baby follow me\n\nI don't know where I'm going but I'm finding my way\nSame old shh but a different day\n\nTell me that I'm wrong but I do what I please\nWay too many people in the Addison Lee\nNow I'm at the age when I know what I need, oh whoa\n\nMidnight memories, oh oh oh\nBaby you and me\nStumbling in the street\nSinging, singing, singing, singing\nMidnight memories, oh oh oh\nAnywhere we go\nNever say no\nJust do it, do it, do it\n\nYou and me and all our friends\nI don't care how much we spend\nBaby this is what the night is for\n\nI know nothing's making sense\nFor tonight let's just pretend\nI don't wanna stop so give me more!\nOh whoa!\n\nMidnight memories, oh oh oh\nBaby you and me\nStumbling in the street\nSinging, singing, singing, singing\nMidnight memories, oh oh oh\nAnywhere we go\nNever say no\nJust do it, do it, do it, do it",
null,
null,
"My hands, your hands\nTied up like two ships drifting\nWeightless, waves try to break it\nI'd do anything to save it\nWhy is it so hard to say it?\n\nMy heart, your heart\nSit tight like bookends\nPages between us\nWritten with no end\nSo many words we're not saying\nDon't wanna wait 'til it's gone\nYou make me strong\n\nI'm sorry if I say, \"I need you\"\nBut I don't care, I'm not scared of love\n'Cause when I'm not with you I'm weaker\nIs that so wrong?\nIs it so wrong?\nThat you make me strong\n\nThink of how much love that's been wasted\nPeople always try to escape it\nMove on to stop their heart breaking\nBut there's nothing I'm running from\nYou make me strong\n\nI'm sorry if I say, \"I need you\"\nBut I don't care, I'm not scared of love\n'Cause when I'm not with you I'm weaker\nIs that so wrong?\nIs it so wrong?\n\nSo baby hold on to my heart, oh\nNeed you to keep me from falling apart\nI'll always hold on\n'Cause you make me strong\n\nI'm sorry if I say, \"I need you\"\nBut I don't care, I'm not scared of love\n'Cause when I'm not with you I'm weaker\nIs that so wrong?\nIs it so wrong?\n\nI'm sorry if I say, \"I need you\"\nBut I don't care, I'm not scared of love\n'Cause when I'm not with you I'm weaker\nIs that so wrong?\nIs it so wrong?\nThat you make me strong\n\nI'm sorry if I say, \"I need you\"\nBut I don't care, I'm not scared of love\n'Cause when I'm not with you I'm weaker\nIs that so wrong?\nIs it so wrong?\nThat you make me strong",
"You don't understand, you don't understand\nWhat you do to me when you hold his hand\nWe were meant to be, but a twist of fate\n\nMade it so we had to walk away\n'Cause we're on fire, we're on on fire\nWe're on fire now\n\nYeah, we're on fire, we're on on fire\n\nWe're on fire now\n\n\n\n(1, 2, 3)\n\nI don't care what people say when we're together\n\nYou know I wanna be the one who hold you when you sleep\n\nI just want it to be you and I forever\n\nI know you wanna leave so come on baby be with me so happily\n\n\n\nIt's 4am, and I know that you're with him\n\nI wonder if he knows that I touched your skin\n\nAnd if he feels my traces in your hair\n\nI'm sorry love but I don't really care\n\n'Cause we're on fire, we're on on fire\n\nWe're on fire now\n\nYeah, we're on fire, we're on on fire\n\nWe're on fire now\n\n\n\n(1, 2, 3)\n\nI don't care what people say when we're together\n\nYou know I wanna be the one who hold you when you sleep\n\nI just want it to be you and I forever\n\nI know you wanna leave so come on baby be with me so happily\n\nSo happily\n\n\n\n(1, 2, 3)\n\nOh, oh, oh\n\nOh, oh, oh\n\nWe're on fire now\n\nOh, oh, oh\n\nOh, oh, oh\n\nWe're on fire now\n\nOh, oh, oh\n\nOh, oh, oh\n\nWe're on fire now\n\n\n\nI don't care what people say when we're together\n\nYou know I wanna be the one who hold you when you sleep\n\nI just want it to be you and I forever\n\nI know you wanna leave so come on baby be with me so happily\n\n\n\nI don't care what people say when we're together\n\nYou know I wanna be the one who hold you when you sleep\n\nI just want it to be you and I forever\n\nI know you wanna leave so come on baby be with me so happily",
"Lights go down\nAnd the night is calling to me, yeah\nI hear voices singing songs in the street\nAnd I know\n\nThat we won't be going home\nFor so long, for so long\nBut I know that I won't be on my own, yeah\nI love this feeling and\n\nRight now\nI wish you were here with me\n'Cause right now\nEverything is new to me\nYou know I can't fight the feeling\nAnd every night I feel it\nRight now\nI wish you were here with me\n\nLate night, spaces\nWith all our friends, you and me, yeah\nLove these faces\nJust like how it used to be\n\nAnd we won't be going home\nFor so long, for so long\nBut I know I won't be on my own, on my own\nI'm feeling like\n\nRight now\nI wish you were here with me\n'Cause right now\nEverything is new to me\nYou know I can't fight the feeling\nAnd every night I feel it\nRight now\nI wish you were here with me\n\nAnd I could do this forever\nAnd let's go crazy together\n\nLights go down\nAnd I hear you calling to me, yeah\n\nRight now\nI wish you were here with me\n'Cause right now\nEverything is new to me\nYou know I can't fight the feeling\nAnd every night I feel it\nRight now\nI wish you were here with me",
"Little black dress just walked into the room\nMaking heads turn can't stop looking at you\nIt's so right, it's so right, it's so right you know\nLittle black dress, did you come here alone?\nIt's too late, it's too late, it's too late to go home\nIt's alright, it's alright, it's alright you know\nIt's alright, it's alright, it's alright you know\n\nI wanna see the way you move for me baby\nI wanna see the way you move for me baby\nI wanna see the way you move for me\n\nLittle black dress who you doing it for?\nLittle black dress I can't take any more\nIt's not right, it's not right, it's not right you know\n\nLittle black dress, what's your favorite song?\nLittle black dress I won't do you no harm\nIt's alright, it's alright, it's alright you know\nIt's alright, it's alright, 'cause I'll take you home\n\nI wanna see the way you move for me baby\nI wanna see the way you move for me baby\nI wanna see the way you move for me\n\nI wanna see the way you move for me baby\nI wanna see the way you move for me baby\nI wanna see the way you move for me\n\nI wanna see the way you move for me baby\nI wanna see the way you move for me baby\nI wanna see the way you move for me",
"You tell me that you sad and lost your way\nYou tell me that your tears are here to stay\nBut I know you were only hiding\nAnd I just wanna see you\n\nYou tell me that you're hurt, and you're in pain\nAnd I can see your head is held in shame\nBut I just wanna see you smile again\nSee you smile again\n\nBut don't burn out\nEven if you scream and shout\nIt will come back to you\nAnd I'll be here for you\n\nOh I will carry you over fire and water for your love\nAnd I will hold you closer\nHope your heart is strong enough\nWhen the night is coming down on you\nWe will find a way through the dark\n\nI wish that I could take you to the start\nI'd never let you fall and break your heart\nAnd if you wanna cry or fall apart\nI'll be there to hold you\n\nYou tell me that you heard it's all in vain\nBut I can see your heart can love again\nAnd I remember you laughing\nSo let's just laugh again\n\nBut don't burn out\nEven if you scream and shout\nIt will come back to you\nBack to you\n\nOh I will carry you over fire and water for your love\nAnd I will hold you closer\nHope your heart is strong enough\nWhen the night is coming down on you\nWe will find a way \nThrough the dark\n\nAnd you don't need\nYou don't need to worry\nAnd you will see it's easy to be loved\nI know you wanna be loved\n\nOh I will carry you over fire and water for your love\n\nOh I will carry you over fire and water for your love\nAnd I will hold you closer\nHope your heart is strong enough\nWhen the night is coming down on you\nWe will find a way \nThrough the dark\n\nOh I will carry you over fire and water for your love (Oh I would, oh I would)\nAnd I will hold you closer\nHope your heart is strong enough\nWhen the night is coming down\nWe will find a way \nThrough the dark",
"One day you'll come into my world and say it all\nYou say we'll be together even when you're lost\n\nOne day you'll say these words I've thought but never said\nYou say we're better off together in our bed\n\nI want you here with me\nLike how I pictured it\nSo I don't have to keep imagining\nCome on, jump out at me\nCome on, bring everything\nIs it too much to ask for something great?\n\nThe script was written and I could not change a thing\nI want to rip it all to shreds and start again\n\nOne day I'll come into your world and get it right\nI'll say we're better off together here tonight\n\nI want you here with me\nLike how I pictured it\nSo I don't have to keep imagining, oh\nCome on, jump out at me\nCome on, bring everything\nIs it too much to ask for something great?\n\nI want you here with me\nLike how I pictured it\nSo I don't have to keep imagining\n\nCome on, jump out at me\nCome on, bring everything\nIs it too much to ask for something great?\nI want you here with me\nLike how I pictured it\nIs it too much to ask for something great?\n\nYou're all I want\nSo much it's hurting\nYou're all I want\nSo much it's hurting",
"If this room was burning\nI wouldn't even notice\n'Cause you've been taking up my mind\nWith your, little white lies, little white lies\n\nYou say it's getting late, it's getting late\nAnd you don't know if you could stay, if you could stay\nBut you, you don't tell the truth\nNo, you, you like playing games\n\nYour hands touching me, they're touching me\nAnd your eyes keep saying things\nThey're saying what we'd do\nWhen it's only me and you\nI can't concentrate\n\nThat's all I'm thinking about\nAll I keep thinking about\nEverything else just fades away\n\nIf this room was burning\nI wouldn't even notice\n'Cause you've been taking up my mind\nWith your, little white lies, little white lies\nYou say you're a good girl\nBut I know you would girl\n'Cause you've been telling me all night\nWith your, little white lies, little white lies\nWith your, little white lies, little white lies\n\nBackseat of the cab, we're in the cab now\nOr lips getting so attached, they're so attached now\nYou wanna make some rules now\nCool, then we'll watch them break tonight\n\nI know what you want\nAnd I've been waiting so long\n\nIf this room was burning\nI wouldn't even notice\n'Cause you've been taking up my mind\nWith your, little white lies, little white lies\nYou say you're a good girl\nBut I know you would girl\n'Cause you've been telling me all night\nWith your, little white lies, little white lies\nWith your, little white lies, little white lies\n\nI know you want it\nI know you feel it too\nLet's stop pretending\nThat you don't know and I don't know\nJust what we came to do\n\nIf this room was burning\nI wouldn't even notice\n'Cause you've been taking up my mind\nWith your, little white lies, little white lies\nYou say you're a good girl\nBut I know you would girl\n'Cause you've been telling me all night\nWith your, little white lies, little white lies\nWith your, little white lies, little white lies",
"Better than words\nBut more than a feeling\nCrazy in love\nDancing on the ceiling\n\nEvery time we touch\nI'm all shook up\nYou make me wanna\nHow deep is your love?\nGod only knows\nBaby\n\nOoh, I don't know how else to sum it up\n'Cause words ain't good enough, oh\nThere's no way I can explain your love, no\nOoh, I don't know how else to sum it up\n'Cause words ain't good enough, oh\nI can't explain your love, no\nIt's better than words\nBetter than words\n\nBetter than words\nYou drive me crazy\nSomeone like you\nAlways be my baby\n\nBest I ever had\nHips don't lie\nYou make me wanna\nOne more night\nIrreplaceable (Yeah)\nCrazy, we're crazy\n\nOoh, I don't know how else to sum it up\n'Cause words ain't good enough, oh\nThere's no way I can explain your love, no (There's no way I can explain your love)\nOoh, I don't know how else to sum it up\n'Cause words ain't good enough, no\nI can't explain your love, no\n\nEveryone tries (They try)\nTo see what it feels like (Feels like)\nBut they'll never be right\n'Cause it's better, it's better, it's better\n\nOoh ooh ooh oh\nOne more time...\nOoh ooh ooh oh\nBetter than words... Yeah\n\nOoh, I don't know how else to sum it up (I don't know!)\n'Cause words ain't good enough, oh\nThere's no way I can explain your love, no\nOoh, I don't know how else to sum it up (To sum it up)\n'Cause words ain't good enough (Words ain't good enough)\nI can't explain your love, no\nIt's better than words\nIt's better than words\nIt's better than words",
null,
"He knows about you in every way\r\nHe's memorized every part of your face\r\nInside and out, baby, head to toe\r\n\nYeah, he knows everything there is to know\r\nYour secret tattoo, the way you change moods\r\nThe songs that you sing when you're all alone\n\nYour favourite band, the way that you dance\n\nBaby, baby\n\n\n\nDoes he know you could move it like that?\n\nWoah-oh\n\nDoes he know you're out and I want you so bad\n\nWoah-oh\n\nTonight, you're mine, baby\n\nDoes he know that you'll never go back?, oh\n\nDoes he know?\n\n\n\nI catch your eye then you turn away\n\nBut there's no hiding the smile on your face\n\nInside and out, baby, head to toe\n\nHe's not around, girl, you let me know\n\nYour secret tattoo, the way you change moods\n\nThe songs that you sing when you're all alone\n\nHe knows how you dance in front of your friends\n\nBut baby, baby\n\n\n\nDoes he know you could move it like that?\n\nWoah-oh\n\nDoes he know you're out and I want you so bad\n\nWoah-oh\n\nTonight, you're mine, baby\n\nDoes he know that you'll never go back?, oh\n\nDoes he know?\n\n\n\nHe'll never know\n\nThe way you lie when you look at me\n\nSo keep trying but you know I see\n\nAll the little things that make you who you are\n\nSo tell me girl\n\n\n\nDoes he know you could move it like that?\n\nDoes he know that you'll never go back?, woah\n\n\n\nDoes he know you could move it like that?\n\nWoah-oh\n\nDoes he know you're out and I want you so bad\n\nWoah-oh\n\nTonight, you're mine, baby\n\nDoes he know that you'll never go back?\n\nDoes he know?",
"My mother told me I should go and get some therapy\nI asked the doctor, can you find out what is wrong with me?\nI don't know why I wanna be with every girl I meet\nI can't control it\nYeah, I know it's taking over me\n\nI'm going crazy\nCan't contain it\nSo tell me just what I should do, oh\n\nShe said, hey, it's alright\nDoes it make you feel alive?\nDon't look back\nLive your life\nEven if it's only for tonight\nShe said, hey, it's alright\nIf it makes you feel alive\n\nWent to a party, just after the doctor talked to me\nI met a girl, I took her, end up to the balcony\nI whispered something in her ear that I just can't repeat\nShe said okay, but she was worried what her friends will think\n\nShe's going crazy\nCan't contain it\nShe asked me what should I do?\n\nI said, hey, it's alright\nDoes it make you feel alive?\nDon't look back\nLive your life\nEven if it's only for tonight\nI said, hey, it's alright\nIf it makes you feel alive\n\nWe got to live before we get older\nDo what we like\nWe got nothing to lose\nShake off the weight of the world from your shoulders\nWe got nothing to prove\n\nI said, hey, it's alright\nDoes it make you feel alive?\nDon't look back\nLive your life\nEven if it's only for tonight\n\nI said, hey, it's alright\nDoes it make you feel alive?\nDon't look back\nLive your life\nEven if it's only for tonight\nI said, hey, it's alright\nIf it makes you feel alive",
"So your friends been telling me\r\nYou've been sleeping with my sweater\r\nAnd that you can't stop missing me\r\n\nBet my friends been telling you\r\nI'm not doing much better\r\nBecause I'm missing half of me\n\n\n\nAnd being here without you\n\nIt's like I'm waking up to\n\n\n\nOnly half a blue sky\n\nCandid there but not quite\n\nI'm walking round with just one shoe\n\nI'm a half a heart without you\n\n\n\nI'm half the man, at best\n\nWith half an arrow in my chest\n\nI miss everything we do\n\nI'm a half a heart without you\n\n\n\nForget all we said the night\n\nNo it doesn't even matter\n\nCause we both got split in two\n\nIf you could spare an hour or so\n\nWe'll go for the lunch down by the river\n\nWe could really talk it through\n\nAnd being here without\n\nIt's like I'm waking up to\n\n\n\nOnly half a blue sky\n\nCandid there but not quite\n\nI'm walking round with just one shoe\n\nI'm a half a heart without you\n\n\n\nI'm half the man, at best\n\nWith half an arrow in my chest\n\nI miss everything we do\n\nI'm a half a heart without you\n\n\n\nHalf a heart without you\n\nI'm a half a heart without you\n\n\n\nThough I try to get you out of my head\n\nThe truth is I got lost without you\n\nAnd since then I've been waking up to\n\n\n\nOnly half a blue sky\n\nCandid there but not quite\n\nI'm walking round with just one shoe\n\nI'm a half a heart without you\n\n\n\nI'm half the man, at best\n\nWith half an arrow in my chest\n\nI miss everything we do\n\nI'm a half a heart without you\n\n\n\nWithout you, without you\n\nHalf a heart without you\n\nWithout you, without you\n\nI'm half a heart without you",
"One way or another, I'm gonna find ya\nI'm gonna getcha, getcha, getcha, getcha\nOne way or another, I'm gonna win ya\nI'm gonna getcha, getcha, getcha, getcha\n\nOne way or another, I'm gonna see ya\nI'm gonna meet ya, meet ya, meet ya, meet ya\nOne day, maybe next week\nI'm gonna meet ya, I'm gonna meet ya, I'll meet ya\n\nI will drive past your house\nAnd if the lights are all down\nI'll see who's around\n\nLet's go!\nOne way or another, I'm gonna find ya\nI'm gonna getcha, getcha, getcha, getcha\nOne way or another, I'm gonna win ya\nI'll getcha, I'll getcha\n\nOne way or another, I'm gonna see ya\nI'm gonna meet ya, meet ya, meet ya, meet ya\nOne day, maybe next week\nI'm gonna meet ya, I'll meet ya, I'll meet ya\n\nAnd if the lights are all out\nI'll follow your bus downtown\nSee who's hanging out\n\n1-2-3-4!\n\nI wanna hold you, wanna hold you tight\nI wanna hold you, wanna hold you tight\nI wanna hold you, wanna hold you tight\nGet teenage kicks right through the night\n\nCome on!\nI wanna hold you, wanna hold you tight\nI wanna hold you, wanna hold you tight\nI wanna hold you, wanna hold you tight\nGet teenage kicks right through the night\n\nOne way or another, I'm gonna see ya\nI gonna meet ya, meet ya, meet ya, meet ya\nOne day or another, I'm gonna win ya\nI'm gonna getcha, getcha, getcha, getcha\n\nOne way or another, I'm gonna see ya\nI gonna meet ya, meet ya, meet ya, meet ya\nOne day or another, I'm gonna win ya\nI'm gonna getcha, getcha, getcha, getcha\n\nOne way or another, I'm gonna see ya\nI gonna meet ya, meet ya, meet ya, meet ya\nOne way or another, I'm gonna win ya\nI'm gonna getcha, getcha, getcha, getcha\nOne way or another",
"Your hand fits in mine \nlike it's made just for me\r\nBut bear this mind \n\nit was meant to be\r\nAnd I'm joining up the dots \nwith the freckles on your cheeks\n\nAnd it all makes sense to me\n\nI know you've never loved \n\nthe crinkles by your eyes \n\nwhen you smile\n\nYou've never loved \n\nyour stomach or your thighs\n\nThe dimples in your back \n\nat the bottom of your spine\n\nBut I'll love them endlessly\n\n\n\nI won't let these little things \n\nslip out of my mouth\n\nBut if I do, it's you, oh it's you, \n\nthey add up to\n\nI'm in love with you \n\nand all these little things\n\n\n\nYou can't go to bed \n\nwithout a cup of tea\n\nMaybe that's the reason \n\nthat you talk in your sleep\n\nAnd all those conversations a\n\nre the secrets that I keep\n\nThough it makes no sense to me\n\n\n\nI know you've never loved \n\nthe sound of your voice on tape\n\nYou never want to know how much you weigh\n\nYou still have to squeeze into your jeans\n\nBut you're perfect to me\n\n\n\nI won't let these little things \n\nslip out of my mouth\n\nBut if it's true, it's you, it's you, \n\nthey add up to\n\nI'm in love with you \n\nand all these little things\n\n\n\nYou never love yourself \n\nhalf as much as I love you\n\nYou'll never treat yourself \n\nright darling but I want you to\n\nIf I let you know, I'm here for you\n\nMaybe you'll love yourself\n\nlike I love you oh\n\n\n\nI've just let these little things \n\nslip out of my mouth\n\nBecause it's you, oh it's you, it's you \n\nthey add up to\n\nAnd I'm in love with you \n\n(all these little things)\n\nI won't let these little things \n\nslip out of my mouth\n\nBut if it's true, it's you, it's you \n\nthey add up to\n\nI'm in love with you, \n\nand all your little things",
"Maybe it\u2019s the way she walked (ow)\nStraight into my heart and stole it\nThrough the doors and past the guards (ow)\nJust like she already owned it\n\nI said, \"Can you give it back to me?\"\nShe said, \"Never in your wildest dreams.\"\n\nAnd we danced all night to the best song ever\nWe knew every line, now I can\u2019t remember\nHow it goes but I know that I won\u2019t forget her\n'Cause we danced all night to the best song ever\nI think it went, \"oh oh oh\"\nI think it went, \"yeah yeah yeah\"\nI think it goes... (woooo)\n\nSaid her name was Georgia Rose (ow)\nAnd her daddy was a dentist\nSaid I had a dirty mouth (I had a dirty mouth)\nBut she kissed me like she meant it\n\nI said, \"Can I take you home with me?\"\nShe said, \"Never in your wildest dreams.\"\n\nAnd we danced all night to the best song ever\nWe knew every line, now I can\u2019t remember\nHow it goes but I know that I won\u2019t forget her\n'Cause we danced all night to the best song ever\nI think it went, \"oh oh oh\"\nI think it went, \"yeah yeah yeah\"\nI think it goes... (woooo)\n\nYou know, I know, you know I\u2019ll remember you\nI know, you know, I know you\u2019ll remember me\nYou know, I know, you know I\u2019ll remember you\nI know, you know, I hope you remember how we danced\n\n(Oh oh oh)\n(Yeah yeah yeah)\n(How we danced)\n\nOne, two, one two three\nOw!\n\nAnd we danced all night to the best song ever\nWe knew every line, now I can\u2019t remember\nHow it goes but I know that I won\u2019t forget her\n'Cause we danced all night to the best song ever\n(We danced, we danced)\n(And it goes something like this)\nAnd we danced all night to the best song ever\nWe knew every line, now I can\u2019t remember\n(How it goes but I know that I won\u2019t forget her)\nHow it goes but I know that I won\u2019t forget her\n(Best song ever)\n'Cause we danced all night to the best song ever\nI think it went, \"oh oh oh\"\nI think it went, \"yeah yeah yeah\"\nI think its goes... (woooo)\n\nBest song ever\nIt was the best song ever\nIt was the best song ever\nIt was the best song ever"
]
},
{
"Four [2014]": [
"She's been my queen since we were sixteen\nWe want the same things, we dream the same dreams, all right\nAll right\n\nI got it all 'cause she is the one\nHer mum calls me love, her dad calls me son, all right\nAll right\n\nI know, I know, I know for sure\n\nEverybody wanna steal my girl\nEverybody wanna take her heart away\nCouple billion in the whole wide world\nFind another one 'cause she belongs to me\n\nEverybody wanna steal my girl\nEverybody wanna take her heart away\nCouple billion in the whole wide world\nFind another one 'cause she belongs to me\nShe belongs to me\n\nKisses like cream, her walk is so mean\nAnd every jaw drops when she's in those jeans, all right\nAll right\n\nI don't exist if I don't have her\nThe sun doesn't shine, the world doesn't turn, all right\nAll right\n\nBut I know, I know, I know for sure\n\nEverybody wanna steal my girl\nEverybody wanna take her heart away\nCouple billion in the whole wide world\nFind another one 'cause she belongs to me\n\nEverybody wanna steal my girl\nEverybody wanna take her heart away\nCouple billion in the whole wide world\nFind another one 'cause she belongs to me\n\nShe knows, she knows that I never let her down before\nShe knows, she knows\nThat I'm never gonna let another take her love from me now\n\nEverybody wants to steal my girl\nEverybody wants to take her love away\nCouple billion in the whole wide world\nWell, find another one 'cause she belongs to me\n\nEverybody wanna steal my girl\nEverybody wanna take her heart away\nCouple billion in the whole wide world\nFind another one 'cause she belongs to me\n\nShe belongs to me\n\nShe belongs to me",
"There's a lightning in your eyes, I can't deny\r\nThen there's me inside a sinking boat, running out of time\r\nWithout you I'll never make it out alive\r\n\nBut I know, yes I know we'll be alright\r\nThere's a devil in your smile it's chasing me\n\nAnd every time I turn around it's only gaining speed\n\nThere's a moment when you finally realize\n\nThere's no way you can change the rolling tide\n\nBut I know, yes I know that I'll be fine\n\n\n\nThis time I'm ready to run\n\nEscape from the city and follow the sun\n\nCause I wanna be yours, don't you wanna be mine?\n\nI don't wanna get lost in the dark of the night\n\nThis time I'm ready to run\n\nWherever you are is the place I belong\n\nCause I wanna be free, and I wanna be young\n\nI will never look back now I'm ready to run\n\nI'm ready to run\n\n\n\nThere's a future in my life I can't foresee\n\nUnless of course I stay on course and keep you next to me\n\n\n\nThere will always be the kind that criticize\n\nBut I know, yes I know we'll be alright\n\n\n\nThis time I'm ready to run\n\nEscape from the city and follow the sun\n\nCause I wanna be yours, don't you wanna be mine?\n\nI don't wanna get lost in the dark of the night\n\nThis time I'm ready to run\n\nWherever you are is the place I belong\n\nCause I wanna be free, and I wanna be young\n\nI will never look back now I'm ready to run\n\nThis time I'm ready to run\n\n\n\n(I'm ready to run)\n\nI'd give everything that I've got for your love\n\n\n\nThis time I'm ready to run\n\nEscape from the city and follow the sun\n\nCause I wanna be yours, don't you wanna be mine?\n\nI don't wanna get lost in the dark of the night\n\nThis time I'm ready to run\n\nWherever you are is the place I belong\n\nCause I wanna be free, and I wanna be young\n\nI will never look back\n\nnow I'm ready to run",
"Counted all my mistakes and there's only one\nStanding out from the list of the things I've done\nAll the rest of my crimes don't come close\nTo the look on your face when I let you go\n\nSo I built you a house from a broken home\nAnd I wrote you a song with the words you spoke\nYeah it took me some time but I figured out\nHow to fix up a heart that I let down\n\nNow I'm searching every lonely place\nEvery corner calling out your name\nTryna find you but I just don't know\nWhere do broken hearts go?\nWhere do broken hearts go?\n\nYeah, a taste of your lips on the tip of my tongue\nIt's at the top of the list of the things I want\nMind is running in circles of you and me\nAnyone in between is the enemy\n\nShadows come with the pain that you're running from\nLove was something you've never heard enough\nYeah it took me some time but I figured out\nHow to fix up a heart that I let down\n\nNow I'm searching every lonely place\nEvery corner calling out your name\nTryna find you but I just don't know\nWhere do broken hearts go?\n\nAre you sleeping baby by yourself?\nOr are you giving it to someone else?\nTrying to find you but I just don't know\nWhere do broken hearts go?\nWhere do broken hearts go?\n\nTell me now tell me now\nTell me where you're going\nYou've been afraid\nTell me now tell me now\nTell me will you ever love me again?\nLove me again?\n\nNow I'm searching every lonely place\nEvery corner calling out your name\nTryna find you but I just don't know\nWhere do broken hearts go?\n\nAre you sleeping baby by yourself?\nOr are you giving it to someone else?\nTry to find you but I just don't know\n\nWhere do broken hearts go?\nTell me where you're hiding out\nWhere do broken hearts go?\nCome on baby, 'cause I need you now\n\nWhere do broken hearts go?\nTell me, 'cause I'm ten feet down\nWhere do broken hearts go?\nCome on baby, come and get me out\nCome on baby, come and get me out\nCome on baby, 'cause I need you now\n\nWhere do broken hearts go?\nWhere do broken hearts go?\nWhere do broken hearts go?\nWhere do broken hearts go?",
"I got a heart and I got a soul\r\nBelieve me, I will use them both\r\nWe made a start, be it a false one I know\r\n\nBaby, I don't want to feel alone\r\nSo kiss me where I lay down\n\nMy hands pressed to your cheeks\n\nA long way from the playground\n\n\n\nI have loved you since we were eighteen\n\nLong before we both thought the same thing\n\nTo be loved and to be in love\n\nAll I can do is say that these arms were made for holding you\n\nI wanna love like you made me feel\n\nWhen we were eighteen\n\n\n\nWe took a chance, God knows we've tried\n\nYet all along I knew we'd be fine\n\n\n\nSo pour me a drink, oh love\n\nLet's split the night wide open and we'll see everything we can\n\nLiving love in slow motion, motion, motion\n\n\n\nSo kiss me where I lay down\n\nMy hands pressed to your cheeks\n\nA long way from the playground\n\n\n\nI have loved you since we were eighteen\n\nLong before we both thought the same thing\n\nTo be loved and to be in love\n\nAll I can do is say that these arms were made for holding you\n\nI wanna love like you made me feel\n\nWhen we were eighteen\n\n\n\nSo kiss me where I lay down\n\nMy hands pressed to your cheeks\n\nA long way from the playground\n\n\n\nI have loved you since we were eighteen\n\nLong before we both thought the same thing\n\n\n\nTo be loved and to be in love\n\n\n\nAnd all I can do is say that these arms were made for holding you\n\nAnd I wanna love like you made me feel\n\nWhen we were eighteen\n\n\n\nI wanna love like you made me feel\n\nWhen we were eighteen\n\nI wanna love like you made me feel\n\nWhen we were eighteen",
"(Hey hey, Oh no no no)\n\nHer light is as loud as many ambulances\nAs it takes to save a savior (whoa whoa whoa)\n\nShe floats through the room on a big balloon\nSome say, \"She's such a fake\"\nThat her love is made up\nNo, no no no\n\nLet's have another toast to the girl almighty \nLet's pray we stay young\nStay made of lightning\n\nAm I the only,\nOnly believer?\nThere's something happening here\nThere's something happening here\nThe only\nOnly believer\n(There's something happening here,\nI hope you feel what I'm feeling too)\n\nI get down, I get down, I get down \nOn my knees for ya\nI get down, I get down, I get down\nOn my knees\nI get down on my knees for you\n\nHer light is as loud as many ambulances\nAs it takes to save a savior (whoa whoa whoa)\n\nShe floats through the room on a big balloon\nSome say, \"She's such a fake\"\nThat her love is made up\nNo, no no no\n\nLet's have another toast to the girl almighty\nLet's pray we stay young\nStay made of lightning\n\nAm I the only,\nOnly believer?\nThere's something happening here\nThere's something happening here\nThe only\nOnly believer\n(There's something happening here,\nI hope you feel what I'm feeling too)\n\nI get down, I get down, I get down \nOn my knees for ya\nI get down, I get down, I get down\nOn my knees\nI get down on my knees for you",
null,
"Going out tonight\nChanges into something red\nHer mother doesn't like that kind of dress\nEverything she never had\nShe's showing off\n\nDriving too fast\nMoon is breaking through her hair\nShe's heading for something that she won't forget\nHaving no regrets is all that she really wants\n\nWe're only getting older, baby\nAnd I been thinking about it lately\nDoes it ever drive you crazy\nJust how fast the night changes\n\nEverything that you've ever dreamed of\nDisappearing when you wake up\nBut there's nothing to be afraid of\nEven when the night changes\nIt will never change\nMe and you\n\nChasing it tonight, doubts are running 'round her head\nHe's waiting, hides behind a cigarette\nHeart is beating loud, and she doesn't want it to stop\n\nMoving too fast\nMoon is lighting up her skin\nShe's falling, doesn't even know it yet\nHaving no regrets is all that she really wants\n\nWe're only getting older, baby\nAnd I been thinking about it lately\nDoes it ever drive you crazy\nJust how fast the night changes\n\nEverything that you've ever dreamed of\nDisappearing when you wake up\nBut there's nothing to be afraid of\nEven when the night changes\nIt will never change\nMe and you \n\nGoing out tonight\nChanges into something red\nHer mother doesn't like that kind of dress\nReminds her of a missing piece of innocence she lost\n\nWe're only getting older, baby\nAnd I been thinking about it lately\nDoes it ever drive you crazy\nJust how fast the night changes\n\nEverything that you've ever dreamed of\nDisappearing when you wake up\nBut there's nothing to be afraid of\nEven when the night changes\n\nIt will never change, baby\nIt will never change, baby\nIt will never change\nMe and you",
"Stained coffee cup\nJust a fingerprint of lipstick's not enough\nSleep, where you lay\nStill a trace of innocence on pillow case\n\nWaking up\nBeside you I am a loaded gun\nI can't contain this anymore\nI'm all yours I got no control\nNo control\nPowerless\nAnd I don't care it's obvious\nI just can't get enough of you\nThe pedal's down my eyes are closed\nNo control\n\nTaste on my tongue\nI don't want a wash away the night before\nIn the heat where you lay\nI could stay right here and burn in it all day\n\nWaking up\nBeside you I am a loaded gun\nI can't contain this anymore\nI'm all yours I got no control\nNo control\nPowerless\nAnd I don't care it's obvious\nI just can't get enough of you\nThe pedal's down my eyes are closed\nNo control\n\nLost my senses\nI'm defenseless\nHer perfume's holding me ransom\nSweet and sour\nI devour\nLying here I count the hours\n\nWaking up\nBeside you I'm a loaded gun\nI can't contain this anymore\nI'm all yours I got no control\nNo control\nPowerless\nAnd I don't care it's obvious\nI just can't get enough of you\nThe pedal's down my eyes are closed\nNo control\nNo control\nNo control\n\nPowerless\nAnd I don't care it's obvious\nI just can't get enough of you\nThe pedal's down my eyes are closed\nNo control",
"Harry:\nI think I'm gonna lose my mind,\nSomething deep inside me, I can't give up,\nI think I'm gonna lose my mind,\nI roll and I roll till I'm out of luck\nYeah, I roll and I roll till I'm out of luck,\n\nNiall:\nI'm feeling something deep inside,\nHotter than a jet stream burning up,\nI got a feeling deep inside,\nIt's taking, it's taking all I've got,\nYeah, it's taking, it's taking all I got,\n\nAll:\n'Cause nobody knows you, baby, the way I do,\nAnd nobody loves you, baby, the way I do,\nLiam:\nIt's been so long, it's been so long, maybe were fireproof,\n'Cause nobody saves me, baby, the way you do.\n\nLouis:\nI think I'm gonna win this time,\nRiding on the wind and I won't give up,\nI think I'm gonna win this time,\nI roll and I roll, till I change my luck\nYeah, I roll and I roll, till I change my luck,\n\nAll:\n'Cause nobody knows you, baby, the way I do,\nAnd nobody loves you, baby, the way I do,\nZayn:\nIt's been so long, it's been so long, you must be fireproof,\n'Cause nobody saves me, baby, the way you do,\n\nAll:\n'Cause nobody knows you, baby, the way I do,\nAnd nobody loves you, baby, the way I do,\nZayn:\nIt's been so long, it's been so long,\nHarry:\nMaybe were fireproof,\n'Cause nobody saves me, baby, the way you do.",
"Who's gonna be the first one to start the fight?\nWho's gonna be the first one to fall asleep at night?\nWho's gonna be the last one to drive away?\n\nWho's gonna be the last one to forget this place?\n\nWe keep taking turns\n\nWill we ever learn?\n\n\n\nOh spaces between us\n\nKeep getting deeper\n\nIt's harder to reach you\n\nEven though I try\n\nSpaces between us\n\nHold all our secrets\n\nLeaving us speechless\n\nAnd I don't know why\n\n\n\nWho's gonna be the first to say goodbye?\n\n\n\nWho's gonna be the first one to compromise?\n\nWho's gonna be the first one to set it all on fire?\n\nWho's gonna be the last one to drive away?\n\nForgetting every single promise we ever made?\n\n\n\nOh spaces between us\n\nKeep getting deeper\n\nIt's harder to reach you\n\nEven though I try\n\nSpaces between us\n\nHold all our secrets\n\nLeaving us speechless\n\nAnd I don't know why\n\n\n\nWho's gonna be the first to say goodbye?\n\n\n\nWe keep taking turns\n\nWill we ever learn?\n\nWhen will we learn?\n\n\n\nOh spaces between us\n\nKeep getting deeper\n\nIt's harder to reach you\n\nEven though I try\n\nSpaces between us\n\nHold all our secrets\n\nLeaving us speechless\n\nAnd I don't know why\n\n\n\nWho's gonna be the first to say goodbye?\n\nWho's gonna be the first to say goodbye?\n\nthe spaces between us\n\nthe spaces between us\n\nthe spaces between us\n\nthe spaces between us",
"Who's that shadow holding me hostage?\nI've been here for days\nWho's this whisper telling me that I'm\nNever gonna get away?\n\nI know they'll be coming\nTo find me soon\nBut I fear I'm getting\nUsed to being held by you\n\nBaby look what you've done to me\nBaby look what you've done now\nBaby I'll never leave\nIf you keep holding me this way\nBaby look what you've done to me\nBaby you've got me tied down\nBaby I'll never leave\nIf you keep holding me this way\n\nWho's this man that's holding your hand\nAnd talking 'bout your eyes\nUsed to sing about being free but\nNow he's changed his mind\n\nI know they'll be coming\nTo find me soon\nBut my Stockholm syndrome\nIs in your room\nYeah I fell for you!\n\nBaby look what you've done to me\nBaby look what you've done now\nBaby I'll never leave\nIf you keep holding me this way\nBaby look what you've done to me\nBaby you've got me tied down\nBaby I'll never leave\nIf you keep holding me this way\n\nAll my life I've been on my own\nI used the light to guide me home\nAnd now together we're alone\nAnd there's no other place I'd ever wanna go\n\nLook what you've done to me\nBaby look what you've done, done\nBaby look what you've done to me\nBaby look what you've done now\nBaby I'll never leave\nIf you keep holding me this way\nBaby look what you've done to me\nBaby you've got me tied down\nBaby I'll never leave\nIf you keep holding me this way",
"I know you say\nThat you don't like it complicated\nThat we should try keep it simple\nBut love is never ever simple, no\n\nSomeday\nYou're gonna see the things that I see\nYou're gonna want the air that I breathe\nYou're gonna wish you never left me\n\nHere we go again\nAnother go round for all of my friends\nAnother night stop will it ever end?\nHere we go again\nAnother go round for all of my friends\nAnother night stop will it ever end?\nIf we're never coming back down\nYeah we're looking down on the clouds\n\nI know you say\nThat you don't like it complicated\nThat you are tired of all the changes\nBut love is always, always changing, woah\n\nSomeday\nYou're gonna see the things that I see\nYou're gonna want air that I breathe\nYou're gonna wish you never left me\n\nHere we go again\nAnother go round for all of my friends\nAnother night stop will it ever end?\nHere we go again\nAnother go round for all of my friends\nAnother night stop will it ever end?\nIf we're never coming back down\nYeah we're looking down on the clouds\n\nAnd we go\nAnd we go\nAnd we go\nAnd we don't stop\n\nBut we don't\nNo we don't\nNo we don't\nNever go up\n\nAnd we go\nAnd we go\nAnd we go\nAnd we don't stop\n\nBut we don't\nNo we don't\nNo we don't\nNever go up\n\nHere we go again\nAnother go round for all of my friends\nAnother night stop will it ever end?\nHere we go again\nAnother go round for all of my friends\nAnother night stop will it ever end?\n\nHere we go again\nAnother go round for all of my friends\nAnother night stop will it ever end?\nHere we go again\nAnother go round for all of my friends\nAnother night stop will it ever end?",
"Watching you get dressed messes with my head\nTake that bag off your shoulder\nCome get back in bed, we still got time left\nThis don't have to be over\n\nAnd you'd say it's hard to keep a secret\nGirl don't leave me all alone in this hotel\nAnd these shades can hide us from the streets, yeah\nOne weekend, I promise that I'll never tell\n\nYou should probably stay, probably stay, a couple more days\nCome and let me change your ticket home\nYou should probably stay, be with me a couple more days\nCome and let me change your ticket home\nDon't go, it's not the same when you go\nAnd it's not good to be all alone\nSo you should probably stay, here with me, a couple more days\nCome and let me change your ticket home\n\nDon't play innocent, I know what you meant\nWhen you said you'd come over\nAre we way past that, playing hard to get?\nWe did that when we were younger\n\nAnd you say it's hard to keep a secret\nGirl don't leave me all alone in this hotel\nAnd these shades can hide us from the streets, yeah\nOne weekend, I promise that I'll never tell\n\nYou should probably stay, probably stay, a couple more days\nCome and let me change your ticket home\nYou should probably stay, be with me a couple more days\nCome and let me change your ticket home\nDon't go, it's not the same when you go\nAnd it's not good to be all alone\nDon't go, it's not the same when you go\nCome and let me change your ticket home\n\nWhy don't we take some time?\nWhy don't we take just a little more time?\nWhy don't we make it right?\nGirl, I don't wanna say goodbye?\n\nYou should probably stay, probably stay, a couple more days\nCome and let me change your ticket home\nYou should probably stay, here with me a couple more days\nCome and let me change your ticket home\nDon't go, it's not the same when you go\nAnd it's not good to be all alone\nDon't go, it's not the same when you go\nCome and let me change your ticket home",
"Tell me you believe in love\nIt's not an illusion\n\nI've been thinking about the nights and the dangerous tricks\nPeople play on the eyes of the innocent\nI could turn a lot of hearts into breaks with smoke\nAnd mirrors disappearing right in front of them\n\nBut believe me I'm not trying to deceive you\nI promise falling for me won't be a mistake\n\nNo baby, this is not an illusion\nI've really got my heart out on my sleeve\nOh baby, this is not an illusion\nThere's magic between you and me\n\nNo baby, this is not an illusion\nYou really got me lifted off my feet\nSo tell me you believe in love\n'Cause it's not an illusion to me\n\nYou don't ever have to worry about me, about how the cards fall, \nI'm all that you need tonight\nI would never turn your heart into broken parts\nYou don't have to think twice looking in my eyes\n\nCan't you see it?\nI'm not trying to mislead ya\nI promise falling for me won't be a mistake\n\nNo baby, this is not an illusion\nI've really got my heart out on my sleeve\nOh baby, this is not an illusion\nThere's magic between you and me\n\nNo baby, this is not an illusion\nYou really got me lifted off my feet\nSo tell me you believe in love\n'Cause it's not an illusion to me\n\nYou can tie me up in chains\nYou can throw away the key\nBut there's no trap doors\nI'm not gonna leave\nYou're the truth I can't explain\nYou're the only one I see\nIt's not an illusion to me\n\nNo baby, this is not an illusion\nI've really got my heart out on my sleeve\nOh baby, this is not an illusion\nThere's magic between you and me\n\nNo baby, this is not an illusion\nYou really got me lifted off my feet\nSo tell me you believe in love\n'Cause it's not an illusion to me\nSo tell me you believe in love\n'Cause it's not an illusion",
"Once in a lifetime\nIt's just right\nWe make no mistakes\nNot even a landslide or riptide\nCould take it all away\n\nSomehow it feels like nothing has changed\nRight now, my heart is beating the same\nOut loud, someone's calling my name\nIt sounds like you\n\nWhen I close my eyes\nAll the stars align\nAnd you are by my side\nYou are by my side\n\nOnce in a lifetime\nIt's just right and we are always safe\nNot even the bad guys and the dark nights \nCould take it all away\n\nSomehow it feels like nothing has changed\nRight now, my heart is beating the same\nOut loud, someone's calling my name\nAnd it sounds like you\n\nWhen I close my eyes\nAll the stars align\nAnd you are by my side\nYou are by my side\nYou are by my side\nYou are by my side\n\nOnce in a lifetime\nYou were mine",
"When I'm fat and old and my kids think I'm a joke\nCause I move a little slow when I dance\nI can count on you after all that we've been through\n\nCause I know that you'll always understand\n\nI won't act my age, no I won't act my age\n\nNo, I'll still feel the same around you\n\nHey!\n\n\n\nWhen I'm fat and old and my kids think I'm a joke\n\nCause the stories that I told, I tell again and again\n\nI can count on you after all we got up to\n\nCause I know that you truly understand\n\n\n\nI won't act my age, no I won't act my age\n\nNo, I'll still feel the same around you\n\nI won't act my age, no I won't act my age\n\nNo, I'll still feel the same and you will too\n\nHey!\n\n\n\nWhen I can hardly walk and my hair is falling out\n\nWe'll still stay up till morning\n\nWe'll throw an after party, oh yeah, oh yeah\n\n\n\nI won't act my age, no I won't act my age\n\nNo, I'll still feel the same around you\n\nI won't act my age, no I won't act my age\n\nNo I'll still feel the same and you will too",
"She's been my queen since we were sixteen\nWe want the same things, we dream the same dreams, all right\nAll right\n\nI got it all 'cause she is the one\nHer mum calls me love, her dad calls me son, all right\nAll right\n\nI know, I know, I know for sure\n\nEverybody wanna steal my girl\nEverybody wanna take her heart away\nCouple billion in the whole wide world\nFind another one 'cause she belongs to me\n\nEverybody wanna steal my girl\nEverybody wanna take her heart away\nCouple billion in the whole wide world\nFind another one 'cause she belongs to me\nShe belongs to me\n\nKisses like cream, her walk is so mean\nAnd every jaw drops when she's in those jeans, all right\nAll right\n\nI don't exist if I don't have her\nThe sun doesn't shine, the world doesn't turn, all right\nAll right\n\nBut I know, I know, I know for sure\n\nEverybody wanna steal my girl\nEverybody wanna take her heart away\nCouple billion in the whole wide world\nFind another one 'cause she belongs to me\n\nEverybody wanna steal my girl\nEverybody wanna take her heart away\nCouple billion in the whole wide world\nFind another one 'cause she belongs to me\n\nShe knows, she knows that I never let her down before\nShe knows, she knows\nThat I'm never gonna let another take her love from me now\n\nEverybody wants to steal my girl\nEverybody wants to take her love away\nCouple billion in the whole wide world\nWell, find another one 'cause she belongs to me\n\nEverybody wanna steal my girl\nEverybody wanna take her heart away\nCouple billion in the whole wide world\nFind another one 'cause she belongs to me\n\nShe belongs to me\n\nShe belongs to me",
"She's been my queen since we were sixteen\nWe want the same things, we dream the same dreams, all right\nAll right\n\nI got it all 'cause she is the one\nHer mum calls me love, her dad calls me son, all right\nAll right\n\nI know, I know, I know for sure\n\nEverybody wanna steal my girl\nEverybody wanna take her heart away\nCouple billion in the whole wide world\nFind another one 'cause she belongs to me\n\nEverybody wanna steal my girl\nEverybody wanna take her heart away\nCouple billion in the whole wide world\nFind another one 'cause she belongs to me\nShe belongs to me\n\nKisses like cream, her walk is so mean\nAnd every jaw drops when she's in those jeans, all right\nAll right\n\nI don't exist if I don't have her\nThe sun doesn't shine, the world doesn't turn, all right\nAll right\n\nBut I know, I know, I know for sure\n\nEverybody wanna steal my girl\nEverybody wanna take her heart away\nCouple billion in the whole wide world\nFind another one 'cause she belongs to me\n\nEverybody wanna steal my girl\nEverybody wanna take her heart away\nCouple billion in the whole wide world\nFind another one 'cause she belongs to me\n\nShe knows, she knows that I never let her down before\nShe knows, she knows\nThat I'm never gonna let another take her love from me now\n\nEverybody wants to steal my girl\nEverybody wants to take her love away\nCouple billion in the whole wide world\nWell, find another one 'cause she belongs to me\n\nEverybody wanna steal my girl\nEverybody wanna take her heart away\nCouple billion in the whole wide world\nFind another one 'cause she belongs to me\n\nShe belongs to me\n\nShe belongs to me",
"Written in these walls are the stories that I can't explain\nI leave my heart open, but it stays right here empty for days\nShe told me in the morning she don't feel the same about us in her bones\nIt seems to me that when I die these words will be written on my stone\n\nAnd I'll be gone, gone tonight\nThe ground beneath my feet is open wide\nThe way that I've been holdin' on too tight\nWith nothing in between\n\nThe story of my life, I take her home\nI drive all night to keep her warm and time\nIs frozen (the story of, the story of)\nThe story of my life, I give her hope\nI spend her love until she's broke inside\nThe story of my life (the story of, the story of)\n\nWritten on these walls are the colours that I can't change\nLeave my heart open but it stays right here in its cage\nI know that in the morning, I'll see us in the light upon the hill\nAlthough I am broken, my heart is untamed still\n\nAnd I'll be gone, gone tonight\nThe fire beneath my feet is burning bright\nThe way that I've been holdin' on so tight\nWith nothing in between\n\nThe story of my life I take her home\nI drive all night to keep her warm and time\nIs frozen (the story of, the story of)\nThe story of my life I give her hope\nI spend her love until she's broke inside\nThe story of my life (the story of, the story of)\n\nAnd I've been waiting for this time to come around\nBut baby, running after you is like chasing the clouds\nThe story of my life, I take her home\nI drive all night to keep her warm and time is frozen\n\nThe story of my life I give her hope (Give her hope)\nI spend her love until she's broke inside (Until she's broke inside)\nThe story of my life (the story of, the story of)\nThe story of my life\nThe story of my life (the story of, the story of)\nThe story of my life"
]
},
{
"Made in the A.M. [2015]": [
"Hey angel\r\nDo you know the reasons why\r\nWe look up to the sky?\r\n\nHey angel\r\nDo you look at us and laugh\r\nWhen we hold on to the past?\n\nHey angel\n\n\n\nOh I wish I could be more like you\n\nDo you wish you could be more like me?\n\nOh I wish I could be more like you\n\nDo you wish you could be more like me?\n\n\n\nHey angel\n\nTell me, do you ever try\n\nTo come to the other side?\n\nHey angel\n\nTell me, do you ever cry\n\nWhen we waste away our lives?\n\n\n\nOh I wish I could be more like you\n\nDo you wish you could be more like me?\n\nOh I wish I could be more like you\n\nOh I wish I could me more, I could be more, I could be more\n\n\n\nYeah I see you at the bar, at the edge of my bed\n\nBackseat of my car, in the back of my head\n\nI come alive when I hear your voice\n\nIt's a beautiful sound, it's a beautiful noise\n\nI see you at the bar, at the edge of my bed\n\nBackseat of my car, in the back of my head\n\nI come alive when I hear your voice\n\nIt's a beautiful sound, it's a beautiful noise\n\n(beautiful noise, beautiful noise...)\n\n\n\nHey angel\n\nHey angel\n\nDo you look up to the sky?\n\nDo you look up to the sky?\n\n\n\nOh I wish I could be more like you\n\nDo you wish you could be more like me?\n\n(to be more like me?)\n\nOh I wish I could be more like you\n\n(Do you, do you?)\n\nDo you wish you could be more like me?\n\n\n\nHey angel\n\nHey angel",
"I've got fire for a heart\nI'm not scared of the dark\nYou've never seen it look so easy\nI got a river for a soul,\nAnd baby, you're a boat\nBaby, you're my only reason\n\nIf I didn't have you, there would be nothing left\nThe shell of a man that could never be his best\nIf I didn't have you, I'd never see the sun\nYou taught me how to be someone, yeah\n\nAll my life, you stood by me\nWhen no one else was ever behind me\nAll these lights, they can't blind me\nWith your love, nobody can drag me down\n\nAll my life, you stood by me\nWhen no one else was ever behind me\nAll these lights, they can't blind me\nWith your love, nobody can drag me down\n\nNobody, nobody\nNobody can drag me down\nNobody, nobody\nNobody can drag me down\n\nI've got fire for a heart\nI'm not scared of the dark\nYou've never seen it look so easy\nI got a river for a soul,\nAnd baby, you're a boat\nBaby, you're my only reason\n\nIf I didn't have you, there would be nothing left (nothing left)\nThe shell of a man that could never be his best (be his best)\nIf I didn't have you, I'd never see the sun (see the sun)\nYou taught me how to be someone, yeah\n\nAll my life, you stood by me\nWhen no one else was ever behind me\nAll these lights, they can't blind me\nWith your love, nobody can drag me down\n\nNobody, nobody\nNobody can drag me down\nNobody, nobody\nNobody can drag me\n\nAll my life, you stood by me\nWhen no one else was ever behind me\nAll these lights, they can't blind me\nWith your love, nobody can drag me down\n\nAll my life, you stood by me\nWhen no one else was ever behind me\nAll these lights, they can't blind me\nWith your love, nobody can drag me down\n\nNobody, nobody\nNobody can drag me down\nNobody, nobody\nNobody can drag me down\n\nNobody, nobody\nNobody can drag me down\nNobody, nobody\nNobody can drag me down",
"I might never be your knight in shining armor\r\nI might never be the one you take home to mother\r\nAnd I might never be the one who brings you flowers\r\n\nBut I can be the one, be the one tonight\r\nWhen I first saw you from across the room\n\nI could tell that you were curious, oh yeah\n\nGirl I hope you're sure what you're looking for\n\n'Cause I'm not good at making promises\n\n\n\nBut if you like causing trouble up in hotel rooms\n\nAnd if you like having secret little rendezvous\n\nIf you like to do the things you know that we shouldn't do\n\nBaby, I'm perfect\n\nBaby, I'm perfect for you\n\n\n\nAnd if you like midnight driving with the windows down\n\nAnd if you like going places we can't even pronounce\n\nIf you like to do whatever you've been dreaming about\n\nBaby, you're perfect\n\nBaby, you're perfect\n\nSo let's start right now\n\n\n\nI might never be the hands you put your heart in\n\nOr the arms that hold you any time you want them\n\nBut that don't mean that we can't live here in the moment\n\n'Cause I can be the one you love from time to time\n\n\n\nWhen I first saw you from across the room\n\nI could tell that you were curious, oh yeah\n\nGirl I hope you're sure what you're looking for\n\n'Cause I'm not good at making promises\n\n\n\nBut if you like causing trouble up in hotel rooms\n\nAnd if you like having secret little rendezvous\n\nIf you like to do the things you know that we shouldn't do\n\nBaby, I'm perfect\n\nBaby, I'm perfect for you\n\n\n\nAnd if you like midnight driving with the windows down\n\nAnd if you like going places we can't even pronounce\n\nIf you like to do whatever you've been dreaming about\n\nBaby, you're perfect\n\nBaby, you're perfect\n\nSo let's start right now\n\n\n\nAnd if you like cameras flashing every time we go out\n\nOh, yeah\n\nAnd if you're looking for someone to write your breakup songs about\n\nBaby, I'm perfect\n\nBaby, we're perfect\n\n\n\nIf you like causing trouble up in hotel rooms\n\nAnd if you like having secret little rendezvous\n\nIf you like to do the things you know that we shouldn't do\n\nBaby, I'm perfect\n\nBaby, I'm perfect for you\n\n\n\nAnd if you like midnight driving with the windows down\n\nAnd if you like going places we can't even pronounce\n\nIf you like to do whatever you've been dreaming about\n\nBaby, you're perfect\n\nBaby, you're perfect\n\nSo let's start right now",
"Down to Earth\r\nKeep on falling when I know it hurts\r\nGoing faster than a million miles an hour\r\n\nTrying to catch my breath some way, somehow\r\nDown to Earth\n\nIt's like I'm frozen, but the world still turns\n\nStuck in motion and the wheels keep spinning 'round\n\nMoving in reverse with no way out\n\n\n\nAnd now I'm one step closer to being\n\nTwo steps far from you\n\nWhen everybody wants you\n\nEverybody wants you\n\n\n\nHow many nights does it take to count the stars?\n\nThat's the time it would take to fix my heart\n\nOh, baby, I was there for you\n\nAll I ever wanted was the truth, yeah, yeah\n\nHow many nights have you wished someone would stay?\n\nLie awake only hoping they're okay\n\nI never counted all of mine\n\nIf I tried, I know it would feel like infinity\n\nInfinity, infinity, yeah\n\nInfinity\n\n\n\nEyes can't shine\n\nUnless there's something burning bright behind\n\nSince you went away, there's nothing left in life\n\nI feel myself running out of time\n\n\n\nAnd now I'm one step closer to being\n\nTwo steps far from you\n\nWhen everybody wants you\n\nEverybody wants you\n\n\n\nHow many nights does it take to count the stars?\n\nThat's the time it would take to fix my heart\n\nOh, baby, I was there for you\n\nAll I ever wanted was the truth, yeah, yeah\n\nHow many nights have you wished someone would stay?\n\nLie awake only hoping they're okay\n\nI never counted all of mine\n\nIf I tried, I know it would feel like infinity\n\nInfinity, infinity, yeah\n\nInfinity (infinity, infinity....)\n\nInfinity, infinity\n\n\n\nHow many nights does it take to count the stars?\n\nThat's the time it would take to fix my heart\n\nOh, baby, I was there for you\n\nAll I ever wanted was the truth, yeah, yeah\n\nHow many nights have you wished someone would stay?\n\nLie awake only hoping they're okay\n\nI never counted all of mine\n\nIf I tried, I know it would feel like infinity (infinity)\n\nInfinity (infinity), infinity, yeah, infinity",
"I told her that I loved her, was not sure if she heard\r\nThe roof was pretty windy and she didn't say a word\r\nParty dying downstairs, had nothing left to do\r\n\nJust me, her and the moon\r\nI set you on fire babe\n\nThen down came the lightning on me\n\nLove can be frightening for sure\n\n\n\nAll I know at the end of the day\n\nIs you want what you want and you say what you say\n\nAnd you'll follow your heart even though it'll break\n\nSometimes\n\nAll I know at the end of the day\n\nIs you love who you love, there ain't no other way\n\nIf there's something I've learnt from a million mistakes\n\nYou're the one that I want at the end of the day\n\n\n\nAt the end of the day\n\nYou're the one that I want at the end of the day\n\n\n\nSure the night was over, I said it's forever\n\n20 minutes later, wound up in the hospital\n\nThe priest thinks it's the devil\n\nMy mum thinks it's the flu\n\nBut girl it's only you\n\n\n\nI set you on fire babe\n\nThen down came the lightning on me\n\nLove can be frightening for sure\n\n\n\nAll I know at the end of the day\n\nIs you want what you want and you say what you say\n\nAnd you'll follow your heart even though it'll break\n\nSometimes\n\nAll I know at the end of the day\n\nIs you love who you love, there ain't no other way\n\nIf there's something I've learnt from a million mistakes\n\nYou're the one that I want at the end of the day\n\n\n\nWhen the sun goes down \n\nI know that you and me and everything will be alright\n\nAnd when the city's sleeping\n\nYou and I can stay awake and keep on dreaming\n\nYou and I can stay awake and keep on dreaming\n\n\n\nAll I know at the end of the day\n\nIs you want what you want and you say what you say\n\nAnd you'll follow your heart even though it'll break\n\nSometimes\n\nAll I know at the end of the day\n\nIs you love who you love, there ain't no other way\n\nIf there's something I've learnt from a million mistakes\n\nYou're the one that I want at the end of the day\n\n(At the end of the day, yeah)\n\nAt the end of the day\n\nYou're the one that I want at the end of the day\n\n(At the end of the day)\n\nYou're the one that I want at the end of the day",
"If I could fly\r\nI'd be coming right back home to you\r\nI think I might \n\nGive up everything, just ask me to\r\nPay attention, I hope that you listen \n\n'Cause I let my guard down\n\nRight now I'm completely defenceless\n\n\n\nFor your eyes only, I'll show you my heart\n\nFor when you're lonely and forget who you are\n\nI'm missing half of me when we're apart\n\nNow you know me, for your eyes only\n\n\n\nFor your eyes only\n\n\n\nI've got scars \n\nEven though they can't always be seen\n\nAnd pain gets hard\n\nBut now you're here and I don't feel a thing\n\n\n\nPay attention, I hope that you listen \n\n'Cause I let my guard down\n\nRight now I'm completely defenceless\n\n\n\nFor your eyes only, I'll show you my heart\n\nFor when you're lonely and forget who you are\n\nI'm missing half of me when we're apart\n\nNow you know me, for your eyes only\n\n\n\nFor your eyes only\n\n\n\nI can feel your heart inside of mine (I feel it, I feel it)\n\nI've been going out of my mind (I feel it, I feel it)\n\nKnow that I'm just wasting time\n\nAnd I\n\nHope that you don't run from me\n\n\n\nFor your eyes only, I'll show you my heart\n\nFor when you're lonely and forget who you are\n\nI'm missing half of me when we're apart\n\nNow you know me, for your eyes only\n\n\n\nFor your eyes only, I'll show you my heart\n\nFor when you're lonely and forget who you are\n\nI'm missing half of me when we're apart\n\nNow you know me, for your eyes only\n\n\n\nFor your eyes only\n\nFor your eyes only",
"We made a fire\nWent down in the flames\nWe sailed the ocean\nAnd drowned in the waves\nBuilt a cathedral\nBut we never prayed\nWe had it all, yeah\nAnd we walked away\n\nPoint of no return and now\nIt's just too late to turn around\nI try to forgive you\nBut I struggle 'cause I don't know how\nWe built it up so high and now I'm fallin'\nIt's a long way down\nIt's a long way down, from here\n\nWe had a mountain\nBut took it for granted\nWe had a spaceship\nBut we couldn't land it\nWe found an island\nBut we got stranded\nWe had it all\nWho could've planned it?\n\nPoint of no return and now\nIt's just too late to turn around\nI try to forgive you\nBut I'm struggling 'cause I don't know how\nWe built it up so high and now I'm fallin'\nIt's a long way down, from here\nSuch a long way down\nIt's a long way down\nIt's a long way down\nSuch a long way down\nIt's a long way down\nIt's a long way down",
"Wanna pull an all nighter and get into something we'll never forget\r\nWanna stay up and party the weekend away and not know when to quit\r\nWanna drive in the night to the end of the Earth and go over the edge\r\n\nWanna wake up with you and say baby let's do it all over again\r\nLips so good, I forget my name\n\nI swear I could give you everything\n\n\n\nI don't need my love, \n\nYou can take it, you can take it, take it\n\nI don't need my heart\n\nYou can break it, you can break it, break it\n\nI just can't get too much of you, baby, \n\nIt's never, it's never enough\n\nNever enough \n\nIt's never enough, never enough\n\n(Come on)\n\n(Come on)\n\n\n\nWanna pull an all nighter and get into something we'll never forget\n\nWanna stay up and party the weekend away and not know when to quit\n\nWanna drive in the night to the end of the Earth and go over the edge\n\nWanna wake up with you and say baby let's do it all over again\n\n\n\nLips so good I forget my name\n\nI swear I could give you everything\n\n\n\nI don't need my love, \n\nYou can take it, you can take it, take it\n\nI don't need my heart\n\nYou can break it, you can break it, break it\n\nI just can't get too much of you, baby, \n\nIt's never, it's never enough\n\nNever enough \n\nIt's never enough, never enough\n\n(Come on)\n\n(Come on)\n\n(Come on)\n\n(Come on)\n\n\n\nToo much is never enough, too much is never enough\n\nToo much is never enough, too much\n\nToo much is never enough, too much is never enough\n\nToo much is never enough, too much is never enough\n\nNever enough, it's never, it's never, it's never\n\n\n\nI don't need my love, \n\nYou can take it, you can take it, take it\n\nI don't need my heart\n\nYou can break it, you can break it, break it\n\nI just can't get too much of you, baby, \n\nIt's never, it's never enough\n\nNever enough (it's never enough)\n\n\n\nI don't need my love, \n\nYou can take it, you can take it, take it\n\nI don't need my heart\n\nYou can break it, you can break it, break it\n\nI just can't get too much of you, baby \n\nIt's never, it's never enough\n\n(Its' never, it's never...) Never enough \n\nIt's never enough, never enough\n\n(Come on)\n\n(Come on)\n\n(Come on) yeah yeah yeah\n\n(Come on) yeah baby\n\nOoh!",
"Remember the day we were giving up\nWhen you told me I didn't give you enough\nAnd all of your friends were saying I'd be leaving you\nShe's lying in bed with my t-shirt on\nJust thinking how I went about it wrong\nThis isn't the stain of a red wine, I'm bleeding love\n\nPlease believe me, don't you see\nThe things you mean to me?\nOh I love you, I love you\nI love, I love, I love Olivia\n\nI live for you, I long for you, Olivia\nI've been idolizing the light in your eyes, Olivia\nI live for you, I long for you, Olivia\nDon't let me go\nDon't let me go\n\nSay what you're feeling and say it now\n'Cause I got the feeling you're walking out\nAnd time is irrelevant when I've not been seeing you\nThe consequences are falling now\nThere's something I'm having nightmares about\nAnd these are the reasons I'm crying out to be with you\n\nPlease believe me, don't you see\nThe things you mean to me?\nOh I love you, I love you\nI love, I love, I love Olivia\n\nI live for you, I long for you, Olivia\nI've been idolizing the light in your eyes, Olivia\nI live for you, I long for you, Olivia\nDon't let me go\nDon't let me go\n\nWhen you go and I'm alone\nYou live in my imagination\nThe summertime and butterflies\nAll belong to your creation\nI love you, it's all I do\nI love you\n\nI live for you, I long for you, Olivia\nI've been idolizing the light in your eyes, Olivia\nI live for you, I long for you, Olivia\nDon't let me go\nDon't let me go\nDon't let me go",
"Through the wire, through the wire, through the wire\nI'm watching her dance, dress is catching the light\nIn her eyes, there's no lies, no lies\nBut there's no question, she's not in a disguise\n\nWith no way out and a long way down\nEverybody needs someone around\nAnd I can't hold you too close now\nThrough the wire, through the wire\n\nWhat a feeling to be right here beside you now\nHolding you in my arms, when the air ran out\nAnd we both started running wild, the sky fell down\nBut you've got stars they're in your eyes\nAnd I've got something missing tonight\nWhat a feeling to be a king beside you somehow\nI wish I could be there now\n\nThrough the wire, through the wire, through the wire\nI'm watching you like this, imagining you're mine\nIt's too late, it's too late, am I too late?\nTell me now, am I running out of time?\n\nWith no way out and a long way down\nEverybody needs someone around\nBut I can't hold you too close now\nThrough the wire, through the wire\n\nWhat a feeling to be right here beside you now\nHolding you in my arms, when the air ran out\nAnd we both started running wild, the sky fell down\nBut you've got stars they're in your eyes\nAnd I've got something missing tonight\nWhat a feeling to be a king beside you somehow\nI wish I could be there now\n\nWhatever chains are holding you back, holding you back\nDon't let 'em tie you down\nWhatever chains are holding you back, holding you back\nTell me you believe in that\n\nWhat a feeling to be right here beside you now\nHolding you in my arms, when the air ran out\nAnd we both started running wild, the sky fell down\nBut you've got stars they're in your eyes\nAnd I've got something missing tonight\nWhat a feeling to be a king beside you somehow\nI wish I could be there now",
"It's inevitable everything that's good comes to an end\r\nIt's impossible to know if after this we can still be friends, yeah\r\nI know you're saying you don't wanna hurt me\r\n\nWell maybe you should show a little mercy\r\nThe way you look I know you didn't come to apologise\n\nHey, hey, hey\n\nOh, why're you wearing that to walk out of my life?\n\nHey, hey, hey\n\nOh, even though it's over, you should stay tonight\n\nHey, hey, hey\n\nIf tomorrow you won't be mine\n\nWon't you give it to me one last time?\n\nOh, baby let me love you goodbye\n\n\n\nUnforgettable together had the whole world in our hands\n\nUnexplainable the love that only we could understand, yeah\n\nI know there's nothing I can do to change it\n\nBut this is something that could be negotiated\n\nMy heart's already breaking baby go on twist the knife\n\n\n\nHey, hey, hey\n\nOh, why're you wearing that to walk out of my life?\n\nHey, hey, hey\n\nOh, even though it's over, you should stay tonight\n\nHey, hey, hey\n\nIf tomorrow you won't be mine\n\nWon't you give it to me one last time?\n\nOh, baby let me love you goodbye\n\nOh, baby let me love you goodbye\n\n\n\nOne more taste of your lips just to bring me back\n\nTo the places we've been and the nights we've had\n\nBecause if this is it then at least we could end it right\n\nOh, why're you wearing that to walk out of my life?\n\n\n\nHey, hey, hey\n\nOh, even though it's over, you should stay tonight yeah\n\nHey, hey, hey\n\nIf tomorrow you won't be mine\n\nWon't you give it to me one last time?\n\nOh, baby let me love you goodbye\n\nOh, baby let me love you goodbye\n\nOh, baby let me love you goodbye",
"I wanna write you a song\r\nOne that's beautiful as you are sweet\r\nWith just a hint of pain for the feeling that I get when you are gone\r\n\nI wanna write you a song\r\nI wanna lend you my coat\r\nOne that's as soft as your cheek\n\nSo when the world is cold you will have a hiding place you can go\n\nI wanna lend you my coat\n\n\n\nOooh everything I need I get from you\n\nOooh and giving back is all I wanna do\n\n\n\nI wanna build you a boat\n\nOne that's strong as you are free\n\nSo any time you think that your heart is gonna sink, you know it won't\n\nI wanna build you a boat\n\n\n\nOooh everything I need I get from you\n\nOooh and giving back is all I wanna do\n\nOooh everything I need I get from you\n\nOooh and giving back is all I wanna do\n\n\n\nI wanna write you a song\n\nOne to make your heart remember me\n\nSo any time I'm gone, you can listen to my voice and sing along\n\nI wanna write you a song, I wanna write you a song",
"You gotta help me, I'm losing my mind\r\nKeep getting the feeling you wanna leave this all behind\r\nThought we were going strong\r\n\nI thought we were holding on\r\nAren't we?\n\nNo, they don't teach you this in school\n\nNow my heart's breaking and I don't know what to do\n\nThought we were going strong\n\nThought we were holding on\n\nAren't we?\n\n\n\nYou and me got a whole lot of history\n\nWe could be the greatest team \n\nThat the world has ever seen\n\nYou and me got a whole lot of history\n\nSo don't let it go, we can make some more, we can live forever\n\n\n\nAll of the rumours, all of the fights\n\nBut we always find a way to make it out alive\n\nThought we were going strong\n\nThought we were holding on\n\nAren't we?\n\n\n\nYou and me got a whole lot of history\n\nWe could be the greatest team \n\nThat the world has ever seen\n\nYou and me got a whole lot of history\n\nSo don't let it go, we can make some more, we can live forever\n\n\n\nMinibars, expensive cars, hotel rooms, and new tattoos\n\nThe good champagne, and private planes, \n\nBut they don't mean anything\n\n'Cause the truth is out, \n\nI realise that without you here life is just a lie\n\nThis is not the end, this is not the end, \n\nWe can make it, you know it, you know\n\n\n\nYou and me got a whole lot of history\n\nWe could be the greatest team \n\nThat the world has ever seen\n\nYou and me got a whole lot of history\n\nSo don't let it go, we can make some more, we can live forever\n\n\n\nYou and me got a whole lot of history\n\nWe could be the greatest team \n\nThat the world has ever seen\n\nYou and me got a whole lot of history\n\nSo don't let it go, we can make some more, we can live forever\n\n\n\nSo don't let me go, so don't let me go, we can live forever\n\nBaby don't you know, baby don't you know we can live forever?",
"Saw your body language and I know how you're feeling\r\nYou look like the kind of girl who's tired of speaking\r\nStanding with somebody but he doesn't know what you like\r\n\n\nYou caught my attention, you were looking at me first\r\nSaw that I can teach you, waking up in my t-shirt\n\nIf you're not hooked to anything, right now I can be your vice\n\n\n\nAll you need to know is\n\nYou can call me, when you're lonely\n\nWhen you can't sleep, I'll be your temporary fix\n\nYou control me, even if it's just tonight (eh eh eh)\n\nYou can call me when you feel like\n\nI'm your good time, I'll be your temporary fix\n\nYou can own me, and we'll call this what you like\n\nLet me be your good night\n\n\n\nTonight is on your lips and I feel like I'm locked in\n\nThere's a million eyes, I don't care if they're watching\n\nYour body is saying everything, I don't have to read your mind\n\n\n\nFeel you on my neck while I'm calling a taxi\n\nClimbing over me while I climb in the backseat\n\nNow we're taking off, now we're taking it off tonight\n\n\n\nAll you need to know is\n\nYou can call me, when you're lonely\n\nWhen you can't sleep, I'll be your temporary fix\n\nYou control me, even if it's just tonight (eh eh eh)\n\nYou can call me when you feel like\n\nI'm your good time, I'll be your temporary fix\n\nYou can own me, and we'll call this what you like\n\nLet me be your good night\n\n\n\nWe can moan in the darkness\n\nLet me touch you where your heart is\n\nAnd if you're feeling the weakness\n\nWell I told you baby that you can call me (oooh, eh eh)\n\nI'll be your temporary fix, you can call me\n\n\n\nYou can call me\n\nWhen you're lonely\n\nWhen you can't sleep, I'll be your temporary fix\n\nYou control me, even if it's just tonight (eh eh eh)\n\nYou can call me when you feel like\n\nI'm your good time, I'll be your temporary fix\n\nYou can own me, and we'll call this what you like\n\nLet me be your good night",
"A week ago you said to me\n\"Do you believe I'll never be too far\"\nIf you're lost, just look for me\nYou'll find me in the region of the summer stars\nFact that we can sit right here and say goodbye\nMeans we've already won\nA necessity for apologies between you and me\nBaby, there is none\n\nWe had some good times, didn't we?\nWe had some good tricks up our sleeve\nGoodbyes are bittersweet\nBut it's not the end\nI'll see your face again\n\nYou will find me\nAnd you will find me\nIn places that we've never been\nFor reasons we don't understand\nWalking in the wind\nWalking in the wind\n\nYesterday I went out to celebrate the birthday of a friend\nBut as we raised our glasses up to make a toast\nI realized you were missing\n\nWe had some good times, didn't we?\nWe wore our hearts out on our sleeve\nGoodbyes are bittersweet\nBut it's not the end\nI'll see your face again\n\nYou will find me\nAnd you will find me\nIn places that we've never been\nFor reasons we don't understand\nWalking in the wind\nWalking in the wind\n\nI know I'll be your anchor\nJust close your eyes and see\nI'll be by your side\nAny time you're needing me\n\nYou will find me\nAnd you will find me\nIn places that we've never been\nFor reasons we don't understand\nWalking in the wind\nWalking in the wind\nWalking in the wind",
"I hear them calling for you\nI hear them calling for you\n\nI feel the waves getting started\nIt's a rush inside I can't control\nYour eyes keep pulling me in\nI know, I know, I know\nYour friends all talking 'bout me\nThey say I got no chance at all\nYour fire is burning deep\nIn my soul, my soul, my soul\n\nI ain't up for debating\nAin't in it for the taking\nYou got the whole shaking\n\nIn the middle of the night when the wolves come out\nHeaded straight for your heart like a bullet in the dark\nOne by one, I gotta take them down\nWe can run and hide, ain't goin' down without a fight\nI hear them calling for you\nI hear them calling for you\nIn the middle of the night when the wolves come out\nHeaded straight for your heart\nThey come straight for your heart\nI hear them calling for you\nI hear them calling for you\n\nI keep on holding tight now\n'Cause your body's telling me don't let go\nWe are gonna be starting up trouble\nI know, I know, I know\nJust bringing my demons out\nMore than ever now\nYour beauty could start a war\nAs you walk in the door\n\nI ain't up for debating\nAin't in it for the taking\nWe got the whole shaking\n\nIn the middle of the night when the wolves come out\nHeaded straight for your heart\nLike a bullet in the dark\nOne by one, I take them down\nWe can run and hide, ain't goin' down without a fight\nI hear them calling for you\nI hear them calling for you\nIn the middle of the night when the wolves come out\nHeaded straight for your heart\nThey come straight for your heart\nI hear them calling for you\nI hear them calling for you\n\nI wish it wasn't true\nBut the whole world's tryna get a piece of you\nAnd my heart keeps fighting in this battle of fools\nGotta make it through, gotta make it through\n\nIn the middle of the night when the wolves come out\nHeaded straight for your heart\nLike a bullet in the dark\nOne by one, I gotta take them down\nWe can run and hide, ain't going down without a fight\nI hear them calling for you\nI hear them calling for you\nIn the middle of the night when the wolves come out\nHeaded straight for your heart\nThey come straight for your heart\nI hear them calling for you\nI hear them calling for you",
"Won't you stay 'til the A.M.?\nAll my favorite conversations\nAlways made in the A.M (yeah yeah)\n\nFeels like this could be forever tonight\nBreak these clocks, forget about time\nThere could be a World War 3 goin' on outside\nYou and me were raised in the same part of town\nGot these scars on the same ground\nRemember how we used to kick around just wasting time?\n\nWon't you stay 'til the A.M.?\nAll my favorite conversations\nAlways made in the A.M\n'Cause we don't know what we're saying\nWe're just swimming round in our glasses\nAnd talking out of our asses\nLike we're all gonna make it (yeah yeah)\n\nFeels like this could be forever right now\nDon't wanna sleep 'cause we're dreaming out loud\nTrying to behave but you know that we never learned, how\nYou and me were raised in the same part of town\nGot these scars on the same ground\nRemember how we used to kick around just wasting time?\n\nWon't you stay 'til the A.M.?\nAll my favorite conversations\nAlways made in the A.M\n'Cause we don't know what we're saying\nWe're just swimming round in our glasses\nAnd talking out of our asses\nLike we're all gonna make it\n\nYou know I'm always coming back to this place\nYou know\nAnd I'll say\nYou know I'm always gonna look for your face\nYou know\n\nWon't you stay 'til the A.M.?\nAll my favorite conversations\nAlways made in the A.M\n'Cause we don't know what we're saying\nWe're just swimming round in our glasses\nAnd talking out of our asses\nLike we're all gonna make it\n\nWon't you stay 'til the A.M.?\nYou know I'm always coming back to this place\nWon't you stay 'til the A.M.?\nYou know\nWon't you stay 'til the A.M.?\nYou know I'm always gonna look for your face\nWon't you stay 'til the A.M.?",
"Making little conversation,\nSo long, I've been waiting\nTo let go of myself and feel alive\n\nSo many nights I've thought it over\nTold myself I kinda liked her\nBut there was something missing in her eyes\n\nI was stumbling, looking in the dark\nWith an empty heart\nBut you say you feel the same\nCould we ever be enough?\nBaby we could be enough\n\nAnd it's alright\nCalling out for somebody to hold tonight\nWhen you're lost, I'll find the way and I'll be your light\nYou'll never feel like you're alone\nI'll make this feel like home\n\nSo hard, that I couldn't take it\nWanna wake up and see your face\nAnd remember how good it was being here last night\n\nStill high, with a little feeling\nI see the smile as it starts to creep in\nIt was there I saw it in your eyes\n\nI was stumbling, looking in the dark\nWith an empty heart\nBut you say you feel the same\nCould we ever be enough?\nBaby we could be enough\n\nAnd it's alright\nCalling out for somebody to hold tonight\nWhen you're lost, I'll find the way and I'll be your light\nYou'll never feel like you're alone\nI'll make this feel like home\n\nI'll make this feel like home\nBaby we could be enough\n\nAnd it's alright\nCalling out for somebody to hold tonight\nWhen you're lost, I'll find the way and I'll be your light\nYou'll never feel like you're alone\nI'll make this feel like home",
"Going out tonight\nChanges into something red\nHer mother doesn't like that kind of dress\nEverything she never had\nShe's showing off\n\nDriving too fast\nMoon is breaking through her hair\nShe's heading for something that she won't forget\nHaving no regrets is all that she really wants\n\nWe're only getting older, baby\nAnd I been thinking about it lately\nDoes it ever drive you crazy\nJust how fast the night changes\n\nEverything that you've ever dreamed of\nDisappearing when you wake up\nBut there's nothing to be afraid of\nEven when the night changes\nIt will never change\nMe and you\n\nChasing it tonight, doubts are running 'round her head\nHe's waiting, hides behind a cigarette\nHeart is beating loud, and she doesn't want it to stop\n\nMoving too fast\nMoon is lighting up her skin\nShe's falling, doesn't even know it yet\nHaving no regrets is all that she really wants\n\nWe're only getting older, baby\nAnd I been thinking about it lately\nDoes it ever drive you crazy\nJust how fast the night changes\n\nEverything that you've ever dreamed of\nDisappearing when you wake up\nBut there's nothing to be afraid of\nEven when the night changes\nIt will never change\nMe and you \n\nGoing out tonight\nChanges into something red\nHer mother doesn't like that kind of dress\nReminds her of a missing piece of innocence she lost\n\nWe're only getting older, baby\nAnd I been thinking about it lately\nDoes it ever drive you crazy\nJust how fast the night changes\n\nEverything that you've ever dreamed of\nDisappearing when you wake up\nBut there's nothing to be afraid of\nEven when the night changes\n\nIt will never change, baby\nIt will never change, baby\nIt will never change\nMe and you"
]
}
]

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -70,12 +70,20 @@ class LyricsWordcloud:
return cls(mic_img, all_albums_lyrics_count) return cls(mic_img, all_albums_lyrics_count)
@staticmethod
def generate_grey_colours(
# word: str,
# font_size: str,
# random_state: typing.Union[None, bool] = None,
*args,
**kwargs,
) -> str:
"""Static method to generate a random grey colour"""
colour = f'hsl(0, 0%, {random.randint(60, 100)}%)'
return colour
def _get_lyrics_list(self) -> None: def _get_lyrics_list(self) -> None:
"""Gets all words from lyrics in a single list + cleans them. """Gets all words from lyrics in a single list + cleans them.
Returns
-------
None
""" """
self.lyrics_list = list() self.lyrics_list = list()
for i in self.all_albums_lyrics_count: for i in self.all_albums_lyrics_count:
@@ -109,23 +117,8 @@ class LyricsWordcloud:
""" """
self.char_mask = np.array(self.pillow_img) self.char_mask = np.array(self.pillow_img)
@staticmethod
def generate_grey_colours(
word: str,
font_size: str,
random_state: typing.Union[None, bool] = None,
*args,
**kwargs,
) -> str:
colour = f'hsl(0, 0%, {random.randint(60, 100)}%)'
return colour
def _generate_word_cloud(self) -> None: def _generate_word_cloud(self) -> None:
"""Generates a word cloud """Generates a word cloud
Returns
-------
None
""" """
self.wc = WordCloud( self.wc = WordCloud(
max_words=150, max_words=150,
@@ -138,10 +131,6 @@ class LyricsWordcloud:
def _generate_plot(self) -> None: def _generate_plot(self) -> None:
"""Plots the wordcloud and sets matplotlib options. """Plots the wordcloud and sets matplotlib options.
Returns
-------
None
""" """
plt.imshow( plt.imshow(
self.wc.recolor( self.wc.recolor(
@@ -159,10 +148,6 @@ class LyricsWordcloud:
def create_word_cloud(self) -> None: def create_word_cloud(self) -> None:
"""Creates a word cloud """Creates a word cloud
Returns
-------
None
""" """
self._get_lyrics_list() self._get_lyrics_list()
self._get_frequencies() self._get_frequencies()

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 220 KiB

After

Width:  |  Height:  |  Size: 186 KiB