This website works better with JavaScript.
Home
Explore
Help
Sign In
closed-social
/
mastodon
Watch
3
Star
0
Fork
2
Code
Issues
5
Pull Requests
0
Projects
0
Releases
3
Wiki
Activity
Browse Source
Adding enclosures to Atom and statuses JSON
closed-social-glitch-2
Eugen Rochko
7 years ago
parent
eec0dc46a6
commit
1d9c886518
4 changed files
with
19 additions
and
1 deletions
Split View
Diff Options
Show Stats
Download Patch File
Download Diff File
+10
-0
app/helpers/atom_builder_helper.rb
+1
-1
app/models/status.rb
+4
-0
app/views/api/statuses/show.rabl
+4
-0
spec/helpers/atom_builder_helper_spec.rb
+ 10
- 0
app/helpers/atom_builder_helper.rb
View File
@ -125,6 +125,10 @@ module AtomBuilderHelper
xml
.
link
(
rel
:
'mentioned'
,
href
:
uri_for_target
(
account
)
)
end
def
link_enclosure
(
xml
,
media
)
xml
.
link
(
rel
:
'enclosure'
,
href
:
full_asset_url
(
media
.
file
.
url
)
,
type
:
media
.
file_content_type
,
length
:
media
.
file_size
)
end
def
link_avatar
(
xml
,
account
)
single_link_avatar
(
xml
,
account
,
:large
,
300
)
single_link_avatar
(
xml
,
account
,
:medium
,
96
)
@ -205,6 +209,12 @@ module AtomBuilderHelper
stream_entry
.
mentions
.
each
do
|
mentioned
|
link_mention
xml
,
mentioned
end
if
stream_entry
.
activity
.
is_a?
(
Status
)
stream_entry
.
activity
.
media_attachments
.
each
do
|
media
|
link_enclosure
xml
,
media
end
end
end
private
+ 1
- 1
app/models/status.rb
View File
@ -18,7 +18,7 @@ class Status < ApplicationRecord
validates
:text
,
presence
:
true
,
if
:
Proc
.
new
{
|
s
|
s
.
local?
&&
!
s
.
reblog?
}
scope
:with_counters
,
-
>
{
select
(
'statuses.*, (select count(r.id) from statuses as r where r.reblog_of_id = statuses.id) as reblogs_count, (select count(f.id) from favourites as f where f.status_id = statuses.id) as favourites_count'
)
}
scope
:with_includes
,
-
>
{
includes
(
:account
,
:mentions
,
:stream_entry
,
reblog
:
[
:account
,
:mentions
]
,
thread
:
:account
)
}
scope
:with_includes
,
-
>
{
includes
(
:account
,
:mentions
,
:
media_attachments
,
:
stream_entry
,
reblog
:
[
:account
,
:mentions
]
,
thread
:
:account
)
}
def
local?
self
.
uri
.
nil?
+ 4
- 0
app/views/api/statuses/show.rabl
View File
@ -16,3 +16,7 @@ end
child :account do
extends('api/accounts/show')
end
child :media_attachments do
node(:url) { |media| full_asset_url(media.file.url) }
end
+ 4
- 0
spec/helpers/atom_builder_helper_spec.rb
View File
@ -174,6 +174,10 @@ RSpec.describe AtomBuilderHelper, type: :helper do
end
end
describe
'#link_enclosure'
do
pending
end
describe
'#logo'
do
it
'creates a logo'
do
expect
(
used_in_builder
{
|
xml
|
helper
.
logo
(
xml
,
1
)
}
)
.
to
match
'<logo>1</logo>'
Write
Preview
Loading…
Cancel
Save