udpated code
Signed-off-by: Matt Bruce <mbrucedogs@gmail.com>
This commit is contained in:
parent
d40ab93df2
commit
c2ae664d80
@ -49,7 +49,7 @@ namespace BillboardPlaylistUpdater
|
||||
else
|
||||
songList = new List<SongList>();
|
||||
|
||||
RunTest();
|
||||
//RunTest();
|
||||
//update Shared Charts and save
|
||||
UpdateCurrentCharts();
|
||||
client.Set(firepath, songList);
|
||||
@ -76,7 +76,7 @@ namespace BillboardPlaylistUpdater
|
||||
|
||||
static void UpdateCurrentCharts()
|
||||
{
|
||||
SongList hot100 = DownloadHot100("Hot 100", "https://www.billboard.com/charts/hot-100");
|
||||
SongList hot100 = Download("Hot 100", "https://www.billboard.com/charts/hot-100");
|
||||
SongList pop = Download("Pop-Songs", "https://www.billboard.com/charts/pop-songs");
|
||||
SongList rock = Download("Rock-Songs", "https://www.billboard.com/charts/rock-songs");
|
||||
SongList country = Download("Country-Songs", "https://www.billboard.com/charts/country-songs");
|
||||
@ -187,36 +187,33 @@ namespace BillboardPlaylistUpdater
|
||||
var parser = new HtmlParser();
|
||||
var document = parser.Parse(html);
|
||||
//2-?
|
||||
var articles = document.QuerySelectorAll("div.chart-list-item ");
|
||||
var articles = document.QuerySelectorAll("ul.o-chart-results-list-row");
|
||||
if (articles.Count() > 0)
|
||||
{
|
||||
Console.WriteLine("Found " + articles.Count() + " Songs");
|
||||
songs = new List<SongListSong>();
|
||||
}
|
||||
|
||||
////1
|
||||
//var number1artist = document.QuerySelectorAll("div.chart-number-one__artist ").First().InnerHtml.TrimStart().TrimEnd();
|
||||
//var number1title = document.QuerySelectorAll("div.chart-number-one__title ").First().InnerHtml.TrimStart().TrimEnd();
|
||||
//var number1 = new SongListSong();
|
||||
//number1.Artist = number1artist;
|
||||
//number1.Title = number1title;
|
||||
//number1.Position = 1;
|
||||
//if (number1artist.Contains("href"))
|
||||
//{
|
||||
// var start = number1artist.IndexOf(">") + 1;
|
||||
// var end = number1artist.IndexOf("<",1) - 1;
|
||||
// var art = number1artist.Substring(start, end - start);
|
||||
// number1.Artist = art.TrimStart().TrimEnd();
|
||||
//}
|
||||
//songs.Add(number1);
|
||||
|
||||
|
||||
var i = 1;
|
||||
foreach (var article in articles)
|
||||
{
|
||||
var title = article.Attributes["data-title"].Value;
|
||||
var artist = article.Attributes["data-artist"].Value;
|
||||
var position = article.Attributes["data-rank"].Value;
|
||||
var title = "none"; //article.Attributes["data-title"].Value;
|
||||
var artist = "none";//article.Attributes["data-artist"].Value;
|
||||
var position = i; //article.Attributes["data-rank"].Value;
|
||||
|
||||
var listItems = article.QuerySelectorAll("li.o-chart-results-list__item");
|
||||
foreach(var listItem in listItems)
|
||||
{;
|
||||
var h3 = listItem.QuerySelectorAll("h3");
|
||||
var span = listItem.QuerySelectorAll("span");
|
||||
if (h3.Length > 0 && span.Length > 0)
|
||||
{
|
||||
title = h3[0].InnerHtml.Trim();
|
||||
artist = span[0].InnerHtml.Trim();
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
var song = new SongListSong();
|
||||
song.Artist = artist;
|
||||
song.Title = title;
|
||||
@ -254,7 +251,7 @@ namespace BillboardPlaylistUpdater
|
||||
var parser = new HtmlParser();
|
||||
var document = parser.Parse(html);
|
||||
//2-?
|
||||
var cs = "data-charts=\"";
|
||||
var cs = "chart-results-list=\"";
|
||||
var ce = "data-icons=\"https:";
|
||||
var ics = html.IndexOf(cs) + cs.Length;
|
||||
var ice = html.IndexOf(ce);
|
||||
|
||||
@ -21,6 +21,8 @@ namespace Herse.Models
|
||||
[JsonProperty("path")]
|
||||
public string Path { get; set; }
|
||||
|
||||
[JsonProperty("guid")]
|
||||
public string Guid { get; set; }
|
||||
|
||||
[JsonProperty("disabled")]
|
||||
public bool Disabled { get; set; } = false;
|
||||
|
||||
@ -74,7 +74,7 @@ namespace KaraokePlayer
|
||||
songInfoForm.Show();
|
||||
if(controller.Settings == null || controller.Settings.AutoAdvance)
|
||||
{
|
||||
await Task.Delay(TimeSpan.FromSeconds(10));
|
||||
await Task.Delay(TimeSpan.FromSeconds(5));
|
||||
player.play();
|
||||
controller.SetState(PlayerState.Playing);
|
||||
songInfoForm.Hide();
|
||||
|
||||
@ -11,12 +11,22 @@ using System.Threading.Tasks;
|
||||
using System.IO.Compression;
|
||||
using System.Configuration;
|
||||
using Newtonsoft.Json;
|
||||
using System.Security.Cryptography;
|
||||
|
||||
namespace SongCrawler
|
||||
{
|
||||
|
||||
class Program
|
||||
{
|
||||
private static Guid GuidFromString(string input)
|
||||
{
|
||||
using (MD5 md5 = MD5.Create())
|
||||
{
|
||||
byte[] hash = md5.ComputeHash(Encoding.Default.GetBytes(input));
|
||||
return new Guid(hash);
|
||||
}
|
||||
}
|
||||
|
||||
static void Main(string[] args)
|
||||
{
|
||||
if (args.Count() == 3)
|
||||
@ -33,6 +43,7 @@ namespace SongCrawler
|
||||
{
|
||||
//string [] test = { "mbrucedogs", "z://" };
|
||||
//args = test;
|
||||
var debug = false;
|
||||
if (args.Length != 2)
|
||||
{
|
||||
Console.WriteLine("usage: songcrawler partyid songspath");
|
||||
@ -96,6 +107,10 @@ namespace SongCrawler
|
||||
{
|
||||
Console.WriteLine(ex.Message);
|
||||
}
|
||||
if (debug && i > 1000)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//sync all favorite, history, disabled
|
||||
@ -128,9 +143,16 @@ namespace SongCrawler
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
client.Set(songsPath, songs);
|
||||
|
||||
//string test = string.Format("controllers/{0}/testsongs", controller);
|
||||
//Dictionary<string, Song> testSongs = new Dictionary<string, Song>();
|
||||
//foreach (Song s in songs)
|
||||
//{
|
||||
// testSongs[s.Guid] = s;
|
||||
//}
|
||||
//client.Set(test, testSongs);
|
||||
|
||||
var created = songs.Select(s => new CreatedSong(File.GetCreationTime(s.Path), s)).ToList();
|
||||
var first200 = created.Where(s => s.created != null).OrderByDescending(s => s.created).Take(200);
|
||||
var added = first200.Select(s => new PathOnly(path: s.song.Path)).ToList();
|
||||
@ -357,6 +379,7 @@ namespace SongCrawler
|
||||
}
|
||||
CheckTitle(song);
|
||||
song.Path = filepath;
|
||||
song.Guid = GuidFromString(filepath).ToString();
|
||||
return song;
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user