HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > Общие вопросы программирования
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 19.10.2022, 22:06
Relictum
Новичок
Регистрация: 19.10.2022
Сообщений: 1
С нами: 1878984

Репутация: 1
По умолчанию

Python:





Код:
import
telebot
from
telebot
import
*
from
pyowm
import
OWM
import
pyowm
from
pyowm
.
utils
.
config
import
get_default_config
#Токен от BotFather
PanOpt
=
telebot
.
TeleBot
(
'Токен'
)
#Приветственное сообщение (/start)
@PanOpt.message_handler
(
commands
=
[
"start"
]
)
def
start
(
message
,
res
=
False
)
:
# Добавление клавиатуры
keyboard
=
types
.
ReplyKeyboardMarkup
(
row_width
=
3
,
resize_keyboard
=
True
)
Sayhi
=
types
.
KeyboardButton
(
'Привет!'
)
Weather
=
types
.
KeyboardButton
(
'Погода'
)
Antivirus
=
types
.
KeyboardButton
(
'Антивирус'
)
keyboard
.
add
(
Sayhi
,
Weather
,
Antivirus
)
# Приветственное сообщение (/start)
PanOpt
.
send_message
(
message
.
chat
.
id
,
'Кажется, контакт стабилен, чем я могу быть полезен?'
,
reply_markup
=
keyboard
)
# Ответ пользователю на встроенные кнопки
@PanOpt.message_handler
(
content_types
=
[
"text"
]
)
def
answer_user
(
message
)
:
if
message
.
text
==
'Привет!'
:
keyboard
=
types
.
InlineKeyboardMarkup
(
row_width
=
2
)
Yesbutton
=
types
.
InlineKeyboardButton
(
'Да'
,
callback_data
=
'Yes'
)
Nobutton
=
types
.
InlineKeyboardButton
(
'Нет'
,
callback_data
=
'No'
)
keyboard
.
add
(
Yesbutton
,
Nobutton
)
PanOpt
.
send_message
(
message
.
chat
.
id
,
'Привет, землянин! Моё имя - ПанОптикум.\nЯ - бот, созданный упростить выполнение твоих земных задач!\nХочешь узнать что я умею?'
,
reply_markup
=
keyboard
)
@PanOpt.callback_query_handler
(
func
=
lambda
c
:
c
.
data
==
'Yes'
or
c
.
data
==
'No'
)
def
more_information
(
call
)
:
if
call
.
data
==
'Yes'
:
PanOpt
.
send_message
(
call
.
message
.
chat
.
id
,
'Хоть я и прилетел на землю недавно, местные обитатели уже успели меня кое-чему научить:\n1)Предсказывать погоду\n2)Проверять файлы на вирусы'
)
if
call
.
data
==
'No'
:
PanOpt
.
send_message
(
call
.
message
.
chat
.
id
,
'Надеюсь, ты сам разберёшься.\nВ любом случае - ещё заглядывай'
)
if
message
.
text
==
'Погода'
:
weather_keyboard
=
types
.
InlineKeyboardMarkup
(
row_width
=
1
)
btn_yes
=
types
.
InlineKeyboardButton
(
'Да'
,
callback_data
=
'Samara'
)
btn_no
=
types
.
InlineKeyboardButton
(
'Другой город'
,
callback_data
=
'Another city'
)
weather_keyboard
.
add
(
btn_yes
,
btn_no
)
config_dict
=
get_default_config
(
)
config_dict
[
'language'
]
=
'ru'
owm
=
OWM
(
'Токен'
,
config_dict
)
# Токен OpenWeatherMap
PanOpt
.
send_message
(
message
.
chat
.
id
,
'О, это я люблю!'
'\n'
'Когда-то я работал синоптиком у себя на планете, и могу сказать, довольно точно предсказывал погоду'
'\n'
'Вы живёте в Самаре?'
,
reply_markup
=
weather_keyboard
)
@PanOpt.callback_query_handler
(
func
=
lambda
c
:
c
.
data
==
'Samara'
or
c
.
data
==
'Another city'
)
def
weather
(
call
)
:
if
call
.
data
==
'Samara'
:
place
=
'Самара'
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

                cl
=
w
.
clouds

                st
=
w
.
status

                dt
=
w
.
detailed_status

                ti
