From 9ce510223e224017eb9337549f73f86bf1303faa Mon Sep 17 00:00:00 2001 From: f Date: Fri, 12 Jan 2024 17:37:37 -0300 Subject: [PATCH] =?UTF-8?q?feat:=20controladores=20e=20informaci=C3=B3n=20?= =?UTF-8?q?de=20prueba=20#14966?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moderation_queue_controller.rb | 375 ++++++++++++++++++ app/controllers/posts_controller.rb | 72 ++++ config/routes.rb | 4 + 3 files changed, 451 insertions(+) create mode 100644 app/controllers/moderation_queue_controller.rb diff --git a/app/controllers/moderation_queue_controller.rb b/app/controllers/moderation_queue_controller.rb new file mode 100644 index 00000000..1aef226f --- /dev/null +++ b/app/controllers/moderation_queue_controller.rb @@ -0,0 +1,375 @@ +# frozen_string_literal: true + +# Cola de moderación de ActivityPub +class ModerationQueueController < ApplicationController + # Cola de moderación viendo todo el sitio + def index + @moderation_queue = [ + +{"@context"=> + ["https://www.w3.org/ns/activitystreams", + {"ostatus"=>"http://ostatus.org#", + "atomUri"=>"ostatus:atomUri", + "inReplyToAtomUri"=>"ostatus:inReplyToAtomUri", + "conversation"=>"ostatus:conversation", + "sensitive"=>"as:sensitive", + "toot"=>"http://joinmastodon.org/ns#", + "votersCount"=>"toot:votersCount", + "Hashtag"=>"as:Hashtag"}], + "id"=>"https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041", + "type"=>"Note", + "summary"=>nil, + "inReplyTo"=>"https://mastodon.mauve.moe/users/mauve/statuses/111461923538534886", + "published"=>"2023-11-23T22:50:10Z", + "url"=>"https://mastodon.mauve.moe/@mauve/111462305634770041", + "attributedTo"=>"https://mastodon.mauve.moe/users/mauve", + "to"=>["https://www.w3.org/ns/activitystreams#Public"], + "cc"=>["https://mastodon.mauve.moe/users/mauve/followers", "https://hypha.coop/about.jsonld"], + "sensitive"=>false, + "atomUri"=>"https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041", + "inReplyToAtomUri"=>"https://mastodon.mauve.moe/users/mauve/statuses/111461923538534886", + "conversation"=>"tag:mastodon.mauve.moe,2023-11-23:objectId=551471:objectType=Conversation", + "content"=> + "

Follow @HyphaCoop@hypha.coop for our announcement post on the 5th!

#P2P #ActivityPub #Fediverse

", + "contentMap"=> + {"en"=> + "

Follow @HyphaCoop@hypha.coop for our announcement post on the 5th!

#P2P #ActivityPub #Fediverse

"}, + "attachment"=>[], + "tag"=> + [{"type"=>"Mention", "href"=>"https://hypha.coop/about.jsonld", "name"=>"@dripline@hypha.coop"}, + {"type"=>"Hashtag", "href"=>"https://mastodon.mauve.moe/tags/p2p", "name"=>"#p2p"}, + {"type"=>"Hashtag", "href"=>"https://mastodon.mauve.moe/tags/activitypub", "name"=>"#activitypub"}, + {"type"=>"Hashtag", "href"=>"https://mastodon.mauve.moe/tags/fediverse", "name"=>"#fediverse"}], + "replies"=> + {"id"=>"https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041/replies", + "type"=>"Collection", + "first"=> + {"type"=>"CollectionPage", + "next"=>"https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041/replies?only_other_accounts=true&page=true", + "partOf"=>"https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041/replies", + "items"=>[]}}}, +{"@context"=>["https://www.w3.org/ns/activitystreams", {"@language"=>"es", "sensitive"=>"as:sensitive"}], + "type"=>"Note", + "id"=>"https://sutty.nl/lanzamiento-de-publicaciones-distribuidas-en-el-fediverso-a-trav%C3%A9s-de-sutty/", + "summary"=>"Lanzamiento de publicaciones distribuidas en el Fediverso a través de Sutty", + "published"=>"2023-12-04T21:53:05+00:00", + "updated"=>"2023-12-05T20:41:34+00:00", + "attributedTo"=>"https://sutty.nl/about.jsonld", + "to"=>["https://www.w3.org/ns/activitystreams#Public"], + "cc"=>["https://social.distributed.press/v1/@sutty@sutty.nl/followers"], + "inReplyTo"=>"https://hypha.coop/dripline/announcing-dp-social-inbox/", + "sensitive"=>true, + "content"=> + "

Estamos felices y orgulloses de anunciar el lanzamiento de la funcionalidad que permite la publicación en el Fediverso de los artículos de todos los sitios creados a través de Sutty.

Gracias al trabajo conjunto con Distributed Press, Hypha y apoyado por la Filecoin Foundation for the Distributed Web, Sutty hace posible que la seguridad de tu sitio estático se combine con la rápida difusión de tu contenido a través de las redes sociales libres y descentralizadas que constituyen el Fediverso.

Esto se logró a través del desarollo y la integración de dos componentes, trabajados en forma conjunta y colaborativa:

    \n
  1. Social Inbox, desarrollado principalmente Distributed Press. Aporta la funcionalidad de recibir artículos, responder y mencionar otras cuentas en el Fediverso.

  2. \n
  3. Jekyll Activity Pub Plugin, desarrollado principalmente por Sutty. Permite integrar Social Inbox en todos los sitios estáticos generados en Jekyll, admitiendo así la publicación automática de contenido del sitio en el Fediverso.

  4. \n

Sutty integra la funcionalidad completa en su CMS para sitios estáticos en Jekyll, permitiendo gestionarla desde una interfaz en continua mejora de su usabilidad.

Si todavía no estás familiarizade con estos nombres y conceptos, te invitamos a conocer más a continuación, en la sección “Para tecno-curioses”.

Qué significa

Qué permite hacer

Qué se viene

¡Quiero usarlo!

Te invitamos a dar tus primeros pasos de la mano de nuestro tutorial.

Para tecno-curioses

