Compare commits
9 commits
Author | SHA1 | Date | |
---|---|---|---|
3634d6783e | |||
35629a3e13 | |||
ae18eea463 | |||
fb6246d563 | |||
75cf86b363 | |||
869192da61 | |||
1b711f4ab8 | |||
a4057745f1 | |||
6ab4e1ed52 |
48 changed files with 305 additions and 10430 deletions
|
@ -1,22 +0,0 @@
|
||||||
# For more information about the properties used in
|
|
||||||
# this file, please see the EditorConfig documentation:
|
|
||||||
# https://editorconfig.org/
|
|
||||||
|
|
||||||
root = true
|
|
||||||
|
|
||||||
[*]
|
|
||||||
charset = utf-8
|
|
||||||
end_of_line = lf
|
|
||||||
indent_size = 2
|
|
||||||
indent_style = space
|
|
||||||
insert_final_newline = true
|
|
||||||
trim_trailing_whitespace = true
|
|
||||||
|
|
||||||
[*.md]
|
|
||||||
trim_trailing_whitespace = false
|
|
||||||
|
|
||||||
[{.travis.yml,package.json}]
|
|
||||||
# The indent size used in the `package.json` file cannot be changed
|
|
||||||
# https://github.com/npm/npm/pull/3180#issuecomment-16336516
|
|
||||||
indent_size = 2
|
|
||||||
indent_style = space
|
|
28
.gitattributes
vendored
28
.gitattributes
vendored
|
@ -1,28 +0,0 @@
|
||||||
# Automatically normalize line endings for all text-based files
|
|
||||||
# https://git-scm.com/docs/gitattributes#_end_of_line_conversion
|
|
||||||
|
|
||||||
* text=auto
|
|
||||||
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
|
|
||||||
# For the following file types, normalize line endings to LF on
|
|
||||||
# checkin and prevent conversion to CRLF when they are checked out
|
|
||||||
# (this is required in order to prevent newline related issues like,
|
|
||||||
# for example, after the build script is run)
|
|
||||||
|
|
||||||
.* text eol=lf
|
|
||||||
*.css text eol=lf
|
|
||||||
*.html text eol=lf
|
|
||||||
*.js text eol=lf
|
|
||||||
*.json text eol=lf
|
|
||||||
*.md text eol=lf
|
|
||||||
*.sh text eol=lf
|
|
||||||
*.txt text eol=lf
|
|
||||||
*.xml text eol=lf
|
|
||||||
|
|
||||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
|
|
||||||
# Exclude the `.htaccess` file from GitHub's language statistics
|
|
||||||
# https://github.com/github/linguist#using-gitattributes
|
|
||||||
|
|
||||||
dist/.htaccess linguist-vendored
|
|
5
.gitignore
vendored
5
.gitignore
vendored
|
@ -1,5 +0,0 @@
|
||||||
.idea/
|
|
||||||
Gemfile.lock
|
|
||||||
_site/
|
|
||||||
.jekyll-cache
|
|
||||||
|
|
14
.idea/HS.iml
14
.idea/HS.iml
|
@ -1,14 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<module type="WEB_MODULE" version="4">
|
|
||||||
<component name="NewModuleRootManager">
|
|
||||||
<content url="file://$MODULE_DIR$">
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/_site" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/temp" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/tmp" />
|
|
||||||
</content>
|
|
||||||
<orderEntry type="inheritedJdk" />
|
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
|
||||||
<orderEntry type="library" name="jquery-3.3.1" level="application" />
|
|
||||||
</component>
|
|
||||||
</module>
|
|
|
@ -1,15 +0,0 @@
|
||||||
<component name="ProjectCodeStyleConfiguration">
|
|
||||||
<code_scheme name="Project" version="173">
|
|
||||||
<JSCodeStyleSettings version="0">
|
|
||||||
<option name="FORCE_SEMICOLON_STYLE" value="true" />
|
|
||||||
<option name="USE_DOUBLE_QUOTES" value="false" />
|
|
||||||
<option name="FORCE_QUOTE_STYlE" value="true" />
|
|
||||||
</JSCodeStyleSettings>
|
|
||||||
<codeStyleSettings language="JavaScript">
|
|
||||||
<indentOptions>
|
|
||||||
<option name="INDENT_SIZE" value="2" />
|
|
||||||
<option name="CONTINUATION_INDENT_SIZE" value="2" />
|
|
||||||
</indentOptions>
|
|
||||||
</codeStyleSettings>
|
|
||||||
</code_scheme>
|
|
||||||
</component>
|
|
|
@ -1,5 +0,0 @@
|
||||||
<component name="ProjectCodeStyleConfiguration">
|
|
||||||
<state>
|
|
||||||
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
|
|
||||||
</state>
|
|
||||||
</component>
|
|
|
@ -1,4 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="Encoding" addBOMForNewFiles="with NO BOM" />
|
|
||||||
</project>
|
|
|
@ -1,6 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="JavaScriptLibraryMappings">
|
|
||||||
<file url="PROJECT" libraries="{jquery-3.3.1}" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
|
@ -1,6 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="JavaScriptSettings">
|
|
||||||
<option name="languageLevel" value="ES6" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
|
@ -1,8 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="ProjectModuleManager">
|
|
||||||
<modules>
|
|
||||||
<module fileurl="file://$PROJECT_DIR$/.idea/HS.iml" filepath="$PROJECT_DIR$/.idea/HS.iml" />
|
|
||||||
</modules>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
37
.travis.yml
37
.travis.yml
|
@ -1,37 +0,0 @@
|
||||||
language: ruby
|
|
||||||
rvm:
|
|
||||||
- 2.4.1
|
|
||||||
|
|
||||||
before_script:
|
|
||||||
- chmod +x ./script/cibuild # or do this locally and commit
|
|
||||||
|
|
||||||
# Assume bundler is being used, therefore
|
|
||||||
# the `install` step will run `bundle install` by default.
|
|
||||||
script: ./script/cibuild
|
|
||||||
|
|
||||||
# branch whitelist, only for GitHub Pages
|
|
||||||
branches:
|
|
||||||
only:
|
|
||||||
- master # test the master branch
|
|
||||||
|
|
||||||
env:
|
|
||||||
global:
|
|
||||||
- NOKOGIRI_USE_SYSTEM_LIBRARIES=true # speeds up installation of html-proofer
|
|
||||||
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- libcurl4-openssl-dev
|
|
||||||
|
|
||||||
sudo: false # route your build to the container-based infrastructure for a faster build
|
|
||||||
|
|
||||||
cache: bundler # caching bundler gem packages will speed up build
|
|
||||||
|
|
||||||
deploy:
|
|
||||||
provider: pages
|
|
||||||
skip_cleanup: true
|
|
||||||
github_token: $GITHUB_TOKEN # Set in the settings page of your repository, as a secure variable
|
|
||||||
keep_history: true
|
|
||||||
on:
|
|
||||||
branch: master
|
|
||||||
local_dir: _site
|
|
4
404.html
4
404.html
|
@ -1,4 +0,0 @@
|
||||||
---
|
|
||||||
---
|
|
||||||
<h1 style="text-align: center">Page Not Found</h1>
|
|
||||||
<p style="text-align: center">Sorry, but the page you were trying to view does not exist.</p>
|
|
4
Gemfile
4
Gemfile
|
@ -1,4 +0,0 @@
|
||||||
source "https://rubygems.org"
|
|
||||||
|
|
||||||
gem "jekyll"
|
|
||||||
gem "html-proofer"
|
|
BIN
HS.png
BIN
HS.png
Binary file not shown.
Before Width: | Height: | Size: 56 MiB |
16
HS.sln
Normal file
16
HS.sln
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HiddenUpdater", "HiddenUpdater\HiddenUpdater.csproj", "{74B49E86-F983-4818-8A53-F4C6F69777E2}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{74B49E86-F983-4818-8A53-F4C6F69777E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{74B49E86-F983-4818-8A53-F4C6F69777E2}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{74B49E86-F983-4818-8A53-F4C6F69777E2}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{74B49E86-F983-4818-8A53-F4C6F69777E2}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
|
@ -1,19 +0,0 @@
|
||||||
Copyright (c) HTML5 Boilerplate
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
||||||
this software and associated documentation files (the "Software"), to deal in
|
|
||||||
the Software without restriction, including without limitation the rights to
|
|
||||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
|
||||||
of the Software, and to permit persons to whom the Software is furnished to do
|
|
||||||
so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
82
HiddenUpdater/HiddenUpdater.csproj
Normal file
82
HiddenUpdater/HiddenUpdater.csproj
Normal file
|
@ -0,0 +1,82 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProjectGuid>{74B49E86-F983-4818-8A53-F4C6F69777E2}</ProjectGuid>
|
||||||
|
<OutputType>Exe</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<RootNamespace>HiddenUpdater</RootNamespace>
|
||||||
|
<AssemblyName>HiddenUpdater</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<LangVersion>latest</LangVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed">
|
||||||
|
<HintPath>..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="SpotifyAPI.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
|
||||||
|
<HintPath>..\packages\SpotifyAPI.Web.4.2.0\lib\netstandard2.0\SpotifyAPI.Web.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="SpotifyAPI.Web.Auth, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
|
||||||
|
<HintPath>..\packages\SpotifyAPI.Web.Auth.4.2.0\lib\netstandard2.0\SpotifyAPI.Web.Auth.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
<Reference Include="Unosquare.Labs.EmbedIO, Version=2.8.0.0, Culture=neutral, PublicKeyToken=null">
|
||||||
|
<HintPath>..\packages\EmbedIO.2.9.1\lib\netstandard2.0\Unosquare.Labs.EmbedIO.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Unosquare.Swan.Lite, Version=1.3.0.0, Culture=neutral, PublicKeyToken=null">
|
||||||
|
<HintPath>..\packages\Unosquare.Swan.Lite.1.3.0\lib\net461\Unosquare.Swan.Lite.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
|
</Reference>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="Program.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<Compile Include="StoreLyrics.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="packages.config" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Content Include="secret.txt">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
<Target Name="BeforeBuild">
|
||||||
|
</Target>
|
||||||
|
<Target Name="AfterBuild">
|
||||||
|
</Target>
|
||||||
|
-->
|
||||||
|
</Project>
|
107
HiddenUpdater/Program.cs
Normal file
107
HiddenUpdater/Program.cs
Normal file
|
@ -0,0 +1,107 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
using SpotifyAPI.Web;
|
||||||
|
using SpotifyAPI.Web.Auth;
|
||||||
|
|
||||||
|
namespace HiddenUpdater
|
||||||
|
{
|
||||||
|
internal class Program
|
||||||
|
{
|
||||||
|
private const string PlaylistId = "2YDWLcBzTpDNQDfcQyy76b";
|
||||||
|
|
||||||
|
public static async Task Main(string[] args)
|
||||||
|
{
|
||||||
|
Console.Write("Download (1) or lyrics (2): ");
|
||||||
|
if (int.Parse(Console.ReadLine()) != 1)
|
||||||
|
{
|
||||||
|
StoreLyrics.Store();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var auth = new CredentialsAuth("ce11c54b88cf41149e528de5ec73aa69", File.ReadAllText("secret.txt"));
|
||||||
|
var token = await auth.GetToken();
|
||||||
|
var spotify = new SpotifyWebAPI
|
||||||
|
{
|
||||||
|
AccessToken = token.AccessToken,
|
||||||
|
TokenType = token.TokenType
|
||||||
|
};
|
||||||
|
var playlist = spotify.GetPlaylist(PlaylistId);
|
||||||
|
Console.WriteLine(playlist);
|
||||||
|
var playlistJson = new JArray();
|
||||||
|
var tracks = playlist.Tracks;
|
||||||
|
Console.WriteLine("Total: " + tracks.Total);
|
||||||
|
int C = 0;
|
||||||
|
var artistJson = new JObject();
|
||||||
|
for (int i = 0; i < tracks.Total; i += 100)
|
||||||
|
{
|
||||||
|
if (i > 0)
|
||||||
|
tracks = spotify.GetPlaylistTracks(PlaylistId, offset: i);
|
||||||
|
foreach (var track in tracks.Items.Select(tr => tr.Track))
|
||||||
|
{
|
||||||
|
var obj = new JObject();
|
||||||
|
obj["sname"] = track.Name;
|
||||||
|
/*obj["artists"] = new JArray(track.Artists.Select(artist => new JObject
|
||||||
|
{
|
||||||
|
{"name", artist.Name},
|
||||||
|
{"url", artist.ExternalUrls["spotify"]}
|
||||||
|
}));*/
|
||||||
|
var artJson = new JArray();
|
||||||
|
foreach (var artist in track.Artists)
|
||||||
|
{
|
||||||
|
if (!artistJson.ContainsKey(artist.Name))
|
||||||
|
artistJson[artist.Name] = new JObject
|
||||||
|
{
|
||||||
|
{"sname", artist.Name},
|
||||||
|
{"surl", artist.ExternalUrls["spotify"]},
|
||||||
|
{"sid", artist.Id}
|
||||||
|
};
|
||||||
|
artJson.Add(artist.Name);
|
||||||
|
}
|
||||||
|
|
||||||
|
obj["artists"] = artJson;
|
||||||
|
obj["popularity"] = track.Popularity;
|
||||||
|
obj["durationMs"] = track.DurationMs;
|
||||||
|
obj["surl"] = track.ExternUrls["spotify"];
|
||||||
|
obj["sid"] = track.Id;
|
||||||
|
|
||||||
|
playlistJson.Add(obj);
|
||||||
|
C++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Console.WriteLine(C + " / " + tracks.Total);
|
||||||
|
|
||||||
|
Console.WriteLine("Getting artists...");
|
||||||
|
C = 0;
|
||||||
|
int max = artistJson.Count;
|
||||||
|
foreach (var kv in artistJson)
|
||||||
|
{
|
||||||
|
var artist = spotify.GetArtist((string) kv.Value["sid"]);
|
||||||
|
var artJson = kv.Value;
|
||||||
|
if (artist.HasError())
|
||||||
|
{
|
||||||
|
Console.WriteLine(kv.Value["sid"] + " - Error: " + artist.Error.Status + " - " + artist.Error.Message);
|
||||||
|
Thread.Sleep(5000);
|
||||||
|
artist = spotify.GetArtist((string) kv.Value["sid"]);
|
||||||
|
}
|
||||||
|
artJson["followers"] = artist?.Followers?.Total;
|
||||||
|
artJson["popularity"] = artist?.Popularity;
|
||||||
|
artJson["genres"] = new JArray(artist?.Genres);
|
||||||
|
C++;
|
||||||
|
if (C % 10 == 0) Console.Write("\r" + C + "/" + max + " - " + (C / (float) max) * 100 + "%");
|
||||||
|
if(C % 100 == 0) Thread.Sleep(2000); //It exceeded the ratelimit after 120-something
|
||||||
|
}
|
||||||
|
|
||||||
|
Console.WriteLine("\r" + C + "/" + max + " - " + (C / (float) max) * 100 + "%");
|
||||||
|
|
||||||
|
//Console.WriteLine(artistJson.ToString(Formatting.None));
|
||||||
|
File.WriteAllText("songs.json", new JArray(playlistJson.OrderBy(song=>song["sid"])).ToString());
|
||||||
|
File.WriteAllText("artists.json", new JArray(artistJson.Children().Select(tk=>tk.Last)
|
||||||
|
.OrderBy(artist=>artist["sname"])).ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
35
HiddenUpdater/Properties/AssemblyInfo.cs
Normal file
35
HiddenUpdater/Properties/AssemblyInfo.cs
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// General Information about an assembly is controlled through the following
|
||||||
|
// set of attributes. Change these attribute values to modify the information
|
||||||
|
// associated with an assembly.
|
||||||
|
[assembly: AssemblyTitle("HiddenUpdater")]
|
||||||
|
[assembly: AssemblyDescription("")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("")]
|
||||||
|
[assembly: AssemblyProduct("HiddenUpdater")]
|
||||||
|
[assembly: AssemblyCopyright("Copyright © 2019")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// Setting ComVisible to false makes the types in this assembly not visible
|
||||||
|
// to COM components. If you need to access a type in this assembly from
|
||||||
|
// COM, set the ComVisible attribute to true on that type.
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||||
|
[assembly: Guid("74B49E86-F983-4818-8A53-F4C6F69777E2")]
|
||||||
|
|
||||||
|
// Version information for an assembly consists of the following four values:
|
||||||
|
//
|
||||||
|
// Major Version
|
||||||
|
// Minor Version
|
||||||
|
// Build Number
|
||||||
|
// Revision
|
||||||
|
//
|
||||||
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
|
// by using the '*' as shown below:
|
||||||
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
57
HiddenUpdater/StoreLyrics.cs
Normal file
57
HiddenUpdater/StoreLyrics.cs
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Net;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
|
namespace HiddenUpdater
|
||||||
|
{
|
||||||
|
public class StoreLyrics
|
||||||
|
{
|
||||||
|
public static void Store()
|
||||||
|
{
|
||||||
|
do
|
||||||
|
{
|
||||||
|
Console.Write("One artist: ");
|
||||||
|
string artist = Console.ReadLine();
|
||||||
|
if (artist.Length == 0) break;
|
||||||
|
Console.Write("Title: ");
|
||||||
|
string title = Console.ReadLine();
|
||||||
|
if (artist.Length == 0) break;
|
||||||
|
var songs = JArray.Parse(File.ReadAllText("songs.json"));
|
||||||
|
foreach (var song in songs)
|
||||||
|
{
|
||||||
|
if (((string) song["sname"]).Contains(title))
|
||||||
|
{
|
||||||
|
Console.WriteLine("Title matches: " + song["artists"] + " - " + song["sname"]);
|
||||||
|
if (song["artists"].Any(a => ((string) a).Contains(artist)))
|
||||||
|
{
|
||||||
|
Console.WriteLine("Artist matches");
|
||||||
|
/*Console.WriteLine("Lyrics (type \"END\" when done):");
|
||||||
|
string lyrics = "";
|
||||||
|
do
|
||||||
|
{
|
||||||
|
var line = Console.ReadLine();
|
||||||
|
Console.WriteLine("Line: " + line);
|
||||||
|
if (line == "END") break;
|
||||||
|
lyrics += " " + line + "\n";
|
||||||
|
} while (true);*/
|
||||||
|
File.WriteAllText("lyrics.txt", "");
|
||||||
|
Console.WriteLine("Put the lyrics in lyrics.txt and press Enter");
|
||||||
|
Console.ReadLine();
|
||||||
|
|
||||||
|
string lyrics = "";
|
||||||
|
foreach(string line in File.ReadLines("lyrics.txt")) {
|
||||||
|
Console.WriteLine("Line: " + line);
|
||||||
|
lyrics += " " + line + "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
File.AppendAllText("songextra.yml", "- sid: " + song["sid"] + "\n lyrics: |\n" + lyrics);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} while (true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
8
HiddenUpdater/packages.config
Normal file
8
HiddenUpdater/packages.config
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<packages>
|
||||||
|
<package id="EmbedIO" version="2.9.1" targetFramework="net472" />
|
||||||
|
<package id="Newtonsoft.Json" version="12.0.2" targetFramework="net472" />
|
||||||
|
<package id="SpotifyAPI.Web" version="4.2.0" targetFramework="net472" />
|
||||||
|
<package id="SpotifyAPI.Web.Auth" version="4.2.0" targetFramework="net472" />
|
||||||
|
<package id="Unosquare.Swan.Lite" version="1.3.0" targetFramework="net472" />
|
||||||
|
</packages>
|
|
@ -1,2 +0,0 @@
|
||||||
# HiddenSounds
|
|
||||||
Fan site for Hidden Sounds
|
|
24
_config.yml
24
_config.yml
|
@ -1,24 +0,0 @@
|
||||||
collections:
|
|
||||||
artists:
|
|
||||||
output: true
|
|
||||||
|
|
||||||
defaults:
|
|
||||||
- scope:
|
|
||||||
path: ""
|
|
||||||
type: "artists"
|
|
||||||
values:
|
|
||||||
layout: "artist"
|
|
||||||
- scope:
|
|
||||||
path: ""
|
|
||||||
values:
|
|
||||||
layout: "default"
|
|
||||||
|
|
||||||
baseurl: /HiddenSounds
|
|
||||||
page_gen:
|
|
||||||
- data: songs
|
|
||||||
template: song
|
|
||||||
name: sid
|
|
||||||
- data: artists
|
|
||||||
template: artist
|
|
||||||
name: sname
|
|
||||||
exclude: [vendor]
|
|
2195
_data/artists.json
2195
_data/artists.json
File diff suppressed because it is too large
Load diff
|
@ -1,10 +0,0 @@
|
||||||
- name: Home
|
|
||||||
link:
|
|
||||||
- name: Artists
|
|
||||||
link: artists.html
|
|
||||||
- name: FAQ
|
|
||||||
link: faq.html
|
|
||||||
- name: Streams
|
|
||||||
link: streams.html
|
|
||||||
- name: Songs
|
|
||||||
link: songs.html
|
|
|
@ -1,443 +0,0 @@
|
||||||
- sid: '010vYuTvUjhcUAx6ICC3p0'
|
|
||||||
lyrics: |
|
|
||||||
I'm playing magician's assistant
|
|
||||||
I know all your tricks but I'll listen
|
|
||||||
I help you escape with this part I play
|
|
||||||
|
|
||||||
But now I guess you gotta go
|
|
||||||
Now you see me, now you don't
|
|
||||||
and I thought I would try for you
|
|
||||||
But you turned all the tears I cried for you to gold and I'm blinded
|
|
||||||
|
|
||||||
Blinded.
|
|
||||||
Blinded.
|
|
||||||
Blinded.
|
|
||||||
Blinded.
|
|
||||||
Blinded.
|
|
||||||
Blinded.
|
|
||||||
Blinded.
|
|
||||||
Blinded.
|
|
||||||
|
|
||||||
That i'm blinded.
|
|
||||||
|
|
||||||
Blinded.
|
|
||||||
Blinded.
|
|
||||||
|
|
||||||
But you turned all the tears I cried for you to gold and I'm blinded.
|
|
||||||
|
|
||||||
But you turned all the tears I cried for you to gold and I'm blinded.
|
|
||||||
|
|
||||||
I'm caught in the smoke in the
|
|
||||||
|
|
||||||
mirrors.
|
|
||||||
I'm getting so close now it's clearer.
|
|
||||||
You fold me again
|
|
||||||
with what could have been.
|
|
||||||
|
|
||||||
But now I guess you gotta go
|
|
||||||
Now you see me, now you don't
|
|
||||||
and I thought I would try for you
|
|
||||||
But you turned all the tears I cried for you to gold and I'm blinded
|
|
||||||
|
|
||||||
Blinded.
|
|
||||||
Blinded.
|
|
||||||
Blinded.
|
|
||||||
Blinded.
|
|
||||||
Blinded.
|
|
||||||
Blinded.
|
|
||||||
Blinded.
|
|
||||||
Blinded.
|
|
||||||
|
|
||||||
That I'm blinded.
|
|
||||||
|
|
||||||
Blinded.
|
|
||||||
Blinded.
|
|
||||||
|
|
||||||
But you turned all the tears I cried for you to gold and I'm blinded.
|
|
||||||
|
|
||||||
But you turned all the tears I cried for you to gold and I'm blinded.
|
|
||||||
|
|
||||||
But you turned all the tears I cried for you to gold and I'm blinded.
|
|
||||||
- sid: '01Aum8bxlAx0bw0b0djXVc'
|
|
||||||
lyrics: |
|
|
||||||
Bad habits in my brain
|
|
||||||
Bad habits in my veins
|
|
||||||
And I'm begging them to change
|
|
||||||
But they are just not listening today
|
|
||||||
|
|
||||||
All of the madness, all of the rage
|
|
||||||
Only gets better when I feel pain
|
|
||||||
|
|
||||||
Am I causing you pain, love
|
|
||||||
I don't mean to
|
|
||||||
As I run through your veins I'm
|
|
||||||
Trying not to
|
|
||||||
|
|
||||||
But I need them to see
|
|
||||||
What they did to me
|
|
||||||
Am I causing you pain, love
|
|
||||||
I don't mean to
|
|
||||||
|
|
||||||
Bad habits in my head
|
|
||||||
Bad habits in my bed
|
|
||||||
And I'm trying just to hold on
|
|
||||||
To everything that I have known instead
|
|
||||||
|
|
||||||
All of the madness, all of the rage
|
|
||||||
Only gets better when I feel pain
|
|
||||||
|
|
||||||
Am I causing you pain, love
|
|
||||||
I don't mean to
|
|
||||||
As I run through your veins I'm
|
|
||||||
Trying not to
|
|
||||||
|
|
||||||
But I need them to see
|
|
||||||
What they did to me
|
|
||||||
Am I causing you pain, love
|
|
||||||
I don't mean to
|
|
||||||
|
|
||||||
Am I causing you pain, love
|
|
||||||
I don't mean to
|
|
||||||
As I run through your veins I'm
|
|
||||||
Trying not to
|
|
||||||
|
|
||||||
But I need them to see
|
|
||||||
What they did to me
|
|
||||||
Am I causing you pain, love
|
|
||||||
I don't mean to
|
|
||||||
- sid: '01EpUJB8qCmYOy2oT0Ok9W'
|
|
||||||
lyrics: |
|
|
||||||
Full circle, deep purple
|
|
||||||
Undertones in the undertone
|
|
||||||
Not artificial, these words fizzle
|
|
||||||
Up and out of my mouth
|
|
||||||
|
|
||||||
I can phase through walls like a particle
|
|
||||||
Part of me holds while rest of me holds on
|
|
||||||
I can change the arrangement of all of us
|
|
||||||
When not but a follower, like it's nothing
|
|
||||||
|
|
||||||
I am satellite, I am so alive
|
|
||||||
I am hovering in place like a dragonfly
|
|
||||||
I am hydrochloric, I am alkaline
|
|
||||||
I am everything you feel and you fantasize
|
|
||||||
|
|
||||||
And the heart is on, like it's nothing
|
|
||||||
And the heart is on, like it's nothing
|
|
||||||
And the heart is on, like it's nothing
|
|
||||||
And the heart is on, like it's nothing
|
|
||||||
|
|
||||||
Dragonfly
|
|
||||||
|
|
||||||
Dragonfly
|
|
||||||
|
|
||||||
I can walk on the water like it's concrete
|
|
||||||
Part of me falls while the rest of me runs free
|
|
||||||
I can play with the shape of the entropy
|
|
||||||
Nobody can intervene, like it's nothing
|
|
||||||
|
|
||||||
I am satellite, I am so alive
|
|
||||||
I am hovering in place like a dragonfly
|
|
||||||
I am hydrochloric, I am alkaline
|
|
||||||
I am everything you feel and you fantasize
|
|
||||||
|
|
||||||
And the heart is on, like it's nothing
|
|
||||||
And the heart is on, like it's nothing
|
|
||||||
And the heart is on, like it's nothing
|
|
||||||
And the heart is on, like it's nothing
|
|
||||||
|
|
||||||
Full circle, no reversal
|
|
||||||
Under oath in the summer glow
|
|
||||||
Not artificial, these words fizzle
|
|
||||||
Humming low from my broke
|
|
||||||
|
|
||||||
You can walk, you can run
|
|
||||||
I can fly, dragonfly
|
|
||||||
You can walk, oh you can run
|
|
||||||
But I can fly, dragonfly
|
|
||||||
|
|
||||||
Dragonfly
|
|
||||||
|
|
||||||
Dragonfly
|
|
||||||
|
|
||||||
Full circle
|
|
||||||
I take it full circle
|
|
||||||
Full circle
|
|
||||||
Full circle
|
|
||||||
- sid: '2UpWp7B9rBLYfPwDFBAOIi'
|
|
||||||
lyrics: |
|
|
||||||
Ooh, yeah
|
|
||||||
Ooh, yeah, yeah, yeah!
|
|
||||||
Oh!
|
|
||||||
|
|
||||||
Oh!
|
|
||||||
|
|
||||||
Ooh, yeah
|
|
||||||
Ooh, yeah, yeah, yeah!
|
|
||||||
|
|
||||||
I,
|
|
||||||
I heard
|
|
||||||
I heard you like to dance
|
|
||||||
(Woah woah-ooh woah-ooh woah)
|
|
||||||
|
|
||||||
I,
|
|
||||||
I heard
|
|
||||||
I heard you like to shake that ass
|
|
||||||
(Woah woah-ooh woah-ooh woah)
|
|
||||||
|
|
||||||
You said
|
|
||||||
|
|
||||||
"Show me where the funk is"
|
|
||||||
And I heard you like to get low
|
|
||||||
"Show me where the funk is"
|
|
||||||
And I heard you like to get down, down, down, yeah
|
|
||||||
|
|
||||||
Bae you know the word is out
|
|
||||||
I heard that you've been gettin' down
|
|
||||||
Your momma knows you're slippin' out
|
|
||||||
Where the funk is, the funk is, yeah!
|
|
||||||
|
|
||||||
(Where the funk is)
|
|
||||||
|
|
||||||
(Woah woah-ooh woah-ooh woah)
|
|
||||||
|
|
||||||
I,
|
|
||||||
I heard
|
|
||||||
I heard you like to sing
|
|
||||||
|
|
||||||
I,
|
|
||||||
I heard
|
|
||||||
I know you like to scream
|
|
||||||
(Where the funk is)
|
|
||||||
|
|
||||||
Ooh, bae you know the word is out
|
|
||||||
Yeah, I heard that you've been gettin' down
|
|
||||||
Oh, your momma knows you're slippin' out
|
|
||||||
Where the funk is, the funk is
|
|
||||||
|
|
||||||
I,
|
|
||||||
I heard
|
|
||||||
I heard you like to get nasty
|
|
||||||
(Woah woah-ooh woah-ooh woah)
|
|
||||||
|
|
||||||
I,
|
|
||||||
I know
|
|
||||||
I know you know that you a badass motherfucker!
|
|
||||||
|
|
||||||
"Show me where the funk is"
|
|
||||||
And I heard you like to get low
|
|
||||||
"Show me where the funk is"
|
|
||||||
One more time, do it some more, yeah!
|
|
||||||
|
|
||||||
"Show me where the funk is"
|
|
||||||
And I heard you like to get low
|
|
||||||
"Show me where the funk is"
|
|
||||||
And I heard you like to get down!
|
|
||||||
- sid: '01V3FamQ70LSYhkDXz47Wt'
|
|
||||||
lyrics: |
|
|
||||||
No matter how good that I get you
|
|
||||||
At targeting your mind on one thing at a time
|
|
||||||
Got a lot that you've got to do
|
|
||||||
Caught you on your way out
|
|
||||||
Hey, did you know that you breathe too
|
|
||||||
And if our air ran out to minimal amounts
|
|
||||||
How about that as a currency?
|
|
||||||
Wouldn't that even things out?
|
|
||||||
|
|
||||||
Tell me how's that PSI
|
|
||||||
Hitting your skull when you
|
|
||||||
Lie about your life
|
|
||||||
So very tall in your mind
|
|
||||||
Think no one sees how you hide
|
|
||||||
I do, I do
|
|
||||||
|
|
||||||
Wake up, you're collecting dust
|
|
||||||
Your shine will start to rust
|
|
||||||
You're in love with the ease of what
|
|
||||||
All those Bens have had to say
|
|
||||||
|
|
||||||
No matter how good that I get you
|
|
||||||
At targeting your mind on one thing at a time
|
|
||||||
Got a lot that you've got to do
|
|
||||||
Caught you on your way out
|
|
||||||
Hey, did you know that you breathe too
|
|
||||||
And if our air ran out to minimal amounts
|
|
||||||
How about that as a currency?
|
|
||||||
Wouldn't that even things out?
|
|
||||||
|
|
||||||
Tell me how's that PSI
|
|
||||||
Hitting your skull when you
|
|
||||||
Lie about your life
|
|
||||||
So very tall in your mind
|
|
||||||
Think no one sees how you hide
|
|
||||||
I do, I do
|
|
||||||
- sid: '02hs1TRvEe6kzmfKLylHba'
|
|
||||||
lyrics: |
|
|
||||||
I like to party, drink all the lemonade
|
|
||||||
I like to party, come ride the Waffle Wave
|
|
||||||
|
|
||||||
Float on the gum drops in a pool of marmalade
|
|
||||||
I like to party, come ride the Waffle Wave
|
|
||||||
|
|
||||||
(I just wanna party)
|
|
||||||
(I just wanna party)
|
|
||||||
(I just wanna party)
|
|
||||||
(I just wanna, I just wanna, I just wanna)
|
|
||||||
Here we go
|
|
||||||
Eechi me sanchi, I know I just want to eat (waffle)
|
|
||||||
Eechi me sanchi, I just want a waffle wave
|
|
||||||
Eechi me sanchi, I know I just want to eat
|
|
||||||
Eechi me sanchi, I just want a waffle-
|
|
||||||
|
|
||||||
Shunai ma kataimo, in the club you're a myto
|
|
||||||
(I just, I just)
|
|
||||||
Shunai ma kataimo, in the club you're myto, so
|
|
||||||
|
|
||||||
(I just wanna party)
|
|
||||||
Waffle
|
|
||||||
Wave
|
|
||||||
I just wanna party
|
|
||||||
Waffle
|
|
||||||
|
|
||||||
Here we go (wave)
|
|
||||||
Here we go
|
|
||||||
Here we go
|
|
||||||
|
|
||||||
I like to party, drink all the lemonade
|
|
||||||
I like to party, come ride the Waffle Wave
|
|
||||||
|
|
||||||
Float on the gum drops in a pool of marmalade
|
|
||||||
I like to party, come ride the Waffle Wave
|
|
||||||
|
|
||||||
All night long
|
|
||||||
I'm falling for you
|
|
||||||
Fizzy Fantasies
|
|
||||||
I'm taking on
|
|
||||||
The chances of dreams
|
|
||||||
Chasing you and me
|
|
||||||
|
|
||||||
All night long
|
|
||||||
I'm falling for you
|
|
||||||
Fizzy Fantasies
|
|
||||||
I'm taking on
|
|
||||||
The chances of dreams
|
|
||||||
Chasing you and me, and me...
|
|
||||||
|
|
||||||
Here we go
|
|
||||||
Waffle
|
|
||||||
Wave
|
|
||||||
Waffle, waffle, waffle
|
|
||||||
Waffle
|
|
||||||
Wave
|
|
||||||
Waffle
|
|
||||||
Here we go, again
|
|
||||||
I just wanna party
|
|
||||||
- sid: '059JaoH7UxFdvAk2xCvcF6'
|
|
||||||
lyrics: |
|
|
||||||
|
|
||||||
Do you know what's happening
|
|
||||||
We've got a situation on the rise
|
|
||||||
Did you see what was going on
|
|
||||||
Or got a good look at her eyes
|
|
||||||
|
|
||||||
Why must they look so fearful
|
|
||||||
I'm only trying save your life
|
|
||||||
Feels like 700 years I have been alive
|
|
||||||
Stick it up, roaming the streets and set out to terrorize
|
|
||||||
And born digital angel
|
|
||||||
Unknowing, living a lie
|
|
||||||
|
|
||||||
And I remember.
|
|
||||||
Somewhere in my mind shows
|
|
||||||
Itself time to time whole
|
|
||||||
Visions from my past - the
|
|
||||||
Last time I was
|
|
||||||
Free
|
|
||||||
From burdens and duties
|
|
||||||
Last time I felt complete
|
|
||||||
Ignorance is beauty
|
|
||||||
- sid: '08pYxU4axAJX2ATZlURPWH'
|
|
||||||
lyrics: |
|
|
||||||
She sells them cheap thrills,
|
|
||||||
She know that she kills.
|
|
||||||
|
|
||||||
High stakes, fun games,
|
|
||||||
float away.
|
|
||||||
"Can escape the night away",
|
|
||||||
She said.
|
|
||||||
|
|
||||||
Take a pill for it, here you go,
|
|
||||||
Take a hit for it here you go,
|
|
||||||
You don't need love,
|
|
||||||
You don't need my love.
|
|
||||||
|
|
||||||
But I'm addicted, to your love.
|
|
||||||
Yes I'm addicted to your love.
|
|
||||||
|
|
||||||
She was young, not so long ago,
|
|
||||||
She sold smiles, like here you go,
|
|
||||||
You don't need love,
|
|
||||||
I don't need your love.
|
|
||||||
|
|
||||||
But I'm addicted, to your love.
|
|
||||||
Yes I'm addicted to your love.
|
|
||||||
|
|
||||||
|
|
||||||
And if your mind still speaks take another
|
|
||||||
Humankind’s still bleak undercover
|
|
||||||
Yeah “I’m done” you swore to you mother
|
|
||||||
But the truth is you rather mislead than recover
|
|
||||||
And the mandate reads you wake, bake
|
|
||||||
Cause you can’t take all the heartache
|
|
||||||
And a mistake’s not a mistake if you don’t break
|
|
||||||
Partake in a risk take with no handbrake uh
|
|
||||||
A B C to X T C and I don’t trust you a moment alone so stay with me
|
|
||||||
You sing all your LSDs, and will I pull you back on earth or will you sink with me?
|
|
||||||
|
|
||||||
And I can see you’ve quit, say the drugs won
|
|
||||||
Yeah there’s no point speak, cause you hear none
|
|
||||||
I really thought I could get you out of this one,
|
|
||||||
Help you when you freeze, run
|
|
||||||
Break this whole addiction
|
|
||||||
But I don’t know anymore
|
|
||||||
Think I gotta let go
|
|
||||||
- sid: 7B2pRsFVYT0ntK7xKbQwsn
|
|
||||||
lyrics: |
|
|
||||||
Riding down the Parkway in the Twilight
|
|
||||||
Wind in our hair getting high without a care
|
|
||||||
Ooh yeah
|
|
||||||
Pull up to the Bonfire Crack another cold one
|
|
||||||
Turn the Speakers up
|
|
||||||
Cos we dont’ give a fuck
|
|
||||||
We gonna party till the sun comes up
|
|
||||||
Dancing Queens
|
|
||||||
Living in a Rainbow Dream
|
|
||||||
Seventeen Living in a Rainbow Dream
|
|
||||||
A Rainbow Dream
|
|
||||||
All the Colors in the Air
|
|
||||||
Feel the Magic Everywhere
|
|
||||||
In a Rainbow Dream
|
|
||||||
In a Rainbow Dream
|
|
||||||
(All the Colors in the Air, Feel the Magic Everywhere)
|
|
||||||
In a Rainbow Dream
|
|
||||||
Living in a Rainbow Dream
|
|
||||||
We’re all just living for that moment
|
|
||||||
TIme slows down and you take a look around
|
|
||||||
Just like in the movies
|
|
||||||
when everybody’s laughing hey hey
|
|
||||||
Clinking drinks and relaxing
|
|
||||||
So turn the Speakers up
|
|
||||||
Cos we don’t give a fuck
|
|
||||||
We gonna party till the sun comes up
|
|
||||||
Dancing Queens
|
|
||||||
Living in a Rainbow Dream
|
|
||||||
Seventeen
|
|
||||||
Living in a Rainbow Dream
|
|
||||||
A Rainbow Dream
|
|
||||||
All the Colors in the Air
|
|
||||||
Feel the Magic Everywhere
|
|
||||||
In a Rainbow Dream
|
|
||||||
In a Rainbow Dream (All the Colors in the Air)
|
|
||||||
Colors in the Air (Feel the Magic Everywhere)
|
|
||||||
In a Rainbow Dream
|
|
||||||
Living in a Rainbow Dream
|
|
6673
_data/songs.json
6673
_data/songs.json
File diff suppressed because it is too large
Load diff
|
@ -1,400 +0,0 @@
|
||||||
- date: '2018-06-28'
|
|
||||||
host: 'Anna Yvette'
|
|
||||||
- date: '2018-07-05'
|
|
||||||
host: 'Approaching Nirvana'
|
|
||||||
streamer: 'Approaching Nirvana'
|
|
||||||
- date: '2018-07-12'
|
|
||||||
host: 'Electro-Light'
|
|
||||||
- date: '2018-07-19'
|
|
||||||
host: 'Varien'
|
|
||||||
- date: '2018-07-26'
|
|
||||||
host: 'Tim Schaufert'
|
|
||||||
- date: '2018-08-02'
|
|
||||||
host: '?Roundup'
|
|
||||||
- date: '2018-08-09'
|
|
||||||
host: 'Laura Brehm, Rival, Arc North'
|
|
||||||
- date: '2018-08-16'
|
|
||||||
host: 'AK'
|
|
||||||
- date: '2018-08-23'
|
|
||||||
host: 'Jim Yosef'
|
|
||||||
- date: '2018-08-30'
|
|
||||||
host: 'Rob Gasser'
|
|
||||||
- date: '2018-09-06'
|
|
||||||
host: '?Roundup'
|
|
||||||
streamer: 'Approaching Nirvana'
|
|
||||||
- date: '2018-09-13'
|
|
||||||
host: 'Sublab'
|
|
||||||
- date: '2018-09-20'
|
|
||||||
host: 'Veela'
|
|
||||||
- date: '2018-09-27'
|
|
||||||
host: 'floatinurboat'
|
|
||||||
- date: '2018-10-04'
|
|
||||||
host: 'Anna Yvette'
|
|
||||||
- date: '2018-10-11'
|
|
||||||
host: 'Hudson Lee'
|
|
||||||
- date: '2018-10-18'
|
|
||||||
host: '!AMA'
|
|
||||||
amaHost: 'Anna Yvette, Laura Brehm, Approaching Nirvana'
|
|
||||||
live: true
|
|
||||||
- date: '2018-10-25'
|
|
||||||
host: 'Anna Yvette'
|
|
||||||
- date: '2018-11-01'
|
|
||||||
host: 'Approaching Nirvana'
|
|
||||||
- date: '2018-11-08'
|
|
||||||
host: 'Arc North'
|
|
||||||
- date: '2018-11-15'
|
|
||||||
host: 'CASHFORGOLD'
|
|
||||||
- date: '2018-11-22'
|
|
||||||
host: 'Anna Yvette'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2018-11-29'
|
|
||||||
host: '?Roundup'
|
|
||||||
streamer: 'Cara Leigh'
|
|
||||||
- date: '2018-12-06'
|
|
||||||
host: 'Cara Leigh'
|
|
||||||
streamer: 'Cara Leigh'
|
|
||||||
- date: '2018-12-13'
|
|
||||||
host: 'Atlas in Motion'
|
|
||||||
streamer: 'Cara Leigh'
|
|
||||||
- date: '2018-12-20'
|
|
||||||
host: 'Arc North, Rival'
|
|
||||||
- date: '2018-12-27'
|
|
||||||
host: 'Approaching Nirvana'
|
|
||||||
streamer: 'Approaching Nirvana'
|
|
||||||
- date: '2019-01-03'
|
|
||||||
host: '!Yearmix'
|
|
||||||
year: 2018
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2019-01-04'
|
|
||||||
host: '!Yearmix'
|
|
||||||
year: 2018
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2019-01-10'
|
|
||||||
host: 'Alden Groves'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2019-01-17'
|
|
||||||
host: 'Hyper Potions'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2019-01-24'
|
|
||||||
host: 'Voicians'
|
|
||||||
streamer: 'Voicians'
|
|
||||||
live: true
|
|
||||||
tracklist:
|
|
||||||
- artist: 'Voicians'
|
|
||||||
title: 'Potion'
|
|
||||||
link: 'https://open.spotify.com/track/14hAZvFFnYG7sszxRByd30?si=U0aj8P5HS1e9rHdsEOxxqA'
|
|
||||||
- artist: 'Voicians'
|
|
||||||
title: 'Loop'
|
|
||||||
link: 'https://open.spotify.com/track/2g85NHqwJ2qEg8MZwa3SWb?si=qV2JKwEaS3ib2JAHJJnEEw'
|
|
||||||
- artist: 'Anna Yvette'
|
|
||||||
title: 'The End'
|
|
||||||
link: 'https://open.spotify.com/track/5YwUIxuEcE6cd4DK2GAQ9q?si=5YXSOOF3QkuDyQp1-C7BEw'
|
|
||||||
- artist: 'Varien'
|
|
||||||
title: 'Blood Hunter'
|
|
||||||
- artists: [ 'Rameses B', 'Zoe Moon' ]
|
|
||||||
title: 'Eclipse'
|
|
||||||
link: 'https://open.spotify.com/track/1JDzWvYkEbQ3stuReNJsfk?si=j0J-hE9nTtGRFrx4_Ivb0A'
|
|
||||||
- artist: 'Voicians'
|
|
||||||
title: 'Endure'
|
|
||||||
link: 'https://open.spotify.com/track/6JZmx8ipiHx0JiKLSwOg2z?si=nKrm4hWlQwWS1SJ_zTssVQ'
|
|
||||||
- artist: 'Voicians'
|
|
||||||
title: '?'
|
|
||||||
- artists: [ 'Arc North', 'Agiya' ]
|
|
||||||
title: 'Dark Side (feat. Agiya)'
|
|
||||||
- artist: 'Voicians'
|
|
||||||
title: 'Survival League'
|
|
||||||
link: 'https://open.spotify.com/track/59IvIDPRshOj9Ty2he8KOI?si=C0gGQg0hQbG2H63tS85G9A'
|
|
||||||
- artists: [ 'Sublab', 'Azaleh' ]
|
|
||||||
title: 'Continuum'
|
|
||||||
- artist: 'Voicians'
|
|
||||||
title: 'Telepathetic'
|
|
||||||
link: 'https://open.spotify.com/track/4SbNROn7kq8sw2oFfrlT0g?si=ZTenGzebSrexcJuXyFMhSg'
|
|
||||||
- artists: [ 'Mr. Bill', 'Of The Trees' ]
|
|
||||||
title: 'Pish Posh'
|
|
||||||
link: 'https://open.spotify.com/track/7sNw9S1Jird6Mh4p8BXIAF?si=YimTZ-q6RD20vMLL4Wxy9A'
|
|
||||||
- artist: 'Voicians'
|
|
||||||
title: 'Wolves'
|
|
||||||
- artist: 'Voicians'
|
|
||||||
title: 'Forsaken'
|
|
||||||
link: 'https://open.spotify.com/track/4cIlELdvlCXZKrJj06e3EI?si=rtVzXo_-RdOfqvJxoS85qQ'
|
|
||||||
- artist: 'Haywyre'
|
|
||||||
title: 'Storyteller'
|
|
||||||
- artist: 'Voicians'
|
|
||||||
title: 'Riddle'
|
|
||||||
link: 'https://open.spotify.com/track/5qJU2zfQ0XsTfZbihQWEyT?si=1LETzMMJQUmnXRwj78fh-Q'
|
|
||||||
- aritsts: [ 'Elliot Berger', 'Laura Brehm' ]
|
|
||||||
title: 'Believe'
|
|
||||||
- artists: [ 'Approaching Nirvana', 'Cara Leigh' ]
|
|
||||||
title: 'Lost the Signal'
|
|
||||||
- artist: 'Approaching Nirvana'
|
|
||||||
title: 'Leap'
|
|
||||||
- artist: 'Voicians'
|
|
||||||
title: 'Angels'
|
|
||||||
# ?
|
|
||||||
- artist: 'Approaching Nirvana'
|
|
||||||
title: 'Not This Time'
|
|
||||||
- artist: 'Rameses B'
|
|
||||||
title: 'Space Race'
|
|
||||||
- artist: 'Voicians'
|
|
||||||
title: 'Touch Me Hurt Me'
|
|
||||||
link: 'https://open.spotify.com/track/29K8kP8UZ2JPil2gXEjeSv?si=tg2jNJT5R72UXu9cqhAxUg'
|
|
||||||
- artist: 'Electro-Light'
|
|
||||||
title: 'Discovery'
|
|
||||||
- artist: 'Varien'
|
|
||||||
title: 'Claws'
|
|
||||||
#?
|
|
||||||
- artist: 'Voicians'
|
|
||||||
title: 'Tweeday Theme'
|
|
||||||
link: 'https://open.spotify.com/track/2JgeYPiw2WKBVsnNromiBh?si=4NSRFFTIS2Kfdrp-jGtpnQ'
|
|
||||||
- artist: 'Anna Yvette'
|
|
||||||
title: 'Rainbow Dream'
|
|
||||||
- artists: [ 'Rezonate', 'Christopher Pop' ]
|
|
||||||
title: 'Toadstools (Christopher Pop Remix)'
|
|
||||||
- artist: 'MYLK'
|
|
||||||
title: 'Mashmallow Disco'
|
|
||||||
link: 'https://open.spotify.com/track/63d4BntRS4qWSoq5Uciq46?si=6pkBGCc9TKqzzrskLKecWQ'
|
|
||||||
- date: '2019-01-31'
|
|
||||||
host: '?Roundup'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2019-02-07'
|
|
||||||
host: '?Throwback'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
throwbackHost: 'Sublab'
|
|
||||||
- date: '2019-02-14'
|
|
||||||
host: 'Rameses B'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2019-02-21'
|
|
||||||
host: '?Throwback'
|
|
||||||
streamer: 'Approaching Nirvana'
|
|
||||||
throwbackHost: 'Laura Brehm, Arc North, Rival'
|
|
||||||
- date: '2019-02-28'
|
|
||||||
host: '?Roundup'
|
|
||||||
streamer: 'Approaching Nirvana'
|
|
||||||
- date: '2019-03-05'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2019-03-07'
|
|
||||||
host: 'Approaching Nirvana'
|
|
||||||
streamer: 'Approaching Nirvana'
|
|
||||||
- date: '2019-03-12'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2019-03-14'
|
|
||||||
host: '?Throwback'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
throwbackHost: 'floatinurboat'
|
|
||||||
- date: '2019-03-19'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2019-03-21'
|
|
||||||
host: '?Throwback'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
throwbackHost: 'CASHFORGOLD'
|
|
||||||
- date: '2019-03-26'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2019-03-28'
|
|
||||||
host: 'Varien'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2019-04-02'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2019-04-04'
|
|
||||||
host: 'Au5'
|
|
||||||
streamer: 'Approaching Nirvana'
|
|
||||||
- date: '2019-04-09'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2019-04-11'
|
|
||||||
host: 'Veela'
|
|
||||||
streamer: 'Approaching Nirvana'
|
|
||||||
- date: '2019-04-16'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2019-04-18'
|
|
||||||
host: 'AK'
|
|
||||||
streamer: 'Approaching Nirvana'
|
|
||||||
- date: '2019-04-23'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2019-04-25'
|
|
||||||
host: '?Throwback'
|
|
||||||
streamer: 'Approaching Nirvana'
|
|
||||||
throwbackHost: 'Arc North'
|
|
||||||
- date: '2019-04-30'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2019-05-02'
|
|
||||||
host: 'Lucy Daydream'
|
|
||||||
streamer: 'Lucy Daydream'
|
|
||||||
live: true
|
|
||||||
- date: '2019-05-07'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2019-05-09'
|
|
||||||
host: '?Roundup'
|
|
||||||
streamer: 'Cara Leigh'
|
|
||||||
- date: '2019-05-14'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Cara Leigh'
|
|
||||||
- date: '2019-05-16'
|
|
||||||
host: 'Covex'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2019-05-21'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
video: 'https://www.youtube.com/watch?v=SyKKsmdI7ZM'
|
|
||||||
- date: '2019-05-23'
|
|
||||||
host: 'Laura Brehm'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
video: 'https://www.youtube.com/watch?v=oKYqpqw6z-A'
|
|
||||||
- date: '2019-05-28'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
video: 'https://www.youtube.com/watch?v=l2E6aCSH6uc'
|
|
||||||
- date: '2019-05-30'
|
|
||||||
host: 'Zoe Moon'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
video: 'https://www.youtube.com/watch?v=12Dw26xKUAU'
|
|
||||||
- date: '2019-06-04'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
video: 'https://www.youtube.com/watch?v=IzMb3SWD9m0'
|
|
||||||
- date: '2019-06-06'
|
|
||||||
host: '?Roundup'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2019-06-11'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Cara Leigh'
|
|
||||||
- date: '2019-06-13'
|
|
||||||
host: 'Au5'
|
|
||||||
streamer: 'Approaching Nirvana'
|
|
||||||
video: 'https://www.youtube.com/watch?v=LL4N99aA_KI'
|
|
||||||
- date: '2019-06-18'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Approaching Nirvana'
|
|
||||||
- date: '2019-06-20'
|
|
||||||
host: 'Sublab'
|
|
||||||
streamer: 'Approaching Nirvana'
|
|
||||||
- date: '2019-06-25'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Cara Leigh'
|
|
||||||
- date: '2019-06-27'
|
|
||||||
host: 'Miyoki'
|
|
||||||
streamer: 'Approaching Nirvana'
|
|
||||||
- date: '2019-07-02'
|
|
||||||
host: '?Roundup'
|
|
||||||
streamer: 'Cara Leigh'
|
|
||||||
- date: '2019-07-09'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2019-07-11'
|
|
||||||
host: 'Approaching Nirvana'
|
|
||||||
streamer: 'Approaching Nirvana'
|
|
||||||
- date: '2019-07-16'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2019-07-23'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2019-07-25'
|
|
||||||
host: 'floatinurboat'
|
|
||||||
streamer: 'floatinurboat'
|
|
||||||
- date: '2019-07-30'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2019-08-01'
|
|
||||||
host: '?Roundup'
|
|
||||||
streamer: 'Approaching Nirvana'
|
|
||||||
- date: '2019-08-06'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2019-08-08'
|
|
||||||
host: '?Throwback'
|
|
||||||
throwbackHost: 'Varien'
|
|
||||||
streamer: 'Approaching Nirvana'
|
|
||||||
- date: '2019-08-15'
|
|
||||||
host: 'Electro-Light'
|
|
||||||
streamer: 'Approaching Nirvana'
|
|
||||||
- date: '2019-08-22'
|
|
||||||
host: 'Zoe Moon'
|
|
||||||
streamer: 'Approaching Nirvana'
|
|
||||||
- date: '2019-08-29'
|
|
||||||
host: '?Roundup'
|
|
||||||
streamer: 'Approaching Nirvana'
|
|
||||||
tracklist:
|
|
||||||
- artist: 'Faodail'
|
|
||||||
title: 'Nostos (Returning)'
|
|
||||||
- artists: ['Kooma', 'Miyoki', 'Veela']
|
|
||||||
title: 'Answers'
|
|
||||||
- artist: 'Miyoki'
|
|
||||||
title: 'Boats & Birds'
|
|
||||||
- artists: ['Electro-Light', 'AWR']
|
|
||||||
title: 'Love Will Find You'
|
|
||||||
- artist: 'Tim Schaufert'
|
|
||||||
title: 'Journey'
|
|
||||||
- artists: ['Laura Brehm', 'Mr. Bill']
|
|
||||||
title: 'i2i'
|
|
||||||
#AK?
|
|
||||||
- artist: 'Cara Leigh'
|
|
||||||
title: 'Part of Me'
|
|
||||||
- artists: ['Tim Schaufert', 'Acacia']
|
|
||||||
title: 'It''s Going to Be Alright'
|
|
||||||
- artists: ['Electro Light', 'AWR']
|
|
||||||
title: 'Under A Minute'
|
|
||||||
- artists: ['Approaching Nirvana', 'TryHardNinja']
|
|
||||||
title: 'Revenge Remix'
|
|
||||||
- artists: ['Electro-Light', 'AWR']
|
|
||||||
title: 'Don''t Allow'
|
|
||||||
- artist: 'Sekai'
|
|
||||||
title: 'Cherry'
|
|
||||||
- artist: 'Faodail'
|
|
||||||
title: 'Gael'
|
|
||||||
#
|
|
||||||
- artist: 'Faodail'
|
|
||||||
title: 'Untethered'
|
|
||||||
- date: '2020-04-30'
|
|
||||||
host: '!AMA'
|
|
||||||
amaHost: 'Anna Yvette, Electro-Light, floatinurboat, Laura Brehm'
|
|
||||||
streamer: 'floatinurboat'
|
|
||||||
live: true
|
|
||||||
- date: '2021-01-26'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2021-01-28'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2021-02-02'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2021-02-04'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2021-02-09'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2021-02-11'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2021-02-16'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2021-02-18'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2021-02-25'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2021-03-02'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2021-03-04'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2021-03-23'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
- date: '2021-03-25'
|
|
||||||
host: '!Chill'
|
|
||||||
streamer: 'Anna Yvette'
|
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
<div class="song">
|
|
||||||
<p>
|
|
||||||
{%- assign isFirst = true -%}
|
|
||||||
{%- for artistName in song.artists -%}
|
|
||||||
{%- if isFirst == true -%}
|
|
||||||
{%- assign isFirst = false -%}
|
|
||||||
{%- else -%}
|
|
||||||
, {% comment %} Comma and space to separate artists {% endcomment %}
|
|
||||||
{%- endif -%}
|
|
||||||
{%- assign artist = site.data.artists | where: 'sname', artistName | first -%}
|
|
||||||
{%- if artist -%}
|
|
||||||
<a href="{{ artist.sname | datapage_url: 'artists' }}">{{ artist.sname }}</a>
|
|
||||||
{%- else -%}
|
|
||||||
{{ artistName }}
|
|
||||||
{%- endif -%}
|
|
||||||
{%- endfor -%}
|
|
||||||
{% comment %} Space needed {% endcomment %} - <a href="{{ site.baseurl }}/{{ song.sid | datapage_url: 'songs' }}">{{ song.sname }}</a>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
|
@ -1,20 +0,0 @@
|
||||||
<li>
|
|
||||||
<h3>
|
|
||||||
{%- if stream.host == '!Chill' -%} Tuesday Chill Stream
|
|
||||||
{%- elsif stream.host == '?Throwback' -%} Throwback: {{ stream.throwbackHost }}
|
|
||||||
{%- elsif stream.host == '?Roundup' -%} Monthly Roundup
|
|
||||||
{%- elsif stream.host == '!Yearmix' -%} {{ stream.year }} yearmix
|
|
||||||
{%- elsif stream.host == '!AMA' -%} Q & A: {{ stream.amaHost }}
|
|
||||||
{%- else -%} {{- stream.host -}}
|
|
||||||
{%- endif -%}
|
|
||||||
{% if stream.live %} - LIVE {%- endif -%}
|
|
||||||
</h3>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
{{ stream.date | date: "%a, %b %d, %Y" }}
|
|
||||||
</li>
|
|
||||||
{%- if stream.streamer -%} {% comment %} No streamer for future streams {% endcomment %}
|
|
||||||
<li>
|
|
||||||
Streamer: {{ stream.streamer }}
|
|
||||||
</li>
|
|
||||||
{%- endif -%}
|
|
|
@ -1,21 +0,0 @@
|
||||||
---
|
|
||||||
layout: default
|
|
||||||
title: '{{ page.sname }}'
|
|
||||||
ptitle: '{{ page.sname }}'
|
|
||||||
---
|
|
||||||
<h2>{{ page.position }}</h2>
|
|
||||||
|
|
||||||
<h2>Songs</h2>
|
|
||||||
<ul>
|
|
||||||
{% assign filtered_songs = site.data.songs %}
|
|
||||||
{% for song in filtered_songs %}
|
|
||||||
{% assign found = false %}
|
|
||||||
{% for artist in song.artists %}
|
|
||||||
{% if artist == page.sname %}
|
|
||||||
{% assign found = true %}
|
|
||||||
{% endif %}
|
|
||||||
{% endfor %}
|
|
||||||
{% if found == false %} {% continue %} {% endif %}
|
|
||||||
<li><a href="{{ site.baseurl }}/songs{{ song.sid | datapage_url: songs }}">{{ song.artists | join: ", " }} - {{ song.sname }}</a></li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
|
@ -1,39 +0,0 @@
|
||||||
<!doctype html>
|
|
||||||
<html class="no-js" lang="">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<title>{{ page.title | flatify }} - HS Fanpage</title>
|
|
||||||
<meta name="description" content="">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
|
|
||||||
<link rel="apple-touch-icon" href="{{ site.baseurl }}/icon.png">
|
|
||||||
<!-- Place favicon.ico in the root directory -->
|
|
||||||
<link rel="shortcut icon" type="image/x-icon" href="{{ site.baseurl }}/favicon.ico"/>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="{{ site.baseurl }}/css/main.css">
|
|
||||||
|
|
||||||
<meta name="theme-color" content="#fafafa">
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<div class="bg-image"></div>
|
|
||||||
<h1>{{ page.ptitle | flatify }}</h1>
|
|
||||||
<nav>
|
|
||||||
<ul>
|
|
||||||
{% for item in site.data.navigation %}
|
|
||||||
<li><a href="{{ site.baseurl }}/{{ item.link }}" {% if page.url== item.link %} style="color: red;" {% endif %}>
|
|
||||||
{{ item.name }}
|
|
||||||
</a></li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
<!--[if IE]>
|
|
||||||
<p class="browserupgrade">You are using an <strong>outdated</strong> browser. Please <a href="https://browsehappy.com/">upgrade
|
|
||||||
your browser</a> to improve your experience and security.</p>
|
|
||||||
<![endif]-->
|
|
||||||
|
|
||||||
{{ content }}
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
|
@ -1,12 +0,0 @@
|
||||||
---
|
|
||||||
layout: default
|
|
||||||
title: '{{ page.sname }}'
|
|
||||||
ptitle: '{{ page.artists | join: ", " }} - {{ page.sname }}'
|
|
||||||
---
|
|
||||||
<div class="pageContent">
|
|
||||||
<h2>Lyrics</h2>
|
|
||||||
<pre id="lyrics">
|
|
||||||
{%- assign song = site.data.songextra | where: 'sid', page.sid | first -%}
|
|
||||||
{{ song.lyrics }}
|
|
||||||
</pre>
|
|
||||||
</div>
|
|
|
@ -1,138 +0,0 @@
|
||||||
# coding: utf-8
|
|
||||||
# Generate pages from individual records in yml files
|
|
||||||
# (c) 2014-2016 Adolfo Villafiorita
|
|
||||||
# Distributed under the conditions of the MIT License
|
|
||||||
|
|
||||||
module Jekyll
|
|
||||||
|
|
||||||
module Sanitizer
|
|
||||||
# strip characters and whitespace to create valid filenames, also lowercase
|
|
||||||
def sanitize_filename(name)
|
|
||||||
if(name.is_a? Integer)
|
|
||||||
return name.to_s
|
|
||||||
end
|
|
||||||
return name.tr(
|
|
||||||
"ÀÁÂÃÄÅàáâãäåĀāĂ㥹ÇçĆćĈĉĊċČčÐðĎďĐđÈÉÊËèéêëĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħÌÍÎÏìíîïĨĩĪīĬĭĮįİıĴĵĶķĸĹĺĻļĽľĿŀŁłÑñŃńŅņŇňʼnŊŋÑñÒÓÔÕÖØòóôõöøŌōŎŏŐőŔŕŖŗŘřŚśŜŝŞşŠšſŢţŤťŦŧÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųŴŵÝýÿŶŷŸŹźŻżŽž",
|
|
||||||
"AAAAAAaaaaaaAaAaAaCcCcCcCcCcDdDdDdEEEEeeeeEeEeEeEeEeGgGgGgGgHhHhIIIIiiiiIiIiIiIiIiJjKkkLlLlLlLlLlNnNnNnNnnNnNnOOOOOOooooooOoOoOoRrRrRrSsSsSsSssTtTtTtUUUUuuuuUuUuUuUuUuUuWwYyyYyYZzZzZz"
|
|
||||||
).downcase.strip.gsub(' ', '-').gsub(/[^\w.-]/, '')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# this class is used to tell Jekyll to generate a page
|
|
||||||
class DataPage < Page
|
|
||||||
include Sanitizer
|
|
||||||
|
|
||||||
# - site and base are copied from other plugins: to be honest, I am not sure what they do
|
|
||||||
#
|
|
||||||
# - `index_files` specifies if we want to generate named folders (true) or not (false)
|
|
||||||
# - `dir` is the default output directory
|
|
||||||
# - `data` is the data defined in `_data.yml` of the record for which we are generating a page
|
|
||||||
# - `name` is the key in `data` which determines the output filename
|
|
||||||
# - `template` is the name of the template for generating the page
|
|
||||||
# - `extension` is the extension for the generated file
|
|
||||||
def initialize(site, base, index_files, dir, data, name, template, extension)
|
|
||||||
@site = site
|
|
||||||
@base = base
|
|
||||||
|
|
||||||
# @dir is the directory where we want to output the page
|
|
||||||
# @name is the name of the page to generate
|
|
||||||
#
|
|
||||||
# the value of these variables changes according to whether we
|
|
||||||
# want to generate named folders or not
|
|
||||||
if data[name] == nil
|
|
||||||
puts "error (datapage_gen). empty value for field '#{name}' in record #{data}"
|
|
||||||
else
|
|
||||||
filename = sanitize_filename(data[name]).to_s
|
|
||||||
|
|
||||||
@dir = dir + (index_files ? "/" + filename + "/" : "")
|
|
||||||
@name = (index_files ? "index" : filename) + "." + extension.to_s
|
|
||||||
|
|
||||||
self.process(@name)
|
|
||||||
self.read_yaml(File.join(base, '_layouts'), template + ".html")
|
|
||||||
# self.data['title'] = data[name] - EDITED
|
|
||||||
# add all the information defined in _data for the current record to the
|
|
||||||
# current page (so that we can access it with liquid tags)
|
|
||||||
self.data.merge!(data)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
class DataPagesGenerator < Generator
|
|
||||||
safe true
|
|
||||||
|
|
||||||
# generate loops over _config.yml/page_gen invoking the DataPage
|
|
||||||
# constructor for each record for which we want to generate a page
|
|
||||||
|
|
||||||
def generate(site)
|
|
||||||
# page_gen_dirs determines whether we want to generate index pages
|
|
||||||
# (name/index.html) or standard files (name.html). This information
|
|
||||||
# is passed to the DataPage constructor, which sets the @dir variable
|
|
||||||
# as required by this directive
|
|
||||||
index_files = site.config['page_gen-dirs'] == true
|
|
||||||
|
|
||||||
# data contains the specification of the data for which we want to generate
|
|
||||||
# the pages (look at the README file for its specification)
|
|
||||||
data = site.config['page_gen']
|
|
||||||
if data
|
|
||||||
data.each do |data_spec|
|
|
||||||
index_files_for_this_data = data_spec['index_files'] != nil ? data_spec['index_files'] : index_files
|
|
||||||
template = data_spec['template'] || data_spec['data']
|
|
||||||
name = data_spec['name']
|
|
||||||
dir = data_spec['dir'] || data_spec['data']
|
|
||||||
extension = data_spec['extension'] || "html"
|
|
||||||
|
|
||||||
if site.layouts.key? template
|
|
||||||
# records is the list of records defined in _data.yml
|
|
||||||
# for which we want to generate different pages
|
|
||||||
records = nil
|
|
||||||
data_spec['data'].split('.').each do |level|
|
|
||||||
if records.nil?
|
|
||||||
records = site.data[level]
|
|
||||||
else
|
|
||||||
records = records[level]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# apply filtering conditions:
|
|
||||||
# - filter requires the name of a boolean field
|
|
||||||
# - filter_condition evals a ruby expression
|
|
||||||
records = records.select { |r| r[data_spec['filter']] } if data_spec['filter']
|
|
||||||
records = records.select { |record| eval(data_spec['filter_condition']) } if data_spec['filter_condition']
|
|
||||||
|
|
||||||
records.each do |record|
|
|
||||||
site.pages << DataPage.new(site, site.source, index_files_for_this_data, dir, record, name, template, extension)
|
|
||||||
end
|
|
||||||
else
|
|
||||||
puts "error (datapage_gen). could not find template #{template}" if not site.layouts.key? template
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
module DataPageLinkGenerator
|
|
||||||
include Sanitizer
|
|
||||||
|
|
||||||
# use it like this: {{input | datapage_url: dir}}
|
|
||||||
# to generate a link to a data_page.
|
|
||||||
#
|
|
||||||
# the filter is smart enough to generate different link styles
|
|
||||||
# according to the data_page-dirs directive ...
|
|
||||||
#
|
|
||||||
# ... however, the filter is not smart enough to support different
|
|
||||||
# extensions for filenames.
|
|
||||||
#
|
|
||||||
# Thus, if you use the `extension` feature of this plugin, you
|
|
||||||
# need to generate the links by hand
|
|
||||||
def datapage_url(input, dir)
|
|
||||||
if $config == nil
|
|
||||||
$config = Jekyll.configuration({}) # Prevent spamming "Configuration file: ..." - NorbiPeti
|
|
||||||
end
|
|
||||||
extension = $config['page_gen-dirs'] ? '/' : '.html'
|
|
||||||
"#{dir}/#{sanitize_filename(input)}#{extension}"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
Liquid::Template.register_filter(Jekyll::DataPageLinkGenerator)
|
|
|
@ -1,11 +0,0 @@
|
||||||
# http://acegik.net/blog/ruby/jekyll/plugins/howto-nest-liquid-template-variables-inside-yaml-front-matter-block.html
|
|
||||||
|
|
||||||
module Jekyll
|
|
||||||
module ExpandNestedVariableFilter
|
|
||||||
def flatify(input)
|
|
||||||
Liquid::Template.parse(input).render(@context)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
Liquid::Template.register_filter(Jekyll::ExpandNestedVariableFilter)
|
|
14
artists.html
14
artists.html
|
@ -1,14 +0,0 @@
|
||||||
---
|
|
||||||
title: Artists
|
|
||||||
ptitle: Artists
|
|
||||||
---
|
|
||||||
<ul>
|
|
||||||
{% assign artists = site.data.artists | sort: 'sname' %}
|
|
||||||
{% for artist in artists %}
|
|
||||||
<li>
|
|
||||||
<h2><a href="{{ site.baseurl }}/{{ artist.sname | datapage_url: 'artists' }}">{{ artist.sname }}</a></h2>
|
|
||||||
<h3>{{ artist.position }}</h3>
|
|
||||||
<p>{{ artist.content | markdownify }}</p>
|
|
||||||
</li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
BIN
bg.png
BIN
bg.png
Binary file not shown.
Before Width: | Height: | Size: 1 MiB |
100
css/main.css
100
css/main.css
|
@ -1,100 +0,0 @@
|
||||||
body {
|
|
||||||
background-color: #003239;
|
|
||||||
}
|
|
||||||
|
|
||||||
* {
|
|
||||||
color: aqua;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bg-image {
|
|
||||||
/*background-image: url("../HS.png");*/
|
|
||||||
background-image: url("../bg.png"), linear-gradient(to bottom, #1d1d1d, #1d1d1d, #243537, #009a9a);
|
|
||||||
/*#727272);*/
|
|
||||||
background-size: cover;
|
|
||||||
filter: blur(16px);
|
|
||||||
height: 100%;
|
|
||||||
position: fixed;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
width: 100%;
|
|
||||||
z-index: -1;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#popularSongs, #hiddenSongs {
|
|
||||||
width: 38%;
|
|
||||||
margin: 4%;
|
|
||||||
border: 1px #78ffee solid;
|
|
||||||
padding: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#popularSongs h2, #hiddenSongs h2 {
|
|
||||||
text-align: center;
|
|
||||||
color: aqua;
|
|
||||||
}
|
|
||||||
|
|
||||||
#popularSongs {
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
#hiddenSongs {
|
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1 {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content {
|
|
||||||
/*background-color: #1f2523;*/
|
|
||||||
}
|
|
||||||
|
|
||||||
nav ul { /* Menü */
|
|
||||||
list-style-type: none;
|
|
||||||
margin: auto;
|
|
||||||
display: table;
|
|
||||||
}
|
|
||||||
|
|
||||||
nav li {
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
|
|
||||||
nav li a {
|
|
||||||
display: block;
|
|
||||||
color: white;
|
|
||||||
text-align: center;
|
|
||||||
padding: 20px 20px;
|
|
||||||
text-decoration: none;
|
|
||||||
font-weight: bold;
|
|
||||||
height: 23px;
|
|
||||||
}
|
|
||||||
|
|
||||||
nav li a:hover {
|
|
||||||
color: aqua;
|
|
||||||
}
|
|
||||||
|
|
||||||
.stream-column {
|
|
||||||
float: left;
|
|
||||||
width: 33.33%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.stream-column h2 {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Clear floats after the columns */
|
|
||||||
.stream-row:after {
|
|
||||||
content: "";
|
|
||||||
display: table;
|
|
||||||
clear: both;
|
|
||||||
}
|
|
||||||
|
|
||||||
#lyrics {
|
|
||||||
font-family: sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pageContent {
|
|
||||||
margin: 20px;
|
|
||||||
}
|
|
23
faq.md
23
faq.md
|
@ -1,23 +0,0 @@
|
||||||
---
|
|
||||||
title: FAQ
|
|
||||||
ptitle: Frequently Asked Questions
|
|
||||||
---
|
|
||||||
## What is Hidden Sounds?
|
|
||||||
Hidden Sounds is a group of independent artists joining together to support 100% independent releases.
|
|
||||||
|
|
||||||
The Spotify playlist is updated weekly with new music and there are streams on Twitch every Tuesday and Thursday at 2 PM EST.
|
|
||||||
Tuesday streams are more chill, playing the [Spotify playlist](https://open.spotify.com/user/ac7gpdbrhe2wjmigacy65mdls/playlist/2YDWLcBzTpDNQDfcQyy76b?si=DTkN1vapRIyjCesTGgA99g), while on Thursday member artists host the stream unless it's the monthly roundup. The monthly roundup features songs released in that month.
|
|
||||||
|
|
||||||
## Is it Thursday yet?
|
|
||||||
<span id="thursday">Maybe</span>
|
|
||||||
<script>
|
|
||||||
const d = new Date().getDay();
|
|
||||||
var text="";
|
|
||||||
if(d == 1) text="No, but tomorrow's Tuesday!";
|
|
||||||
else if(d == 2) text="No, but it's Tuesday!";
|
|
||||||
else if(d == 3) text="Not yet, it's tomorrow!";
|
|
||||||
else if(d == 4) text="Yes!";
|
|
||||||
else text="No, but Tuesday is "+(d == 0 ? 9-d-7 : 9-d) //Hehe
|
|
||||||
+" days away!";
|
|
||||||
document.getElementById("thursday").innerText=text;
|
|
||||||
</script>
|
|
BIN
favicon.ico
BIN
favicon.ico
Binary file not shown.
Before Width: | Height: | Size: 121 KiB |
15
humans.txt
15
humans.txt
|
@ -1,15 +0,0 @@
|
||||||
# humanstxt.org/
|
|
||||||
# The humans responsible & technology colophon
|
|
||||||
|
|
||||||
# TEAM
|
|
||||||
|
|
||||||
<name> -- <role> -- <twitter>
|
|
||||||
|
|
||||||
# THANKS
|
|
||||||
|
|
||||||
<name>
|
|
||||||
|
|
||||||
# TECHNOLOGY COLOPHON
|
|
||||||
|
|
||||||
CSS3, HTML5
|
|
||||||
Apache Server Configs, jQuery, Modernizr, Normalize.css
|
|
BIN
icon.png
BIN
icon.png
Binary file not shown.
Before Width: | Height: | Size: 9.4 KiB |
25
index.html
25
index.html
|
@ -1,25 +0,0 @@
|
||||||
---
|
|
||||||
layout: default
|
|
||||||
title: Hidden Sounds
|
|
||||||
ptitle: Hidden Sounds Unofficial (Fan) Website
|
|
||||||
---
|
|
||||||
<div id="popularSongs" class="content">
|
|
||||||
<h2>Popular Songs</h2>
|
|
||||||
<div id="popularContainer">
|
|
||||||
{% assign popularSongs = site.data.songs | sort: 'popularity' | reverse %}
|
|
||||||
{% for song in popularSongs %}
|
|
||||||
{% if forloop.index > 10 %} {% break %} {% endif %}
|
|
||||||
{% include songlist.html %}
|
|
||||||
{% endfor %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="hiddenSongs" class="content">
|
|
||||||
<h2>Hidden Songs</h2>
|
|
||||||
<div id="hiddenContainer">
|
|
||||||
{% assign hiddenSongs = site.data.songs | sort: 'popularity' %}
|
|
||||||
{% for song in hiddenSongs %}
|
|
||||||
{% if forloop.index > 10 %} {% break %} {% endif %}
|
|
||||||
{% include songlist.html %}
|
|
||||||
{% endfor %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
|
@ -1,5 +0,0 @@
|
||||||
# www.robotstxt.org/
|
|
||||||
|
|
||||||
# Allow crawling of all content
|
|
||||||
User-agent: *
|
|
||||||
Disallow:
|
|
|
@ -1,5 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
set -e # halt script on error
|
|
||||||
|
|
||||||
bundle exec jekyll build
|
|
||||||
bundle exec htmlproofer ./_site --checks-to-ignore LinkCheck # Most paths are different in prod
|
|
13
songs.html
13
songs.html
|
@ -1,13 +0,0 @@
|
||||||
---
|
|
||||||
layout: default
|
|
||||||
title: All Songs
|
|
||||||
ptitle: All Songs
|
|
||||||
---
|
|
||||||
<div id="songs" class="content">
|
|
||||||
<div id="container">
|
|
||||||
{% assign songs = site.data.songs | sort: 'popularity' %}
|
|
||||||
{% for song in songs %}
|
|
||||||
{% include songlist.html %}
|
|
||||||
{% endfor %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
46
streams.html
46
streams.html
|
@ -1,46 +0,0 @@
|
||||||
---
|
|
||||||
title: Streams
|
|
||||||
ptitle: Streams
|
|
||||||
---
|
|
||||||
{% assign streamx = site.data.streams | reverse %}
|
|
||||||
<div class="stream-row">
|
|
||||||
<div class="stream-column">
|
|
||||||
<h2>Tuesday Chill</h2>
|
|
||||||
<ul>
|
|
||||||
{% assign streamm = streamx | where: "host", "!Chill" | where: "live", nil %}
|
|
||||||
{% for stream in streamm %}
|
|
||||||
{% include streamlist.html stream=stream %}
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="stream-column">
|
|
||||||
<h2>Hosted Thursday</h2>
|
|
||||||
<ul>
|
|
||||||
{% assign streamm = streamx | where: "live", nil %}
|
|
||||||
{% for stream in streamm %}
|
|
||||||
{% comment %}
|
|
||||||
{% assign day = stream.date | date: "%w" %}
|
|
||||||
{% if day == "4" %}
|
|
||||||
{% include streamlist.html stream=stream %}
|
|
||||||
{% endif %}
|
|
||||||
{% endcomment %}
|
|
||||||
{% assign x = stream.host | slice: 0 %}
|
|
||||||
{% if stream.live == nil and x != '!' %}
|
|
||||||
{% include streamlist.html stream=stream %}
|
|
||||||
{% endif %}
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="stream-column">
|
|
||||||
<h2>Special</h2>
|
|
||||||
<ul>
|
|
||||||
{% assign streamm = streamx %}
|
|
||||||
{% for stream in streamm %}
|
|
||||||
{% assign x = stream.host | slice: 0 %}
|
|
||||||
{% if stream.live or x == '!' and stream.host != "!Chill" %}
|
|
||||||
{% include streamlist.html stream=stream %}
|
|
||||||
{% endif %}
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
Loading…
Reference in a new issue