forked from asonix/mastodon
* Add nodeinfo endpoint * dont commit stuff from my local dev * consistant naming since we implimented 2.1 schema * Add some additional node info stuff * Add nodeinfo endpoint * dont commit stuff from my local dev * consistant naming since we implimented 2.1 schema * expanding this to include federation info * codeclimate feedback * CC feedback * using activeserializers seems like a good idea... * get rid of draft 2.1 version * Reimplement 2.1, also fix metaData -> metadata * Fix metaData -> metadata here too * Fix nodeinfo 2.1 tests * Implement cache for monthly user aggregate * Useless * Remove ostatus from the list of supported protocols * Fix nodeinfo's open_registration reading obsolete setting variable * Only serialize domain blocks with user-facing limitations * Do not needlessly list noop severity in nodeinfo * Only serialize domain blocks info in nodeinfo when they are set to be displayed to everyone * Enable caching for nodeinfo endpoints * Fix rendering nodeinfo * CodeClimate fixes * Please CodeClimate * Change InstancePresenter#active_user_count_months for clarity * Refactor NodeInfoSerializer#metadata * Remove nodeinfo 2.1 support as the schema doesn't exist * Clean-up
29 lines
506 B
Ruby
29 lines
506 B
Ruby
# frozen_string_literal: true
|
|
|
|
class ActivityTracker
|
|
EXPIRE_AFTER = 6.months.seconds
|
|
|
|
class << self
|
|
include Redisable
|
|
|
|
def increment(prefix)
|
|
key = [prefix, current_week].join(':')
|
|
|
|
redis.incrby(key, 1)
|
|
redis.expire(key, EXPIRE_AFTER)
|
|
end
|
|
|
|
def record(prefix, value)
|
|
key = [prefix, current_week].join(':')
|
|
|
|
redis.pfadd(key, value)
|
|
redis.expire(key, EXPIRE_AFTER)
|
|
end
|
|
|
|
private
|
|
|
|
def current_week
|
|
Time.zone.today.cweek
|
|
end
|
|
end
|
|
end
|