إخفاء mailto:foo@bar.com عند استيراد أرشيفات البريد

:warning: تأكد من عمل نسخة احتياطية من Discourse قبل تجربة ما يلي :warning:

إليك كيفية استبدال جميع عناوين البريد الإلكتروني في المنشورات بـ [email_redacted]. التعبير النمطي محدود إلى حد ما وقد يفوت بعض العناوين، لكنني أفضل تعبيرًا يمكنني قراءته وفهمه عند تعديل محتوى جميع المنشورات.

$ ./launcher enter app
/var/www/discourse# su - postgres -c psql
psql (13.2 (Debian 13.2-1.pgdg100+1))
اكتب "help" للحصول على المساعدة.

postgres=# \c discourse
أنت متصل الآن بقاعدة بيانات "discourse" كمستخدم "postgres".
discourse=# \set re '[0-9a-z._%+-]+@[a-z0-9.-]+\\.[a-z]{2,64}'
discourse=# update posts set raw = regexp_replace(raw, :'re', '[email_redacted]', 'gi') where raw ~ :'re';
UPDATE 1
discourse=# update posts set cooked = regexp_replace(cooked, :'re', '[email_redacted]', 'gi') where cooked ~ :'re';
UPDATE 1