diff --git a/config/runtime.exs b/config/runtime.exs index 7df01d3..352a73e 100644 --- a/config/runtime.exs +++ b/config/runtime.exs @@ -3,3 +3,5 @@ import Config config :aier_bot, :telegram_bot_token, System.fetch_env!("TELEGRAM_BOT_TOKEN") config :aier_bot, :aier_api_token, System.fetch_env!("AIER_API_TOKEN") config :aier_bot, :openai_api_key, System.fetch_env!("OPENAI_API_KEY") + +config :ex_gram, token: System.fetch_env!("TELEGRAM_BOT_TOKEN") diff --git a/lib/aier_bot/bot.ex b/lib/aier_bot/bot.ex index 8beaa92..d64438b 100644 --- a/lib/aier_bot/bot.ex +++ b/lib/aier_bot/bot.ex @@ -34,14 +34,15 @@ defmodule AierBot.Bot do end end - def handle({:text, text, _msg}, context) do + def handle({:text, text, %{chat: chat}}, context) do # TODO: repeat # request download API - data = CobaltClient.json(text) + file_content = CobaltClient.json(text) - IO.inspect(data) + {:ok, message} = ExGram.send_document(chat.id, {:file_content, file_content, "video.mp4"}) + IO.inspect(message) - answer(context, "#{data}") + answer(context, "done") # case AierApi.create_memo(text) do # {:ok, response} -> create_memo_success(response, context) # {:error, error} -> answer(context, "Error: #{inspect(error)}") diff --git a/lib/aier_bot/cobalt_client.ex b/lib/aier_bot/cobalt_client.ex index fb0e204..40efe21 100644 --- a/lib/aier_bot/cobalt_client.ex +++ b/lib/aier_bot/cobalt_client.ex @@ -19,8 +19,10 @@ defmodule AierBot.CobaltClient do # "url" => "https://video.twimg.com/amplify_video/1814202798097268736/vid/avc1/720x1192/HAD9zyJn1xoP4oRN.mp4?tag=16" # } %{"url" => url} = response.body - FileDownloader.download(url, "video.mp4") - url + file_content = FileDownloader.download(url, "video.mp4") + file_content + + # TODO send photo to telegram {:error, error} -> error diff --git a/lib/aier_bot/file_downloader.ex b/lib/aier_bot/file_downloader.ex index 613d511..9f30639 100644 --- a/lib/aier_bot/file_downloader.ex +++ b/lib/aier_bot/file_downloader.ex @@ -6,6 +6,7 @@ defmodule AierBot.FileDownloader do {:ok, %Tesla.Env{status: 200, body: body}} -> File.write("./downloads/#{file_path}", body) IO.puts("File downloaded successfully.") + body {:ok, %Tesla.Env{status: status}} -> IO.puts("Failed to download file. Status: #{status}")