Record what may be shared, ahead of federation
The bot-side half of TODO #4. Nothing federates yet; this establishes what would be eligible to, and proves the boundary before there is a hub that could leak across it. - Schema v5 adds visibility, defaulting to private. Upgrading an existing library therefore opts nothing into sharing, which a test on the legacy upgrade path pins down. - list_syncable() is the only function that will ever feed a hub, and it requires both public and approved. Tests force rows into states set_visibility refuses, so the filter is what protects the boundary rather than the caller being careful. - set_visibility refuses anything not approved: media still in the moderation queue cannot be marked shared. - /share lists memes with their current state and asks before making one public, since un-sharing stops future copies but cannot recall those already taken. The wording describes what sharing will mean once a hub exists, because by then warning is too late. - /list shows the same markers. Vault posts have no path into the sync set at all; being in a separate table is what guarantees it, and there is a test saying so. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -61,6 +61,7 @@ docker compose up -d --build
|
||||
| `/list` | نمایش همه رسانههای ذخیرهشده |
|
||||
| `/vault [search]` | بازیابی پستی که کامل ذخیره کردهاید |
|
||||
| `/review` | بررسی یکبهیک ارسالهای در انتظار تأیید (فقط ادمین) |
|
||||
| `/share [search]` | مشخصکردن اینکه یک میم به اشتراک گذاشته شود یا خصوصی بماند (فقط ادمین) |
|
||||
| `/delete <id>` | حذف یک مورد (ID را از `/list` بگیرید) |
|
||||
| `/cancel` | لغو عملیات جاری |
|
||||
|
||||
@@ -110,6 +111,16 @@ REQUIRE_MODE=all
|
||||
|
||||
> **تا وقتی مطمئن نیستید این گزینه را خاموش بگذارید.** وقتی `ALLOWED_USERS` خالی باشد همه کاربرِ مجاز حساب میشوند، پس روشنکردن این گزینه یعنی پذیرفتن رسانه از هر کسی که ربات را پیدا کند.
|
||||
|
||||
### اشتراکگذاری (مقدمات)
|
||||
|
||||
هر میم بهصورت پیشفرض **خصوصی** است. با `/share [search]` فهرست میمها را با نشان 🔒 یا 🌐 میبینید و میتوانید وضعیت هرکدام را عوض کنید. در `/list` هم همین نشانها دیده میشود.
|
||||
|
||||
> **هنوز هیچچیزی به اشتراک گذاشته نمیشود.** این فقط خواستهٔ شما را ثبت میکند. فدراسیون — جایی که رباتهایی که جدا اجرا میشوند میمهای عمومیشان را روی هم میگذارند — هنوز ساخته نشده و تا آنموقع هیچ میمی از این ربات بیرون نمیرود. متن تأیید، معنای اشتراکگذاری را در آینده توضیح میدهد، چون بعد از راهافتادن هاب دیگر برای هشدار دادن دیر است.
|
||||
|
||||
دو قاعده در همان تککوئریای که قرار است به هاب داده شود اعمال میشود: فقط رسانهای که هم **تأییدشده** و هم **عمومی** باشد واجد شرایط است. رسانهای که هنوز در انتظار بررسی است اصلاً قابل اشتراکگذاری نیست، و پستهای گاوصندوق در جدولی جدا هستند و هیچ مسیری به آنجا ندارند.
|
||||
|
||||
خصوصیکردن دوباره، جلوی کپیهای بعدی را میگیرد اما کپیهایی که قبلاً گرفته شده را برنمیگرداند؛ به همین دلیل قبل از عمومیکردن تأیید گرفته میشود، نه بعد از آن.
|
||||
|
||||
### انتقال به سرور دیگر
|
||||
|
||||
فقط کافی است این دو فایل را منتقل کنید:
|
||||
|
||||
Reference in New Issue
Block a user