Added random emoji support to file naming, example: %remoji{10}

This commit is contained in:
Jaex 2019-09-01 16:28:12 +03:00
parent 5795e99a6c
commit ec610f32e0
3 changed files with 15 additions and 2 deletions

View file

@ -137,9 +137,9 @@ public static int RandomAdd(int num, int min, int max)
return num + Random(min, max);
}
public static T RandomPick<T>(params T[] nums)
public static T RandomPick<T>(params T[] array)
{
return nums[Random(nums.Length - 1)];
return array[Random(array.Length - 1)];
}
/// <summary>
@ -190,6 +190,11 @@ public static int CryptoRandom(int min, int max)
}
}
public static T CryptoRandomPick<T>(params T[] array)
{
return array[CryptoRandom(array.Length - 1)];
}
public static float RadianToDegree(float radian)
{
return radian * RadianPI;

View file

@ -59,6 +59,8 @@ public class CodeMenuEntryFilename : CodeMenuEntry
public static readonly CodeMenuEntryFilename guid = new CodeMenuEntryFilename("guid", Resources.ReplCodeMenuEntry_guid_Random_guid, Resources.ReplCodeMenuCategory_Random);
public static readonly CodeMenuEntryFilename radjective = new CodeMenuEntryFilename("radjective", Resources.CodeMenuEntryFilename_RandomAdjective, Resources.ReplCodeMenuCategory_Random);
public static readonly CodeMenuEntryFilename ranimal = new CodeMenuEntryFilename("ranimal", Resources.CodeMenuEntryFilename_RandomAnimal, Resources.ReplCodeMenuCategory_Random);
// TODO: Translate
public static readonly CodeMenuEntryFilename remoji = new CodeMenuEntryFilename("remoji", "Random emoji. Repeat using {n}", Resources.ReplCodeMenuCategory_Random);
public static readonly CodeMenuEntryFilename rf = new CodeMenuEntryFilename("rf", Resources.ReplCodeMenuEntry_rf_Random_line_from_file, Resources.ReplCodeMenuCategory_Random);
public static readonly CodeMenuEntryFilename width = new CodeMenuEntryFilename("width", Resources.ReplCodeMenuEntry_width_Gets_image_width, Resources.ReplCodeMenuCategory_Image);
public static readonly CodeMenuEntryFilename height = new CodeMenuEntryFilename("height", Resources.ReplCodeMenuEntry_height_Gets_image_height, Resources.ReplCodeMenuCategory_Image);

View file

@ -290,6 +290,11 @@ public string Parse(string pattern)
result = result.ReplaceAll(entry.Item1, () => Helpers.RepeatGenerator(entry.Item2, () => Helpers.GetRandomChar(Helpers.Hexadecimal.ToUpperInvariant()).ToString()));
}
foreach (Tuple<string, int> entry in ListEntryWithValue(result, CodeMenuEntryFilename.remoji.ToPrefixString()))
{
result = result.ReplaceAll(entry.Item1, () => Helpers.RepeatGenerator(entry.Item2, () => MathHelpers.CryptoRandomPick(Emoji.Emojis)));
}
result = result.ReplaceAll(CodeMenuEntryFilename.rna.ToPrefixString(), () => Helpers.GetRandomChar(Helpers.Base56).ToString());
result = result.ReplaceAll(CodeMenuEntryFilename.rn.ToPrefixString(), () => Helpers.GetRandomChar(Helpers.Numbers).ToString());
result = result.ReplaceAll(CodeMenuEntryFilename.ra.ToPrefixString(), () => Helpers.GetRandomChar(Helpers.Alphanumeric).ToString());
@ -297,6 +302,7 @@ public string Parse(string pattern)
result = result.ReplaceAll(CodeMenuEntryFilename.rx.ToPrefixString().Replace('x', 'X'), () => Helpers.GetRandomChar(Helpers.Hexadecimal.ToUpperInvariant()).ToString());
result = result.ReplaceAll(CodeMenuEntryFilename.guid.ToPrefixString().ToLowerInvariant(), () => Guid.NewGuid().ToString().ToLowerInvariant());
result = result.ReplaceAll(CodeMenuEntryFilename.guid.ToPrefixString().ToUpperInvariant(), () => Guid.NewGuid().ToString().ToUpperInvariant());
result = result.ReplaceAll(CodeMenuEntryFilename.remoji.ToPrefixString(), () => MathHelpers.CryptoRandomPick(Emoji.Emojis));
if (Type == NameParserType.FolderPath)
{