Cómo funciona

Los sitios web y las redes sociales parecen ser especies distintas dentro del Universo de Internet. Al mismo tiempo, las redes sociales corporativas y concentradas como Instagram, Facebook, X (ex Twitter), entre otras, demostraron ser hostiles con algunos grupos o colectivos sociales en particular (censurando contenido, persiguiendo pezones, ocultando publicaciones por color de piel y de pelo, etc.) y con todes sus usuaries en general (vendiendo data en forma masiva, violando acuerdos de privacidad, eligiendo diseños de interfaz y uso que generan ansiedad y adicción, etc.). Pese a esto, siguen funcionando como espacios obligados a la hora de publicitar un emprendimiento o difundir noticias urgentes.

El Fediverso es una red federada, descentralizada y distribuida de redes sociales libres, cada una con sus características, preferencias, grupos de usuaries. Están diseñadas para facilitar el diálogo entre todas ellas. Es decir, para que los contenidos puedan ser visibles y se puedan generar respuestas entre usuaries, fomentando una cultura de participación y pluralidad de voces, basadas en estándares de desarrollo libre y que buscan ser éticos antes que con fines de lucro sin fin.

Los sitios web siguen siendo formatos para medios de comunicación que, debido a sus características, favorecen la difusión de contenidos como artículos multimedia. Permiten adecuar un estilo a una identidad visual del medio, mantener secciones y contenido institucional variado, entre otras cosas.

Las redes sociales se destacan por sus características de inmediatez, favoreciendo un flujo dialógico en tiempo real con otros tiempos de atención y características de navegación que lo hacen más breve, rápido, a veces efímero. Los medios de comunicación (personas o emprendimientos mediáticos) suelen utilizarlos para llamar la atención sobre contenidos publicados en sus sitios, apostando a la divulgación rápida y las discusiones que puedan darse entre usuaries.

La funcionalidad que desarrollamos en Sutty contempla los casos de uso en los que un contenido quiera ser compartido a más personas, en menor tiempo, con la posibilidad de generar diálogos. Las particularidades de nuestros sitios y redes sociales libres generan condiciones favorables para la libertad de expresión, que preferimos llamar Derecho a la Comunicación, evadiendo las variadas y cada vez más sofisticadas formas de censura de las plataformas corporativas tradicionales. Un contenido reproducido en varios lugares al mismo tiempo ayuda a su divulgación y es ideal para aquellas voces y discursos contrahegemónicos en la web y su supervivencia al paso del tiempo, preservando la memoria popular.

Cómo funciona el Fediverso en la moderación

El Fediverso intenta funcionar como comunidades en línea interconectadas que se autogobiernan en las formas de cuidados colectivos. Así, cada instancia podría ser algo así como un municipio que aloja diferentes cuentas/usuaries bajo unas reglas consensuadas y que pueden ser puestas en discusión si fuera necesario. De esta forma, es posible regular la circulación de contenidos fascistas y discursos de odio que puedan dañar no solamente la participación de diverses usuaries sino también su salud.

Para ello, cada instancia elige sus formas de moderación y puede excluir otras instancias con denuncias previas de contenidos antidemocráticos, odiantes o contrarios a los valores y cuidados de sus habitantes.

En Sutty en particular, nos interesan las estrategias y los mecanismos de cuidados colectivos, por lo que seguimos diseñando modelos que permitan sostenerlos en nuestras tecnologías. Podés revisar nuestros términos y condiciones, política de privacidad y acuerdos de convivencia para más información.

¿Te interesa participar?

Si sos parte de una organización social, grupo de activismo o colectivo social que pensás que podría beneficiarse de estas características, te invitamos a contactarnos a través de nuestro formulario. Estamos busando mejorar los usos de las tecnologías para ustedes y valoramos sus experiencias.

Otras posibilidades de integración de Social Inbox en sitios estáticos

Si te interesa incorporar esta funcionalidad para otros gestores de sitios estáticos, no dudes en contactarnos. Además, mantenete al tanto de las novedades que compartimos en https://dweb.sutty.nl y en nuestro blog https://sutty.nl/blog

Recomendado para saber más

\n", + "name"=>"Lanzamiento de publicaciones distribuidas en el Fediverso a través de Sutty", + "contentMap"=> + {"es"=> + "

Estamos felices y orgulloses de anunciar el lanzamiento de la funcionalidad que permite la publicación en el Fediverso de los artículos de todos los sitios creados a través de Sutty.

Gracias al trabajo conjunto con Distributed Press, Hypha y apoyado por la Filecoin Foundation for the Distributed Web, Sutty hace posible que la seguridad de tu sitio estático se combine con la rápida difusión de tu contenido a través de las redes sociales libres y descentralizadas que constituyen el Fediverso.

Esto se logró a través del desarollo y la integración de dos componentes, trabajados en forma conjunta y colaborativa:

    \n
  1. Social Inbox, desarrollado principalmente Distributed Press. Aporta la funcionalidad de recibir artículos, responder y mencionar otras cuentas en el Fediverso.

  2. \n
  3. Jekyll Activity Pub Plugin, desarrollado principalmente por Sutty. Permite integrar Social Inbox en todos los sitios estáticos generados en Jekyll, admitiendo así la publicación automática de contenido del sitio en el Fediverso.

  4. \n

Sutty integra la funcionalidad completa en su CMS para sitios estáticos en Jekyll, permitiendo gestionarla desde una interfaz en continua mejora de su usabilidad.

Si todavía no estás familiarizade con estos nombres y conceptos, te invitamos a conocer más a continuación, en la sección “Para tecno-curioses”.

Qué significa

Qué permite hacer

Qué se viene

¡Quiero usarlo!

Te invitamos a dar tus primeros pasos de la mano de nuestro tutorial.

Para tecno-curioses

Cómo funciona

