Derniers messages sur Zeste de Savoirhttps://zestedesavoir.com/forums/2024-03-22T23:53:06+01:00Les derniers messages parus sur le forum de Zeste de Savoir.[ActivityPub] Faire fonctionner chactivityserver, message #2543862024-03-22T23:53:06+01:00ache/@achehttps://zestedesavoir.com/forums/sujet/17374/activitypub-faire-fonctionner-chactivityserver/?page=1#p254386<figure><img src="/media/galleries/5790/7c63dd34-dfc3-49ab-8dc8-6d900f05eb49.png" alt="image.png" loading="lazy"><figcaption>image.png</figcaption></figure>
<p>Yeah ! \o/</p>
<p>Solution donnée par <a href="https://github.com/mastodon/mastodon/issues/29709">les mainteneurs de Mastodon</a>.</p>
<p>Ça marche nickel. Il faut rajouter le bon <code>content-type</code>.<br>
Je proposerais un patch dans la soirée.</p>[ActivityPub] Faire fonctionner chactivityserver, message #2543852024-03-22T19:35:57+01:00AmarOk/@AmarOkhttps://zestedesavoir.com/forums/sujet/17374/activitypub-faire-fonctionner-chactivityserver/?page=1#p254385<p>J’ai une autre theorie.</p>
<p><a href="/@chef" rel="nofollow" class="ping ping-link">@<span class="ping-username">chef</span></a><a href="/@cha-cu" rel="nofollow" class="ping ping-link">@<span class="ping-username">cha-cu</span></a>.it date de quelques années maintenant. Donc suremnet indexé à plein d’endroits</p>
<p>en comparant les JSON, je vois plusieurs clés de plus comme:</p>
<div class="hljs-code-div hljs-code-text"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span><span data-count="3"></span><span data-count="4"></span><span data-count="5"></span></div><pre><code class="hljs language-text">
"featured": "https://mastodon.social/users/AmarOk/collections/featured",
"featuredTags": "https://mastodon.social/users/AmarOk/collections/tags",
"indexable": false,
"memorial": false,
</code></pre></div>
<p>Probable que le profile s’attende à avoir ca maintenant sur mastodon.</p>
<p>Quick and dirty patch:</p>
<div class="hljs-code-div hljs-code-text"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span><span data-count="3"></span><span data-count="4"></span><span data-count="5"></span><span data-count="6"></span><span data-count="7"></span><span data-count="8"></span><span data-count="9"></span><span data-count="10"></span><span data-count="11"></span><span data-count="12"></span><span data-count="13"></span><span data-count="14"></span><span data-count="15"></span><span data-count="16"></span><span data-count="17"></span><span data-count="18"></span><span data-count="19"></span><span data-count="20"></span><span data-count="21"></span><span data-count="22"></span><span data-count="23"></span><span data-count="24"></span><span data-count="25"></span><span data-count="26"></span><span data-count="27"></span><span data-count="28"></span><span data-count="29"></span><span data-count="30"></span><span data-count="31"></span><span data-count="32"></span><span data-count="33"></span><span data-count="34"></span><span data-count="35"></span><span data-count="36"></span></div><pre><code class="hljs language-text"> chactivityserver/src/profile.rs | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/chactivityserver/src/profile.rs b/chactivityserver/src/profile.rs
index 5591bda..c3a8580 100644
--- a/chactivityserver/src/profile.rs
+++ b/chactivityserver/src/profile.rs
@@ -53,6 +53,8 @@ impl Profile {
],
"id": format!("https://{}/users/{}", self.config.domain, self.config.user),
"type": "Person",
+ "memorial": false,
+ "indexable": false,
"following": format!("https://{}/users/{}/following", self.config.domain, self.config.user),
"followers": format!("https://{}/users/{}/followers", self.config.domain, self.config.user),
"inbox": format!("https://{}/users/{}/inbox", self.config.domain, self.config.user),
@@ -98,6 +100,10 @@ impl Profile {
json!({
"manuallyApprovesFollowers": "as:manuallyApprovesFollowers",
"toot": "http://joinmastodon.org/ns#",
+ "featured": {
+ "@id": "toot:featured",
+ "@type": "@id"
+ },
"featuredTags": {
"@id": "toot:featuredTags",
"@type": "@id"
@@ -141,6 +147,8 @@ impl Profile {
"messageType": "toot:messageType",
"cipherText": "toot:cipherText",
"suspended": "toot:suspended",
+ "memorial": "toot:memorial",
+ "indexable": "toot:indexable",
"focalPoint": {
"@container": "@list",
"@id": "toot:focalPoint"
</code></pre></div>
<p>Si tu veux test</p>
<p>Dans ce cas, ca demanderais des changements dans <code>profile.rs</code></p>[ActivityPub] Faire fonctionner chactivityserver, message #2543842024-03-22T19:10:01+01:00ache/@achehttps://zestedesavoir.com/forums/sujet/17374/activitypub-faire-fonctionner-chactivityserver/?page=1#p254384<p>Je tiens peut-être un truc.</p>
<p>J’ai réussi à faire un WebFinger !<br>
Il faut faire une recherche et pas un lookup.
Donc grosso modo, il faut utiliser ça:</p>
<figure><img src="/media/galleries/5790/e576bc17-d041-4be4-af9f-f078e972ca2a.png" alt="image.png" loading="lazy"><figcaption>image.png</figcaption></figure>
<p>Qui va faire un WebFinger pour afficher les résultats si on tape un nom d’utilisateur externe (<a href="mailto:ache@mastodon.xyz">ache@mastodon.xyz</a>).</p>
<p>Donc j’ai ceci quand je fais une recherche sur <a href="mailto:ache@re7.ache.one">ache@re7.ache.one</a>:</p>
<details class="custom-block custom-block-spoiler"><div class="custom-block-body"><div class="hljs-code-div hljs-code-plain"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span><span data-count="3"></span><span data-count="4"></span><span data-count="5"></span><span data-count="6"></span><span data-count="7"></span><span data-count="8"></span><span data-count="9"></span><span data-count="10"></span><span data-count="11"></span><span data-count="12"></span><span data-count="13"></span><span data-count="14"></span><span data-count="15"></span><span data-count="16"></span><span data-count="17"></span><span data-count="18"></span><span data-count="19"></span><span data-count="20"></span><span data-count="21"></span><span data-count="22"></span><span data-count="23"></span><span data-count="24"></span><span data-count="25"></span><span data-count="26"></span><span data-count="27"></span><span data-count="28"></span><span data-count="29"></span><span data-count="30"></span><span data-count="31"></span><span data-count="32"></span><span data-count="33"></span><span data-count="34"></span><span data-count="35"></span><span data-count="36"></span><span data-count="37"></span><span data-count="38"></span><span data-count="39"></span><span data-count="40"></span><span data-count="41"></span><span data-count="42"></span><span data-count="43"></span><span data-count="44"></span><span data-count="45"></span><span data-count="46"></span><span data-count="47"></span><span data-count="48"></span><span data-count="49"></span></div><pre><code class="hljs language-plain">17:54:50 web.1 | Started GET "/api/v2/search?q=%40ache%40re7.ache.one&resolve=true&limit=11" for 10.0.2.2 at 2024-03-22 17:54:50 +0000
17:54:50 web.1 | Cache read: blocked_ips ({:compress=>true, :compress_threshold=>1024})
17:54:50 web.1 | Cache generate: blocked_ips ({:compress=>true, :compress_threshold=>1024})
17:54:50 web.1 | IpBlock Pluck (0.1ms) SELECT "ip_blocks"."ip" FROM "ip_blocks" WHERE "ip_blocks"."severity" = $1 [["severity", 9999]]
17:54:50 web.1 | ↳ app/models/ip_block.rb:39:in `block in blocked?'
17:54:50 web.1 | Cache write: blocked_ips ({:compress=>true, :compress_threshold=>1024})
17:54:50 web.1 | Doorkeeper::AccessToken Load (0.1ms) SELECT "oauth_access_tokens".* FROM "oauth_access_tokens" WHERE "oauth_access_tokens"."token" = $1 LIMIT $2 [["token", "[FILTERED]"], ["LIMIT", 1]]
17:54:50 web.1 | ↳ config/initializers/rack_attack.rb:10:in `authenticated_token'
17:54:50 web.1 | Cache write: rack::attack:5703766:throttle_authenticated_api:1 ({:compress=>true, :compress_threshold=>1024, :expires_in=>11})
17:54:50 web.1 | Cache write: rack::attack:5703766:throttle_per_token_api:5 ({:compress=>true, :compress_threshold=>1024, :expires_in=>11})
17:54:50 web.1 | Processing by Api::V2::SearchController#index as HTML
17:54:50 web.1 | Parameters: {"q"=>"@ache@re7.ache.one", "resolve"=>"true", "limit"=>"11"}
17:54:50 web.1 | CACHE Doorkeeper::AccessToken Load (0.0ms) SELECT "oauth_access_tokens".* FROM "oauth_access_tokens" WHERE "oauth_access_tokens"."token" = $1 LIMIT $2 [["token", "[FILTERED]"], ["LIMIT", 1]]
17:54:50 web.1 | ↳ app/controllers/api/base_controller.rb:58:in `current_resource_owner'
17:54:50 web.1 | User Load (0.1ms) SELECT "users"."id", "users"."email", "users"."created_at", "users"."updated_at", "users"."encrypted_password", "users"."reset_password_token", "users"."reset_password_sent_at", "users"."sign_in_count", "users"."current_sign_in_at", "users"."last_sign_in_at", "users"."confirmation_token", "users"."confirmed_at", "users"."confirmation_sent_at", "users"."unconfirmed_email", "users"."locale", "users"."encrypted_otp_secret", "users"."encrypted_otp_secret_iv", "users"."encrypted_otp_secret_salt", "users"."consumed_timestep", "users"."otp_required_for_login", "users"."last_emailed_at", "users"."otp_backup_codes", "users"."account_id", "users"."disabled", "users"."invite_id", "users"."chosen_languages", "users"."created_by_application_id", "users"."approved", "users"."sign_in_token", "users"."sign_in_token_sent_at", "users"."webauthn_id", "users"."sign_up_ip", "users"."role_id", "users"."settings", "users"."time_zone" FROM "users" WHERE "users"."id" = $1 LIMIT $2 [["id", 1], ["LIMIT", 1]]
17:54:50 web.1 | ↳ app/controllers/api/base_controller.rb:58:in `current_resource_owner'
17:54:50 web.1 | SessionActivation Load (0.1ms) SELECT "session_activations".* FROM "session_activations" WHERE "session_activations"."session_id" = $1 LIMIT $2 [["session_id", "344f7dc54308ebb2fabaacb4f95eec2d"], ["LIMIT", 1]]
17:54:50 web.1 | ↳ app/controllers/application_controller.rb:156:in `current_session'
17:54:50 web.1 | Account Load (0.2ms) SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2 [["id", 112136525779164011], ["LIMIT", 1]]
17:54:50 web.1 | ↳ app/controllers/api/base_controller.rb:72:in `require_not_suspended!'
17:54:50 web.1 | Unpermitted parameters: :q, :resolve, :limit. Context: { controller: Api::V2::SearchController, action: index, request: #<ActionDispatch::Request:0x00007f2c27c41238>, params: {"q"=>"@ache@re7.ache.one", "resolve"=>"true", "limit"=>"11", "controller"=>"api/v2/search", "action"=>"index"} }
17:54:50 web.1 | DomainBlock Load (0.2ms) SELECT "domain_blocks".* FROM "domain_blocks" WHERE "domain_blocks"."domain" IN ($1, $2, $3) ORDER BY CHAR_LENGTH(domain) DESC LIMIT $4 [["domain", "re7.ache.one"], ["domain", "ache.one"], ["domain", "one"], ["LIMIT", 1]]
17:54:50 web.1 | ↳ app/models/domain_block.rb:73:in `rule_for'
17:54:50 web.1 | Account Load (0.2ms) SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE LOWER("accounts"."username") != '' AND LOWER("accounts"."username") = 'ache' AND LOWER("accounts"."domain") = 're7.ache.one' ORDER BY "accounts"."id" ASC LIMIT $1 [["LIMIT", 1]]
17:54:50 web.1 | ↳ app/models/concerns/account/finder_concern.rb:41:in `account'
17:54:50 web.1 | [httplog] GET https://re7.ache.one/.well-known/webfinger?resource=acct:ache@re7.ache.one completed with status code 200 in 0.05281 seconds
17:54:50 web.1 | CACHE DomainBlock Load (0.0ms) SELECT "domain_blocks".* FROM "domain_blocks" WHERE "domain_blocks"."domain" IN ($1, $2, $3) ORDER BY CHAR_LENGTH(domain) DESC LIMIT $4 [["domain", "re7.ache.one"], ["domain", "ache.one"], ["domain", "one"], ["LIMIT", 1]]
17:54:50 web.1 | ↳ app/models/domain_block.rb:73:in `rule_for'
17:54:50 web.1 | CACHE Account Load (0.0ms) SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE LOWER("accounts"."username") != '' AND LOWER("accounts"."username") = 'ache' AND LOWER("accounts"."domain") = 're7.ache.one' ORDER BY "accounts"."id" ASC LIMIT $1 [["LIMIT", 1]]
17:54:50 web.1 | ↳ app/models/concerns/account/finder_concern.rb:41:in `account'
17:54:50 web.1 | CACHE DomainBlock Load (0.0ms) SELECT "domain_blocks".* FROM "domain_blocks" WHERE "domain_blocks"."domain" IN ($1, $2, $3) ORDER BY CHAR_LENGTH(domain) DESC LIMIT $4 [["domain", "re7.ache.one"], ["domain", "ache.one"], ["domain", "one"], ["LIMIT", 1]]
17:54:50 web.1 | ↳ app/models/domain_block.rb:73:in `rule_for'
17:54:50 web.1 | Account Load (0.2ms) SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2 [["id", -99], ["LIMIT", 1]]
17:54:50 web.1 | ↳ app/models/concerns/account/finder_concern.rb:16:in `representative'
17:54:50 web.1 | [httplog] GET https://re7.ache.one/users/ache completed with status code 200 in 0.025295 seconds
17:54:50 web.1 | Fetching actor https://re7.ache.one/users/ache failed: Error fetching actor JSON at https://re7.ache.one/users/ache
17:54:50 web.1 | Follow Pluck (0.2ms) SELECT "follows"."target_account_id" FROM "follows" WHERE "follows"."account_id" = $1 [["account_id", 112136525779164011]]
17:54:50 web.1 | ↳ app/services/account_search_service.rb:120:in `following_ids'
17:54:50 web.1 | [httplog] POST http://localhost:9200/accounts/_search completed with status code 200 in 0.003317 seconds
17:54:50 web.1 | AccountsIndex Search (4.4ms) {:index=>["accounts"], :body=>{:size=>11, :from=>0, :query=>{:bool=>{:must=>{:function_score=>{:query=>{:bool=>{:must=>[{:multi_match=>{:query=>"ache@re7.ache.one", :type=>"most_fields", :fields=>["username^2", "display_name^2", "text", "text.*"], :operator=>"and"}}], :must_not=>[]}}, :functions=>[{:script_score=>{:script=>{:source=>"(Math.max(doc['followers_count'].value, 0) + 0.0) / (Math.max(doc['followers_count'].value, 0) + Math.max(doc['following_count'].value, 0) + 1)"}}}, {:script_score=>{:script=>{:source=>"(Math.max(doc['followers_count'].value, 0) / (Math.max(doc['followers_count'].value, 0) + 1))"}}}, {:gauss=>{:last_status_at=>{:scale=>"30d", :offset=>"30d", :decay=>0.3}}}]}}, :should=>[{:terms=>{:id=>[112136525779164011], :boost=>100}}]}}}}
17:54:50 web.1 | [httplog] POST http://localhost:9200/public_statuses,statuses/_search completed with status code 200 in 0.003019 seconds
17:54:50 web.1 | [PublicStatusesIndex, StatusesIndex] Search (3.7ms) {:index=>["public_statuses", "statuses"], :body=>{:collapse=>{"field"=>:id}, :sort=>[{"id"=>{:order=>:desc}}], :size=>11, :from=>0, :query=>{:bool=>{:must=>{:multi_match=>{:type=>"most_fields", :query=>"@ache@re7.ache.one", :fields=>["text", "text.stemmed"], :operator=>"and"}}, :filter=>{:bool=>{:should=>[{:term=>{:_index=>"public_statuses"}}, {:bool=>{:must=>[{:term=>{:_index=>"statuses"}}, {:term=>{:searchable_by=>112136525779164011}}]}}], :minimum_should_match=>1}}}}}}
17:54:50 web.1 | [httplog] POST http://localhost:9200/tags/_search completed with status code 404 in 0.001219 seconds
17:54:50 web.1 | TagsIndex Search (2.0ms) {:index=>["tags"], :body=>{:size=>11, :from=>0, :query=>{:function_score=>{:query=>{:multi_match=>{:query=>"@ache@re7.ache.one", :fields=>["name.edge_ngram", "name"], :type=>"most_fields", :operator=>"and"}}, :functions=>[{:field_value_factor=>{:field=>"usage", :modifier=>"log2p", :missing=>0}}, {:gauss=>{:last_status_at=>{:scale=>"7d", :offset=>"14d", :decay=>0.5}}}], :boost_mode=>"multiply"}}}}
17:54:50 web.1 | Tag Load (0.3ms) SELECT "tags".* FROM "tags" WHERE LOWER("tags"."name") = LOWER('achere7acheone') ORDER BY "tags"."id" ASC LIMIT $1 [["LIMIT", 1]]
17:54:50 web.1 | ↳ app/models/tag.rb:141:in `find_normalized'
17:54:50 web.1 | Completed 200 OK in 159ms (Views: 0.5ms | ActiveRecord: 1.6ms | Allocations: 30558)
17:54:50 web.1 |
17:54:50 web.1 |
</code></pre></div></div></details>
<p>Et quelques secondes après un truc comme ça:</p>
<details class="custom-block custom-block-spoiler"><div class="custom-block-body"><div class="hljs-code-div hljs-code-plain"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span><span data-count="3"></span><span data-count="4"></span><span data-count="5"></span><span data-count="6"></span><span data-count="7"></span><span data-count="8"></span><span data-count="9"></span><span data-count="10"></span><span data-count="11"></span><span data-count="12"></span><span data-count="13"></span><span data-count="14"></span><span data-count="15"></span><span data-count="16"></span><span data-count="17"></span><span data-count="18"></span><span data-count="19"></span><span data-count="20"></span><span data-count="21"></span><span data-count="22"></span><span data-count="23"></span><span data-count="24"></span><span data-count="25"></span><span data-count="26"></span><span data-count="27"></span><span data-count="28"></span><span data-count="29"></span><span data-count="30"></span><span data-count="31"></span><span data-count="32"></span><span data-count="33"></span><span data-count="34"></span><span data-count="35"></span><span data-count="36"></span><span data-count="37"></span><span data-count="38"></span><span data-count="39"></span><span data-count="40"></span><span data-count="41"></span></div><pre><code class="hljs language-plain">17:55:04 sidekiq.1 | 2024-03-22T17:55:04.509Z pid=2871 tid=lab INFO: queueing Scheduler::SuspendedUserCleanupScheduler (suspended_user_cleanup_scheduler)
17:55:04 sidekiq.1 | 2024-03-22T17:55:04.510Z pid=2871 tid=ofr class=Scheduler::SuspendedUserCleanupScheduler jid=d5ef9452afa1efa41921ae92 INFO: start
17:55:04 sidekiq.1 | AccountDeletionRequest Load (0.2ms) SELECT "account_deletion_requests".* FROM "account_deletion_requests" ORDER BY "account_deletion_requests"."id" ASC LIMIT $1 [["LIMIT", 10]]
17:55:04 sidekiq.1 | ↳ app/workers/scheduler/suspended_user_cleanup_scheduler.rb:32:in `process_deletion_requests!'
17:55:04 sidekiq.1 | 2024-03-22T17:55:04.582Z pid=2871 tid=ofr class=Scheduler::SuspendedUserCleanupScheduler jid=d5ef9452afa1efa41921ae92 elapsed=0.072 INFO: done
17:55:06 sidekiq.1 | 2024-03-22T17:55:06.319Z pid=2871 tid=lav INFO: queueing Scheduler::AccountsStatusesCleanupScheduler (accounts_statuses_cleanup_scheduler)
17:55:06 sidekiq.1 | 2024-03-22T17:55:06.321Z pid=2871 tid=o5j class=Scheduler::AccountsStatusesCleanupScheduler jid=f39f7ffc728f5fe86996a601 INFO: start
17:55:06 sidekiq.1 | 2024-03-22T17:55:06.321Z pid=2871 tid=kzj INFO: queueing Scheduler::IndexingScheduler (indexing_scheduler)
17:55:06 sidekiq.1 | 2024-03-22T17:55:06.322Z pid=2871 tid=o17 class=Scheduler::IndexingScheduler jid=a436e16473f9bf5a6edd5567 INFO: start
17:55:06 sidekiq.1 | 2024-03-22T17:55:06.439Z pid=2871 tid=o17 class=Scheduler::IndexingScheduler jid=a436e16473f9bf5a6edd5567 elapsed=0.117 INFO: done
17:55:06 sidekiq.1 | AccountStatusesCleanupPolicy Load (0.3ms) SELECT "account_statuses_cleanup_policies".* FROM "account_statuses_cleanup_policies" WHERE "account_statuses_cleanup_policies"."enabled" = $1 AND "account_statuses_cleanup_policies"."id" >= $2 ORDER BY "account_statuses_cleanup_policies"."id" ASC LIMIT $3 [["enabled", true], ["id", 0], ["LIMIT", 1000]]
17:55:06 sidekiq.1 | ↳ app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb:61:in `block in perform'
17:55:06 sidekiq.1 | AccountStatusesCleanupPolicy Load (0.2ms) SELECT "account_statuses_cleanup_policies".* FROM "account_statuses_cleanup_policies" WHERE "account_statuses_cleanup_policies"."enabled" = $1 AND ("account_statuses_cleanup_policies"."id" <= $2 OR 1=0) ORDER BY "account_statuses_cleanup_policies"."id" ASC LIMIT $3 [["enabled", true], ["id", 0], ["LIMIT", 1000]]
17:55:06 sidekiq.1 | ↳ app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb:61:in `block in perform'
17:55:06 sidekiq.1 | 2024-03-22T17:55:06.443Z pid=2871 tid=o5j class=Scheduler::AccountsStatusesCleanupScheduler jid=f39f7ffc728f5fe86996a601 elapsed=0.122 INFO: done
17:55:25 web.1 | Started GET "/api/v1/notifications/policy" for 10.0.2.2 at 2024-03-22 17:55:25 +0000
17:55:25 web.1 | Cache read: blocked_ips ({:compress=>true, :compress_threshold=>1024})
17:55:25 web.1 | Cache generate: blocked_ips ({:compress=>true, :compress_threshold=>1024})
17:55:25 web.1 | IpBlock Pluck (0.1ms) SELECT "ip_blocks"."ip" FROM "ip_blocks" WHERE "ip_blocks"."severity" = $1 [["severity", 9999]]
17:55:25 web.1 | ↳ app/models/ip_block.rb:39:in `block in blocked?'
17:55:25 web.1 | Cache write: blocked_ips ({:compress=>true, :compress_threshold=>1024})
17:55:25 web.1 | Doorkeeper::AccessToken Load (0.1ms) SELECT "oauth_access_tokens".* FROM "oauth_access_tokens" WHERE "oauth_access_tokens"."token" = $1 LIMIT $2 [["token", "[FILTERED]"], ["LIMIT", 1]]
17:55:25 web.1 | ↳ config/initializers/rack_attack.rb:10:in `authenticated_token'
17:55:25 web.1 | Cache write: rack::attack:5703767:throttle_authenticated_api:1 ({:compress=>true, :compress_threshold=>1024, :expires_in=>276})
17:55:25 web.1 | Cache write: rack::attack:5703767:throttle_per_token_api:5 ({:compress=>true, :compress_threshold=>1024, :expires_in=>276})
17:55:25 web.1 | Processing by Api::V1::Notifications::PoliciesController#show as HTML
17:55:25 web.1 | CACHE Doorkeeper::AccessToken Load (0.0ms) SELECT "oauth_access_tokens".* FROM "oauth_access_tokens" WHERE "oauth_access_tokens"."token" = $1 LIMIT $2 [["token", "[FILTERED]"], ["LIMIT", 1]]
17:55:25 web.1 | ↳ app/controllers/api/base_controller.rb:58:in `current_resource_owner'
17:55:25 web.1 | User Load (0.2ms) SELECT "users"."id", "users"."email", "users"."created_at", "users"."updated_at", "users"."encrypted_password", "users"."reset_password_token", "users"."reset_password_sent_at", "users"."sign_in_count", "users"."current_sign_in_at", "users"."last_sign_in_at", "users"."confirmation_token", "users"."confirmed_at", "users"."confirmation_sent_at", "users"."unconfirmed_email", "users"."locale", "users"."encrypted_otp_secret", "users"."encrypted_otp_secret_iv", "users"."encrypted_otp_secret_salt", "users"."consumed_timestep", "users"."otp_required_for_login", "users"."last_emailed_at", "users"."otp_backup_codes", "users"."account_id", "users"."disabled", "users"."invite_id", "users"."chosen_languages", "users"."created_by_application_id", "users"."approved", "users"."sign_in_token", "users"."sign_in_token_sent_at", "users"."webauthn_id", "users"."sign_up_ip", "users"."role_id", "users"."settings", "users"."time_zone" FROM "users" WHERE "users"."id" = $1 LIMIT $2 [["id", 1], ["LIMIT", 1]]
17:55:25 web.1 | ↳ app/controllers/api/base_controller.rb:58:in `current_resource_owner'
17:55:25 web.1 | SessionActivation Load (0.2ms) SELECT "session_activations".* FROM "session_activations" WHERE "session_activations"."session_id" = $1 LIMIT $2 [["session_id", "344f7dc54308ebb2fabaacb4f95eec2d"], ["LIMIT", 1]]
17:55:25 web.1 | ↳ app/controllers/application_controller.rb:156:in `current_session'
17:55:25 web.1 | Account Load (0.2ms) SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2 [["id", 112136525779164011], ["LIMIT", 1]]
17:55:25 web.1 | ↳ app/controllers/api/base_controller.rb:72:in `require_not_suspended!'
17:55:25 web.1 | NotificationPolicy Load (0.2ms) SELECT "notification_policies".* FROM "notification_policies" WHERE "notification_policies"."account_id" = $1 LIMIT $2 [["account_id", 112136525779164011], ["LIMIT", 1]]
17:55:25 web.1 | ↳ app/controllers/api/v1/notifications/policies_controller.rb:22:in `set_policy'
17:55:25 web.1 | NotificationRequest Pluck (0.3ms) SELECT count(*), coalesce(sum(notifications_count), 0)::bigint FROM "notification_requests" WHERE "notification_requests"."account_id" = $1 AND "notification_requests"."dismissed" = $2 LIMIT $3 [["account_id", 112136525779164011], ["dismissed", false], ["LIMIT", 1]]
17:55:25 web.1 | ↳ app/models/notification_policy.rb:34:in `pending_notification_requests'
17:55:25 web.1 | Completed 200 OK in 76ms (Views: 2.0ms | ActiveRecord: 0.9ms | Allocations: 3974)
17:55:25 web.1 |
17:55:25 web.1 |
</code></pre></div></div></details>
<p>Je note que j’ai ça:</p>
<div class="hljs-code-div hljs-code-plain"><pre><code class="hljs language-plain">17:54:50 web.1 | Fetching actor https://re7.ache.one/users/ache failed: Error fetching actor JSON at https://re7.ache.one/users/ache
</code></pre></div>
<p>Alors que je suis bien capable de requêter le JSON.</p>
<div class="hljs-code-div hljs-code-text"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span></div><pre><code class="hljs language-text">$ curl https://re7.ache.one/users/ache
{"@context":["https://www.w3.org/ns/activitystreams","https://w3id.org/security/v1",{"Curve25519Key":"toot:Curve25519Key","Device":"toot:Device","Ed25519Key":"toot:Ed25519Key","Ed25519Signature":"toot:Ed25519Signature","EncryptedMessage":"toot:EncryptedMessage","PropertyValue":"schema:PropertyValue","alsoKnownAs":{"@id":"as:alsoKnownAs","@type":"@id"},"cipherText":"toot:cipherText","claim":{"@id":"toot:claim","@type":"@id"},"deviceId":"toot:deviceId","devices":{"@id":"toot:devices","@type":"@id"},"discoverable":"toot:discoverable","featuredTags":{"@id":"toot:featuredTags","@type":"@id"},"fingerprintKey":{"@id":"toot:fingerprintKey","@type":"@id"},"focalPoint":{"@container":"@list","@id":"toot:focalPoint"},"identityKey":{"@id":"toot:identityKey","@type":"@id"},"manuallyApprovesFollowers":"as:manuallyApprovesFollowers","messageFranking":"toot:messageFranking","messageType":"toot:messageType","movedTo":{"@id":"as:movedTo","@type":"@id"},"publicKeyBase64":"toot:publicKeyBase64","schema":"http://schema.org#","suspended":"toot:suspended","toot":"http://joinmastodon.org/ns#","value":"schema:value"}],"attachment":[{"name":"website","type":"PropertyValue","value":"<a href=\"https://re7.ache.one\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\"><span class=\"invisible\">https://</)span><span class=\"\">re7.ache.one</span><span class=\"invisible\"></span></a>"}],"discoverable":true,"endpoints":{"sharedInbox":"https://re7.ache.one/users/ache/inbox"},"featuredTags":"https://re7.ache.one/tags","followers":"https://re7.ache.one/users/ache/followers","following":"https://re7.ache.one/users/ache/following","icon":{"type":"Image","url":"https://re7.ache.one/chactivityserver/profile.jpg"},"id":"https://re7.ache.one/users/ache","image":{"mediaType":"image/jpeg","type":"Image","url":"https://re7.ache.one/logo.png"},"inbox":"https://re7.ache.one/users/ache/inbox","manuallyApprovesFollowers":false,"name":"ache","outbox":"https://re7.ache.one/users/ache/outbox","preferredUsername":"ache","publicKey":{"id":"https://re7.ache.one/users/ache#main-key","owner":"https://re7.ache.one/users/ache","publicKeyPem":"-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEVFk216dz7oneIM5nBpC5tkquLIdz\nqxZz5xvQFGn0qdUPNnHXk3214eWGDf6O6Qt/6KQO+4d+NjaIXMQiID/N3A==\n-----END PUBLIC KEY-----\n"},"published":"2024-03-22T00:24:56.740496247+00:00","summary":"Un site de recettes de cordon rouge ! re7.ache.one est un petit site de partage de recettes en tout genre. Les recettes sont en grande partie réalisées sous la supervision de Rouge, le renard.","tag":[],"type":"Person","url":"https://re7.ache.one/recettes/"}
</code></pre></div>
<p>Si je requête <em>@</em>chef<em>@</em>cha-cu.it j’ai ça:</p>
<details class="custom-block custom-block-spoiler"><div class="custom-block-body"><div class="hljs-code-div hljs-code-text"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span><span data-count="3"></span><span data-count="4"></span><span data-count="5"></span><span data-count="6"></span><span data-count="7"></span><span data-count="8"></span><span data-count="9"></span><span data-count="10"></span><span data-count="11"></span><span data-count="12"></span><span data-count="13"></span><span data-count="14"></span><span data-count="15"></span><span data-count="16"></span><span data-count="17"></span><span data-count="18"></span><span data-count="19"></span><span data-count="20"></span><span data-count="21"></span><span data-count="22"></span><span data-count="23"></span><span data-count="24"></span><span data-count="25"></span><span data-count="26"></span><span data-count="27"></span><span data-count="28"></span><span data-count="29"></span><span data-count="30"></span><span data-count="31"></span><span data-count="32"></span><span data-count="33"></span><span data-count="34"></span><span data-count="35"></span><span data-count="36"></span><span data-count="37"></span><span data-count="38"></span><span data-count="39"></span><span data-count="40"></span><span data-count="41"></span><span data-count="42"></span><span data-count="43"></span><span data-count="44"></span><span data-count="45"></span><span data-count="46"></span><span data-count="47"></span><span data-count="48"></span><span data-count="49"></span><span data-count="50"></span><span data-count="51"></span><span data-count="52"></span><span data-count="53"></span><span data-count="54"></span><span data-count="55"></span><span data-count="56"></span><span data-count="57"></span><span data-count="58"></span><span data-count="59"></span><span data-count="60"></span><span data-count="61"></span><span data-count="62"></span><span data-count="63"></span><span data-count="64"></span><span data-count="65"></span><span data-count="66"></span><span data-count="67"></span><span data-count="68"></span><span data-count="69"></span><span data-count="70"></span><span data-count="71"></span><span data-count="72"></span><span data-count="73"></span><span data-count="74"></span><span data-count="75"></span><span data-count="76"></span></div><pre><code class="hljs language-text">18:03:20 web.1 | Started GET "/api/v2/search?q=%40chef%40cha-cu.it&resolve=true&limit=11" for 10.0.2.2 at 2024-03-22 18:03:20 +0000
18:03:20 web.1 | Started GET "/api/v1/trends/tags" for 10.0.2.2 at 2024-03-22 18:03:20 +0000
18:03:20 web.1 | Cache read: blocked_ips ({:compress=>true, :compress_threshold=>1024})
18:03:20 web.1 | Cache read: blocked_ips ({:compress=>true, :compress_threshold=>1024})
18:03:20 web.1 | Cache generate: blocked_ips ({:compress=>true, :compress_threshold=>1024})
18:03:20 web.1 | Cache generate: blocked_ips ({:compress=>true, :compress_threshold=>1024})
18:03:20 web.1 | IpBlock Pluck (0.1ms) SELECT "ip_blocks"."ip" FROM "ip_blocks" WHERE "ip_blocks"."severity" = $1 [["severity", 9999]]
18:03:20 web.1 | ↳ app/models/ip_block.rb:39:in `block in blocked?'
18:03:20 web.1 | Cache write: blocked_ips ({:compress=>true, :compress_threshold=>1024})
18:03:20 web.1 | IpBlock Pluck (0.1ms) SELECT "ip_blocks"."ip" FROM "ip_blocks" WHERE "ip_blocks"."severity" = $1 [["severity", 9999]]
18:03:20 web.1 | Doorkeeper::AccessToken Load (0.1ms) SELECT "oauth_access_tokens".* FROM "oauth_access_tokens" WHERE "oauth_access_tokens"."token" = $1 LIMIT $2 [["token", "[FILTERED]"], ["LIMIT", 1]]
18:03:20 web.1 | ↳ app/models/ip_block.rb:39:in `block in blocked?'
18:03:20 web.1 | ↳ config/initializers/rack_attack.rb:10:in `authenticated_token'
18:03:20 web.1 | Cache write: blocked_ips ({:compress=>true, :compress_threshold=>1024})
18:03:20 web.1 | Cache write: rack::attack:5703768:throttle_authenticated_api:1 ({:compress=>true, :compress_threshold=>1024, :expires_in=>101})
18:03:20 web.1 | Cache write: rack::attack:5703768:throttle_per_token_api:5 ({:compress=>true, :compress_threshold=>1024, :expires_in=>101})
18:03:20 web.1 | Doorkeeper::AccessToken Load (0.1ms) SELECT "oauth_access_tokens".* FROM "oauth_access_tokens" WHERE "oauth_access_tokens"."token" = $1 LIMIT $2 [["token", "[FILTERED]"], ["LIMIT", 1]]
18:03:20 web.1 | ↳ config/initializers/rack_attack.rb:10:in `authenticated_token'
18:03:20 web.1 | Cache write: rack::attack:5703768:throttle_authenticated_api:1 ({:compress=>true, :compress_threshold=>1024, :expires_in=>101})
18:03:20 web.1 | Cache write: rack::attack:5703768:throttle_per_token_api:5 ({:compress=>true, :compress_threshold=>1024, :expires_in=>101})
18:03:20 web.1 | Processing by Api::V1::Trends::TagsController#index as HTML
18:03:20 web.1 | CACHE Doorkeeper::AccessToken Load (0.0ms) SELECT "oauth_access_tokens".* FROM "oauth_access_tokens" WHERE "oauth_access_tokens"."token" = $1 LIMIT $2 [["token", "[FILTERED]"], ["LIMIT", 1]]
18:03:20 web.1 | ↳ app/controllers/api/base_controller.rb:58:in `current_resource_owner'
18:03:20 web.1 | User Load (0.1ms) SELECT "users"."id", "users"."email", "users"."created_at", "users"."updated_at", "users"."encrypted_password", "users"."reset_password_token", "users"."reset_password_sent_at", "users"."sign_in_count", "users"."current_sign_in_at", "users"."last_sign_in_at", "users"."confirmation_token", "users"."confirmed_at", "users"."confirmation_sent_at", "users"."unconfirmed_email", "users"."locale", "users"."encrypted_otp_secret", "users"."encrypted_otp_secret_iv", "users"."encrypted_otp_secret_salt", "users"."consumed_timestep", "users"."otp_required_for_login", "users"."last_emailed_at", "users"."otp_backup_codes", "users"."account_id", "users"."disabled", "users"."invite_id", "users"."chosen_languages", "users"."created_by_application_id", "users"."approved", "users"."sign_in_token", "users"."sign_in_token_sent_at", "users"."webauthn_id", "users"."sign_up_ip", "users"."role_id", "users"."settings", "users"."time_zone" FROM "users" WHERE "users"."id" = $1 LIMIT $2 [["id", 1], ["LIMIT", 1]]
18:03:20 web.1 | ↳ app/controllers/api/base_controller.rb:58:in `current_resource_owner'
18:03:20 web.1 | SessionActivation Load (0.1ms) SELECT "session_activations".* FROM "session_activations" WHERE "session_activations"."session_id" = $1 LIMIT $2 [["session_id", "344f7dc54308ebb2fabaacb4f95eec2d"], ["LIMIT", 1]]
18:03:20 web.1 | ↳ app/controllers/application_controller.rb:156:in `current_session'
18:03:20 web.1 | Processing by Api::V2::SearchController#index as HTML
18:03:20 web.1 | Parameters: {"q"=>"@chef@cha-cu.it", "resolve"=>"true", "limit"=>"11"}
18:03:20 web.1 | CACHE Doorkeeper::AccessToken Load (0.0ms) SELECT "oauth_access_tokens".* FROM "oauth_access_tokens" WHERE "oauth_access_tokens"."token" = $1 LIMIT $2 [["token", "[FILTERED]"], ["LIMIT", 1]]
18:03:20 web.1 | ↳ app/controllers/api/base_controller.rb:58:in `current_resource_owner'
18:03:20 web.1 | User Load (0.1ms) SELECT "users"."id", "users"."email", "users"."created_at", "users"."updated_at", "users"."encrypted_password", "users"."reset_password_token", "users"."reset_password_sent_at", "users"."sign_in_count", "users"."current_sign_in_at", "users"."last_sign_in_at", "users"."confirmation_token", "users"."confirmed_at", "users"."confirmation_sent_at", "users"."unconfirmed_email", "users"."locale", "users"."encrypted_otp_secret", "users"."encrypted_otp_secret_iv", "users"."encrypted_otp_secret_salt", "users"."consumed_timestep", "users"."otp_required_for_login", "users"."last_emailed_at", "users"."otp_backup_codes", "users"."account_id", "users"."disabled", "users"."invite_id", "users"."chosen_languages", "users"."created_by_application_id", "users"."approved", "users"."sign_in_token", "users"."sign_in_token_sent_at", "users"."webauthn_id", "users"."sign_up_ip", "users"."role_id", "users"."settings", "users"."time_zone" FROM "users" WHERE "users"."id" = $1 LIMIT $2 [["id", 1], ["LIMIT", 1]]
18:03:20 web.1 | ↳ app/controllers/api/base_controller.rb:58:in `current_resource_owner'
18:03:20 web.1 | SessionActivation Load (0.1ms) SELECT "session_activations".* FROM "session_activations" WHERE "session_activations"."session_id" = $1 LIMIT $2 [["session_id", "344f7dc54308ebb2fabaacb4f95eec2d"], ["LIMIT", 1]]
18:03:20 web.1 | ↳ app/controllers/application_controller.rb:156:in `current_session'
18:03:20 web.1 | Account Load (0.2ms) SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2 [["id", 112136525779164011], ["LIMIT", 1]]
18:03:20 web.1 | ↳ app/controllers/api/base_controller.rb:72:in `require_not_suspended!'
18:03:20 web.1 | Cache read: rails_settings_cached/e23eceea1dbbecf09d779eb1d9007c03/trends ({:compress=>true, :compress_threshold=>1024})
18:03:20 web.1 | Cache generate: rails_settings_cached/e23eceea1dbbecf09d779eb1d9007c03/trends ({:compress=>true, :compress_threshold=>1024})
18:03:20 web.1 | Setting Load (0.1ms) SELECT "settings".* FROM "settings" WHERE "settings"."thing_type" IS NULL AND "settings"."thing_id" IS NULL AND "settings"."var" = $1 LIMIT $2 [["var", "trends"], ["LIMIT", 1]]
18:03:20 web.1 | ↳ app/models/setting.rb:80:in `block in []'
18:03:20 web.1 | Cache write: rails_settings_cached/e23eceea1dbbecf09d779eb1d9007c03/trends ({:compress=>true, :compress_threshold=>1024})
18:03:20 web.1 | Completed 200 OK in 64ms (Views: 0.2ms | ActiveRecord: 0.4ms | Allocations: 3539)
18:03:20 web.1 |
18:03:20 web.1 |
18:03:20 web.1 | Account Load (0.2ms) SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2 [["id", 112136525779164011], ["LIMIT", 1]]
18:03:20 web.1 | ↳ app/controllers/api/base_controller.rb:72:in `require_not_suspended!'
18:03:20 web.1 | Unpermitted parameters: :q, :resolve, :limit. Context: { controller: Api::V2::SearchController, action: index, request: #<ActionDispatch::Request:0x00007f2c27aa1180>, params: {"q"=>"@chef@cha-cu.it", "resolve"=>"true", "limit"=>"11", "controller"=>"api/v2/search", "action"=>"index"} }
18:03:20 web.1 | DomainBlock Load (0.3ms) SELECT "domain_blocks".* FROM "domain_blocks" WHERE "domain_blocks"."domain" IN ($1, $2) ORDER BY CHAR_LENGTH(domain) DESC LIMIT $3 [["domain", "cha-cu.it"], ["domain", "it"], ["LIMIT", 1]]
18:03:20 web.1 | ↳ app/models/domain_block.rb:73:in `rule_for'
18:03:20 web.1 | Account Load (0.4ms) SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE LOWER("accounts"."username") != '' AND LOWER("accounts"."username") = 'chef' AND LOWER("accounts"."domain") = 'cha-cu.it' ORDER BY "accounts"."id" ASC LIMIT $1 [["LIMIT", 1]]
18:03:20 web.1 | ↳ app/models/concerns/account/finder_concern.rb:41:in `account'
18:03:21 web.1 | [httplog] GET https://cha-cu.it/.well-known/webfinger?resource=acct:chef@cha-cu.it completed with status code 200 in 0.372209 seconds
18:03:21 web.1 | CACHE DomainBlock Load (0.0ms) SELECT "domain_blocks".* FROM "domain_blocks" WHERE "domain_blocks"."domain" IN ($1, $2) ORDER BY CHAR_LENGTH(domain) DESC LIMIT $3 [["domain", "cha-cu.it"], ["domain", "it"], ["LIMIT", 1]]
18:03:21 web.1 | ↳ app/models/domain_block.rb:73:in `rule_for'
18:03:21 web.1 | CACHE Account Load (0.0ms) SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE LOWER("accounts"."username") != '' AND LOWER("accounts"."username") = 'chef' AND LOWER("accounts"."domain") = 'cha-cu.it' ORDER BY "accounts"."id" ASC LIMIT $1 [["LIMIT", 1]]
18:03:21 web.1 | ↳ app/models/concerns/account/finder_concern.rb:41:in `account'
18:03:21 web.1 | CACHE DomainBlock Load (0.0ms) SELECT "domain_blocks".* FROM "domain_blocks" WHERE "domain_blocks"."domain" IN ($1, $2) ORDER BY CHAR_LENGTH(domain) DESC LIMIT $3 [["domain", "cha-cu.it"], ["domain", "it"], ["LIMIT", 1]]
18:03:21 web.1 | ↳ app/models/domain_block.rb:73:in `rule_for'
18:03:21 web.1 | Account Load (0.3ms) SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2 [["id", -99], ["LIMIT", 1]]
18:03:21 web.1 | ↳ app/models/concerns/account/finder_concern.rb:16:in `representative'
18:03:21 web.1 | [httplog] GET https://cha-cu.it/users/chef completed with status code 200 in 0.343425 seconds
18:03:21 web.1 | Fetching actor https://cha-cu.it/users/chef failed: Error fetching actor JSON at https://cha-cu.it/users/chef
18:03:21 web.1 | Follow Pluck (0.2ms) SELECT "follows"."target_account_id" FROM "follows" WHERE "follows"."account_id" = $1 [["account_id", 112136525779164011]]
18:03:21 web.1 | ↳ app/services/account_search_service.rb:120:in `following_ids'
18:03:21 web.1 | [httplog] POST http://localhost:9200/accounts/_search completed with status code 200 in 0.003074 seconds
18:03:21 web.1 | AccountsIndex Search (6.2ms) {:index=>["accounts"], :body=>{:size=>11, :from=>0, :query=>{:bool=>{:must=>{:function_score=>{:query=>{:bool=>{:must=>[{:multi_match=>{:query=>"chef@cha-cu.it", :type=>"most_fields", :fields=>["username^2", "display_name^2", "text", "text.*"], :operator=>"and"}}], :must_not=>[]}}, :functions=>[{:script_score=>{:script=>{:source=>"(Math.max(doc['followers_count'].value, 0) + 0.0) / (Math.max(doc['followers_count'].value, 0) + Math.max(doc['following_count'].value, 0) + 1)"}}}, {:script_score=>{:script=>{:source=>"(Math.max(doc['followers_count'].value, 0) / (Math.max(doc['followers_count'].value, 0) + 1))"}}}, {:gauss=>{:last_status_at=>{:scale=>"30d", :offset=>"30d", :decay=>0.3}}}]}}, :should=>[{:terms=>{:id=>[112136525779164011], :boost=>100}}]}}}}
18:03:21 web.1 | [httplog] POST http://localhost:9200/public_statuses,statuses/_search completed with status code 200 in 0.003885 seconds
18:03:21 web.1 | [PublicStatusesIndex, StatusesIndex] Search (4.5ms) {:index=>["public_statuses", "statuses"], :body=>{:collapse=>{"field"=>:id}, :sort=>[{"id"=>{:order=>:desc}}], :size=>11, :from=>0, :query=>{:bool=>{:must=>{:multi_match=>{:type=>"most_fields", :query=>"@chef@cha-cu.it", :fields=>["text", "text.stemmed"], :operator=>"and"}}, :filter=>{:bool=>{:should=>[{:term=>{:_index=>"public_statuses"}}, {:bool=>{:must=>[{:term=>{:_index=>"statuses"}}, {:term=>{:searchable_by=>112136525779164011}}]}}], :minimum_should_match=>1}}}}}}
18:03:21 web.1 | [httplog] POST http://localhost:9200/tags/_search completed with status code 404 in 0.001043 seconds
18:03:21 web.1 | TagsIndex Search (1.8ms) {:index=>["tags"], :body=>{:size=>11, :from=>0, :query=>{:function_score=>{:query=>{:multi_match=>{:query=>"@chef@cha-cu.it", :fields=>["name.edge_ngram", "name"], :type=>"most_fields", :operator=>"and"}}, :functions=>[{:field_value_factor=>{:field=>"usage", :modifier=>"log2p", :missing=>0}}, {:gauss=>{:last_status_at=>{:scale=>"7d", :offset=>"14d", :decay=>0.5}}}], :boost_mode=>"multiply"}}}}
18:03:21 web.1 | Tag Load (0.2ms) SELECT "tags".* FROM "tags" WHERE LOWER("tags"."name") = LOWER('chefchacuit') ORDER BY "tags"."id" ASC LIMIT $1 [["LIMIT", 1]]
18:03:21 web.1 | ↳ app/models/tag.rb:141:in `find_normalized'
18:03:21 web.1 | Completed 200 OK in 845ms (Views: 0.4ms | ActiveRecord: 3.9ms | Allocations: 42789)
18:03:21 web.1 |
18:03:21 web.1 |
</code></pre></div></div></details>
<p>Et ça ne marche pas non plus. <img src="/static/smileys/svg/triste.svg" alt=":(" class="smiley"><br>
La même erreur que moi (erreur très générique, va falloir investigué du Ruby je pense …).
Mais c’est possiblement car tu regardes Netflix car cha-cu.it est effectivement en PLS.</p>
<div class="hljs-code-div hljs-code-shell"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span></div><pre><code class="hljs language-shell"><span class="hljs-meta">$</span><span class="bash"> httpx https://cha-cu.it/users/chef</span>
ConnectTimeout: _ssl.c:989: The handshake operation timed out
</code></pre></div>
<p>J’arrive à faire marcher la requête si je la fais plusieurs fois (mais pas sur mastodon.local).</p>
<hr>
<p>Par-contre, si je fais recherche <a href="/@ache" rel="nofollow" class="ping ping-link">@<span class="ping-username">ache</span></a><a href="/@mastodon" rel="nofollow" class="ping ping-link">@<span class="ping-username">mastodon</span></a>.xyz ou </p>
<p>J’ai ça (qui est bien plus long):</p>
<details class="custom-block custom-block-spoiler"><div class="custom-block-body"><div class="hljs-code-div hljs-code-plain"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span><span data-count="3"></span><span data-count="4"></span><span data-count="5"></span><span data-count="6"></span><span data-count="7"></span><span data-count="8"></span><span data-count="9"></span><span data-count="10"></span><span data-count="11"></span><span data-count="12"></span><span data-count="13"></span><span data-count="14"></span><span data-count="15"></span><span data-count="16"></span><span data-count="17"></span><span data-count="18"></span><span data-count="19"></span><span data-count="20"></span><span data-count="21"></span><span data-count="22"></span><span data-count="23"></span><span data-count="24"></span><span data-count="25"></span><span data-count="26"></span><span data-count="27"></span><span data-count="28"></span><span data-count="29"></span><span data-count="30"></span><span data-count="31"></span><span data-count="32"></span><span data-count="33"></span><span data-count="34"></span><span data-count="35"></span><span data-count="36"></span><span data-count="37"></span><span data-count="38"></span><span data-count="39"></span><span data-count="40"></span><span data-count="41"></span><span data-count="42"></span><span data-count="43"></span><span data-count="44"></span><span data-count="45"></span><span data-count="46"></span><span data-count="47"></span><span data-count="48"></span><span data-count="49"></span><span data-count="50"></span><span data-count="51"></span><span data-count="52"></span><span data-count="53"></span><span data-count="54"></span><span data-count="55"></span><span data-count="56"></span><span data-count="57"></span><span data-count="58"></span><span data-count="59"></span><span data-count="60"></span><span data-count="61"></span><span data-count="62"></span><span data-count="63"></span><span data-count="64"></span><span data-count="65"></span><span data-count="66"></span><span data-count="67"></span><span data-count="68"></span><span data-count="69"></span><span data-count="70"></span><span data-count="71"></span><span data-count="72"></span><span data-count="73"></span><span data-count="74"></span><span data-count="75"></span><span data-count="76"></span><span data-count="77"></span><span data-count="78"></span><span data-count="79"></span><span data-count="80"></span><span data-count="81"></span><span data-count="82"></span><span data-count="83"></span><span data-count="84"></span><span data-count="85"></span><span data-count="86"></span><span data-count="87"></span><span data-count="88"></span><span data-count="89"></span><span data-count="90"></span><span data-count="91"></span><span data-count="92"></span><span data-count="93"></span><span data-count="94"></span><span data-count="95"></span><span data-count="96"></span><span data-count="97"></span><span data-count="98"></span><span data-count="99"></span><span data-count="100"></span><span data-count="101"></span><span data-count="102"></span><span data-count="103"></span><span data-count="104"></span><span data-count="105"></span><span data-count="106"></span><span data-count="107"></span><span data-count="108"></span><span data-count="109"></span><span data-count="110"></span><span data-count="111"></span><span data-count="112"></span><span data-count="113"></span><span data-count="114"></span><span data-count="115"></span><span data-count="116"></span><span data-count="117"></span><span data-count="118"></span><span data-count="119"></span><span data-count="120"></span><span data-count="121"></span><span data-count="122"></span><span data-count="123"></span><span data-count="124"></span><span data-count="125"></span><span data-count="126"></span><span data-count="127"></span><span data-count="128"></span><span data-count="129"></span><span data-count="130"></span><span data-count="131"></span><span data-count="132"></span><span data-count="133"></span><span data-count="134"></span><span data-count="135"></span><span data-count="136"></span><span data-count="137"></span><span data-count="138"></span><span data-count="139"></span><span data-count="140"></span><span data-count="141"></span><span data-count="142"></span><span data-count="143"></span><span data-count="144"></span><span data-count="145"></span><span data-count="146"></span><span data-count="147"></span><span data-count="148"></span><span data-count="149"></span><span data-count="150"></span><span data-count="151"></span><span data-count="152"></span><span data-count="153"></span><span data-count="154"></span><span data-count="155"></span><span data-count="156"></span><span data-count="157"></span><span data-count="158"></span><span data-count="159"></span><span data-count="160"></span><span data-count="161"></span><span data-count="162"></span><span data-count="163"></span><span data-count="164"></span><span data-count="165"></span><span data-count="166"></span><span data-count="167"></span><span data-count="168"></span><span data-count="169"></span><span data-count="170"></span><span data-count="171"></span><span data-count="172"></span><span data-count="173"></span><span data-count="174"></span><span data-count="175"></span><span data-count="176"></span><span data-count="177"></span><span data-count="178"></span><span data-count="179"></span><span data-count="180"></span><span data-count="181"></span><span data-count="182"></span><span data-count="183"></span><span data-count="184"></span><span data-count="185"></span><span data-count="186"></span><span data-count="187"></span><span data-count="188"></span><span data-count="189"></span><span data-count="190"></span><span data-count="191"></span><span data-count="192"></span><span data-count="193"></span><span data-count="194"></span><span data-count="195"></span><span data-count="196"></span><span data-count="197"></span><span data-count="198"></span><span data-count="199"></span><span data-count="200"></span><span data-count="201"></span><span data-count="202"></span><span data-count="203"></span><span data-count="204"></span><span data-count="205"></span><span data-count="206"></span><span data-count="207"></span><span data-count="208"></span><span data-count="209"></span><span data-count="210"></span><span data-count="211"></span><span data-count="212"></span><span data-count="213"></span><span data-count="214"></span><span data-count="215"></span><span data-count="216"></span><span data-count="217"></span><span data-count="218"></span><span data-count="219"></span><span data-count="220"></span><span data-count="221"></span><span data-count="222"></span><span data-count="223"></span><span data-count="224"></span><span data-count="225"></span><span data-count="226"></span><span data-count="227"></span><span data-count="228"></span><span data-count="229"></span><span data-count="230"></span><span data-count="231"></span><span data-count="232"></span><span data-count="233"></span><span data-count="234"></span><span data-count="235"></span><span data-count="236"></span><span data-count="237"></span><span data-count="238"></span><span data-count="239"></span><span data-count="240"></span><span data-count="241"></span><span data-count="242"></span><span data-count="243"></span><span data-count="244"></span><span data-count="245"></span><span data-count="246"></span><span data-count="247"></span><span data-count="248"></span><span data-count="249"></span><span data-count="250"></span><span data-count="251"></span><span data-count="252"></span><span data-count="253"></span><span data-count="254"></span><span data-count="255"></span><span data-count="256"></span><span data-count="257"></span><span data-count="258"></span><span data-count="259"></span><span data-count="260"></span><span data-count="261"></span><span data-count="262"></span><span data-count="263"></span><span data-count="264"></span><span data-count="265"></span><span data-count="266"></span><span data-count="267"></span><span data-count="268"></span><span data-count="269"></span><span data-count="270"></span><span data-count="271"></span><span data-count="272"></span><span data-count="273"></span><span data-count="274"></span><span data-count="275"></span><span data-count="276"></span><span data-count="277"></span><span data-count="278"></span><span data-count="279"></span><span data-count="280"></span><span data-count="281"></span><span data-count="282"></span><span data-count="283"></span><span data-count="284"></span><span data-count="285"></span><span data-count="286"></span><span data-count="287"></span><span data-count="288"></span><span data-count="289"></span><span data-count="290"></span><span data-count="291"></span><span data-count="292"></span><span data-count="293"></span><span data-count="294"></span><span data-count="295"></span><span data-count="296"></span><span data-count="297"></span><span data-count="298"></span><span data-count="299"></span><span data-count="300"></span><span data-count="301"></span><span data-count="302"></span><span data-count="303"></span><span data-count="304"></span><span data-count="305"></span></div><pre><code class="hljs language-plain">18:06:12 web.1 | Started GET "/api/v2/search?q=%40capitoledulibre%40framapiaf.org&resolve=true&limit=11" for 10.0.2.2 at 2024-03-22 18:06:12 +0000
18:06:12 web.1 | Started GET "/api/v1/trends/tags" for 10.0.2.2 at 2024-03-22 18:06:12 +0000
18:06:12 web.1 | Cache read: blocked_ips ({:compress=>true, :compress_threshold=>1024})
18:06:12 web.1 | Cache read: blocked_ips ({:compress=>true, :compress_threshold=>1024})
18:06:12 web.1 | Cache generate: blocked_ips ({:compress=>true, :compress_threshold=>1024})
18:06:12 web.1 | Cache generate: blocked_ips ({:compress=>true, :compress_threshold=>1024})
18:06:12 web.1 | IpBlock Pluck (0.1ms) SELECT "ip_blocks"."ip" FROM "ip_blocks" WHERE "ip_blocks"."severity" = $1 [["severity", 9999]]
18:06:12 web.1 | ↳ app/models/ip_block.rb:39:in `block in blocked?'
18:06:12 web.1 | Cache write: blocked_ips ({:compress=>true, :compress_threshold=>1024})
18:06:12 web.1 | Doorkeeper::AccessToken Load (0.1ms) SELECT "oauth_access_tokens".* FROM "oauth_access_tokens" WHERE "oauth_access_tokens"."token" = $1 LIMIT $2 [["token", "[FILTERED]"], ["LIMIT", 1]]
18:06:12 web.1 | IpBlock Pluck (0.1ms) SELECT "ip_blocks"."ip" FROM "ip_blocks" WHERE "ip_blocks"."severity" = $1 [["severity", 9999]]
18:06:12 web.1 | ↳ config/initializers/rack_attack.rb:10:in `authenticated_token'
18:06:12 web.1 | ↳ app/models/ip_block.rb:39:in `block in blocked?'
18:06:12 web.1 | Cache write: blocked_ips ({:compress=>true, :compress_threshold=>1024})
18:06:12 web.1 | Cache write: rack::attack:5703769:throttle_authenticated_api:1 ({:compress=>true, :compress_threshold=>1024, :expires_in=>229})
18:06:12 web.1 | Cache write: rack::attack:5703769:throttle_per_token_api:5 ({:compress=>true, :compress_threshold=>1024, :expires_in=>229})
18:06:12 web.1 | Doorkeeper::AccessToken Load (0.1ms) SELECT "oauth_access_tokens".* FROM "oauth_access_tokens" WHERE "oauth_access_tokens"."token" = $1 LIMIT $2 [["token", "[FILTERED]"], ["LIMIT", 1]]
18:06:12 web.1 | ↳ config/initializers/rack_attack.rb:10:in `authenticated_token'
18:06:12 web.1 | Processing by Api::V1::Trends::TagsController#index as HTML
18:06:12 web.1 | Cache write: rack::attack:5703769:throttle_authenticated_api:1 ({:compress=>true, :compress_threshold=>1024, :expires_in=>229})
18:06:12 web.1 | Cache write: rack::attack:5703769:throttle_per_token_api:5 ({:compress=>true, :compress_threshold=>1024, :expires_in=>229})
18:06:12 web.1 | CACHE Doorkeeper::AccessToken Load (0.0ms) SELECT "oauth_access_tokens".* FROM "oauth_access_tokens" WHERE "oauth_access_tokens"."token" = $1 LIMIT $2 [["token", "[FILTERED]"], ["LIMIT", 1]]
18:06:12 web.1 | ↳ app/controllers/api/base_controller.rb:58:in `current_resource_owner'
18:06:12 web.1 | Processing by Api::V2::SearchController#index as HTML
18:06:12 web.1 | Parameters: {"q"=>"@capitoledulibre@framapiaf.org", "resolve"=>"true", "limit"=>"11"}
18:06:12 web.1 | User Load (0.3ms) SELECT "users"."id", "users"."email", "users"."created_at", "users"."updated_at", "users"."encrypted_password", "users"."reset_password_token", "users"."reset_password_sent_at", "users"."sign_in_count", "users"."current_sign_in_at", "users"."last_sign_in_at", "users"."confirmation_token", "users"."confirmed_at", "users"."confirmation_sent_at", "users"."unconfirmed_email", "users"."locale", "users"."encrypted_otp_secret", "users"."encrypted_otp_secret_iv", "users"."encrypted_otp_secret_salt", "users"."consumed_timestep", "users"."otp_required_for_login", "users"."last_emailed_at", "users"."otp_backup_codes", "users"."account_id", "users"."disabled", "users"."invite_id", "users"."chosen_languages", "users"."created_by_application_id", "users"."approved", "users"."sign_in_token", "users"."sign_in_token_sent_at", "users"."webauthn_id", "users"."sign_up_ip", "users"."role_id", "users"."settings", "users"."time_zone" FROM "users" WHERE "users"."id" = $1 LIMIT $2 [["id", 1], ["LIMIT", 1]]
18:06:12 web.1 | CACHE Doorkeeper::AccessToken Load (0.1ms) SELECT "oauth_access_tokens".* FROM "oauth_access_tokens" WHERE "oauth_access_tokens"."token" = $1 LIMIT $2 [["token", "[FILTERED]"], ["LIMIT", 1]]
18:06:12 web.1 | ↳ app/controllers/api/base_controller.rb:58:in `current_resource_owner'
18:06:12 web.1 | ↳ app/controllers/api/base_controller.rb:58:in `current_resource_owner'
18:06:12 web.1 | User Load (0.2ms) SELECT "users"."id", "users"."email", "users"."created_at", "users"."updated_at", "users"."encrypted_password", "users"."reset_password_token", "users"."reset_password_sent_at", "users"."sign_in_count", "users"."current_sign_in_at", "users"."last_sign_in_at", "users"."confirmation_token", "users"."confirmed_at", "users"."confirmation_sent_at", "users"."unconfirmed_email", "users"."locale", "users"."encrypted_otp_secret", "users"."encrypted_otp_secret_iv", "users"."encrypted_otp_secret_salt", "users"."consumed_timestep", "users"."otp_required_for_login", "users"."last_emailed_at", "users"."otp_backup_codes", "users"."account_id", "users"."disabled", "users"."invite_id", "users"."chosen_languages", "users"."created_by_application_id", "users"."approved", "users"."sign_in_token", "users"."sign_in_token_sent_at", "users"."webauthn_id", "users"."sign_up_ip", "users"."role_id", "users"."settings", "users"."time_zone" FROM "users" WHERE "users"."id" = $1 LIMIT $2 [["id", 1], ["LIMIT", 1]]
18:06:12 web.1 | ↳ app/controllers/api/base_controller.rb:58:in `current_resource_owner'
18:06:12 web.1 | SessionActivation Load (0.1ms) SELECT "session_activations".* FROM "session_activations" WHERE "session_activations"."session_id" = $1 LIMIT $2 [["session_id", "344f7dc54308ebb2fabaacb4f95eec2d"], ["LIMIT", 1]]
18:06:12 web.1 | ↳ app/controllers/application_controller.rb:156:in `current_session'
18:06:12 web.1 | SessionActivation Load (0.1ms) SELECT "session_activations".* FROM "session_activations" WHERE "session_activations"."session_id" = $1 LIMIT $2 [["session_id", "344f7dc54308ebb2fabaacb4f95eec2d"], ["LIMIT", 1]]
18:06:12 web.1 | ↳ app/controllers/application_controller.rb:156:in `current_session'
18:06:12 web.1 | Account Load (0.2ms) SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2 [["id", 112136525779164011], ["LIMIT", 1]]
18:06:12 web.1 | ↳ app/controllers/api/base_controller.rb:72:in `require_not_suspended!'
18:06:12 web.1 | Cache read: rails_settings_cached/e23eceea1dbbecf09d779eb1d9007c03/trends ({:compress=>true, :compress_threshold=>1024})
18:06:12 web.1 | Cache generate: rails_settings_cached/e23eceea1dbbecf09d779eb1d9007c03/trends ({:compress=>true, :compress_threshold=>1024})
18:06:12 web.1 | Account Load (0.3ms) SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2 [["id", 112136525779164011], ["LIMIT", 1]]
18:06:12 web.1 | ↳ app/controllers/api/base_controller.rb:72:in `require_not_suspended!'
18:06:12 web.1 | Setting Load (0.1ms) SELECT "settings".* FROM "settings" WHERE "settings"."thing_type" IS NULL AND "settings"."thing_id" IS NULL AND "settings"."var" = $1 LIMIT $2 [["var", "trends"], ["LIMIT", 1]]
18:06:12 web.1 | ↳ app/models/setting.rb:80:in `block in []'
18:06:12 web.1 | Cache write: rails_settings_cached/e23eceea1dbbecf09d779eb1d9007c03/trends ({:compress=>true, :compress_threshold=>1024})
18:06:12 web.1 | Unpermitted parameters: :q, :resolve, :limit. Context: { controller: Api::V2::SearchController, action: index, request: #<ActionDispatch::Request:0x00007f2c540a47e0>, params: {"q"=>"@capitoledulibre@framapiaf.org", "resolve"=>"true", "limit"=>"11", "controller"=>"api/v2/search", "action"=>"index"} }
18:06:12 web.1 | Completed 200 OK in 60ms (Views: 0.2ms | ActiveRecord: 0.6ms | Allocations: 3551)
18:06:12 web.1 |
18:06:12 web.1 |
18:06:12 web.1 | DomainBlock Load (0.5ms) SELECT "domain_blocks".* FROM "domain_blocks" WHERE "domain_blocks"."domain" IN ($1, $2) ORDER BY CHAR_LENGTH(domain) DESC LIMIT $3 [["domain", "framapiaf.org"], ["domain", "org"], ["LIMIT", 1]]
18:06:12 web.1 | ↳ app/models/domain_block.rb:73:in `rule_for'
18:06:12 web.1 | Account Load (0.2ms) SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE LOWER("accounts"."username") != '' AND LOWER("accounts"."username") = 'capitoledulibre' AND LOWER("accounts"."domain") = 'framapiaf.org' ORDER BY "accounts"."id" ASC LIMIT $1 [["LIMIT", 1]]
18:06:12 web.1 | ↳ app/models/concerns/account/finder_concern.rb:41:in `account'
18:06:12 web.1 | [httplog] GET https://framapiaf.org/.well-known/webfinger?resource=acct:capitoledulibre@framapiaf.org completed with status code 200 in 0.107627 seconds
18:06:12 web.1 | CACHE DomainBlock Load (0.0ms) SELECT "domain_blocks".* FROM "domain_blocks" WHERE "domain_blocks"."domain" IN ($1, $2) ORDER BY CHAR_LENGTH(domain) DESC LIMIT $3 [["domain", "framapiaf.org"], ["domain", "org"], ["LIMIT", 1]]
18:06:12 web.1 | ↳ app/models/domain_block.rb:73:in `rule_for'
18:06:12 web.1 | CACHE Account Load (0.0ms) SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE LOWER("accounts"."username") != '' AND LOWER("accounts"."username") = 'capitoledulibre' AND LOWER("accounts"."domain") = 'framapiaf.org' ORDER BY "accounts"."id" ASC LIMIT $1 [["LIMIT", 1]]
18:06:12 web.1 | ↳ app/models/concerns/account/finder_concern.rb:41:in `account'
18:06:12 web.1 | CACHE DomainBlock Load (0.0ms) SELECT "domain_blocks".* FROM "domain_blocks" WHERE "domain_blocks"."domain" IN ($1, $2) ORDER BY CHAR_LENGTH(domain) DESC LIMIT $3 [["domain", "framapiaf.org"], ["domain", "org"], ["LIMIT", 1]]
18:06:12 web.1 | ↳ app/models/domain_block.rb:73:in `rule_for'
18:06:12 web.1 | Account Load (0.4ms) SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2 [["id", -99], ["LIMIT", 1]]
18:06:12 web.1 | ↳ app/models/concerns/account/finder_concern.rb:16:in `representative'
18:06:12 web.1 | [httplog] GET https://framapiaf.org/users/capitoledulibre completed with status code 200 in 0.06123 seconds
18:06:12 web.1 | [httplog] GET https://framapiaf.org/.well-known/webfinger?resource=acct:capitoledulibre@framapiaf.org completed with status code 200 in 0.05922 seconds
18:06:12 web.1 | CACHE DomainBlock Load (0.0ms) SELECT "domain_blocks".* FROM "domain_blocks" WHERE "domain_blocks"."domain" IN ($1, $2) ORDER BY CHAR_LENGTH(domain) DESC LIMIT $3 [["domain", "framapiaf.org"], ["domain", "org"], ["LIMIT", 1]]
18:06:12 web.1 | ↳ app/models/domain_block.rb:73:in `rule_for'
18:06:12 web.1 | CACHE Account Load (0.0ms) SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE LOWER("accounts"."username") != '' AND LOWER("accounts"."username") = 'capitoledulibre' AND LOWER("accounts"."domain") = 'framapiaf.org' ORDER BY "accounts"."id" ASC LIMIT $1 [["LIMIT", 1]]
18:06:12 web.1 | ↳ app/models/concerns/account/finder_concern.rb:41:in `account'
18:06:12 web.1 | CACHE DomainBlock Load (0.0ms) SELECT "domain_blocks".* FROM "domain_blocks" WHERE "domain_blocks"."domain" IN ($1, $2) ORDER BY CHAR_LENGTH(domain) DESC LIMIT $3 [["domain", "framapiaf.org"], ["domain", "org"], ["LIMIT", 1]]
18:06:12 web.1 | ↳ app/models/domain_block.rb:73:in `rule_for'
18:06:12 web.1 | TRANSACTION (0.1ms) BEGIN
18:06:12 web.1 | ↳ app/validators/unique_username_validator.rb:15:in `validate'
18:06:12 web.1 | Account Exists? (0.8ms) SELECT 1 AS one FROM "accounts" WHERE LOWER("accounts"."username") = 'capitoledulibre' AND LOWER("accounts"."domain") = 'framapiaf.org' LIMIT $1 [["LIMIT", 1]]
18:06:12 web.1 | ↳ app/validators/unique_username_validator.rb:15:in `validate'
18:06:12 web.1 | Account Create (1.3ms) INSERT INTO "accounts" ("username", "domain", "private_key", "public_key", "created_at", "updated_at", "note", "display_name", "uri", "url", "avatar_file_name", "avatar_content_type", "avatar_file_size", "avatar_updated_at", "header_file_name", "header_content_type", "header_file_size", "header_updated_at", "avatar_remote_url", "locked", "header_remote_url", "last_webfingered_at", "inbox_url", "outbox_url", "shared_inbox_url", "followers_url", "protocol", "memorial", "moved_to_account_id", "featured_collection_url", "fields", "actor_type", "discoverable", "also_known_as", "silenced_at", "suspended_at", "hide_collections", "avatar_storage_schema_version", "header_storage_schema_version", "devices_url", "suspension_origin", "sensitized_at", "trendable", "reviewed_at", "requested_review_at", "indexable") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33, $34, $35, $36, $37, $38, $39, $40, $41, $42, $43, $44, $45, $46) RETURNING "id" [["username", "capitoledulibre"], ["domain", "framapiaf.org"], ["private_key", "[FILTERED]"], ["public_key", "[FILTERED]"], ["created_at", "2018-05-13 00:00:00"], ["updated_at", "2024-03-22 18:06:12.810836"], ["note", ""], ["display_name", ""], ["uri", "https://framapiaf.org/users/capitoledulibre"], ["url", "https://framapiaf.org/@capitoledulibre"], ["avatar_file_name", nil], ["avatar_content_type", nil], ["avatar_file_size", nil], ["avatar_updated_at", nil], ["header_file_name", nil], ["header_content_type", nil], ["header_file_size", nil], ["header_updated_at", nil], ["avatar_remote_url", nil], ["locked", false], ["header_remote_url", ""], ["last_webfingered_at", nil], ["inbox_url", "https://framapiaf.org/users/capitoledulibre/inbox"], ["outbox_url", "https://framapiaf.org/users/capitoledulibre/outbox"], ["shared_inbox_url", "https://framapiaf.org/inbox"], ["followers_url", "https://framapiaf.org/users/capitoledulibre/followers"], ["protocol", 1], ["memorial", false], ["moved_to_account_id", nil], ["featured_collection_url", nil], ["fields", nil], ["actor_type", "Person"], ["discoverable", nil], ["also_known_as", nil], ["silenced_at", nil], ["suspended_at", nil], ["hide_collections", nil], ["avatar_storage_schema_version", nil], ["header_storage_schema_version", nil], ["devices_url", nil], ["suspension_origin", nil], ["sensitized_at", nil], ["trendable", nil], ["reviewed_at", nil], ["requested_review_at", nil], ["indexable", false]]
18:06:12 web.1 | ↳ app/services/activitypub/process_account_service.rb:82:in `create_account'
18:06:12 web.1 | TRANSACTION (0.2ms) COMMIT
18:06:12 web.1 | ↳ app/services/activitypub/process_account_service.rb:82:in `create_account'
18:06:12 web.1 | Instance Exists? (0.3ms) SELECT 1 AS one FROM "instances" WHERE "instances"."domain" = $1 LIMIT $2 [["domain", "framapiaf.org"], ["LIMIT", 1]]
18:06:12 web.1 | ↳ app/models/concerns/domain_materializable.rb:13:in `refresh_instances_view'
18:06:12 web.1 | (3.8ms) REFRESH MATERIALIZED VIEW CONCURRENTLY "instances";
18:06:12 web.1 | ↳ app/models/concerns/database_view_record.rb:8:in `refresh'
18:06:12 web.1 | [httplog] GET https://stockage.framapiaf.org/framapiaf/accounts/avatars/000/063/765/original/c5fa7c6864ab5ba2.png completed with status code 200 in 0.106222 seconds
18:06:12 web.1 | [paperclip] Trying to link /tmp/dfb4be72a3b4120a97176ac9fd475e9820240322-2934-l81vgu.png to /tmp/e14cda966a1267be149d6613ad7683ec20240322-2934-scyeso.png
18:06:12 web.1 | Command :: file -b --mime '/tmp/e14cda966a1267be149d6613ad7683ec20240322-2934-scyeso.png'
18:06:12 web.1 | [paperclip] Trying to link /tmp/dfb4be72a3b4120a97176ac9fd475e9820240322-2934-l81vgu.png to /tmp/ab43cf858bd3b6d7882061ef415beb6520240322-2934-k75kad.png
18:06:13 web.1 | [httplog] GET https://stockage.framapiaf.org/framapiaf/accounts/headers/000/063/765/original/c9a706673d787985.png completed with status code 200 in 0.074891 seconds
18:06:13 web.1 | [paperclip] Trying to link /tmp/e56b568d2b8520b764b1167c9523d97720240322-2934-ntea92.png to /tmp/f11daea1ad3a8ace098fbd0126a64e2c20240322-2934-9ebwgc.png
18:06:13 web.1 | Command :: file -b --mime '/tmp/f11daea1ad3a8ace098fbd0126a64e2c20240322-2934-9ebwgc.png'
18:06:13 web.1 | [paperclip] Trying to link /tmp/e56b568d2b8520b764b1167c9523d97720240322-2934-ntea92.png to /tmp/7bdaae87e697e4da1c61609fc7e202ae20240322-2934-momlv.png
18:06:13 web.1 | Account Load (0.5ms) SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2 [["id", -99], ["LIMIT", 1]]
18:06:13 web.1 | ↳ app/models/concerns/account/finder_concern.rb:16:in `representative'
18:06:13 web.1 | [httplog] GET https://framapiaf.org/users/capitoledulibre/outbox completed with status code 200 in 0.055824 seconds
18:06:13 web.1 | AccountStat Load (0.2ms) SELECT "account_stats"."id", "account_stats"."account_id", "account_stats"."statuses_count", "account_stats"."following_count", "account_stats"."followers_count", "account_stats"."created_at", "account_stats"."updated_at", "account_stats"."last_status_at" FROM "account_stats" WHERE "account_stats"."account_id" = $1 LIMIT $2 [["account_id", 112140666326890329], ["LIMIT", 1]]
18:06:13 web.1 | ↳ app/models/concerns/account/counters.rb:77:in `account_stat'
18:06:13 web.1 | CACHE Account Load (0.0ms) SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2 [["id", -99], ["LIMIT", 1]]
18:06:13 web.1 | ↳ app/models/concerns/account/finder_concern.rb:16:in `representative'
18:06:13 web.1 | [httplog] GET https://framapiaf.org/users/capitoledulibre/following completed with status code 200 in 0.055445 seconds
18:06:13 web.1 | CACHE Account Load (0.0ms) SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2 [["id", -99], ["LIMIT", 1]]
18:06:13 web.1 | ↳ app/models/concerns/account/finder_concern.rb:16:in `representative'
18:06:13 web.1 | [httplog] GET https://framapiaf.org/users/capitoledulibre/followers completed with status code 200 in 0.070145 seconds
18:06:13 web.1 | [paperclip] Trying to link /tmp/ab43cf858bd3b6d7882061ef415beb6520240322-2934-k75kad.png to /tmp/e14cda966a1267be149d6613ad7683ec20240322-2934-74bstz.png
18:06:13 web.1 | Command :: file -b --mime '/tmp/e14cda966a1267be149d6613ad7683ec20240322-2934-74bstz.png'
18:06:13 web.1 | [paperclip] Trying to link /tmp/7bdaae87e697e4da1c61609fc7e202ae20240322-2934-momlv.png to /tmp/f11daea1ad3a8ace098fbd0126a64e2c20240322-2934-n08xph.png
18:06:13 web.1 | Command :: file -b --mime '/tmp/f11daea1ad3a8ace098fbd0126a64e2c20240322-2934-n08xph.png'
18:06:13 web.1 | TRANSACTION (0.1ms) BEGIN
18:06:13 web.1 | ↳ app/models/account.rb:371:in `save_with_optional_media!'
18:06:13 web.1 | Account Update (1.3ms) UPDATE "accounts" SET "public_key" = $1, "updated_at" = $2, "note" = $3, "display_name" = $4, "avatar_file_name" = $5, "avatar_content_type" = $6, "avatar_file_size" = $7, "avatar_updated_at" = $8, "header_file_name" = $9, "header_content_type" = $10, "header_file_size" = $11, "header_updated_at" = $12, "avatar_remote_url" = $13, "header_remote_url" = $14, "last_webfingered_at" = $15, "featured_collection_url" = $16, "fields" = $17, "discoverable" = $18, "also_known_as" = $19, "hide_collections" = $20, "avatar_storage_schema_version" = $21, "header_storage_schema_version" = $22, "devices_url" = $23 WHERE "accounts"."id" = $24 [["public_key", "[FILTERED]"], ["updated_at", "2024-03-22 18:06:13.283272"], ["note", "<p>L&#39;événement du <a href=\"https://framapiaf.org/tags/Libre\" class=\"mention hashtag\" rel=\"tag\">#<span>Libre</span></a> à <a href=\"https://framapiaf.org/tags/toulouse\" class=\"mention hashtag\" rel=\"tag\">#<span>toulouse</span></a> Samedi 16 et Dimanche 17 novembre 2024 Organisé par l&#39;association Toulibre</p>"], ["display_name", "Capitole du Libre"], ["avatar_file_name", "e996b0b32188e9a1.png"], ["avatar_content_type", "image/png"], ["avatar_file_size", 18866], ["avatar_updated_at", "2024-03-22 18:06:12.928622"], ["header_file_name", "6f866aea7bdc24c2.png"], ["header_content_type", "image/png"], ["header_file_size", 519316], ["header_updated_at", "2024-03-22 18:06:13.079697"], ["avatar_remote_url", "https://stockage.framapiaf.org/framapiaf/accounts/avatars/000/063/765/original/c5fa7c6864ab5ba2.png"], ["header_remote_url", "https://stockage.framapiaf.org/framapiaf/accounts/headers/000/063/765/original/c9a706673d787985.png"], ["last_webfingered_at", "2024-03-22 18:06:12.819517"], ["featured_collection_url", "https://framapiaf.org/users/capitoledulibre/collections/featured"], ["fields", "[]"], ["discoverable", true], ["also_known_as", "{}"], ["hide_collections", false], ["avatar_storage_schema_version", 1], ["header_storage_schema_version", 1], ["devices_url", "https://framapiaf.org/users/capitoledulibre/collections/devices"], ["id", 112140666326890329]]
18:06:13 web.1 | ↳ app/models/account.rb:371:in `save_with_optional_media!'
18:06:13 web.1 | AccountStat Create (0.3ms) INSERT INTO "account_stats" ("account_id", "statuses_count", "following_count", "followers_count", "created_at", "updated_at", "last_status_at") VALUES ($1, $2, $3, $4, $5, $6, $7) RETURNING "id" [["account_id", 112140666326890329], ["statuses_count", 107], ["following_count", 12], ["followers_count", 1011], ["created_at", "2024-03-22 18:06:13.286572"], ["updated_at", "2024-03-22 18:06:13.286572"], ["last_status_at", nil]]
18:06:13 web.1 | ↳ app/models/account.rb:371:in `save_with_optional_media!'
18:06:13 web.1 | TRANSACTION (0.2ms) COMMIT
18:06:13 web.1 | ↳ app/models/account.rb:371:in `save_with_optional_media!'
18:06:13 web.1 | Account Exists? (0.3ms) SELECT 1 AS one FROM "accounts" WHERE "accounts"."uri" = $1 AND "accounts"."id" != $2 LIMIT $3 [["uri", "https://framapiaf.org/users/capitoledulibre"], ["id", 112140666326890329], ["LIMIT", 1]]
18:06:13 web.1 | ↳ app/services/activitypub/process_account_service.rb:187:in `process_duplicate_accounts!'
18:06:13 sidekiq.1 | 2024-03-22T18:06:13.295Z pid=2871 tid=ofr class=ActivityPub::SynchronizeFeaturedCollectionWorker jid=495acbc164c4f7cd5eefd37f INFO: start
18:06:13 web.1 | Follow Pluck (0.2ms) SELECT "follows"."target_account_id" FROM "follows" WHERE "follows"."account_id" = $1 [["account_id", 112136525779164011]]
18:06:13 web.1 | ↳ app/services/account_search_service.rb:120:in `following_ids'
18:06:13 sidekiq.1 | 2024-03-22T18:06:13.297Z pid=2871 tid=jcr class=ActivityPub::SynchronizeFeaturedTagsCollectionWorker jid=a76ef5e7ac38ec7019e94c1b INFO: start
18:06:13 web.1 | [httplog] POST http://localhost:9200/accounts/_search completed with status code 200 in 0.002669 seconds
18:06:13 web.1 | AccountsIndex Search (3.4ms) {:index=>["accounts"], :body=>{:size=>10, :from=>0, :query=>{:bool=>{:must=>{:function_score=>{:query=>{:bool=>{:must=>[{:multi_match=>{:query=>"capitoledulibre@framapiaf.org", :type=>"most_fields", :fields=>["username^2", "display_name^2", "text", "text.*"], :operator=>"and"}}], :must_not=>[]}}, :functions=>[{:script_score=>{:script=>{:source=>"(Math.max(doc['followers_count'].value, 0) + 0.0) / (Math.max(doc['followers_count'].value, 0) + Math.max(doc['following_count'].value, 0) + 1)"}}}, {:script_score=>{:script=>{:source=>"(Math.max(doc['followers_count'].value, 0) / (Math.max(doc['followers_count'].value, 0) + 1))"}}}, {:gauss=>{:last_status_at=>{:scale=>"30d", :offset=>"30d", :decay=>0.3}}}]}}, :should=>[{:terms=>{:id=>[112136525779164011], :boost=>100}}]}}}}
18:06:13 web.1 | [httplog] POST http://localhost:9200/public_statuses,statuses/_search completed with status code 200 in 0.004271 seconds
18:06:13 web.1 | [PublicStatusesIndex, StatusesIndex] Search (4.8ms) {:index=>["public_statuses", "statuses"], :body=>{:collapse=>{"field"=>:id}, :sort=>[{"id"=>{:order=>:desc}}], :size=>11, :from=>0, :query=>{:bool=>{:must=>{:multi_match=>{:type=>"most_fields", :query=>"@capitoledulibre@framapiaf.org", :fields=>["text", "text.stemmed"], :operator=>"and"}}, :filter=>{:bool=>{:should=>[{:term=>{:_index=>"public_statuses"}}, {:bool=>{:must=>[{:term=>{:_index=>"statuses"}}, {:term=>{:searchable_by=>112136525779164011}}]}}], :minimum_should_match=>1}}}}}}
18:06:13 web.1 | [httplog] POST http://localhost:9200/tags/_search completed with status code 404 in 0.001286 seconds
18:06:13 web.1 | TagsIndex Search (2.0ms) {:index=>["tags"], :body=>{:size=>11, :from=>0, :query=>{:function_score=>{:query=>{:multi_match=>{:query=>"@capitoledulibre@framapiaf.org", :fields=>["name.edge_ngram", "name"], :type=>"most_fields", :operator=>"and"}}, :functions=>[{:field_value_factor=>{:field=>"usage", :modifier=>"log2p", :missing=>0}}, {:gauss=>{:last_status_at=>{:scale=>"7d", :offset=>"14d", :decay=>0.5}}}], :boost_mode=>"multiply"}}}}
18:06:13 web.1 | Tag Load (0.4ms) SELECT "tags".* FROM "tags" WHERE LOWER("tags"."name") = LOWER('capitoledulibreframapiaforg') ORDER BY "tags"."id" ASC LIMIT $1 [["LIMIT", 1]]
18:06:13 web.1 | ↳ app/models/tag.rb:141:in `find_normalized'
18:06:13 web.1 | Completed 200 OK in 807ms (Views: 1.8ms | ActiveRecord: 11.8ms | Allocations: 119539)
18:06:13 web.1 |
18:06:13 web.1 |
18:06:13 web.1 | Started GET "/api/v1/accounts/relationships?with_suspended=true&id[]=112140666326890329" for 10.0.2.2 at 2024-03-22 18:06:13 +0000
18:06:13 sidekiq.1 | Account Load (0.2ms) SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2 [["id", 112140666326890329], ["LIMIT", 1]]
18:06:13 sidekiq.1 | ↳ app/workers/activitypub/synchronize_featured_collection_worker.rb:11:in `perform'
18:06:13 sidekiq.1 | Account Load (0.5ms) SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" INNER JOIN "follows" ON "accounts"."id" = "follows"."account_id" WHERE "follows"."target_account_id" = $1 AND "accounts"."domain" IS NULL AND "accounts"."suspended_at" IS NULL ORDER BY follows.id desc LIMIT $2 [["target_account_id", 112140666326890329], ["LIMIT", 1]]
18:06:13 sidekiq.1 | ↳ app/services/activitypub/fetch_featured_collection_service.rb:103:in `local_follower'
18:06:13 sidekiq.1 | Account Load (0.2ms) SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2 [["id", -99], ["LIMIT", 1]]
18:06:13 sidekiq.1 | ↳ app/models/concerns/account/finder_concern.rb:16:in `representative'
18:06:13 sidekiq.1 | Account Load (0.2ms) SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2 [["id", 112140666326890329], ["LIMIT", 1]]
18:06:13 sidekiq.1 | ↳ app/workers/activitypub/synchronize_featured_tags_collection_worker.rb:9:in `perform'
18:06:13 sidekiq.1 | Account Load (0.4ms) SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" INNER JOIN "follows" ON "accounts"."id" = "follows"."account_id" WHERE "follows"."target_account_id" = $1 AND "accounts"."domain" IS NULL AND "accounts"."suspended_at" IS NULL ORDER BY follows.id desc LIMIT $2 [["target_account_id", 112140666326890329], ["LIMIT", 1]]
18:06:13 web.1 | Cache read: blocked_ips ({:compress=>true, :compress_threshold=>1024})
18:06:13 sidekiq.1 | ↳ app/services/activitypub/fetch_featured_tags_collection_service.rb:70:in `local_follower'
18:06:13 web.1 | Cache generate: blocked_ips ({:compress=>true, :compress_threshold=>1024})
18:06:13 sidekiq.1 | Account Load (0.2ms) SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2 [["id", -99], ["LIMIT", 1]]
18:06:13 sidekiq.1 | ↳ app/models/concerns/account/finder_concern.rb:16:in `representative'
18:06:13 web.1 | IpBlock Pluck (0.1ms) SELECT "ip_blocks"."ip" FROM "ip_blocks" WHERE "ip_blocks"."severity" = $1 [["severity", 9999]]
18:06:13 web.1 | ↳ app/models/ip_block.rb:39:in `block in blocked?'
18:06:13 web.1 | Cache write: blocked_ips ({:compress=>true, :compress_threshold=>1024})
18:06:13 web.1 | Doorkeeper::AccessToken Load (0.1ms) SELECT "oauth_access_tokens".* FROM "oauth_access_tokens" WHERE "oauth_access_tokens"."token" = $1 LIMIT $2 [["token", "[FILTERED]"], ["LIMIT", 1]]
18:06:13 web.1 | ↳ config/initializers/rack_attack.rb:10:in `authenticated_token'
18:06:13 web.1 | Cache write: rack::attack:5703769:throttle_authenticated_api:1 ({:compress=>true, :compress_threshold=>1024, :expires_in=>228})
18:06:13 web.1 | Cache write: rack::attack:5703769:throttle_per_token_api:5 ({:compress=>true, :compress_threshold=>1024, :expires_in=>228})
18:06:13 web.1 | Processing by Api::V1::Accounts::RelationshipsController#index as HTML
18:06:13 web.1 | Parameters: {"with_suspended"=>"true", "id"=>["112140666326890329"]}
18:06:13 web.1 | CACHE Doorkeeper::AccessToken Load (0.0ms) SELECT "oauth_access_tokens".* FROM "oauth_access_tokens" WHERE "oauth_access_tokens"."token" = $1 LIMIT $2 [["token", "[FILTERED]"], ["LIMIT", 1]]
18:06:13 web.1 | ↳ app/controllers/api/base_controller.rb:58:in `current_resource_owner'
18:06:13 web.1 | User Load (0.3ms) SELECT "users"."id", "users"."email", "users"."created_at", "users"."updated_at", "users"."encrypted_password", "users"."reset_password_token", "users"."reset_password_sent_at", "users"."sign_in_count", "users"."current_sign_in_at", "users"."last_sign_in_at", "users"."confirmation_token", "users"."confirmed_at", "users"."confirmation_sent_at", "users"."unconfirmed_email", "users"."locale", "users"."encrypted_otp_secret", "users"."encrypted_otp_secret_iv", "users"."encrypted_otp_secret_salt", "users"."consumed_timestep", "users"."otp_required_for_login", "users"."last_emailed_at", "users"."otp_backup_codes", "users"."account_id", "users"."disabled", "users"."invite_id", "users"."chosen_languages", "users"."created_by_application_id", "users"."approved", "users"."sign_in_token", "users"."sign_in_token_sent_at", "users"."webauthn_id", "users"."sign_up_ip", "users"."role_id", "users"."settings", "users"."time_zone" FROM "users" WHERE "users"."id" = $1 LIMIT $2 [["id", 1], ["LIMIT", 1]]
18:06:13 web.1 | ↳ app/controllers/api/base_controller.rb:58:in `current_resource_owner'
18:06:13 web.1 | SessionActivation Load (0.2ms) SELECT "session_activations".* FROM "session_activations" WHERE "session_activations"."session_id" = $1 LIMIT $2 [["session_id", "344f7dc54308ebb2fabaacb4f95eec2d"], ["LIMIT", 1]]
18:06:13 web.1 | ↳ app/controllers/application_controller.rb:156:in `current_session'
18:06:13 web.1 | Account Load (0.3ms) SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2 [["id", 112136525779164011], ["LIMIT", 1]]
18:06:13 web.1 | ↳ app/controllers/api/base_controller.rb:72:in `require_not_suspended!'
18:06:13 sidekiq.1 | [httplog] GET https://framapiaf.org/users/capitoledulibre/collections/featured completed with status code 200 in 0.065984 seconds
18:06:13 web.1 | Account Load (0.1ms) SELECT "accounts"."id", "accounts"."domain" FROM "accounts" WHERE "accounts"."id" = $1 [["id", 112140666326890329]]
18:06:13 web.1 | ↳ app/presenters/account_relationships_presenter.rb:9:in `initialize'
18:06:13 web.1 | Cache read_multi: 1 key(s) specified ({:compress=>true, :compress_threshold=>1024})
18:06:13 web.1 | Follow Load (0.1ms) SELECT "follows".* FROM "follows" WHERE "follows"."target_account_id" = $1 AND "follows"."account_id" = $2 [["target_account_id", 112140666326890329], ["account_id", 112136525779164011]]
18:06:13 web.1 | ↳ app/models/concerns/account/interactions.rb:8:in `each_with_object'
18:06:13 web.1 | Follow Pluck (0.1ms) SELECT "follows"."account_id" FROM "follows" WHERE "follows"."account_id" = $1 AND "follows"."target_account_id" = $2 [["account_id", 112140666326890329], ["target_account_id", 112136525779164011]]
18:06:13 web.1 | ↳ app/models/concerns/account/interactions.rb:70:in `follow_mapping'
18:06:13 web.1 | Block Pluck (0.1ms) SELECT "blocks"."target_account_id" FROM "blocks" WHERE "blocks"."target_account_id" = $1 AND "blocks"."account_id" = $2 [["target_account_id", 112140666326890329], ["account_id", 112136525779164011]]
18:06:13 web.1 | ↳ app/models/concerns/account/interactions.rb:70:in `follow_mapping'
18:06:13 web.1 | Block Pluck (0.1ms) SELECT "blocks"."account_id" FROM "blocks" WHERE "blocks"."account_id" = $1 AND "blocks"."target_account_id" = $2 [["account_id", 112140666326890329], ["target_account_id", 112136525779164011]]
18:06:13 web.1 | ↳ app/models/concerns/account/interactions.rb:70:in `follow_mapping'
18:06:13 web.1 | Mute Load (0.1ms) SELECT "mutes".* FROM "mutes" WHERE "mutes"."target_account_id" = $1 AND "mutes"."account_id" = $2 [["target_account_id", 112140666326890329], ["account_id", 112136525779164011]]
18:06:13 web.1 | ↳ app/models/concerns/account/interactions.rb:30:in `each_with_object'
18:06:13 web.1 | FollowRequest Load (0.1ms) SELECT "follow_requests".* FROM "follow_requests" WHERE "follow_requests"."target_account_id" = $1 AND "follow_requests"."account_id" = $2 [["target_account_id", 112140666326890329], ["account_id", 112136525779164011]]
18:06:13 web.1 | ↳ app/models/concerns/account/interactions.rb:38:in `each_with_object'
18:06:13 web.1 | FollowRequest Pluck (0.1ms) SELECT "follow_requests"."account_id" FROM "follow_requests" WHERE "follow_requests"."account_id" = $1 AND "follow_requests"."target_account_id" = $2 [["account_id", 112140666326890329], ["target_account_id", 112136525779164011]]
18:06:13 web.1 | ↳ app/models/concerns/account/interactions.rb:70:in `follow_mapping'
18:06:13 web.1 | AccountPin Pluck (0.2ms) SELECT "account_pins"."target_account_id" FROM "account_pins" WHERE "account_pins"."account_id" = $1 AND "account_pins"."target_account_id" = $2 [["account_id", 112136525779164011], ["target_account_id", 112140666326890329]]
18:06:13 web.1 | ↳ app/models/concerns/account/interactions.rb:70:in `follow_mapping'
18:06:13 web.1 | AccountNote Load (0.2ms) SELECT "account_notes".* FROM "account_notes" WHERE "account_notes"."target_account_id" = $1 AND "account_notes"."account_id" = $2 [["target_account_id", 112140666326890329], ["account_id", 112136525779164011]]
18:06:13 web.1 | ↳ app/models/concerns/account/interactions.rb:56:in `each_with_object'
18:06:13 web.1 | Cache read_multi: 1 key(s) specified ({:compress=>true, :compress_threshold=>1024})
18:06:13 sidekiq.1 | [httplog] GET https://framapiaf.org/users/capitoledulibre/collections/tags completed with status code 200 in 0.064004 seconds
18:06:13 web.1 | AccountDomainBlock Pluck (0.1ms) SELECT "account_domain_blocks"."domain" FROM "account_domain_blocks" WHERE "account_domain_blocks"."account_id" = $1 AND "account_domain_blocks"."domain" = $2 [["account_id", 112136525779164011], ["domain", "framapiaf.org"]]
18:06:13 web.1 | ↳ app/presenters/account_relationships_presenter.rb:54:in `domain_blocking_map'
18:06:13 web.1 | Cache write_multi: 1 key(s) specified ({:compress=>true, :compress_threshold=>1024, :expires_in=>1 day})
18:06:13 web.1 | Cache write_multi: 1 key(s) specified ({:compress=>true, :compress_threshold=>1024, :expires_in=>1 day})
18:06:13 web.1 | Completed 200 OK in 66ms (Views: 0.5ms | ActiveRecord: 2.0ms | Allocations: 8461)
18:06:13 web.1 |
18:06:13 web.1 |
18:06:13 sidekiq.1 | FeaturedTag Delete All (0.7ms) DELETE FROM "featured_tags" WHERE "featured_tags"."id" IN (SELECT "featured_tags"."id" FROM "featured_tags" LEFT OUTER JOIN "tags" "tag" ON "tag"."id" = "featured_tags"."tag_id" WHERE "featured_tags"."account_id" = $1 AND 1=1) [["account_id", 112140666326890329]]
18:06:13 sidekiq.1 | ↳ app/services/activitypub/fetch_featured_tags_collection_service.rb:56:in `process_items'
18:06:13 sidekiq.1 | 2024-03-22T18:06:13.503Z pid=2871 tid=jcr class=ActivityPub::SynchronizeFeaturedTagsCollectionWorker jid=a76ef5e7ac38ec7019e94c1b elapsed=0.206 INFO: done
18:06:13 sidekiq.1 | DomainBlock Load (0.6ms) SELECT "domain_blocks".* FROM "domain_blocks" WHERE "domain_blocks"."domain" IN ($1, $2) ORDER BY CHAR_LENGTH(domain) DESC LIMIT $3 [["domain", "framapiaf.org"], ["domain", "org"], ["LIMIT", 1]]
18:06:13 sidekiq.1 | ↳ app/models/domain_block.rb:73:in `rule_for'
18:06:13 sidekiq.1 | CACHE Account Load (0.0ms) SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2 [["id", -99], ["LIMIT", 1]]
18:06:13 sidekiq.1 | ↳ app/models/concerns/account/finder_concern.rb:16:in `representative'
18:06:13 sidekiq.1 | [httplog] GET https://framapiaf.org/users/capitoledulibre/statuses/111444751622813922 completed with status code 200 in 0.062567 seconds
18:06:13 sidekiq.1 | Account Load (0.2ms) SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."uri" = $1 LIMIT $2 [["uri", "https://framapiaf.org/users/capitoledulibre"], ["LIMIT", 1]]
18:06:13 sidekiq.1 | ↳ app/lib/activitypub/tag_manager.rb:185:in `uri_to_resource'
18:06:13 sidekiq.1 | Status Exists? (0.5ms) SELECT 1 AS one FROM "statuses" WHERE "statuses"."deleted_at" IS NULL AND "statuses"."uri" = $1 AND "statuses"."account_id" = $2 LIMIT $3 [["uri", "https://framapiaf.org/users/capitoledulibre/statuses/111444751622813922"], ["account_id", 112140666326890329], ["LIMIT", 1]]
18:06:13 sidekiq.1 | ↳ app/services/activitypub/fetch_remote_status_service.rb:47:in `call'
18:06:13 sidekiq.1 | Tombstone Exists? (0.7ms) SELECT 1 AS one FROM "tombstones" WHERE "tombstones"."uri" = $1 LIMIT $2 [["uri", "https://framapiaf.org/users/capitoledulibre/statuses/111444751622813922"], ["LIMIT", 1]]
18:06:13 sidekiq.1 | ↳ app/lib/activitypub/activity/create.rb:413:in `tombstone_exists?'
18:06:13 sidekiq.1 | Status Load (0.2ms) SELECT "statuses".* FROM "statuses" WHERE "statuses"."deleted_at" IS NULL AND "statuses"."uri" = $1 ORDER BY "statuses"."id" DESC LIMIT $2 [["uri", "https://framapiaf.org/users/capitoledulibre/statuses/111444751622813922"], ["LIMIT", 1]]
18:06:13 sidekiq.1 | ↳ app/lib/activitypub/tag_manager.rb:185:in `uri_to_resource'
18:06:13 sidekiq.1 | CACHE Status Load (0.0ms) SELECT "statuses".* FROM "statuses" WHERE "statuses"."deleted_at" IS NULL AND "statuses"."uri" = $1 ORDER BY "statuses"."id" DESC LIMIT $2 [["uri", "https://framapiaf.org/users/capitoledulibre/statuses/111444751622813922"], ["LIMIT", 1]]
18:06:13 sidekiq.1 | ↳ app/lib/activitypub/activity/create.rb:106:in `find_existing_status'
18:06:13 sidekiq.1 | TRANSACTION (0.1ms) BEGIN
18:06:13 sidekiq.1 | ↳ app/lib/activitypub/activity/create.rb:266:in `block in process_attachments'
18:06:13 sidekiq.1 | MediaAttachment Create (3.0ms) INSERT INTO "media_attachments" ("status_id", "file_file_name", "file_content_type", "file_file_size", "file_updated_at", "remote_url", "created_at", "updated_at", "shortcode", "type", "file_meta", "account_id", "description", "scheduled_status_id", "blurhash", "processing", "file_storage_schema_version", "thumbnail_file_name", "thumbnail_content_type", "thumbnail_file_size", "thumbnail_updated_at", "thumbnail_remote_url") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22) RETURNING "id" [["status_id", nil], ["file_file_name", nil], ["file_content_type", nil], ["file_file_size", nil], ["file_updated_at", nil], ["remote_url", "https://stockage.framapiaf.org/framapiaf/media_attachments/files/111/444/720/451/944/855/original/e5f4e2b63f4a549f.jpg"], ["created_at", "2024-03-22 18:06:13.626307"], ["updated_at", "2024-03-22 18:06:13.626307"], ["shortcode", nil], ["type", 3], ["file_meta", "{\"focus\":{\"x\":0.0,\"y\":0.0}}"], ["account_id", 112140666326890329], ["description", "Equipe des bénévoles du Capitole du Libre 2023"], ["scheduled_status_id", nil], ["blurhash", "UMFW%[EL9uRj0#oItQbbO[n$RiWC|[W;NakC"], ["processing", 2], ["file_storage_schema_version", nil], ["thumbnail_file_name", nil], ["thumbnail_content_type", nil], ["thumbnail_file_size", nil], ["thumbnail_updated_at", nil], ["thumbnail_remote_url", nil]]
18:06:13 sidekiq.1 | ↳ app/lib/activitypub/activity/create.rb:266:in `block in process_attachments'
18:06:13 sidekiq.1 | TRANSACTION (0.2ms) COMMIT
18:06:13 sidekiq.1 | ↳ app/lib/activitypub/activity/create.rb:266:in `block in process_attachments'
18:06:13 sidekiq.1 | DomainBlock Load (0.2ms) SELECT "domain_blocks".* FROM "domain_blocks" WHERE "domain_blocks"."domain" IN ($1, $2) ORDER BY CHAR_LENGTH(domain) DESC LIMIT $3 [["domain", "framapiaf.org"], ["domain", "org"], ["LIMIT", 1]]
18:06:13 sidekiq.1 | ↳ app/models/domain_block.rb:73:in `rule_for'
18:06:13 sidekiq.1 | [httplog] GET https://stockage.framapiaf.org/framapiaf/media_attachments/files/111/444/720/451/944/855/original/e5f4e2b63f4a549f.jpg completed with status code 200 in 0.16764 seconds
18:06:13 sidekiq.1 | [paperclip] Trying to link /tmp/4a7446dc2fd719d24f5218f76a975d7020240322-2871-zymwlc.jpg to /tmp/ecfafadb49bbba6d2b452c2bbd93e48220240322-2871-8pzpjd.jpg
18:06:13 sidekiq.1 | Command :: file -b --mime '/tmp/ecfafadb49bbba6d2b452c2bbd93e48220240322-2871-8pzpjd.jpg'
18:06:13 sidekiq.1 | [paperclip] Trying to link /tmp/4a7446dc2fd719d24f5218f76a975d7020240322-2871-zymwlc.jpg to /tmp/f8ae847c6a536dcb9f87ffe78ad67e0e20240322-2871-k3rl0k.jpg
18:06:13 sidekiq.1 | Command :: identify -format %m '/tmp/f8ae847c6a536dcb9f87ffe78ad67e0e20240322-2871-k3rl0k.jpg[0]'
18:06:13 sidekiq.1 | Command :: convert '/tmp/f8ae847c6a536dcb9f87ffe78ad67e0e20240322-2871-k3rl0k.jpg[0]' -auto-orient -resize "588x392>" -quality 90 +profile "!icc,*" +set date:modify +set date:create +set date:timestamp -define jpeg:dct-method=float '/tmp/e1e63e156689b8d81952fdefd5b112c020240322-2871-ior51w'
18:06:13 sidekiq.1 | Command :: convert '/tmp/e1e63e156689b8d81952fdefd5b112c020240322-2871-ior51w' -depth 8 RGB:-
18:06:14 sidekiq.1 | [paperclip] Trying to link /tmp/e1e63e156689b8d81952fdefd5b112c020240322-2871-ior51w to /tmp/0590999371802b631dc29eba3a8a2d4320240322-2871-vhie0o
18:06:14 sidekiq.1 | [paperclip] Trying to link /tmp/f8ae847c6a536dcb9f87ffe78ad67e0e20240322-2871-k3rl0k.jpg to /tmp/ecfafadb49bbba6d2b452c2bbd93e48220240322-2871-uspdnp.jpg
18:06:14 sidekiq.1 | Command :: file -b --mime '/tmp/ecfafadb49bbba6d2b452c2bbd93e48220240322-2871-uspdnp.jpg'
18:06:14 sidekiq.1 | TRANSACTION (0.2ms) BEGIN
18:06:14 sidekiq.1 | ↳ app/lib/activitypub/activity/create.rb:281:in `block in process_attachments'
18:06:14 sidekiq.1 | MediaAttachment Update (1.1ms) UPDATE "media_attachments" SET "file_file_name" = $1, "file_content_type" = $2, "file_file_size" = $3, "file_updated_at" = $4, "updated_at" = $5, "type" = $6, "file_meta" = $7, "blurhash" = $8, "file_storage_schema_version" = $9 WHERE "media_attachments"."id" = $10 [["file_file_name", "6c9a40ff1a77d790.jpg"], ["file_content_type", "image/jpeg"], ["file_file_size", 668960], ["file_updated_at", "2024-03-22 18:06:13.903413"], ["updated_at", "2024-03-22 18:06:14.118749"], ["type", 0], ["file_meta", "{\"focus\":{\"x\":0.0,\"y\":0.0},\"original\":{\"width\":1920,\"height\":1280,\"size\":\"1920x1280\",\"aspect\":1.5},\"small\":{\"width\":588,\"height\":392,\"size\":\"588x392\",\"aspect\":1.5}}"], ["blurhash", "UMFNJHEL9uRj0#oItQbbO[n$RiWC|[W;NakC"], ["file_storage_schema_version", 1], ["id", 112140666380447576]]
18:06:14 sidekiq.1 | ↳ app/lib/activitypub/activity/create.rb:281:in `block in process_attachments'
18:06:14 sidekiq.1 | TRANSACTION (0.4ms) COMMIT
18:06:14 sidekiq.1 | ↳ app/lib/activitypub/activity/create.rb:281:in `block in process_attachments'
18:06:14 sidekiq.1 | TRANSACTION (0.1ms) BEGIN
18:06:14 sidekiq.1 | ↳ app/lib/activitypub/activity/create.rb:266:in `block in process_attachments'
18:06:14 sidekiq.1 | MediaAttachment Create (0.8ms) INSERT INTO "media_attachments" ("status_id", "file_file_name", "file_content_type", "file_file_size", "file_updated_at", "remote_url", "created_at", "updated_at", "shortcode", "type", "file_meta", "account_id", "description", "scheduled_status_id", "blurhash", "processing", "file_storage_schema_version", "thumbnail_file_name", "thumbnail_content_type", "thumbnail_file_size", "thumbnail_updated_at", "thumbnail_remote_url") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22) RETURNING "id" [["status_id", nil], ["file_file_name", nil], ["file_content_type", nil], ["file_file_size", nil], ["file_updated_at", nil], ["remote_url", "https://stockage.framapiaf.org/framapiaf/media_attachments/files/111/444/720/804/944/337/original/c9e95aa36c798499.jpg"], ["created_at", "2024-03-22 18:06:14.128632"], ["updated_at", "2024-03-22 18:06:14.128632"], ["shortcode", nil], ["type", 3], ["file_meta", "{\"focus\":{\"x\":0.0,\"y\":0.0}}"], ["account_id", 112140666326890329], ["description", "Montage photo de scènes du Capitole du Libre 2023"], ["scheduled_status_id", nil], ["blurhash", "U7HnQyMyMy_4EeIpx]%LOY-VtSR*4.R%$%rr"], ["processing", 2], ["file_storage_schema_version", nil], ["thumbnail_file_name", nil], ["thumbnail_content_type", nil], ["thumbnail_file_size", nil], ["thumbnail_updated_at", nil], ["thumbnail_remote_url", nil]]
18:06:14 sidekiq.1 | ↳ app/lib/activitypub/activity/create.rb:266:in `block in process_attachments'
18:06:14 sidekiq.1 | TRANSACTION (0.1ms) COMMIT
18:06:14 sidekiq.1 | ↳ app/lib/activitypub/activity/create.rb:266:in `block in process_attachments'
18:06:14 sidekiq.1 | [httplog] GET https://stockage.framapiaf.org/framapiaf/media_attachments/files/111/444/720/804/944/337/original/c9e95aa36c798499.jpg completed with status code 200 in 0.376908 seconds
18:06:14 sidekiq.1 | [paperclip] Trying to link /tmp/8ed1c42b984c8b8d7a6d91c8010a8cab20240322-2871-uwn20l.jpg to /tmp/62382c34a786a981dcc851e6e419c69e20240322-2871-yp57h9.jpg
18:06:14 sidekiq.1 | Command :: file -b --mime '/tmp/62382c34a786a981dcc851e6e419c69e20240322-2871-yp57h9.jpg'
18:06:14 sidekiq.1 | [paperclip] Trying to link /tmp/8ed1c42b984c8b8d7a6d91c8010a8cab20240322-2871-uwn20l.jpg to /tmp/0ec0635785d30a9ef4a1ec2dfdb1e6fd20240322-2871-bvwr6v.jpg
18:06:14 sidekiq.1 | Command :: identify -format %m '/tmp/0ec0635785d30a9ef4a1ec2dfdb1e6fd20240322-2871-bvwr6v.jpg[0]'
18:06:14 sidekiq.1 | Command :: convert '/tmp/0ec0635785d30a9ef4a1ec2dfdb1e6fd20240322-2871-bvwr6v.jpg[0]' -auto-orient -resize "640x360>" -quality 90 +profile "!icc,*" +set date:modify +set date:create +set date:timestamp -define jpeg:dct-method=float '/tmp/6e1494a2562abc1265b1128c09a4554e20240322-2871-zwm9h'
18:06:14 sidekiq.1 | Command :: convert '/tmp/6e1494a2562abc1265b1128c09a4554e20240322-2871-zwm9h' -depth 8 RGB:-
18:06:14 sidekiq.1 | [paperclip] Trying to link /tmp/6e1494a2562abc1265b1128c09a4554e20240322-2871-zwm9h to /tmp/b865aa613d20dd93becd9bff580136e620240322-2871-9zbp0f
18:06:14 sidekiq.1 | [paperclip] Trying to link /tmp/0ec0635785d30a9ef4a1ec2dfdb1e6fd20240322-2871-bvwr6v.jpg to /tmp/62382c34a786a981dcc851e6e419c69e20240322-2871-u0mtdx.jpg
18:06:14 sidekiq.1 | Command :: file -b --mime '/tmp/62382c34a786a981dcc851e6e419c69e20240322-2871-u0mtdx.jpg'
18:06:14 sidekiq.1 | TRANSACTION (0.1ms) BEGIN
18:06:14 sidekiq.1 | ↳ app/lib/activitypub/activity/create.rb:281:in `block in process_attachments'
18:06:14 sidekiq.1 | MediaAttachment Update (0.8ms) UPDATE "media_attachments" SET "file_file_name" = $1, "file_content_type" = $2, "file_file_size" = $3, "file_updated_at" = $4, "updated_at" = $5, "type" = $6, "file_meta" = $7, "blurhash" = $8, "file_storage_schema_version" = $9 WHERE "media_attachments"."id" = $10 [["file_file_name", "14a466e322f5ab44.jpg"], ["file_content_type", "image/jpeg"], ["file_file_size", 1242335], ["file_updated_at", "2024-03-22 18:06:14.639873"], ["updated_at", "2024-03-22 18:06:14.912247"], ["type", 0], ["file_meta", "{\"focus\":{\"x\":0.0,\"y\":0.0},\"original\":{\"width\":3840,\"height\":2160,\"size\":\"3840x2160\",\"aspect\":1.7777777777777777},\"small\":{\"width\":640,\"height\":360,\"size\":\"640x360\",\"aspect\":1.7777777777777777}}"], ["blurhash", "U7HUOhMyMy_4EeIpx]%LOY-VtSR*4.R%$%rr"], ["file_storage_schema_version", 1], ["id", 112140666413373366]]
18:06:14 sidekiq.1 | ↳ app/lib/activitypub/activity/create.rb:281:in `block in process_attachments'
18:06:14 sidekiq.1 | TRANSACTION (0.3ms) COMMIT
18:06:14 sidekiq.1 | ↳ app/lib/activitypub/activity/create.rb:281:in `block in process_attachments'
18:06:14 sidekiq.1 | Conversation Load (0.1ms) SELECT "conversations".* FROM "conversations" WHERE "conversations"."uri" = $1 LIMIT $2 [["uri", "tag:framapiaf.org,2023-11-20:objectId=92302330:objectType=Conversation"], ["LIMIT", 1]]
18:06:14 sidekiq.1 | ↳ app/lib/activitypub/activity/create.rb:353:in `conversation_from_uri'
18:06:14 sidekiq.1 | TRANSACTION (0.0ms) BEGIN
18:06:14 sidekiq.1 | ↳ app/lib/activitypub/activity/create.rb:353:in `conversation_from_uri'
18:06:14 sidekiq.1 | Conversation Exists? (0.1ms) SELECT 1 AS one FROM "conversations" WHERE "conversations"."uri" = $1 LIMIT $2 [["uri", "tag:framapiaf.org,2023-11-20:objectId=92302330:objectType=Conversation"], ["LIMIT", 1]]
18:06:14 sidekiq.1 | ↳ app/lib/activitypub/activity/create.rb:353:in `conversation_from_uri'
18:06:14 sidekiq.1 | Conversation Create (0.8ms) INSERT INTO "conversations" ("uri", "created_at", "updated_at") VALUES ($1, $2, $3) RETURNING "id" [["uri", "tag:framapiaf.org,2023-11-20:objectId=92302330:objectType=Conversation"], ["created_at", "2024-03-22 18:06:14.928294"], ["updated_at", "2024-03-22 18:06:14.928294"]]
18:06:14 sidekiq.1 | ↳ app/lib/activitypub/activity/create.rb:353:in `conversation_from_uri'
18:06:14 sidekiq.1 | TRANSACTION (0.1ms) COMMIT
18:06:14 sidekiq.1 | ↳ app/lib/activitypub/activity/create.rb:353:in `conversation_from_uri'
18:06:14 sidekiq.1 | Account Load (0.3ms) SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."uri" = $1 LIMIT $2 [["uri", "https://framapiaf.org/users/capitoledulibre/followers"], ["LIMIT", 1]]
18:06:14 sidekiq.1 | ↳ app/lib/activitypub/tag_manager.rb:185:in `uri_to_resource'
18:06:14 sidekiq.1 | TRANSACTION (0.1ms) BEGIN
18:06:14 sidekiq.1 | ↳ app/lib/activitypub/activity/create.rb:86:in `block in process_status'
18:06:14 sidekiq.1 | MediaAttachment Load (0.8ms) SELECT "media_attachments".* FROM "media_attachments" WHERE "media_attachments"."id" IN ($1, $2) [["id", 112140666380447576], ["id", 112140666413373366]]
18:06:14 sidekiq.1 | ↳ app/lib/activitypub/activity/create.rb:86:in `block in process_status'
18:06:14 sidekiq.1 | Account Load (0.2ms) SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2 [["id", 112140666326890329], ["LIMIT", 1]]
18:06:14 sidekiq.1 | ↳ app/lib/activitypub/activity/create.rb:86:in `block in process_status'
18:06:14 sidekiq.1 | CACHE Account Load (0.0ms) SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE "accounts"."id" = $1 LIMIT $2 [["id", 112140666326890329], ["LIMIT", 1]]
18:06:14 sidekiq.1 | ↳ app/lib/activitypub/activity/create.rb:86:in `block in process_status'
18:06:14 sidekiq.1 | Status Exists? (0.2ms) SELECT 1 AS one FROM "statuses" WHERE "statuses"."uri" = $1 LIMIT $2 [["uri", "https://framapiaf.org/users/capitoledulibre/statuses/111444751622813922"], ["LIMIT", 1]]
18:06:14 sidekiq.1 | ↳ app/lib/activitypub/activity/create.rb:86:in `block in process_status'
18:06:14 sidekiq.1 | Status Create (1.1ms) INSERT INTO "statuses" ("id", "uri", "text", "created_at", "updated_at", "in_reply_to_id", "reblog_of_id", "url", "sensitive", "visibility", "spoiler_text", "reply", "language", "conversation_id", "local", "account_id", "application_id", "in_reply_to_account_id", "poll_id", "deleted_at", "edited_at", "trendable", "ordered_media_attachment_ids") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23) RETURNING "id" [["id", 111444751620731959], ["uri", "https://framapiaf.org/users/capitoledulibre/statuses/111444751622813922"], ["text", "<p>Merci à tous: public, speakers, stands et bien sûr bénévoles d&#39;avoir permis cette nouvelle édition du Capitole du Libre!<br />Les photos et vidéos arrivent bientôt!</p>"], ["created_at", "2023-11-20 20:25:57"], ["updated_at", "2024-03-22 18:06:14.967406"], ["in_reply_to_id", nil], ["reblog_of_id", nil], ["url", "https://framapiaf.org/@capitoledulibre/111444751622813922"], ["sensitive", false], ["visibility", 0], ["spoiler_text", ""], ["reply", false], ["language", "fr"], ["conversation_id", 2], ["local", false], ["account_id", 112140666326890329], ["application_id", nil], ["in_reply_to_account_id", nil], ["poll_id", nil], ["deleted_at", nil], ["edited_at", nil], ["trendable", nil], ["ordered_media_attachment_ids", "{112140666380447576,112140666413373366}"]]
18:06:14 sidekiq.1 | ↳ app/models/concerns/status/safe_reblog_insert.rb:19:in `_insert_record'
18:06:14 sidekiq.1 | MediaAttachment Update (0.3ms) UPDATE "media_attachments" SET "status_id" = $1, "updated_at" = $2 WHERE "media_attachments"."id" = $3 [["status_id", 111444751620731959], ["updated_at", "2024-03-22 18:06:14.969904"], ["id", 112140666380447576]]
18:06:14 sidekiq.1 | ↳ app/lib/activitypub/activity/create.rb:86:in `block in process_status'
18:06:14 sidekiq.1 | MediaAttachment Update (0.2ms) UPDATE "media_attachments" SET "status_id" = $1, "updated_at" = $2 WHERE "media_attachments"."id" = $3 [["status_id", 111444751620731959], ["updated_at", "2024-03-22 18:06:14.971099"], ["id", 112140666413373366]]
18:06:14 sidekiq.1 | ↳ app/lib/activitypub/activity/create.rb:86:in `block in process_status'
18:06:14 sidekiq.1 | Tag Load (0.2ms) SELECT "tags".* FROM "tags" INNER JOIN "statuses_tags" ON "tags"."id" = "statuses_tags"."tag_id" WHERE "statuses_tags"."status_id" = $1 [["status_id", 111444751620731959]]
18:06:14 sidekiq.1 | ↳ app/models/trends/tags.rb:17:in `register'
18:06:14 sidekiq.1 | TRANSACTION (0.2ms) COMMIT
18:06:14 sidekiq.1 | ↳ app/lib/activitypub/activity/create.rb:85:in `process_status'
18:06:14 sidekiq.1 | SQL (0.3ms) INSERT INTO account_stats(account_id, statuses_count, created_at, updated_at, last_status_at) VALUES (112140666326890329, 1, now(), now(), now()) ON CONFLICT (account_id) DO UPDATE SET statuses_count = account_stats.statuses_count + 1, last_status_at = now(), updated_at = now() RETURNING id;
18:06:14 sidekiq.1 | ↳ app/models/concerns/account/counters.rb:67:in `update_count!'
18:06:14 sidekiq.1 | Cache delete: v3:statuses/111444751620731959
18:06:14 sidekiq.1 | Cache delete: v3:statuses/111444751620731959
18:06:14 sidekiq.1 | StatusPin Pluck (0.2ms) SELECT "status_pins"."status_id" FROM "status_pins" WHERE "status_pins"."account_id" = $1 [["account_id", 112140666326890329]]
18:06:14 sidekiq.1 | ↳ app/services/activitypub/fetch_featured_collection_service.rb:65:in `process_note_items'
18:06:14 sidekiq.1 | TRANSACTION (0.0ms) BEGIN
18:06:14 sidekiq.1 | ↳ app/services/activitypub/fetch_featured_collection_service.rb:76:in `block in process_note_items'
18:06:14 sidekiq.1 | Status Load (0.1ms) SELECT "statuses".* FROM "statuses" WHERE "statuses"."deleted_at" IS NULL AND "statuses"."id" = $1 ORDER BY "statuses"."id" DESC LIMIT $2 [["id", 111444751620731959], ["LIMIT", 1]]
18:06:14 sidekiq.1 | ↳ app/services/activitypub/fetch_featured_collection_service.rb:76:in `block in process_note_items'
18:06:14 sidekiq.1 | StatusPin Count (0.2ms) SELECT COUNT(*) FROM "status_pins" WHERE "status_pins"."account_id" = $1 [["account_id", 112140666326890329]]
18:06:14 sidekiq.1 | ↳ app/validators/status_pin_validator.rb:10:in `validate'
18:06:14 sidekiq.1 | StatusPin Create (1.2ms) INSERT INTO "status_pins" ("account_id", "status_id", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id", "created_at", "updated_at" [["account_id", 112140666326890329], ["status_id", 111444751620731959], ["created_at", "2024-03-22 18:06:14.989798"], ["updated_at", "2024-03-22 18:06:14.989798"]]
18:06:14 sidekiq.1 | ↳ app/services/activitypub/fetch_featured_collection_service.rb:76:in `block in process_note_items'
18:06:14 sidekiq.1 | TRANSACTION (0.2ms) COMMIT
18:06:14 sidekiq.1 | ↳ app/services/activitypub/fetch_featured_collection_service.rb:76:in `block in process_note_items'
18:06:14 sidekiq.1 | 2024-03-22T18:06:14.993Z pid=2871 tid=ofr class=ActivityPub::SynchronizeFeaturedCollectionWorker jid=495acbc164c4f7cd5eefd37f elapsed=1.697 INFO: done
</code></pre></div></div></details>
<p>Et là ça marche ! Le compte est bien ensuite accessible à <a href="http://mastodon.local:3000/@capitoledulibre@framapiaf.org">http://mastodon.local:3000/@capitoledulibre@framapiaf.org</a>. >_<"</p>
<p>Donc j’ai plus qu’à étudier les logs maintenant pour comprendre ce qui se passe.</p>
<p>Ma première piste étant EC vs RSA, je vais voir si LetsEncrypt me permet de choisir l’algo.</p>[ActivityPub] Faire fonctionner chactivityserver, message #2543832024-03-22T18:31:03+01:00ache/@achehttps://zestedesavoir.com/forums/sujet/17374/activitypub-faire-fonctionner-chactivityserver/?page=1#p254383<p>Ce matin justement j’ai fini la même chose ! <img src="/static/smileys/svg/heureux.svg" alt=":D" class="smiley">
J’ai galéré avec Vagrant.<br>
Au final, j’ai fais <a href="https://github.com/mastodon/mastodon/pull/29710">une PR sur Mastodon</a>. ^^"</p>
<p>Par-contre, sur mon instance locale <a href="http://mastodon.local:3000">http://mastodon.local:3000</a> je n’arrive même pas à charger mon compte mastodon !</p>
<p>Je requêtes un lookup sur <em>@</em>ache<em>@</em>mastodon.xyz et dans les logs de l’instance j’ai ceci:</p>
<div class="hljs-code-div hljs-code-plain"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span><span data-count="3"></span><span data-count="4"></span><span data-count="5"></span><span data-count="6"></span><span data-count="7"></span><span data-count="8"></span><span data-count="9"></span><span data-count="10"></span><span data-count="11"></span><span data-count="12"></span><span data-count="13"></span><span data-count="14"></span></div><pre><code class="hljs language-plain">05:00:23 web.1 | Started GET "/api/v1/accounts/lookup?acct=ache%40mastodon.xyz" for 10.0.2.2 at 2024-03-22 05:00:23 +0000
05:00:23 web.1 | Cache read: blocked_ips ({:compress=>true, :compress_threshold=>1024})
05:00:23 web.1 | Cache generate: blocked_ips ({:compress=>true, :compress_threshold=>1024})
05:00:23 web.1 | IpBlock Pluck (0.1ms) SELECT "ip_blocks"."ip" FROM "ip_blocks" WHERE "ip_blocks"."severity" = $1 [["severity", 9999]]
05:00:23 web.1 | ↳ app/models/ip_block.rb:39:in `block in blocked?'
05:00:23 web.1 | Cache write: blocked_ips ({:compress=>true, :compress_threshold=>1024})
05:00:23 web.1 | Cache write: rack::attack:5703612:throttle_unauthenticated_api:10.0.2.2 ({:compress=>true, :compress_threshold=>1024, :expires_in=>278})
05:00:23 web.1 | Processing by Api::V1::Accounts::LookupController#show as */*
05:00:23 web.1 | Parameters: {"acct"=>"ache@mastodon.xyz"}
05:00:23 web.1 | DomainBlock Load (3.3ms) SELECT "domain_blocks".* FROM "domain_blocks" WHERE "domain_blocks"."domain" IN ($1, $2) ORDER BY CHAR_LENGTH(domain) DESC LIMIT $3 [["domain", "mastodon.xyz"], ["domain", "xyz"], ["LIMIT", 1]]
05:00:23 web.1 | ↳ app/models/domain_block.rb:73:in `rule_for'
05:00:23 web.1 | Account Load (0.2ms) SELECT "accounts"."id", "accounts"."username", "accounts"."domain", "accounts"."private_key", "accounts"."public_key", "accounts"."created_at", "accounts"."updated_at", "accounts"."note", "accounts"."display_name", "accounts"."uri", "accounts"."url", "accounts"."avatar_file_name", "accounts"."avatar_content_type", "accounts"."avatar_file_size", "accounts"."avatar_updated_at", "accounts"."header_file_name", "accounts"."header_content_type", "accounts"."header_file_size", "accounts"."header_updated_at", "accounts"."avatar_remote_url", "accounts"."locked", "accounts"."header_remote_url", "accounts"."last_webfingered_at", "accounts"."inbox_url", "accounts"."outbox_url", "accounts"."shared_inbox_url", "accounts"."followers_url", "accounts"."protocol", "accounts"."memorial", "accounts"."moved_to_account_id", "accounts"."featured_collection_url", "accounts"."fields", "accounts"."actor_type", "accounts"."discoverable", "accounts"."also_known_as", "accounts"."silenced_at", "accounts"."suspended_at", "accounts"."hide_collections", "accounts"."avatar_storage_schema_version", "accounts"."header_storage_schema_version", "accounts"."devices_url", "accounts"."suspension_origin", "accounts"."sensitized_at", "accounts"."trendable", "accounts"."reviewed_at", "accounts"."requested_review_at", "accounts"."indexable" FROM "accounts" WHERE LOWER("accounts"."username") != '' AND LOWER("accounts"."username") = 'ache' AND LOWER("accounts"."domain") = 'mastodon.xyz' ORDER BY "accounts"."id" ASC LIMIT $1 [["LIMIT", 1]]
05:00:23 web.1 | ↳ app/models/concerns/account/finder_concern.rb:41:in `account'
05:00:23 web.1 | Completed 404 Not Found in 56ms (Views: 2.2ms | ActiveRecord: 3.5ms | Allocations: 3153)
</code></pre></div>
<p>On voit qu’il reçoit bien le lookup mais qu’il ne fait aucune requêtes de WebFinger !
Il cherche dans sa BDD les informations du compte.</p>
<p>C’est très bizarre. :/</p>[ActivityPub] Faire fonctionner chactivityserver, message #2543822024-03-22T17:07:23+01:00AmarOk/@AmarOkhttps://zestedesavoir.com/forums/sujet/17374/activitypub-faire-fonctionner-chactivityserver/?page=1#p254382<p>Bon j’ai essayé de rouler le docker pour mastodon mais il semble briser actuellement depuis master :/</p>
<p>Mais deja pas mal sur que ECC il va pas aimer</p>[ActivityPub] Faire fonctionner chactivityserver, message #2543622024-03-20T21:26:39+01:00AmarOk/@AmarOkhttps://zestedesavoir.com/forums/sujet/17374/activitypub-faire-fonctionner-chactivityserver/?page=1#p254362<p>Oh mais attends. le ECC va pas marcher.</p>
<p><a href="https://docs.joinmastodon.org/spec/security/">https://docs.joinmastodon.org/spec/security/</a></p>
<p>ca prend du RSA-SHA256 ici</p>[ActivityPub] Faire fonctionner chactivityserver, message #2543612024-03-20T20:36:46+01:00ache/@achehttps://zestedesavoir.com/forums/sujet/17374/activitypub-faire-fonctionner-chactivityserver/?page=1#p254361<blockquote>
<p>Je tenterais de monter une instance mastodon pour voir les logs de ce côté durant la recherche. C,était le meilleur moyen que j,avais de debug.</p>
</blockquote>
<p>Ben je vais faire ça alors. Je te tiens au courant. <img src="/static/smileys/svg/smile.svg" alt=":)" class="smiley"><br>
Déjà, ça me rassure un peu. J’ai bien compris a priori comment c’est censé fonctionner.</p>
<p>La seule différence que j’ai avec toi, il me semble, est que ma clé est plus courte car Letsencrypt m’a donné une courbe elliptique plutôt que RSA.<br>
Mais déjà pour le savoir, il faudrait qu’il requête le WebFinger ! >_<"</p>
<p>Merci pour ta réponse.</p>[ActivityPub] Faire fonctionner chactivityserver, message #2543602024-03-20T20:25:01+01:00AmarOk/@AmarOkhttps://zestedesavoir.com/forums/sujet/17374/activitypub-faire-fonctionner-chactivityserver/?page=1#p254360<p>Je tenterais de monter une instance mastodon pour voir les logs de ce côté durant la recherche. C,était le meilleur moyen que j,avais de debug.</p>
<p>Pour instance.txt l’idée est de lister les différentes instances par défaut de cha-cu.it pour les suivre <img src="/static/smileys/svg/clin.svg" alt=";)" class="smiley"></p>[ActivityPub] Faire fonctionner chactivityserver, message #2543592024-03-20T20:16:29+01:00ache/@achehttps://zestedesavoir.com/forums/sujet/17374/activitypub-faire-fonctionner-chactivityserver/?page=1#p254359<p>Merci !</p>
<p>Je lance en <code>RUST_LOG</code> en debug même et j’ai ça quand je fais une requête à la main:</p>
<div class="hljs-code-div hljs-code-logs"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span><span data-count="3"></span><span data-count="4"></span><span data-count="5"></span></div><pre><code class="hljs language-logs"> INFO 2024-03-20T19:08:28Z: chactivityserver: Launching server on: 0.0.0.0:8080
INFO 2024-03-20T19:08:28Z: actix_server::builder: starting 16 workers
INFO 2024-03-20T19:08:28Z: actix_server::server: Actix runtime found; starting in Actix runtime
GET WebFinger request: acct:ache@re7.ache.one
INFO 2024-03-20T19:08:36Z: chactivityserver::server: GET WebFinger request: acct:ache@re7.ache.one
</code></pre></div>
<p>J’obtiens la ligne avec:</p>
<div class="hljs-code-div hljs-code-shell"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span><span data-count="3"></span><span data-count="4"></span></div><pre><code class="hljs language-shell"><span class="hljs-meta">$</span><span class="bash"> curl <span class="hljs-string">'https://re7.ache.one/.well-known/webfinger?resource=acct:ache@re7.ache.one'</span></span>
{"aliases":["https://re7.ache.one/recettes/"],"links":[{"href":"https://re7.ache.one/recettes","rel":"http://webfinger.net/rel/profile-page","type":"text/html"},{"href":"https://re7.ache.one/users/ache","rel":"self","type":"application/activity+json"}],"subject":"acct:ache@re7.ache.one"}⏎
<span class="hljs-meta">$</span><span class="bash"> </span>
</code></pre></div>
<p>Mais rien qui s’affiche quand je charge depuis mastodon.xyz.</p>
<p>Dans mon <code>config.json</code> j’ai ça:</p>
<div class="hljs-code-div hljs-code-json"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span><span data-count="3"></span><span data-count="4"></span><span data-count="5"></span><span data-count="6"></span><span data-count="7"></span><span data-count="8"></span><span data-count="9"></span><span data-count="10"></span><span data-count="11"></span><span data-count="12"></span><span data-count="13"></span><span data-count="14"></span><span data-count="15"></span><span data-count="16"></span><span data-count="17"></span><span data-count="18"></span><span data-count="19"></span><span data-count="20"></span><span data-count="21"></span><span data-count="22"></span><span data-count="23"></span><span data-count="24"></span><span data-count="25"></span></div><pre><code class="hljs language-json">{
<span class="hljs-attr">"bind_address"</span>: <span class="hljs-string">"0.0.0.0:8080"</span>,
<span class="hljs-attr">"domain"</span>: <span class="hljs-string">"re7.ache.one"</span>,
<span class="hljs-attr">"user"</span>: <span class="hljs-string">"ache"</span>,
<span class="hljs-attr">"preferred_name"</span>: <span class="hljs-string">"ache"</span>,
<span class="hljs-attr">"profile"</span>: <span class="hljs-string">"recettes"</span>,
<span class="hljs-attr">"avatar"</span>: <span class="hljs-string">"logo.png"</span>,
<span class="hljs-attr">"banner"</span>: <span class="hljs-string">"chactivityserver/profile.jpg"</span>,
<span class="hljs-attr">"private_key"</span>: <span class="hljs-string">".keys/privkey.pem"</span>,
<span class="hljs-attr">"public_key"</span>: <span class="hljs-string">".keys/pubkey.pem"</span>,
<span class="hljs-attr">"description"</span>: <span class="hljs-string">"Un site de recettes de cordon rouge ! re7.ache.one est un petit site de partage de recettes en tout genre. Les recettes sont en grande partie réalisées sous la supervision de Rouge, le renard."</span>,
<span class="hljs-attr">"cache_dir"</span>: <span class="hljs-string">".cache"</span>,
<span class="hljs-attr">"output_dir"</span>: <span class="hljs-string">"../content/chadiverse"</span>,
<span class="hljs-attr">"input_dir"</span>: <span class="hljs-string">"../content/recettes"</span>,
<span class="hljs-attr">"image_dir"</span>: <span class="hljs-string">"../static/img/"</span>,
<span class="hljs-attr">"static_image_dir"</span>: <span class="hljs-string">"img/"</span>,
<span class="hljs-attr">"manually_approve_followers"</span>: <span class="hljs-literal">false</span>,
<span class="hljs-attr">"discoverable"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"license"</span>: <span class="hljs-string">"CC-0"</span>,
<span class="hljs-attr">"tags"</span>: [<span class="hljs-string">"cuisine"</span>, <span class="hljs-string">"recette"</span>, <span class="hljs-string">"mastocats"</span>, <span class="hljs-string">"mastofox"</span>],
<span class="hljs-attr">"auto_follow_back"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"instances_list"</span>: <span class="hljs-string">"../instances.txt"</span>,
<span class="hljs-attr">"block_list"</span>: <span class="hljs-string">"../block.txt"</span>,
<span class="hljs-attr">"manual_follow_list"</span>: <span class="hljs-string">"../manual_follow.txt"</span>
}
</code></pre></div>
<p>Dans mes logs nginx j’ai bien:</p>
<div class="hljs-code-div hljs-code-text"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span></div><pre><code class="hljs language-text">XXX.9.XXX.XXX - - [20/Mar/2024:20:06:47 +0100] "GET /.well-known/webfinger?resource=acct:ache@re7.ache.one HTTP/2.0" 200 288 "-" "curl/8.6.0"
XXX.9.XXX.XXX - - [20/Mar/2024:20:08:36 +0100] "GET /.well-known/webfinger?resource=acct:ache@re7.ache.one HTTP/2.0" 200 288 "-" "curl/8.6.0"
</code></pre></div>
<p>Mais rien qui concerne le chargement de <a href="https://fosstodon.org/@ache@re7.ache.one">https://fosstodon.org/@ache@re7.ache.one</a> par exemple. <img src="/static/smileys/svg/triste.svg" alt=":(" class="smiley"><br>
Ces deux lignes ont pour user-agent <code>curl</code> dont ce sont juste mes tests à moi.</p>
<p>Je ne suis pas bien sûr de ce qu’il faut mettre dans instances.txt ou manual_follow.txt.</p>
<p>Pour l’instant j’ai ça:</p>
<div class="hljs-code-div hljs-code-shell"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span><span data-count="3"></span><span data-count="4"></span><span data-count="5"></span><span data-count="6"></span><span data-count="7"></span></div><pre><code class="hljs language-shell"><span class="hljs-meta">$</span><span class="bash"> cat ../instances.txt</span>
mastodon.xyz
mastodon.social
framapiaf.org
<span class="hljs-meta">$</span><span class="bash"> cat ../manual_follow.txt</span>
https://cha-cu.it/users/chef
https://mastodon.xyz/users/ache
</code></pre></div>
<p>Ma config nginx:</p>
<details class="custom-block custom-block-spoiler"><div class="custom-block-body"><div class="hljs-code-div hljs-code-text"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span><span data-count="3"></span><span data-count="4"></span><span data-count="5"></span><span data-count="6"></span><span data-count="7"></span><span data-count="8"></span><span data-count="9"></span><span data-count="10"></span><span data-count="11"></span><span data-count="12"></span><span data-count="13"></span><span data-count="14"></span><span data-count="15"></span><span data-count="16"></span><span data-count="17"></span><span data-count="18"></span><span data-count="19"></span><span data-count="20"></span><span data-count="21"></span><span data-count="22"></span><span data-count="23"></span><span data-count="24"></span><span data-count="25"></span><span data-count="26"></span><span data-count="27"></span><span data-count="28"></span><span data-count="29"></span><span data-count="30"></span><span data-count="31"></span><span data-count="32"></span><span data-count="33"></span><span data-count="34"></span><span data-count="35"></span><span data-count="36"></span><span data-count="37"></span><span data-count="38"></span><span data-count="39"></span><span data-count="40"></span><span data-count="41"></span><span data-count="42"></span><span data-count="43"></span><span data-count="44"></span><span data-count="45"></span><span data-count="46"></span><span data-count="47"></span><span data-count="48"></span><span data-count="49"></span><span data-count="50"></span><span data-count="51"></span><span data-count="52"></span><span data-count="53"></span><span data-count="54"></span><span data-count="55"></span><span data-count="56"></span><span data-count="57"></span><span data-count="58"></span><span data-count="59"></span><span data-count="60"></span><span data-count="61"></span><span data-count="62"></span><span data-count="63"></span><span data-count="64"></span><span data-count="65"></span><span data-count="66"></span><span data-count="67"></span><span data-count="68"></span><span data-count="69"></span><span data-count="70"></span><span data-count="71"></span><span data-count="72"></span><span data-count="73"></span><span data-count="74"></span><span data-count="75"></span><span data-count="76"></span><span data-count="77"></span><span data-count="78"></span><span data-count="79"></span><span data-count="80"></span><span data-count="81"></span><span data-count="82"></span><span data-count="83"></span><span data-count="84"></span><span data-count="85"></span><span data-count="86"></span><span data-count="87"></span><span data-count="88"></span><span data-count="89"></span><span data-count="90"></span><span data-count="91"></span><span data-count="92"></span></div><pre><code class="hljs language-text">server {
# Proxy to redirect to HTTPS
server_name re7.ache.one;
access_log /var/log/nginx/re7.ache.one.acces.log combined;
error_log /var/log/nginx/re7.ache.one.error.log error;
listen [::]:80;
listen 80;
root /srv/re7/public;
# location /.well-known/acme-challenge/ {
# try_files $uri $uri/ =404;
# }
location / {
return 301 https://$host/;
}
}
server {
# Main server
server_name re7.ache.one;
access_log /var/log/nginx/re7.ache.one.acces.log combined;
error_log /var/log/nginx/re7.ache.one.error.log error;
error_page 404 /404.html;
error_page 501 /403.html;
error_page 403 /403.html;
root /srv/re7/public;
index index.html;
brotli on;
brotli_comp_level 6;
brotli_types *;
# always here apply the add_header instruction to generated webpages which are not include otherwise
# add_header Strict-Transport-Security "max-age=31536000" always;
# This instrucion disable MIME detection by the browser
# add_header X-Content-Type-Options nosniff;
# add_header Content-Security-Policy "default-src 'self' blob: https://re7.ache.one; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://re7.ache.one; img-src 'self' data: https://re7.ache.one; style-src 'self' 'unsafe-inline' 'unsafe-eval' re7.ache.one; font-src 'self' data: https://re7.ache.one; worker-src 'unsafe-inline' 'unsafe-eval' https://re7.ache.one blob:";
location = /self/ {
auth_basic "Monitoring tool - Authentication required";
auth_basic_user_file /srv/re7.ache.one/self/.htpasswd;
try_files $uri /self/index.html =404;
}
# Fuckers from data analysis tool
deny 85.192.63.22;
location ~ /(src|.git) {
deny all;
return 403;
}
location /inbox {
proxy_pass http://localhost:8080;
}
location /users {
proxy_pass http://localhost:8080;
}
location /.well-known/webfinger {
proxy_pass http://localhost:8080;
}
location / {
port_in_redirect off;
}
error_page 404 /404.html;
location = /40x.html {
port_in_redirect off;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
port_in_redirect off;
}
port_in_redirect off;
listen [::]:8083 ssl http2; # managed by myself.
listen 8083 ssl http2; # managed by moi !
ssl_certificate /etc/letsencrypt/live/re7.ache.one/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/re7.ache.one/privkey.pem; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
</code></pre></div></div></details>[ActivityPub] Faire fonctionner chactivityserver, message #2543582024-03-20T19:56:38+01:00AmarOk/@AmarOkhttps://zestedesavoir.com/forums/sujet/17374/activitypub-faire-fonctionner-chactivityserver/?page=1#p254358<p>Quand tu lances avec <code>RUST_LOG=info cargo run</code> les logs te disent quoi?</p>
<p>Aussi ton config.json te donne bien "users:"ache" et ton domain?</p>[ActivityPub] Faire fonctionner chactivityserver, message #2543452024-03-19T23:34:55+01:00ache/@achehttps://zestedesavoir.com/forums/sujet/17374/activitypub-faire-fonctionner-chactivityserver/?page=1#p254345<p>Bonjour,</p>
<p>J’essaye depuis ce soir de mettre en place une instance de <a href="https://github.com/AmarOk1412/Cha-Cuit/blob/main/README.md">Cha-cu.it</a>, un projet d'<a href="/@AmarOk" rel="nofollow" class="ping ping-link">@<span class="ping-username">AmarOk</span></a>.<br>
Je n’ai pas eu de problème particulier si ce n’est avec la fonctionnalité de suivi d’ActivityPub.
J’aimerais qu’on puisse suivre mes recettes depuis mastodon par exemple. </p>
<p>Je suis loin d’être un expert d’ActivityPub mais dans ma conception des choses:</p>
<ul>
<li>Lorsque l’on visite: <a href="https://mastodon.xyz/@chef@cha-cu.it">https://mastodon.xyz/@chef@cha-cu.it</a> un WebFinger est fait sur l’instance cha-cu.it afin d’avoir plus d’information sur l’utilisateur <code>chef</code>. La réponse est une URL vers le profile de chef. (un JRD avec avec une URL) </li>
<li>Le serveur requête le profil utilisateur et les transmets comme sa propre réponse. Ou transmets l’URL et le client fait lui même la requête.</li>
</ul>
<p>Or je n’ai même pas la première étape. C’est-à-dire que visiter <a href="https://mastodon.xyz/@ache@re7.ache.one">https://mastodon.xyz/@ache@re7.ache.one</a> ne semble pas déclencher de WebFinger sur mon instance re7.ache.one. </p>
<p>Pourtant le webfinger est mis en place (grâce à <a href="https://github.com/AmarOk1412/Cha-Cuit/blob/main/chactivityserver/README.md">chactivityserver</a>):</p>
<div class="hljs-code-div hljs-code-text"><div class="hljs-line-numbers"><span data-count="1"></span><span data-count="2"></span><span data-count="3"></span><span data-count="4"></span><span data-count="5"></span><span data-count="6"></span><span data-count="7"></span><span data-count="8"></span><span data-count="9"></span><span data-count="10"></span><span data-count="11"></span><span data-count="12"></span><span data-count="13"></span><span data-count="14"></span><span data-count="15"></span><span data-count="16"></span><span data-count="17"></span><span data-count="18"></span><span data-count="19"></span><span data-count="20"></span><span data-count="21"></span><span data-count="22"></span><span data-count="23"></span><span data-count="24"></span><span data-count="25"></span><span data-count="26"></span><span data-count="27"></span><span data-count="28"></span></div><pre><code class="hljs language-text">$ httpx "https://re7.ache.one/.well-known/webfinger?resource=acct:ache@re7.ache.one"
HTTP/1.1 200 OK
Server: nginx/1.24.0
Date: Tue, 19 Mar 2024 22:16:06 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
Content-Encoding: br
{
"aliases": [
"https://re7.ache.one/recettes/"
],
"links": [
{
"href": "https://re7.ache.one/recettes",
"rel": "http://webfinger.net/rel/profile-page",
"type": "text/html"
},
{
"href": "https://re7.ache.one/users/ache",
"rel": "self",
"type": "application/activity+json"
}
],
"subject": "acct:ache@re7.ache.one"
}
</code></pre></div>
<p>Il y a-t-il une condition pour que le serveur effectue un WebFinger ?</p>
<p>Je vois bien que mastodon.xyz effectue un GET sur <a href="https://mastodon.xyz/api/v1/accounts/lookup?acct=ache%40re7.ache.one">https://mastodon.xyz/api/v1/accounts/lookup?acct=ache%40re7.ache.one</a>. Et que cette réponse donne :</p>
<div class="hljs-code-div hljs-code-json"><pre><code class="hljs language-json">{<span class="hljs-attr">"error"</span>:<span class="hljs-string">"Record not found"</span>}
</code></pre></div>
<p>Mais comment peut-il dire qu’il ne m’a pas trouvé s’il ne m’a même pas chercher ?
Je vois dans <a href="https://docs.joinmastodon.org/methods/accounts/#lookup">la documentation que le lookup</a> évite la requête WebFinger mais pourquoi ? Et comment ? Sur quoi se base-t-il si ce n’est pas WebFinger pour dire que j’existe ou pas ?</p>
<blockquote>
<p>Quickly lookup a username to see if it is available, skipping WebFinger resolution.</p>
</blockquote>Un microblog custom et standard à la fois ?, message #2424732022-04-28T15:10:34+02:00viki53/@viki53https://zestedesavoir.com/forums/sujet/16225/un-microblog-custom-et-standard-a-la-fois/?page=1#p242473<p>Ah cool donc je pourrais utiliser du MD pour la rédaction et publier du HTML pour les clients qui supportent ça (en espérant/considérant que les autres suppriment bêtement les balises) !</p>
<p>Je vais commencer à voir comment je peux intégrer ça avec mon code alors <img src="/static/smileys/svg/1f913.svg" alt="🤓" class="smiley"> </p>Un microblog custom et standard à la fois ?, message #2424692022-04-28T14:13:47+02:00Amaury/@Amauryhttps://zestedesavoir.com/forums/sujet/16225/un-microblog-custom-et-standard-a-la-fois/?page=1#p242469<p>ActivityPub gère, je crois, le formatage, donc c’est pas forcément un souci (j’ai pas vérifié la spec exacte, mais certaines variantes de Mastodon supportent Markdown, et on voit la mise en forme dans le client Masto historique, donc a priori…). Il me semble que tu peux juste exposer du HTML (comme en RSS, en fait).</p>Un microblog custom et standard à la fois ?, message #2424622022-04-28T09:47:58+02:00viki53/@viki53https://zestedesavoir.com/forums/sujet/16225/un-microblog-custom-et-standard-a-la-fois/?page=1#p242462<p>Effectivement, je pourrais proposer les deux <img src="/static/smileys/svg/hihi.svg" alt="^^" class="smiley"> </p>
<p>Reste à voir comment gérer le formatage du coup, comme mon blog utilise actuellement ZMD… peut-être gérer un type d’articles sans formatage tout bêtement ?</p>Un microblog custom et standard à la fois ?, message #2424612022-04-28T09:37:36+02:00qwerty/@qwertyhttps://zestedesavoir.com/forums/sujet/16225/un-microblog-custom-et-standard-a-la-fois/?page=1#p242461<p>Après, on peut avoir fromage et dessert en proposant RSS et activitypub, c’est ce qui est proposé d’ailleurs sur mastodon.</p>Un microblog custom et standard à la fois ?, message #2424522022-04-27T16:03:39+02:00viki53/@viki53https://zestedesavoir.com/forums/sujet/16225/un-microblog-custom-et-standard-a-la-fois/?page=1#p242452<p>Effectivement, j’avais une idée du genre de ce blog en tête !</p>
<p>La grosse question c’est la diffusion : simple RSS (intégré à celui de mon blog classique ou non) ? ActivityPub (qui permettrait des réactions autrement que par mail/commentaire direct) ?</p>
<p>Peut-être qu’une intégration à mon blog actuel pourrait se faire, avec des marqueurs spécifiques (pour filtrer et afficher différemment). </p>
<p>Faut voir si je peux intégrer du ActivityPub au système de commentaires pour fusionner les deux élégamment… <img src="/static/smileys/svg/1f914.svg" alt="🤔" class="smiley"> </p>Un microblog custom et standard à la fois ?, message #2424512022-04-27T15:44:42+02:00qwerty/@qwertyhttps://zestedesavoir.com/forums/sujet/16225/un-microblog-custom-et-standard-a-la-fois/?page=1#p242451<p>Franchement, ActivityPub me semble une bonne solution pour le microblogging. Sinon, j’aime bien ce <a href="https://www.quaternum.net/flux/">format</a> de blog classique, mais avec des articles courts (1 paragraphe).</p>Un microblog custom et standard à la fois ?, message #2424492022-04-27T14:40:06+02:00viki53/@viki53https://zestedesavoir.com/forums/sujet/16225/un-microblog-custom-et-standard-a-la-fois/?page=1#p242449<p>Hello bonjour !</p>
<p>J’ai envie de me lancer dans un projet dans l’air du temps : mettre en place du microblogging sur <a href="https://www.corentin-hatte.eu">mon site</a> sans utiliser une solution toute prête pour pouvoir intégrer ça proprement au reste. Je fais donc appel à vos connaissances pour tenter de trouver une solution qui me convienne…</p>
<p>Je vous vois déjà venir :</p>
<div class="custom-block custom-block-question"><div class="custom-block-body"><p>En voilà une idée étrange de réinventer la roue alors que Twitter et Mastodon existent déjà !</p></div></div>
<p>Oui mais justement, l’idée est de ne pas dépendre d’un service externe mais d’utiliser des standards établis et simples : pas besoin de temps réel, de sondages ou de messagerie privée.</p>
<p>J’ai pensé à faire du RSS pur et simple et ça aurait l’avantage de s’intégrer facilement à mon blog actuel avec peu de modifications. Mais je ne sais pas si c’est le plus efficace ni le plus <em>user-friendly</em> pour ceux qui voudraient me « suivre ».</p>
<p>Je commence aussi à me renseigner sur ActivityPub qui me rendrait compatible avec Mastodon… mais je ne suis pas encore sûr de l’impact technique que cela aurait, d’autant que je cherche plutôt quelque chose de simple, sans flux/<em>threads</em>.</p>
<p>Est-ce que vous avez déjà vu ou testé des implémentations du genre ? Quels sont vos retours d’expérience ?</p>
<div class="custom-block custom-block-warning"><div class="custom-block-heading">NOTE</div><div class="custom-block-body"><p>Je cherche bien un truc simple sur lequel je puisse poster principalement des liens ou médias avec court commentaire éventuel, idéalement en proposant un moyen pour répondre facilement (comme un blog, mais en plus court et simplifié, et idéalement compatible avec des outils standardisés, libres et durables).</p></div></div>
<div class="custom-block custom-block-information"><div class="custom-block-heading">Informations techniques</div><div class="custom-block-body"><p>Pour info mon site est développé en PHP avec Laravel et hébergé sur un VPS basique (monté avec Ansible). J’ai une interface de gestion sur mesure pour gérer les contenus dynamiques (articles, commentaires, avis clients) et éditer des devis/factures. J’aimerais donc pouvoir intégrer tout ça au même endroit (directement ou indirectement).</p></div></div>Y-a-t'il des clémentines sur Mastodon ?, message #2218982020-06-05T10:40:46+02:00otini/@otinihttps://zestedesavoir.com/forums/sujet/8419/y-a-til-des-clementines-sur-mastodon/?page=6#p221898<p>Je suis <a href="/membres/voir/otini/" rel="nofollow" class="ping ping-link">@<span class="ping-username">otini</span></a><a href="/membres/voir/functional/" rel="nofollow" class="ping ping-link">@<span class="ping-username">functional</span></a>.cafe. (Déterrage désolé <img src="/static/smileys/svg/unsure.svg" alt=":euh:" class="smiley"> )</p>Y-a-t'il des clémentines sur Mastodon ?, message #1891792018-09-13T21:53:09+02:00anonyme/@anonymehttps://zestedesavoir.com/forums/sujet/8419/y-a-til-des-clementines-sur-mastodon/?page=6#p189179<p>Les trois grosses difficultés que je rencontre c’est :</p>
<ul>
<li>les groupes</li>
<li>le droit à l’oubli</li>
<li>la procédure en cas de piratage du compte</li>
</ul>
<p>Ca se résoud bien si on peut considérer qu’il n’y a pas de rogue node dans le réseau parce que ça revient en gros à un serveur distribué. Mais évidemment en P2P ce n’est pas le cas.</p>Y-a-t'il des clémentines sur Mastodon ?, message #1891002018-09-12T10:25:55+02:00Eragon/@Eragonhttps://zestedesavoir.com/forums/sujet/8419/y-a-til-des-clementines-sur-mastodon/?page=6#p189100<p>Oulala! c’ets probablement possible mais le chiffrement bout en bout est complexe à mettre en place </p>