Compare commits
2 Commits
4a1bee3b94
...
787a9dd09b
Author | SHA1 | Date | |
---|---|---|---|
787a9dd09b | |||
59410c1458 |
@@ -36,24 +36,24 @@ docker-build:
|
||||
- Dockerfile
|
||||
|
||||
|
||||
stages:
|
||||
- build
|
||||
|
||||
variables:
|
||||
DOTNET_CLI_TELEMETRY_OPTOUT: "1"
|
||||
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: "1"
|
||||
|
||||
before_script:
|
||||
- apt-get update && apt-get install -y tar
|
||||
|
||||
bin-build:
|
||||
stage: build
|
||||
image: mcr.microsoft.com/dotnet/sdk:9.0-bookworm-slim
|
||||
script:
|
||||
- dotnet nuget add source https://pkgs.dev.azure.com/tgbots/Telegram.Bot/_packaging/release/nuget/v3/index.json -n Telegram.Bot
|
||||
- dotnet restore --no-cache
|
||||
- dotnet publish -c Release -r linux-x64 --self-contained true /p:PublishSingleFile=true /p:PublishTrimmed=false /p:EnableCompressionInSingleFile=true
|
||||
- tar -czvf publish.tar.gz -C bin/Release/net9.0/linux-x64/publish/ .
|
||||
artifacts:
|
||||
paths:
|
||||
- publish.tar.gz
|
||||
#stages:
|
||||
# - build
|
||||
#
|
||||
#variables:
|
||||
# DOTNET_CLI_TELEMETRY_OPTOUT: "1"
|
||||
# DOTNET_SKIP_FIRST_TIME_EXPERIENCE: "1"
|
||||
#
|
||||
#before_script:
|
||||
# - apt-get update && apt-get install -y tar
|
||||
#
|
||||
#bin-build:
|
||||
# stage: build
|
||||
# image: mcr.microsoft.com/dotnet/sdk:9.0-bookworm-slim
|
||||
# script:
|
||||
# - dotnet nuget add source https://pkgs.dev.azure.com/tgbots/Telegram.Bot/_packaging/release/nuget/v3/index.json -n Telegram.Bot
|
||||
# - dotnet restore --no-cache
|
||||
# - dotnet publish -c Release -r linux-x64 --self-contained true /p:PublishSingleFile=true /p:PublishTrimmed=false /p:EnableCompressionInSingleFile=true
|
||||
# - tar -czvf publish.tar.gz -C bin/Release/net9.0/linux-x64/publish/ .
|
||||
# artifacts:
|
||||
# paths:
|
||||
# - publish.tar.gz
|
||||
|
@@ -18,9 +18,14 @@ public class HandleStartMessage
|
||||
(callbackQuery != null ? "Callback" : "Start command"));
|
||||
|
||||
// choose all media attachments that are approved
|
||||
var mediaAttachmentsToSelect = await _db.AsQueryable()
|
||||
.Where(post => post.MediaAttachments.Any(media => media.Approved))
|
||||
.ToListAsync();
|
||||
|
||||
// OLD QUERY
|
||||
// var mediaAttachmentsToSelect = await _db.AsQueryable()
|
||||
// .Where(post => post.MediaAttachments.Any(media => media.Approved))
|
||||
// .ToListAsync();
|
||||
|
||||
var filter = Builders<Post>.Filter.ElemMatch(post => post.MediaAttachments, Builders<MediaAttachment>.Filter.Eq(media => media.Approved, true));
|
||||
var mediaAttachmentsToSelect = await _db.Find(filter).ToListAsync();
|
||||
|
||||
// select random approved media attachment
|
||||
var selectedMediaAttachment = mediaAttachmentsToSelect[new Random().Next(mediaAttachmentsToSelect.Count)];
|
||||
|
@@ -37,6 +37,7 @@ public class ProcessPosts
|
||||
$"<a href=\"" + post.Url + "\"> Mastodon </a>", ParseMode.Html
|
||||
, replyMarkup: new InlineKeyboardMarkup().AddButton("Approve", $"approve-{media.MediaId}").AddButton("Reject", $"reject-{media.MediaId}"));
|
||||
validPosts.Add(post);
|
||||
newPosts++;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -44,7 +45,7 @@ public class ProcessPosts
|
||||
media.PreviewUrl);
|
||||
}
|
||||
|
||||
newPosts++;
|
||||
|
||||
}
|
||||
|
||||
// Insert post
|
||||
|
@@ -1,10 +1,10 @@
|
||||
using System.Diagnostics;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using MongoDB.Driver;
|
||||
using MongoDB.Driver.Linq;
|
||||
using mstdnCats.Models;
|
||||
|
||||
namespace mstdnCats.Services;
|
||||
@@ -47,11 +47,16 @@ public class ServerStartup
|
||||
endpoints.MapGet("/api/gimme", async context =>
|
||||
{
|
||||
// Api endpoint
|
||||
// Choose all media attachments that are approved
|
||||
var mediaAttachmentsToSelect = await _db.AsQueryable()
|
||||
.Where(post => post.MediaAttachments.Any(media => media.Approved))
|
||||
.ToListAsync();
|
||||
// Measure execution time
|
||||
var stopwatch = Stopwatch.StartNew();
|
||||
|
||||
// Choose all posts media attachments that are approved
|
||||
var filter = Builders<Post>.Filter.ElemMatch(post => post.MediaAttachments, Builders<MediaAttachment>.Filter.Eq(media => media.Approved, true));
|
||||
var mediaAttachmentsToSelect = await _db.Find(filter).ToListAsync();
|
||||
|
||||
// Stop and print execution time
|
||||
stopwatch.Stop();
|
||||
Console.WriteLine($"Query executed in: {stopwatch.ElapsedMilliseconds} ms");
|
||||
// Select random approved media attachment
|
||||
var selectedPost = mediaAttachmentsToSelect[new Random().Next(mediaAttachmentsToSelect.Count)];
|
||||
|
||||
|
Reference in New Issue
Block a user