"me-web?" 0.7.0: the name in quotes, copy buttons, and every translation rewritten in plain words
- The name is now always written in quotation marks, each language with its own: “me-web?”, «me-web?», „me-web?“, « me-web? », 「me-web?」. Without them the question mark read as the end of a sentence. In Arabic, Hebrew and the other right-to-left languages the question mark no longer jumps to the wrong side of the name. - Your addresses, your router, your network, the reverse name, the route and the code of a submission you sent now sit in a small box with a copy button, ready to paste into a message to your provider or anywhere else. - Every translation except English and Italian was rewritten for people who are not technical: everyday words first, the technical term in brackets, and one word for one thing across the whole app. They are still machine drafts; "Suggest a correction" is welcome in any language. - A few lines are plainer in English and Italian too: the test servers for calls, and the server in the middle that carries a call when two homes can't connect directly. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012CzABvBkbcFqoHdmi8b9WB
This commit is contained in:
1 parent
d18caed157
commit
320936c688
260 files changed
+23662
-18072
No files matched your search
@@ -2,42 +2,28 @@ using System.Net.Sockets;
|
||||
|
||||
using MeWeb.Shared;
|
||||
|
||||
using Microsoft.Extensions.Options;
|
||||
|
||||
namespace MeWeb.Server;
|
||||
|
||||
public class SiteOptions
|
||||
{
|
||||
public bool Node { get; set; }
|
||||
}
|
||||
|
||||
public static class ServerApi
|
||||
{
|
||||
public static WebApplication MapMeWebApi(this WebApplication app)
|
||||
{
|
||||
app.MapGet(Endpoints.Server.GET_Info, Info);
|
||||
app.MapGet(Endpoints.Server.GET_Ip, Ip);
|
||||
app.MapGet(Endpoints.Downloads.GET_Page, Page);
|
||||
app.MapGet(Endpoints.Downloads.GET_Privacy, Privacy);
|
||||
app.MapGet(Endpoints.Downloads.GET_Platform, Download);
|
||||
app.MapPost(Endpoints.Probe.POST_Ticket, Ticket);
|
||||
app.MapPost(Endpoints.Probe.POST_Run, Run);
|
||||
app.MapPost(Endpoints.Share.POST_Create, Share);
|
||||
app.MapDelete(Endpoints.Share.DELETE_One, Unshare);
|
||||
app.MapGet(Endpoints.Speed.GET_Down, Down);
|
||||
app.MapPost(Endpoints.Speed.POST_Up, Up);
|
||||
|
||||
var web = app.MapGroup("").AddEndpointFilter(async (context, next) =>
|
||||
Node(context.HttpContext) ? Results.Redirect(Endpoints.Base + context.HttpContext.Request.Path + context.HttpContext.Request.QueryString) : await next(context));
|
||||
web.MapGet(Endpoints.Downloads.GET_Page, Page);
|
||||
web.MapGet(Endpoints.Downloads.GET_Privacy, Privacy);
|
||||
web.MapGet(Endpoints.Downloads.GET_Platform, Download);
|
||||
|
||||
var main = app.MapGroup("").AddEndpointFilter(async (context, next) => Node(context.HttpContext) ? Results.NotFound() : await next(context));
|
||||
main.MapPost(Endpoints.Share.POST_Create, Share);
|
||||
main.MapDelete(Endpoints.Share.DELETE_One, Unshare);
|
||||
main.MapGet(Endpoints.Knowledge.GET_Manifest, KnowledgeManifest);
|
||||
main.MapGet(Endpoints.Knowledge.GET_File, KnowledgeFile);
|
||||
app.MapGet(Endpoints.Knowledge.GET_Manifest, KnowledgeManifest);
|
||||
app.MapGet(Endpoints.Knowledge.GET_File, KnowledgeFile);
|
||||
return app;
|
||||
}
|
||||
|
||||
static bool Node(HttpContext context) => context.RequestServices.GetRequiredService<IOptionsMonitor<SiteOptions>>().CurrentValue.Node;
|
||||
|
||||
static IResult KnowledgeManifest(KnowledgeFeeder feeder) =>
|
||||
feeder.Manifest() is { } manifest ? Results.Json(manifest, MeWebJsonContext.Default.ViewKnowledge) : Results.NotFound();
|
||||
|
||||
|
||||
Reference in new issue
Block a user