Los sitios web y las redes sociales parecen ser especies distintas dentro del Universo de Internet. Al mismo tiempo, las redes sociales corporativas y concentradas como Instagram, Facebook, X (ex Twitter), entre otras, demostraron ser hostiles con algunos grupos o colectivos sociales en particular (censurando contenido, persiguiendo pezones, ocultando publicaciones por color de piel y de pelo, etc.) y con todes sus usuaries en general (vendiendo data en forma masiva, violando acuerdos de privacidad, eligiendo diseños de interfaz y uso que generan ansiedad y adicción, etc.). Pese a esto, siguen funcionando como espacios obligados a la hora de publicitar un emprendimiento o difundir noticias urgentes.

El Fediverso es una red federada, descentralizada y distribuida de redes sociales libres, cada una con sus características, preferencias, grupos de usuaries. Están diseñadas para facilitar el diálogo entre todas ellas. Es decir, para que los contenidos puedan ser visibles y se puedan generar respuestas entre usuaries, fomentando una cultura de participación y pluralidad de voces, basadas en estándares de desarrollo libre y que buscan ser éticos antes que con fines de lucro sin fin.

Los sitios web siguen siendo formatos para medios de comunicación que, debido a sus características, favorecen la difusión de contenidos como artículos multimedia. Permiten adecuar un estilo a una identidad visual del medio, mantener secciones y contenido institucional variado, entre otras cosas.

Las redes sociales se destacan por sus características de inmediatez, favoreciendo un flujo dialógico en tiempo real con otros tiempos de atención y características de navegación que lo hacen más breve, rápido, a veces efímero. Los medios de comunicación (personas o emprendimientos mediáticos) suelen utilizarlos para llamar la atención sobre contenidos publicados en sus sitios, apostando a la divulgación rápida y las discusiones que puedan darse entre usuaries.

La funcionalidad que desarrollamos en Sutty contempla los casos de uso en los que un contenido quiera ser compartido a más personas, en menor tiempo, con la posibilidad de generar diálogos. Las particularidades de nuestros sitios y redes sociales libres generan condiciones favorables para la libertad de expresión, que preferimos llamar Derecho a la Comunicación, evadiendo las variadas y cada vez más sofisticadas formas de censura de las plataformas corporativas tradicionales. Un contenido reproducido en varios lugares al mismo tiempo ayuda a su divulgación y es ideal para aquellas voces y discursos contrahegemónicos en la web y su supervivencia al paso del tiempo, preservando la memoria popular.

Cómo funciona el Fediverso en la moderación

El Fediverso intenta funcionar como comunidades en línea interconectadas que se autogobiernan en las formas de cuidados colectivos. Así, cada instancia podría ser algo así como un municipio que aloja diferentes cuentas/usuaries bajo unas reglas consensuadas y que pueden ser puestas en discusión si fuera necesario. De esta forma, es posible regular la circulación de contenidos fascistas y discursos de odio que puedan dañar no solamente la participación de diverses usuaries sino también su salud.

Para ello, cada instancia elige sus formas de moderación y puede excluir otras instancias con denuncias previas de contenidos antidemocráticos, odiantes o contrarios a los valores y cuidados de sus habitantes.

En Sutty en particular, nos interesan las estrategias y los mecanismos de cuidados colectivos, por lo que seguimos diseñando modelos que permitan sostenerlos en nuestras tecnologías. Podés revisar nuestros términos y condiciones, política de privacidad y acuerdos de convivencia para más información.

¿Te interesa participar?

Si sos parte de una organización social, grupo de activismo o colectivo social que pensás que podría beneficiarse de estas características, te invitamos a contactarnos a través de nuestro formulario. Estamos busando mejorar los usos de las tecnologías para ustedes y valoramos sus experiencias.

Otras posibilidades de integración de Social Inbox en sitios estáticos

Si te interesa incorporar esta funcionalidad para otros gestores de sitios estáticos, no dudes en contactarnos. Además, mantenete al tanto de las novedades que compartimos en https://dweb.sutty.nl y en nuestro blog https://sutty.nl/blog

Recomendado para saber más

\n"}, + "attachment"=> + [{"type"=>"Document", + "mediaType"=>"image/png", + "url"=>"https://sutty.nl/public/8r7b6ohqy6xzgngxbol6337q8jj9/milestone_2_activity_pub_2.png", + "name"=>"Botones de colores para activar la \"Web Disribuida\" y el \"Fediverso\"."}]} + + + ] + end + + # Perfil remoto de usuarie + def remote_profile + @remote_profile = { + '@context' => + [ + 'https://www.w3.org/ns/activitystreams', + 'https://w3id.org/security/v1', + { + 'manuallyApprovesFollowers' => 'as:manuallyApprovesFollowers', + 'toot' => 'http://joinmastodon.org/ns#', + 'featured' => { '@id' => 'toot:featured', '@type' => '@id' }, + 'featuredTags' => { '@id' => 'toot:featuredTags', '@type' => '@id' }, + 'alsoKnownAs' => { '@id' => 'as:alsoKnownAs', '@type' => '@id' }, + 'movedTo' => { '@id' => 'as:movedTo', '@type' => '@id' }, + 'schema' => 'http://schema.org#', + 'PropertyValue' => 'schema:PropertyValue', + 'value' => 'schema:value', + 'discoverable' => 'toot:discoverable', + 'Device' => 'toot:Device', + 'Ed25519Signature' => 'toot:Ed25519Signature', + 'Ed25519Key' => 'toot:Ed25519Key', + 'Curve25519Key' => 'toot:Curve25519Key', + 'EncryptedMessage' => 'toot:EncryptedMessage', + 'publicKeyBase64' => 'toot:publicKeyBase64', + 'deviceId' => 'toot:deviceId', + 'claim' => { '@type' => '@id', '@id' => 'toot:claim' }, + 'fingerprintKey' => { '@type' => '@id', '@id' => 'toot:fingerprintKey' }, + 'identityKey' => { '@type' => '@id', '@id' => 'toot:identityKey' }, + 'devices' => { '@type' => '@id', '@id' => 'toot:devices' }, + 'messageFranking' => 'toot:messageFranking', + 'messageType' => 'toot:messageType', + 'cipherText' => 'toot:cipherText', + 'suspended' => 'toot:suspended', + 'focalPoint' => { '@container' => '@list', '@id' => 'toot:focalPoint' } + } + ], + 'id' => 'https://mastodon.mauve.moe/users/mauve', + 'type' => 'Person', + 'following' => 'https://mastodon.mauve.moe/users/mauve/following', + 'followers' => 'https://mastodon.mauve.moe/users/mauve/followers', + 'inbox' => 'https://mastodon.mauve.moe/users/mauve/inbox', + 'outbox' => 'https://mastodon.mauve.moe/users/mauve/outbox', + 'featured' => 'https://mastodon.mauve.moe/users/mauve/collections/featured', + 'featuredTags' => 'https://mastodon.mauve.moe/users/mauve/collections/tags', + 'preferredUsername' => 'mauve', + 'name' => 'Mauve 👁💜', + 'summary' => + '