=
w
.
reference_time
(
'iso'
)
pr
=
w
.
pressure
[
'press'
]
vd
=
w
.
visibility_distance

                PanOpt
.
send_message
(
call
.
message
.
chat
.
id
,
'Погода в Самаре:'
'\n'
'\n'
+
'Температура в данный момент: '
+
str
(
t1
)
+
'°C'
'\n'
+
'Максимальная температура: '
+
str
(
t3
)
+
'°C'
'\n'
+
'Минимальная температура: '
+
str
(
t4
)
+
'°C'
'\n'
+
'Ощущается как: '
+
str
(
t2
)
+
'°C'
'\n'
+
'\n'
+
'Скорость ветра: '
+
str
(
wi
)
+
' м/с'
'\n'
+
'Влажность: '
+
str
(
humi
)
+
' мм.рт.ст'
'\n'
+
'Статус: '
+
str
(
dt
)
)
if
call
.
data
==
'Another city'
:
PanOpt
.
send_message
(
message
.
chat
.
id
,
'Введите нужный город:'
)
PanOpt
.
polling
(
none_stop
=
True
)
 
Ответить с цитированием

  #2  
Старый 20.10.2022, 12:31
aluxx
Новичок
Регистрация: 19.10.2022
Сообщений: 6
С нами: 1879554

Репутация: 0
По умолчанию

Тебе надо было изначально писать код под ввод строки, но тем не менее

Я не уверен, возможны ошибки, но по идее, этот код должен работать


Цитата:
Сообщение от Спойлер  


Python:





Код:
import
pyowm
import
telebot
from
telebot
import
*
from
pyowm
import
OWM
from
pyowm
.
utils
.
config
import
get_default_config
#Токен от BotFather
PanOpt
=
telebot
.
TeleBot
(
'токен'
)
#Приветственное сообщение (/start)
@PanOpt.message_handler
(
commands
=
[
"start"
]
)
def
start
(
message
,
res
=
False
)
:
# Добавление клавиатуры
keyboard
=
types
.
ReplyKeyboardMarkup
(
row_width
=
3
,
resize_keyboard
=
True
)
Sayhi
=
types
.
KeyboardButton
(
'Привет!'
)
Weather
=
types
.
KeyboardButton
(
'Погода'
)
Antivirus
=
types
.
KeyboardButton
(
'Антивирус'
)
keyboard
.
add
(
Sayhi
,
Weather
,
Antivirus
)
# Приветственное сообщение (/start)
PanOpt
.
send_message
(
message
.
chat
.
id
,
'Кажется, контакт стабилен, чем я могу быть полезен?'
,
reply_markup
=
keyboard
)
# Ответ пользователю на встроенные кнопки
@PanOpt.message_handler
(
content_types
=
[
"text"
]
)
def
answer_user
(
message
)
:
if
message
.
text
==
'Привет!'
:
keyboard
=
types
.
InlineKeyboardMarkup
(
row_width
=
2
)
Yesbutton
=
types
.
InlineKeyboardButton
(
'Да'
,
callback_data
=
'Yes'
)
Nobutton
=
types
.
InlineKeyboardButton
(
'Нет'
,
callback_data
=
'No'
)
keyboard
.
add
(
Yesbutton
,
Nobutton
)
PanOpt
.
send_message
(
message
.
chat
.
id
,
'Привет, землянин! Моё имя - ПанОптикум.\nЯ - бот, созданный упростить выполнение твоих земных задач!\nХочешь узнать что я умею?'
,
reply_markup
=
keyboard
)
@PanOpt.callback_query_handler
(
func
=
lambda
c
:
c
.
data
==
'Yes'
or
c
.
data
==
'No'
)
def
more_information
(
call
)
:
if
call
.
data
==
'Yes'
:
PanOpt
.
send_message
(
call
.
message
.
chat
.
id
,
'Хоть я и прилетел на землю недавно, местные обитатели уже успели меня кое-чему научить:\n1)Предсказывать погоду\n2)Проверять файлы на вирусы'
)
if
call
.
data
==
'No'
:
PanOpt
.
send_message
(
call
.
message
.
chat
.
id
,
'Надеюсь, ты сам разберёшься.\nВ любом случае - ещё заглядывай'
)
if
message
.
text
==
'Погода'
:
weather_keyboard
=
types
.
InlineKeyboardMarkup
(
row_width
=
1
)
btn_yes
=
types
.
InlineKeyboardButton
(
'Да'
,
callback_data
=
'Samara'
)
btn_no
=
types
.
InlineKeyboardButton
(
'Другой город'
,
callback_data
=
'Another city'
)
weather_keyboard
.
add
(
btn_yes
,
btn_no
)
config_dict
=
get_default_config
(
)
config_dict
[
'language'
]
=
'ru'
owm
=
OWM
(
'токен'
,
config_dict
)
# Токен OpenWeatherMap
PanOpt
.
send_message
(
message
.
chat
.
id
,
'О, это я люблю!'
'\n'
'Когда-то я работал синоптиком у себя на планете, и могу сказать, довольно точно предсказывал погоду'
'\n'
'Вы живёте в Самаре?'
,
reply_markup
=
weather_keyboard
)
@PanOpt.callback_query_handler
(
func
=
lambda
c
:
c
.
data
==
'Samara'
or
c
.
data
==
'Another city'
)
def
weather
(
call
)
:
if
call
.
data
==
'Samara'
:
place
=
'Самара'
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
                cl
