mirror of
https://github.com/ShareX/ShareX.git
synced 2024-09-30 01:07:21 +13:00
Few %rf related changes
This commit is contained in:
parent
1493f0a017
commit
246cde1fe5
4 changed files with 34 additions and 14 deletions
|
@ -269,7 +269,7 @@ public static string GetAllCharacters()
|
|||
|
||||
public static string GetRandomLine(string text)
|
||||
{
|
||||
string[] lines = text.Lines();
|
||||
string[] lines = text.Trim().Lines();
|
||||
if (lines != null && lines.Length > 0)
|
||||
{
|
||||
return lines[MathHelpers.Random(0, lines.Length - 1)];
|
||||
|
@ -277,16 +277,10 @@ public static string GetRandomLine(string text)
|
|||
return null;
|
||||
}
|
||||
|
||||
public static string GetRandomLineFromFile(string path, bool isPreviewMode = false)
|
||||
public static string GetRandomLineFromFile(string path)
|
||||
{
|
||||
try
|
||||
{
|
||||
return GetRandomLine(File.ReadAllText(path));
|
||||
}
|
||||
catch (Exception e) when (isPreviewMode)
|
||||
{
|
||||
return e.Message;
|
||||
}
|
||||
string text = File.ReadAllText(path);
|
||||
return GetRandomLine(text);
|
||||
}
|
||||
|
||||
public static string GetValidFileName(string fileName, string separator = "")
|
||||
|
|
|
@ -60,7 +60,6 @@ public class CodeMenuEntryFilename : CodeMenuEntry
|
|||
public static readonly CodeMenuEntryFilename radjective = new CodeMenuEntryFilename("radjective", "Random adjective", Resources.ReplCodeMenuCategory_Random);
|
||||
public static readonly CodeMenuEntryFilename ranimal = new CodeMenuEntryFilename("ranimal", "Random animal", 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);
|
||||
public static readonly CodeMenuEntryFilename un = new CodeMenuEntryFilename("un", Resources.ReplCodeMenuEntry_un_User_name, Resources.ReplCodeMenuCategory_Computer);
|
||||
|
|
|
@ -240,9 +240,28 @@ public string Parse(string pattern)
|
|||
result = result.ReplaceAll(CodeMenuEntryFilename.ranimal.ToPrefixString(),
|
||||
() => CultureInfo.InvariantCulture.TextInfo.ToTitleCase(Helpers.GetRandomLine(Resources.animals)));
|
||||
|
||||
foreach (Tuple<string, string[]> entry in ListEntryWithArguments(result, CodeMenuEntryFilename.rf.ToPrefixString(), 1))
|
||||
foreach (Tuple<string, string> entry in ListEntryWithArgument(result, CodeMenuEntryFilename.rf.ToPrefixString()))
|
||||
{
|
||||
result = result.ReplaceAll(entry.Item1, () => Helpers.GetRandomLineFromFile(entry.Item2[0], IsPreviewMode));
|
||||
result = result.ReplaceAll(entry.Item1, () =>
|
||||
{
|
||||
try
|
||||
{
|
||||
string path = entry.Item2;
|
||||
|
||||
if (Helpers.IsTextFile(path))
|
||||
{
|
||||
return Helpers.GetRandomLineFromFile(path);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception("Valid text file path is required.");
|
||||
}
|
||||
}
|
||||
catch (Exception e) when (IsPreviewMode)
|
||||
{
|
||||
return e.Message;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
foreach (Tuple<string, int> entry in ListEntryWithValue(result, CodeMenuEntryFilename.rn.ToPrefixString()))
|
||||
|
@ -310,6 +329,14 @@ private IEnumerable<Tuple<string, string[]>> ListEntryWithArguments(string text,
|
|||
}
|
||||
}
|
||||
|
||||
private IEnumerable<Tuple<string, string>> ListEntryWithArgument(string text, string entry)
|
||||
{
|
||||
foreach (Tuple<string, string[]> o in ListEntryWithArguments(text, entry, 1))
|
||||
{
|
||||
yield return new Tuple<string, string>(o.Item1, o.Item2[0]);
|
||||
}
|
||||
}
|
||||
|
||||
private IEnumerable<Tuple<string, int[]>> ListEntryWithValues(string text, string entry, int elements)
|
||||
{
|
||||
foreach (Tuple<string, string[]> o in ListEntryWithArguments(text, entry, elements))
|
||||
|
|
|
@ -1025,6 +1025,6 @@ Voulez-vous la télécharger ?</value>
|
|||
<value>Diagonale en avant</value>
|
||||
</data>
|
||||
<data name="ReplCodeMenuEntry_rf_Random_line_from_file" xml:space="preserve">
|
||||
<value>Line aléatoire d'un fichier. Utilisez {chemin} pour indiquer le fichier</value>
|
||||
<value>Ligne aléatoire d'un fichier. Utilisez {chemin} pour indiquer le fichier</value>
|
||||
</data>
|
||||
</root>
|
Loading…
Reference in a new issue