Basic SSH daemon.

This commit is contained in:
lain 2019-03-31 14:55:09 +02:00
parent dc39d8d3fb
commit c810fb81a4
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