diff --git a/app/lib/admin/metrics/dimension/base_dimension.rb b/app/lib/admin/metrics/dimension/base_dimension.rb index bd2e4ececbe..0e055e0e75e 100644 --- a/app/lib/admin/metrics/dimension/base_dimension.rb +++ b/app/lib/admin/metrics/dimension/base_dimension.rb @@ -65,4 +65,16 @@ class Admin::Metrics::Dimension::BaseDimension def canonicalized_params params.to_h.to_a.sort_by { |k, _v| k.to_s }.map { |k, v| "#{k}=#{v}" }.join(';') end + + def earliest_status_id + snowflake_id(@start_at.beginning_of_day) + end + + def latest_status_id + snowflake_id(@end_at.end_of_day) + end + + def snowflake_id(datetime) + Mastodon::Snowflake.id_at(datetime, with_random: false) + end end diff --git a/app/lib/admin/metrics/dimension/instance_languages_dimension.rb b/app/lib/admin/metrics/dimension/instance_languages_dimension.rb index 661e6d93b75..5f4bb95cb8f 100644 --- a/app/lib/admin/metrics/dimension/instance_languages_dimension.rb +++ b/app/lib/admin/metrics/dimension/instance_languages_dimension.rb @@ -19,7 +19,7 @@ class Admin::Metrics::Dimension::InstanceLanguagesDimension < Admin::Metrics::Di end def sql_array - [sql_query_string, { domain: params[:domain], earliest_status_id: earliest_status_id, latest_status_id: latest_status_id, limit: @limit }] + [sql_query_string, { domain: params[:domain], earliest_status_id:, latest_status_id:, limit: @limit }] end def sql_query_string @@ -36,14 +36,6 @@ class Admin::Metrics::Dimension::InstanceLanguagesDimension < Admin::Metrics::Di SQL end - def earliest_status_id - Mastodon::Snowflake.id_at(@start_at.beginning_of_day, with_random: false) - end - - def latest_status_id - Mastodon::Snowflake.id_at(@end_at.end_of_day, with_random: false) - end - def params @params.permit(:domain) end diff --git a/app/lib/admin/metrics/dimension/servers_dimension.rb b/app/lib/admin/metrics/dimension/servers_dimension.rb index 2c8406d52fd..7e3ab603d03 100644 --- a/app/lib/admin/metrics/dimension/servers_dimension.rb +++ b/app/lib/admin/metrics/dimension/servers_dimension.rb @@ -14,7 +14,7 @@ class Admin::Metrics::Dimension::ServersDimension < Admin::Metrics::Dimension::B end def sql_array - [sql_query_string, { earliest_status_id: earliest_status_id, latest_status_id: latest_status_id, limit: @limit }] + [sql_query_string, { earliest_status_id:, latest_status_id:, limit: @limit }] end def sql_query_string @@ -28,12 +28,4 @@ class Admin::Metrics::Dimension::ServersDimension < Admin::Metrics::Dimension::B LIMIT :limit SQL end - - def earliest_status_id - Mastodon::Snowflake.id_at(@start_at.beginning_of_day, with_random: false) - end - - def latest_status_id - Mastodon::Snowflake.id_at(@end_at.end_of_day, with_random: false) - end end diff --git a/app/lib/admin/metrics/dimension/tag_languages_dimension.rb b/app/lib/admin/metrics/dimension/tag_languages_dimension.rb index 6e283d2c655..b7b9abc8b6f 100644 --- a/app/lib/admin/metrics/dimension/tag_languages_dimension.rb +++ b/app/lib/admin/metrics/dimension/tag_languages_dimension.rb @@ -19,7 +19,7 @@ class Admin::Metrics::Dimension::TagLanguagesDimension < Admin::Metrics::Dimensi end def sql_array - [sql_query_string, { tag_id: tag_id, earliest_status_id: earliest_status_id, latest_status_id: latest_status_id, limit: @limit }] + [sql_query_string, { tag_id: tag_id, earliest_status_id:, latest_status_id:, limit: @limit }] end def sql_query_string @@ -39,14 +39,6 @@ class Admin::Metrics::Dimension::TagLanguagesDimension < Admin::Metrics::Dimensi params[:id] end - def earliest_status_id - Mastodon::Snowflake.id_at(@start_at.beginning_of_day, with_random: false) - end - - def latest_status_id - Mastodon::Snowflake.id_at(@end_at.end_of_day, with_random: false) - end - def params @params.permit(:id) end diff --git a/app/lib/admin/metrics/dimension/tag_servers_dimension.rb b/app/lib/admin/metrics/dimension/tag_servers_dimension.rb index db820e965c5..29145e14871 100644 --- a/app/lib/admin/metrics/dimension/tag_servers_dimension.rb +++ b/app/lib/admin/metrics/dimension/tag_servers_dimension.rb @@ -18,7 +18,7 @@ class Admin::Metrics::Dimension::TagServersDimension < Admin::Metrics::Dimension end def sql_array - [sql_query_string, { tag_id: tag_id, earliest_status_id: earliest_status_id, latest_status_id: latest_status_id, limit: @limit }] + [sql_query_string, { tag_id: tag_id, earliest_status_id:, latest_status_id:, limit: @limit }] end def sql_query_string @@ -39,14 +39,6 @@ class Admin::Metrics::Dimension::TagServersDimension < Admin::Metrics::Dimension params[:id] end - def earliest_status_id - Mastodon::Snowflake.id_at(@start_at.beginning_of_day, with_random: false) - end - - def latest_status_id - Mastodon::Snowflake.id_at(@end_at.end_of_day, with_random: false) - end - def params @params.permit(:id) end diff --git a/app/lib/admin/metrics/measure/base_measure.rb b/app/lib/admin/metrics/measure/base_measure.rb index 8b7fe39b55a..eabbe0890b6 100644 --- a/app/lib/admin/metrics/measure/base_measure.rb +++ b/app/lib/admin/metrics/measure/base_measure.rb @@ -104,4 +104,16 @@ class Admin::Metrics::Measure::BaseMeasure def canonicalized_params params.to_h.to_a.sort_by { |k, _v| k.to_s }.map { |k, v| "#{k}=#{v}" }.join(';') end + + def earliest_status_id + snowflake_id(@start_at.beginning_of_day) + end + + def latest_status_id + snowflake_id(@end_at.end_of_day) + end + + def snowflake_id(datetime) + Mastodon::Snowflake.id_at(datetime, with_random: false) + end end diff --git a/app/lib/admin/metrics/measure/instance_statuses_measure.rb b/app/lib/admin/metrics/measure/instance_statuses_measure.rb index 324d427b18b..f0f797876e6 100644 --- a/app/lib/admin/metrics/measure/instance_statuses_measure.rb +++ b/app/lib/admin/metrics/measure/instance_statuses_measure.rb @@ -28,7 +28,7 @@ class Admin::Metrics::Measure::InstanceStatusesMeasure < Admin::Metrics::Measure end def sql_array - [sql_query_string, { start_at: @start_at, end_at: @end_at, domain: params[:domain], earliest_status_id: earliest_status_id, latest_status_id: latest_status_id }] + [sql_query_string, { start_at: @start_at, end_at: @end_at, domain: params[:domain], earliest_status_id:, latest_status_id: }] end def sql_query_string @@ -50,14 +50,6 @@ class Admin::Metrics::Measure::InstanceStatusesMeasure < Admin::Metrics::Measure SQL end - def earliest_status_id - Mastodon::Snowflake.id_at(@start_at.beginning_of_day, with_random: false) - end - - def latest_status_id - Mastodon::Snowflake.id_at(@end_at.end_of_day, with_random: false) - end - def params @params.permit(:domain, :include_subdomains) end diff --git a/app/lib/admin/metrics/measure/tag_servers_measure.rb b/app/lib/admin/metrics/measure/tag_servers_measure.rb index 5db1076062b..e8d9cc43b8d 100644 --- a/app/lib/admin/metrics/measure/tag_servers_measure.rb +++ b/app/lib/admin/metrics/measure/tag_servers_measure.rb @@ -22,7 +22,7 @@ class Admin::Metrics::Measure::TagServersMeasure < Admin::Metrics::Measure::Base end def sql_array - [sql_query_string, { start_at: @start_at, end_at: @end_at, tag_id: tag.id, earliest_status_id: earliest_status_id, latest_status_id: latest_status_id }] + [sql_query_string, { start_at: @start_at, end_at: @end_at, tag_id: tag.id, earliest_status_id:, latest_status_id: }] end def sql_query_string @@ -45,14 +45,6 @@ class Admin::Metrics::Measure::TagServersMeasure < Admin::Metrics::Measure::Base SQL end - def earliest_status_id - Mastodon::Snowflake.id_at(@start_at.beginning_of_day, with_random: false) - end - - def latest_status_id - Mastodon::Snowflake.id_at(@end_at.end_of_day, with_random: false) - end - def tag @tag ||= Tag.find(params[:id]) end