Occult Enby that's making local-first software with peer to peer protocols, mesh networks, and the web.

Also exploring what a local-first cyberspace might look like in my spare time.

', + 'url' => 'https://mastodon.mauve.moe/@mauve', + 'manuallyApprovesFollowers' => false, + 'discoverable' => true, + 'published' => '2022-04-25T00:00:00Z', + 'devices' => 'https://mastodon.mauve.moe/users/mauve/collections/devices', + 'alsoKnownAs' => ['https://infosec.exchange/users/RangerMauve'], + 'publicKey' => + { 'id' => 'https://mastodon.mauve.moe/users/mauve#main-key', + 'owner' => 'https://mastodon.mauve.moe/users/mauve', + 'publicKeyPem' => + "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxjxu6bRQOjH4caQu7JgZ\numIWFeX0ZdbVnofElev2d9JByqcDoWhmaks3RYdW71RDPNrr0JxqZvUbIw9kQBng\n7iQ9YTcXTdJ/N9CQoB22msffYkEIw4ilehCDXdchNs4aoVAUwI8IhkM0p/itz6gK\n75C3CQv74Y7rHUJC8ob2p4KUwRUyhgzyhp8QWwCAn/RZ28wP8EbjWF9IskMRo9vq\nWUX+Io6hpADRkSwZGoOSW2zxCEBVco6tRmABTte8I0WcAucLyMEyfGMlUvxRew4D\nzAWoEBS8SyqM68vUabbZYLns6kya34tvsf1NkvajDGrfgU3D0LlGX++tOa6N9Pkf\nXwIDAQAB\n-----END PUBLIC KEY-----\n" }, + 'tag' => [], + 'attachment' => + [{ 'type' => 'PropertyValue', 'name' => 'Pronouns', 'value' => 'they/them/it' }, + { 'type' => 'PropertyValue', 'name' => 'Email', 'value' => 'mauve@mauve.moe' }, + { 'type' => 'PropertyValue', + 'name' => 'Matrix', + 'value' => + '@mauve:mauve.moe' }, + { 'type' => 'PropertyValue', 'name' => 'Github/Twitter', 'value' => '@RangerMauve' }], + 'endpoints' => { 'sharedInbox' => 'https://mastodon.mauve.moe/inbox' }, + 'icon' => + { 'type' => 'Image', + 'mediaType' => 'image/png', + 'url' => 'https://mastodon.mauve.moe/system/accounts/avatars/000/000/002/original/e4b910cee121b1b8.png' }, + 'image' => + { 'type' => 'Image', + 'mediaType' => 'image/png', + 'url' => 'https://mastodon.mauve.moe/system/accounts/headers/000/000/002/original/a96f990025091662.png' } + } + end + + # todon.nl está usando /api/v2/instance + # mauve.moe usa /api/v1/instance + def instances + @instances = [ +{"domain"=>"todon.nl", + "title"=>"Todon.nl", + "version"=>"4.2.3", + "source_url"=>"https://github.com/mastodon/mastodon", + "description"=> + "Radicaal linkse anti-autoritaire server. Voor anarchisten, socialisten, (klimaat)activisten, LHBTQIA+, antiracisten, antifascisten, antikapitalisten, intersectionelen, veganisten, mensenrechten, enz.", + "usage"=>{"users"=>{"active_month"=>372}}, + "thumbnail"=> + {"url"=>"https://todon.nl/system/site_uploads/files/000/000/004/@1x/297e509bc8a81f62.png", + "blurhash"=>"UXAw3zN4M|xsoga#WBay9DxntQRmITocofWE", + "versions"=> + {"@1x"=>"https://todon.nl/system/site_uploads/files/000/000/004/@1x/297e509bc8a81f62.png", + "@2x"=>"https://todon.nl/system/site_uploads/files/000/000/004/@2x/297e509bc8a81f62.png"}}, + "languages"=>["en"], + "configuration"=> + {"urls"=>{"streaming"=>"wss://todon.nl", "status"=>"https://status.todon.eu"}, + "accounts"=>{"max_featured_tags"=>10}, + "statuses"=>{"max_characters"=>1312, "max_media_attachments"=>4, "characters_reserved_per_url"=>23}, + "media_attachments"=> + {"supported_mime_types"=> + ["image/jpeg", + "image/png", + "image/gif", + "image/heic", + "image/heif", + "image/webp", + "image/avif", + "video/webm", + "video/mp4", + "video/quicktime", + "video/ogg", + "audio/wave", + "audio/wav", + "audio/x-wav", + "audio/x-pn-wave", + "audio/vnd.wave", + "audio/ogg", + "audio/vorbis", + "audio/mpeg", + "audio/mp3", + "audio/webm", + "audio/flac", + "audio/aac", + "audio/m4a", + "audio/x-m4a", + "audio/mp4", + "audio/3gpp", + "video/x-ms-asf"], + "image_size_limit"=>16777216, + "image_matrix_limit"=>33177600, + "video_size_limit"=>103809024, + "video_frame_rate_limit"=>120, + "video_matrix_limit"=>8294400}, + "polls"=>{"max_options"=>4, "max_characters_per_option"=>50, "min_expiration"=>300, "max_expiration"=>2629746}, + "translation"=>{"enabled"=>true}}, + "registrations"=> + {"enabled"=>false, + "approval_required"=>false, + "message"=> + "

¡No pasarán!

\n\n

Je kunt tijdelijk geen nieuw account op Todon.nl aanvragen.

\n\n\n\n

