Exemple #1
0
        private static async Task <SimplePost> WriteText(Graphics context, bool suppressLog)
        {
            const int verticalMargin = 100;
            const int lineWidth      = 30;
            const int lineSpacing    = 15;

            var post = await MemesRepository.GetRandom();

            var quote = HttpUtility.HtmlDecode(post.Text)?.Replace("<br>", "\n").Replace("\n", " ");

            if (!suppressLog)
            {
                Logger.Info($"Generated grekan with text: {post.Text}\n Original text was created in: {post.Date}");
            }

            var chunks = quote.SplitByLength(lineWidth).Reverse().ToArray();

            for (var i = 0; i < chunks.Length; i++)
            {
                context.DrawOutlinedString(chunks[i], Font, LineFormat, Brushes.Black, Brushes.White,
                                           new PointF(_imageWidth / 2, _imageHeight - verticalMargin - i * (Font.Size + lineSpacing)));
            }

            context.Save();

            return(post);
        }
        public MeMeListVM()
        {
            _repo = new MemesRepository();
            var memes = _repo.GetHottestMemes();

            MeMes = new ObservableCollection <MeMeVM>(memes);

            AddMemeCommand = new RelayCommand(AddMeme);
            OpenHotCommand = new RelayCommand(GoToHot);
        }
Exemple #3
0
        public async void Execute(IJobExecutionContext context)
        {
            var config = new MongoClient().GetDatabase("grekileaks")
                         .GetCollection <dynamic>("configs")
                         .Find(FilterDefinition <dynamic> .Empty)
                         .First();

            var telega = new TelegramBotClient((string)config.telegram.grekaneveryday.token);

            var post = await MemesRepository.GetRandom();

            var text = $"[{post.Date}] {post.Text}";

            await telega.SendTextMessageAsync("@grekileaks", text);
        }
Exemple #4
0
        public override void Handle(HttpRequest request, HttpResponse response)
        {
            int id;

            if (!int.TryParse(request.QueryString["id"], out id))
            {
                response.Drop("Non-int id given", 403);
                return;
            }

            if (id < 0 || id >= MemesRepository.GetCount())
            {
                response.Drop("id not in range");
                return;
            }

            var t = MemesRepository.GetById(id);

            t.Wait();

            response.WriteJson(t.Result);
        }
Exemple #5
0
        public override void Handle(HttpRequest request, HttpResponse response)
        {
            DateTime from;

            if (!DateTime.TryParse(request.QueryString["from"], out from))
            {
                response.Drop("Incorrect date given", 403);
                return;
            }

            DateTime to;

            if (!DateTime.TryParse(request.QueryString["to"], out to))
            {
                response.Drop("Incorrect date given", 403);
                return;
            }

            var t = MemesRepository.GetByDate(from, to);

            t.Wait();

            response.WriteJson(t.Result);
        }
Exemple #6
0
 public override void Handle(HttpRequest request, HttpResponse response)
 {
     response.WriteLine(MemesRepository.GetCount().ToString());
 }
Exemple #7
0
 public async void Execute(IJobExecutionContext context)
 {
     await MemesRepository.Sync();
 }