public async Task SendMessage(string message) { if (bool.Parse(_settingsKeeper.GetSetting("EnableDiscordBot").Value)) { await Connect(); var channel = _discordSocketClient?.GetChannel(ulong.Parse(_settingsKeeper.GetSetting("DiscordChannelId").Value)) as SocketTextChannel; channel?.SendMessageAsync(message); } }
public async Task SendEmailAsync(string email, string subject, string htmlMessage) { if (bool.Parse(_settingsKeeper.GetSetting("EnableEmailRecovery").Value)) { var message = new MailMessage { From = new MailAddress($"noreply@{_settingsKeeper.GetSetting("SiteUrl").Value.Replace("https://", string.Empty)}"), Body = htmlMessage, Subject = subject }; message.To.Add(email); await _smtpClient.SendMailAsync(message); } }
public EmailSender(SettingsKeeper settingsKeeper) { _settingsKeeper = settingsKeeper; if (bool.Parse(_settingsKeeper.GetSetting("EnableEmailRecovery").Value)) { _smtpClient = new SmtpClient(_settingsKeeper.GetSetting("SmtpServer").Value) { UseDefaultCredentials = false, Credentials = new NetworkCredential(_settingsKeeper.GetSetting("SmtpUser").Value, _settingsKeeper.GetSetting("SmtpPassword").Value), EnableSsl = true } } ; }
public RedditPoster(SettingsKeeper settingsKeeper) { _settingsKeeper = settingsKeeper; if (bool.Parse(_settingsKeeper.GetSetting("EnableReddit").Value)) { var user = settingsKeeper.GetSetting("RedditUser").Value; var password = settingsKeeper.GetSetting("RedditPassword").Value; var clientId = settingsKeeper.GetSetting("RedditClientId").Value; var clientSecret = settingsKeeper.GetSetting("RedditClientSecret").Value; var redirectUrl = settingsKeeper.GetSetting("SiteUrl").Value; var botAgent = new BotWebAgent(user, password, clientId, clientSecret, redirectUrl); _reddit = new Reddit(botAgent); } }
public MangadexUploader(SettingsKeeper settingsKeeper, IHttpClientFactory httpClientFactory) { _settingsKeeper = settingsKeeper; if (bool.Parse(_settingsKeeper.GetSetting("EnableMangadexAutoUpload").Value)) { _client = httpClientFactory.CreateClient("MangadexClient"); } }
public async Task <MangadexChapter> UploadChapter(Chapter chapter, MangadexSeries mangadexSeries, Stream stream) { if (!bool.Parse(_settingsKeeper.GetSetting("EnableMangadexAutoUpload").Value)) { return new MangadexChapter { ChapterId = chapter.Id, MangadexId = 0, Chapter = chapter } } ; var request = new MultipartFormDataContent(); var mangaId = new StringContent(mangadexSeries.MangadexId.ToString()); var chapterName = new StringContent(chapter.Name); var volumeNumber = new StringContent(chapter.Volume > 0 ? chapter.Volume.ToString() : string.Empty); var chapterNumber = new StringContent(chapter.ChapterNumber.ToString(CultureInfo.InvariantCulture)); var groupId = new StringContent(_settingsKeeper.GetSetting("MangadexGroupId").Value); var groupId2 = new StringContent(string.Empty); var groupId3 = new StringContent(string.Empty); var langId = new StringContent(1.ToString()); var fileStream = new StreamContent(stream); mangaId.Headers.ContentType = null; chapterName.Headers.ContentType = null; volumeNumber.Headers.ContentType = null; chapterNumber.Headers.ContentType = null; groupId.Headers.ContentType = null; groupId2.Headers.ContentType = null; groupId3.Headers.ContentType = null; langId.Headers.ContentType = null; fileStream.Headers.ContentDisposition = ContentDispositionHeaderValue.Parse("form-data; name=\"file\"; filename=\"file.zip\""); fileStream.Headers.ContentType = MediaTypeHeaderValue.Parse("application/octet-stream"); request.Add(mangaId, "\"manga_id\""); request.Add(chapterName, "\"chapter_name\""); request.Add(volumeNumber, "\"volume_number\""); request.Add(chapterNumber, "\"chapter_number\""); request.Add(groupId, "\"group_id\""); request.Add(groupId2, "\"group_id_2\""); request.Add(groupId3, "\"group_id_3\""); request.Add(langId, "\"lang_id\""); request.Add(fileStream); await Login(); await _client.PostAsync(MangadexChapterUploadAddress, request); await Logout(); return(await GetChapterId(chapter, mangadexSeries)); }
public FirebaseCloudMessaging(SettingsKeeper settingsKeeper) { _settingsKeeper = settingsKeeper; if (bool.Parse(settingsKeeper.GetSetting("EnableFcm").Value)) { var settings = FileBasedFcmClientSettings.CreateFromFile($"{Utils.CurrentDirectory.FullName}{Path.DirectorySeparatorChar}fcmkey.json"); _fcmClient = new FcmClient(settings); } }
public async Task PostLink(string reddit, string title, string link, bool nsfw) { if (bool.Parse(_settingsKeeper.GetSetting("EnableReddit").Value)) { var subReddit = await _reddit.GetSubredditAsync(reddit); var post = await subReddit.SubmitPostAsync(title, link); if (nsfw) { await post.MarkNSFWAsync(); } } }
public async Task SendNotification(string title, string body, string link, string icon, string topic) { if (bool.Parse(_settingsKeeper.GetSetting("EnableFcm").Value)) { var notification = new Notification { Title = title, Body = body }; var fcmMessage = new FcmMessage { Message = new Message { Notification = notification, Topic = topic, WebpushConfig = new WebpushConfig { Headers = new Dictionary <string, string> { { "urgency-option", "high" } }, FcmOptions = new WebpushFcmOptions { Link = link } }, Data = new Dictionary <string, string> { { "icon", icon } } } }; await _fcmClient.SendAsync(fcmMessage); } }
public async Task <bool> ValidateResponse(string recaptchaResponse) { using (var client = _clientFactory.CreateClient()) { var response = await client.GetStringAsync($"https://www.google.com/recaptcha/api/siteverify?secret={_settingsKeeper.GetSetting("RecaptchaSecretKey").Value}&response={recaptchaResponse}"); dynamic jObject = JObject.Parse(response); return(jObject.success == "true"); } }