Ga naar joinmastodon.org of FediDB Network om een andere server te vinden.

\n\n

It is temporary not possible to request on account on Todon.nl.

\n\n\n\n

Go to joinmastodon.org or FediDB Network to find another server.

\n", + "url"=>nil}, + "max_toot_chars"=>1312, + "contact"=> + {"email"=>"todon@posteo.eu", + "account"=> + {"id"=>"1", + "username"=>"admin", + "acct"=>"admin", + "display_name"=>"Admin 🤓 Todon.nl (mod)", + "locked"=>false, + "bot"=>false, + "discoverable"=>false, + "group"=>false, + "created_at"=>"2017-04-28T00:00:00.000Z", + "note"=> + "

This account is used for 🎙 Todon.nl announcements and ⚖️ moderation.

🚫 Don't follow this account when you are not on Todon.nl.

New? First read our 👩‍🏫 Todon 101 👩‍🎓 at https://wiki.todon.eu/todon/101

⚖️ For all our moderators go to https://wiki.todon.nl/todon/moderators

📝 Public toots from this account are in English.

🔕 Criticism is fine, but people who do false accusations are muted.

✉ todon@posteo.eu

#nobot

", + "url"=>"https://todon.nl/@admin", + "uri"=>"https://todon.nl/users/admin", + "avatar"=>"https://todon.nl/system/accounts/avatars/000/000/001/original/2db61726225ed3e6.png", + "avatar_static"=>"https://todon.nl/system/accounts/avatars/000/000/001/original/2db61726225ed3e6.png", + "header"=>"https://todon.nl/system/accounts/headers/000/000/001/original/fb3a846cbc20aa09.png", + "header_static"=>"https://todon.nl/system/accounts/headers/000/000/001/original/fb3a846cbc20aa09.png", + "followers_count"=>3164, + "following_count"=>8, + "statuses_count"=>724, + "last_status_at"=>"2024-01-12", + "noindex"=>true, + "emojis"=>[], + "roles"=>[{"id"=>"3", "name"=>"Admin", "color"=>"#595aff"}], + "fields"=> + [{"name"=>"📜 Terms of Service", + "value"=> + "https://wiki.todon.nl/todon/terms_en", + "verified_at"=>"2018-11-01T14:39:45.465+00:00"}, + {"name"=>"ℹ️ Wiki", + "value"=> + "https://wiki.todon.nl/todon/information", + "verified_at"=>"2018-11-01T14:40:54.679+00:00"}, + {"name"=>"📊 Status", + "value"=> + "https://status.todon.eu", + "verified_at"=>"2023-10-26T20:38:30.185+00:00"}, + {"name"=>"💳️ Donations", + "value"=> + "https://wiki.todon.eu/todon/donations", + "verified_at"=>"2022-11-02T00:06:31.865+00:00"}]}}, + "rules"=> + [{"id"=>"1", + "text"=> + "We do not accept racism (in all its forms, incl. hate against Muslims, antisemitism, apartheid and casteism - see our Terms of Service for our complete definition)."}, + {"id"=>"2", + "text"=> + "We do not accept hate against lesbians, gays, bisexuals, pansexuals, transgenders, non-binary people, intersexual people, queer people in general, etc."}, + {"id"=>"4", "text"=>"Sexism, misogyny and hate against black women (misogynoir)."}, + {"id"=>"6", "text"=>"We do not accept ableism (incl. COVID-19 denial/downplaying and anti-vax) and body-shaming."}, + {"id"=>"8", "text"=>"We do not accept harassment and trolling."}, + {"id"=>"10", "text"=>"We also do not accept other forms of hate speech."}, + {"id"=>"11", "text"=>"We do not accept (sexual) abuse of minors, adults and animals (also not virtual)."}, + {"id"=>"13", "text"=>"We do not accept glorification of violence, calls for murder, death threats, terrorism and militarism."}, + {"id"=>"15", + "text"=> + "We do not accept (neo)colonialism (incl. Zionism), imperialism in all forms and nationalism (above all nationalism of nation states, incl. flags/symbols of those on Todon.*, see our Terms of Service)."}, + {"id"=>"16", "text"=>"We do not accept fascism, right-wing populism, and right-wing and religious extremism."}, + {"id"=>"17", + "text"=>"We do not accept evangelisation and other forms of religious propaganda [local only], and extreme sects and cults."}, + {"id"=>"19", + "text"=> + "We do not accept Marxist-Leninists, Stalinists, Maoists or other followers of extreme authoritarian (so called) communist/socialist ideologies/regimes (aka tankies)."}, + {"id"=>"20", "text"=>"We do not accept capitalists, including so called 'anarcho-capitalists' (aka ancaps) and neoliberals."}, + {"id"=>"21", + "text"=> + "We do not accept anthropogenic climate change denial, downplaying the climate crisis, greenwashing and deceptive climate solutions (like nuclear energy)."}, + {"id"=>"27", "text"=>"We do not accept (right-wing) conspiracy 'theories', hoaxes, fake news and other forms of disinformation."}, + {"id"=>"28", "text"=>"Another rule in our terms of service at wiki.todon.eu/todon/terms_en. Explain in the final step."}]}, +{"uri"=>"mastodon.mauve.moe", + "title"=>"Mauvestodon", + "short_description"=>"Escape ship from centralized social media run by Mauve.", + "description"=>"Chat about random techie and anarchist stuff.", + "email"=>"contact@mauve.moe", + "version"=>"3.5.10", + "urls"=>{"streaming_api"=>"wss://mastodon.mauve.moe"}, + "stats"=>{"user_count"=>12, "status_count"=>3287, "domain_count"=>11625}, + "thumbnail"=>"https://mastodon.mauve.moe/system/site_uploads/files/000/000/001/original/mauvesoftwareinc.png", + "languages"=>["en"], + "registrations"=>false, + "approval_required"=>false, + "invites_enabled"=>true, + "configuration"=> + {"statuses"=>{"max_characters"=>500, "max_media_attachments"=>4, "characters_reserved_per_url"=>23}, + "media_attachments"=> + {"supported_mime_types"=> + ["image/jpeg", + "image/png", + "image/gif", + "video/webm", + "video/mp4", + "video/quicktime", + "video/ogg", + "audio/wave", + "audio/wav", + "audio/x-wav", + "audio/x-pn-wave", + "audio/ogg", + "audio/vorbis", + "audio/mpeg", + "audio/mp3", + "audio/webm", + "audio/flac", + "audio/aac", + "audio/m4a", + "audio/x-m4a", + "audio/mp4", + "audio/3gpp", + "video/x-ms-asf"], + "image_size_limit"=>10485760, + "image_matrix_limit"=>16777216, + "video_size_limit"=>41943040, + "video_frame_rate_limit"=>60, + "video_matrix_limit"=>2304000}, + "polls"=>{"max_options"=>4, "max_characters_per_option"=>50, "min_expiration"=>300, "max_expiration"=>2629746}}, + "contact_account"=> + {"id"=>"1", + "username"=>"admin", + "acct"=>"admin", + "display_name"=>"", + "locked"=>false, + "bot"=>false, + "discoverable"=>true, + "group"=>false, + "created_at"=>"2022-04-25T00:00:00.000Z", + "note"=>"", + "url"=>"https://mastodon.mauve.moe/@admin", + "avatar"=>"https://mastodon.mauve.moe/system/accounts/avatars/000/000/001/original/8c21e71667b48a95.png", + "avatar_static"=>"https://mastodon.mauve.moe/system/accounts/avatars/000/000/001/original/8c21e71667b48a95.png", + "header"=>"https://mastodon.mauve.moe/headers/original/missing.png", + "header_static"=>"https://mastodon.mauve.moe/headers/original/missing.png", + "followers_count"=>0, + "following_count"=>0, + "statuses_count"=>0, + "last_status_at"=>"2023-01-30", + "emojis"=>[], + "fields"=> + [{"name"=>"Alternatel Contact", + "value"=> + "@mauve", + "verified_at"=>nil}]}, + "rules"=>[]} + + + + ] + + end +end diff --git a/app/controllers/posts_controller.rb b/app/controllers/posts_controller.rb index 057c3068..8b4d975f 100644 --- a/app/controllers/posts_controller.rb +++ b/app/controllers/posts_controller.rb @@ -81,6 +81,78 @@ class PostsController < ApplicationController authorize post breadcrumb post.title.value, site_post_path(site, post, locale: locale), match: :exact breadcrumb 'posts.edit', '' + + @moderation_queue = [ + +{"@context"=> + ["https://www.w3.org/ns/activitystreams", + {"ostatus"=>"http://ostatus.org#", + "atomUri"=>"ostatus:atomUri", + "inReplyToAtomUri"=>"ostatus:inReplyToAtomUri", + "conversation"=>"ostatus:conversation", + "sensitive"=>"as:sensitive", + "toot"=>"http://joinmastodon.org/ns#", + "votersCount"=>"toot:votersCount", + "Hashtag"=>"as:Hashtag"}], + "id"=>"https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041", + "type"=>"Note", + "summary"=>nil, + "inReplyTo"=>"https://mastodon.mauve.moe/users/mauve/statuses/111461923538534886", + "published"=>"2023-11-23T22:50:10Z", + "url"=>"https://mastodon.mauve.moe/@mauve/111462305634770041", + "attributedTo"=>"https://mastodon.mauve.moe/users/mauve", + "to"=>["https://www.w3.org/ns/activitystreams#Public"], + "cc"=>["https://mastodon.mauve.moe/users/mauve/followers", "https://hypha.coop/about.jsonld"], + "sensitive"=>false, + "atomUri"=>"https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041", + "inReplyToAtomUri"=>"https://mastodon.mauve.moe/users/mauve/statuses/111461923538534886", + "conversation"=>"tag:mastodon.mauve.moe,2023-11-23:objectId=551471:objectType=Conversation", + "content"=> + "

