Fix Sidekiq pooling issues. Remove API docs from homepage, replace with
a basic home timeline
This commit is contained in:
parent
bb98ee489d
commit
5764d52b04
|
@ -124,99 +124,99 @@
|
||||||
background: #d9e1e8;
|
background: #d9e1e8;
|
||||||
border-radius: 0 4px 4px 0;
|
border-radius: 0 4px 4px 0;
|
||||||
|
|
||||||
.dashboard__content__content {
|
|
||||||
padding: 20px;
|
|
||||||
color: #282c37;
|
|
||||||
line-height: 18px;
|
|
||||||
|
|
||||||
h3 {
|
|
||||||
font-size: 14px;
|
|
||||||
font-weight: 500;
|
|
||||||
margin-bottom: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
p {
|
|
||||||
margin-bottom: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
samp {
|
|
||||||
font-family: 'Roboto Mono', monospace;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul {
|
|
||||||
list-style: circle;
|
|
||||||
padding-left: 15px;
|
|
||||||
margin-bottom: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.table {
|
|
||||||
width: 100%;
|
|
||||||
|
|
||||||
th {
|
|
||||||
font-weight: 500;
|
|
||||||
text-align: left;
|
|
||||||
border-bottom: 1px solid lighten(#282c37, 55%);
|
|
||||||
}
|
|
||||||
|
|
||||||
th, td {
|
|
||||||
padding: 5px 0;
|
|
||||||
line-height: 18px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
color: #2b90d9;
|
|
||||||
text-decoration: underline;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn {
|
|
||||||
display: inline-block;
|
|
||||||
border: 0;
|
|
||||||
background: #2b90d9;
|
|
||||||
border-radius: 16px;
|
|
||||||
padding: 6px 16px;
|
|
||||||
font-size: 12px;
|
|
||||||
font-weight: 500;
|
|
||||||
color: #fff;
|
|
||||||
cursor: pointer;
|
|
||||||
font-family: 'Roboto', sans-serif;
|
|
||||||
text-decoration: none;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
background: lighten(#2b90d9, 5%);
|
|
||||||
}
|
|
||||||
|
|
||||||
&.btn-iconized {
|
|
||||||
font-size: 16px;
|
|
||||||
font-weight: 400;
|
|
||||||
width: 24px;
|
|
||||||
text-align: center;
|
|
||||||
padding: 10px 7px;
|
|
||||||
border-radius: 100px;
|
|
||||||
box-shadow: 0 0 15px rgba(0, 0, 0, 0.2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
hr {
|
|
||||||
clear: both;
|
|
||||||
border: 0;
|
|
||||||
padding: 0;
|
|
||||||
width: 100%;
|
|
||||||
height: 0;
|
|
||||||
margin: 30px 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.dashboard__top-bar {
|
.dashboard__top-bar {
|
||||||
border-radius: 0 4px 0 0;
|
border-radius: 0 4px 0 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.dashboard__content__content {
|
||||||
|
padding: 20px;
|
||||||
|
color: #282c37;
|
||||||
|
line-height: 18px;
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 500;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
samp {
|
||||||
|
font-family: 'Roboto Mono', monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
list-style: circle;
|
||||||
|
padding-left: 15px;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table {
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
th {
|
||||||
|
font-weight: 500;
|
||||||
|
text-align: left;
|
||||||
|
border-bottom: 1px solid lighten(#282c37, 55%);
|
||||||
|
}
|
||||||
|
|
||||||
|
th, td {
|
||||||
|
padding: 5px 0;
|
||||||
|
line-height: 18px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #2b90d9;
|
||||||
|
text-decoration: underline;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
display: inline-block;
|
||||||
|
border: 0;
|
||||||
|
background: #2b90d9;
|
||||||
|
border-radius: 16px;
|
||||||
|
padding: 6px 16px;
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #fff;
|
||||||
|
cursor: pointer;
|
||||||
|
font-family: 'Roboto', sans-serif;
|
||||||
|
text-decoration: none;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background: lighten(#2b90d9, 5%);
|
||||||
|
}
|
||||||
|
|
||||||
|
&.btn-iconized {
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 400;
|
||||||
|
width: 24px;
|
||||||
|
text-align: center;
|
||||||
|
padding: 10px 7px;
|
||||||
|
border-radius: 100px;
|
||||||
|
box-shadow: 0 0 15px rgba(0, 0, 0, 0.2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
hr {
|
||||||
|
clear: both;
|
||||||
|
border: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 0;
|
||||||
|
margin: 30px 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.simple_form {
|
.simple_form {
|
||||||
.form-actions {
|
.form-actions {
|
||||||
padding-top: 20px;
|
padding-top: 20px;
|
||||||
|
|
|
@ -4,5 +4,6 @@ class HomeController < ApplicationController
|
||||||
before_action :authenticate_user!
|
before_action :authenticate_user!
|
||||||
|
|
||||||
def index
|
def index
|
||||||
|
@timeline = Feed.new(:home, current_user.account).get(10, params[:max_id])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -4,111 +4,7 @@
|
||||||
.form-actions
|
.form-actions
|
||||||
= f.button :submit, 'Post update'
|
= f.button :submit, 'Post update'
|
||||||
|
|
||||||
%hr/
|
- content_for :raw_content do
|
||||||
|
.activity-stream.activity-stream-embedded
|
||||||
%h3 OAuth2
|
- @timeline.each do |status|
|
||||||
%p All API methods require a valid access token.
|
= render partial: 'stream_entries/status', locals: { status: status }
|
||||||
|
|
||||||
%h3 Statuses
|
|
||||||
%ul.api-descriptions
|
|
||||||
%li
|
|
||||||
.address
|
|
||||||
%samp.method GET
|
|
||||||
%samp /api/statuses/home
|
|
||||||
.description
|
|
||||||
Returns user's home timeline
|
|
||||||
%li
|
|
||||||
.address
|
|
||||||
%samp.method GET
|
|
||||||
%samp /api/statuses/mentions
|
|
||||||
.description
|
|
||||||
Returns user's mentions timeline
|
|
||||||
%li
|
|
||||||
.address
|
|
||||||
%samp.method POST
|
|
||||||
%samp /api/statuses
|
|
||||||
.options
|
|
||||||
Options:
|
|
||||||
= succeed ',' do
|
|
||||||
%samp status
|
|
||||||
%samp in_reply_to_id
|
|
||||||
.description
|
|
||||||
Creates a new status, optionally as a response to another, from user's account. Returns the new status.
|
|
||||||
%li
|
|
||||||
.address
|
|
||||||
%samp.method GET
|
|
||||||
%samp /api/statuses/:id
|
|
||||||
.description
|
|
||||||
Returns a single status
|
|
||||||
%li
|
|
||||||
.address
|
|
||||||
%samp.method POST
|
|
||||||
%samp /api/statuses/:id/reblog
|
|
||||||
.description
|
|
||||||
Reblogs a status from user's account. Returns the target status.
|
|
||||||
%li
|
|
||||||
.address
|
|
||||||
%samp.method POST
|
|
||||||
%samp /api/statuses/:id/favourite
|
|
||||||
.description
|
|
||||||
Favourites a status from user's account. Returns the target status.
|
|
||||||
|
|
||||||
%h3 Accounts
|
|
||||||
%ul.api-descriptions
|
|
||||||
%li
|
|
||||||
.address
|
|
||||||
%samp.method GET
|
|
||||||
%samp /api/accounts/:id
|
|
||||||
.description
|
|
||||||
Returns a single account
|
|
||||||
%li
|
|
||||||
.address
|
|
||||||
%samp.method GET
|
|
||||||
%samp /api/accounts/:id/statuses
|
|
||||||
.description
|
|
||||||
Returns an account's statuses
|
|
||||||
%li
|
|
||||||
.address
|
|
||||||
%samp.method GET
|
|
||||||
%samp /api/accounts/:id/followers
|
|
||||||
.description
|
|
||||||
Returns accounts following an account
|
|
||||||
%li
|
|
||||||
.address
|
|
||||||
%samp.method GET
|
|
||||||
%samp /api/accounts/:id/following
|
|
||||||
.description
|
|
||||||
Returns the accounts the target account follows
|
|
||||||
%li
|
|
||||||
.address
|
|
||||||
%samp.method POST
|
|
||||||
%samp /api/accounts/:id/follow
|
|
||||||
.description
|
|
||||||
Follows target account from the user's account. Returns the target account.
|
|
||||||
%li
|
|
||||||
.address
|
|
||||||
%samp.method POST
|
|
||||||
%samp /api/accounts/:id/unfollow
|
|
||||||
.description
|
|
||||||
Unfollows target account from the user's account. Returns the target account.
|
|
||||||
%li
|
|
||||||
.address
|
|
||||||
%samp.method GET
|
|
||||||
%samp /api/accounts/lookup
|
|
||||||
.options
|
|
||||||
Options:
|
|
||||||
%samp usernames
|
|
||||||
.description
|
|
||||||
Returns accounts for a comma-separated list of usernames
|
|
||||||
|
|
||||||
%h3 Follows
|
|
||||||
%ul.api-descriptions
|
|
||||||
%li
|
|
||||||
.address
|
|
||||||
%samp.method POST
|
|
||||||
%samp /api/follows
|
|
||||||
.options
|
|
||||||
Options:
|
|
||||||
%samp uri
|
|
||||||
.description
|
|
||||||
Follows a user, regardless of where they are, from user's account. URI assumed to be of username@domain form. Returns the target account.
|
|
||||||
|
|
|
@ -21,13 +21,18 @@
|
||||||
= link_to settings_path do
|
= link_to settings_path do
|
||||||
= fa_icon 'user'
|
= fa_icon 'user'
|
||||||
Edit profile
|
Edit profile
|
||||||
|
|
||||||
.dashboard__content
|
.dashboard__content
|
||||||
.dashboard__top-bar
|
.dashboard__top-bar
|
||||||
= content_for?(:page_title) ? yield(:page_title) : 'Mastodon'
|
= content_for?(:page_title) ? yield(:page_title) : 'Mastodon'
|
||||||
%ul
|
%ul
|
||||||
%li= link_to fa_icon('gear'), edit_registration_path(current_user), title: 'Change password'
|
%li= link_to fa_icon('gear'), edit_registration_path(current_user), title: 'Change password'
|
||||||
%li= link_to fa_icon('sign-out'), destroy_user_session_path, method: :delete, title: 'Sign out'
|
%li= link_to fa_icon('sign-out'), destroy_user_session_path, method: :delete, title: 'Sign out'
|
||||||
|
|
||||||
.dashboard__content__content= yield
|
.dashboard__content__content= yield
|
||||||
|
|
||||||
|
= yield(:raw_content)
|
||||||
|
|
||||||
.footer
|
.footer
|
||||||
.domain= Rails.configuration.x.local_domain
|
.domain= Rails.configuration.x.local_domain
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
default: &default
|
default: &default
|
||||||
adapter: postgresql
|
adapter: postgresql
|
||||||
pool: 10
|
pool: 15
|
||||||
timeout: 5000
|
timeout: 5000
|
||||||
encoding: unicode
|
encoding: unicode
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,10 @@
|
||||||
redis_conn = proc {
|
host = ENV['REDIS_HOST'] || 'localhost'
|
||||||
$redis.dup
|
port = ENV['REDIS_PORT'] || 6379
|
||||||
}
|
|
||||||
|
|
||||||
Sidekiq.configure_server do |config|
|
Sidekiq.configure_server do |config|
|
||||||
config.redis = ConnectionPool.new(size: 5, &redis_conn)
|
config.redis = { host: host, port: port }
|
||||||
end
|
end
|
||||||
|
|
||||||
Sidekiq.configure_client do |config|
|
Sidekiq.configure_client do |config|
|
||||||
config.redis = ConnectionPool.new(size: 5, &redis_conn)
|
config.redis = { host: host, port: port }
|
||||||
end
|
end
|
||||||
|
|
Reference in a new issue