Merge pull request #24 from Kwoth/dev

Dev
This commit is contained in:
miraai 2016-08-05 19:47:20 +02:00 committed by GitHub
commit 91416613c0
9 changed files with 114 additions and 70 deletions

View File

@ -7,7 +7,9 @@ using System;
using System.Collections.Concurrent; using System.Collections.Concurrent;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
#if NADEKO_RELEASE
using System.IO; using System.IO;
#endif
using System.Linq; using System.Linq;
using System.Net.Http; using System.Net.Http;
using System.Reflection; using System.Reflection;
@ -227,6 +229,7 @@ namespace NadekoBot
DateTime dt; DateTime dt;
if (!commandTracker.TryGetValue(e.Message.Id, out dt)) if (!commandTracker.TryGetValue(e.Message.Id, out dt))
return; return;
#if NADEKO_RELEASE
try try
{ {
if (e is CommandErrorEventArgs) if (e is CommandErrorEventArgs)
@ -248,6 +251,7 @@ namespace NadekoBot
} }
} }
catch { } catch { }
#endif
} }
private async void StatsCollector_RanCommand(object sender, CommandEventArgs e) private async void StatsCollector_RanCommand(object sender, CommandEventArgs e)

View File

@ -61,10 +61,31 @@ namespace NadekoBot.Classes
IEnumerable<KeyValuePair<string, string>> headers = null, IEnumerable<KeyValuePair<string, string>> headers = null,
RequestHttpMethod method = RequestHttpMethod.Get) RequestHttpMethod method = RequestHttpMethod.Get)
{ {
if (string.IsNullOrWhiteSpace(url))
using (var streamReader = new StreamReader(await GetResponseStreamAsync(url, headers, method).ConfigureAwait(false))) throw new ArgumentNullException(nameof(url));
var cl = new HttpClient();
cl.DefaultRequestHeaders.Clear();
switch (method)
{ {
return await streamReader.ReadToEndAsync().ConfigureAwait(false); case RequestHttpMethod.Get:
if (headers != null)
{
foreach (var header in headers)
{
cl.DefaultRequestHeaders.TryAddWithoutValidation(header.Key, header.Value);
}
}
return await cl.GetStringAsync(url).ConfigureAwait(false);
case RequestHttpMethod.Post:
FormUrlEncodedContent formContent = null;
if (headers != null)
{
formContent = new FormUrlEncodedContent(headers);
}
var message = await cl.PostAsync(url, formContent).ConfigureAwait(false);
return await message.Content.ReadAsStringAsync().ConfigureAwait(false);
default:
throw new NotImplementedException("That type of request is unsupported.");
} }
} }

Binary file not shown.

View File