Follow @HyphaCoop@hypha.coop for our announcement post on the 5th!

#P2P #ActivityPub #Fediverse

", + "contentMap"=> + {"en"=> + "

Follow @HyphaCoop@hypha.coop for our announcement post on the 5th!

#P2P #ActivityPub #Fediverse

"}, + "attachment"=>[], + "tag"=> + [{"type"=>"Mention", "href"=>"https://hypha.coop/about.jsonld", "name"=>"@dripline@hypha.coop"}, + {"type"=>"Hashtag", "href"=>"https://mastodon.mauve.moe/tags/p2p", "name"=>"#p2p"}, + {"type"=>"Hashtag", "href"=>"https://mastodon.mauve.moe/tags/activitypub", "name"=>"#activitypub"}, + {"type"=>"Hashtag", "href"=>"https://mastodon.mauve.moe/tags/fediverse", "name"=>"#fediverse"}], + "replies"=> + {"id"=>"https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041/replies", + "type"=>"Collection", + "first"=> + {"type"=>"CollectionPage", + "next"=>"https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041/replies?only_other_accounts=true&page=true", + "partOf"=>"https://mastodon.mauve.moe/users/mauve/statuses/111462305634770041/replies", + "items"=>[]}}}, +{"@context"=>["https://www.w3.org/ns/activitystreams", {"@language"=>"es", "sensitive"=>"as:sensitive"}], + "type"=>"Note", + "id"=>"https://sutty.nl/lanzamiento-de-publicaciones-distribuidas-en-el-fediverso-a-trav%C3%A9s-de-sutty/", + "summary"=>"Lanzamiento de publicaciones distribuidas en el Fediverso a través de Sutty", + "published"=>"2023-12-04T21:53:05+00:00", + "updated"=>"2023-12-05T20:41:34+00:00", + "attributedTo"=>"https://sutty.nl/about.jsonld", + "to"=>["https://www.w3.org/ns/activitystreams#Public"], + "cc"=>["https://social.distributed.press/v1/@sutty@sutty.nl/followers"], + "inReplyTo"=>"https://hypha.coop/dripline/announcing-dp-social-inbox/", + "sensitive"=>true, + "content"=> + "

Estamos felices y orgulloses de anunciar el lanzamiento de la funcionalidad que permite la publicación en el Fediverso de los artículos de todos los sitios creados a través de Sutty.

