diff --git a/Core/Handling/ContextMenuBase.cs b/Core/Handling/ContextMenuBase.cs index 3b273e58..dc587a38 100644 --- a/Core/Handling/ContextMenuBase.cs +++ b/Core/Handling/ContextMenuBase.cs @@ -1,15 +1,14 @@ -using CefSharp; -using System; +using System; using System.IO; using System.Text.RegularExpressions; using System.Windows.Forms; +using CefSharp; using TweetDuck.Core.Bridge; using TweetDuck.Core.Controls; using TweetDuck.Core.Utils; namespace TweetDuck.Core.Handling{ abstract class ContextMenuBase : IContextMenuHandler{ - private static readonly Lazy<Regex> RegexTwitterAccount = new Lazy<Regex>(() => new Regex(@"^https?://twitter\.com/([^/]+)/?$", RegexOptions.Compiled), false); protected static readonly bool HasDevTools = File.Exists(Path.Combine(Program.ProgramPath, "devtools_resources.pak")); private static TwitterUtils.ImageQuality ImageQuality => Program.UserConfig.TwitterImageQuality; @@ -48,7 +47,7 @@ public virtual void OnBeforeContextMenu(IWebBrowser browserControl, IBrowser bro } if (parameters.TypeFlags.HasFlag(ContextMenuType.Link) && !parameters.UnfilteredLinkUrl.EndsWith("tweetdeck.twitter.com/#", StringComparison.Ordinal) && !hasTweetImage){ - if (RegexTwitterAccount.Value.IsMatch(parameters.UnfilteredLinkUrl)){ + if (TwitterUtils.RegexAccount.IsMatch(parameters.UnfilteredLinkUrl)){ model.AddItem((CefMenuCommand)MenuOpenLinkUrl, "Open account in browser"); model.AddItem((CefMenuCommand)MenuCopyLinkUrl, "Copy account address"); model.AddItem((CefMenuCommand)MenuCopyUsername, "Copy account username"); @@ -101,7 +100,7 @@ public virtual bool OnContextMenuCommand(IWebBrowser browserControl, IBrowser br break; case MenuCopyUsername: - Match match = RegexTwitterAccount.Value.Match(parameters.UnfilteredLinkUrl); + Match match = TwitterUtils.RegexAccount.Match(parameters.UnfilteredLinkUrl); SetClipboardText(match.Success ? match.Groups[1].Value : parameters.UnfilteredLinkUrl); break; diff --git a/Core/Utils/TwitterUtils.cs b/Core/Utils/TwitterUtils.cs index 5a469ef4..298fd1b7 100644 --- a/Core/Utils/TwitterUtils.cs +++ b/Core/Utils/TwitterUtils.cs @@ -2,6 +2,7 @@ using CefSharp; using System.Drawing; using System.IO; +using System.Text.RegularExpressions; using System.Windows.Forms; using TweetDuck.Core.Other; @@ -11,6 +12,9 @@ static class TwitterUtils{ public static readonly Color BackgroundColor = Color.FromArgb(28, 99, 153); public const string BackgroundColorFix = "let e=document.createElement('style');document.head.appendChild(e);e.innerHTML='body::before{background:#1c6399!important}'"; + + private static readonly Lazy<Regex> RegexAccountLazy = new Lazy<Regex>(() => new Regex(@"^https?://twitter\.com/([^/]+)/?$", RegexOptions.Compiled), false); + public static Regex RegexAccount => RegexAccountLazy.Value; public static readonly string[] DictionaryWords = { "tweetdeck", "TweetDeck", "tweetduck", "TweetDuck", "TD"