Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
        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
                }
            }
            ;
        }
Esempio n. 4
0
        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);
            }
        }
Esempio n. 5
0
        public MangadexUploader(SettingsKeeper settingsKeeper, IHttpClientFactory httpClientFactory)
        {
            _settingsKeeper = settingsKeeper;

            if (bool.Parse(_settingsKeeper.GetSetting("EnableMangadexAutoUpload").Value))
            {
                _client = httpClientFactory.CreateClient("MangadexClient");
            }
        }
Esempio n. 6
0
        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));
        }
Esempio n. 7
0
        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);
            }
        }
Esempio n. 8
0
        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();
                }
            }
        }
Esempio n. 9
0
        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);
            }
        }
Esempio n. 10
0
        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");
            }
        }