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