1
0
mirror of https://github.com/chylex/TweetDuck.git synced 2025-05-01 08:34:11 +02:00

Work on abstracting app logic into libraries

This commit is contained in:
chylex 2022-01-23 12:00:06 +01:00
parent 12ec8baf5c
commit 51d2ec92ca
Signed by: chylex
GPG Key ID: 4DE42C8F19A80548
5 changed files with 13 additions and 12 deletions

View File

@ -27,7 +27,7 @@ private void InitializeComponent() {
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = TweetDuck.Browser.TweetDeckBrowser.BackgroundColor; this.BackColor = TweetLib.Core.Features.TweetDeck.TweetDeckBrowser.BackgroundColor;
this.ClientSize = new System.Drawing.Size(1008, 730); this.ClientSize = new System.Drawing.Size(1008, 730);
this.Icon = Properties.Resources.icon; this.Icon = Properties.Resources.icon;
this.Location = TweetDuck.Controls.ControlExtensions.InvisibleLocation; this.Location = TweetDuck.Controls.ControlExtensions.InvisibleLocation;

View File

@ -1,21 +1,15 @@
using CefSharp; using CefSharp;
using CefSharp.Handler; using CefSharp.Handler;
using TweetLib.Core; using TweetLib.Core;
using TweetLib.Utils.Static; using TweetLib.Core.Features.Twitter;
namespace TweetDuck.Browser.Handling { namespace TweetDuck.Browser.Handling {
sealed class CustomLifeSpanHandler : LifeSpanHandler { sealed class CustomLifeSpanHandler : LifeSpanHandler {
private static bool IsPopupAllowed(string url) {
return url.StartsWithOrdinal("https://twitter.com/teams/authorize?") ||
url.StartsWithOrdinal("https://accounts.google.com/") ||
url.StartsWithOrdinal("https://appleid.apple.com/");
}
public static bool HandleLinkClick(WindowOpenDisposition targetDisposition, string targetUrl) { public static bool HandleLinkClick(WindowOpenDisposition targetDisposition, string targetUrl) {
switch (targetDisposition) { switch (targetDisposition) {
case WindowOpenDisposition.NewBackgroundTab: case WindowOpenDisposition.NewBackgroundTab:
case WindowOpenDisposition.NewForegroundTab: case WindowOpenDisposition.NewForegroundTab:
case WindowOpenDisposition.NewPopup when !IsPopupAllowed(targetUrl): case WindowOpenDisposition.NewPopup when !TwitterUrls.IsAllowedPopupUrl(targetUrl):
case WindowOpenDisposition.NewWindow: case WindowOpenDisposition.NewWindow:
App.SystemHandler.OpenBrowser(targetUrl); App.SystemHandler.OpenBrowser(targetUrl);
return true; return true;

View File

@ -17,8 +17,6 @@
namespace TweetDuck.Browser { namespace TweetDuck.Browser {
sealed class TweetDeckBrowser : IDisposable { sealed class TweetDeckBrowser : IDisposable {
public static readonly Color BackgroundColor = Color.FromArgb(28, 99, 153);
public bool Ready => browserComponent.Ready; public bool Ready => browserComponent.Ready;
public bool Enabled { public bool Enabled {
@ -54,7 +52,7 @@ public TweetDeckBrowser(FormBrowser owner, PluginManager pluginManager, ITweetDe
}; };
// ReSharper disable once PossiblyImpureMethodCallOnReadonlyVariable // ReSharper disable once PossiblyImpureMethodCallOnReadonlyVariable
this.browser.BrowserSettings.BackgroundColor = (uint) BackgroundColor.ToArgb(); this.browser.BrowserSettings.BackgroundColor = (uint) TweetDeckBrowserImpl.BackgroundColor.ToArgb();
var extraContext = new TweetDeckExtraContext(); var extraContext = new TweetDeckExtraContext();
var resourceHandlerRegistry = new CefResourceHandlerRegistry(); var resourceHandlerRegistry = new CefResourceHandlerRegistry();

View File

@ -1,4 +1,5 @@
using System; using System;
using System.Drawing;
using TweetLib.Browser.Base; using TweetLib.Browser.Base;
using TweetLib.Browser.Contexts; using TweetLib.Browser.Contexts;
using TweetLib.Browser.Events; using TweetLib.Browser.Events;
@ -16,6 +17,8 @@
namespace TweetLib.Core.Features.TweetDeck { namespace TweetLib.Core.Features.TweetDeck {
public sealed class TweetDeckBrowser : BaseBrowser<TweetDeckBrowser> { public sealed class TweetDeckBrowser : BaseBrowser<TweetDeckBrowser> {
public static readonly Color BackgroundColor = Color.FromArgb(28, 99, 153);
private const string NamespaceTweetDeck = "tweetdeck"; private const string NamespaceTweetDeck = "tweetdeck";
private const string BackgroundColorOverride = "setTimeout(function f(){let h=document.head;if(!h){setTimeout(f,5);return;}let e=document.createElement('style');e.innerHTML='body,body::before{background:#1c6399!important;margin:0}';h.appendChild(e);},1)"; private const string BackgroundColorOverride = "setTimeout(function f(){let h=document.head;if(!h){setTimeout(f,5);return;}let e=document.createElement('style');e.innerHTML='body,body::before{background:#1c6399!important;margin:0}';h.appendChild(e);},1)";

View File

@ -22,6 +22,12 @@ public static bool IsTwitterLogin2Factor(string url) {
return url.Contains("://twitter.com/account/login_verification") || url.Contains("://mobile.twitter.com/account/login_verification"); return url.Contains("://twitter.com/account/login_verification") || url.Contains("://mobile.twitter.com/account/login_verification");
} }
public static bool IsAllowedPopupUrl(string url) {
return url.StartsWithOrdinal("https://twitter.com/teams/authorize?") ||
url.StartsWithOrdinal("https://accounts.google.com/") ||
url.StartsWithOrdinal("https://appleid.apple.com/");
}
public static string? GetFileNameFromUrl(string url) { public static string? GetFileNameFromUrl(string url) {
return StringUtils.NullIfEmpty(Path.GetFileName(new Uri(url).AbsolutePath)); return StringUtils.NullIfEmpty(Path.GetFileName(new Uri(url).AbsolutePath));
} }