mirror of
https://github.com/processone/ejabberd.git
synced 2024-12-26 17:38:45 +01:00
[TECH-1068] Atom feed is good enough.
This commit is contained in:
parent
86a59fb469
commit
f284fc3284
@ -81,7 +81,6 @@ out(Module, Args, 'GET', [Domain,Node]=Uri, _User) ->
|
|||||||
error(Error);
|
error(Error);
|
||||||
#pubsub_node{options = Options}->
|
#pubsub_node{options = Options}->
|
||||||
AccessModel = lists:keyfind(access_model, 1, Options),
|
AccessModel = lists:keyfind(access_model, 1, Options),
|
||||||
?INFO_MSG("Uri ~p requested. access_model is ~p. HTTP access denied unless access_model =:= open",[Uri, AccessModel]),
|
|
||||||
case AccessModel of
|
case AccessModel of
|
||||||
{access_model, open} ->
|
{access_model, open} ->
|
||||||
Items = lists:sort(fun(X,Y)->
|
Items = lists:sort(fun(X,Y)->
|
||||||
@ -107,7 +106,7 @@ out(Module, Args, 'GET', [Domain,Node]=Uri, _User) ->
|
|||||||
true ->
|
true ->
|
||||||
XMLEntries= [item_to_entry(Args,Domain, Node,Entry)||Entry <- Items],
|
XMLEntries= [item_to_entry(Args,Domain, Node,Entry)||Entry <- Items],
|
||||||
{200, [{"Content-Type", "application/atom+xml"},{"Etag", Etag}],
|
{200, [{"Content-Type", "application/atom+xml"},{"Etag", Etag}],
|
||||||
"<?xml version=\"1.0\" encoding=\"utf-8\"?>"
|
"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
|
||||||
++ xml:element_to_string(
|
++ xml:element_to_string(
|
||||||
collection(get_collection(Uri), collection_uri(Args,Domain,Node),
|
collection(get_collection(Uri), collection_uri(Args,Domain,Node),
|
||||||
calendar:now_to_universal_time(LastDate), "", XMLEntries))}
|
calendar:now_to_universal_time(LastDate), "", XMLEntries))}
|
||||||
@ -269,9 +268,11 @@ item_to_entry(Args,Domain, Node, Id,{xmlelement, "entry", Attrs, SubEl},
|
|||||||
Date = calendar:now_to_local_time(Secs),
|
Date = calendar:now_to_local_time(Secs),
|
||||||
{_User, Domain, _}=jlib:jid_tolower(JID),
|
{_User, Domain, _}=jlib:jid_tolower(JID),
|
||||||
SubEl2=[{xmlelement, "app:edited", [], [{xmlcdata, w3cdtf(Date)}]},
|
SubEl2=[{xmlelement, "app:edited", [], [{xmlcdata, w3cdtf(Date)}]},
|
||||||
|
{xmlelement, "updated", [],[{xmlcdata, w3cdtf(Date)}]},
|
||||||
|
{xmlelement, "author", [],[{xmlelement, "name", [], [{xmlcdata, list_to_binary(jlib:jid_to_string(JID))}]}]},
|
||||||
{xmlelement, "link",[{"rel", "edit"},
|
{xmlelement, "link",[{"rel", "edit"},
|
||||||
{"href", entry_uri(Args,Domain,Node, Id)}],[] },
|
{"href", entry_uri(Args,Domain,Node, Id)}],[] },
|
||||||
{xmlelement, "id", [],[{xmlcdata, Id}]}
|
{xmlelement, "id", [],[{xmlcdata, entry_uri(Args, Domain, Node, Id)}]}
|
||||||
| SubEl],
|
| SubEl],
|
||||||
{xmlelement, "entry", [{"xmlns:app","http://www.w3.org/2007/app"}|Attrs], SubEl2};
|
{xmlelement, "entry", [{"xmlns:app","http://www.w3.org/2007/app"}|Attrs], SubEl2};
|
||||||
|
|
||||||
@ -286,8 +287,10 @@ collection(Title, Link, Updated, _Id, Entries)->
|
|||||||
{xmlelement, "feed", [{"xmlns", "http://www.w3.org/2005/Atom"},
|
{xmlelement, "feed", [{"xmlns", "http://www.w3.org/2005/Atom"},
|
||||||
{"xmlns:app", "http://www.w3.org/2007/app"}], [
|
{"xmlns:app", "http://www.w3.org/2007/app"}], [
|
||||||
{xmlelement, "title", [],[{xmlcdata, Title}]},
|
{xmlelement, "title", [],[{xmlcdata, Title}]},
|
||||||
|
{xmlelement, "generator", [],[{xmlcdata, <<"ejabberd">>}]},
|
||||||
{xmlelement, "updated", [],[{xmlcdata, w3cdtf(Updated)}]},
|
{xmlelement, "updated", [],[{xmlcdata, w3cdtf(Updated)}]},
|
||||||
{xmlelement, "link", [{"href", Link}], []},
|
{xmlelement, "link", [{"href", Link}, {"rel", "self"}], []},
|
||||||
|
{xmlelement, "id", [], [{xmlcdata, list_to_binary(Link)}]},
|
||||||
{xmlelement, "title", [],[{xmlcdata, Title}]} |
|
{xmlelement, "title", [],[{xmlcdata, Title}]} |
|
||||||
Entries
|
Entries
|
||||||
]}.
|
]}.
|
||||||
|
Loading…
Reference in New Issue
Block a user