public void ProcessNsfwMessage(SocketMessage m) { if (m.Author.IsBot) { return; } if ((m.Attachments.Count > 0) && m.Attachments.First().Filename.StartsWith("SPOILER_")) { return; } var CurrentChannel = m.Channel; string NewContent = m.Content.Replace("!nsfw", "").Replace("!ns", ""); string builder = "Nguyên văn từ " + "<@" + m.Author.Id + "> : " + NewContent; // Compose message Attachment MsgAttachment = m.Attachments.First(); if (m.Attachments.Count > 0 && MsgAttachment != null) { var ImgStream = URLUtils.GetStreamFromUrl(MsgAttachment.Url); CurrentChannel.SendFileAsync(ImgStream, "SPOILER_" + MsgAttachment.Filename, text: builder, false, null, null, true).ConfigureAwait(false); m.DeleteAsync(); } }
public void ProcessNsfwImageLink(String link, SocketMessage m) { if (m.Content.StartsWith("||")) { return; } try { if (URLUtils.IsImageUrl(link) && IsNsfwImage(link)) { string builder = "||Nguyên văn từ " + "<@" + m.Author.Id + "> : " + m.Content + "||"; var CurrentChannel = m.Channel; CurrentChannel.SendMessageAsync(builder).ConfigureAwait(false); m.DeleteAsync().ConfigureAwait(false); } } catch (WebException) { // Code... } }
public void ProcessAttachment(SocketMessage m) { bool IsGeneralChannel = (m.Channel.Id == _creds.GeneralChannelId); if (!IsGeneralChannel) { return; } if (m.Attachments.Count < 1) { return; } if (m.Author.IsBot) { return; } foreach (Attachment attachment in m.Attachments) { if (!URLUtils.IsImageUrl(attachment.Url)) { return; } if (attachment.Filename.StartsWith("SPOILER_")) { return; } if (IsNsfwImage(attachment.Url)) { ProcessNsfwMessage(m); } } }
public void CheckUpdates() { if (!EnvironmentManager.Settings.CheckForUpdates) { return; } BackgroundWorker updateWorker = new BackgroundWorker(); updateWorker.DoWork += async(s1, e2) => { RemoteVersion remote = RemoteVersion.Instance; if (remote != null) { Version currentVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; if (remote.Version.CompareTo(currentVersion) > 0) { string content = string.Format(LanguageManager.Model.UpdateAvailableText, remote.Version) + System.Environment.NewLine + System.Environment.NewLine + remote.ChangeLog + System.Environment.NewLine + System.Environment.NewLine + LanguageManager.Model.UpdateDownloadQuestion; string caption = string.Format(LanguageManager.Model.UpdateAvailableCaption, remote.Version); if (await App.Kernel.Get <IDialogManager>().ShowYesNoDialog(caption, content).Wait()) { URLUtils.OpenSite(remote.DownloadUrl); } } } }; updateWorker.RunWorkerAsync(); }
/// <summary> /// Creates an <see cref="IInputSource"/> object for a given mediaitem. /// </summary> /// <param name="resourceLocator">Locator instance to the media item to create the input source for.</param> /// <param name="mimeType">Mime type of the media item, if present. May be <c>null</c>.</param> /// <returns>Input source object for the given <paramref name="resourceLocator"/> or <c>null</c>, if no input source /// could be created.</returns> public IInputSource CreateInputSource(IResourceLocator resourceLocator, string mimeType) { if (!CanPlay(resourceLocator, mimeType)) { return(null); } IInputSource result; _accessor = resourceLocator.CreateAccessor(); AudioCDResourceAccessor acdra = _accessor as AudioCDResourceAccessor; if (acdra != null) { result = BassCDTrackInputSource.Create(acdra.Drive, acdra.TrackNo); } else { string filePath = _accessor.ResourcePathName; // Network streams INetworkResourceAccessor netra = _accessor as INetworkResourceAccessor; if (netra != null) { result = BassWebStreamInputSource.Create(netra.URL); } // CDDA else if (URLUtils.IsCDDA(filePath)) { ILocalFsResourceAccessor lfra = _accessor as ILocalFsResourceAccessor; if (lfra == null) { return(null); } using (lfra.EnsureLocalFileSystemAccess()) result = BassFsCDTrackInputSource.Create(lfra.LocalFileSystemPath); } else { // Filesystem resources IFileSystemResourceAccessor fsra = _accessor as IFileSystemResourceAccessor; if (fsra == null) { return(null); } if (URLUtils.IsMODFile(filePath)) { result = BassMODFileInputSource.Create(fsra); } else { result = BassAudioFileInputSource.Create(fsra); } } } Log.Debug("InputSourceFactory: Creating input source for media resource '{0}' of type '{1}'", _accessor, result.GetType()); return(result); }
/// <summary> /// Creates an <see cref="IInputSource"/> object for a given mediaitem. /// </summary> /// <param name="resourceLocator">Locator instance to the media item to create the input source for.</param> /// <param name="mimeType">Mime type of the media item, if present. May be <c>null</c>.</param> /// <returns>Input source object for the given <paramref name="resourceLocator"/> or <c>null</c>, if no input source /// could be created.</returns> public IInputSource CreateInputSource(IResourceLocator resourceLocator, string mimeType) { if (!CanPlay(resourceLocator, mimeType)) { return(null); } IInputSource result; using (IResourceAccessor accessor = resourceLocator.CreateAccessor()) { AudioCDResourceAccessor acdra = accessor as AudioCDResourceAccessor; if (acdra != null) { result = BassCDTrackInputSource.Create(acdra.Drive, acdra.TrackNo); } else { string filePath = accessor.ResourcePathName; if (URLUtils.IsCDDA(filePath)) { ILocalFsResourceAccessor lfra = accessor as ILocalFsResourceAccessor; if (lfra == null) { return(null); } result = BassFsCDTrackInputSource.Create(lfra.LocalFileSystemPath); } else { IFileSystemResourceAccessor fsra = accessor as ILocalFsResourceAccessor; if (fsra == null) { return(null); } if (URLUtils.IsMODFile(filePath)) { result = BassMODFileInputSource.Create(fsra); } else { result = BassAudioFileInputSource.Create(fsra); } } // TODO: Handle web streams when we have resource accessors for web URLs: BassWebStreamInputSource.Create(...); } Log.Debug("InputSourceFactory: Creating input source for media resource '{0}' of type '{1}'", accessor, result.GetType()); } return(result); }
public void HandlePotentialNsfwMessage(SocketMessage msg) { string ExtractedUrl = URLUtils.ExtractUrl(msg.Content); if (URLUtils.IsImageUrl(msg.Content) && msg.Attachments.Count == 0) { return; } if (msg.Content.StartsWith("!nsfw") || msg.Content.StartsWith("!ns")) { ProcessNsfwMessage(msg); return; } if (URLUtils.IsImageUrl(ExtractedUrl)) { ProcessNsfwImageLink(ExtractedUrl, msg); return; } ProcessAttachment(msg); }
public void Search(object obj) { if (obj == null) { return; } string url = null; if (typeof(WikiProvider.Suggestion).IsAssignableFrom(obj.GetType())) { url = Provider.URL + (obj as WikiProvider.Suggestion).Value; } if (typeof(string).IsAssignableFrom(obj.GetType())) { if (!string.IsNullOrEmpty((string)obj)) { url = string.Format(Provider.Search, obj); } } if (url != null) { URLUtils.OpenSite(url); } }
private void OnRequestNavigate(object sender, RequestNavigateEventArgs e) { URLUtils.OpenSiteNoDecode(e.Uri.ToString()); }
private void OnRequestNavigate(object sender, RequestNavigateEventArgs e) { URLUtils.OpenSite(e.Uri.AbsoluteUri); }