Add more endpoints for now page
This commit is contained in:
27
Gemfile
27
Gemfile
@@ -14,9 +14,10 @@ gem "hanami-view", "2.1.0"
|
|||||||
gem "csv"
|
gem "csv"
|
||||||
gem "rom-sql"
|
gem "rom-sql"
|
||||||
gem "pg"
|
gem "pg"
|
||||||
gem "scraperd", github: "dNitza/scraperd", branch: "master"
|
|
||||||
|
|
||||||
gem "dotenv"
|
gem "dotenv"
|
||||||
|
gem "whenever", require: false
|
||||||
|
gem "warning"
|
||||||
|
|
||||||
gem "dry-types"
|
gem "dry-types"
|
||||||
gem "dry-matcher"
|
gem "dry-matcher"
|
||||||
@@ -25,11 +26,13 @@ gem "puma"
|
|||||||
gem "rake"
|
gem "rake"
|
||||||
gem "slim"
|
gem "slim"
|
||||||
gem "builder"
|
gem "builder"
|
||||||
gem "georuby"
|
|
||||||
gem "gpx"
|
gem "gpx"
|
||||||
|
|
||||||
|
gem "redis"
|
||||||
|
|
||||||
|
gem "georuby"
|
||||||
gem "gnuplot"
|
gem "gnuplot"
|
||||||
gem "matrix"
|
gem "matrix"
|
||||||
gem "redis"
|
|
||||||
|
|
||||||
gem "rack-session"
|
gem "rack-session"
|
||||||
gem "rack-rewrite"
|
gem "rack-rewrite"
|
||||||
@@ -42,27 +45,25 @@ gem "redcarpet"
|
|||||||
gem "reverse_markdown"
|
gem "reverse_markdown"
|
||||||
gem "rexml"
|
gem "rexml"
|
||||||
gem "babosa"
|
gem "babosa"
|
||||||
gem "bskyrb"
|
|
||||||
gem "ogpr"
|
|
||||||
gem "ruby-filemagic", git: "https://github.com/dnitza/ruby-filemagic", branch: "master"
|
gem "ruby-filemagic", git: "https://github.com/dnitza/ruby-filemagic", branch: "master"
|
||||||
gem "mail_room", github: "dNitza/mail_room", branch: "master"
|
|
||||||
gem "charlock_holmes"
|
gem "charlock_holmes"
|
||||||
gem "sanitize"
|
gem "sanitize"
|
||||||
gem "time_math2", require: "time_math"
|
gem "time_math2", require: "time_math"
|
||||||
gem "jwt"
|
gem "jwt"
|
||||||
gem "lastfm", "~> 1.27"
|
|
||||||
gem "mail"
|
gem "mail"
|
||||||
gem "que"
|
gem "que"
|
||||||
gem "unicode-emoji"
|
|
||||||
gem "connection_pool"
|
gem "connection_pool"
|
||||||
gem "omdb-api", "1.4.3", require: false
|
|
||||||
gem "image_processing", "~> 1.0"
|
gem "image_processing", "~> 1.0"
|
||||||
gem "onnxruntime"
|
|
||||||
gem "mini_magick"
|
gem "mini_magick"
|
||||||
|
gem "unicode-emoji"
|
||||||
|
|
||||||
gem "whenever", require: false
|
gem "mail_room", github: "dNitza/mail_room", branch: "master"
|
||||||
|
gem "scraperd", github: "dNitza/scraperd", branch: "master"
|
||||||
gem "warning"
|
gem "bskyrb"
|
||||||
|
gem "ogpr"
|
||||||
|
gem "omdb-api", "1.4.3", require: false
|
||||||
|
gem "lastfm", "~> 1.27"
|
||||||
|
gem "steam-api"
|
||||||
|
|
||||||
group :cli, :development do
|
group :cli, :development do
|
||||||
gem "irb"
|
gem "irb"
|
||||||
|
21
Gemfile.lock
21
Gemfile.lock
@@ -158,10 +158,9 @@ GEM
|
|||||||
ed25519 (1.3.0)
|
ed25519 (1.3.0)
|
||||||
faker (3.3.0)
|
faker (3.3.0)
|
||||||
i18n (>= 1.8.11, < 2)
|
i18n (>= 1.8.11, < 2)
|
||||||
faraday (2.9.0)
|
faraday (1.2.0)
|
||||||
faraday-net_http (>= 2.0, < 3.2)
|
multipart-post (>= 1.2, < 3)
|
||||||
faraday-net_http (3.1.0)
|
ruby2_keywords
|
||||||
net-http
|
|
||||||
ffi (1.16.3)
|
ffi (1.16.3)
|
||||||
formatador (1.1.0)
|
formatador (1.1.0)
|
||||||
georuby (2.5.2)
|
georuby (2.5.2)
|
||||||
@@ -280,6 +279,7 @@ GEM
|
|||||||
mini_mime (1.1.5)
|
mini_mime (1.1.5)
|
||||||
minitest (5.22.3)
|
minitest (5.22.3)
|
||||||
multi_xml (0.6.0)
|
multi_xml (0.6.0)
|
||||||
|
multipart-post (2.4.0)
|
||||||
mustermann (3.0.0)
|
mustermann (3.0.0)
|
||||||
ruby2_keywords (~> 0.0.1)
|
ruby2_keywords (~> 0.0.1)
|
||||||
mustermann-contrib (3.0.0)
|
mustermann-contrib (3.0.0)
|
||||||
@@ -287,8 +287,6 @@ GEM
|
|||||||
mustermann (= 3.0.0)
|
mustermann (= 3.0.0)
|
||||||
mutex_m (0.2.0)
|
mutex_m (0.2.0)
|
||||||
nenv (0.3.0)
|
nenv (0.3.0)
|
||||||
net-http (0.4.1)
|
|
||||||
uri
|
|
||||||
net-imap (0.4.10)
|
net-imap (0.4.10)
|
||||||
date
|
date
|
||||||
net-protocol
|
net-protocol
|
||||||
@@ -327,12 +325,6 @@ GEM
|
|||||||
omdb-api (1.4.3)
|
omdb-api (1.4.3)
|
||||||
activesupport
|
activesupport
|
||||||
httparty
|
httparty
|
||||||
onnxruntime (0.9.0-arm64-darwin)
|
|
||||||
ffi
|
|
||||||
onnxruntime (0.9.0-x86_64-darwin)
|
|
||||||
ffi
|
|
||||||
onnxruntime (0.9.0-x86_64-linux)
|
|
||||||
ffi
|
|
||||||
parallel (1.24.0)
|
parallel (1.24.0)
|
||||||
parser (3.3.0.5)
|
parser (3.3.0.5)
|
||||||
ast (~> 2.4.1)
|
ast (~> 2.4.1)
|
||||||
@@ -479,6 +471,8 @@ GEM
|
|||||||
rubocop-performance (~> 1.20.2)
|
rubocop-performance (~> 1.20.2)
|
||||||
standardrb (1.0.1)
|
standardrb (1.0.1)
|
||||||
standard
|
standard
|
||||||
|
steam-api (1.2.0)
|
||||||
|
faraday (~> 1.0)
|
||||||
stringio (3.1.0)
|
stringio (3.1.0)
|
||||||
temple (0.10.3)
|
temple (0.10.3)
|
||||||
thor (1.3.1)
|
thor (1.3.1)
|
||||||
@@ -493,7 +487,6 @@ GEM
|
|||||||
unicode-emoji (3.4.0)
|
unicode-emoji (3.4.0)
|
||||||
unicode-version (~> 1.0)
|
unicode-version (~> 1.0)
|
||||||
unicode-version (1.4.0)
|
unicode-version (1.4.0)
|
||||||
uri (0.13.0)
|
|
||||||
vernier (0.6.0)
|
vernier (0.6.0)
|
||||||
version_gem (1.1.4)
|
version_gem (1.1.4)
|
||||||
warning (1.3.0)
|
warning (1.3.0)
|
||||||
@@ -556,7 +549,6 @@ DEPENDENCIES
|
|||||||
mini_magick
|
mini_magick
|
||||||
ogpr
|
ogpr
|
||||||
omdb-api (= 1.4.3)
|
omdb-api (= 1.4.3)
|
||||||
onnxruntime
|
|
||||||
pg
|
pg
|
||||||
puma
|
puma
|
||||||
que
|
que
|
||||||
@@ -578,6 +570,7 @@ DEPENDENCIES
|
|||||||
scraperd!
|
scraperd!
|
||||||
slim
|
slim
|
||||||
standardrb
|
standardrb
|
||||||
|
steam-api
|
||||||
time_math2
|
time_math2
|
||||||
timecop
|
timecop
|
||||||
unicode-emoji
|
unicode-emoji
|
||||||
|
2
Rakefile
2
Rakefile
@@ -100,7 +100,7 @@ end
|
|||||||
|
|
||||||
namespace :tailwind do
|
namespace :tailwind do
|
||||||
task :watch do
|
task :watch do
|
||||||
system("npx tailwindcss -i ./slices/main/assets/css/app.css -o ./slices/main/assets/builds/app.css --watch")
|
system("npx tailwindcss -i ./slices/main/assets/css/app.css -o ./public/assets/main/app.css --watch")
|
||||||
end
|
end
|
||||||
|
|
||||||
task :build do
|
task :build do
|
||||||
|
@@ -26,6 +26,7 @@ module Adamantium
|
|||||||
"clients.omdb",
|
"clients.omdb",
|
||||||
"clients.blue_sky",
|
"clients.blue_sky",
|
||||||
"clients.mastodon",
|
"clients.mastodon",
|
||||||
|
"clients.steam",
|
||||||
"geo.gpx_parser",
|
"geo.gpx_parser",
|
||||||
"param_parser.micropub_post",
|
"param_parser.micropub_post",
|
||||||
"param_parser.webmention",
|
"param_parser.webmention",
|
||||||
|
@@ -76,5 +76,9 @@ module Adamantium
|
|||||||
setting :raise_exceptions, default: true
|
setting :raise_exceptions, default: true
|
||||||
|
|
||||||
setting :gist_client_token, default: nil
|
setting :gist_client_token, default: nil
|
||||||
|
|
||||||
|
setting :cache_pages, default: true
|
||||||
|
setting :steam_api_key, default: nil
|
||||||
|
setting :steam_user_id, default: nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
15
slices/main/actions/past_week/index.rb
Normal file
15
slices/main/actions/past_week/index.rb
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
require "time_math"
|
||||||
|
|
||||||
|
module Main
|
||||||
|
module Actions
|
||||||
|
module PastWeek
|
||||||
|
class Index < Action
|
||||||
|
include Deps["views.past_week.index"]
|
||||||
|
|
||||||
|
def handle(req, res)
|
||||||
|
res.body = cache(key: "past_week", content_proc: -> { index.call.to_str })
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
15
slices/main/actions/recently_played_games/index.rb
Normal file
15
slices/main/actions/recently_played_games/index.rb
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
require "time_math"
|
||||||
|
|
||||||
|
module Main
|
||||||
|
module Actions
|
||||||
|
module RecentlyPlayedGames
|
||||||
|
class Index < Action
|
||||||
|
include Deps["views.recently_played_games.index"]
|
||||||
|
|
||||||
|
def handle(req, res)
|
||||||
|
res.body = cache(key: "recently_played_games", content_proc: -> { index.call.to_str })
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
@@ -38,6 +38,8 @@ module Main
|
|||||||
get "/blogroll/opml", to: "blogroll.opml"
|
get "/blogroll/opml", to: "blogroll.opml"
|
||||||
|
|
||||||
get "/recently_played", to: "recently_played.index"
|
get "/recently_played", to: "recently_played.index"
|
||||||
|
get "/recently_played_games", to: "recently_played_games.index"
|
||||||
|
get "/past_week", to: "past_week.index"
|
||||||
|
|
||||||
get "/:slug", to: "pages.show"
|
get "/:slug", to: "pages.show"
|
||||||
|
|
||||||
|
16
slices/main/queries/posts/recent_games.rb
Normal file
16
slices/main/queries/posts/recent_games.rb
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
require "steam-api"
|
||||||
|
|
||||||
|
module Main
|
||||||
|
module Queries
|
||||||
|
module Posts
|
||||||
|
class RecentGames
|
||||||
|
include Deps["settings"]
|
||||||
|
|
||||||
|
def call
|
||||||
|
Steam.apikey = settings.steam_api_key
|
||||||
|
Steam::Player.recently_played_games(settings.steam_user_id).fetch("games", []).take(2)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
3
slices/main/templates/past_week/index.html.slim
Normal file
3
slices/main/templates/past_week/index.html.slim
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
div class="bg-lime-100 rounded dark:bg-lime-900 dark:text-gray-100 content-justify hover:bg-lime-200 hover:dark:bg-lime-800 decoration-wavy rounded py-1.5 px-2"
|
||||||
|
= "Latest week post: "
|
||||||
|
a href="#{past_week.permalink}" #{past_week.name}
|
@@ -0,0 +1,8 @@
|
|||||||
|
table
|
||||||
|
- recently_played_games.each do |game|
|
||||||
|
tr
|
||||||
|
td
|
||||||
|
= game[:name]
|
||||||
|
|
||||||
|
td
|
||||||
|
= "(#{game[:playtime_forever]}hrs)"
|
17
slices/main/views/past_week/index.rb
Normal file
17
slices/main/views/past_week/index.rb
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
module Main
|
||||||
|
module Views
|
||||||
|
module PastWeek
|
||||||
|
class Index < Main::View
|
||||||
|
config.layout = false
|
||||||
|
|
||||||
|
include Deps["repos.post_repo"]
|
||||||
|
|
||||||
|
expose :past_week do
|
||||||
|
post_repo.week_posts(limit: 1).to_a.map do |post|
|
||||||
|
Decorators::Posts::Decorator.new(post)
|
||||||
|
end.first
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
25
slices/main/views/recently_played_games/index.rb
Normal file
25
slices/main/views/recently_played_games/index.rb
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
module Main
|
||||||
|
module Views
|
||||||
|
module RecentlyPlayedGames
|
||||||
|
class Index < Main::View
|
||||||
|
config.layout = false
|
||||||
|
|
||||||
|
include Deps["queries.posts.recent_games"]
|
||||||
|
|
||||||
|
expose :recently_played_games do |recently_played_result|
|
||||||
|
# raise recently_played_result["data"].inspect
|
||||||
|
recently_played_result.map do |game|
|
||||||
|
{
|
||||||
|
name: game["name"],
|
||||||
|
playtime_forever: game["playtime_forever"].to_i / 60,
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
private_expose :recently_played_result do
|
||||||
|
recent_games.call
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Reference in New Issue
Block a user