diff app/lib/cached_fetch.rb @ 245:2935c5e52a71

No more official twitter api
author nanaya <me@nanaya.net>
date Mon, 17 Jul 2023 04:23:09 +0900
parents c800506ae799
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/lib/cached_fetch.rb	Mon Jul 17 04:23:09 2023 +0900
@@ -0,0 +1,17 @@
+module CachedFetch
+  def self.timeline(user_id)
+    cached("timeline:#{user_id}") { LegitClient.timeline(user_id)&.[](:timeline) }
+  end
+
+  def self.user_by_id(user_id)
+    cached("user_by_id:#{user_id}") { LegitClient.user_by_id(user_id)&.[](:user) }
+  end
+
+  def self.user_by_username(username)
+    cached("user_by_username:#{username}") { LegitClient.user_by_username(username)&.[](:user) }
+  end
+
+  def self.cached(key, &block)
+    Rails.cache.fetch(key, expires_in: (15 + rand(60)).minutes, &block)
+  end
+end