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