@ -7,31 +7,32 @@ using System;
using System.Collections.Concurrent; using System.Collections.Concurrent;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Timers;
namespace NadekoBot.Modules.Searches.Commands namespace NadekoBot.Modules.Searches.Commands
{ {
internal class StreamNotifications : DiscordCommand internal class StreamNotifications : DiscordCommand
{ {
private readonly Timer checkTimer = new Timer
{
Interval = new TimeSpan(0, 0, 15).TotalMilliseconds,
};
private ConcurrentDictionary<string, Tuple<bool, string>> cachedStatuses = new ConcurrentDictionary<string, Tuple<bool, string>>(); private ConcurrentDictionary<string, Tuple<bool, string>> cachedStatuses = new ConcurrentDictionary<string, Tuple<bool, string>>();
private bool FirstPass { get; set; } = true;
public StreamNotifications(DiscordModule module) : base(module) public StreamNotifications(DiscordModule module) : base(module)
{ {
//start checking only after ready, because we need all servers to be initialized
checkTimer.Elapsed += async (s, e) => NadekoBot.OnReady += () => Task.Run(async () =>
{
while (true)
{ {
cachedStatuses.Clear(); cachedStatuses.Clear();
try try
{ {
var streams = SpecificConfigurations.Default.AllConfigs.SelectMany(c => c.ObservingStreams); var streams = SpecificConfigurations.Default.AllConfigs.SelectMany(c => c.ObservingStreams);
if (!streams.Any()) return; if (!streams.Any()) return;
#if NADEKO_RELEASE
var clr = Console.ForegroundColor;
Console.ForegroundColor = ConsoleColor.Blue;
Console.WriteLine($"Getting {streams.Count()} streams.");
Console.ForegroundColor = clr;
#endif
foreach (var stream in streams) foreach (var stream in streams)
{ {
Tuple<bool, string> data; Tuple<bool, string> data;
@ -47,6 +48,8 @@ namespace NadekoBot.Modules.Searches.Commands
if (data.Item1 != stream.LastStatus) if (data.Item1 != stream.LastStatus)
{ {
stream.LastStatus = data.Item1; stream.LastStatus = data.Item1;
if (FirstPass)
continue;
var server = NadekoBot.Client.GetServer(stream.ServerId); var server = NadekoBot.Client.GetServer(stream.ServerId);
var channel = server?.GetChannel(stream.ChannelId); var channel = server?.GetChannel(stream.ChannelId);
if (channel == null) if (channel == null)
@ -66,12 +69,21 @@ namespace NadekoBot.Modules.Searches.Commands
await channel.SendMessage(msg).ConfigureAwait(false); await channel.SendMessage(msg).ConfigureAwait(false);
} }
} }
FirstPass = false;
#if NADEKO_RELEASE
clr = Console.ForegroundColor;
Console.ForegroundColor = ConsoleColor.Blue;
Console.WriteLine($"Done getting streams.");
Console.ForegroundColor = clr;
#endif
} }
catch { } catch { }
await ConfigHandler.SaveConfig().ConfigureAwait(false); finally
}; {
//start checking only after ready, because we need all servers to be initialized await Task.Delay(TimeSpan.FromSeconds(15));
NadekoBot.OnReady += checkTimer.Start; }
}
});
} }
private async Task<Tuple<bool, string>> GetStreamStatus(StreamNotificationConfig stream, bool checkCache = true) private async Task<Tuple<bool, string>> GetStreamStatus(StreamNotificationConfig stream, bool checkCache = true)

View File

@ -300,10 +300,11 @@ $@"🌍 **Weather for** 【{obj["target"]}】
{ {
var items = JObject.Parse(res); var items = JObject.Parse(res);
var sb = new System.Text.StringBuilder(); var sb = new System.Text.StringBuilder();
sb.AppendLine($"`Term:` {items["list"][0]["word"].ToString()}"); var item = items["list"][0];
sb.AppendLine($"`Definition:` {items["list"][0]["definition"].ToString()}"); sb.AppendLine($"`Term:` {item["word"].ToString()}");
sb.Append($"`Link:` <{await items["list"][0]["permalink"].ToString().ShortenUrl().ConfigureAwait(false)}>"); sb.AppendLine($"`Definition:` {item["definition"].ToString()}");
await e.Channel.SendMessage(sb.ToString()); sb.Append($"`Link:` <{item["permalink"].ToString()}>");
await e.Channel.SendMessage(sb.ToString()).ConfigureAwait(false);
} }
catch catch
{ {

View File

@ -117,7 +117,7 @@ namespace NadekoBot
Client = new DiscordClient(new DiscordConfigBuilder() Client = new DiscordClient(new DiscordConfigBuilder()
{ {
MessageCacheSize = 10, MessageCacheSize = 10,
ConnectionTimeout = 180000, ConnectionTimeout = 200000,
LogLevel = LogSeverity.Warning, LogLevel = LogSeverity.Warning,
LogHandler = (s, e) => LogHandler = (s, e) =>
Console.WriteLine($"Severity: {e.Severity}" + Console.WriteLine($"Severity: {e.Severity}" +
@ -197,7 +197,7 @@ namespace NadekoBot
return; return;
} }
#if NADEKO_RELEASE #if NADEKO_RELEASE
await Task.Delay(150000).ConfigureAwait(false); await Task.Delay(180000).ConfigureAwait(false);
#else #else
await Task.Delay(1000).ConfigureAwait(false); await Task.Delay(1000).ConfigureAwait(false);
#endif #endif
@ -228,6 +228,12 @@ namespace NadekoBot
if (string.IsNullOrWhiteSpace(request.Content)) if (string.IsNullOrWhiteSpace(request.Content))
e.Cancel = true; e.Cancel = true;
}; };
#if NADEKO_RELEASE
Client.ClientAPI.SentRequest += (s, e) =>
{
Console.WriteLine($"[Request of type {e.Request.GetType()} sent in {e.Milliseconds}]");
};
#endif
PermissionsHandler.Initialize(); PermissionsHandler.Initialize();
NadekoBot.Ready = true; NadekoBot.Ready = true;
NadekoBot.OnReady(); NadekoBot.OnReady();

View File

@ -13,6 +13,9 @@
<FileAlignment>512</FileAlignment> <FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<IsWebBootstrapper>false</IsWebBootstrapper> <IsWebBootstrapper>false</IsWebBootstrapper>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<TargetFrameworkProfile />
<PublishUrl>C:\Users\Master\Desktop\NadekoBot\</PublishUrl> <PublishUrl>C:\Users\Master\Desktop\NadekoBot\</PublishUrl>
<Install>true</Install> <Install>true</Install>
<InstallFrom>Disk</InstallFrom> <InstallFrom>Disk</InstallFrom>
@ -30,9 +33,6 @@
<UseApplicationTrust>false</UseApplicationTrust> <UseApplicationTrust>false</UseApplicationTrust>
<PublishWizardCompleted>true</PublishWizardCompleted> <PublishWizardCompleted>true</PublishWizardCompleted>
<BootstrapperEnabled>true</BootstrapperEnabled> <BootstrapperEnabled>true</BootstrapperEnabled>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<TargetFrameworkProfile />
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget> <PlatformTarget>AnyCPU</PlatformTarget>
@ -161,6 +161,9 @@
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>lib\ScaredFingers.UnitsConversion.dll</HintPath> <HintPath>lib\ScaredFingers.UnitsConversion.dll</HintPath>
</Reference> </Reference>
<Reference Include="sqlite3">
<HintPath>Classes\lib\sqlite3.dll</HintPath>
</Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Drawing" /> <Reference Include="System.Drawing" />
<Reference Include="System.Net" /> <Reference Include="System.Net" />
@ -299,8 +302,12 @@
<Compile Include="Classes\NadekoStats.cs" /> <Compile Include="Classes\NadekoStats.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="App.config" /> <None Include="App.config">
<None Include="packages.config" /> <SubType>Designer</SubType>
</None>
<None Include="packages.config">
<SubType>Designer</SubType>
</None>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.5.2"> <BootstrapperPackage Include=".NETFramework,Version=v4.5.2">
@ -553,9 +560,7 @@
<PropertyGroup> <PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup> </PropertyGroup>
<Error Condition="!Exists('..\packages\SQLitePCL.native.sqlite3.v110_xp.0.9.2\build\SQLitePCL.native.sqlite3.v110_xp.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\SQLitePCL.native.sqlite3.v110_xp.0.9.2\build\SQLitePCL.native.sqlite3.v110_xp.targets'))" />
</Target> </Target>
<Import Project="..\packages\SQLitePCL.native.sqlite3.v110_xp.0.9.2\build\SQLitePCL.native.sqlite3.v110_xp.targets" Condition="Exists('..\packages\SQLitePCL.native.sqlite3.v110_xp.0.9.2\build\SQLitePCL.native.sqlite3.v110_xp.targets')" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- 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. Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild"> <Target Name="BeforeBuild">

View File

@ -11,11 +11,6 @@
<package id="Newtonsoft.Json" version="8.0.3" targetFramework="net46" /> <package id="Newtonsoft.Json" version="8.0.3" targetFramework="net46" />
<package id="RestSharp" version="105.2.3" targetFramework="net452" /> <package id="RestSharp" version="105.2.3" targetFramework="net452" />
<package id="sqlite-net" version="1.0.8" targetFramework="net452" /> <package id="sqlite-net" version="1.0.8" targetFramework="net452" />
<package id="SQLitePCL.bundle_green" version="0.9.2" targetFramework="net452" />
<package id="SQLitePCL.native.sqlite3.v110_xp" version="0.9.2" targetFramework="net452" />
<package id="SQLitePCL.plugin.sqlite3.net45" version="0.9.2" targetFramework="net452" />
<package id="SQLitePCL.raw" version="0.9.2" targetFramework="net452" />
<package id="System.Data.SQLite" version="1.0.102.0" targetFramework="net452" />
<package id="taglib" version="2.1.0.0" targetFramework="net452" /> <package id="taglib" version="2.1.0.0" targetFramework="net452" />
<package id="VideoLibrary" version="1.3.3" targetFramework="net452" /> <package id="VideoLibrary" version="1.3.3" targetFramework="net452" />
</packages> </packages>

@ -1 +1 @@
Subproject commit e3fd2b99a4f11954e508d6f24a0b592efa5f6390 Subproject commit f90cf4ae5c9fd3c049663f46dcbf366412caba8b