local M = {}

local g = vim.g

-- use this for more https://patorjk.com/software/taag/#p=display&f=ANSI%20Shadow or https://textfancy.com/text-art/
-- you may need to adjust the padding on the headers to fit your screen mostly the vertical padding as done on the first header
local headers = {
  [[         __                        ___________________________________
         _( _)_                     /    I know Beethoven was great,    \
        ( _) ( )            _____  |      but do you have to say it      |
       (_)    (_)          @@@@@@@ |  every day on rec.music.classical?  |
     __/     . |          @@@  .|_  \ __________________________________/
   /    \  --\_) _________@@(    _) |/                  | |         |
  |   /\  \__/)-/_______(@@@@__-/                       | |        |'
  |--|**|\__ --|        (___)   \___ /\  ##             !_!-v----v-"
  |*****|__ |____________| \    |  /    \##    __--"""i i""""""""""i
   \*(#####)  ||      ||    \___|____/\__##   !_______! !__________!
  """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""]],
  [[
    ███╗   ██╗ ███████╗  ██████╗  ██╗   ██╗ ██╗ ███╗   ███╗
    ████╗  ██║ ██╔════╝ ██╔═══██╗ ██║   ██║ ██║ ████╗ ████║
    ██╔██╗ ██║ █████╗   ██║   ██║ ██║   ██║ ██║ ██╔████╔██║
    ██║╚██╗██║ ██╔══╝   ██║   ██║ ╚██╗ ██╔╝ ██║ ██║╚██╔╝██║
    ██║ ╚████║ ███████╗ ╚██████╔╝  ╚████╔╝  ██║ ██║ ╚═╝ ██║
    ╚═╝  ╚═══╝ ╚══════╝  ╚═════╝    ╚═══╝   ╚═╝ ╚═╝     ╚═╝
    ]],
  [[
         ▄████▄        ▒▒▒▒▒    ▒▒▒▒▒    ▒▒▒▒▒    ▒▒▒▒▒ ﾠ
        ███▄█▀        ▒ ▄▒ ▄▒  ▒ ▄▒ ▄▒  ▒ ▄▒ ▄▒  ▒ ▄▒ ▄▒ﾠ
       ▐████  █  █    ▒▒▒▒▒▒▒  ▒▒▒▒▒▒▒  ▒▒▒▒▒▒▒  ▒▒▒▒▒▒▒ﾠ
        █████▄        ▒▒▒▒▒▒▒  ▒▒▒▒▒▒▒  ▒▒▒▒▒▒▒  ▒▒▒▒▒▒▒ﾠ
          ████▀       ▒ ▒ ▒ ▒  ▒ ▒ ▒ ▒  ▒ ▒ ▒ ▒  ▒ ▒ ▒ ▒ﾠ
    ]],
  [[
                                     ██
                                    ░░
  ███████   █████   ██████  ██    ██ ██ ██████████
 ░░██░░░██ ██░░░██ ██░░░░██░██   ░██░██░░██░░██░░██
  ░██  ░██░███████░██   ░██░░██ ░██ ░██ ░██ ░██ ░██
  ░██  ░██░██░░░░ ░██   ░██ ░░████  ░██ ░██ ░██ ░██
  ███  ░██░░██████░░██████   ░░██   ░██ ███ ░██ ░██
 ░░░   ░░  ░░░░░░  ░░░░░░     ░░    ░░ ░░░  ░░  ░░
    ]],
  [[
    ┏━━━┓┏━━━┓┏━━━┓┏┓━┏┓━━━━━━━━━━━┏━━┓━┏━━━━┓┏┓┏┓┏┓
    ┃┏━┓┃┃┏━┓┃┃┏━┓┃┃┃━┃┃━━━━━━━━━━━┃┏┓┃━┃┏┓┏┓┃┃┃┃┃┃┃
    ┃┃━┃┃┃┗━┛┃┃┃━┗┛┃┗━┛┃━━━━━━━━━━━┃┗┛┗┓┗┛┃┃┗┛┃┃┃┃┃┃
    ┃┗━┛┃┃┏┓┏┛┃┃━┏┓┃┏━┓┃━━━━━━━━━━━┃┏━┓┃━━┃┃━━┃┗┛┗┛┃
    ┃┏━┓┃┃┃┃┗┓┃┗━┛┃┃┃━┃┃━━━━━━━━━━━┃┗━┛┃━┏┛┗┓━┗┓┏┓┏┛
    ┃┏━┓┃┃┃┃┗┓┃┗━┛┃┃┃━┃┃━━━━━━━━━━━┃┗━┛┃━┏┛┗┓━┗┓┏┓┏┛
    ┗┛━┗┛┗┛┗━┛┗━━━┛┗┛━┗┛━━━━━━━━━━━┗━━━┛━┗━━┛━━┗┛┗┛━
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  ]],
  [[
================================================.
     .-.   .-.     .--.                         |
    | OO| | OO|   / _.-' .-.   .-.  .-.   .''.  |
    |   | |   |   \  '-. '-'   '-'  '-'   '..'  |
    '^^^' '^^^'    '--'                         |
===============.  .-.  .================.  .-.  |
               | |   | |                |  '-'  |
               | |   | |                |       |
               | ':-:' |                |  .-.  |
               |  '-'  |                |  '-'  |
==============='       '================'       |
    ]],
  [[
                                                                        ﾠ
          ████ ██████           █████      ██                     ﾠ
         ███████████             █████                             ﾠ
         █████████ ███████████████████ ███   ███████████   ﾠ
        █████████  ███    █████████████ █████ ██████████████   ﾠ
       █████████ ██████████ █████████ █████ █████ ████ █████   ﾠ
     ███████████ ███    ███ █████████ █████ █████ ████ █████  ﾠ
    ██████  █████████████████████ ████ █████ █████ ████ ██████ ﾠ
]],
  [[
           ____                                         ﾠ
          /___/\_                                       ﾠ
         _\   \/_/\__                     __            ﾠ
       __\       \/_/\            .--.--.|__|.--.--.--. ﾠ
       \   __    __ \ \           |  |  ||  ||        | ﾠ
      __\  \_\   \_\ \ \   __      \___/ |__||__|__|__| ﾠ
     /_/\\   __   __  \ \_/_/\                          ﾠ
     \_\/_\__\/\__\/\__\/_\_\/                          ﾠ
        \_\/_/\       /_\_\/                            ﾠ
           \_\/       \_\/                              ﾠ
]],
  [[
     ★　✯   🛸                    🪐   .°•    |    ﾠ
        __     ° ⭐　•       🛰️       __     / \   ﾠ
       / /   ____ ___  ______  _____/ /_    | O |  ﾠ
      / /   / __ `/ / / / __ \/ ___/ __ \   | O |  ﾠ
     / /___/ /_/ / /_/ / / / / /__/ / / /  /| | |\ ﾠ
    /_____/\__,_/\__,_/_/ /_/\___/_/ /_/  /_(.|.)_\ﾠ
]],

  [[      🛸　　　 　🌎　°　　🌓　•　　.°•　　　🚀 ✯
  　　　  ⭐　*　　　　　°　　　　🛰️ 　°·      🪐
    .　　　•　° ★　•  ☄

          ▁▂▃▄▅▆▇▇▆▅▄▃▂▁

                                                  ]],
}

-- Dashboard logo
function M.dashboard()
  math.randomseed(os.time())
  local logo = headers[1]

  if g.random_banner then
    logo = headers[math.random(#headers)]
  end

  -- add padding to the top and bottom of the logo
  logo = string.rep("\n", 2) .. logo .. "\n"
  logo = logo .. "  " .. "[ @" .. (g.github_username or "rubiin") .. " ]" .. "\n\n"

  return logo
end

return M