Gracias al trabajo conjunto con Distributed Press, Hypha y apoyado por la Filecoin Foundation for the Distributed Web, Sutty hace posible que la seguridad de tu sitio estático se combine con la rápida difusión de tu contenido a través de las redes sociales libres y descentralizadas que constituyen el Fediverso.

Esto se logró a través del desarollo y la integración de dos componentes, trabajados en forma conjunta y colaborativa:

    \n
  1. Social Inbox, desarrollado principalmente Distributed Press. Aporta la funcionalidad de recibir artículos, responder y mencionar otras cuentas en el Fediverso.

  2. \n
  3. Jekyll Activity Pub Plugin, desarrollado principalmente por Sutty. Permite integrar Social Inbox en todos los sitios estáticos generados en Jekyll, admitiendo así la publicación automática de contenido del sitio en el Fediverso.

  4. \n

Sutty integra la funcionalidad completa en su CMS para sitios estáticos en Jekyll, permitiendo gestionarla desde una interfaz en continua mejora de su usabilidad.

Si todavía no estás familiarizade con estos nombres y conceptos, te invitamos a conocer más a continuación, en la sección “Para tecno-curioses”.

Qué significa

Qué permite hacer

Qué se viene

¡Quiero usarlo!

Te invitamos a dar tus primeros pasos de la mano de nuestro tutorial.

Para tecno-curioses

Cómo funciona

Los sitios web y las redes sociales parecen ser especies distintas dentro del Universo de Internet. Al mismo tiempo, las redes sociales corporativas y concentradas como Instagram, Facebook, X (ex Twitter), entre otras, demostraron ser hostiles con algunos grupos o colectivos sociales en particular (censurando contenido, persiguiendo pezones, ocultando publicaciones por color de piel y de pelo, etc.) y con todes sus usuaries en general (vendiendo data en forma masiva, violando acuerdos de privacidad, eligiendo diseños de interfaz y uso que generan ansiedad y adicción, etc.). Pese a esto, siguen funcionando como espacios obligados a la hora de publicitar un emprendimiento o difundir noticias urgentes.

El Fediverso es una red federada, descentralizada y distribuida de redes sociales libres, cada una con sus características, preferencias, grupos de usuaries. Están diseñadas para facilitar el diálogo entre todas ellas. Es decir, para que los contenidos puedan ser visibles y se puedan generar respuestas entre usuaries, fomentando una cultura de participación y pluralidad de voces, basadas en estándares de desarrollo libre y que buscan ser éticos antes que con fines de lucro sin fin.

Los sitios web siguen siendo formatos para medios de comunicación que, debido a sus características, favorecen la difusión de contenidos como artículos multimedia. Permiten adecuar un estilo a una identidad visual del medio, mantener secciones y contenido institucional variado, entre otras cosas.

Las redes sociales se destacan por sus características de inmediatez, favoreciendo un flujo dialógico en tiempo real con otros tiempos de atención y características de navegación que lo hacen más breve, rápido, a veces efímero. Los medios de comunicación (personas o emprendimientos mediáticos) suelen utilizarlos para llamar la atención sobre contenidos publicados en sus sitios, apostando a la divulgación rápida y las discusiones que puedan darse entre usuaries.

La funcionalidad que desarrollamos en Sutty contempla los casos de uso en los que un contenido quiera ser compartido a más personas, en menor tiempo, con la posibilidad de generar diálogos. Las particularidades de nuestros sitios y redes sociales libres generan condiciones favorables para la libertad de expresión, que preferimos llamar Derecho a la Comunicación, evadiendo las variadas y cada vez más sofisticadas formas de censura de las plataformas corporativas tradicionales. Un contenido reproducido en varios lugares al mismo tiempo ayuda a su divulgación y es ideal para aquellas voces y discursos contrahegemónicos en la web y su supervivencia al paso del tiempo, preservando la memoria popular.

Cómo funciona el Fediverso en la moderación

El Fediverso intenta funcionar como comunidades en línea interconectadas que se autogobiernan en las formas de cuidados colectivos. Así, cada instancia podría ser algo así como un municipio que aloja diferentes cuentas/usuaries bajo unas reglas consensuadas y que pueden ser puestas en discusión si fuera necesario. De esta forma, es posible regular la circulación de contenidos fascistas y discursos de odio que puedan dañar no solamente la participación de diverses usuaries sino también su salud.

Para ello, cada instancia elige sus formas de moderación y puede excluir otras instancias con denuncias previas de contenidos antidemocráticos, odiantes o contrarios a los valores y cuidados de sus habitantes.

En Sutty en particular, nos interesan las estrategias y los mecanismos de cuidados colectivos, por lo que seguimos diseñando modelos que permitan sostenerlos en nuestras tecnologías. Podés revisar nuestros términos y condiciones, política de privacidad y acuerdos de convivencia para más información.

¿Te interesa participar?

Si sos parte de una organización social, grupo de activismo o colectivo social que pensás que podría beneficiarse de estas características, te invitamos a contactarnos a través de nuestro formulario. Estamos busando mejorar los usos de las tecnologías para ustedes y valoramos sus experiencias.

Otras posibilidades de integración de Social Inbox en sitios estáticos

Si te interesa incorporar esta funcionalidad para otros gestores de sitios estáticos, no dudes en contactarnos. Además, mantenete al tanto de las novedades que compartimos en https://dweb.sutty.nl y en nuestro blog https://sutty.nl/blog

Recomendado para saber más

\n", + "name"=>"Lanzamiento de publicaciones distribuidas en el Fediverso a través de Sutty", + "contentMap"=> + {"es"=> + "

Estamos felices y orgulloses de anunciar el lanzamiento de la funcionalidad que permite la publicación en el Fediverso de los artículos de todos los sitios creados a través de Sutty.

Gracias al trabajo conjunto con Distributed Press, Hypha y apoyado por la Filecoin Foundation for the Distributed Web, Sutty hace posible que la seguridad de tu sitio estático se combine con la rápida difusión de tu contenido a través de las redes sociales libres y descentralizadas que constituyen el Fediverso.

