Compare commits
2 Commits
ec6be15032
...
f6f71d1ee5
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f6f71d1ee5 | ||
|
|
33064a43da |
7
logsrv/apps/logsrv_api/lib/logsrv_api/crawler.ex
Normal file
7
logsrv/apps/logsrv_api/lib/logsrv_api/crawler.ex
Normal file
@ -0,0 +1,7 @@
|
||||
defmodule LogsrvApi.Crawler do
|
||||
alias LogsrvApi.{Filesystem,Page,Journal}
|
||||
|
||||
def crawl do
|
||||
Filesystem.
|
||||
end
|
||||
end
|
||||
@ -24,10 +24,22 @@ defmodule LogsrvApi.Filesystem do
|
||||
def all(Page) do
|
||||
dir(:pages)
|
||||
|> File.ls!
|
||||
|> Enum.sort
|
||||
|> Enum.map(fn(fd) ->
|
||||
Page.init(fd)
|
||||
case fd |> File.ls do
|
||||
{:error, _} ->
|
||||
IO.puts("Error on #{fd}")
|
||||
Page.init(fd)
|
||||
pages ->
|
||||
IO.puts(pages)
|
||||
pages |> Enum.map(fn(page) ->
|
||||
"pages/#{page}" |> Page.init
|
||||
end)
|
||||
end
|
||||
end)
|
||||
|> Enum.sort(&sort/2)
|
||||
end
|
||||
def sort(a, b) do
|
||||
Timex.compare(a.date, b.date) > 0
|
||||
end
|
||||
|
||||
def all(Journal) do
|
||||
|
||||
@ -49,13 +49,14 @@ defmodule LogsrvApi.Page do
|
||||
{:nil, Earmark.as_html!(data)}
|
||||
end
|
||||
end
|
||||
defp parse_yaml(yaml) do
|
||||
[parsed] = :yamerl_constr.string(yaml)
|
||||
parsed
|
||||
def parse_yaml(yaml) do
|
||||
yaml
|
||||
|> :yamerl_constr.string
|
||||
|> List.flatten
|
||||
end
|
||||
defp extract({props, content}, post) do
|
||||
%{post |
|
||||
title: get_prop(props, "title") || post.title,
|
||||
title: get_prop(props, "title") |> to_string || post.title,
|
||||
tags: get_prop(props, "tags"),
|
||||
content: content}
|
||||
end
|
||||
@ -65,7 +66,7 @@ defmodule LogsrvApi.Page do
|
||||
else
|
||||
case :proplists.get_value(String.to_char_list(key), props) do
|
||||
:undefined -> nil
|
||||
x -> to_string(x)
|
||||
x -> x
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Loading…
Reference in New Issue
Block a user