forked from AkkomaGang/akkoma
34 lines
902 B
Elixir
34 lines
902 B
Elixir
defmodule Pleroma.BBS do
|
|
def start_daemon do
|
|
:ok = :ssh.start()
|
|
|
|
options = [
|
|
system_dir: 'ssh_keys',
|
|
auth_method_kb_interactive_data: fn (_, user, _) -> {
|
|
'Welcome to Pleroma BBS',
|
|
'Hello #{user}',
|
|
'Password: ',
|
|
false }
|
|
end,
|
|
auth_methods: 'keyboard-interactive,password',
|
|
pwdfun: fn(user, password) -> true end,
|
|
shell: &start_prompt/1
|
|
]
|
|
:ssh.daemon(13121, options)
|
|
end
|
|
|
|
def start_prompt(user) do
|
|
spawn(__MODULE__, :prompt, [user])
|
|
end
|
|
|
|
def prompt(user) do
|
|
IO.puts("Hey #{user}.\n")
|
|
IO.puts("Here's your timeline:\n")
|
|
|
|
user = Pleroma.User.get_cached_by_nickname(to_string(user))
|
|
Pleroma.Web.TwitterAPI.TwitterAPI.fetch_friend_statuses(user)
|
|
|> Enum.each(fn (status) ->
|
|
IO.puts("#{status["user"]["name"]} (#{status["user"]["screen_name"]}): #{status["text"]}")
|
|
end)
|
|
end
|
|
end
|