=
w
.
clouds
                st
=
w
.
status
                dt
=
w
.
detailed_status
                ti
=
w
.
reference_time
(
'iso'
)
pr
=
w
.
pressure
[
'press'
]
vd
=
w
.
visibility_distance

                PanOpt
.
send_message
(
call
.
message
.
chat
.
id
,
'Погода в Самаре:'
'\n'
'\n'
+
'Температура в данный момент: '
+
str
(
t1
)
+
'°C'
'\n'
+
'Максимальная температура: '
+
str
(
t3
)
+
'°C'
'\n'
+
'Минимальная температура: '
+
str
(
t4
)
+
'°C'
'\n'
+
'Ощущается как: '
+
str
(
t2
)
+
'°C'
'\n'
+
'\n'
+
'Скорость ветра: '
+
str
(
wi
)
+
' м/с'
'\n'
+
'Влажность: '
+
str
(
humi
)
+
' мм.рт.ст'
'\n'
+
'Статус: '
+
str
(
dt
)
)
if
call
.
data
==
'Another city'
:
PanOpt
.
send_message
(
message
.
chat
.
id
,
'Введите нужный город:'
)
else
:
config_dict
=
get_default_config
(
)
config_dict
[
'language'
]
=
'ru'
owm
=
OWM
(
'токен'
,
config_dict
)
# Токен OpenWeatherMap
iMessage
=
message
.
text
.
lower
(
)
iMessage
=
iMessage
.
replace
(
iMessage
[
0
]
,
iMessage
[
0
]
.
upper
(
)
)
wManager
=
owm
.
weather_manager
(
)
wObservation
=
wManager
.
weather_at_place
(
iMessage
)
oWeather
=
wObservation
.
weather
                
        t
=
oWeather
.
temperature
(
"celsius"
)
t1
=
t
[
'temp'
]
t2
=
t
[
'feels_like'
]
t3
=
t
[
'temp_max'
]
t4
=
t
[
'temp_min'
]
wi
=
oWeather
.
wind
(
)
[
'speed'
]
humi
=
oWeather
.
humidity
        cl
=
oWeather
.
clouds
        st
=
oWeather
.
status
        dt
=
oWeather
.
detailed_status
        ti
=
oWeather
.
reference_time
(
'iso'
)
pr
=
oWeather
.
pressure
[
'press'
]
vd
=
oWeather
.
visibility_distance

        PanOpt
.
send_message
(
call
.
message
.
chat
.
id
,
'Погода в '
+
iMessage
+
':'
'\n'
'\n'
+
'Температура в данный момент: '
+
str
(
t1
)
+
'°C'
'\n'
+
'Максимальная температура: '
+
str
(
t3
)
+
'°C'
'\n'
+
'Минимальная температура: '
+
str
(
t4
)
+
'°C'
'\n'
+
'Ощущается как: '
+
str
(
t2
)
+
'°C'
'\n'
+
'\n'
+
'Скорость ветра: '
+
str
(
wi
)
+
' м/с'
'\n'
+
'Влажность: '
+
str
(
humi
)
+
' мм.рт.ст'
'\n'
+
'Статус: '
+
str
(
dt
)
)
PanOpt
.
polling
(
none_stop
=
True
)


 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.