Esto se logró a través del desarollo y la integración de dos componentes, trabajados en forma conjunta y colaborativa:

    \n
  1. Social Inbox, desarrollado principalmente Distributed Press. Aporta la funcionalidad de recibir artículos, responder y mencionar otras cuentas en el Fediverso.

  2. \n
  3. Jekyll Activity Pub Plugin, desarrollado principalmente por Sutty. Permite integrar Social Inbox en todos los sitios estáticos generados en Jekyll, admitiendo así la publicación automática de contenido del sitio en el Fediverso.

  4. \n

Sutty integra la funcionalidad completa en su CMS para sitios estáticos en Jekyll, permitiendo gestionarla desde una interfaz en continua mejora de su usabilidad.

Si todavía no estás familiarizade con estos nombres y conceptos, te invitamos a conocer más a continuación, en la sección “Para tecno-curioses”.

Qué significa

Qué permite hacer

Qué se viene

¡Quiero usarlo!

Te invitamos a dar tus primeros pasos de la mano de nuestro tutorial.

Para tecno-curioses

Cómo funciona

Los sitios web y las redes sociales parecen ser especies distintas dentro del Universo de Internet. Al mismo tiempo, las redes sociales corporativas y concentradas como Instagram, Facebook, X (ex Twitter), entre otras, demostraron ser hostiles con algunos grupos o colectivos sociales en particular (censurando contenido, persiguiendo pezones, ocultando publicaciones por color de piel y de pelo, etc.) y con todes sus usuaries en general (vendiendo data en forma masiva, violando acuerdos de privacidad, eligiendo diseños de interfaz y uso que generan ansiedad y adicción, etc.). Pese a esto, siguen funcionando como espacios obligados a la hora de publicitar un emprendimiento o difundir noticias urgentes.

El Fediverso es una red federada, descentralizada y distribuida de redes sociales libres, cada una con sus características, preferencias, grupos de usuaries. Están diseñadas para facilitar el diálogo entre todas ellas. Es decir, para que los contenidos puedan ser visibles y se puedan generar respuestas entre usuaries, fomentando una cultura de participación y pluralidad de voces, basadas en estándares de desarrollo libre y que buscan ser éticos antes que con fines de lucro sin fin.

Los sitios web siguen siendo formatos para medios de comunicación que, debido a sus características, favorecen la difusión de contenidos como artículos multimedia. Permiten adecuar un estilo a una identidad visual del medio, mantener secciones y contenido institucional variado, entre otras cosas.

Las redes sociales se destacan por sus características de inmediatez, favoreciendo un flujo dialógico en tiempo real con otros tiempos de atención y características de navegación que lo hacen más breve, rápido, a veces efímero. Los medios de comunicación (personas o emprendimientos mediáticos) suelen utilizarlos para llamar la atención sobre contenidos publicados en sus sitios, apostando a la divulgación rápida y las discusiones que puedan darse entre usuaries.

La funcionalidad que desarrollamos en Sutty contempla los casos de uso en los que un contenido quiera ser compartido a más personas, en menor tiempo, con la posibilidad de generar diálogos. Las particularidades de nuestros sitios y redes sociales libres generan condiciones favorables para la libertad de expresión, que preferimos llamar Derecho a la Comunicación, evadiendo las variadas y cada vez más sofisticadas formas de censura de las plataformas corporativas tradicionales. Un contenido reproducido en varios lugares al mismo tiempo ayuda a su divulgación y es ideal para aquellas voces y discursos contrahegemónicos en la web y su supervivencia al paso del tiempo, preservando la memoria popular.

Cómo funciona el Fediverso en la moderación

El Fediverso intenta funcionar como comunidades en línea interconectadas que se autogobiernan en las formas de cuidados colectivos. Así, cada instancia podría ser algo así como un municipio que aloja diferentes cuentas/usuaries bajo unas reglas consensuadas y que pueden ser puestas en discusión si fuera necesario. De esta forma, es posible regular la circulación de contenidos fascistas y discursos de odio que puedan dañar no solamente la participación de diverses usuaries sino también su salud.

Para ello, cada instancia elige sus formas de moderación y puede excluir otras instancias con denuncias previas de contenidos antidemocráticos, odiantes o contrarios a los valores y cuidados de sus habitantes.

En Sutty en particular, nos interesan las estrategias y los mecanismos de cuidados colectivos, por lo que seguimos diseñando modelos que permitan sostenerlos en nuestras tecnologías. Podés revisar nuestros términos y condiciones, política de privacidad y acuerdos de convivencia para más información.

¿Te interesa participar?

Si sos parte de una organización social, grupo de activismo o colectivo social que pensás que podría beneficiarse de estas características, te invitamos a contactarnos a través de nuestro formulario. Estamos busando mejorar los usos de las tecnologías para ustedes y valoramos sus experiencias.

Otras posibilidades de integración de Social Inbox en sitios estáticos

Si te interesa incorporar esta funcionalidad para otros gestores de sitios estáticos, no dudes en contactarnos. Además, mantenete al tanto de las novedades que compartimos en https://dweb.sutty.nl y en nuestro blog https://sutty.nl/blog

Recomendado para saber más

\n"}, + "attachment"=> + [{"type"=>"Document", + "mediaType"=>"image/png", + "url"=>"https://sutty.nl/public/8r7b6ohqy6xzgngxbol6337q8jj9/milestone_2_activity_pub_2.png", + "name"=>"Botones de colores para activar la \"Web Disribuida\" y el \"Fediverso\"."}]} + + + ] + + end def update diff --git a/config/routes.rb b/config/routes.rb index 635be07a..664a4ab3 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -50,6 +50,10 @@ Rails.application.routes.draw do get 'collaborate', to: 'collaborations#collaborate' post 'collaborate', to: 'collaborations#accept_collaboration' + get 'moderation_queue', to: 'moderation_queue#index' + get 'remote_profile', to: 'moderation_queue#remote_profile' + get 'instances', to: 'moderation_queue#instances' + # Gestionar artículos según idioma nested do scope '/(:locale)', constraint: /[a-z]{2}(-[A-Z]{2})?/ do