Basic SSH daemon.

This commit is contained in:
Roger Braun 2017-08-31 18:16:15 +02:00
parent 1712c93f44
commit f3915e6e9e
1 changed files with 34 additions and 0 deletions

34
lib/pleroma/bbs/bbs.ex Normal file
View File

@ -0,0 +1,34 @@
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