Basic SSH daemon.
This commit is contained in:
parent
dc39d8d3fb
commit
c810fb81a4
34
lib/pleroma/bbs/bbs.ex
Normal file
34
lib/pleroma/bbs/bbs.ex
Normal 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
|
Loading…
Reference in a new issue