Тема: Телеграм бот - прогноз погоди
Я пишу зараз телеграм бота по прогнозу погоди. Проблема в тому шо пайтон не видає помилку але також сам бот не показує погоду є тільки прописаний пекст привітання
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Python → Телеграм бот - прогноз погоди
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Я пишу зараз телеграм бота по прогнозу погоди. Проблема в тому шо пайтон не видає помилку але також сам бот не показує погоду є тільки прописаний пекст привітання
Я пишу зараз телеграм бота по прогнозу погоди. Проблема в тому шо пайтон не видає помилку але також сам бот не показує погоду є тільки прописаний пекст привітання. Код можу скинути в приватні повідомленя так як нехочу показувати 'api' кючі
А видалити ключі і викласти код ніяк не можете?
import telebot
from pyowm import OWM
from pyowm.utils.config import get_default_config
bot = telebot.TeleBot('')
@bot.message_handler(commands=['start'])
def hello(message):
bot.send_message(message.chat.id, 'Привіт я бот, а ти я так розумію ' + str(message.from_user.first_name) + '\n/start - запуск бота\n/help - команди бота\n/credits - автор бота\nщоб дізнатись погодунапишіть назву міста')
@bot.message_handler(commands=['help'])
def help(message):
bot.send_message(message.chat.id, '/start - запуск бота\n/help - команди бота\n/credits - автор бота\nщоб дізнатись погодунапишіть назву міста')
@bot.message_handler(commands=['text'])
def test(message):
try:
place = message.text
config_dict = get_default_config()
config_dict['language'] = 'ua'
owm = OWM('')
# place = input("Введіть назву міста")
mgr = owm.weather_manager()
observation = mgr.weather_at_place(place)
w = observation.weather
t = w.temperature("celsius")
t1 = t['temp']
t2 = t['feels_like']
t3 = t['temp_max']
t4 = t['temp_min']
wi = w.wind()['speed']
humi = w.humidity
st = w.status
dt = w.detalied_status
ti = w.reference_time('iso')
pr = w.pressure['press']
vd = w.visibility_distance
bot.send_message(message.chat.id, "В місті" + str(place) + "температура" + str(t1) + "C°" + "\n" +
"максимальна температура" + str(t3) + "C°" + "\n" +
"мінімальна температура" + str(t4) + "C°" + "\n" +
"відчувається як" + str(t2) + "C°" + "\n" +
"видкість вітру" + str(wi) + "m/c + ""\n" +
"тиск" + str(pr) + "мм.рт" + "\n" +
"вологість" + str(humi) + "%" + "\n" +
"видимість" + str(vd) + "метрів" + "\n" +
"статус" + str(st) + "\n\n" + str(dt))
except:
bot.send_message(message.chat.id, "Такого міста не знайдено")
print(str(message.text), "- не знайдено")
bot.polling(none_stop=True, interval=0)
для початку використайте дебагер, і побачите що містить змінна message.text
place = message.text.split("/text")[-1] #можливо ось так???
@bot.message_handler(commands=['text'])
означає, що це функція, яка відповідає на команди, що починаються з /text. Причому цей /text нікуди з message.text не зникає.
Якщо вам потрібна функція для будь-яких повідомлень, використовуйте
@bot.message_handler(func=lambda message: True)
І взагалі читайте документацію.
А для з'єднання стрічок зараз вважається за норму використовувати f-стрічки:
bot.send_message(message.chat.id, f'Привіт, я бот, а ти я так розумію {message.from_user.first_name}\n/start - запуск бота\n/help - команди бота\n/credits - автор бота\nщоб дізнатись погоду напишіть назву міста')
bot.send_message(message.chat.id, f"У місті {place} температура {t1}°C\nмаксимальна температура {t3}°C\nмінімальна температура {t4}°C\n...
Перепрошую, багаторядкові f-стрічки:
f"""У місті {place} температура {t1}°C
максимальна температура {t3}°C
мінімальна температура {t4}°C\n"""
Ще таке пиання, а як тоді вирішити проблему коли при введені міста видає що такого міста не знайдено
Ну як. От якщо у вас щось питають, а ви цього не знаєте - як ви цю проблему вирішуєте? Мабуть, відповідаєте, що не знаєте, так? То чому бот не може так робити?
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися