refactor: remove some unused code
This commit is contained in:
		| @@ -18,7 +18,7 @@ public record GatewayStatusUpdate | ||||
|     } | ||||
|  | ||||
|     public ulong? Since { get; init; } | ||||
|     public ActivityPartial[]? Activities { get; init; } | ||||
|     public Activity[]? Activities { get; init; } | ||||
|     public UserStatus Status { get; init; } | ||||
|     public bool Afk { get; init; } | ||||
| } | ||||
| @@ -1,22 +1,17 @@ | ||||
| namespace Myriad.Types | ||||
| namespace Myriad.Types; | ||||
|  | ||||
| public record Activity | ||||
| { | ||||
|     public record Activity: ActivityPartial | ||||
|     { | ||||
|     } | ||||
|  | ||||
|     public record ActivityPartial | ||||
|     { | ||||
|         public string Name { get; init; } | ||||
|         public ActivityType Type { get; init; } | ||||
|         public string? Url { get; init; } | ||||
|     } | ||||
|  | ||||
|     public enum ActivityType | ||||
|     { | ||||
|         Game = 0, | ||||
|         Streaming = 1, | ||||
|         Listening = 2, | ||||
|         Custom = 4, | ||||
|         Competing = 5 | ||||
|     } | ||||
|     public string Name { get; init; } | ||||
|     public ActivityType Type { get; init; } | ||||
|     public string? Url { get; init; } | ||||
| } | ||||
|  | ||||
| public enum ActivityType | ||||
| { | ||||
|     Game = 0, | ||||
|     Streaming = 1, | ||||
|     Listening = 2, | ||||
|     Custom = 4, | ||||
|     Competing = 5 | ||||
| } | ||||
| @@ -1,6 +0,0 @@ | ||||
| namespace Myriad.Types | ||||
| { | ||||
|     public static class Permissions | ||||
|     { | ||||
|     } | ||||
| } | ||||
| @@ -122,7 +122,7 @@ public class Bot | ||||
|                 { | ||||
|                     Activities = new[] | ||||
|                     { | ||||
|                         new ActivityPartial {Name = "Restarting... (please wait)", Type = ActivityType.Game} | ||||
|                         new Activity {Name = "Restarting... (please wait)", Type = ActivityType.Game} | ||||
|                     }, | ||||
|                     Status = GatewayStatusUpdate.UserStatus.Idle | ||||
|                 }))); | ||||
| @@ -256,7 +256,7 @@ public class Bot | ||||
|                 { | ||||
|                     Activities = new[] | ||||
|                     { | ||||
|                         new ActivityPartial | ||||
|                         new Activity | ||||
|                         { | ||||
|                             Name = $"pk;help | in {totalGuilds:N0} servers | shard #{shard.ShardId}", | ||||
|                             Type = ActivityType.Game, | ||||
|   | ||||
| @@ -1,88 +0,0 @@ | ||||
| #nullable enable | ||||
| using System; | ||||
| using System.Text; | ||||
|  | ||||
| namespace PluralKit.Core | ||||
| { | ||||
|     public class QueryBuilder | ||||
|     { | ||||
|         private readonly string? _conflictField; | ||||
|         private readonly string? _condition; | ||||
|         private readonly StringBuilder _insertFragment = new StringBuilder(); | ||||
|         private readonly StringBuilder _valuesFragment = new StringBuilder(); | ||||
|         private readonly StringBuilder _updateFragment = new StringBuilder(); | ||||
|         private bool _firstInsert = true; | ||||
|         private bool _firstUpdate = true; | ||||
|         public QueryType Type { get; } | ||||
|         public string Table { get; } | ||||
|  | ||||
|         private QueryBuilder(QueryType type, string table, string? conflictField, string? condition) | ||||
|         { | ||||
|             Type = type; | ||||
|             Table = table; | ||||
|             _conflictField = conflictField; | ||||
|             _condition = condition; | ||||
|         } | ||||
|  | ||||
|         public static QueryBuilder Insert(string table) => new QueryBuilder(QueryType.Insert, table, null, null); | ||||
|         public static QueryBuilder Update(string table, string condition) => new QueryBuilder(QueryType.Update, table, null, condition); | ||||
|         public static QueryBuilder Upsert(string table, string conflictField) => new QueryBuilder(QueryType.Upsert, table, conflictField, null); | ||||
|  | ||||
|         public QueryBuilder Constant(string fieldName, string paramName) | ||||
|         { | ||||
|             if (_firstInsert) _firstInsert = false; | ||||
|             else | ||||
|             { | ||||
|                 _insertFragment.Append(", "); | ||||
|                 _valuesFragment.Append(", "); | ||||
|             } | ||||
|  | ||||
|             _insertFragment.Append(fieldName); | ||||
|             _valuesFragment.Append(paramName); | ||||
|             return this; | ||||
|         } | ||||
|  | ||||
|         public QueryBuilder Variable(string fieldName, string paramName) | ||||
|         { | ||||
|             Constant(fieldName, paramName); | ||||
|  | ||||
|             if (_firstUpdate) _firstUpdate = false; | ||||
|             else _updateFragment.Append(", "); | ||||
|  | ||||
|             _updateFragment.Append(fieldName); | ||||
|             _updateFragment.Append(" = "); | ||||
|             _updateFragment.Append(paramName); | ||||
|             return this; | ||||
|         } | ||||
|  | ||||
|         public string Build(string? suffix = null) | ||||
|         { | ||||
|             if (_firstInsert) | ||||
|                 throw new ArgumentException("No fields have been added to the query."); | ||||
|  | ||||
|             StringBuilder query = new StringBuilder(Type switch | ||||
|             { | ||||
|                 QueryType.Insert => $"insert into {Table} ({_insertFragment}) values ({_valuesFragment})", | ||||
|                 QueryType.Upsert => $"insert into {Table} ({_insertFragment}) values ({_valuesFragment}) on conflict ({_conflictField}) do update set {_updateFragment}", | ||||
|                 QueryType.Update => $"update {Table} set {_updateFragment}", | ||||
|                 _ => throw new ArgumentOutOfRangeException($"Unknown query type {Type}") | ||||
|             }); | ||||
|  | ||||
|             if (Type == QueryType.Update && _condition != null) | ||||
|                 query.Append($" where {_condition}"); | ||||
|  | ||||
|             if (!string.IsNullOrEmpty(suffix)) | ||||
|                 query.Append($" {suffix}"); | ||||
|             query.Append(";"); | ||||
|  | ||||
|             return query.ToString(); | ||||
|         } | ||||
|  | ||||
|         public enum QueryType | ||||
|         { | ||||
|             Insert, | ||||
|             Update, | ||||
|             Upsert | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -1,41 +0,0 @@ | ||||
| using Dapper; | ||||
|  | ||||
| namespace PluralKit.Core; | ||||
|  | ||||
| public class UpdateQueryBuilder | ||||
| { | ||||
|     private readonly DynamicParameters _params = new(); | ||||
|     private readonly QueryBuilder _qb; | ||||
|  | ||||
|     private UpdateQueryBuilder(QueryBuilder qb) | ||||
|     { | ||||
|         _qb = qb; | ||||
|     } | ||||
|  | ||||
|     public static UpdateQueryBuilder Insert(string table) => new(QueryBuilder.Insert(table)); | ||||
|  | ||||
|     public static UpdateQueryBuilder Update(string table, string condition) => | ||||
|         new(QueryBuilder.Update(table, condition)); | ||||
|  | ||||
|     public static UpdateQueryBuilder Upsert(string table, string conflictField) => | ||||
|         new(QueryBuilder.Upsert(table, conflictField)); | ||||
|  | ||||
|     public UpdateQueryBuilder WithConstant<T>(string name, T value) | ||||
|     { | ||||
|         _params.Add(name, value); | ||||
|         _qb.Constant(name, $"@{name}"); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public UpdateQueryBuilder With<T>(string columnName, T value) | ||||
|     { | ||||
|         _params.Add(columnName, value); | ||||
|         _qb.Variable(columnName, $"@{columnName}"); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public UpdateQueryBuilder With<T>(string columnName, Partial<T> partialValue) => | ||||
|         partialValue.IsPresent ? With(columnName, partialValue.Value) : this; | ||||
|  | ||||
|     public (string Query, DynamicParameters Parameters) Build(string suffix = "") => (_qb.Build(suffix), _params); | ||||
| } | ||||
| @@ -75,12 +75,4 @@ public static class PartialExt | ||||
|  | ||||
|     public static Partial<TOut> Map<TIn, TOut>(this Partial<TIn> pt, Func<TIn, TOut> fn) => | ||||
|         pt.IsPresent ? Partial<TOut>.Present(fn.Invoke(pt.Value)) : Partial<TOut>.Absent; | ||||
|  | ||||
|     public static void Apply<T>(this Partial<T> pt, DynamicParameters bag, QueryBuilder qb, string fieldName) | ||||
|     { | ||||
|         if (!pt.IsPresent) return; | ||||
|  | ||||
|         bag.Add(fieldName, pt.Value); | ||||
|         qb.Variable(fieldName, $"@{fieldName}"); | ||||
|     } | ||||
| } | ||||
| @@ -1,39 +0,0 @@ | ||||
| using System; | ||||
| using System.Threading; | ||||
| using System.Threading.Tasks; | ||||
|  | ||||
| namespace PluralKit.Core | ||||
| { | ||||
|     public static class TaskUtils | ||||
|     { | ||||
|         public static async Task CatchException(this Task task, Action<Exception> handler) | ||||
|         { | ||||
|             try | ||||
|             { | ||||
|                 await task; | ||||
|             } | ||||
|             catch (Exception e) | ||||
|             { | ||||
|                 handler(e); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         public static async Task<TResult> TimeoutAfter<TResult>(this Task<TResult> task, TimeSpan? timeout) | ||||
|         { | ||||
|             // https://stackoverflow.com/a/22078975 | ||||
|             using (var timeoutCancellationTokenSource = new CancellationTokenSource()) | ||||
|             { | ||||
|                 var completedTask = await Task.WhenAny(task, Task.Delay(timeout ?? TimeSpan.FromMilliseconds(-1), timeoutCancellationTokenSource.Token)); | ||||
|                 if (completedTask == task) | ||||
|                 { | ||||
|                     timeoutCancellationTokenSource.Cancel(); | ||||
|                     return await task;  // Very important in order to propagate exceptions | ||||
|                 } | ||||
|                 else | ||||
|                 { | ||||
|                     throw new TimeoutException(); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user